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 | \ No newline at end of file | 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,6 +81,8 @@ public class ToolCodegenEngine { | ||
| 81 | // Vue | 81 | // Vue |
| 82 | .put(vueTemplatePath("views/index.vue"), | 82 | .put(vueTemplatePath("views/index.vue"), |
| 83 | vueFilePath("views/${table.moduleName}/${table.businessName}/index.vue")) | 83 | vueFilePath("views/${table.moduleName}/${table.businessName}/index.vue")) |
| 84 | + .put(vueTemplatePath("api/api.js"), | ||
| 85 | + vueFilePath("api/${table.moduleName}/${classNameVar}.js")) | ||
| 84 | // SQL | 86 | // SQL |
| 85 | .build(); | 87 | .build(); |
| 86 | 88 | ||
| @@ -163,6 +165,7 @@ public class ToolCodegenEngine { | @@ -163,6 +165,7 @@ public class ToolCodegenEngine { | ||
| 163 | filePath = StrUtil.replace(filePath, "${table.moduleName}", table.getModuleName()); | 165 | filePath = StrUtil.replace(filePath, "${table.moduleName}", table.getModuleName()); |
| 164 | filePath = StrUtil.replace(filePath, "${table.businessName}", table.getBusinessName()); | 166 | filePath = StrUtil.replace(filePath, "${table.businessName}", table.getBusinessName()); |
| 165 | filePath = StrUtil.replace(filePath, "${table.className}", table.getClassName()); | 167 | filePath = StrUtil.replace(filePath, "${table.className}", table.getClassName()); |
| 168 | + filePath = StrUtil.replace(filePath, "${classNameVar}", (String) bindingMap.get("classNameVar")); | ||
| 166 | return filePath; | 169 | return filePath; |
| 167 | } | 170 | } |
| 168 | 171 |
src/main/resources/codegen/vue/api/api.js.vm
| 1 | import request from '@/utils/request' | 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 | return request({ | 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 | return request({ | 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 | return request({ | 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 | return request({ | 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 | return request({ | 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 | return request({ | 50 | return request({ |
| 49 | - url: '/${moduleName}/${businessName}/export', | 51 | + url: '${baseURL}/export-excel', |
| 50 | method: 'get', | 52 | method: 'get', |
| 51 | - params: query | 53 | + params: query, |
| 54 | + reponseBody: 'blob' | ||
| 52 | }) | 55 | }) |
| 53 | -} | ||
| 54 | \ No newline at end of file | 56 | \ No newline at end of file |
| 57 | +} |
src/main/resources/codegen/vue/views/index.vue.vm
| @@ -111,14 +111,17 @@ | @@ -111,14 +111,17 @@ | ||
| 111 | </el-form-item> | 111 | </el-form-item> |
| 112 | #end | 112 | #end |
| 113 | #elseif($column.htmlType == "imageUpload")## 图片上传 | 113 | #elseif($column.htmlType == "imageUpload")## 图片上传 |
| 114 | + #set ($hasImageUploadColumn = true) | ||
| 114 | <el-form-item label="${comment}"> | 115 | <el-form-item label="${comment}"> |
| 115 | <imageUpload v-model="form.${javaField}"/> | 116 | <imageUpload v-model="form.${javaField}"/> |
| 116 | </el-form-item> | 117 | </el-form-item> |
| 117 | #elseif($column.htmlType == "fileUpload")## 文件上传 | 118 | #elseif($column.htmlType == "fileUpload")## 文件上传 |
| 119 | + #set ($hasFileUploadColumn = true) | ||
| 118 | <el-form-item label="${comment}"> | 120 | <el-form-item label="${comment}"> |
| 119 | <fileUpload v-model="form.${javaField}"/> | 121 | <fileUpload v-model="form.${javaField}"/> |
| 120 | </el-form-item> | 122 | </el-form-item> |
| 121 | #elseif($column.htmlType == "editor")## 文本编辑器 | 123 | #elseif($column.htmlType == "editor")## 文本编辑器 |
| 124 | + #set ($hasEditorColumn = true) | ||
| 122 | <el-form-item label="${comment}"> | 125 | <el-form-item label="${comment}"> |
| 123 | <editor v-model="form.${javaField}" :min-height="192"/> | 126 | <editor v-model="form.${javaField}" :min-height="192"/> |
| 124 | </el-form-item> | 127 | </el-form-item> |
| @@ -176,46 +179,28 @@ | @@ -176,46 +179,28 @@ | ||
| 176 | </template> | 179 | </template> |
| 177 | 180 | ||
| 178 | <script> | 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 | import ImageUpload from '@/components/ImageUpload'; | 184 | import ImageUpload from '@/components/ImageUpload'; |
| 183 | -#break | ||
| 184 | -#end | ||
| 185 | #end | 185 | #end |
| 186 | -#foreach($column in $columns) | ||
| 187 | -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "fileUpload") | 186 | +#if ($hasFileUploadColumn) |
| 188 | import FileUpload from '@/components/FileUpload'; | 187 | import FileUpload from '@/components/FileUpload'; |
| 189 | -#break | ||
| 190 | #end | 188 | #end |
| 191 | -#end | ||
| 192 | -#foreach($column in $columns) | ||
| 193 | -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor") | 189 | +#if ($hasEditorColumn) |
| 194 | import Editor from '@/components/Editor'; | 190 | import Editor from '@/components/Editor'; |
| 195 | -#break | ||
| 196 | -#end | ||
| 197 | #end | 191 | #end |
| 198 | 192 | ||
| 199 | export default { | 193 | export default { |
| 200 | - name: "${BusinessName}", | 194 | + name: "${simpleClassName}", |
| 201 | components: { | 195 | components: { |
| 202 | -#foreach($column in $columns) | ||
| 203 | -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "imageUpload") | 196 | +#if ($hasImageUploadColumn) |
| 204 | ImageUpload, | 197 | ImageUpload, |
| 205 | -#break | ||
| 206 | -#end | ||
| 207 | #end | 198 | #end |
| 208 | -#foreach($column in $columns) | ||
| 209 | -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "fileUpload") | 199 | +#if ($hasFileUploadColumn) |
| 210 | FileUpload, | 200 | FileUpload, |
| 211 | -#break | ||
| 212 | -#end | ||
| 213 | #end | 201 | #end |
| 214 | -#foreach($column in $columns) | ||
| 215 | -#if($column.insert && !$column.superColumn && !$column.pk && $column.htmlType == "editor") | 202 | +#if ($hasEditorColumn) |
| 216 | Editor, | 203 | Editor, |
| 217 | -#break | ||
| 218 | -#end | ||
| 219 | #end | 204 | #end |
| 220 | }, | 205 | }, |
| 221 | data() { | 206 | data() { |
| @@ -232,63 +217,37 @@ export default { | @@ -232,63 +217,37 @@ export default { | ||
| 232 | title: "", | 217 | title: "", |
| 233 | // 是否显示弹出层 | 218 | // 是否显示弹出层 |
| 234 | open: false, | 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 | dateRange${AttrName}: [], | 223 | dateRange${AttrName}: [], |
| 249 | -#end | ||
| 250 | -#end | 224 | + #end |
| 225 | + #end | ||
| 251 | // 查询参数 | 226 | // 查询参数 |
| 252 | queryParams: { | 227 | queryParams: { |
| 253 | pageNo: 1, | 228 | pageNo: 1, |
| 254 | pageSize: 10, | 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 | form: {}, | 237 | form: {}, |
| 264 | // 表单校验 | 238 | // 表单校验 |
| 265 | rules: { | 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 | created() { | 249 | created() { |
| 284 | this.getList(); | 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 | methods: { | 252 | methods: { |
| 294 | /** 查询${functionName}列表 */ | 253 | /** 查询${functionName}列表 */ |
| @@ -379,6 +338,8 @@ export default { | @@ -379,6 +338,8 @@ export default { | ||
| 379 | submitForm() { | 338 | submitForm() { |
| 380 | this.#[[$]]#refs["form"].validate(valid => { | 339 | this.#[[$]]#refs["form"].validate(valid => { |
| 381 | if (valid) { | 340 | if (valid) { |
| 341 | + return; | ||
| 342 | + } | ||
| 382 | #foreach ($column in $columns) | 343 | #foreach ($column in $columns) |
| 383 | #if($column.htmlType == "checkbox") | 344 | #if($column.htmlType == "checkbox") |
| 384 | this.form.$column.javaField = this.form.${column.javaField}.join(","); | 345 | this.form.$column.javaField = this.form.${column.javaField}.join(","); |
| @@ -402,7 +363,7 @@ export default { | @@ -402,7 +363,7 @@ export default { | ||
| 402 | }, | 363 | }, |
| 403 | /** 删除按钮操作 */ | 364 | /** 删除按钮操作 */ |
| 404 | handleDelete(row) { | 365 | handleDelete(row) { |
| 405 | - const ${pkColumn.javaField}s = row.${pkColumn.javaField} || this.ids; | 366 | + const ${pkColumn.javaField}s = row.${pkColumn.javaField}; |
| 406 | this.$confirm('是否确认删除${functionName}编号为"' + ${pkColumn.javaField}s + '"的数据项?', "警告", { | 367 | this.$confirm('是否确认删除${functionName}编号为"' + ${pkColumn.javaField}s + '"的数据项?', "警告", { |
| 407 | confirmButtonText: "确定", | 368 | confirmButtonText: "确定", |
| 408 | cancelButtonText: "取消", | 369 | cancelButtonText: "取消", |