增加自动化代码图片功能

This commit is contained in:
piexlMax
2023-06-08 22:57:23 +08:00
parent 92b78ab3c8
commit d2d7b22a8f
9 changed files with 323 additions and 57 deletions

View File

@@ -9,16 +9,16 @@
:rules="rules"
class="grid-form"
>
<el-form-item label="Field名称" prop="fieldName">
<el-form-item label="字段名称" prop="fieldName">
<el-input v-model="middleDate.fieldName" autocomplete="off" style="width:80%" />
<el-button style="width:18%;margin-left:2%" @click="autoFill">
<span style="font-size: 12px">自动填充</span>
</el-button>
</el-form-item>
<el-form-item label="Field中文名" prop="fieldDesc">
<el-form-item label="字段中文名" prop="fieldDesc">
<el-input v-model="middleDate.fieldDesc" autocomplete="off" />
</el-form-item>
<el-form-item label="FieldJSON" prop="fieldJson">
<el-form-item label="字段JSON" prop="fieldJson">
<el-input v-model="middleDate.fieldJson" autocomplete="off" />
</el-form-item>
<el-form-item label="数据库字段名" prop="columnName">
@@ -27,11 +27,11 @@
<el-form-item label="数据库字段描述" prop="comment">
<el-input v-model="middleDate.comment" autocomplete="off" />
</el-form-item>
<el-form-item label="Field数据类型" prop="fieldType">
<el-form-item label="字段类型" prop="fieldType">
<el-select
v-model="middleDate.fieldType"
style="width:100%"
placeholder="请选择field数据类型"
placeholder="请选择字段类型"
clearable
@change="clearOther"
>
@@ -40,17 +40,18 @@
:key="item.value"
:label="item.label"
:value="item.value"
:disabled="item.disabled"
/>
</el-select>
</el-form-item>
<el-form-item :label="middleDate.fieldType === 'enum' ? '枚举值' : '类型长度'" prop="dataTypeLong">
<el-input v-model="middleDate.dataTypeLong" :placeholder="middleDate.fieldType === 'enum'?`例:'北京','天津'`:'数据库类型长度'" />
</el-form-item>
<el-form-item label="Field查询条件" prop="fieldSearchType">
<el-form-item label="字段查询条件" prop="fieldSearchType">
<el-select
v-model="middleDate.fieldSearchType"
style="width:100%"
placeholder="请选择Field查询条件"
placeholder="请选择字段查询条件"
clearable
>
<el-option
@@ -58,10 +59,7 @@
:key="item.value"
:label="item.label"
:value="item.value"
:disabled="
(middleDate.fieldType!=='string'&&item.value==='LIKE')||
((middleDate.fieldType!=='int'&&middleDate.fieldType!=='time.Time'&&middleDate.fieldType!=='float64')&&(item.value==='BETWEEN' || item.value==='NOT BETWEEN'))
"
:disabled="canSelect(item.value)"
/>
</el-select>
</el-form-item>
@@ -169,23 +167,42 @@ const typeOptions = ref([
{
label: '枚举',
value: 'enum'
},
{
label: '单图片(字符串)',
value: 'picture',
},
{
label: '多图片(开发中)',
value: 'pictures',
disabled: true
},
{
label: '文件(开发中)',
value: 'file',
disabled: true
},
{
label: '多文件(开发中)',
value: 'files',
disabled: true
}
])
const rules = ref({
fieldName: [
{ required: true, message: '请输入field英文名', trigger: 'blur' }
{ required: true, message: '请输入字段英文名', trigger: 'blur' }
],
fieldDesc: [
{ required: true, message: '请输入field中文名', trigger: 'blur' }
{ required: true, message: '请输入字段中文名', trigger: 'blur' }
],
fieldJson: [
{ required: true, message: '请输入field格式化json', trigger: 'blur' }
{ required: true, message: '请输入字段格式化json', trigger: 'blur' }
],
columnName: [
{ required: true, message: '请输入数据库字段', trigger: 'blur' }
],
fieldType: [
{ required: true, message: '请选择field数据类型', trigger: 'blur' }
{ required: true, message: '请选择字段类型', trigger: 'blur' }
]
})
@@ -205,6 +222,18 @@ const autoFill = () => {
middleDate.value.columnName = toSQLLine(middleDate.value.fieldJson)
}
const canSelect = (item) => {
const fieldType = middleDate.value.fieldType
if (fieldType !== 'string' && item === 'LIKE') {
return true
}
if ((fieldType !== 'int' && fieldType !== 'time.Time' && fieldType !== 'float64') && (item === 'BETWEEN' || item === 'NOT BETWEEN')) {
return true
}
return false
}
const clearOther = () => {
middleDate.value.fieldSearchType = ''
middleDate.value.dictType = ''