Browse Source

优化

master
陈裕财 2 years ago
parent
commit
1510ec5451
  1. 8
      src/components/mdp-ui/mdp-select/Index.vue
  2. 2
      src/components/mdp-ui/mixin/MdpSelectMixin.js
  3. 10
      src/views/mdp/form/formField/Field.vue
  4. 14
      src/views/mdp/form/formField/Index.vue

8
src/components/mdp-ui/mdp-select/Index.vue

@ -23,9 +23,9 @@
<span v-else-if="showType=='radio'">
<el-radio :size="size" v-for="(option,index) in optionsCpd" v-model="myVal" :label="option.id" :key="index" @change="onChange" @focus="$emit('focus',$event)" @blur="$emit('blur',$event)" @clear="$emit('clear',$event)" @click="$emit('click',$event)">{{ option.name }}</el-radio>
</span>
<span v-else-if="showType=='checkbox' && multiple==true">
<span v-else-if="showType=='checkbox' && multiple==true">
<el-checkbox-group :size="size" v-model="myVal" @change="onChange" @focus="$emit('focus',$event)" @blur="$emit('blur',$event)" @clear="$emit('blur',$event)" @click="$emit('click',$event)">
<el-checkbox v-for="(option,index) in optionsCpd" :label="option.id" :key="index">{{ option.name }}</el-checkbox >
<el-checkbox v-for="(option,index) in optionsCpd" :label="option.id" :key="index" :disabled="disabled">{{ option.name }}</el-checkbox >
</el-checkbox-group>
</span>
<span v-else-if="showType=='checkbox' && multiple==false">
@ -107,8 +107,8 @@
<div v-else-if="showType=='radio'">
<el-radio :size="size" v-for="(option,index) in optionsCpd" v-model="myVal" @input="onChange" :label="option.id" :key="index" @focus="$emit('focus',$event)" @blur="$emit('blur',$event)" @clear="$emit('clear',$event)" @click="$emit('click',$event)">{{ option.name }}</el-radio>
</div>
<div v-else-if="showType=='checkbox' && multiple==true">
<el-checkbox-group :size="size" v-model="myVal" @change="onChange" @focus="$emit('focus',$event)" @blur="$emit('blur',$event)" @clear="$emit('blur',$event)" @click="$emit('click',$event)">
<div v-else-if="showType=='checkbox' && multiple==true">
<el-checkbox-group :size="size" v-model="myVal" @change="onChange" @focus="$emit('focus',$event)" @blur="$emit('blur',$event)" @clear="$emit('blur',$event)" @click="$emit('click',$event)">
<el-checkbox v-for="(option,index) in optionsCpd" :label="option.id" :key="index">{{ option.name }}</el-checkbox >
</el-checkbox-group>
</div>

2
src/components/mdp-ui/mixin/MdpSelectMixin.js

@ -132,7 +132,7 @@ export const MdpSelectMixin = {
data(){
return {
defaultColors:util.getDefaultColors(),
myVal:null,
myVal:[],
item:{
itemType:'4',
options:[]

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

@ -1,18 +1,18 @@
<template>
<section @click="select=!select" @click.alt="showPopover=(sample==true?false:!showPopover)" :class="{'form-field':true,'select':showPopover}">
<section @click="select=!select" @click.alt.stop="showPopover=(sample==true?false:!showPopover)" :class="{'form-field':true,'select':showPopover}">
<el-row v-if="field.extFieldType=='row'" slot="reference" :gutter="gutter">
<template v-if="sample==true">
<el-col @click.ctrl.native="doChildDelete(child,idx,field.children)" v-for="child,idx in field.children" :key="idx" :span="calcSpan(child,field)">
<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 :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" v-model="field.children" :options="{group:{ name:'g1', pull:'clone'}, animation:150}">
<el-col @click.ctrl.native="doChildDelete(child,idx,field.children)" v-for="child,idx in field.children" :key="idx" :span="calcSpan(child,field)">
<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 :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>
<el-form-item slot="reference" v-else :label="field.fieldTitle" :prop="field.fieldIdCamel" :rules="[{ required: field.isRequired=='1', message: '该项必填', trigger: 'change' }]">
<el-form-item slot="reference" v-else :label="field.fieldTitle" :prop="field.fieldIdCamel" :rules="[{ required: field.isRequired=='1', message: '该项必填', trigger: 'change' }]">
<div v-if="field.qx=='nr'"></div>
<!--用户-->
@ -25,7 +25,7 @@
<mdp-select-tag v-else-if=" field.extFieldType=='tag'" :show-style="field.showStyle" :disabled="field.qx=='r'" :multiple="field.isMultiple=='1'" v-model="showData[field.fieldIdCamel]" :label="field.fieldTitle" :placeholder="field.placeholder" split=",">
</mdp-select-tag>
<!--下拉框-->
<mdp-select v-else-if=" ['select','radio','checkbox'].some(k=>k==field.fieldType)" :show-style="field.showStyle" :plus-options="field.plusOptions" :disabled="field.qx=='r'" :show-type="field.fieldType" :item-code="field.dictCode" :multiple="field.isMultiple=='1'" v-model="showData[field.fieldIdCamel]" :label="field.fieldTitle" :placeholder="field.placeholder" split=",">
<mdp-select v-else-if=" ['select','radio','checkbox'].some(k=>k==field.fieldType)" :show-style="field.showStyle" :plus-options="sample?field.plusOptions:[]" :disabled="field.qx=='r'" :show-type="field.fieldType" :item-code="field.dictCode" :multiple="field.isMultiple=='1'" v-model="showData[field.fieldIdCamel]" :label="field.fieldTitle" :placeholder="field.placeholder" split=",">
</mdp-select>
<!--html-->
<el-popover v-else-if=" field.extFieldType=='html'"

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

@ -50,7 +50,7 @@
</el-row>
</el-form-item>
<el-row>
<draggable id="af" class="dragArea" :options="{group:{ name:'g1', pull:'clone'}, animation:150}" v-model="sampleFields" :move="onMove">
<draggable id="af" class="dragArea" @start="onTplStart" :options="{group:{ name:'g1', pull:'clone'}, animation:150}" v-model="sampleFields" :move="onMove">
<el-col v-for="(item,index) in sampleFields" :key="index" :span="calcSpan(item)">
<mdp-field :gutter="0" :span="24" :value="item" :sample="true"></mdp-field>
@ -339,7 +339,19 @@ export default {
}
});
},
onTplStart(evt){
var item=evt.item
var item2=JSON.parse(JSON.stringify(item))
var noSelectFieldId=this.fieldIds.find(i=>{
return !this.selectedFields.some(k=>k.id==i.id && k.isNewAdd!='1');
})
item2.id=noSelectFieldId.id
item2.fieldId=noSelectFieldId.fieldId
item2.fieldIdCamel=noSelectFieldId.fieldIdCamel
item=item2
},
add(evt){
debugger;
let item=this.selectedFields[evt.newIndex];
item.isNewAdd='1'
var item2=JSON.parse(JSON.stringify(item))

Loading…
Cancel
Save