Browse Source

wdly合计行

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

+ 29 - 1
src/components/WDLY/order/details.vue

@@ -22,7 +22,11 @@
         }},{{ formData.data.detailedAddress }}</el-form-item
       >
       <el-form-item label="订单明细">
-        <el-table :data="formData.data.orderDetailsList">
+        <el-table
+          :data="formData.data.orderDetailsList"
+          show-summary
+          :summary-method="getSummaries"
+        >
           <el-table-column prop="productCode" label="产品编码" />
           <el-table-column prop="productName" label="产品名称" />
           <el-table-column prop="price" label="单价" />
@@ -79,6 +83,30 @@ onMounted(() => {
     getDetails();
   }
 });
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (column.property === "quantity") {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
 
 <style lang="scss" scoped>

+ 63 - 2
src/components/WDLY/process/SendPurchaseWDLY.vue

@@ -113,7 +113,11 @@
         >
           添加物品
         </el-button>
-        <el-table :data="formData.data.purchaseDetailList">
+        <el-table
+          :data="formData.data.purchaseDetailList"
+          show-summary
+          :summary-method="getSummaries"
+        >
           <el-table-column
             prop="productDefinition"
             label="物品类型"
@@ -187,7 +191,11 @@
         <el-button type="primary" style="margin: 10px 0" @click="handleAdd">
           添加
         </el-button>
-        <el-table :data="formData.data.otherFeeList">
+        <el-table
+          :data="formData.data.otherFeeList"
+          show-summary
+          :summary-method="getSummariesOne"
+        >
           <el-table-column prop="name" label="费用名称" min-width="150">
             <template #default="{ row, $index }">
               <el-form-item
@@ -658,6 +666,59 @@ defineExpose({
   getFormData,
   handleSubmit,
 });
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (
+      column.property === "subscribeCount" ||
+      column.property === "purchaseCount" ||
+      column.property === "count" ||
+      column.property === "amount"
+    ) {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
+
+const getSummariesOne = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (column.property === "price") {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
 
 

+ 29 - 1
src/components/WDLY/process/SendSubscribeWDLY.vue

@@ -23,7 +23,11 @@
           >
             excel导入
           </el-button>
-          <el-table :data="formData.data.subscribeDetailList">
+          <el-table
+            :data="formData.data.subscribeDetailList"
+            show-summary
+            :summary-method="getSummaries"
+          >
             <el-table-column
               prop="goodType"
               label="物品类型"
@@ -391,6 +395,30 @@ defineExpose({
   getFormData,
   handleSubmit,
 });
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (column.property === "count") {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
 
 <style lang="scss" scoped>

+ 36 - 1
src/views/WDLY/outInBound/abnormal/index.vue

@@ -108,7 +108,11 @@
       >
         <template #detailSlot>
           <div style="width: 100%">
-            <el-table :data="formData.dataOne.purchaseDetailVoList">
+            <el-table
+              :data="formData.dataOne.purchaseDetailVoList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column prop="productCustomCode" label="物品编码" />
               <el-table-column prop="productName" label="物品名称" />
               <el-table-column prop="productSpec" label="规格" />
@@ -793,6 +797,37 @@ const searchItemSelct = () => {
 onMounted(() => {
   searchItemSelct();
 });
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (
+      column.property === "count" ||
+      column.property === "deliverGoodsQuantity" ||
+      column.property === "receiptQuantity" ||
+      column.property === "purchaseBackQuantity" ||
+      column.property === "qualityQuantity" ||
+      column.property === "noQualifiedCount"
+    ) {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 33 - 1
src/views/WDLY/outInBound/jdOrderReceive/index.vue

@@ -110,7 +110,11 @@
         </template>
         <template #products>
           <div style="width: 100%">
-            <el-table :data="formData.data.stockTransferDetailsList">
+            <el-table
+              :data="formData.data.stockTransferDetailsList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column prop="productCode" label="物品编码" />
               <el-table-column prop="productName" label="物品名称" />
               <el-table-column prop="productSpec" label="规格" />
@@ -620,6 +624,34 @@ const handleClickCode = (row) => {
   // formData.orderData = row;
   // openDetails.value = true;
 };
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (
+      column.property === "quantity" ||
+      column.property === "alQuantity" ||
+      column.property === "inQuantity"
+    ) {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 69 - 2
src/views/WDLY/outInBound/logistics/index.vue

@@ -71,7 +71,11 @@
       >
         <template #detailSlot>
           <div style="width: 100%">
-            <el-table :data="formData.data.arrivalDetailList">
+            <el-table
+              :data="formData.data.arrivalDetailList"
+              show-summary
+              :summary-method="getSummariesOne"
+            >
               <el-table-column
                 prop="productDefinition"
                 label="物品类型"
@@ -152,7 +156,11 @@
       >
         <template #detailSlot>
           <div style="width: 100%">
-            <el-table :data="formData.dataOne.purchaseDetailVoList">
+            <el-table
+              :data="formData.dataOne.purchaseDetailVoList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column prop="productCustomCode" label="物品编码" />
               <el-table-column prop="productName" label="物品名称" />
               <el-table-column prop="productSpec" label="规格" />
@@ -845,6 +853,65 @@ onMounted(() => {
   }));
   searchItemSelct();
 });
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (
+      column.property === "count" ||
+      column.property === "deliverGoodsQuantity" ||
+      column.property === "receiptQuantity" ||
+      column.property === "purchaseBackQuantity" ||
+      column.property === "qualityQuantity" ||
+      column.property === "noQualifiedCount"
+    ) {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
+
+const getSummariesOne = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (
+      column.property === "count" ||
+      column.property === "transitQuantity" ||
+      column.property === "deliverGoodsQuantity"
+    ) {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 33 - 1
src/views/WDLY/outInBound/transfer/index.vue

@@ -60,7 +60,11 @@
             >
               添加物品
             </el-button>
-            <el-table :data="formData.data.stockTransferDetailsList">
+            <el-table
+              :data="formData.data.stockTransferDetailsList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column prop="productCode" label="物品编码" />
               <el-table-column prop="productName" label="物品名称" />
               <el-table-column prop="productSpec" label="规格" />
@@ -594,6 +598,34 @@ const pushGoods = (goods) => {
     type: "success",
   });
 };
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (
+      column.property === "outQuantity" ||
+      column.property === "inQuantity" ||
+      column.property === "alQuantity"
+    ) {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 34 - 1
src/views/WDLY/outInBound/waitInBound/index.vue

@@ -50,7 +50,11 @@
       >
         <template #detail>
           <div style="width: 100%">
-            <el-table :data="formData.data.stockWaitDetailsList">
+            <el-table
+              :data="formData.data.stockWaitDetailsList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column prop="productCustomCode" label="物品编码" />
               <el-table-column prop="productName" label="物品名称" />
               <el-table-column prop="productSpec" label="规格" />
@@ -471,6 +475,35 @@ const deriveExcel = () => {
       }
     });
 };
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (
+      column.property === "purchaseQuantity" ||
+      column.property === "arrivalQuantity" ||
+      column.property === "receiptQuantity" ||
+      column.property === "quantity"
+    ) {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 33 - 1
src/views/WDLY/outInBound/waitOutBound/index.vue

@@ -84,7 +84,11 @@
 
         <template #products>
           <div style="width: 100%">
-            <el-table :data="formData.data.jdOrderDetailsList">
+            <el-table
+              :data="formData.data.jdOrderDetailsList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column prop="productCustomCode" label="物品编码" />
               <el-table-column prop="productName" label="物品名称" />
               <el-table-column prop="productSpec" label="规格" />
@@ -1026,6 +1030,34 @@ const statistics = (att) => {
     }
   }
 };
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (
+      column.property === "waitQuantity" ||
+      column.property === "receiptQuantity" ||
+      column.property === "quantity"
+    ) {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 258 - 15
src/views/WDLY/purchaseManage/alreadyPurchase/index.vue

@@ -34,6 +34,15 @@
           <span v-if="item.isTransit == 1">(有在途)</span>
         </template>
 
+        <template #payStatus="{ item }">
+          <span
+            style="cursor: pointer; color: #409eff"
+            @click="handleClickPayStatus(item)"
+          >
+            {{ dictValueLabel(item.payStatus, paymentStatus) }}
+          </span>
+        </template>
+
         <template #btn="{ item }">
           <div>
             <!-- <el-button type="primary" link @click="handleUpdateData(item)"
@@ -103,6 +112,8 @@
                   ? formData.data.deliverGoodsDetailsList
                   : formData.data.arrivalDetailList
               "
+              show-summary
+              :summary-method="getSummaries"
             >
               <el-table-column
                 prop="productDefinition"
@@ -221,7 +232,11 @@
       >
         <template #detailSlot>
           <div style="width: 100%">
-            <el-table :data="formData.dataOne.purchaseDetailVoList">
+            <el-table
+              :data="formData.dataOne.purchaseDetailVoList"
+              show-summary
+              :summary-method="getSummariesOne"
+            >
               <el-table-column prop="productCustomCode" label="物品编码" />
               <el-table-column prop="productName" label="物品名称" />
               <el-table-column prop="productSpec" label="规格" />
@@ -419,7 +434,11 @@
       >
         <template #detailSlot>
           <div style="width: 100%">
-            <el-table :data="formData.dataTwo.purchaseBackDetailsList">
+            <el-table
+              :data="formData.dataTwo.purchaseBackDetailsList"
+              show-summary
+              :summary-method="getSummariesTwo"
+            >
               <el-table-column
                 prop="subscribeCode"
                 label="申购单号"
@@ -450,6 +469,7 @@
               />
               <el-table-column prop="price" label="单价" width="60" />
               <el-table-column prop="count" label="采购数量" width="100" />
+              <el-table-column prop="amount" label="采购金额" width="100" />
               <el-table-column
                 prop="defectiveQuantity"
                 label="次品数量"
@@ -482,10 +502,14 @@
                       :controls="false"
                       :min="0"
                       onmousewheel="return false;"
+                      @change="
+                        (val) => (row.backAmount = Number(row.price * val))
+                      "
                     />
                   </el-form-item>
                 </template>
               </el-table-column>
+              <el-table-column prop="backAmount" label="退货金额" width="100" />
             </el-table>
           </div>
         </template>
@@ -938,6 +962,87 @@
         </el-button>
       </template>
     </el-dialog>
+
+    <el-dialog
+      :title="'付款明细'"
+      v-model="payDialog"
+      width="600"
+      destroy-on-close
+    >
+      <div>
+        <el-timeline :reverse="false">
+          <el-timeline-item
+            placement="top"
+            v-for="(activity, index) in activities"
+            :key="index"
+          >
+            <div
+              style="
+                display: flex;
+                justify-content: space-between;
+                align-items: center;
+              "
+            >
+              <div style="color: #909399">
+                {{ activity.payUserName }}
+              </div>
+            </div>
+            <div v-if="activity.type == '1'">
+              <div style="margin-top: 5px">
+                类型: <span style="color: #8fe3a1">付款 </span>
+              </div>
+              <div style="margin-top: 5px">
+                付款账号:
+                {{ dictValueLabel(activity.payAccount, accountData) }}
+              </div>
+              <div style="margin-top: 5px">
+                付款金额:{{ moneyFormat(activity.amount, 2) }}
+              </div>
+              <div style="margin-top: 5px">
+                付款时间: {{ activity.payDate }}
+              </div>
+              <div style="margin-top: 5px">
+                付款备注: {{ activity.remark }}
+              </div>
+            </div>
+            <div v-if="activity.type == '2'">
+              <div style="margin-top: 5px">
+                类型: <span style="color: #fc0000">退款</span>
+              </div>
+              <div style="margin-top: 5px">
+                退款账号:
+                {{ dictValueLabel(activity.payAccount, accountData) }}
+              </div>
+              <div style="margin-top: 5px">
+                退款金额:{{ moneyFormat(activity.amount, 2) }}
+              </div>
+              <div style="margin-top: 5px">
+                退款时间: {{ activity.payDate }}
+              </div>
+              <div style="margin-top: 5px">
+                退款备注: {{ activity.remark }}
+              </div>
+            </div>
+            <div
+              style="width: 100%; margin-top: 5px"
+              v-if="activity.fileList && activity.fileList.length > 0"
+            >
+              <div v-for="(item, index) in activity.fileList" :key="index">
+                <div
+                  style="cursor: pointer; color: #409eff"
+                  @click="openFile(item)"
+                >
+                  {{ item.fileName }}
+                </div>
+              </div>
+            </div>
+          </el-timeline-item>
+        </el-timeline>
+      </div>
+      <template #footer>
+        <el-button @click="payDialog = false" size="large">关 闭</el-button>
+      </template>
+    </el-dialog>
   </div>
 </template>
   
@@ -1162,11 +1267,12 @@ const config = computed(() => {
       attrs: {
         label: "付款状态",
         prop: "payStatus",
+        slot: "payStatus",
         width: 100,
       },
-      render(status) {
-        return proxy.dictValueLabel(status, paymentStatus.value);
-      },
+      // render(status) {
+      //   return proxy.dictValueLabel(status, paymentStatus.value);
+      // },
     },
     {
       attrs: {
@@ -1704,17 +1810,24 @@ const fundsPaymentMethod = ref([]);
 const supplierData = ref([]);
 const warehouseList = ref([]);
 const userList = ref([]);
+const accountData = ref([]);
 const getDict = () => {
-  proxy.getDictOne(["unit", "funds_payment_method"]).then((res) => {
-    productUnit.value = res["unit"].map((x) => ({
-      label: x.dictValue,
-      value: x.dictKey,
-    }));
-    fundsPaymentMethod.value = res["funds_payment_method"].map((x) => ({
-      label: x.dictValue,
-      value: x.dictKey,
-    }));
-  });
+  proxy
+    .getDictOne(["unit", "funds_payment_method", "purchase_payment_account"])
+    .then((res) => {
+      productUnit.value = res["unit"].map((x) => ({
+        label: x.dictValue,
+        value: x.dictKey,
+      }));
+      fundsPaymentMethod.value = res["funds_payment_method"].map((x) => ({
+        label: x.dictValue,
+        value: x.dictKey,
+      }));
+      accountData.value = res["purchase_payment_account"].map((x) => ({
+        label: x.dictValue,
+        value: x.dictKey,
+      }));
+    });
   proxy
     .post("/supplierInfo/page", { pageNum: 1, pageSize: 9999 })
     .then((res) => {
@@ -2138,6 +2251,136 @@ const statistics = (att) => {
     }
   }
 };
+const payDialog = ref(false);
+const activities = ref([]);
+const handleClickPayStatus = (row) => {
+  proxy
+    .post("/purchasePayRecordDetail/page", { purchaseId: row.id })
+    .then((res) => {
+      if (res && res.rows && res.rows.length > 0) {
+        activities.value = res.rows;
+        const idList = activities.value.map((x) => x.purchasePayRecordId);
+        // 请求文件数据并回显
+        if (idList.length > 0) {
+          proxy
+            .post("/fileInfo/getList", {
+              businessIdList: idList,
+            })
+            .then((fileObj) => {
+              if (fileObj) {
+                for (let i = 0; i < activities.value.length; i++) {
+                  const e = activities.value[i];
+                  for (const key in fileObj) {
+                    if (e.purchasePayRecordId === key) {
+                      e.fileList = fileObj[key];
+                    }
+                  }
+                }
+              }
+            });
+        }
+        payDialog.value = true;
+      } else {
+        return ElMessage({
+          message: `暂无付款记录`,
+          type: "info",
+        });
+      }
+    });
+};
+const openFile = (item) => {
+  window.open(item.fileUrl, "_blank");
+};
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (
+      column.property === "count" ||
+      column.property === "alreadyDeliverGoodsQuantity" ||
+      column.property === "deliverGoodsQuantity" ||
+      column.property === "transitQuantity"
+    ) {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
+
+const getSummariesOne = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (
+      column.property === "count" ||
+      column.property === "deliverGoodsQuantity" ||
+      column.property === "receiptQuantity" ||
+      column.property === "purchaseBackQuantity" ||
+      column.property === "qualityQuantity" ||
+      column.property === "noQualifiedCount"
+    ) {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
+
+const getSummariesTwo = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (
+      column.property === "count" ||
+      column.property === "amount" ||
+      column.property === "defectiveQuantity" ||
+      column.property === "quantity" ||
+      column.property === "backAmount"
+    ) {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 34 - 1
src/views/WDLY/purchaseManage/arrival/index.vue

@@ -58,7 +58,11 @@
       >
         <template #products>
           <div style="width: 100%">
-            <el-table :data="formData.data.qualityDetailsList">
+            <el-table
+              :data="formData.data.qualityDetailsList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column
                 prop="productDefinition"
                 label="物品类型"
@@ -526,6 +530,35 @@ const start = (type) => {
     dialogVisible.value = true;
   });
 };
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (
+      column.property === "quantity" ||
+      column.property === "qualityQuantity" ||
+      column.property === "qualifiedQuantity" ||
+      column.property === "disqualificationQuantity"
+    ) {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 33 - 1
src/views/WDLY/purchaseManage/payment/index.vue

@@ -92,7 +92,11 @@
       >
         <template #details>
           <div style="width: 100%">
-            <el-table :data="formData.data.purchasePayRecordDetailList">
+            <el-table
+              :data="formData.data.purchasePayRecordDetailList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column prop="code" label="采购单号" />
               <el-table-column
                 prop="isAgreement"
@@ -1191,6 +1195,34 @@ const exportData = (res, name) => {
     navigator.msSaveBlob(blob, fileName);
   }
 };
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (
+      column.property === "waitAmount" ||
+      column.property === "alreadyAmount" ||
+      column.property === "amount"
+    ) {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 94 - 3
src/views/WDLY/purchaseManage/updatePurchaseData/index.vue

@@ -183,7 +183,11 @@
       >
         <template #detailSlot>
           <div style="width: 100%">
-            <el-table :data="formData.dataOne.purchaseDetailVoList">
+            <el-table
+              :data="formData.dataOne.purchaseDetailVoList"
+              show-summary
+              :summary-method="getSummariesOne"
+            >
               <el-table-column prop="productCustomCode" label="物品编码" />
               <el-table-column prop="productName" label="物品名称" />
               <el-table-column prop="count" label="采购数量" />
@@ -743,7 +747,11 @@
       >
         <template #details>
           <div style="width: 100%">
-            <el-table :data="formData.purchaseData.purchaseDetailList">
+            <el-table
+              :data="formData.purchaseData.purchaseDetailList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column
                 prop="productDefinition"
                 label="物品类型"
@@ -802,7 +810,11 @@
         </template>
         <template #otherDetails>
           <div style="width: 100%">
-            <el-table :data="formData.purchaseData.otherFeeList">
+            <el-table
+              :data="formData.purchaseData.otherFeeList"
+              show-summary
+              :summary-method="getSummariesTwo"
+            >
               <el-table-column prop="name" label="费用名称" min-width="150">
                 <template #default="{ row, $index }">
                   <el-form-item
@@ -2051,6 +2063,85 @@ const submitUpdate = () => {
     });
   });
 };
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (column.property === "count" || column.property === "amount") {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
+
+const getSummariesTwo = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (column.property === "price") {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
+
+const getSummariesOne = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (
+      column.property === "count" ||
+      column.property === "deliverGoodsQuantity" ||
+      column.property === "receiptQuantity" ||
+      column.property === "purchaseBackQuantity" ||
+      column.property === "qualityQuantity" ||
+      column.property === "noQualifiedCount"
+    ) {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 29 - 1
src/views/WDLY/salesMange/afterSale/index.vue

@@ -94,7 +94,11 @@
             >
               添加
             </el-button>
-            <el-table :data="formData.data.afterSaleDetailList">
+            <el-table
+              :data="formData.data.afterSaleDetailList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column prop="productCode" label="商品编码" />
               <el-table-column prop="productName" label="商品名称" />
               <el-table-column prop="productSpec" label="规格" />
@@ -765,6 +769,30 @@ const getDict = () => {
 getCityData("0");
 getList();
 getDict();
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (column.property === "quantity") {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 29 - 1
src/views/WDLY/salesMange/jdOrder/index.vue

@@ -131,7 +131,11 @@
             >
               添加物品
             </el-button>
-            <el-table :data="formData.data.jdOrderDetailsList">
+            <el-table
+              :data="formData.data.jdOrderDetailsList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column prop="productCode" label="产品编码" />
               <el-table-column prop="productName" label="产品名称" />
               <el-table-column prop="price" label="单价" min-width="150">
@@ -969,6 +973,30 @@ const pushKdRoute = (row) => {
     },
   });
 };
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (column.property === "quantity" || column.property === "total") {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 29 - 1
src/views/WDLY/salesMange/jdReGoods/index.vue

@@ -65,7 +65,11 @@
             >
               添加产品
             </el-button>
-            <el-table :data="formData.data.jdBackDetailsList">
+            <el-table
+              :data="formData.data.jdBackDetailsList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column prop="productCode" label="产品编码" />
               <el-table-column prop="productName" label="产品名称" />
               <el-table-column prop="quantity" label="退货数量" min-width="150">
@@ -679,6 +683,30 @@ const handleSuccess = (res) => {
     getList();
   }
 };
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (column.property === "quantity") {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 51 - 23
src/views/WDLY/salesMange/order/index.vue

@@ -48,7 +48,7 @@
     <el-dialog
       :title="modalType == 'add' ? '添加订单' : '调仓接收'"
       v-model="dialogVisible"
-      width="800"
+      width="60%"
       v-loading="loading"
     >
       <byForm
@@ -111,7 +111,11 @@
             >
               添加产品
             </el-button>
-            <el-table :data="formData.data.orderDetailsList">
+            <el-table
+              :data="formData.data.orderDetailsList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column prop="productCode" label="产品编码" />
               <el-table-column prop="productName" label="产品名称" />
               <el-table-column prop="price" label="单价" min-width="150">
@@ -310,13 +314,13 @@ let rules = ref({
       trigger: "change",
     },
   ],
-  countryId: [
-    {
-      required: true,
-      message: "请选择国家",
-      trigger: "change",
-    },
-  ],
+  // countryId: [
+  //   {
+  //     required: true,
+  //     message: "请选择国家",
+  //     trigger: "change",
+  //   },
+  // ],
   // provinceId: [
   //   {
   //     required: true,
@@ -332,20 +336,20 @@ let rules = ref({
   //   },
   // ],
 
-  contacts: [
-    {
-      required: true,
-      message: "请输入姓名",
-      trigger: "blur",
-    },
-  ],
-  phone: [
-    {
-      required: true,
-      message: "请输入联系电话",
-      trigger: "blur",
-    },
-  ],
+  // contacts: [
+  //   {
+  //     required: true,
+  //     message: "请输入姓名",
+  //     trigger: "blur",
+  //   },
+  // ],
+  // phone: [
+  //   {
+  //     required: true,
+  //     message: "请输入联系电话",
+  //     trigger: "blur",
+  //   },
+  // ],
   detailedAddress: [
     {
       required: true,
@@ -860,6 +864,30 @@ const pushKdRoute = (row) => {
     },
   });
 };
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (column.property === "quantity" || column.property === "total") {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 29 - 1
src/views/WDLY/stockManage/productCombination/index.vue

@@ -49,7 +49,11 @@
             >
               选择产品
             </el-button>
-            <el-table :data="formData.data.groupRecordDetailsList">
+            <el-table
+              :data="formData.data.groupRecordDetailsList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column prop="productName" label="产品名称" />
               <el-table-column
                 prop="canSum"
@@ -536,6 +540,30 @@ const changeCanSum = (row, rowIndex) => {
   //   // e.canSum = e.canSum - 1;
   // }
 };
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (column.property === "canSum" || column.property === "groupNum") {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 29 - 1
src/views/WDLY/stockManage/productSplit/index.vue

@@ -50,7 +50,11 @@
             >
               选择产品
             </el-button>
-            <el-table :data="formData.data.groupRecordDetailsList">
+            <el-table
+              :data="formData.data.groupRecordDetailsList"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column prop="productName" label="产品名称" />
               <el-table-column
                 prop="canSum"
@@ -434,6 +438,30 @@ watchEffect(() => {
       });
   }
 });
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (column.property === "canSum" || column.property === "groupNum") {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>

+ 30 - 1
src/views/purchaseSales/stockManage/inventory/index.vue

@@ -56,7 +56,12 @@
             >
               添加物品
             </el-button>
-            <el-table :data="formData.data.list" :row-class-name="changeClass">
+            <el-table
+              :data="formData.data.list"
+              :row-class-name="changeClass"
+              show-summary
+              :summary-method="getSummaries"
+            >
               <el-table-column prop="productCode" label="物品编码" />
               <el-table-column prop="productName" label="物品名称" />
               <el-table-column
@@ -526,6 +531,30 @@ const handleClickCode = (row) => {
     dialogVisible.value = true;
   });
 };
+
+const getSummaries = (param) => {
+  const { columns, data } = param; //columns是每列的信息,data是每行的信息
+  const sums = [];
+  columns.forEach((column, index) => {
+    if (index === 0) {
+      sums[index] = "合计"; //此处是在index=0的这一列显示为“合计”
+      return;
+    }
+    const values = data.map((item) => Number(item[column.property]));
+    if (column.property === "quantity" || column.property === "checkQuantity") {
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0);
+      sums[index];
+    }
+  });
+  return sums;
+};
 </script>
   
 <style lang="scss" scoped>