代码生成优化 其他一些小优化

This commit is contained in:
吕金泽
2022-04-01 20:35:18 +08:00
parent b91328dcc7
commit df0bb5c38f
12 changed files with 121 additions and 48 deletions
@@ -1,10 +1,10 @@
{ {
"properties" : { }, "properties" : { },
"id" : "46a5f8f41666462987ae042469b99ff4", "id" : "ae425d18ae6f44c9adc25028eb891d15",
"script" : null, "script" : null,
"groupId" : "7bdcc43555b9419caba2ee722e1aa2d3", "groupId" : "7bdcc43555b9419caba2ee722e1aa2d3",
"name" : "保存", "name" : "保存",
"createTime" : 1648655132918, "createTime" : 1648780777664,
"updateTime" : null, "updateTime" : null,
"lock" : null, "lock" : null,
"createBy" : null, "createBy" : null,
@@ -24,6 +24,18 @@
"error" : null, "error" : null,
"expression" : null, "expression" : null,
"children" : null "children" : null
}, {
"name" : "permission",
"value" : "data:test:save",
"description" : "允许拥有该权限的访问",
"required" : false,
"dataType" : "String",
"type" : null,
"defaultValue" : null,
"validateType" : null,
"error" : null,
"expression" : null,
"children" : null
} ], } ],
"requestBody" : null, "requestBody" : null,
"headers" : [ ], "headers" : [ ],
@@ -1,10 +1,10 @@
{ {
"properties" : { }, "properties" : { },
"id" : "d94a4788e17a4e0f9b67ca86b171e231", "id" : "33639781fde24f32902b486bd0edd6ca",
"script" : null, "script" : null,
"groupId" : "7bdcc43555b9419caba2ee722e1aa2d3", "groupId" : "7bdcc43555b9419caba2ee722e1aa2d3",
"name" : "列表", "name" : "列表",
"createTime" : 1648655132912, "createTime" : 1648780777658,
"updateTime" : null, "updateTime" : null,
"lock" : null, "lock" : null,
"createBy" : null, "createBy" : null,
@@ -12,7 +12,19 @@
"path" : "/list", "path" : "/list",
"method" : "POST", "method" : "POST",
"parameters" : [ ], "parameters" : [ ],
"options" : [ ], "options" : [ {
"name" : "permission",
"value" : "data:test:view",
"description" : "允许拥有该权限的访问",
"required" : false,
"dataType" : "String",
"type" : null,
"defaultValue" : null,
"validateType" : null,
"error" : null,
"expression" : null,
"children" : null
} ],
"requestBody" : null, "requestBody" : null,
"headers" : [ ], "headers" : [ ],
"paths" : [ ], "paths" : [ ],
@@ -1,10 +1,10 @@
{ {
"properties" : { }, "properties" : { },
"id" : "e1df886fe7604810b495d555abaa6200", "id" : "5019707e422245b89e0b2bf00f9a2ec8",
"script" : null, "script" : null,
"groupId" : "7bdcc43555b9419caba2ee722e1aa2d3", "groupId" : "7bdcc43555b9419caba2ee722e1aa2d3",
"name" : "删除", "name" : "删除",
"createTime" : 1648655132924, "createTime" : 1648780777671,
"updateTime" : null, "updateTime" : null,
"lock" : null, "lock" : null,
"createBy" : null, "createBy" : null,
@@ -12,7 +12,19 @@
"path" : "/delete", "path" : "/delete",
"method" : "DELETE", "method" : "DELETE",
"parameters" : [ ], "parameters" : [ ],
"options" : [ ], "options" : [ {
"name" : "permission",
"value" : "data:test:delete",
"description" : "允许拥有该权限的访问",
"required" : false,
"dataType" : "String",
"type" : null,
"defaultValue" : null,
"validateType" : null,
"error" : null,
"expression" : null,
"children" : null
} ],
"requestBody" : null, "requestBody" : null,
"headers" : [ ], "headers" : [ ],
"paths" : [ ], "paths" : [ ],
@@ -1,10 +1,10 @@
{ {
"properties" : { }, "properties" : { },
"id" : "c999de118aa04594bc14c0e3f5ade568", "id" : "ad14a4bc8cf54fc792125a59bc2d34ad",
"script" : null, "script" : null,
"groupId" : "7bdcc43555b9419caba2ee722e1aa2d3", "groupId" : "7bdcc43555b9419caba2ee722e1aa2d3",
"name" : "详情", "name" : "详情",
"createTime" : 1648655132931, "createTime" : 1648780777677,
"updateTime" : null, "updateTime" : null,
"lock" : null, "lock" : null,
"createBy" : null, "createBy" : null,
@@ -12,7 +12,19 @@
"path" : "/get", "path" : "/get",
"method" : "GET", "method" : "GET",
"parameters" : [ ], "parameters" : [ ],
"options" : [ ], "options" : [ {
"name" : "permission",
"value" : "data:test:view",
"description" : "允许拥有该权限的访问",
"required" : false,
"dataType" : "String",
"type" : null,
"defaultValue" : null,
"validateType" : null,
"error" : null,
"expression" : null,
"children" : null
} ],
"requestBody" : null, "requestBody" : null,
"headers" : [ ], "headers" : [ ],
"paths" : [ ], "paths" : [ ],
@@ -5,7 +5,7 @@
"groupId" : "f2538e0f370a4cabab0ae920f5e77ae7", "groupId" : "f2538e0f370a4cabab0ae920f5e77ae7",
"name" : "执行生成", "name" : "执行生成",
"createTime" : null, "createTime" : null,
"updateTime" : 1648651494341, "updateTime" : 1648780783577,
"lock" : null, "lock" : null,
"createBy" : null, "createBy" : null,
"updateBy" : null, "updateBy" : null,
@@ -308,7 +308,7 @@ if(commonField.contains('is_del')){
wheres += ` and is_del = 0\n` wheres += ` and is_del = 0\n`
} }
wheres = wheres.substring(0,wheres.length() - 1) wheres = wheres.substring(0,wheres.length() - 1)
var permissionPrefix = (info.modulePath + info.businessPath).replace(/^\//,'').replace(/\/\//, '/').replace('/', ':')
ApiInfo listApi = new ApiInfo() ApiInfo listApi = new ApiInfo()
listApi.setName("列表") listApi.setName("列表")
listApi.setPath("/list") listApi.setPath("/list")
@@ -318,6 +318,7 @@ listApi.setScript(`return db.page("""
select ${primary},${listFields} from ${tableName} where 1=1 select ${primary},${listFields} from ${tableName} where 1=1
${wheres} ${wheres}
""")`) """)`)
listApi.setOption([new Option('permission', `${permissionPrefix}:view`, '允许拥有该权限的访问')])
MagicResourceService.saveFile(listApi) MagicResourceService.saveFile(listApi)
var saveMethod = 'save(data)' var saveMethod = 'save(data)'
@@ -331,7 +332,7 @@ saveApi.setPath("/save")
saveApi.setMethod("POST") saveApi.setMethod("POST")
saveApi.setGroupId(businessGroup.getId()) saveApi.setGroupId(businessGroup.getId())
saveApi.setScript(`return db.table('${tableName}').primary('${primary}').${saveMethod}`) saveApi.setScript(`return db.table('${tableName}').primary('${primary}').${saveMethod}`)
saveApi.setOption([new Option('wrap_request_parameter', 'data')]) saveApi.setOption([new Option('wrap_request_parameter', 'data'), new Option('permission', `${permissionPrefix}:save`, '允许拥有该权限的访问')])
MagicResourceService.saveFile(saveApi) MagicResourceService.saveFile(saveApi)
ApiInfo deleteApi = new ApiInfo() ApiInfo deleteApi = new ApiInfo()
@@ -340,6 +341,7 @@ deleteApi.setPath("/delete")
deleteApi.setMethod("DELETE") deleteApi.setMethod("DELETE")
deleteApi.setGroupId(businessGroup.getId()) deleteApi.setGroupId(businessGroup.getId())
deleteApi.setScript(`return db.table('${tableName}')${logic}.where().eq('${primary}', ${primaryLowerCamelCase}).delete()`) deleteApi.setScript(`return db.table('${tableName}')${logic}.where().eq('${primary}', ${primaryLowerCamelCase}).delete()`)
deleteApi.setOption([new Option('permission', `${permissionPrefix}:delete`, '允许拥有该权限的访问')])
MagicResourceService.saveFile(deleteApi) MagicResourceService.saveFile(deleteApi)
var saveFields = columns.filter(it => it.save).map(it => it.columnName.replace(/([A-Z])/g,"_$1").toLowerCase()).join(',') var saveFields = columns.filter(it => it.save).map(it => it.columnName.replace(/([A-Z])/g,"_$1").toLowerCase()).join(',')
@@ -352,6 +354,7 @@ getApi.setGroupId(businessGroup.getId())
getApi.setScript(`return db.selectOne(""" getApi.setScript(`return db.selectOne("""
select ${primary},${saveFields} from ${tableName} where ${primary} = #{${primaryLowerCamelCase}} select ${primary},${saveFields} from ${tableName} where ${primary} = #{${primaryLowerCamelCase}}
""")`) """)`)
getApi.setOption([new Option('permission', `${permissionPrefix}:view`, '允许拥有该权限的访问')])
MagicResourceService.saveFile(getApi) MagicResourceService.saveFile(getApi)
@@ -1,10 +1,10 @@
{ {
"properties" : { }, "properties" : { },
"id" : "f4ebe91beaef452498879a98556481eb", "id" : "64c78249fafd4ddcbcac12d734645b67",
"script" : null, "script" : null,
"groupId" : "eb5dbed949de4f50ba4bf59f483252a5", "groupId" : "eb5dbed949de4f50ba4bf59f483252a5",
"name" : "列表", "name" : "列表",
"createTime" : 1648655132940, "createTime" : 1648780777685,
"updateTime" : null, "updateTime" : null,
"lock" : null, "lock" : null,
"createBy" : null, "createBy" : null,
@@ -55,22 +55,20 @@
}, },
cols: [ cols: [
{ {
field: 'name', field: 'name',
label: '名字' label: '名字'
}, },
{ {
dictType: 'sex',
field: 'sex', field: 'sex',
label: '性别' label: '性别',
dictType: 'sex'
}, },
{ {
field: 'headPortrait', field: 'headPortrait',
label: '头像' label: '头像',
type: 'image'
}, },
{ {
field: 'remarks', field: 'remarks',
label: '备注' label: '备注'
},{ },{
@@ -124,7 +122,7 @@
name: 'name', name: 'name',
label: '名字', label: '名字',
component: 'input', component: 'input',
rules: [{ required: true, message: '请输入名字', trigger: 'change' }]
},{ },{
span: 12, span: 12,
name: 'sex', name: 'sex',
@@ -138,7 +136,7 @@
name: 'headPortrait', name: 'headPortrait',
label: '头像', label: '头像',
component: 'upload-image', component: 'upload-image',
rules: [{ required: true, message: '请选择头像', trigger: 'change' }]
},{ },{
span: 12, span: 12,
name: 'remarks', name: 'remarks',
@@ -147,8 +145,7 @@
props: { props: {
type: 'textarea' type: 'textarea'
} }
,
}] }]
}] }]
} }
@@ -14,7 +14,7 @@
@close="$emit('close')" @close="$emit('close')"
> >
<slot name="content" /> <slot name="content" />
<template #footer> <template v-if="showFooter" #footer>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<slot name="btns"> <slot name="btns">
<el-button @click="hide"> <el-button @click="hide">
@@ -48,6 +48,10 @@ export default {
destroyOnClose: { destroyOnClose: {
type: Boolean, type: Boolean,
default: true default: true
},
showFooter: {
type: Boolean,
default: true
} }
}, },
data() { data() {
@@ -31,7 +31,11 @@
</el-button> </el-button>
</template> </template>
</div> </div>
<el-image v-else-if="col.type === 'image'" :src="scope.row[col.field]" :preview-src-list="[scope.row[col.field]]" /> <el-image
v-else-if="col.type === 'image'"
:src="scope.row[col.field].startsWith('http') ? scope.row[col.field] : $global.baseApi + scope.row[col.field]"
:preview-src-list="[scope.row[col.field].startsWith('http') ? scope.row[col.field] : $global.baseApi + scope.row[col.field]]"
/>
<span v-else-if="col.type === 'html'" v-html="scope.row[col.field]"></span> <span v-else-if="col.type === 'html'" v-html="scope.row[col.field]"></span>
<span v-else-if="col.click"> <span v-else-if="col.click">
<a style="color: blue" @click="col.click(scope.row)">{{ scope.row[col.field] }}</a> <a style="color: blue" @click="col.click(scope.row)">{{ scope.row[col.field] }}</a>
+11 -7
View File
@@ -6,14 +6,18 @@
</div> </div>
<div class="header-right"> <div class="header-right">
<div class="avatar"> <div class="avatar">
<el-avatar :size="40" fit="contain" :src="$global.baseApi + $global.user.info.headPortrait">
{{ !$global.user.info.headPortrait ? $global.user.info.name.substring(0,1) : '' }}
</el-avatar>
<el-dropdown> <el-dropdown>
<span class="username">{{ $global.user.info.username }}</span> <el-col>
<el-icon class="el-icon--right" color="white"> <el-avatar :size="40" fit="contain" :src="$global.baseApi + $global.user.info.headPortrait">
<arrow-down /> {{ !$global.user.info.headPortrait ? $global.user.info.name.substring(0,1) : '' }}
</el-icon> </el-avatar>
</el-col>
<el-col style="line-height: 40px;">
<span class="username">{{ $global.user.info.username }}</span>
<el-icon class="el-icon--right" color="white">
<arrow-down />
</el-icon>
</el-col>
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
<router-link to="/user-center"> <router-link to="/user-center">
+24 -11
View File
@@ -43,18 +43,22 @@ function gen(groupPath, data){
for(var i in data){ for(var i in data){
var d = data[i] var d = data[i]
if(d.list){ if(d.list){
var type = ''
if(d.component){
if(d.component.indexOf('upload-image') != -1){
type = `,
type: 'image'`
}
}
var dictType = ''
if(d.dictType){ if(d.dictType){
html += ` dictType = `,
{ dictType: '${d.dictType}'`
dictType: '${d.dictType}',`
}else{
html += `
{
`
} }
html += ` html += `
{
field: '${d.columnName}', field: '${d.columnName}',
label: '${d.columnComment}' label: '${d.columnComment}'${type}${dictType}
},` },`
} }
} }
@@ -111,16 +115,25 @@ function gen(groupPath, data){
if(d.save){ if(d.save){
var props = '' var props = ''
if(d.dictType){ if(d.dictType){
props = `props: { props = `,
props: {
type: '${d.dictType}' type: '${d.dictType}'
}` }`
} }
var rules = ''
if(d.required){
var messagePrefix = '请选择'
if(d.component.indexOf('input') != -1){
messagePrefix = '请输入'
}
rules = `,
rules: [{ required: true, message: '${messagePrefix}${d.columnComment}', trigger: 'change' }]`
}
html += `{ html += `{
span: 12, span: 12,
name: '${d.columnName}', name: '${d.columnName}',
label: '${d.columnComment}', label: '${d.columnComment}',
${d.component}, ${d.component}${props}${rules}
${props}
},` },`
} }
} }
@@ -49,7 +49,7 @@
</template> </template>
</mb-dialog> </mb-dialog>
<mb-dialog ref="dictItemsDialog" title="字典项" width="1400px"> <mb-dialog ref="dictItemsDialog" title="字典项" width="1400px" :show-footer="false">
<template #content> <template #content>
<dict-items :key="Math.random()" v-model:dict-id="dictId" /> <dict-items :key="Math.random()" v-model:dict-id="dictId" />
</template> </template>
@@ -1,5 +1,5 @@
<template> <template>
<el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="80px" v-if="isForm"> <el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="90px" v-if="isForm">
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="登录名称" prop="username"> <el-form-item label="登录名称" prop="username">