cz 1 năm trước cách đây
mục cha
commit
fd813cfa6c

+ 280 - 53
src/components/PDF/paymentPDF.vue

@@ -10,37 +10,131 @@
         </div>
         <div style="border: 1px solid black">
           <div style="display: flex; border-bottom: 1px solid black">
-            <div style="width: 150px; border-right: 1px solid black; padding: 8px">创建人</div>
+            <div
+              style="width: 150px; border-right: 1px solid black; padding: 8px"
+            >
+              创建人
+            </div>
             <div style="width: calc(100% - 150px); padding: 8px">
               {{ dictValueLabel(printDetails.createUser, userList) }}
             </div>
           </div>
           <div style="display: flex; border-bottom: 1px solid black">
-            <div style="width: 150px; border-right: 1px solid black; padding: 8px">创建人部门</div>
+            <div
+              style="width: 150px; border-right: 1px solid black; padding: 8px"
+            >
+              创建人部门
+            </div>
             <div style="width: calc(100% - 150px); padding: 8px">
               {{ dictValueLabel(printDetails.deptId, deptList) }}
             </div>
           </div>
           <div style="display: flex; border-bottom: 1px solid black">
-            <div style="width: 150px; border-right: 1px solid black; padding: 4px 8px; display: flex; align-items: center">费用明细</div>
+            <div
+              style="
+                width: 150px;
+                border-right: 1px solid black;
+                padding: 4px 8px;
+                display: flex;
+                align-items: center;
+              "
+            >
+              费用明细
+            </div>
             <div style="width: calc(100% - 150px)">
               <div style="border-bottom: 1px solid black; display: flex">
-                <div style="width: 120px; padding: 4px 8px; border-right: 1px solid black; text-align: center">采购合同</div>
-                <div style="width: calc(100% - 340px); padding: 4px 8px; border-right: 1px solid black; text-align: center">款项说明</div>
-                <div style="width: 80px; padding: 4px 8px; border-right: 1px solid black; text-align: center">货币</div>
-                <div style="width: 140px; padding: 4px 8px; text-align: center">付款金额</div>
+                <div
+                  style="
+                    width: 120px;
+                    padding: 4px 8px;
+                    border-right: 1px solid black;
+                    text-align: center;
+                  "
+                >
+                  采购合同
+                </div>
+                <div
+                  style="
+                    width: calc(100% - 340px);
+                    padding: 4px 8px;
+                    border-right: 1px solid black;
+                    text-align: center;
+                  "
+                >
+                  款项说明
+                </div>
+                <div
+                  style="
+                    width: 80px;
+                    padding: 4px 8px;
+                    border-right: 1px solid black;
+                    text-align: center;
+                  "
+                >
+                  货币
+                </div>
+                <div style="width: 140px; padding: 4px 8px; text-align: center">
+                  付款金额
+                </div>
               </div>
-              <template v-if="printDetails.payDetailVoList && printDetails.payDetailVoList.length > 0">
-                <div v-for="(item, index) in printDetails.payDetailVoList" :key="index">
-                  <div :style="index + 1 !== printDetails.payDetailVoList.length ? 'border-bottom: 1px solid black;  display: flex' : ' display: flex'">
-                    <div style="width: 120px; padding: 4px 8px; border-right: 1px solid black; display: flex; align-items: center">
+              <template
+                v-if="
+                  printDetails.payDetailVoList &&
+                  printDetails.payDetailVoList.length > 0
+                "
+              >
+                <div
+                  v-for="(item, index) in printDetails.payDetailVoList"
+                  :key="index"
+                >
+                  <div
+                    :style="
+                      index + 1 !== printDetails.payDetailVoList.length
+                        ? 'border-bottom: 1px solid black;  display: flex'
+                        : ' display: flex'
+                    "
+                  >
+                    <div
+                      style="
+                        width: 120px;
+                        padding: 4px 8px;
+                        border-right: 1px solid black;
+                        display: flex;
+                        align-items: center;
+                      "
+                    >
                       {{ item.purchaseCode }}
                     </div>
-                    <div style="width: calc(100% - 340px); padding: 4px 8px; border-right: 1px solid black; display: flex; align-items: center">
+                    <div
+                      style="
+                        width: calc(100% - 340px);
+                        padding: 4px 8px;
+                        border-right: 1px solid black;
+                        display: flex;
+                        align-items: center;
+                      "
+                    >
                       {{ item.remark }}
                     </div>
-                    <div style="width: 80px; padding: 4px 8px; border-right: 1px solid black; display: flex; align-items: center">人民币</div>
-                    <div style="width: 140px; padding: 4px 8px; display: flex; align-items: center">
+                    <div
+                      style="
+                        width: 80px;
+                        padding: 4px 8px;
+                        border-right: 1px solid black;
+                        display: flex;
+                        align-items: center;
+                      "
+                    >
+                      人民币
+                    </div>
+                    <div
+                      style="
+                        width: 140px;
+                        padding: 4px 8px;
+                        display: flex;
+                        align-items: center;
+                      "
+                    >
                       {{ item.money }}
                     </div>
                   </div>
@@ -49,61 +143,175 @@
             </div>
           </div>
           <div style="display: flex; border-bottom: 1px solid black">
-            <div style="width: 150px; border-right: 1px solid black; padding: 8px">总报销金额</div>
+            <div
+              style="width: 150px; border-right: 1px solid black; padding: 8px"
+            >
+              总报销金额
+            </div>
             <div style="width: calc(100% - 150px); display: flex">
-              <div style="width: calc(100% - 140px); padding: 8px; border-right: 1px solid black">{{ NumberToChinese(computeMoney()) }}</div>
+              <div
+                style="
+                  width: calc(100% - 140px);
+                  padding: 8px;
+                  border-right: 1px solid black;
+                "
+              >
+                {{ NumberToChinese(computeMoney()) }}
+              </div>
               <div style="width: 140px; padding: 8px">{{ computeMoney() }}</div>
             </div>
           </div>
           <div style="display: flex; border-bottom: 1px solid black">
-            <div style="width: 150px; border-right: 1px solid black; padding: 8px">单据数量</div>
+            <div
+              style="width: 150px; border-right: 1px solid black; padding: 8px"
+            >
+              单据数量
+            </div>
             <div style="width: calc(100% - 150px); padding: 8px">
               {{ printDetails.receiptsNum }}
             </div>
           </div>
           <div style="display: flex; border-bottom: 1px solid black">
-            <div style="width: 150px; border-right: 1px solid black; padding: 0 8px; display: flex; align-items: center">收款信息</div>
+            <div
+              style="
+                width: 150px;
+                border-right: 1px solid black;
+                padding: 0 8px;
+                display: flex;
+                align-items: center;
+              "
+            >
+              收款信息
+            </div>
             <div style="width: calc(100% - 150px)">
               <div style="border-bottom: 1px solid black; display: flex">
-                <div style="width: 19%; padding: 0 8px; border-right: 1px solid black; text-align: center">支付方式</div>
-                <div style="width: 27%; padding: 0 8px; border-right: 1px solid black; text-align: center">收款方户名</div>
-                <div style="width: 27%; padding: 0 8px; border-right: 1px solid black; text-align: center">开户行</div>
-                <div style="width: 27%; padding: 0 8px; text-align: center">收款方账号</div>
+                <div
+                  style="
+                    width: 19%;
+                    padding: 0 8px;
+                    border-right: 1px solid black;
+                    text-align: center;
+                  "
+                >
+                  支付方式
+                </div>
+                <div
+                  style="
+                    width: 27%;
+                    padding: 0 8px;
+                    border-right: 1px solid black;
+                    text-align: center;
+                  "
+                >
+                  收款方户名
+                </div>
+                <div
+                  style="
+                    width: 27%;
+                    padding: 0 8px;
+                    border-right: 1px solid black;
+                    text-align: center;
+                  "
+                >
+                  开户行
+                </div>
+                <div style="width: 27%; padding: 0 8px; text-align: center">
+                  收款方账号
+                </div>
               </div>
               <div style="display: flex">
-                <div style="width: 19%; padding: 0 8px; border-right: 1px solid black; display: flex; align-items: center">
+                <div
+                  style="
+                    width: 19%;
+                    padding: 0 8px;
+                    border-right: 1px solid black;
+                    display: flex;
+                    align-items: center;
+                  "
+                >
                   {{ dictValueLabel(printDetails.payType, fundsPaymentMethod) }}
                 </div>
-                <div style="width: 27%; padding: 0 8px; border-right: 1px solid black; display: flex; align-items: center">
+                <div
+                  style="
+                    width: 27%;
+                    padding: 0 8px;
+                    border-right: 1px solid black;
+                    display: flex;
+                    align-items: center;
+                  "
+                >
                   {{ printDetails.name }}
                 </div>
-                <div style="width: 27%; padding: 0 8px; border-right: 1px solid black; display: flex; align-items: center">
+                <div
+                  style="
+                    width: 27%;
+                    padding: 0 8px;
+                    border-right: 1px solid black;
+                    display: flex;
+                    align-items: center;
+                  "
+                >
                   {{ printDetails.openingBank }}
                 </div>
-                <div style="width: 27%; padding: 0 8px; display: flex; align-items: center">
+                <div
+                  style="
+                    width: 27%;
+                    padding: 0 8px;
+                    display: flex;
+                    align-items: center;
+                  "
+                >
                   {{ printDetails.accountOpening }}
                 </div>
               </div>
             </div>
           </div>
           <div style="display: flex; border-bottom: 1px solid black">
-            <div style="width: 150px; border-right: 1px solid black; padding: 8px">电子发票(PDF/JPG)</div>
-            <div style="width: calc(100% - 150px); padding: 8px">{{ printDetails.electronicInvoiceText }}</div>
+            <div
+              style="width: 150px; border-right: 1px solid black; padding: 8px"
+            >
+              电子发票(PDF/JPG)
+            </div>
+            <div style="width: calc(100% - 150px); padding: 8px">
+              {{ printDetails.electronicInvoiceText }}
+            </div>
           </div>
           <div style="display: flex">
-            <div style="width: 150px; border-right: 1px solid black; padding: 4px 8px; display: flex; align-items: center">审批流程</div>
+            <div
+              style="
+                width: 150px;
+                border-right: 1px solid black;
+                padding: 4px 8px;
+                display: flex;
+                align-items: center;
+              "
+            >
+              审批流程
+            </div>
             <div style="width: calc(100% - 150px)">
-              <template v-if="printDetails.recordList && printDetails.recordList.length > 0">
-                <div v-for="(item, index) in printDetails.recordList" :key="index">
+              <template
+                v-if="
+                  printDetails.recordList && printDetails.recordList.length > 0
+                "
+              >
+                <div
+                  v-for="(item, index) in printDetails.recordList"
+                  :key="index"
+                >
                   <div
                     :style="
                       index + 1 !== printDetails.recordList.length
                         ? 'border-bottom: 1px solid black; padding: 4px 8px; display: flex'
                         : 'padding: 4px 8px; display: flex'
-                    ">
-                    <div style="width: calc(100% - 120px); word-wrap: break-word">
+                    "
+                  >
+                    <div
+                      style="width: calc(100% - 120px); word-wrap: break-word"
+                    >
                       <span>{{ item.nodeName }}: </span>
-                      <span style="padding-left: 4px">{{ item.processedUser }}</span>
+                      <span style="padding-left: 4px">{{
+                        item.processedUser
+                      }}</span>
                       <span style="padding-left: 4px">{{ item.remark }}</span>
                     </div>
                     <div style="width: 120px">{{ item.processedDate }}</div>
@@ -115,7 +323,9 @@
         </div>
         <div style="padding-top: 16px">
           <span>打印时间: {{ presentTime }}</span>
-          <span style="padding-left: 32px">打印人: {{ useUserStore().user.nickName }}</span>
+          <span style="padding-left: 32px"
+            >打印人: {{ useUserStore().user.nickName }}</span
+          >
         </div>
       </div>
     </div>
@@ -188,10 +398,17 @@ const printDetails = ref({});
 const presentTime = ref(moment().format("yyyy-MM-DD HH:mm:ss"));
 const computeMoney = () => {
   let money = 0;
-  if (printDetails.value.payDetailVoList && printDetails.value.payDetailVoList.length > 0) {
+  if (
+    printDetails.value.payDetailVoList &&
+    printDetails.value.payDetailVoList.length > 0
+  ) {
     for (let i = 0; i < printDetails.value.payDetailVoList.length; i++) {
       if (printDetails.value.payDetailVoList[i].money) {
-        money = Number(parseFloat(Number(money) + Number(printDetails.value.payDetailVoList[i].money)).toFixed(2));
+        money = Number(
+          parseFloat(
+            Number(money) + Number(printDetails.value.payDetailVoList[i].money)
+          ).toFixed(2)
+        );
       }
     }
   }
@@ -205,29 +422,39 @@ onMounted(() => {
     proxy.post("/pay/detail", { id: props.rowData.id }).then((res) => {
       printDetails.value = res;
       if (printDetails.value.createUser) {
-        let data = userList.value.filter((item) => item.value == printDetails.value.createUser);
+        let data = userList.value.filter(
+          (item) => item.value == printDetails.value.createUser
+        );
         if (data && data.length > 0) {
           printDetails.value.deptId = data[0].deptId;
         }
       }
-      proxy.post("/fileInfo/getList", { businessIdList: [props.rowData.id] }).then((resFile) => {
-        let electronicInvoiceText = "";
-        if (resFile[props.rowData.id] && resFile[props.rowData.id].length > 0) {
-          for (let i = 0; i < resFile[props.rowData.id].length; i++) {
-            if (i === 0) {
-              electronicInvoiceText = resFile[props.rowData.id][0].fileName;
-            } else {
-              electronicInvoiceText = electronicInvoiceText + ", " + resFile[props.rowData.id][i].fileName;
+      proxy
+        .post("/fileInfo/getList", { businessIdList: [props.rowData.id] })
+        .then((resFile) => {
+          let electronicInvoiceText = "";
+          if (
+            resFile[props.rowData.id] &&
+            resFile[props.rowData.id].length > 0
+          ) {
+            for (let i = 0; i < resFile[props.rowData.id].length; i++) {
+              if (i === 0) {
+                electronicInvoiceText = resFile[props.rowData.id][0].fileName;
+              } else {
+                electronicInvoiceText =
+                  electronicInvoiceText +
+                  ", " +
+                  resFile[props.rowData.id][i].fileName;
+              }
             }
           }
-        }
-        printDetails.value.electronicInvoiceText = electronicInvoiceText;
-      });
-      if (res.flowExampleId) {
-        proxy.post("/flowExample/getApprovalRecord", { id: res.flowExampleId }).then((record) => {
-          printDetails.value.recordList = record.recordList;
+          printDetails.value.electronicInvoiceText = electronicInvoiceText;
         });
-      }
+      // if (res.flowExampleId) {
+      //   proxy.post("/flowExample/getApprovalRecord", { id: res.flowExampleId }).then((record) => {
+      //     printDetails.value.recordList = record.recordList;
+      //   });
+      // }
     });
   }
 });

+ 59 - 62
src/components/process/EHSD/Contract.vue

@@ -1715,79 +1715,76 @@ watch(
     deep: true,
   }
 );
+
 onMounted(() => {
   formOption.disabled = judgeStatus();
   if (route.query && route.query.processType) {
-    proxy
-      .post("/contract/detail", { id: route.query.businessId })
-      .then((res) => {
-        if (!res.fileList) {
-          res.fileList = [];
-        }
-        if (!res.packageFileList) {
-          res.packageFileList = [];
-        }
-        res.countryId = res.buyCountryId;
-        res.provinceId = res.buyProvinceId;
-        res.cityId = res.buyCityId;
-        for (const key in res) {
-          formData.data[key] = res[key];
+    let businessId = route.query.businessId;
+    proxy.post("/contract/detail", { id: businessId }).then((res) => {
+      if (!res.fileList) {
+        res.fileList = [];
+      }
+      if (!res.packageFileList) {
+        res.packageFileList = [];
+      }
+      res.countryId = res.buyCountryId;
+      res.provinceId = res.buyProvinceId;
+      res.cityId = res.buyCityId;
+      for (const key in res) {
+        formData.data[key] = res[key];
+      }
+      proxy
+        .post("/fileInfo/getList", {
+          businessIdList: [businessId],
+        })
+        .then((fileObj) => {
+          if (fileObj[businessId] && fileObj[businessId].length > 0) {
+            formData.data.fileList = fileObj[businessId]
+              .filter((x) => x.businessType === "0")
+              .map((x) => ({ raw: x, name: x.fileName, url: x.fileUrl }));
+            formData.data.packageFileList = fileObj[businessId]
+              .filter((x) => x.businessType === "1")
+              .map((x) => ({ raw: x, name: x.fileName, url: x.fileUrl }));
+          }
+        });
+      if (
+        formData.data.contractProductList &&
+        formData.data.contractProductList.length > 0
+      ) {
+        for (let i = 0; i < formData.data.contractProductList.length; i++) {
+          const e = formData.data.contractProductList[i];
+          if (e.ehsdJson) {
+            let obj = JSON.parse(e.ehsdJson);
+            e.packMethod = obj.packMethod;
+            e.tradeMethods = obj.tradeMethods;
+          }
         }
+        let ids = formData.data.contractProductList.map((x) => x.productId);
         proxy
           .post("/fileInfo/getList", {
-            businessIdList: [route.query.businessId],
+            businessIdList: ids,
           })
           .then((fileObj) => {
-            if (fileObj[route.query.businessId]) {
-              formData.data.fileList = fileObj[route.query.businessId]
-                .filter((x) => x.businessType === "1")
-                .map((x) => ({ raw: x, name: x.fileName, url: x.fileUrl }));
-              formData.data.packageFileList = fileObj[route.query.businessId]
-                .filter((x) => x.businessType === "2")
-                .map((x) => ({ raw: x, name: x.fileName, url: x.fileUrl }));
-            }
-          });
-        if (
-          formData.data.contractProductList &&
-          formData.data.contractProductList.length > 0
-        ) {
-          for (let i = 0; i < formData.data.contractProductList.length; i++) {
-            const e = formData.data.contractProductList[i];
-            let obj = JSON.parse(e.ehsdJson);
-            e.packMethod = obj.packMethod;
-            e.tradeMethods = obj.tradeMethods;
-          }
-          let ids = formData.data.contractProductList.map((x) => x.productId);
-          proxy
-            .post("/fileInfo/getList", {
-              businessIdList: ids,
-            })
-            .then((fileObj) => {
-              for (
-                let i = 0;
-                i < formData.data.contractProductList.length;
-                i++
-              ) {
-                const e = formData.data.contractProductList[i];
-                for (const key in fileObj) {
-                  if (e.productId === key) {
-                    e.fileList = fileObj[key] || [];
-                    if (e.fileList && e.fileList.length > 0) {
-                      e.fileUrl = e.fileList[0].fileUrl;
-                    }
+            for (let i = 0; i < formData.data.contractProductList.length; i++) {
+              const e = formData.data.contractProductList[i];
+              for (const key in fileObj) {
+                if (e.productId === key) {
+                  e.fileList = fileObj[key] || [];
+                  if (e.fileList && e.fileList.length > 0) {
+                    e.fileUrl = e.fileList[0].fileUrl;
                   }
                 }
               }
-            });
-        }
-        if (formData.data.countryId) {
-          getCityData(formData.data.countryId, "20");
-        }
-        if (formData.data.provinceId) {
-          getCityData(formData.data.provinceId, "30");
-        }
-        console.log(formData.data, "2222222");
-      });
+            }
+          });
+      }
+      if (formData.data.countryId) {
+        getCityData(formData.data.countryId, "20");
+      }
+      if (formData.data.provinceId) {
+        getCityData(formData.data.provinceId, "30");
+      }
+    });
   }
 });
 </script>

+ 5 - 3
src/components/process/EHSD/PriceSheet.vue

@@ -108,7 +108,7 @@
                 style="width: 100%"
                 @change="changeCustomer"
                 v-if="
-                  [ 30].includes(route.query.processType) ||
+                  [30].includes(route.query.processType) ||
                   !route.query.processType
                 "
               >
@@ -1202,6 +1202,7 @@ const props = defineProps({
 watch(
   props.queryData,
   () => {
+    return;
     formOption.disabled = judgeStatus();
     if (
       props.queryData &&
@@ -1223,9 +1224,10 @@ watch(
   }
 );
 onMounted(() => {
-  if (props.queryData.priceSheetId) {
+  formOption.disabled = judgeStatus();
+  if (route.query && route.query.priceSheetId) {
     proxy
-      .post("/saleQuotation/detail", { id: props.queryData.priceSheetId })
+      .post("/saleQuotation/detail", { id: route.query.priceSheetId })
       .then((res) => {
         res.countryId = res.buyCountryId;
         res.provinceId = res.buyProvinceId;

+ 57 - 52
src/components/process/EHSD/Purchase.vue

@@ -621,7 +621,7 @@
           <div style="margin-top: 20px; width: 100%">
             <el-form-item label="条款内容" prop="remark">
               <div v-if="judgeStatus()">
-                <div v-html="getStyle(formData.data.remark)"></div>
+                <div v-html="getHtmlVal(formData.data.remark)"></div>
               </div>
               <Editor
                 v-else
@@ -1420,6 +1420,7 @@ defineExpose({
 onMounted(() => {
   if (props.queryData.ids) {
     proxy.post("/delivery/page", { ids: props.queryData.ids }).then((res) => {
+      formData.data.dataResource = props.queryData.type;
       if (res.rows && res.rows.length > 0) {
         formData.data.purchaseProductList = res.rows.map((item) => {
           return {
@@ -1494,65 +1495,62 @@ onMounted(() => {
   }
   formOption.disabled = judgeStatus();
   if (route.query && route.query.processType) {
-    proxy
-      .post("/ehsdPurchase/detail", { id: route.query.businessId })
-      .then((res) => {
-        res.purchaseProductList = res.ehsdPurchaseProductList || [];
-        if (!res.fileList) {
-          res.fileList = [];
-        }
-        res.countryId = res.sellCountryId;
-        res.provinceId = res.sellProvinceId;
-        res.cityId = res.sellCityId;
-        for (const key in res) {
-          formData.data[key] = res[key];
-        }
+    let businessId = route.query.businessId;
+    proxy.post("/ehsdPurchase/detail", { id: businessId }).then((res) => {
+      res.purchaseProductList = res.ehsdPurchaseProductList || [];
+      if (!res.fileList) {
+        res.fileList = [];
+      }
+      res.countryId = res.sellCountryId;
+      res.provinceId = res.sellProvinceId;
+      res.cityId = res.sellCityId;
+      for (const key in res) {
+        formData.data[key] = res[key];
+      }
+      proxy
+        .post("/fileInfo/getList", {
+          businessIdList: [businessId],
+        })
+        .then((fileObj) => {
+          if (fileObj[businessId]) {
+            formData.data.fileList = fileObj[businessId]
+              .filter((x) => x.businessType === "1")
+              .map((x) => ({ raw: x, name: x.fileName, url: x.fileUrl }));
+            formData.data.packageFileList = fileObj[businessId]
+              .filter((x) => x.businessType === "2")
+              .map((x) => ({ raw: x, name: x.fileName, url: x.fileUrl }));
+          }
+        });
+      if (
+        formData.data.purchaseProductList &&
+        formData.data.purchaseProductList.length > 0
+      ) {
+        let ids = formData.data.purchaseProductList.map((x) => x.productId);
         proxy
           .post("/fileInfo/getList", {
-            businessIdList: [route.query.businessId],
+            businessIdList: ids,
           })
           .then((fileObj) => {
-            if (fileObj[route.query.businessId]) {
-              formData.data.fileList = fileObj[route.query.businessId]
-                .filter((x) => x.businessType === "1")
-                .map((x) => ({ raw: x, name: x.fileName, url: x.fileUrl }));
-              formData.data.packageFileList = fileObj[route.query.businessId]
-                .filter((x) => x.businessType === "2")
-                .map((x) => ({ raw: x, name: x.fileName, url: x.fileUrl }));
-            }
-          });
-        if (
-          formData.data.purchaseProductList &&
-          formData.data.purchaseProductList.length > 0
-        ) {
-          let ids = formData.data.purchaseProductList.map((x) => x.productId);
-          proxy
-            .post("/fileInfo/getList", {
-              businessIdList: ids,
-            })
-            .then((fileObj) => {
-              for (
-                let i = 0;
-                i < formData.data.purchaseProductList.length;
-                i++
-              ) {
-                const e = formData.data.purchaseProductList[i];
-                for (const key in fileObj) {
-                  if (e.productId === key) {
-                    e.fileList = fileObj[key] || [];
+            for (let i = 0; i < formData.data.purchaseProductList.length; i++) {
+              const e = formData.data.purchaseProductList[i];
+              for (const key in fileObj) {
+                if (e.productId === key) {
+                  e.fileList = fileObj[key] || [];
+                  if (e.fileList && e.fileList.length > 0) {
                     e.fileUrl = e.fileList[0].fileUrl;
                   }
                 }
               }
-            });
-        }
-        if (formData.data.countryId) {
-          getCityData(formData.data.countryId, "20");
-        }
-        if (formData.data.provinceId) {
-          getCityData(formData.data.provinceId, "30");
-        }
-      });
+            }
+          });
+      }
+      if (formData.data.countryId) {
+        getCityData(formData.data.countryId, "20");
+      }
+      if (formData.data.provinceId) {
+        getCityData(formData.data.provinceId, "30");
+      }
+    });
   }
 });
 const clickSplit = (item) => {
@@ -1870,6 +1868,13 @@ const getAuxiliaryData = (supplyId, productIdList) => {
     }
   }
 };
+
+const getHtmlVal = (val) => {
+  if (val) {
+    return val.replace(/<p>/g, "<div>").replace(/<\/p>/g, "</div>");
+  }
+  return "";
+};
 </script>
 
 <style lang="scss" scoped>

+ 11 - 8
src/components/process/EHSD/Sample.vue

@@ -1636,7 +1636,8 @@ const clickDelete = (index) => {
 onMounted(() => {
   formOption.disabled = judgeStatus();
   if (route.query && route.query.processType) {
-    proxy.post("/sample/detail", { id: route.query.businessId }).then((res) => {
+    let businessId = route.query.businessId;
+    proxy.post("/sample/detail", { id: businessId }).then((res) => {
       res.sampleShipmentList = res.sampleShipmentLists;
       res.countryId = res.buyCountryId;
       res.provinceId = res.buyProvinceId;
@@ -1652,14 +1653,14 @@ onMounted(() => {
       }
       proxy
         .post("/fileInfo/getList", {
-          businessIdList: [route.query.businessId],
+          businessIdList: [businessId],
         })
         .then((fileObj) => {
-          if (fileObj[route.query.businessId]) {
-            formData.data.fileList = fileObj[route.query.businessId]
+          if (fileObj[businessId] && fileObj[businessId].length > 0) {
+            formData.data.fileList = fileObj[businessId]
               .filter((x) => x.businessType === "1")
               .map((x) => ({ raw: x, name: x.fileName, url: x.fileUrl }));
-            formData.data.packageFileList = fileObj[route.query.businessId]
+            formData.data.packageFileList = fileObj[businessId]
               .filter((x) => x.businessType === "2")
               .map((x) => ({ raw: x, name: x.fileName, url: x.fileUrl }));
           }
@@ -1670,9 +1671,11 @@ onMounted(() => {
       ) {
         for (let i = 0; i < formData.data.sampleProductList.length; i++) {
           const e = formData.data.sampleProductList[i];
-          let obj = JSON.parse(e.ehsdJson);
-          e.packMethod = obj.packMethod;
-          e.tradeMethods = obj.tradeMethods;
+          if (e.ehsdJson) {
+            let obj = JSON.parse(e.ehsdJson);
+            e.packMethod = obj.packMethod;
+            e.tradeMethods = obj.tradeMethods;
+          }
         }
         let ids = formData.data.sampleProductList.map((x) => x.productId);
         proxy

+ 195 - 64
src/components/process/PurchasePayment.vue

@@ -1,9 +1,21 @@
 <template>
   <div style="width: 100%; padding: 0px 15px">
-    <byForm :formConfig="formConfig" :formOption="formOption" v-model="formData.data" :rules="rules" ref="submit">
+    <byForm
+      :formConfig="formConfig"
+      :formOption="formOption"
+      v-model="formData.data"
+      :rules="rules"
+      ref="submit"
+    >
       <template #deadline>
         <div style="width: 100%">
-          <el-date-picker v-model="formData.data.deadline" type="date" placeholder="请选择付款期限" value-format="YYYY-MM-DD" style="width: 100%" />
+          <el-date-picker
+            v-model="formData.data.deadline"
+            type="date"
+            placeholder="请选择付款期限"
+            value-format="YYYY-MM-DD"
+            style="width: 100%"
+          />
         </div>
       </template>
       <template #receiptsNum>
@@ -15,7 +27,8 @@
             :min="0"
             :precision="0"
             :controls="false"
-            style="width: 100%" />
+            style="width: 100%"
+          />
         </div>
       </template>
       <template #rate>
@@ -28,7 +41,8 @@
             :max="100"
             :precision="2"
             :controls="false"
-            style="width: 100%" />
+            style="width: 100%"
+          />
         </div>
       </template>
       <template #fileList>
@@ -39,7 +53,8 @@
             multiple
             :data="uploadData"
             :before-upload="uploadFile"
-            :on-preview="onPreviewFile">
+            :on-preview="onPreviewFile"
+          >
             <el-button>选择</el-button>
           </el-upload>
         </div>
@@ -47,26 +62,59 @@
       <template #payDetailList>
         <div style="width: 100%">
           <el-button type="primary" @click="clickAdd()">添加行</el-button>
-          <el-table :data="formData.data.payDetailList" style="width: 100%; margin-top: 16px">
+          <el-table
+            :data="formData.data.payDetailList"
+            style="width: 100%; margin-top: 16px"
+          >
             <el-table-column label="采购合同" width="220">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
-                  <el-form-item :prop="'payDetailList.' + $index + '.purchaseId'" :rules="rules.purchaseId" :inline-message="true">
-                    <el-select v-model="row.purchaseId" placeholder="请选择采购合同" style="width: 100%" @change="changePurchaseId(row, true)">
-                      <el-option v-for="item in contractList" :key="item.value" :label="item.label" :value="item.value" />
+                  <el-form-item
+                    :prop="'payDetailList.' + $index + '.purchaseId'"
+                    :rules="rules.purchaseId"
+                    :inline-message="true"
+                  >
+                    <el-select
+                      v-model="row.purchaseId"
+                      placeholder="请选择采购合同"
+                      style="width: 100%"
+                      @change="changePurchaseId(row, true)"
+                    >
+                      <el-option
+                        v-for="item in contractList"
+                        :key="item.value"
+                        :label="item.label"
+                        :value="item.value"
+                      />
                     </el-select>
                   </el-form-item>
                 </div>
               </template>
             </el-table-column>
             <el-table-column prop="amount" label="合同金额" width="140" />
-            <el-table-column prop="sumPayMoney" label="已付款金额" width="140" />
-            <el-table-column prop="sumInvoiceMoney" label="已收发票金额" width="140" />
+            <el-table-column
+              prop="sumPayMoney"
+              label="已付款金额"
+              width="140"
+            />
+            <el-table-column
+              prop="sumInvoiceMoney"
+              label="已收发票金额"
+              width="140"
+            />
             <el-table-column label="款项说明">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
-                  <el-form-item :prop="'payDetailList.' + $index + '.remark'" :rules="rules.remark" :inline-message="true">
-                    <el-input v-model="row.remark" placeholder="请输入款项说明" style="width: 100%" />
+                  <el-form-item
+                    :prop="'payDetailList.' + $index + '.remark'"
+                    :rules="rules.remark"
+                    :inline-message="true"
+                  >
+                    <el-input
+                      v-model="row.remark"
+                      placeholder="请输入款项说明"
+                      style="width: 100%"
+                    />
                   </el-form-item>
                 </div>
               </template>
@@ -74,7 +122,11 @@
             <el-table-column label="付款金额" width="180">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
-                  <el-form-item :prop="'payDetailList.' + $index + '.money'" :rules="rules.money" :inline-message="true">
+                  <el-form-item
+                    :prop="'payDetailList.' + $index + '.money'"
+                    :rules="rules.money"
+                    :inline-message="true"
+                  >
                     <el-input-number
                       onmousewheel="return false;"
                       v-model="row.money"
@@ -84,14 +136,17 @@
                       :controls="false"
                       :min="0"
                       :disabled="row.id"
-                      @change="changeMoney()" />
+                      @change="changeMoney()"
+                    />
                   </el-form-item>
                 </div>
               </template>
             </el-table-column>
             <el-table-column label="操作" width="80">
               <template #default="{ row, $index }">
-                <el-button type="primary" link @click="handleRemove($index)">删除</el-button>
+                <el-button type="primary" link @click="handleRemove($index)"
+                  >删除</el-button
+                >
               </template>
             </el-table-column>
           </el-table>
@@ -107,6 +162,7 @@ import byForm from "@/components/byForm/index";
 import { ElMessage } from "element-plus";
 import useUserStore from "@/store/modules/user";
 import { useRoute } from "vue-router";
+import { async } from "@antv/x6/lib/registry/marker/async";
 
 const route = useRoute();
 const { proxy } = getCurrentInstance();
@@ -140,7 +196,9 @@ const judgeStatus = () => {
     return true;
   }
   if (props.queryData.recordList && props.queryData.recordList.length > 0) {
-    let data = props.queryData.recordList.filter((item) => item.status === 2 && item.nodeType !== 1);
+    let data = props.queryData.recordList.filter(
+      (item) => item.status === 2 && item.nodeType !== 1
+    );
     if (data && data.length > 0) {
       return true;
     }
@@ -235,7 +293,8 @@ const formConfig = computed(() => {
       slotName: "rate",
       label: "税率 (%)",
       itemWidth: 34,
-      isShow: formData.data.invoiceType == "1" || formData.data.invoiceType == "2",
+      isShow:
+        formData.data.invoiceType == "1" || formData.data.invoiceType == "2",
     },
     {
       type: "slot",
@@ -314,13 +373,19 @@ const formConfig = computed(() => {
 });
 const rules = ref({
   supplyId: [{ required: true, message: "请选择供应商", trigger: "change" }],
-  invoiceType: [{ required: true, message: "请选择发票类型", trigger: "change" }],
+  invoiceType: [
+    { required: true, message: "请选择发票类型", trigger: "change" },
+  ],
   payType: [{ required: true, message: "请选择付款方式", trigger: "change" }],
   // accountManagementId: [{ required: true, message: "请选择付款账户", trigger: "change" }],
-  purchaseId: [{ required: true, message: "请选择采购合同", trigger: "change" }],
+  purchaseId: [
+    { required: true, message: "请选择采购合同", trigger: "change" },
+  ],
   money: [{ required: true, message: "请输入付款金额", trigger: "blur" }],
   name: [{ required: true, message: "请输入户名", trigger: "blur" }],
-  advanceCode: [{ required: true, message: "请选择预付款单号", trigger: "change" }],
+  advanceCode: [
+    { required: true, message: "请选择预付款单号", trigger: "change" },
+  ],
   type: [{ required: true, message: "请选择付款类型", trigger: "change" }],
   rate: [{ required: true, message: "请输入税率", trigger: "blur" }],
 });
@@ -378,28 +443,32 @@ const getDict = () => {
         });
       }
     });
-  proxy.post("/supplierInfo/page", { pageNum: 1, pageSize: 999 }).then((res) => {
-    if (res.rows && res.rows.length > 0) {
-      supplierList.value = res.rows.map((item) => {
+  proxy
+    .post("/supplierInfo/page", { pageNum: 1, pageSize: 999 })
+    .then((res) => {
+      if (res.rows && res.rows.length > 0) {
+        supplierList.value = res.rows.map((item) => {
+          return {
+            label: item.name,
+            value: item.id,
+          };
+        });
+      }
+    });
+  proxy
+    .post("/accountManagement/page", { pageNum: 1, pageSize: 999 })
+    .then((res) => {
+      accountList.value = res.rows.map((item) => {
         return {
-          label: item.name,
+          bankName: item.name,
+          accountOpening: item.accountOpening,
+          openingBank: item.openingBank,
+          interbankNumber: item.interbankNumber,
+          label: item.alias,
           value: item.id,
         };
       });
-    }
-  });
-  proxy.post("/accountManagement/page", { pageNum: 1, pageSize: 999 }).then((res) => {
-    accountList.value = res.rows.map((item) => {
-      return {
-        bankName: item.name,
-        accountOpening: item.accountOpening,
-        openingBank: item.openingBank,
-        interbankNumber: item.interbankNumber,
-        label: item.alias,
-        value: item.id,
-      };
     });
-  });
 };
 getDict();
 const uploadFile = async (file) => {
@@ -415,21 +484,23 @@ const onPreviewFile = (file) => {
 };
 const changeSupply = async (val) => {
   if (val) {
-    await proxy.get("/purchase/getListBySupplyId", { supplyId: val }).then((res) => {
-      if (res.data && res.data.length > 0) {
-        contractList.value = res.data.map((item) => {
-          return {
-            value: item.id,
-            label: item.code,
-            amount: item.amount,
-            sumPayMoney: item.sumPayMoney,
-            sumInvoiceMoney: item.sumInvoiceMoney,
-          };
-        });
-      } else {
-        contractList.value = [];
-      }
-    });
+    await proxy
+      .get("/purchase/getListBySupplyId", { supplyId: val })
+      .then((res) => {
+        if (res.data && res.data.length > 0) {
+          contractList.value = res.data.map((item) => {
+            return {
+              value: item.id,
+              label: item.code,
+              amount: item.amount,
+              sumPayMoney: item.sumPayMoney,
+              sumInvoiceMoney: item.sumInvoiceMoney,
+            };
+          });
+        } else {
+          contractList.value = [];
+        }
+      });
   } else {
     contractList.value = [];
   }
@@ -444,7 +515,9 @@ const clickAdd = () => {
       remark: "",
     });
   } else {
-    formData.data.payDetailList = [{ purchaseId: "", money: undefined, remark: "" }];
+    formData.data.payDetailList = [
+      { purchaseId: "", money: undefined, remark: "" },
+    ];
   }
 };
 const handleRemove = (index) => {
@@ -455,7 +528,7 @@ const changeAccount = (val) => {
   if (val) {
     let data = accountList.value.filter((item) => item.value === val);
     if (data && data.length > 0) {
-      formData.data.bankName = data[0].bankName;
+      formData.data.name = data[0].bankName;
       formData.data.accountOpening = data[0].accountOpening;
       formData.data.openingBank = data[0].openingBank;
       formData.data.interbankNumber = data[0].interbankNumber;
@@ -481,7 +554,9 @@ const changeMoney = () => {
   let money = 0;
   for (let i = 0; i < formData.data.payDetailList.length; i++) {
     if (formData.data.payDetailList[i].money) {
-      money = parseFloat(Number(money) + Number(formData.data.payDetailList[i].money)).toFixed(2);
+      money = parseFloat(
+        Number(money) + Number(formData.data.payDetailList[i].money)
+      ).toFixed(2);
     }
   }
   formData.data.amount = money;
@@ -514,8 +589,12 @@ const props = defineProps({
 watch(
   props.queryData,
   () => {
+    return;
     formOption.disabled = judgeStatus();
-    if (props.queryData && ["10", "20", "30"].includes(route.query.processType)) {
+    if (
+      props.queryData &&
+      ["10", "20", "30"].includes(route.query.processType)
+    ) {
       for (var text in props.queryData) {
         formData.data[text] = props.queryData[text];
       }
@@ -530,7 +609,11 @@ watch(
       } else {
         fileList.value = [];
       }
-      if (route.query.processType !== "30" && formData.data.payDetailList && formData.data.payDetailList.length) {
+      if (
+        route.query.processType !== "30" &&
+        formData.data.payDetailList &&
+        formData.data.payDetailList.length
+      ) {
         let ids = formData.data.payDetailList.map((item) => item.purchaseId);
         if (ids && ids.length > 0) {
           proxy.post("/purchase/getListInId", ids).then((res) => {
@@ -563,21 +646,31 @@ onMounted(async () => {
       if (ids && ids.length > 0) {
         for (let i = 0; i < ids.length; i++) {
           if (contractList.value && contractList.value.length > 0) {
-            let data = contractList.value.filter((item) => item.value === ids[i]);
+            let data = contractList.value.filter(
+              (item) => item.value === ids[i]
+            );
             if (data && data.length > 0) {
-              if (formData.data.payDetailList && formData.data.payDetailList.length > 0) {
+              if (
+                formData.data.payDetailList &&
+                formData.data.payDetailList.length > 0
+              ) {
                 formData.data.payDetailList.push({
                   purchaseId: ids[i],
                   money: undefined,
                   remark: "",
                 });
               } else {
-                formData.data.payDetailList = [{ purchaseId: ids[i], money: undefined, remark: "" }];
+                formData.data.payDetailList = [
+                  { purchaseId: ids[i], money: undefined, remark: "" },
+                ];
               }
             }
           }
         }
-        if (formData.data.payDetailList && formData.data.payDetailList.length > 0) {
+        if (
+          formData.data.payDetailList &&
+          formData.data.payDetailList.length > 0
+        ) {
           for (let i = 0; i < formData.data.payDetailList.length; i++) {
             changePurchaseId(formData.data.payDetailList[i]);
           }
@@ -586,6 +679,40 @@ onMounted(async () => {
       }
     }
   }
+  formOption.disabled = judgeStatus();
+  if (route.query && route.query.businessId) {
+    proxy
+      .post("/pay/detail", { id: route.query.businessId })
+      .then(async (res) => {
+        if (res.supplyId) {
+          await changeSupply(res.supplyId);
+        }
+        res.payDetailList = res.payDetailVoList;
+        for (const key in res) {
+          formData.data[key] = res[key];
+        }
+        if (
+          formData.data.payDetailList &&
+          formData.data.payDetailList.length > 0
+        ) {
+          for (let i = 0; i < formData.data.payDetailList.length; i++) {
+            changePurchaseId(formData.data.payDetailList[i]);
+          }
+          getDecisionAids();
+        }
+        proxy
+          .post("/fileInfo/getList", {
+            businessIdList: [route.query.businessId],
+          })
+          .then((fileObj) => {
+            if (fileObj[route.query.businessId]) {
+              formData.data.fileList = fileObj[route.query.businessId].map(
+                (x) => ({ raw: x, name: x.fileName, url: x.fileUrl })
+              );
+            }
+          });
+      });
+  }
 });
 const getFormData = () => {
   return proxy.deepClone(formData.data);
@@ -615,7 +742,9 @@ const getDecisionAids = () => {
     purchaseIdList: [],
   };
   if (formData.data.payDetailList && formData.data.payDetailList.length > 0) {
-    data.purchaseIdList = formData.data.payDetailList.map((item) => item.purchaseId);
+    data.purchaseIdList = formData.data.payDetailList.map(
+      (item) => item.purchaseId
+    );
   }
   proxy.post("/contract/payDecisionAid", data).then((res) => {
     if (res.contractList && res.contractList.length > 0) {
@@ -673,7 +802,9 @@ const getDecisionAids = () => {
       auxiliaryData.value[2].data = res.purchaseInfoList.map((item) => {
         let odds = 0;
         if (item.invoiceQuantity && item.qualifiedCount) {
-          odds = parseFloat((Number(item.qualifiedCount) / Number(item.invoiceQuantity)) * 100).toFixed(2);
+          odds = parseFloat(
+            (Number(item.qualifiedCount) / Number(item.invoiceQuantity)) * 100
+          ).toFixed(2);
         }
         return [
           {

+ 22 - 0
src/components/process/SendFunds.vue

@@ -1177,6 +1177,7 @@ const tenantId = userInfo.tenantId;
 watch(
   props.queryData,
   () => {
+    return;
     if (
       props.queryData &&
       ["10", "20", "30"].includes(route.query.processType)
@@ -1211,6 +1212,27 @@ onMounted(() => {
     formData.data.advanceId = route.query.advanceId;
     changeAdvanceId(formData.data.advanceId);
   }
+
+  if (route.query && route.query.businessId) {
+    proxy
+      .post("/accountRequestFunds/detail", { id: route.query.businessId })
+      .then(async (res) => {
+        for (const key in res) {
+          formData.data[key] = res[key];
+        }
+        proxy
+          .post("/fileInfo/getList", {
+            businessIdList: [route.query.businessId],
+          })
+          .then((fileObj) => {
+            if (fileObj[route.query.businessId]) {
+              formData.data.fileList = fileObj[route.query.businessId].map(
+                (x) => ({ raw: x, name: x.fileName, url: x.fileUrl })
+              );
+            }
+          });
+      });
+  }
 });
 
 const companyData = ref([]);

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

@@ -507,7 +507,7 @@ const getDetails = () => {
         productSpec: x.productSpec,
         productUnit: x.productUnit,
         purchaseCount: x.purchaseCount,
-        subscribeCount: x.quantity,
+        subscribeCount: x.count,
         quantity: 0,
         price: null,
         amount: null,
@@ -783,6 +783,7 @@ const handlePerson = (item, index) => {
 watch(
   props.queryData,
   () => {
+    return;
     if (
       props.queryData &&
       (route.query.processType == 10 ||
@@ -838,6 +839,16 @@ onMounted(() => {
     });
     getAuxiliaryData();
   }
+  if (route.query && route.query.processType) {
+    let businessId = route.query.businessId;
+    proxy.post("/ehsdPurchase/detail", { id: businessId }).then((res) => {
+      res.purchaseProductList = res.ehsdPurchaseProductList || [];
+      for (const key in res) {
+        formData.data[key] = res[key];
+      }
+      handleChangeAmount();
+    });
+  }
 });
 
 const getFormData = () => {

+ 2 - 0
src/views/EHSD/procurement/purchasedEHSD/index.vue

@@ -325,6 +325,7 @@ const printObj = ref({
 });
 
 const handleClickCode = (row) => {
+  let submitType = row.dataResource > 0 ? "10" : "20";
   proxy.$router.push({
     path: "/platform_manage/process/processApproval",
     query: {
@@ -332,6 +333,7 @@ const handleClickCode = (row) => {
       id: row.flowId,
       processType: 20,
       businessId: row.id,
+      submitType,
     },
   });
 };

+ 24 - 1
src/views/EHSD/saleContract/priceSheetEHSD/index.vue

@@ -16,6 +16,16 @@
         ]"
         @get-list="getList"
       >
+        <template #code="{ item }">
+          <div style="width: 100%">
+            <span
+              style="color: #409eff; cursor: pointer; word-break: break-all"
+              @click="clickCode(item)"
+              >{{ item.code }}</span
+            >
+          </div>
+        </template>
+
         <template #amount="{ item }">
           <div>
             <span style="padding-right: 4px">{{ item.currency }}</span>
@@ -430,7 +440,7 @@ const config = computed(() => {
     {
       attrs: {
         label: "报价单号",
-        prop: "code",
+        slot: "code",
         width: 200,
       },
     },
@@ -598,6 +608,19 @@ const newPriceSheet = () => {
     },
   });
 };
+const clickCode = (row) => {
+  proxy.$router.push({
+    path: "/platform_manage/process/processApproval",
+    query: {
+      priceSheetId: row.id,
+      flowKey: "sale_quotation_flow",
+      flowName: "报价单详情",
+      random: proxy.random(),
+      tenantType: "EHSD",
+      processType: 20,
+    },
+  });
+};
 const clickCopy = (item) => {
   proxy.$router.replace({
     path: "/platform_manage/process/processApproval",

+ 87 - 46
src/views/finance/fundManage/funds/index.vue

@@ -15,10 +15,15 @@
           },
         ]"
         @moreSearch="moreSearch"
-        @get-list="getList">
+        @get-list="getList"
+      >
         <template #total="{ item }">
           <div style="width: 100%">
-            <a style="color: #409eff; cursor: pointer" @click="pushProcessApproval(item)">{{ item.currency }}{{ item.total }}</a>
+            <a
+              style="color: #409eff; cursor: pointer"
+              @click="pushProcessApproval(item)"
+              >{{ item.currency }}{{ item.total }}</a
+            >
           </div>
         </template>
         <template #type="{ item }">
@@ -26,7 +31,10 @@
             <span>
               {{ dictValueLabel(item.type, fundsType) }}
             </span>
-            <span v-if="item.type == 1">(<span v-if="item.writeOffStatus == 0">未核销</span><span v-if="item.writeOffStatus == 1">已核销</span>)</span>
+            <span v-if="item.type == 1"
+              >(<span v-if="item.writeOffStatus == 0">未核销</span
+              ><span v-if="item.writeOffStatus == 1">已核销</span>)</span
+            >
           </div>
         </template>
       </byTable>
@@ -36,12 +44,24 @@
       <FundsPDF :rowData="rowData"></FundsPDF>
       <template #footer>
         <el-button @click="openPrint = false" size="large">取消</el-button>
-        <el-button type="primary" @click="clickDownload()" size="large">下载PDF</el-button>
+        <el-button type="primary" @click="clickDownload()" size="large"
+          >下载PDF</el-button
+        >
       </template>
     </el-dialog>
 
-    <el-dialog title="高级检索" v-if="openSearch" v-model="openSearch" width="600" :before-close="cancelSearch">
-      <byForm :formConfig="formSearchConfig" :formOption="formOption" v-model="sourceList.pagination">
+    <el-dialog
+      title="高级检索"
+      v-if="openSearch"
+      v-model="openSearch"
+      width="600"
+      :before-close="cancelSearch"
+    >
+      <byForm
+        :formConfig="formSearchConfig"
+        :formOption="formOption"
+        v-model="sourceList.pagination"
+      >
         <template #departmentId>
           <div>
             <el-tree-select
@@ -52,7 +72,8 @@
               node-key="deptId"
               style="width: 100%"
               :props="defaultProps"
-              clearable />
+              clearable
+            />
           </div>
         </template>
         <template #time>
@@ -64,7 +85,8 @@
                   type="datetime"
                   placeholder="请选择"
                   style="width: 100%"
-                  value-format="YYYY-MM-DD HH:mm:ss" />
+                  value-format="YYYY-MM-DD HH:mm:ss"
+                />
               </el-col>
               <el-col :span="2" style="text-align: center">到</el-col>
               <el-col :span="11">
@@ -73,7 +95,8 @@
                   type="datetime"
                   placeholder="请选择"
                   style="width: 100%"
-                  value-format="YYYY-MM-DD HH:mm:ss" />
+                  value-format="YYYY-MM-DD HH:mm:ss"
+                />
               </el-col>
             </el-row>
           </div>
@@ -89,7 +112,8 @@
                   style="width: 100%"
                   :precision="2"
                   :controls="false"
-                  :min="0" />
+                  :min="0"
+                />
               </el-col>
               <el-col :span="2" style="text-align: center">到</el-col>
               <el-col :span="11">
@@ -100,7 +124,8 @@
                   style="width: 100%"
                   :precision="2"
                   :controls="false"
-                  :min="0" />
+                  :min="0"
+                />
               </el-col>
             </el-row>
           </div>
@@ -108,7 +133,9 @@
       </byForm>
       <template #footer>
         <el-button @click="cancelSearch()" size="large">取 消</el-button>
-        <el-button type="primary" @click="submitSearch()" size="large">确 定</el-button>
+        <el-button type="primary" @click="submitSearch()" size="large"
+          >确 定</el-button
+        >
       </template>
     </el-dialog>
   </div>
@@ -271,7 +298,13 @@ const config = computed(() => {
         width: 120,
       },
       render(status) {
-        return status == 10 ? "审批中" : status == 20 ? "驳回" : status == 30 ? "审批通过" : "";
+        return status == 10
+          ? "审批中"
+          : status == 20
+          ? "驳回"
+          : status == 30
+          ? "审批通过"
+          : "";
       },
     },
     {
@@ -325,13 +358,15 @@ const config = computed(() => {
 const getList = async (req) => {
   sourceList.value.pagination = { ...sourceList.value.pagination, ...req };
   loading.value = true;
-  proxy.post("/accountRequestFunds/page", sourceList.value.pagination).then((message) => {
-    sourceList.value.data = message.rows;
-    sourceList.value.pagination.total = message.total;
-    setTimeout(() => {
-      loading.value = false;
-    }, 200);
-  });
+  proxy
+    .post("/accountRequestFunds/page", sourceList.value.pagination)
+    .then((message) => {
+      sourceList.value.data = message.rows;
+      sourceList.value.pagination.total = message.total;
+      setTimeout(() => {
+        loading.value = false;
+      }, 200);
+    });
 };
 const openModal = (row = {}) => {
   const flowName = `${userInfo.nickName}的请款申请(发起)`;
@@ -362,20 +397,22 @@ const recursive = (data) => {
   });
 };
 const getDictData = () => {
-  proxy.getDictOne(["founds_type", "funds_payment_method", "account_currency"]).then((res) => {
-    fundsType.value = res["founds_type"].map((x) => ({
-      label: x.dictValue,
-      value: x.dictKey,
-    }));
-    fundsPaymentMethod.value = res["funds_payment_method"].map((x) => ({
-      label: x.dictValue,
-      value: x.dictKey,
-    }));
-    accountCurrency.value = res["account_currency"].map((x) => ({
-      label: x.dictValue,
-      value: x.dictKey,
-    }));
-  });
+  proxy
+    .getDictOne(["founds_type", "funds_payment_method", "account_currency"])
+    .then((res) => {
+      fundsType.value = res["founds_type"].map((x) => ({
+        label: x.dictValue,
+        value: x.dictKey,
+      }));
+      fundsPaymentMethod.value = res["funds_payment_method"].map((x) => ({
+        label: x.dictValue,
+        value: x.dictKey,
+      }));
+      accountCurrency.value = res["account_currency"].map((x) => ({
+        label: x.dictValue,
+        value: x.dictKey,
+      }));
+    });
   proxy
     .get("/tenantUser/list", {
       pageNum: 1,
@@ -393,16 +430,18 @@ const getDictData = () => {
         });
       }
     });
-  proxy.post("/corporation/page", { pageNum: 1, pageSize: 9999 }).then((res) => {
-    if (res.rows && res.rows.length > 0) {
-      companyData.value = res.rows.map((item) => {
-        return {
-          label: item.name,
-          value: item.id,
-        };
-      });
-    }
-  });
+  proxy
+    .post("/corporation/page", { pageNum: 1, pageSize: 9999 })
+    .then((res) => {
+      if (res.rows && res.rows.length > 0) {
+        companyData.value = res.rows.map((item) => {
+          return {
+            label: item.name,
+            value: item.id,
+          };
+        });
+      }
+    });
   proxy
     .get("/tenantDept/list", {
       pageNum: 1,
@@ -535,7 +574,8 @@ const submitSearch = () => {
   if (
     sourceList.value.pagination.minAdvanceAmounts &&
     sourceList.value.pagination.maxAdvanceAmounts &&
-    Number(sourceList.value.pagination.minAdvanceAmounts) > Number(sourceList.value.pagination.maxAdvanceAmounts)
+    Number(sourceList.value.pagination.minAdvanceAmounts) >
+      Number(sourceList.value.pagination.maxAdvanceAmounts)
   ) {
     return ElMessage("交易金额输入错误");
   }
@@ -547,7 +587,7 @@ const submitSearch = () => {
     return ElMessage("开始时间不能大于结束时间");
   }
   openSearch.value = false;
-  sourceList.value.pagination.keyword = '';
+  sourceList.value.pagination.keyword = "";
   sourceList.value.pagination.pageNum = 1;
   getList();
 };
@@ -560,6 +600,7 @@ const pushProcessApproval = (row) => {
       processType: 20,
       random: proxy.random(),
       flowName: "请款详情",
+      businessId: row.id,
     },
   });
   return;