Преглед на файлове

Merge branch 'master' of http://36.137.93.232:3000/hf/byte-sailing-new

cz преди 1 година
родител
ревизия
330aaba5aa

+ 21 - 10
src/components/process/Contract.vue

@@ -140,7 +140,7 @@
               <template #default="{ row, $index }">
                 <div style="width: 100%">
                   <!-- :rules="rules.productModel" -->
-                  <el-form-item :prop="'contractProductList.' + $index + '.productModel'"  :inline-message="true">
+                  <el-form-item :prop="'contractProductList.' + $index + '.productModel'" :inline-message="true">
                     <el-input v-model="row.productModel" placeholder="请输入规格型号" />
                   </el-form-item>
                 </div>
@@ -474,7 +474,8 @@ import SelectGoods from "@/components/product/SelectGoods";
 import { ElMessage } from "element-plus";
 import Editor from "@/components/Editor/index.vue";
 import selectCity from "@/components/selectCity/index.vue";
-import { useRouter, useRoute } from "vue-router";
+import { useRoute } from "vue-router";
+
 const route = useRoute();
 // 接收父组件的传值
 const props = defineProps({
@@ -520,7 +521,7 @@ const formOption = reactive({
   labelWidth: 100,
   itemWidth: 100,
   rules: [],
-  disabled: judgeStatus()
+  disabled: false,
 });
 const formConfig = computed(() => {
   return [
@@ -1089,11 +1090,14 @@ const handleSubmit = async () => {
       errorDiv[0].scrollIntoView();
     }, 0);
   }
-  return status;
+  return false;
+};
+const getFormData = () => {
+  return formData.data;
 };
 // 向父组件暴露
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 const changeShroffAccount = (val) => {
@@ -1109,13 +1113,20 @@ const changeShroffAccount = (val) => {
     }
   }
 };
-
 watch(
-  () => props.queryData,
-  (val, oldVal) => {
+  props.queryData,
+  () => {
+    formOption.disabled = judgeStatus();
     if (props.queryData && (route.query.processType == 10 || route.query.processType == 20)) {
-      formOption.disabled = true;
-      formData.data = val;
+      for (var text in props.queryData) {
+        formData.data[text] = props.queryData[text];
+      }
+      if (formData.data.countryId) {
+        getCityData(formData.data.countryId, "20");
+      }
+      if (formData.data.provinceId) {
+        getCityData(formData.data.provinceId, "30");
+      }
     }
   },
   {

+ 39 - 2
src/components/process/EHSD/Contract.vue

@@ -489,7 +489,9 @@ import CompanyProduct from "@/views/EHSD/productLibrary/companyProduct/index";
 import CustomerProduct from "@/views/EHSD/productLibrary/customerProduct/index";
 import { ElMessage } from "element-plus";
 import selectCity from "@/components/selectCity/index.vue";
+import { useRoute } from "vue-router";
 
+const route = useRoute();
 const { proxy } = getCurrentInstance();
 const innerMethod = ref([]);
 const outsideMethod = ref([]);
@@ -534,7 +536,7 @@ const formOption = reactive({
   labelWidth: 100,
   itemWidth: 100,
   rules: [],
-  disabled: judgeStatus()
+  disabled: false,
 });
 const uploadData = ref({});
 const indicationUploadData = ref({});
@@ -1045,9 +1047,12 @@ const clickCustomerProduct = () => {
   }
   openProductCustomer.value = true;
 };
+const getFormData = () => {
+  return formData.data;
+};
 // 向父组件暴露
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 const changeShroffAccount = (val) => {
@@ -1106,6 +1111,38 @@ const clickSplit = (item) => {
 const clickDelete = (index) => {
   formData.data.contractShipmentList.splice(index, 1);
 };
+watch(
+  props.queryData,
+  () => {
+    formOption.disabled = judgeStatus();
+    if (props.queryData && (route.query.processType == 10 || route.query.processType == 20)) {
+      for (var text in props.queryData) {
+        if (text === "fileList" || text === "packageFileList") {
+          if (props.queryData[text] && props.queryData[text].length > 0) {
+            formData.data[text] = props.queryData[text].map((item) => {
+              return {
+                raw: item,
+                name: item.fileName,
+                url: item.fileUrl,
+              };
+            });
+          }
+        } else {
+          formData.data[text] = props.queryData[text];
+        }
+      }
+      if (formData.data.countryId) {
+        getCityData(formData.data.countryId, "20");
+      }
+      if (formData.data.provinceId) {
+        getCityData(formData.data.provinceId, "30");
+      }
+    }
+  },
+  {
+    deep: true,
+  }
+);
 </script>
 
 <style lang="scss" scoped>

+ 27 - 2
src/components/process/EHSD/PriceSheet.vue

@@ -370,7 +370,9 @@ import CompanyProduct from "@/views/EHSD/productLibrary/companyProduct/index";
 import CustomerProduct from "@/views/EHSD/productLibrary/customerProduct/index";
 import { ElMessage } from "element-plus";
 import selectCity from "@/components/selectCity/index.vue";
+import { useRoute } from "vue-router";
 
+const route = useRoute();
 const { proxy } = getCurrentInstance();
 const innerMethod = ref([]);
 const outsideMethod = ref([]);
@@ -410,7 +412,7 @@ const formOption = reactive({
   labelWidth: 100,
   itemWidth: 100,
   rules: [],
-  disabled: judgeStatus()
+  disabled: false
 });
 const formConfig = computed(() => {
   return [
@@ -849,6 +851,26 @@ const handleSubmit = async () => {
 const props = defineProps({
   queryData: Object,
 });
+watch(
+  props.queryData,
+  () => {
+    formOption.disabled = judgeStatus();
+    if (props.queryData && (route.query.processType == 10 || route.query.processType == 20)) {
+      for (var text in props.queryData) {
+        formData.data[text] = props.queryData[text];
+      }
+      if (formData.data.countryId) {
+        getCityData(formData.data.countryId, "20");
+      }
+      if (formData.data.provinceId) {
+        getCityData(formData.data.provinceId, "30");
+      }
+    }
+  },
+  {
+    deep: true,
+  }
+);
 onMounted(() => {
   if (props.queryData.priceSheetId) {
     proxy.post("/saleQuotation/detail", { id: props.queryData.priceSheetId }).then((res) => {
@@ -916,9 +938,12 @@ const clickCustomerProduct = () => {
   }
   openProductCustomer.value = true;
 };
+const getFormData = () => {
+  return formData.data;
+};
 // 向父组件暴露
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 </script>

+ 27 - 2
src/components/process/EHSD/Purchase.vue

@@ -451,7 +451,9 @@ import ProductMaterial from "@/views/product/material/index";
 import { ElMessage } from "element-plus";
 import selectCity from "@/components/selectCity/index.vue";
 import Editor from "@/components/Editor/index.vue";
+import { useRoute } from "vue-router";
 
+const route = useRoute();
 const { proxy } = getCurrentInstance();
 const invoiceType = ref([]);
 const fundsPaymentMethod = ref([]);
@@ -511,7 +513,7 @@ const formOption = reactive({
   labelWidth: 100,
   itemWidth: 100,
   rules: [],
-  disabled: judgeStatus(),
+  disabled: false,
 });
 const formConfig = computed(() => {
   return [
@@ -935,9 +937,32 @@ const handleSubmit = async () => {
 const props = defineProps({
   queryData: Object,
 });
+watch(
+  props.queryData,
+  () => {
+    formOption.disabled = judgeStatus();
+    if (props.queryData && (route.query.processType == 10 || route.query.processType == 20)) {
+      for (var text in props.queryData) {
+        formData.data[text] = props.queryData[text];
+      }
+      if (formData.data.countryId) {
+        getCityData(formData.data.countryId, "20");
+      }
+      if (formData.data.provinceId) {
+        getCityData(formData.data.provinceId, "30");
+      }
+    }
+  },
+  {
+    deep: true,
+  }
+);
+const getFormData = () => {
+  return formData.data;
+};
 // 向父组件暴露
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 onMounted(() => {

+ 39 - 2
src/components/process/EHSD/Sample.vue

@@ -485,7 +485,9 @@ import CompanyProduct from "@/views/EHSD/productLibrary/companyProduct/index";
 import CustomerProduct from "@/views/EHSD/productLibrary/customerProduct/index";
 import { ElMessage } from "element-plus";
 import selectCity from "@/components/selectCity/index.vue";
+import { useRoute } from "vue-router";
 
+const route = useRoute();
 const { proxy } = getCurrentInstance();
 const innerMethod = ref([]);
 const outsideMethod = ref([]);
@@ -532,7 +534,7 @@ const formOption = reactive({
   labelWidth: 100,
   itemWidth: 100,
   rules: [],
-  disabled: judgeStatus()
+  disabled: false
 });
 const uploadData = ref({});
 const indicationUploadData = ref({});
@@ -1049,15 +1051,50 @@ const handleSubmit = async () => {
 const props = defineProps({
   queryData: Object,
 });
+watch(
+  props.queryData,
+  () => {
+    formOption.disabled = judgeStatus();
+    if (props.queryData && (route.query.processType == 10 || route.query.processType == 20)) {
+      for (var text in props.queryData) {
+        if (text === "fileList" || text === "packageFileList") {
+          if (props.queryData[text] && props.queryData[text].length > 0) {
+            formData.data[text] = props.queryData[text].map((item) => {
+              return {
+                raw: item,
+                name: item.fileName,
+                url: item.fileUrl,
+              };
+            });
+          }
+        } else {
+          formData.data[text] = props.queryData[text];
+        }
+      }
+      if (formData.data.countryId) {
+        getCityData(formData.data.countryId, "20");
+      }
+      if (formData.data.provinceId) {
+        getCityData(formData.data.provinceId, "30");
+      }
+    }
+  },
+  {
+    deep: true,
+  }
+);
 const clickCustomerProduct = () => {
   if (!formData.data.buyCorporationId) {
     return ElMessage("请先选择客户");
   }
   openProductCustomer.value = true;
 };
+const getFormData = () => {
+  return formData.data;
+};
 // 向父组件暴露
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 const changeShroffAccount = (val) => {

+ 4 - 1
src/components/process/PriceSheet.vue

@@ -838,9 +838,12 @@ onMounted(() => {
     });
   }
 });
+const getFormData = () => {
+  return formData.data;
+};
 // 向父组件暴露
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 </script>

+ 43 - 3
src/components/process/PurchasePayment.vue

@@ -91,7 +91,9 @@
 import byForm from "@/components/byForm/index";
 import { ElMessage } from "element-plus";
 import useUserStore from "@/store/modules/user";
+import { useRoute } from "vue-router";
 
+const route = useRoute();
 const { proxy } = getCurrentInstance();
 const supplierList = ref([]);
 const invoiceType = ref([]);
@@ -115,11 +117,21 @@ let formData = reactive({
   },
 });
 const submit = ref(null);
+const judgeStatus = () => {
+  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;
+};
 const formOption = reactive({
   inline: true,
   labelWidth: 100,
   itemWidth: 100,
   rules: [],
+  disabled: false,
 });
 const formConfig = computed(() => {
   return [
@@ -241,7 +253,7 @@ const rules = ref({
   supplyId: [{ required: true, message: "请选择供应商", trigger: "change" }],
   invoiceType: [{ required: true, message: "请选择发票类型", trigger: "change" }],
   payType: [{ required: true, message: "请选择付款方式", trigger: "change" }],
-  accountManagementId: [{ required: true, message: "请选择付款账户", trigger: "change" }],
+  // accountManagementId: [{ required: true, message: "请选择付款账户", trigger: "change" }],
   purchaseId: [{ required: true, message: "请选择采购合同", trigger: "change" }],
   money: [{ required: true, message: "请输入付款金额", trigger: "blur" }],
 });
@@ -280,7 +292,6 @@ const getDict = () => {
             value: item.dictKey,
           };
         });
-        console.log(fundsPaymentMethod.value);
       }
     });
   proxy.post("/supplierInfo/page", { pageNum: 1, pageSize: 999 }).then((res) => {
@@ -391,6 +402,7 @@ const handleSubmit = async () => {
           return {
             id: item.raw.id,
             fileName: item.raw.fileName,
+            fileUrl: item.raw.fileUrl,
           };
         });
       }
@@ -406,6 +418,31 @@ const handleSubmit = async () => {
 const props = defineProps({
   queryData: Object,
 });
+watch(
+  props.queryData,
+  () => {
+    formOption.disabled = judgeStatus();
+    if (props.queryData && (route.query.processType == 10 || route.query.processType == 20)) {
+      for (var text in props.queryData) {
+        formData.data[text] = props.queryData[text];
+      }
+      if (formData.data.fileList && formData.data.fileList.length > 0) {
+        fileList.value = formData.data.fileList.map((item) => {
+          return {
+            raw: item,
+            name: item.fileName,
+            url: item.fileUrl,
+          };
+        });
+      } else {
+        fileList.value = [];
+      }
+    }
+  },
+  {
+    deep: true,
+  }
+);
 onMounted(async () => {
   if (props.queryData.supplyId) {
     formData.data.supplyId = props.queryData.supplyId;
@@ -438,9 +475,12 @@ onMounted(async () => {
     }
   }
 });
+const getFormData = () => {
+  return formData.data;
+};
 // 向父组件暴露
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 </script>

+ 4 - 1
src/components/process/PurchaseRefund.vue

@@ -250,9 +250,12 @@ const handleSubmit = async () => {
   }
   return status;
 };
+const getFormData = () => {
+  return formData.data;
+};
 // 向父组件暴露
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 // 接收父组件的传值

+ 4 - 1
src/components/process/ReturnGood.vue

@@ -272,9 +272,12 @@ const getDict = () => {
 };
 getDict();
 
+const getFormData = () => {
+  return formData.data;
+};
 // 向父组件暴露
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 </script>

+ 4 - 1
src/components/process/SendFunds.vue

@@ -653,9 +653,12 @@ const handleSuccess = (any, UploadFile) => {
 const onPreviewFile = (file) => {
   window.open(file.raw.fileUrl, "_blank");
 };
+const getFormData = () => {
+  return formData.data;
+};
 // 向父组件暴露
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 const judgeStatus = () => {

+ 4 - 1
src/components/process/SendPurchase.vue

@@ -385,9 +385,12 @@ const judgeStatus = () => {
   return false;
 };
 
+const getFormData = () => {
+  return formData.data;
+};
 // 向父组件暴露
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 </script>

+ 4 - 2
src/components/process/SendSubscribe.vue

@@ -250,9 +250,11 @@ const getDict = () => {
   });
 };
 getDict();
-
+const getFormData = () => {
+  return formData.data;
+};
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 </script>

+ 30 - 3
src/components/process/ServiceContract.vue

@@ -119,7 +119,7 @@
           <div v-if="judgeStatus()">
             <div v-html="getStyle(formData.data.remark)"></div>
           </div>
-          <Editor v-else :value="formData.data.remark" @updateValue="updateContentSeller" />
+          <Editor v-else :value="formData.data.remark" @updateValue="updateContentSeller" ref="remarkEditor" />
         </div>
       </template>
       <template #commodity>
@@ -334,7 +334,9 @@ import SelectGoods from "@/components/product/SelectGoods";
 import { ElMessage } from "element-plus";
 import Editor from "@/components/Editor/index.vue";
 import selectCity from "@/components/selectCity/index.vue";
+import { useRoute } from "vue-router";
 
+const route = useRoute();
 // 接收父组件的传值
 const props = defineProps({
   queryData: Object,
@@ -374,7 +376,7 @@ const formOption = reactive({
   labelWidth: 100,
   itemWidth: 100,
   rules: [],
-  disabled: judgeStatus(),
+  disabled: false,
 });
 const formConfig = computed(() => {
   return [
@@ -731,6 +733,7 @@ const handleHandover = (row, index) => {
 const updateContent = (val) => {
   productRow.data.remark = val;
 };
+const remarkEditor = ref(null);
 const updateContentSeller = (val) => {
   formData.data.remark = val;
 };
@@ -857,9 +860,12 @@ const handleSubmit = async () => {
   }
   return status;
 };
+const getFormData = () => {
+  return formData.data;
+};
 // 向父组件暴露
 defineExpose({
-  submitData: formData.data,
+  getFormData,
   handleSubmit,
 });
 const getStyle = (text) => {
@@ -869,6 +875,27 @@ const getStyle = (text) => {
     return "";
   }
 };
+watch(
+  props.queryData,
+  () => {
+    formOption.disabled = judgeStatus();
+    if (props.queryData && (route.query.processType == 10 || route.query.processType == 20)) {
+      for (var text in props.queryData) {
+        formData.data[text] = props.queryData[text];
+      }
+      if (formData.data.countryId) {
+        getCityData(formData.data.countryId, "20");
+      }
+      if (formData.data.provinceId) {
+        getCityData(formData.data.provinceId, "30");
+      }
+      remarkEditor.value.changeHtml(formData.data.remark);
+    }
+  },
+  {
+    deep: true,
+  }
+);
 </script>
 
 <style lang="scss" scoped>

+ 1 - 1
src/views/process/processApproval/index.vue

@@ -192,7 +192,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,