lxf 1 жил өмнө
parent
commit
3a1db73420

+ 3 - 2
src/components/testForm/index.vue

@@ -440,7 +440,7 @@
             @confirm="
               (option) =>
                 item.changeFn
-                  ? item.changeFn(option, item, currentIndex, currentSonIndex)
+                  ? item.changeFn(option, item, currentIndex, currentSonIndex, btnConfigCopy.prop)
                   : onConfirmListPicker(option, item)
             "
           />
@@ -513,7 +513,7 @@ import {
   watch,
   defineExpose,
 } from "vue";
-
+const submitBtn = ref(null)
 const props = defineProps({
   modelValue: {
     type: Object,
@@ -1093,6 +1093,7 @@ defineExpose({
   formDataShowLabelOne,
   formDataListShowLabelOne,
   btnConfigCopy,
+  testForm,
 });
 // onMounted(() => {});
 </script>

+ 22 - 32
src/main.js

@@ -1,39 +1,29 @@
-import {
-  createApp
-} from 'vue'
-import App from './App.vue'
-import router from './router'
-import i18n from '@/lang/'
-import {
-  moneyFormat,
-  getDictOne,
-  compareTime,
-  dictValueLabel
-} from '@/utils/util'
-const app = createApp(App)
-app.use(router)
-app.use(i18n).mount('#app')
-import {
-  uploadDdRightBtn
-} from '@/utils/ddAdapter'
-import {
-  post,
-  get
-} from '@/utils/axios'
+import { createApp } from "vue";
+import App from "./App.vue";
+import router from "./router";
+import i18n from "@/lang/";
+import { moneyFormat, getDictOne, compareTime, dictValueLabel, formChange, formChangeTwo } from "@/utils/util";
+const app = createApp(App);
+app.use(router);
+app.use(i18n).mount("#app");
+import { uploadDdRightBtn } from "@/utils/ddAdapter";
+import { post, get } from "@/utils/axios";
 
-app.config.globalProperties.get = get
-app.config.globalProperties.post = post
+app.config.globalProperties.get = get;
+app.config.globalProperties.post = post;
 // 金额千分符
-app.config.globalProperties.moneyFormat = moneyFormat
+app.config.globalProperties.moneyFormat = moneyFormat;
 // 获取字典
-app.config.globalProperties.getDictOne = getDictOne
+app.config.globalProperties.getDictOne = getDictOne;
 // 字典回显
-app.config.globalProperties.dictValueLabel = dictValueLabel
+app.config.globalProperties.dictValueLabel = dictValueLabel;
 // 比较时间大小
-app.config.globalProperties.compareTime = compareTime
-app.config.globalProperties.uploadDdRightBtn = uploadDdRightBtn
-
+app.config.globalProperties.compareTime = compareTime;
+app.config.globalProperties.uploadDdRightBtn = uploadDdRightBtn;
+// form组件 select change事件回填
+app.config.globalProperties.formChange = formChange;
+app.config.globalProperties.formChangeTwo = formChangeTwo;
 
 //中英文全局挂载
-app.config.globalProperties.t = i18n.global.t
-export default app
+app.config.globalProperties.t = i18n.global.t;
+export default app;

+ 24 - 5
src/utils/util.js

@@ -1,7 +1,4 @@
-import {
-  post,
-  get
-} from '@/utils/axios'
+import { post, get } from "@/utils/axios";
 export function getDictOne(key) {
   return new Promise((resolve, reject) => {
     let dictObj = {};
@@ -79,4 +76,26 @@ export function dictValueLabel(value, arr) {
     return "";
   }
   return "";
-}
+}
+
+// form组件 formConfig select change事件回填
+export function formChange(val, data, formData) {
+  formData.data[data.prop] = val.selectedValues[0];
+  let list = data.data.filter((item) => item[data.fieldNames.value] == val.selectedValues[0]);
+  if (list && list.length > 0) {
+    formData.data[data.prop + "Name"] = list[0][data.fieldNames.text];
+  } else {
+    formData.data[data.prop + "Name"] = "";
+  }
+}
+
+// form组件 formOption select change事件回填
+export function formChangeTwo(val, data, index, indexTwo, propName, formData) {
+  formData.data[propName][index][data.prop] = val.selectedValues[0];
+  let list = data.data.filter((item) => item[data.fieldNames.value] == val.selectedValues[0]);
+  if (list && list.length > 0) {
+    formData.data[propName][index][data.prop + "Name"] = list[0][data.fieldNames.text];
+  } else {
+    formData.data[propName][index][data.prop + "Name"] = "";
+  }
+}

+ 104 - 7
src/views/processApproval/components/Contract.vue

@@ -44,7 +44,7 @@ const props = defineProps({
 });
 const proxy = getCurrentInstance().proxy;
 const route = useRoute();
-const active = ref(4);
+const active = ref(0);
 const formData = reactive({
   data: {
     contractType: "1",
@@ -92,6 +92,47 @@ const formConfig = reactive([
       value: "value",
     },
     data: [],
+    changeFn: (val, data) => {
+      proxy.formChange(val, data, formData);
+      formData.data.sellCorporationId = "";
+      formData.data.sellCountryName = "";
+      formData.data.sellProvinceName = "";
+      formData.data.sellCityName = "";
+      formData.data.sellAddress = "";
+      formData.data.sellContactName = "";
+      formData.data.sellContactNumber = "";
+      if (val.selectedValues[0]) {
+        proxy.post("/contractTemplate/detail", { id: val.selectedValues[0] }).then((res) => {
+          formData.data.sellCorporationId = res.data.corporationId;
+          if (res.data.corporationId) {
+            proxy.post("/corporation/detail", { id: res.data.corporationId }).then((detailCorporation) => {
+              let sellCity = "";
+              if (detailCorporation.data.countryEnStr) {
+                formData.data.sellCountryName = detailCorporation.data.countryEnStr;
+                sellCity = detailCorporation.data.countryEnStr;
+              }
+              if (detailCorporation.data.provinceEnStr) {
+                formData.data.sellProvinceName = detailCorporation.data.provinceEnStr;
+                sellCity = sellCity + " " + detailCorporation.data.provinceEnStr;
+              }
+              if (detailCorporation.data.cityEnStr) {
+                formData.data.sellCityName = detailCorporation.data.cityEnStr;
+                sellCity = sellCity + " " + detailCorporation.data.cityEnStr;
+              }
+              if (detailCorporation.data.addressEn) {
+                formData.data.sellAddress = detailCorporation.data.addressEn;
+              }
+              formData.data.sellCity = sellCity;
+              formDom1.value.formDataShowLabelOne();
+            });
+          }
+          formData.data.sellContactName = res.data.contactName;
+          formData.data.sellContactNumber = res.data.contactNumber;
+          formDom1.value.formDataShowLabelOne();
+        });
+      }
+      data.showPicker = false;
+    },
   },
   {
     type: "title",
@@ -108,13 +149,14 @@ const formConfig = reactive([
       value: "value",
     },
     data: [],
+    readonly: true,
   },
   {
-    type: "cascader",
+    type: "input",
     label: proxy.t("contract.cityText"),
     prop: "sellCity",
-    itemType: "city",
-    showPicker: false,
+    itemType: "text",
+    readonly: true,
   },
   {
     type: "input",
@@ -149,11 +191,61 @@ const formConfig = reactive([
       value: "value",
     },
     data: [],
+    changeFn: (val, data) => {
+      proxy.formChange(val, data, formData);
+      formData.data.buyContactName = "";
+      formData.data.buyContactNumber = "";
+      if (val.selectedValues[0]) {
+        proxy.post("/customer/detail", { id: val.selectedValues[0] }).then((res) => {
+          if (res.data.customerUserList && res.data.customerUserList.length > 0) {
+            formData.data.buyContactName = res.data.customerUserList[0].name;
+            if (res.data.customerUserList[0].contactJson) {
+              let contactJson = JSON.parse(res.data.customerUserList[0].contactJson);
+              if (contactJson && contactJson.length > 0) {
+                formData.data.buyContactNumber = contactJson[0].contactNo;
+              }
+            }
+          }
+          let cityName = "";
+          if (res.data.countryName) {
+            cityName = res.data.countryName;
+            if (res.data.provinceName) {
+              cityName = cityName + " " + res.data.provinceName;
+              if (res.data.cityName) {
+                cityName = cityName + " " + res.data.cityName;
+              }
+            }
+          }
+          formData.data.cityName = cityName;
+          if (res.data.cityId) {
+            formData.data.city = res.data.cityId;
+          } else if (res.data.provinceId) {
+            formData.data.city = res.data.provinceId;
+          } else if (res.data.countryId) {
+            formData.data.city = res.data.countryId;
+          } else {
+            formData.data.city = "";
+          }
+          formData.data.countryId = res.data.countryId;
+          formData.data.provinceId = res.data.provinceId;
+          formData.data.cityId = res.data.cityId;
+          formData.data.buyPostalCode = res.data.zipCode;
+          formData.data.buyAddress = res.data.address;
+        });
+      } else {
+        formData.data.countryId = "";
+        formData.data.provinceId = "";
+        formData.data.cityId = "";
+        formData.data.buyPostalCode = "";
+        formData.data.buyAddress = "";
+      }
+      data.showPicker = false;
+    },
   },
   {
     type: "cascader",
     label: proxy.t("contract.cityText"),
-    prop: "buyCity",
+    prop: "city",
     itemType: "city",
     showPicker: false,
   },
@@ -207,6 +299,10 @@ const formGoodsOption = reactive({
           value: "value",
         },
         data: [],
+        changeFn: (val, data, index, indexTwo, propName) => {
+          proxy.formChangeTwo(val, data, index, indexTwo, propName, formData);
+          data.showPicker = false;
+        },
       },
       {
         type: "input",
@@ -528,7 +624,7 @@ const rules = {
   sellCorporationId: [{ required: true, message: proxy.t("contract.sellCorporationIdMsg") }],
   buyCorporationId: [{ required: true, message: proxy.t("contract.buyCorporationIdMsg") }],
   sellCity: [{ required: true, message: proxy.t("contract.cityMsg") }],
-  buyCity: [{ required: true, message: proxy.t("contract.cityMsg") }],
+  city: [{ required: true, message: proxy.t("contract.cityMsg") }],
   sellAddress: [{ required: true, message: proxy.t("contract.addressMsg") }],
   buyAddress: [{ required: true, message: proxy.t("contract.addressMsg") }],
   sellContactName: [{ required: true, message: proxy.t("contract.contactNameMsg") }],
@@ -712,7 +808,8 @@ const handleChangeAmount = () => {
   formData.data.amountProject = amountProject;
 };
 const handleSubmit = async () => {
-  return formData.data;
+  console.log(formDom1.value.testForm.submit());
+  // return formData.data;
 };
 watch(
   props.queryData,

+ 9 - 27
src/views/processApproval/components/SendFunds.vue

@@ -79,18 +79,12 @@ const formConfig = reactive([
       value: "value",
     },
     data: [],
-    changeFn: (val, item) => {
-      formData.data.corporationId = val.selectedValues[0];
-      let list = item.data.filter((aa) => aa[item.fieldNames.value] == val.selectedValues[0]);
-      if (list && list.length > 0) {
-        formData.data.corporationIdName = list[0][item.fieldNames.text];
-      } else {
-        formData.data.corporationIdName = "";
-      }
+    changeFn: (val, data) => {
+      proxy.formChange(val, data, formData);
       if (formData.data.type == "3") {
         getAdvanceList();
       }
-      item.showPicker = false;
+      data.showPicker = false;
     },
   },
   {
@@ -116,7 +110,7 @@ const formConfig = reactive([
       value: "value",
     },
     data: [],
-    changeFn: (val, item) => {
+    changeFn: (val, data) => {
       if (val.selectedValues[0] === "3" || oldType.value === "3") {
         for (let text in formData.data) {
           if (text === "advanceId") {
@@ -132,20 +126,14 @@ const formConfig = reactive([
         }
       }
       oldType.value = JSON.parse(JSON.stringify(val.selectedValues[0]));
-      formData.data.type = JSON.parse(JSON.stringify(val.selectedValues[0]));
-      let list = item.data.filter((aa) => aa[item.fieldNames.value] == val.selectedValues[0]);
-      if (list && list.length > 0) {
-        formData.data.typeName = list[0][item.fieldNames.text];
-      } else {
-        formData.data.typeName = "";
-      }
+      proxy.formChange(val, data, formData);
       if (val.selectedValues[0] === "3") {
         formConfig[3].type = "picker";
         getAdvanceList();
       } else {
         formConfig[3].type = "pickerAAA";
       }
-      item.showPicker = false;
+      data.showPicker = false;
     },
   },
   {
@@ -159,14 +147,8 @@ 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 = "";
-      }
+    changeFn: (val, data) => {
+      proxy.formChange(val, data, formData);
       if (val.selectedValues && val.selectedValues.length > 0) {
         proxy.post("/accountRequestFunds/detail", { id: val.selectedValues[0] }).then((res) => {
           formData.data.departmentId = res.data.departmentId;
@@ -195,7 +177,7 @@ const formConfig = reactive([
           formDom4.value.formDataShowLabelOne();
         });
       }
-      item.showPicker = false;
+      data.showPicker = false;
     },
   },
   {