ludc
2025-01-15 c659560c7ee8d8f8278b938421de13bf65d1e1b1
Source/plt-web/plt-web-ui/src/components/PLT-basic-component/basicForm.vue
@@ -1,6 +1,6 @@
<template>
  <!--动态模板-->
  <avue-form ref="form" :option="option" v-model="form" v-loading="loading">
  <avue-form ref="basicform" :option="option" v-model="form" v-loading="loading">
    <template v-for="item in allColumn" :slot="item.prop+ ''">
      <vciWebRefer
        v-if="item.type === 'refer'"
@@ -99,10 +99,6 @@
        text: "input",
        combox: "select",
        truefalse: "switch",
        number: "number",
        textarea: "textarea",
        datetime: "datetime",
        date: "date",
        refer: "refer",
        multiFile:"upload",
        richText:'richText'
@@ -190,42 +186,45 @@
      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"
        }]):[]
      };
        }]) : []
      }
      if(!this.isEdit){
        col.placeholder=col.label;
        col.disabled=true;
@@ -239,20 +238,20 @@
          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;
@@ -261,7 +260,7 @@
                  label: d.value,
                  key: d.key,
                  value: d.key,
                  attributes:d.attributes
                  attributes: d.attributes
                };
              });
            }
@@ -327,7 +326,7 @@
    // 表单校验
    validate(done) {
      return new Promise((resolve) => {
        this.$refs.form.validate((valid,fields) => {
        this.$refs.basicform.validate((valid,fields) => {
          done(valid,fields);
          if (valid) {
            resolve(true);
@@ -340,13 +339,19 @@
      });
    },
    resetFields(){
      this.$refs.form.resetFields()
      this.$refs.basicform.resetFields()
    },
    clearValidate(props){
      this.$refs.form.clearValidate(props)
      this.$refs.basicform.clearValidate(props)
    },
    updateDic(prop,data){
      this.$refs.form.updateDic(prop,data)
      this.$refs.basicform.updateDic(prop,data)
    },
    dicInit(){
      this.$refs.basicform.dicInit()
    },
    getPropRef(){
      this.$refs.basicform.getPropRef()
    }
  },
};