| | |
| | | <template> |
| | | <!--动态模板--> |
| | | <avue-form ref="form" :option="option" v-model="form"> |
| | | <avue-form ref="form" :option="option" v-model="form" v-loading="loading"> |
| | | <template v-for="item in allColumn" :slot="item.prop+ ''"> |
| | | <vciWebRefer |
| | | v-if="item.type === 'refer'" |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | loading:false, |
| | | form: this.formData, |
| | | option: { |
| | | menuBtn:false, |
| | |
| | | text: "input", |
| | | combox: "select", |
| | | truefalse: "switch", |
| | | number: "number", |
| | | textarea: "textarea", |
| | | datetime: "datetime", |
| | | date: "date", |
| | | refer: "refer", |
| | | multiFile:"upload", |
| | | richText:'richText' |
| | |
| | | Object.assign(this.form, this.initValue); |
| | | } |
| | | }, |
| | | deep:true, |
| | | immediate: true, |
| | | }, |
| | | formData: { |
| | |
| | | initItem(item){ |
| | | const type=this.columnType[item.type] || item.type; |
| | | item.text=item.text || item.label; |
| | | const col= { |
| | | let col= { |
| | | ...item, |
| | | label: item.text, |
| | | prop: item.field, |
| | | showProp:item.showField, |
| | | prop: item.prop || item.field, |
| | | showProp: item.showProp || item.showField, |
| | | type: type, |
| | | labelWidth: this.labelWidth || (item.text.length >= 6 ? 115 : 90), |
| | | disabled: item.readOnly || this.disabled, |
| | | labelWidth: item.labelWidth || this.labelWidth || (item.text.length >= 6 ? 115 : 90), |
| | | disabled: item.disabled || this.disabled, |
| | | readonly: item.readonly || item.readOnly, |
| | | span: item.span |
| | | ? item.span |
| | | : item.type === "textarea" |
| | | ? 24 |
| | | : this.span, |
| | | value: item.defaultValue, |
| | | display: !item.hidden, |
| | | labelSuffix: item.suffix, |
| | | suffixIcon: item.prefix, |
| | | tip: item.tooltips, |
| | | dictCode: item.comboxKey, |
| | | valueFormat: item.dateFormate || "yyyy-MM-dd HH:mm:ss", |
| | | format: item.dateFormate, |
| | | rules: this.isEdit?(type=="select" || type=="refer" || type=="date" || type=="datetime"?[{ |
| | | value: item.value || item.defaultValue, |
| | | display: item.display || !item.hidden, |
| | | suffixIcon: item.suffixIcon || item.prefix, |
| | | labelSuffix: item.labelSuffix || item.suffix, |
| | | tip: item.tip || item.tooltips, |
| | | dictCode: item.dictCode || item.comboxKey, |
| | | valueFormat: item.valueFormat || item.dateFormate, |
| | | format: item.format || item.dateFormate, |
| | | }; |
| | | if(!item.rules || item.rules.length==0){ |
| | | col.rules=this.isEdit ? (type == "select" || type == "refer" || type == "date" || type == "datetime" ? [{ |
| | | required: item.required || false, |
| | | message: `请选择${item.text}!`, |
| | | trigger: "change" |
| | | },{ |
| | | required: item.required|| false, |
| | | }, { |
| | | required: item.required || false, |
| | | message: `请选择${item.text}!`, |
| | | trigger: "submit" |
| | | }]:[{ |
| | | required: item.required|| false, |
| | | }] : [{ |
| | | required: item.required || false, |
| | | message: `请输入${item.text}!`, |
| | | trigger: "blur" |
| | | },{ |
| | | required: item.required|| false, |
| | | }, { |
| | | required: item.required || false, |
| | | message: `请输入${item.text}!`, |
| | | trigger: "submit" |
| | | }]):[], |
| | | ...item |
| | | }; |
| | | }]) : [] |
| | | } |
| | | if(!this.isEdit){ |
| | | col.placeholder=col.label; |
| | | col.disabled=true; |
| | |
| | | col.display=false |
| | | } |
| | | } |
| | | if (col.type === "select") { |
| | | if(col.data && col.data.length>0){ |
| | | if (col.type === "select" || col.type==='radio' || col.type==='checkbox') { |
| | | if (col.data && col.data.length > 0) { |
| | | col.dicData = col.data.map((d) => { |
| | | return { |
| | | label: d.key, |
| | | key: d.value, |
| | | value: d.value, |
| | | attributes:d.attributes |
| | | attributes: d.attributes |
| | | }; |
| | | }); |
| | | }else if(!validatenull(col.dictCode)) { |
| | | } else if (!validatenull(col.dictCode)) { |
| | | getDicts(col.dictCode).then((res) => { |
| | | if (res.data.success){ |
| | | if(res.data.data && res.data.obj == null){ |
| | | if (res.data.success) { |
| | | if (res.data.data && res.data.obj == null) { |
| | | res.data.obj = res.data.data |
| | | } |
| | | const dic = res.data.obj; |
| | |
| | | label: d.value, |
| | | key: d.key, |
| | | value: d.key, |
| | | attributes:d.attributes |
| | | attributes: d.attributes |
| | | }; |
| | | }); |
| | | } |
| | |
| | | }, |
| | | updateDic(prop,data){ |
| | | this.$refs.form.updateDic(prop,data) |
| | | }, |
| | | dicInit(){ |
| | | this.$refs.form.dicInit() |
| | | }, |
| | | getPropRef(){ |
| | | this.$refs.form.getPropRef() |
| | | } |
| | | }, |
| | | }; |