From fd15db44e6bd9b7b9a6537b82bb90a81c009b24a Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 10 五月 2024 18:16:49 +0800
Subject: [PATCH] action

---
 Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue |  101 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 83 insertions(+), 18 deletions(-)

diff --git a/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue b/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue
index cf56bf7..b6db326 100644
--- a/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue
+++ b/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue
@@ -1,9 +1,9 @@
 <template>
   <!--鍔ㄦ�佹ā鏉�-->
-  <avue-form ref="formRef" :option="option" v-model="form">
+  <avue-form ref="form" :option="option" v-model="form">
     <template v-for="item in allColumn" :slot="item.prop+ ''">
       <vciWebRefer
-        v-if="item.propType === 'refer' || item.type === 'refer'"
+        v-if="item.type === 'refer'"
         :key="item.prop"
         referType="master"
         :data-key="item.prop"
@@ -16,9 +16,18 @@
         @setReferValue="setReferValue"
       ></vciWebRefer>
       <!--   瀵屾枃鏈帶浠�       -->
-      <rich-text v-if="item.type === 'richText'" :value="form[subitemName]" @input="form[subitemName] = $event"></rich-text>
+      <rich-text v-else-if="item.type === 'richText'"
+                 :key="item.prop"
+                 :data-key="item.prop"
+                 :disabled="item.disabled || false"
+                 :display="item.display || true"
+                 :value="form[subitemName]" @input="form[subitemName] = $event"></rich-text>
       <!--   琛ㄥ崟涓婁紶鏂囦欢缁勪欢       -->
-      <form-upload v-if="item.type === 'upload'"></form-upload>
+      <form-upload v-else-if="item.type === 'upload'"
+                   :key="item.prop"
+                   :data-key="item.prop"
+                   :disabled="item.disabled || false"
+                   :display="item.display || true"></form-upload>
     </template>
   </avue-form>
 </template>
@@ -57,6 +66,15 @@
       type:Boolean,
       default:false
     },
+    isEdit:{
+      //琛ㄥ崟鏄惁鍙紪杈�
+      type:Boolean,
+      default:true
+    },
+    initValue:{
+      type: Object,
+      default: () => {},
+    },
   },
   data() {
     return {
@@ -89,10 +107,13 @@
   watch: {
     formItems: {
       handler(val) {
-        if(val[0] &&val[0].column && val[0].column.isArray()){
+        if (val[0] && val[0].column && val[0].column.isArray()) {
           this.getInitGroup(val);
-        }else{
+        } else {
           this.getInit(val);
+        }
+        if (this.initValue) {
+          Object.assign(this.form, this.initValue);
         }
       },
       immediate: true,
@@ -107,7 +128,7 @@
       handler(val) {
         for (let code of this.option.column) {
           if (
-              (code.propType == "refer"  || code.type == 'refer' )&&
+            code.type == 'refer' &&
             code.referConfig &&
             code.referConfig.useFormKey
           ) {
@@ -118,7 +139,7 @@
         for (let code of this.option.group) {
           for (let col of code.column) {
             if (
-                (col.propType == "refer"  || col.type == 'refer')&&
+              col.type == 'refer'&&
               col.referConfig &&
               col.referConfig.useFormKey
             ) {
@@ -127,7 +148,7 @@
             }
           }
         }
-        this.$emit("input", val);
+        this.$emit("getFormData", val);
       },
       deep: true,
       immediate: true
@@ -140,7 +161,6 @@
         code = this.initItem(code);
         column.push(code);
         this.allColumn.push(code);
-        console.log('allColumn',this.allColumn)
       }
       this.option.column = column;
     },
@@ -158,7 +178,7 @@
       this.option.group = group;
     },
     initItem(item){
-      const type=this.columnType[item.type] || item.type
+      const type=this.columnType[item.type] || item.type;
       const col= {
         ...item,
         label: item.text,
@@ -166,24 +186,40 @@
         showProp:item.showField,
         type: type,
         labelWidth: this.labelWidth || (item.text.length >= 6 ? 115 : 90),
-        disabled: item.readOnly || this.disabled,
+        disabled: !this.isEdit || item.readOnly || this.disabled,
         span: item.span
           ? item.span
           : item.type === "textarea"
             ? 24
             : this.span,
         value: item.defaultValue,
-        dicData: type === 'select' ? item.dicData : item.dicUrl,
         display: !item.hidden,
         labelSuffix: item.suffix,
         suffixIcon: item.prefix,
         tip: item.tooltips,
         dictCode: item.comboxKey,
-        rules: [{
+        valueFormat: item.dateFormate || "yyyy-MM-dd HH:mm:ss",
+        format: item.dateFormate,
+        rules: this.isEdit?(type=="select" || type=="refer" || type=="date" || type=="datetime"?[{
+          required: item.required,
+          message: `璇烽�夋嫨${item.text}!`,
+          trigger: "change"
+        },{
+          required: item.required,
+          message: `璇烽�夋嫨${item.text}!`,
+          trigger: "submit"
+        }]:[{
           required: item.required,
           message: `璇疯緭鍏�${item.text}!`,
           trigger: "blur"
-        }]
+        },{
+          required: item.required,
+          message: `璇疯緭鍏�${item.text}!`,
+          trigger: "submit"
+        }]):[]
+      };
+      if(!this.isEdit){
+        col.placeholder=col.label;
       }
       if(col.type === 'richText'){
         this.subitemName = col.field;
@@ -191,8 +227,16 @@
         console.log('col',col)
       }
       if (col.type === "select") {
-        // console.log('col',col)
-        if(!validatenull(col.dictCode)) {
+        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
+            };
+          });
+        }else if(!validatenull(col.dictCode)) {
           getDicts(col.dictCode).then((res) => {
             if (res.data.success){
               if(res.data.data && res.data.obj == null){
@@ -211,7 +255,7 @@
           });
         }
       }
-      if (col.propType === "refer"|| col.type==='refer') {
+      if (col.type==='refer') {
         if (col.referConfig && col.referConfig.useFormKey) {
           if (validatenull(col.referConfig.formValuesKey)) {
             col.referConfig.formValuesKey = "form";
@@ -266,6 +310,27 @@
           }
         }
       }
+    },
+    // 琛ㄥ崟鏍¢獙
+    validate(done) {
+      return new Promise((resolve) => {
+        this.$refs.form.validate((valid,fields) => {
+          done(valid,fields);
+          if (valid) {
+            resolve(true);
+            this.ValidataValue = true;
+          } else {
+            resolve(false);
+            return false;
+          }
+        });
+      });
+    },
+    resetFields(){
+      this.$refs.form.resetFields()
+    },
+    clearValidate(props){
+      this.$refs.form.clearValidate(props)
     }
   },
 };

--
Gitblit v1.9.3