Commit 0b25eb1c2a080854681dce2456788aa93d541f33
1 parent
eb3d0386
继续完善 index.vue.vm 模板 = = 睡觉~~~
Showing
4 changed files
with
119 additions
and
150 deletions
ruoyi-generator/src/main/resources/vm/js/api.js.vm renamed to ruoyi-ui/src/api/tool/testDemo.js
| 1 | -import request from '@/utils/request' | |
| 2 | - | |
| 3 | -// 查询${functionName}列表 | |
| 4 | -export function list${BusinessName}(query) { | |
| 5 | - return request({ | |
| 6 | - url: '/${moduleName}/${businessName}/list', | |
| 7 | - method: 'get', | |
| 8 | - params: query | |
| 9 | - }) | |
| 10 | -} | |
| 11 | - | |
| 12 | -// 查询${functionName}详细 | |
| 13 | -export function get${BusinessName}(${pkColumn.javaField}) { | |
| 14 | - return request({ | |
| 15 | - url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, | |
| 16 | - method: 'get' | |
| 17 | - }) | |
| 18 | -} | |
| 19 | - | |
| 20 | -// 新增${functionName} | |
| 21 | -export function add${BusinessName}(data) { | |
| 22 | - return request({ | |
| 23 | - url: '/${moduleName}/${businessName}', | |
| 24 | - method: 'post', | |
| 25 | - data: data | |
| 26 | - }) | |
| 27 | -} | |
| 28 | - | |
| 29 | -// 修改${functionName} | |
| 30 | -export function update${BusinessName}(data) { | |
| 31 | - return request({ | |
| 32 | - url: '/${moduleName}/${businessName}', | |
| 33 | - method: 'put', | |
| 34 | - data: data | |
| 35 | - }) | |
| 36 | -} | |
| 37 | - | |
| 38 | -// 删除${functionName} | |
| 39 | -export function del${BusinessName}(${pkColumn.javaField}) { | |
| 40 | - return request({ | |
| 41 | - url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, | |
| 42 | - method: 'delete' | |
| 43 | - }) | |
| 44 | -} | |
| 45 | - | |
| 46 | -// 导出${functionName} | |
| 47 | -export function export${BusinessName}(query) { | |
| 48 | - return request({ | |
| 49 | - url: '/${moduleName}/${businessName}/export', | |
| 50 | - method: 'get', | |
| 51 | - params: query | |
| 52 | - }) | |
| 53 | -} | |
| 54 | 1 | \ No newline at end of file |
| 2 | +import request from '@/utils/request' | |
| 3 | + | |
| 4 | +// 创建字典类型 | |
| 5 | +export function createTestDemo(data) { | |
| 6 | + return request({ | |
| 7 | + url: '/tool/test-demo/create', | |
| 8 | + method: 'post', | |
| 9 | + data: data | |
| 10 | + }) | |
| 11 | +} | |
| 12 | + | |
| 13 | +// 更新字典类型 | |
| 14 | +export function updateTestDemo(data) { | |
| 15 | + return request({ | |
| 16 | + url: '/tool/test-demo/update', | |
| 17 | + method: 'put', | |
| 18 | + data: data | |
| 19 | + }) | |
| 20 | +} | |
| 21 | + | |
| 22 | + | |
| 23 | +// 删除字典类型 | |
| 24 | +export function deleteTestDemo(id) { | |
| 25 | + return request({ | |
| 26 | + url: '/tool/test-demo/delelte?id=' + id, | |
| 27 | + method: 'delete' | |
| 28 | + }) | |
| 29 | +} | |
| 30 | + | |
| 31 | +// 获得字典类型 | |
| 32 | +export function getTestDemo(id) { | |
| 33 | + return request({ | |
| 34 | + url: '/tool/test-demo/get?id=' + id, | |
| 35 | + method: 'get' | |
| 36 | + }) | |
| 37 | +} | |
| 38 | + | |
| 39 | +// 获得字典类型分页 | |
| 40 | +export function getTestDemoPage(query) { | |
| 41 | + return request({ | |
| 42 | + url: '/tool/test-demo/page', | |
| 43 | + method: 'get', | |
| 44 | + params: query | |
| 45 | + }) | |
| 46 | +} | |
| 47 | + | |
| 48 | +// 导出字典类型 Excel | |
| 49 | +export function exportTestDemoExcel(query) { | |
| 50 | + return request({ | |
| 51 | + url: '/tool/test-demo/export-excel', | |
| 52 | + method: 'get', | |
| 53 | + params: query, | |
| 54 | + reponseBody: 'blob' | |
| 55 | + }) | |
| 56 | +} | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/tool/service/codegen/impl/ToolCodegenEngine.java
| ... | ... | @@ -81,6 +81,8 @@ public class ToolCodegenEngine { |
| 81 | 81 | // Vue |
| 82 | 82 | .put(vueTemplatePath("views/index.vue"), |
| 83 | 83 | vueFilePath("views/${table.moduleName}/${table.businessName}/index.vue")) |
| 84 | + .put(vueTemplatePath("api/api.js"), | |
| 85 | + vueFilePath("api/${table.moduleName}/${classNameVar}.js")) | |
| 84 | 86 | // SQL |
| 85 | 87 | .build(); |
| 86 | 88 | |
| ... | ... | @@ -163,6 +165,7 @@ public class ToolCodegenEngine { |
| 163 | 165 | filePath = StrUtil.replace(filePath, "${table.moduleName}", table.getModuleName()); |
| 164 | 166 | filePath = StrUtil.replace(filePath, "${table.businessName}", table.getBusinessName()); |
| 165 | 167 | filePath = StrUtil.replace(filePath, "${table.className}", table.getClassName()); |
| 168 | + filePath = StrUtil.replace(filePath, "${classNameVar}", (String) bindingMap.get("classNameVar")); | |
| 166 | 169 | return filePath; |
| 167 | 170 | } |
| 168 | 171 | ... | ... |
src/main/resources/codegen/vue/api/api.js.vm
| 1 | 1 | import request from '@/utils/request' |
| 2 | +#set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}") | |
| 2 | 3 | |
| 3 | -// 查询${functionName}列表 | |
| 4 | -export function list${BusinessName}(query) { | |
| 4 | +// 创建${table.classComment} | |
| 5 | +export function create${simpleClassName}(data) { | |
| 5 | 6 | return request({ |
| 6 | - url: '/${moduleName}/${businessName}/list', | |
| 7 | - method: 'get', | |
| 8 | - params: query | |
| 7 | + url: '${baseURL}/create', | |
| 8 | + method: 'post', | |
| 9 | + data: data | |
| 9 | 10 | }) |
| 10 | 11 | } |
| 11 | 12 | |
| 12 | -// 查询${functionName}详细 | |
| 13 | -export function get${BusinessName}(${pkColumn.javaField}) { | |
| 13 | +// 更新${table.classComment} | |
| 14 | +export function update${simpleClassName}(data) { | |
| 14 | 15 | return request({ |
| 15 | - url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, | |
| 16 | - method: 'get' | |
| 16 | + url: '${baseURL}/update', | |
| 17 | + method: 'put', | |
| 18 | + data: data | |
| 17 | 19 | }) |
| 18 | 20 | } |
| 19 | 21 | |
| 20 | -// 新增${functionName} | |
| 21 | -export function add${BusinessName}(data) { | |
| 22 | + | |
| 23 | +// 删除${table.classComment} | |
| 24 | +export function delete${simpleClassName}(id) { | |
| 22 | 25 | return request({ |
| 23 | - url: '/${moduleName}/${businessName}', | |
| 24 | - method: 'post', | |
| 25 | - data: data | |
| 26 | + url: '${baseURL}/delelte?id=' + id, | |
| 27 | + method: 'delete' | |
| 26 | 28 | }) |
| 27 | 29 | } |
| 28 | 30 | |
| 29 | -// 修改${functionName} | |
| 30 | -export function update${BusinessName}(data) { | |
| 31 | +// 获得${table.classComment} | |
| 32 | +export function get${simpleClassName}(id) { | |
| 31 | 33 | return request({ |
| 32 | - url: '/${moduleName}/${businessName}', | |
| 33 | - method: 'put', | |
| 34 | - data: data | |
| 34 | + url: '${baseURL}/get?id=' + id, | |
| 35 | + method: 'get' | |
| 35 | 36 | }) |
| 36 | 37 | } |
| 37 | 38 | |
| 38 | -// 删除${functionName} | |
| 39 | -export function del${BusinessName}(${pkColumn.javaField}) { | |
| 39 | +// 获得${table.classComment}分页 | |
| 40 | +export function get${simpleClassName}Page(query) { | |
| 40 | 41 | return request({ |
| 41 | - url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, | |
| 42 | - method: 'delete' | |
| 42 | + url: '${baseURL}/page', | |
| 43 | + method: 'get', | |
| 44 | + params: query | |
| 43 | 45 | }) |
| 44 | 46 | } |
| 45 | 47 | |
| 46 | -// 导出${functionName} | |
| 47 | -export function export${BusinessName}(query) { | |
| 48 | +// 导出${table.classComment} Excel | |
| 49 | +export function export${simpleClassName}Excel(query) { | |
| 48 | 50 | return request({ |
| 49 | - url: '/${moduleName}/${businessName}/export', | |
| 51 | + url: '${baseURL}/export-excel', | |
| 50 | 52 | method: 'get', |
| 51 | - params: query | |
| 53 | + params: query, | |
| 54 | + reponseBody: 'blob' | |
| 52 | 55 | }) |
| 53 | -} | |
| 54 | 56 | \ No newline at end of file |
| 57 | +} | ... | ... |
src/main/resources/codegen/vue/views/index.vue.vm
| ... | ... | @@ -111,14 +111,17 @@ |
| 111 | 111 | </el-form-item> |
| 112 | 112 | #end |
| 113 | 113 | #elseif($column.htmlType == "imageUpload")## 图片上传 |
| 114 | + #set ($hasImageUploadColumn = true) | |
| 114 | 115 | <el-form-item label="${comment}"> |
| 115 | 116 | <imageUpload v-model="form.${javaField}"/> |
| 116 | 117 | </el-form-item> |
| 117 | 118 | #elseif($column.htmlType == "fileUpload")## 文件上传 |
| 119 | + #set ($hasFileUploadColumn = true) | |
| 118 | 120 | <el-form-item label="${comment}"> |
| 119 | 121 | <fileUpload v-model="form.${javaField}"/> |
| 120 | 122 | </el-form-item> |
| 121 | 123 | #elseif($column.htmlType == "editor")## 文本编辑器 |
| 124 | + #set ($hasEditorColumn = true) | |
| 122 | 125 | <el-form-item label="${comment}"> |
| 123 | 126 | <editor v-model="form.${javaField}" :min-height="192"/> |
| 124 | 127 | </el-form-item> |
| ... | ... | @@ -176,46 +179,28 @@ |
| 176 | 179 | </template> |
| 177 | 180 | |
| 178 | 181 | <script> |
| 179 | -import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName}, export${BusinessName} } from "@/api/${moduleName}/${businessName}"; | |
| 180 | -#foreach($column in $columns) | |
| 181 | -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "imageUpload") | |
| 182 | +import { create${simpleClassName}, update${simpleClassName}, delete${simpleClassName}, get${simpleClassName}, get${simpleClassName}Page, export${simpleClassName}Excel } from "@/api/${table.moduleName}/${classNameVar}"; | |
| 183 | +#if ($hasImageUploadColumn) | |
| 182 | 184 | import ImageUpload from '@/components/ImageUpload'; |
| 183 | -#break | |
| 184 | -#end | |
| 185 | 185 | #end |
| 186 | -#foreach($column in $columns) | |
| 187 | -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "fileUpload") | |
| 186 | +#if ($hasFileUploadColumn) | |
| 188 | 187 | import FileUpload from '@/components/FileUpload'; |
| 189 | -#break | |
| 190 | 188 | #end |
| 191 | -#end | |
| 192 | -#foreach($column in $columns) | |
| 193 | -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor") | |
| 189 | +#if ($hasEditorColumn) | |
| 194 | 190 | import Editor from '@/components/Editor'; |
| 195 | -#break | |
| 196 | -#end | |
| 197 | 191 | #end |
| 198 | 192 | |
| 199 | 193 | export default { |
| 200 | - name: "${BusinessName}", | |
| 194 | + name: "${simpleClassName}", | |
| 201 | 195 | components: { |
| 202 | -#foreach($column in $columns) | |
| 203 | -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "imageUpload") | |
| 196 | +#if ($hasImageUploadColumn) | |
| 204 | 197 | ImageUpload, |
| 205 | -#break | |
| 206 | -#end | |
| 207 | 198 | #end |
| 208 | -#foreach($column in $columns) | |
| 209 | -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "fileUpload") | |
| 199 | +#if ($hasFileUploadColumn) | |
| 210 | 200 | FileUpload, |
| 211 | -#break | |
| 212 | -#end | |
| 213 | 201 | #end |
| 214 | -#foreach($column in $columns) | |
| 215 | -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor") | |
| 202 | +#if ($hasEditorColumn) | |
| 216 | 203 | Editor, |
| 217 | -#break | |
| 218 | -#end | |
| 219 | 204 | #end |
| 220 | 205 | }, |
| 221 | 206 | data() { |
| ... | ... | @@ -232,63 +217,37 @@ export default { |
| 232 | 217 | title: "", |
| 233 | 218 | // 是否显示弹出层 |
| 234 | 219 | open: false, |
| 235 | -#foreach ($column in $columns) | |
| 236 | -#set($parentheseIndex=$column.columnComment.indexOf("(")) | |
| 237 | -#if($parentheseIndex != -1) | |
| 238 | -#set($comment=$column.columnComment.substring(0, $parentheseIndex)) | |
| 239 | -#else | |
| 240 | -#set($comment=$column.columnComment) | |
| 241 | -#end | |
| 242 | -#if(${column.dictType} != '') | |
| 243 | - // $comment字典 | |
| 244 | - ${column.javaField}Options: [], | |
| 245 | -#elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN") | |
| 246 | -#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) | |
| 247 | - // $comment时间范围 | |
| 220 | + #foreach ($column in $columns)## 时间范围 | |
| 221 | + #if ($column.htmlType == "datetime" && $column.listOperationCondition == "BETWEEN") | |
| 222 | + #set ($AttrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) | |
| 248 | 223 | dateRange${AttrName}: [], |
| 249 | -#end | |
| 250 | -#end | |
| 224 | + #end | |
| 225 | + #end | |
| 251 | 226 | // 查询参数 |
| 252 | 227 | queryParams: { |
| 253 | 228 | pageNo: 1, |
| 254 | 229 | pageSize: 10, |
| 255 | -#foreach ($column in $columns) | |
| 256 | -#if($column.query) | |
| 257 | - $column.javaField: null#if($velocityCount != $columns.size()),#end | |
| 258 | - | |
| 259 | -#end | |
| 260 | -#end | |
| 230 | + #foreach ($column in $columns) | |
| 231 | + #if ($column.listOperation && $column.listOperationCondition != 'BETWEEN') | |
| 232 | + $column.javaField: null, | |
| 233 | + #end | |
| 234 | + #end | |
| 261 | 235 | }, |
| 262 | 236 | // 表单参数 |
| 263 | 237 | form: {}, |
| 264 | 238 | // 表单校验 |
| 265 | 239 | rules: { |
| 266 | -#foreach ($column in $columns) | |
| 267 | -#if($column.required) | |
| 268 | -#set($parentheseIndex=$column.columnComment.indexOf("(")) | |
| 269 | -#if($parentheseIndex != -1) | |
| 270 | -#set($comment=$column.columnComment.substring(0, $parentheseIndex)) | |
| 271 | -#else | |
| 272 | -#set($comment=$column.columnComment) | |
| 273 | -#end | |
| 274 | - $column.javaField: [ | |
| 275 | - { required: true, message: "$comment不能为空", trigger: #if($column.htmlType == "select")"change"#else"blur"#end } | |
| 276 | - ]#if($velocityCount != $columns.size()),#end | |
| 277 | - | |
| 278 | -#end | |
| 279 | -#end | |
| 240 | + #foreach ($column in $columns) | |
| 241 | + #if (($column.createOperation || $column.updateOperation) && !$column.nullable && !${column.primaryKey})## 创建或者更新操作 && 要求非空 && 非主键 | |
| 242 | + #set($comment=$column.columnComment) | |
| 243 | + $column.javaField: [{ required: true, message: "${comment}不能为空", trigger: #if($column.htmlType == "select")"change"#else"blur"#end }], | |
| 244 | + #end | |
| 245 | + #end | |
| 280 | 246 | } |
| 281 | 247 | }; |
| 282 | 248 | }, |
| 283 | 249 | created() { |
| 284 | 250 | this.getList(); |
| 285 | -#foreach ($column in $columns) | |
| 286 | -#if(${column.dictType} != '') | |
| 287 | - this.getDicts("${column.dictType}").then(response => { | |
| 288 | - this.${column.javaField}Options = response.data; | |
| 289 | - }); | |
| 290 | -#end | |
| 291 | -#end | |
| 292 | 251 | }, |
| 293 | 252 | methods: { |
| 294 | 253 | /** 查询${functionName}列表 */ |
| ... | ... | @@ -379,6 +338,8 @@ export default { |
| 379 | 338 | submitForm() { |
| 380 | 339 | this.#[[$]]#refs["form"].validate(valid => { |
| 381 | 340 | if (valid) { |
| 341 | + return; | |
| 342 | + } | |
| 382 | 343 | #foreach ($column in $columns) |
| 383 | 344 | #if($column.htmlType == "checkbox") |
| 384 | 345 | this.form.$column.javaField = this.form.${column.javaField}.join(","); |
| ... | ... | @@ -402,7 +363,7 @@ export default { |
| 402 | 363 | }, |
| 403 | 364 | /** 删除按钮操作 */ |
| 404 | 365 | handleDelete(row) { |
| 405 | - const ${pkColumn.javaField}s = row.${pkColumn.javaField} || this.ids; | |
| 366 | + const ${pkColumn.javaField}s = row.${pkColumn.javaField}; | |
| 406 | 367 | this.$confirm('是否确认删除${functionName}编号为"' + ${pkColumn.javaField}s + '"的数据项?', "警告", { |
| 407 | 368 | confirmButtonText: "确定", |
| 408 | 369 | cancelButtonText: "取消", | ... | ... |