Browse Source

优化

master
陈裕财 2 years ago
parent
commit
07750146df
  1. 18
      src/views/mdp/form/formDef/Form.vue
  2. 9
      src/views/mdp/form/formField/Field.vue
  3. 48
      src/views/mdp/form/formField/Index.vue

18
src/views/mdp/form/formDef/Form.vue

@ -33,7 +33,7 @@
<mdp-select item-code="form_data_type" show-style="tag" v-model="editForm.dataType"></mdp-select>
</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=","></mdp-select>
<mdp-select show-style="tag" :multiple="true" @click.native="oldPks=editForm.pks" v-model="editForm.pks" :plus-options="pkOptions" :props="{id:'id',name:'title'}" split="," @change2="onPksChange"></mdp-select>
</el-form-item>
<span v-if="['2','3'].some(k=>k==editForm.dataType)">
<el-form-item label="表名">
@ -128,6 +128,7 @@ export default {
formFields:[],
editable:false,//
formFieldsVisible:false,
oldPks:'',//
}
},
methods: {
@ -201,11 +202,6 @@ export default {
this.$notify({position:'bottom-left',showClose:true,message: '最少需要定义一个字段', type: 'error' });
return;
}
var max=this.$refs.formFields.getMaxFields();
if(formFields.length>max){
this.$notify({position:'bottom-left',showClose:true,message: '最多支持'+max+'个字段', type: 'error' });
return;
}
this.$confirm('确认提交吗?', '提示', {}).then(() => {
this.load.edit=true
let formDef = Object.assign({}, this.editForm);
@ -216,7 +212,7 @@ export default {
this.$refs.formFields.setPrimaryKeys();
formFields.forEach((i,index)=>{i.seqNo=index});
formFields.forEach((i,index)=>{i.seq=index});
var params={formDef:formDef,formFields:formFields};
if(!this.preParamCheck(params)){
this.load.edit=false
@ -244,8 +240,14 @@ export default {
goToFormDefIndex(){
this.$router.push({path:'/mdp/form/index'})
this.close();
},
onPksChange(pks){
var pksCtimeList=pks.filter(k=>k.id.indexOf('ctime')>=0)
if(pksCtimeList && pksCtimeList.length>1){
this.editForm.pks=this.oldPks;
this.$notify.error("创建日期最多只能选一个作为主键")
}
}
},
mounted() {

9
src/views/mdp/form/formField/Field.vue

@ -3,12 +3,12 @@
<el-row v-if="field.extType=='row'" :gutter="gutter">
<template v-if="sample==true">
<el-col @click.ctrl.native.stop="doChildDelete(child,idx,field.children)" v-for="child,idx in field.children" :key="idx" :span="calcSpan(child,field)">
<mdp-field :has-child="hasChild" :parent-field="field" :gutter="gutter" :span="span" v-if="child" :value="child" @change="(v)=>onChildChange(child,v)" @delete="onChildDelete" :sample="sample"></mdp-field>
<mdp-field @bkey-change="onBkeyChange" :has-child="hasChild" :parent-field="field" :gutter="gutter" :span="span" v-if="child" :value="child" @change="(v)=>onChildChange(child,v)" @delete="onChildDelete" :sample="sample"></mdp-field>
</el-col>
</template>
<draggable v-else-if="field.children && field.children.length>0" @add="onAdd" v-model="field.children" :options="{group:{ name:'g1', pull:'clone'}, animation:150}">
<el-col @click.ctrl.native.stop="doChildDelete(child,idx,field.children)" v-for="child,idx in field.children" :key="idx" :span="calcSpan(child,field)">
<mdp-field :has-child="hasChild" :parent-field="field" :gutter="gutter" :span="span" v-if="child" :value="child" @change="(v)=>onChildChange(child,v)" @delete="onChildDelete"></mdp-field>
<mdp-field @bkey-change="onBkeyChange" :has-child="hasChild" :parent-field="field" :gutter="gutter" :span="span" v-if="child" :value="child" @change="(v)=>onChildChange(child,v)" @delete="onChildDelete"></mdp-field>
</el-col>
</draggable>
</el-row>
@ -145,7 +145,7 @@
</mdp-dialog>
<el-drawer :visible.sync="showPopover" append-to-body :modal="false">
<mdp-field-cfg :has-child="hasChild" :parent-field="parentField" :form-def="formDef" :value="field" :visible="showPopover" @change="onFieldCfgChange" @close="showPopover=false"></mdp-field-cfg>
<mdp-field-cfg @bkey-change="onBkeyChange" :has-child="hasChild" :parent-field="parentField" :form-def="formDef" :value="field" :visible="showPopover" @change="onFieldCfgChange" @close="showPopover=false"></mdp-field-cfg>
</el-drawer>
</section>
</template>
@ -316,6 +316,9 @@
this.addForm=item2;
},
onBkeyChange(field){
this.$emit('bkey-change',field)
}
},//end method
components: {

48
src/views/mdp/form/formField/Index.vue

@ -32,7 +32,7 @@
<draggable id="sf" class="dragArea min-height" v-model="selectedFields" :options="{group:{ name:'g1'}, animation:150}" @add="onAdd" :no-transition-on-drag="true" @start="drag=true" @end="drag=false">
<el-col v-for="(item,index) in selectedFields" @click.ctrl.native="doChildDelete(item,index,selectedFields)" :key="index" :span="calcSpan(item)">
<mdp-field :find-not-in-child="findNotInChild" :has-child="hasChild" :gutter="0" :span="24" :value="item" @change="(v)=>Object.assign(item,v)"></mdp-field>
<mdp-field @bkey-change="onBkeyChange" :find-not-in-child="findNotInChild" :has-child="hasChild" :gutter="0" :span="24" :value="item" @change="(v)=>Object.assign(item,v)"></mdp-field>
</el-col>
</draggable>
</el-row>
@ -181,8 +181,7 @@ export default {
},
'visible':function(visible) {
if(visible==true){
this.selectedFields=JSON.parse(JSON.stringify(this.formFields))
this.selectedFields=treeTool.translateDataToTree(this.formFields,'pid','id')
this.setPrimaryKeys();
this.$nextTick(()=>{
this.$refs.showDataRef.clearValidate();
@ -332,27 +331,16 @@ export default {
},
setPrimaryKeys:function( ) {
var primaryKeys=this.primaryKeys;
var bkeyPrefix="";
if(primaryKeys.some(i=>i=='cuserid')){
bkeyPrefix="1"
}else{
bkeyPrefix="0"
}
if(primaryKeys.some(i=>i=='deptid')){
bkeyPrefix=bkeyPrefix+"1"
}else{
bkeyPrefix=bkeyPrefix+"0"
}
this.selectedFields.forEach(field=>{
if(primaryKeys.some(key=>field.idCamel==key)){
field.bkey=bkeyPrefix+"1"
setPrimaryKeys:function() {
this.primaryKeys=this.formDef.pks.split(",")
var allFields=this.getFieldList();
allFields.forEach(f=>{
if(this.primaryKeys.some(k=>k==f.id)){
f.bkey="1"
}else{
field.bkey=bkeyPrefix+"0"
f.bkey="0"
}
});
})
},
onTplStart(evt){
},
@ -560,6 +548,21 @@ export default {
children.splice(idx,1)
this.$emit('delete',child,idx,children)
},
onBkeyChange(field){
this.$emit('bkey-change',field)
if(field.bkey=='1'){//
if(!this.primaryKeys.some(k=>k==field.id)){
this.primaryKeys.push(field.id)
this.formDef.pks=this.primaryKeys.join(",")
}
}else{//
var idx=this.primaryKeys.findIndex(k=>k==field.id)
if(idx>=0){
this.primaryKeys.splice(idx,1)
this.formDef.pks=this.primaryKeys.join(",")
}
}
},
hasChild(id){
return this.hasMyChild(id,this.selectedFields)
},
@ -625,6 +628,7 @@ export default {
}else{
this.selectedFields=[]
}
this.setPrimaryKeys();
}//end mounted
}

Loading…
Cancel
Save