|
|
@ -4,7 +4,7 @@ |
|
|
<form-field ref="formFields" :form-def.sync="editForm" :form-fields="formFields" :visible="formFieldsVisible"> |
|
|
<form-field ref="formFields" :form-def.sync="editForm" :form-fields="formFields" :visible="formFieldsVisible"> |
|
|
<span slot="setBtn"> |
|
|
<span slot="setBtn"> |
|
|
<el-button type="success" @click="goToFormDefIndex()" icon="el-icon-search">表单中心</el-button> |
|
|
<el-button type="success" @click="goToFormDefIndex()" icon="el-icon-search">表单中心</el-button> |
|
|
<el-button type="primary" icon="el-icon-setting" @click="$refs['formSetDialog'].open(editForm)">表单配置</el-button> |
|
|
|
|
|
|
|
|
<el-button type="primary" icon="el-icon-setting" @click="$refs['formSetDialog'].open({pkOptions:getPkOptions()})">表单配置</el-button> |
|
|
</span> |
|
|
</span> |
|
|
<el-input slot="formName" label="标题" v-model="editForm.formName" required width="100%"> </el-input> |
|
|
<el-input slot="formName" label="标题" v-model="editForm.formName" required width="100%"> </el-input> |
|
|
</form-field> |
|
|
</form-field> |
|
|
@ -33,10 +33,15 @@ |
|
|
<el-form-item label="存储方式" prop="dataType"> |
|
|
<el-form-item label="存储方式" prop="dataType"> |
|
|
<mdp-select item-code="form_data_type" show-style="tag" v-model="editForm.dataType"></mdp-select> |
|
|
<mdp-select item-code="form_data_type" show-style="tag" v-model="editForm.dataType"></mdp-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="主键" prop="pks"> |
|
|
|
|
|
<mdp-select show-style="tag" :multiple="true" v-model="editForm.pks" :plus-options="pkOptions" :props="{id:'id',name:'title'}" split="," @change2="onPksChange"></mdp-select> |
|
|
|
|
|
|
|
|
<el-form-item label="主键" prop="pks" :rules="[{required:true,message:'此项必填',trigger:'change'}]" v-if="editForm.dataType=='1'||editForm.dataType=='3'"> |
|
|
|
|
|
<el-input v-model="editForm.pks" v-if="editForm.dataType=='2'" placeholder="宿主表主键将由后台自动获取" readonly></el-input> |
|
|
|
|
|
<mdp-select v-else show-style="tag" :multiple="true" v-model="editForm.pks" :plus-options="pkOptions" :props="{id:'id',name:'title'}" split="," @change2="onPksChange"></mdp-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<span v-if="['2'].some(k=>k==editForm.dataType)"> |
|
|
<span v-if="['2'].some(k=>k==editForm.dataType)"> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="数据源名称" :rules="{required:true,message:'此项必填',trigger:'change'}"> |
|
|
|
|
|
<mdp-select v-model="editForm.tableOwner" :load-fun="dataSourceList" ></mdp-select> |
|
|
|
|
|
</el-form-item> |
|
|
<el-form-item label="表名" prop="tableName" :rules="{required:true,message:'此项必填',trigger:'change'}"> |
|
|
<el-form-item label="表名" prop="tableName" :rules="{required:true,message:'此项必填',trigger:'change'}"> |
|
|
<el-input v-model="editForm.tableName" placeholder="请保持与数据库表名一致"></el-input> |
|
|
<el-input v-model="editForm.tableName" placeholder="请保持与数据库表名一致"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
@ -46,12 +51,13 @@ |
|
|
</span> |
|
|
</span> |
|
|
|
|
|
|
|
|
<span v-if="['3'].some(k=>k==editForm.dataType)"> |
|
|
<span v-if="['3'].some(k=>k==editForm.dataType)"> |
|
|
<el-form-item label="表名" prop="tableName" :rules="{required:true,message:'此项必填',trigger:'change'}"> |
|
|
|
|
|
<el-input v-model="editForm.tableName" placeholder="请保持与数据库表名一致"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="数据源名称" :rules="{required:true,message:'此项必填',trigger:'change'}"> |
|
|
<el-form-item label="数据源名称" :rules="{required:true,message:'此项必填',trigger:'change'}"> |
|
|
<mdp-select v-model="editForm.tableOwner" :load-fun="dataSourceList" ></mdp-select> |
|
|
<mdp-select v-model="editForm.tableOwner" :load-fun="dataSourceList" ></mdp-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="表名" prop="tableName" :rules="{required:true,message:'此项必填',trigger:'change'}"> |
|
|
|
|
|
<el-input v-model="editForm.tableName" placeholder="请保持与数据库表名一致"></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
<el-form-item label="建表方式" :rules="{required:true,message:'此项必填',trigger:'change'}"> |
|
|
<el-form-item label="建表方式" :rules="{required:true,message:'此项必填',trigger:'change'}"> |
|
|
<mdp-select v-model="editForm.ctType" item-code="lcode_create_table_type"></mdp-select> |
|
|
<mdp-select v-model="editForm.ctType" item-code="lcode_create_table_type"></mdp-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
@ -61,8 +67,8 @@ |
|
|
</template> |
|
|
</template> |
|
|
<template #footer="{visible,data,dialog}"> |
|
|
<template #footer="{visible,data,dialog}"> |
|
|
<el-row slot="footer" class="footer"> |
|
|
<el-row slot="footer" class="footer"> |
|
|
<el-button @click="$refs['formSetDialog'].close()">关闭</el-button> |
|
|
|
|
|
<el-button type="primary" @click="saveSubmit">确认</el-button> |
|
|
|
|
|
|
|
|
<el-button @click="dialog.close()">关闭</el-button> |
|
|
|
|
|
<el-button type="primary" @click="saveSubmitDialog">确认</el-button> |
|
|
</el-row> |
|
|
</el-row> |
|
|
</template> |
|
|
</template> |
|
|
</mdp-dialog> |
|
|
</mdp-dialog> |
|
|
@ -89,19 +95,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
computed: { |
|
|
computed: { |
|
|
pkOptions(){ |
|
|
pkOptions(){ |
|
|
var pkOptions=[] |
|
|
|
|
|
if(this.formFields){ |
|
|
|
|
|
pkOptions.push(...this.formFields.filter(k=>k.extType!='row' && k.extType!='card' && k.extType!='tabs')) |
|
|
|
|
|
} |
|
|
|
|
|
pkOptions.push({id:'cuserid',title:'创建用户编号'}) |
|
|
|
|
|
pkOptions.push({id:'deptid',title:'创建部门编号'}) |
|
|
|
|
|
pkOptions.push({id:'ctime:1',title:'创建日期(yyy)'}) |
|
|
|
|
|
pkOptions.push({id:'ctime:2',title:'创建日期(yyy-MM)'}) |
|
|
|
|
|
pkOptions.push({id:'ctime:3',title:'创建日期(yyy-MM-dd)'}) |
|
|
|
|
|
pkOptions.push({id:'ctime:4',title:'创建日期(yyy-MM-dd HH)'}) |
|
|
|
|
|
pkOptions.push({id:'ctime:5',title:'创建日期(yyy-MM-dd HH:mm)'}) |
|
|
|
|
|
pkOptions.push({id:'ctime:6',title:'创建日期(yyy-MM-dd HH:mm:ss)'}) |
|
|
|
|
|
return pkOptions; |
|
|
|
|
|
|
|
|
return this.getPkOptions() |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
props:{ |
|
|
props:{ |
|
|
@ -148,6 +142,21 @@ export default { |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
dataSourceList, |
|
|
dataSourceList, |
|
|
|
|
|
getPkOptions(){ |
|
|
|
|
|
var formFields=this.$refs.formFields.getFieldList(); |
|
|
|
|
|
var pkOptions=[...formFields.filter(k=>k.extType!='row' && k.extType!='card' && k.extType!='tabs')]; |
|
|
|
|
|
if(this.editForm.dataType=='1'){ |
|
|
|
|
|
pkOptions.push({id:'cuserid',title:'创建用户编号'}) |
|
|
|
|
|
pkOptions.push({id:'deptid',title:'创建部门编号'}) |
|
|
|
|
|
pkOptions.push({id:'ctime:1',title:'创建日期(yyy)'}) |
|
|
|
|
|
pkOptions.push({id:'ctime:2',title:'创建日期(yyy-MM)'}) |
|
|
|
|
|
pkOptions.push({id:'ctime:3',title:'创建日期(yyy-MM-dd)'}) |
|
|
|
|
|
pkOptions.push({id:'ctime:4',title:'创建日期(yyy-MM-dd HH)'}) |
|
|
|
|
|
pkOptions.push({id:'ctime:5',title:'创建日期(yyy-MM-dd HH:mm)'}) |
|
|
|
|
|
pkOptions.push({id:'ctime:6',title:'创建日期(yyy-MM-dd HH:mm:ss)'}) |
|
|
|
|
|
} |
|
|
|
|
|
return pkOptions; |
|
|
|
|
|
}, |
|
|
//由组件扩展添加其它的初始页面的逻辑(mounted+onOpen都会调用此函数,建议只添加公共逻辑) |
|
|
//由组件扩展添加其它的初始页面的逻辑(mounted+onOpen都会调用此函数,建议只添加公共逻辑) |
|
|
initCurrData(){ |
|
|
initCurrData(){ |
|
|
if(!this.formId){ |
|
|
if(!this.formId){ |
|
|
@ -211,6 +220,63 @@ export default { |
|
|
return true; |
|
|
return true; |
|
|
}, |
|
|
}, |
|
|
saveSubmit: function () { |
|
|
saveSubmit: function () { |
|
|
|
|
|
|
|
|
|
|
|
if(this.editForm.formName==''){ |
|
|
|
|
|
this.$notify({position:'bottom-left',showClose:true,message: '表单名称不能为空', type: 'error' }); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
var formFields=this.$refs.formFields.getFieldList(); |
|
|
|
|
|
if(formFields.length==0 ){ |
|
|
|
|
|
this.$notify({position:'bottom-left',showClose:true,message: '最少需要定义一个字段', type: 'error' }); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(this.editForm.dataType=='1'||this.editForm.dataType=='3'){ |
|
|
|
|
|
if(!this.editForm.pks){ |
|
|
|
|
|
this.$notify({position:'bottom-left',showClose:true,message: '请设置表单主键', type: 'error' }); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
this.$confirm('确认提交吗?', '提示', {}).then(() => { |
|
|
|
|
|
this.load.edit=true |
|
|
|
|
|
let formDef = Object.assign({}, this.editForm); |
|
|
|
|
|
if(this.currOpType=='add'){ |
|
|
|
|
|
formDef.deptid=this.userInfo.deptid |
|
|
|
|
|
formDef.branchId=this.userInfo.branchId |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
this.$refs.formFields.setPrimaryKeys(); |
|
|
|
|
|
|
|
|
|
|
|
formFields.forEach((i,index)=>{i.seq=index}); |
|
|
|
|
|
var params={formDef:formDef,formFields:formFields}; |
|
|
|
|
|
if(!this.preParamCheck(params)){ |
|
|
|
|
|
this.load.edit=false |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
var func=this.apis.add |
|
|
|
|
|
if(this.currOpType=='edit'){ |
|
|
|
|
|
func=this.apis.edit |
|
|
|
|
|
} |
|
|
|
|
|
func(params).then((res) => { |
|
|
|
|
|
this.load.edit=false |
|
|
|
|
|
var tips=res.data.tips; |
|
|
|
|
|
if(tips.isOk){ |
|
|
|
|
|
var data=res.data.data |
|
|
|
|
|
Object.assign(this.editForm,data.formDef) |
|
|
|
|
|
this.formFields=data.formFields |
|
|
|
|
|
this.$mdp.removeFormFieldsCache(this.editForm.id) |
|
|
|
|
|
this.currOpType='edit' |
|
|
|
|
|
this.afterSubmit(res,tips.isOk,this.currOpType); |
|
|
|
|
|
} |
|
|
|
|
|
this.$notify({ position:'bottom-left',showClose:true, message: tips.msg, type: tips.isOk?'success':'error' }); |
|
|
|
|
|
}).catch( err =>this.load.edit=false); |
|
|
|
|
|
}).catch(()=>{}); |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
saveSubmitDialog: function () { |
|
|
|
|
|
|
|
|
this.$refs['editFormRef'].validate(valid=>{ |
|
|
this.$refs['editFormRef'].validate(valid=>{ |
|
|
if(valid==false){ |
|
|
if(valid==false){ |
|
|
this.$notify({position:'bottom-left',showClose:true,message: '表单验证不通过', type: 'error' }); |
|
|
this.$notify({position:'bottom-left',showClose:true,message: '表单验证不通过', type: 'error' }); |
|
|
@ -249,16 +315,17 @@ export default { |
|
|
this.load.edit=false |
|
|
this.load.edit=false |
|
|
var tips=res.data.tips; |
|
|
var tips=res.data.tips; |
|
|
if(tips.isOk){ |
|
|
if(tips.isOk){ |
|
|
this.$mdp.removeFormFieldsCache(formDef.id) |
|
|
|
|
|
this.currOpType='edit' |
|
|
|
|
|
|
|
|
|
|
|
var data=res.data.data |
|
|
var data=res.data.data |
|
|
Object.assign(this.editForm,data.formDef) |
|
|
Object.assign(this.editForm,data.formDef) |
|
|
this.formFields=data.formFields |
|
|
this.formFields=data.formFields |
|
|
|
|
|
this.$mdp.removeFormFieldsCache(this.editForm.id) |
|
|
|
|
|
this.currOpType='edit' |
|
|
this.afterSubmit(res,tips.isOk,this.currOpType); |
|
|
this.afterSubmit(res,tips.isOk,this.currOpType); |
|
|
} |
|
|
} |
|
|
this.$notify({ position:'bottom-left',showClose:true, message: tips.msg, type: tips.isOk?'success':'error' }); |
|
|
this.$notify({ position:'bottom-left',showClose:true, message: tips.msg, type: tips.isOk?'success':'error' }); |
|
|
}).catch( err =>this.load.edit=false); |
|
|
}).catch( err =>this.load.edit=false); |
|
|
}); |
|
|
|
|
|
|
|
|
}).catch(()=>{}); |
|
|
|
|
|
|
|
|
}) |
|
|
}) |
|
|
|
|
|
|
|
|
|