Browse Source

请款:选择预支单回填数据

lxf 1 year ago
parent
commit
5ee70cd2e4
2 changed files with 94 additions and 24 deletions
  1. 33 1
      src/components/testForm/index.vue
  2. 61 23
      src/views/processApproval/components/SendFunds.vue

+ 33 - 1
src/components/testForm/index.vue

@@ -299,7 +299,7 @@
 
 <script setup>
 import { showLoadingToast, closeToast, showNotify } from "vant";
-import { ref, getCurrentInstance, onMounted, reactive, computed, toRefs, watch } from "vue";
+import { ref, getCurrentInstance, onMounted, reactive, computed, toRefs, watch, defineExpose } from "vue";
 
 const props = defineProps({
   modelValue: {
@@ -437,6 +437,18 @@ const formDataListShowLabel = () => {
     }
   }
 };
+const formDataListShowLabelOne = () => {
+  for (let i = 0; i < formData.value[btnConfigCopy.prop].length; 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]);
+        }
+      }
+    }
+  }
+};
 // 循环 label值回显
 const formDataShowLabel = () => {
   for (let i = 0; i < formConfig.value.length; i++) {
@@ -469,6 +481,21 @@ const formDataShowLabel = () => {
   }
 };
 
+const formDataShowLabelOne = () => {
+  for (let i = 0; i < formConfig.value.length; i++) {
+    const element = formConfig.value[i];
+    if (element.type === "picker" && element.itemType !== "datePicker") {
+      if (element.data && element.data.length > 0) {
+        formData.value[element.prop + "Name"] = selectDataEcho(element, formData.value[element.prop]);
+      }
+    } else if (element.type === "cascader" && element.itemType === "common") {
+      if (element.data && element.data.length > 0) {
+        formData.value[element.prop + "Name"] = selectDataEcho(element, formData.value[element.prop]);
+      }
+    }
+  }
+};
+
 const formDataInit = () => {
   var map = {
     input: "",
@@ -749,6 +776,11 @@ const changeCheckboxGroup = (form, label, data, fieldNames) => {
   }
   form[label + "Name"] = text;
 };
+
+defineExpose({
+  formDataShowLabelOne,
+  formDataListShowLabelOne,
+});
 // onMounted(() => {});
 </script>
 

+ 61 - 23
src/views/processApproval/components/SendFunds.vue

@@ -1,26 +1,23 @@
 <template>
   <div class="form">
     <van-tabs v-model:active="active">
-      <van-tab :title="proxy.t('funds.basicInformation')">
-        <div class="common-process-card">
-          <div class="common-title">{{ proxy.t("funds.basicInformation") }}</div>
-          <testForm v-model="formData.data" :formOption="formOption" :formConfig="formConfig" :rules="rules" ref="formDom"> </testForm>
-        </div>
-      </van-tab>
-      <van-tab :title="proxy.t('funds.claimDetails')">
-        <div class="common-process-card">
-          <div class="common-title">{{ proxy.t("funds.claimDetails") }}</div>
-          <testForm v-model="formData.data" :formOption="formDetailOption" :formConfig="formDetailConfig" :rules="rules" ref="formDom"> </testForm>
-          <testForm v-model="formData.data" :formOption="formDetailTwoOption" :formConfig="formDetailTwoConfig" :rules="rules" ref="formDom"> </testForm>
-        </div>
-      </van-tab>
-      <van-tab :title="proxy.t('funds.receiptPaymentInformation')">
-        <div class="common-process-card">
-          <div class="common-title">{{ proxy.t("funds.receiptPaymentInformation") }}</div>
-          <testForm v-model="formData.data" :formOption="formReceiptPaymentOption" :formConfig="formReceiptPaymentConfig" :rules="rules" ref="formDom">
-          </testForm>
-        </div>
-      </van-tab>
+      <van-tab :title="proxy.t('funds.basicInformation')"> </van-tab>
+      <van-tab :title="proxy.t('funds.claimDetails')"> </van-tab>
+      <van-tab :title="proxy.t('funds.receiptPaymentInformation')"> </van-tab>
+      <div class="common-process-card" v-show="active == 0">
+        <div class="common-title">{{ proxy.t("funds.basicInformation") }}</div>
+        <testForm v-model="formData.data" :formOption="formOption" :formConfig="formConfig" :rules="rules" ref="formDom1"> </testForm>
+      </div>
+      <div class="common-process-card" v-show="active == 1">
+        <div class="common-title">{{ proxy.t("funds.claimDetails") }}</div>
+        <testForm v-model="formData.data" :formOption="formDetailOption" :formConfig="formDetailConfig" :rules="rules" ref="formDom2"> </testForm>
+        <testForm v-model="formData.data" :formOption="formDetailTwoOption" :formConfig="formDetailTwoConfig" :rules="rules" ref="formDom3"> </testForm>
+      </div>
+      <div class="common-process-card" v-show="active == 2">
+        <div class="common-title">{{ proxy.t("funds.receiptPaymentInformation") }}</div>
+        <testForm v-model="formData.data" :formOption="formReceiptPaymentOption" :formConfig="formReceiptPaymentConfig" :rules="rules" ref="formDom4">
+        </testForm>
+      </div>
     </van-tabs>
   </div>
 </template>
@@ -59,7 +56,10 @@ const formData = reactive({
     interbankNumber: null,
   },
 });
-const formDom = ref(null);
+const formDom1 = ref(null);
+const formDom2 = ref(null);
+const formDom3 = ref(null);
+const formDom4 = ref(null);
 const formOption = reactive({
   readonly: false, //用于控制整个表单是否只读
   disabled: false,
@@ -119,10 +119,10 @@ const formConfig = reactive([
     data: [],
     changeFn: (val, item) => {
       if (val.selectedValues[0] === "3" || oldType.value === "3") {
-        for (var text in formData.data) {
+        for (let text in formData.data) {
           if (text === "advanceId") {
             formData.data.advanceId = "";
-          } else if (["corporationId", "type", "paymentTime"].includes(text)) {
+          } else if (["corporationId", "corporationIdName", "type", "typeName", "paymentTime", "paymentTimeName"].includes(text)) {
           } else if (text === "accountRequestFundsDetailList") {
             formData.data.accountRequestFundsDetailList = [];
           } else if (text === "fileList") {
@@ -160,6 +160,44 @@ const formConfig = reactive([
       value: "value",
     },
     data: [],
+    changeFn: (val, item) => {
+      formData.data.advanceId = val.selectedValues[0];
+      let list = item.data.filter((aa) => aa[item.fieldNames.value] == val.selectedValues[0]);
+      if (list && list.length > 0) {
+        formData.data.advanceIdName = list[0][item.fieldNames.text];
+      } else {
+        formData.data.advanceIdName = "";
+      }
+      if (val.selectedValues && val.selectedValues.length > 0) {
+        proxy.post("/accountRequestFunds/detail", { id: val.selectedValues[0] }).then((res) => {
+          formData.data.departmentId = res.data.departmentId;
+          formData.data.currency = res.data.currency;
+          formData.data.paymentRemarks = res.data.paymentRemarks;
+          formData.data.accountRequestFundsDetailList = res.data.accountRequestFundsDetailList.map((item) => {
+            return {
+              costType: item.costType,
+              amount: item.amount,
+              contractId: item.contractId,
+              advanceAmount: item.amount,
+              remarks: item.remarks,
+            };
+          });
+          handleChangeAmount();
+          formData.data.advanceAmounts = res.data.total;
+          formData.data.quantity = res.data.quantity;
+          formData.data.paymentMethod = res.data.paymentMethod;
+          formData.data.accountManagementId = res.data.accountManagementId;
+          formData.data.name = res.data.name;
+          formData.data.accountOpening = res.data.accountOpening;
+          formData.data.openingBank = res.data.openingBank;
+          formData.data.interbankNumber = res.data.interbankNumber;
+          formDom1.value.formDataShowLabelOne();
+          formDom2.value.formDataListShowLabelOne();
+          formDom4.value.formDataShowLabelOne();
+        });
+      }
+      item.showPicker = false;
+    },
   },
   {
     type: "picker",