Bläddra i källkod

申购办理数据未回填问题

cz 2 år sedan
förälder
incheckning
1a01d63cc8

+ 61 - 26
src/components/WDLY/process/SendPurchaseWDLY.vue

@@ -5,7 +5,7 @@
       :rules="rules"
       ref="formDom"
       label-position="top"
-      :disabled="props.queryData.purchaseDetailList ? true : false"
+      :disabled="judgeStatus()"
     >
       <div class="_t">基础信息</div>
       <el-row :gutter="10">
@@ -264,6 +264,7 @@ import SelectGoods from "@/components/product/SelectGoods";
 import { ElMessage, ElMessageBox } from "element-plus";
 import useUserStore from "@/store/modules/user";
 import { useRouter, useRoute } from "vue-router";
+import { watch } from "vue";
 const { proxy } = getCurrentInstance();
 const route = useRoute();
 let formData = reactive({
@@ -400,28 +401,6 @@ onMounted(() => {
     ids.value = props.queryData.ids.split(",") || [];
     getDetails();
   }
-  setTimeout(() => {
-    if (!props.queryData.purchaseDetailList) return;
-    formData.data = props.queryData;
-    proxy
-      .post("/subscribeDetail/detail", {
-        ids: props.queryData.purchaseDetailList.map((item) => {
-          return item.subscribeDetailId;
-        }),
-      })
-      .then((res) => {
-        console.log(formData.data.purchaseDetailList);
-        formData.data.purchaseDetailList =
-          props.queryData.purchaseDetailList.map((x, index) => ({
-            ...res[index],
-            subscribeCount: x.count,
-            count: x.count,
-            price: x.price,
-            amount: x.amount,
-          }));
-        console.log(formData.data.purchaseDetailList);
-      });
-  }, 2000);
 });
 
 // 接收父组件的传值
@@ -432,10 +411,16 @@ const props = defineProps({
 const ids = ref([]);
 const getDetails = () => {
   proxy.post("/subscribeDetail/detail", { ids: ids.value }).then((res) => {
-    console.log(res, "123123123123123123123123");
     formData.data.purchaseDetailList = res.map((x) => ({
-      ...x,
+      subscribeDetailId: x.id,
+      productCustomCode: x.productCustomCode,
+      productDefinition: x.productDefinition,
+      productName: x.productName,
+      productSpec: x.productSpec,
+      productUnit: x.productUnit,
+      bussinessId: x.bussinessId,
       subscribeCount: x.count,
+      purchaseCount: x.purchaseCount,
       count: Number(x.count) - Number(x.purchaseCount),
       price: null,
       amount: null,
@@ -518,9 +503,59 @@ const getDict = () => {
   });
 };
 getDict();
+
+const judgeStatus = () => {
+  if (route.query.processType == 20) {
+    return true;
+  }
+  if (props.queryData.recordList && props.queryData.recordList.length > 0) {
+    let data = props.queryData.recordList.filter(
+      (item) => item.status === 2 && item.nodeType !== 1
+    );
+    if (data && data.length > 0) {
+      return true;
+    }
+  }
+  return false;
+};
+
+watch(
+  () => props.queryData,
+  () => {
+    if (
+      props.queryData &&
+      (route.query.processType == 10 || route.query.processType == 20)
+    ) {
+      formData.data = props.queryData;
+      // proxy
+      //   .post("/subscribeDetail/detail", {
+      //     ids: props.queryData.purchaseDetailList.map((item) => {
+      //       return item.subscribeDetailId;
+      //     }),
+      //   })
+      //   .then((res) => {
+      //     formData.data.purchaseDetailList =
+      //       props.queryData.purchaseDetailList.map((x, index) => ({
+      //         ...res[index],
+      //         subscribeCount: x.count,
+      //         count: x.count,
+      //         price: x.price,
+      //         amount: x.amount,
+      //       }));
+      //   });
+    }
+  },
+  {
+    deep: true,
+  }
+);
+
+const getFormData = () => {
+  return formData.data;
+};
 // 向父组件暴露
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 </script>

+ 44 - 27
src/components/WDLY/process/SendSubscribeWDLY.vue

@@ -90,7 +90,6 @@ import useUserStore from "@/store/modules/user";
 import { computed } from "vue";
 const { proxy } = getCurrentInstance();
 const route = useRoute();
-
 let formData = reactive({
   data: {
     subscribeDetailList: [],
@@ -106,12 +105,12 @@ let rules = ref({
   count: [{ required: true, message: "请输入申购数量", trigger: "blur" }],
   // remark: [{ required: true, message: "请输入申购备注", trigger: "blur" }],
 });
-const formOption = computed(() => ({
+const formOption = reactive({
   disabled: false,
   inline: true,
   labelWidth: 100,
   itemWidth: 100,
-}));
+});
 const formConfig = computed(() => {
   return [
     {
@@ -184,6 +183,7 @@ const formConfig = computed(() => {
     },
   ];
 });
+
 const formDom = ref(null);
 const handleSubmit = async () => {
   const vaild = await formDom.value.handleSubmit(() => {}); //拿到内部表单是否验证通过
@@ -241,6 +241,7 @@ const pushGoods = (goods) => {
 const props = defineProps({
   queryData: String,
 });
+
 const productUnit = ref([]);
 const getDict = () => {
   proxy.getDictOne(["unit"]).then((res) => {
@@ -255,34 +256,50 @@ getDict();
 // 获取用户信息并赋默认值
 const userInfo = useUserStore().user;
 onMounted(() => {
-  if (route.query.id && route.query.processType == 20) {
-    formOption.value.disabled = true;
-    setTimeout(() => {
-      formData.data = {
-        ...props.queryData,
-      };
-      if (formData.data && route.query.subscribeId) {
-        // const ids = formData.data.subscribeDetailList.map((x) => x.bussinessId);
-        proxy
-          .post("/subscribe/detail", {
-            id: route.query.subscribeId,
-          })
-          .then((res) => {
-            formData.data.subscribeDetailList = res.subscribeDetailList.map(
-              (x) => ({ ...x, goodType: x.productDefinition })
-            );
-          });
+  formData.data.subcribeTime = proxy.parseTime(new Date());
+  formData.data.deptName = userInfo.dept.deptName;
+  formData.data.subcribeName = userInfo.nickName;
+});
+
+const judgeStatus = () => {
+  if (route.query.processType == 20) {
+    return true;
+  }
+  if (props.queryData.recordList && props.queryData.recordList.length > 0) {
+    let data = props.queryData.recordList.filter(
+      (item) => item.status === 2 && item.nodeType !== 1
+    );
+    if (data && data.length > 0) {
+      return true;
+    }
+  }
+  return false;
+};
+
+watch(
+  () => props.queryData,
+  () => {
+    formOption.disabled = judgeStatus();
+    if (
+      props.queryData &&
+      (route.query.processType == 10 || route.query.processType == 20)
+    ) {
+      for (const key in props.queryData) {
+        formData.data[key] = props.queryData[key];
       }
-    }, 2000);
-  } else {
-    formData.data.subcribeTime = proxy.parseTime(new Date());
-    formData.data.deptName = userInfo.dept.deptName;
-    formData.data.subcribeName = userInfo.nickName;
+    }
+  },
+  {
+    deep: true,
   }
-});
+);
+const getFormData = () => {
+  return formData.data;
+};
+
 // 向父组件暴露
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 </script>

+ 41 - 25
src/views/process/processApproval/index.vue

@@ -96,7 +96,7 @@
             <el-button
               type="primary"
               v-if="approvalRecordData.buttonInfoList.length == 0"
-              @click="handleSubmit"
+              @click="handleSubmit()"
               >提交</el-button
             >
             <el-button
@@ -118,9 +118,18 @@
             <li
               v-for="item in recordList"
               :key="item.id"
-              :class="!route.query.id ? '' : 
-                item.status == 2 ? 'flow-orange' : item.status == 3 && !route.query.id ? 'flow-orange' : item.status == 3 && route.query.id ? 'flow-grey' : ''
-              ">
+              :class="
+                !route.query.id
+                  ? ''
+                  : item.status == 2
+                  ? 'flow-orange'
+                  : item.status == 3 && !route.query.id
+                  ? 'flow-orange'
+                  : item.status == 3 && route.query.id
+                  ? 'flow-grey'
+                  : ''
+              "
+            >
               <div class="left-icon">
                 <i class="iconfont icon-iconm_daick"></i>
                 <i class="iconfont icon-icomx_quertj1 right-btm-status"></i>
@@ -218,9 +227,7 @@ const router = useRouter();
 const route = useRoute();
 // tab切换逻辑
 const activeName = ref("first");
-const handleClick = (tab, event) => {
-  // console.log(tab, event);
-};
+const handleClick = (tab, event) => {};
 // 意见表单
 const flowForm = reactive({
   flowKey: "",
@@ -263,7 +270,7 @@ const handleSubmit = async (_type) => {
     if (flag) {
       flowFormDom.value.validate((valid) => {
         if (valid) {
-          const data = { ...makeDom.value.submitData };
+          const data = makeDom.value.getFormData();
           if (flowForm.flowKey == "subscribe_flow") {
             data.subscribeDetailList = data.subscribeDetailList.map((x) => ({
               bussinessId: x.bussinessId,
@@ -282,25 +289,29 @@ const handleSubmit = async (_type) => {
           } else if (flowForm.flowKey == "sales_return_flow") {
           } else if (flowForm.flowKey == "refund_flow") {
           } else if (flowForm.flowKey == "wdly_apply_purchase") {
-            data.subscribeDetailList = data.subscribeDetailList.map((x) => ({
-              bussinessId: x.bussinessId,
-              count: x.count,
-              remark: x.remark,
-            }));
+            // data.subscribeDetailList = data.subscribeDetailList.map((x) => ({
+            //   bussinessId: x.bussinessId,
+            //   count: x.count,
+            //   remark: x.remark,
+            // }));
             const victoriatouristJson = {
               planArrivalTime: data.planArrivalTime,
               receiptWarehouseId: data.receiptWarehouseId,
             };
             data.victoriatouristJson = JSON.stringify(victoriatouristJson);
           } else if (flowForm.flowKey == "wdly_purchase") {
-            data.purchaseDetailList = data.purchaseDetailList.map((x) => ({
-              bussinessId: x.bussinessId,
-              subscribeDetailId: x.id,
-              count: x.count,
-              price: x.price,
-              amount: x.amount,
-              deptId: x.deptId,
-            }));
+            // data.purchaseDetailList = data.purchaseDetailList.map((x) => ({
+            //   ...x,
+            //   subscribeDetailId: x.id,
+            // }));
+            // data.purchaseDetailList = data.purchaseDetailList.map((x) => ({
+            //   bussinessId: x.bussinessId,
+            //   subscribeDetailId: x.id,
+            //   count: x.count,
+            //   price: x.price,
+            //   amount: x.amount,
+            //   deptId: x.deptId,
+            // }));
             const victoriatouristJson = {
               isAgreement: data.isAgreement,
               paymentMethod: data.paymentMethod,
@@ -415,6 +426,14 @@ const handleSubmit = async (_type) => {
               .then((res) => {
                 handleResult(res);
               });
+            // if (_type && _type == 1) {
+            //   proxy
+            //     .post("/flowExample/setStartData", {
+            //       exampleId: route.query.id,
+            //       startDate: data,
+            //     })
+            //     .then();
+            // }
             return;
           } else {
             proxy
@@ -441,7 +460,6 @@ const skipPage = () => {
     });
   } else {
     const useTagsStore = useTagsViewStore();
-    console.log(useTagsStore);
     useTagsStore.delVisitedView(router.currentRoute.value);
     ElMessage({
       message: "操作成功!",
@@ -529,9 +547,8 @@ const getRecords = (_id) => {
         id: _id,
       })
       .then((res) => {
-        console.log(res, "ass");
         recordList.value = res.recordList;
-        queryData.data.recordList = res.recordList
+        queryData.data.recordList = res.recordList;
         approvalRecordData.value = res;
       });
   } else {
@@ -540,7 +557,6 @@ const getRecords = (_id) => {
         flowKey: flowForm.flowKey,
       })
       .then((res) => {
-        console.log(res, "ass");
         recordList.value = res;
       });
   }