Browse Source

表单list回显完善

cz 1 year ago
parent
commit
5cd21a8076
2 changed files with 41 additions and 0 deletions
  1. 38 0
      src/components/testForm/index.vue
  2. 3 0
      src/views/JXSK/salesContract/add.vue

+ 38 - 0
src/components/testForm/index.vue

@@ -249,6 +249,7 @@
             @click="handleRemove(index)"
             size="mini"
             style="border: none; background: #ecebeb"
+            v-if="formOption.btnConfig.isNeed"
             >删除</van-button
           >
         </div>
@@ -489,6 +490,32 @@ const selectDataEcho = (item, val) => {
 
 let btnConfigCopy = {};
 let callNum = ref(0);
+let callListNum = ref(0);
+const formDataListShowLabel = () => {
+  for (let i = 0; i < formData.value[btnConfigCopy.prop].length; i++) {
+    const iele = formData.value[btnConfigCopy.prop][i];
+    for (let j = 0; j < btnConfigCopy.listConfig.length; j++) {
+      const jele = btnConfigCopy.listConfig[j];
+      if (jele.type === "picker" && jele.itemType !== "datePicker") {
+        if (jele.data && jele.data.length > 0) {
+          formData.value[btnConfigCopy.prop][i][jele.prop + "Name"] =
+            selectDataEcho(
+              jele,
+              formData.value[btnConfigCopy.prop][i][jele.prop]
+            );
+        } else {
+          if (callListNum.value <= 3) {
+            setTimeout(() => {
+              callListNum.value++;
+              return formDataListShowLabel();
+            }, 1500);
+          }
+          return;
+        }
+      }
+    }
+  }
+};
 // 循环 label值回显
 const formDataShowLabel = () => {
   for (let i = 0; i < formConfig.value.length; i++) {
@@ -558,6 +585,7 @@ const formDataShowLabel = () => {
     }
   }
 };
+
 const formDataInit = () => {
   var map = {
     input: "",
@@ -603,6 +631,7 @@ const formDataInit = () => {
   formDataShowLabel();
   emit("update:modelValue", formData.value);
 };
+
 formDataInit();
 
 // 选择框  确定事件
@@ -853,6 +882,15 @@ watch(
   }
 );
 
+watch(
+  () => formData.value[btnConfigCopy.prop],
+  (val) => {
+    if (!formOption.value.btnConfig.isNeed && val.length > 0) {
+      formDataListShowLabel();
+    }
+  }
+);
+
 // onMounted(() => {});
 </script>
 

+ 3 - 0
src/views/JXSK/salesContract/add.vue

@@ -239,6 +239,9 @@ const getDict = () => {
 
 const getDetails = (id) => {
   proxy.post("/salesContract/detail", { id }).then((res) => {
+    if (res.data && res.data.contractDetailsList.length > 0) {
+      res.data.salesContractDetailsList = res.data.contractDetailsList;
+    }
     formData.data = res.data;
     changeAmount();
   });