ly 1 rok temu
rodzic
commit
659e560a86

+ 11 - 0
src/api/business/production/housingFundDeclare.js

@@ -114,4 +114,15 @@ export function getMembersNoDelete(data) {
     method: 'post',
     data: data
   })
+}
+
+export function exportDetail(data) {
+  request.defaults.baseURL = '/ezhizao-yzbh-production'
+  download(
+    "business/housingFundDeclare/exportDetail",
+    {
+      ...data,
+    },
+    `公积金明细导出_${new Date().getTime()}.xls`
+  )
 }

+ 0 - 1
src/utils/request.js

@@ -143,7 +143,6 @@ service.interceptors.request.use(
           cache.session.setJSON("sessionObj", requestObj);
         }
       }
-      console.log("config", config, config.data, typeof config.data)
       if (!startRepeatSubmitRequest(config)) {
         const message = "数据正在处理,请勿重复提交";
         console.warn(`[${config.url}]: ` + message);

+ 138 - 11
src/views/business/housingFund/declare/form.vue

@@ -55,20 +55,61 @@
                 <div>{{ form.housingFundDeductionPassword }}</div>
               </el-form-item>
             </el-col>
+            <el-col :span="24">
+              <div style="display: flex; justify-content: flex-end;margin-bottom: 10px;">
+                <el-button type="primary" @click="exportExcel">导出明细表</el-button>
+              </div>
+            </el-col>
+
+
+            <el-table :data="housingFundPersonList" border style="width: 100%" show-summary
+              :summary-method="getSummaries">
+              <el-table-column label="序号" align="center" type="index" />
+              <el-table-column prop="employeeName" label="人员" />
+              <el-table-column prop="cardinalNumber" label="基数">
+                <template #default="scope">
+                  {{rowNum(scope.row.cardinalNumber)}}
+                </template>
+              </el-table-column>
+              <el-table-column prop="ratio" label="比例">
+                <template #default="scope">
+                  {{rowNum(scope.row.ratio/100)}}
+                </template>
+              </el-table-column>
+              <el-table-column label="公司" prop="companyAmount">
+                <template #default="scope">
+                  {{rowNum(scope.row.companyAmount)}}
+                </template>
+              </el-table-column>
+              <el-table-column label="个人" prop="oneSelfAmount">
+                <template #default="scope">
+                  {{rowNum(scope.row.oneSelfAmount)}}
+                </template>
+              </el-table-column>
+              <el-table-column label="缴费金额" prop="totalAmount">
+                <template #default="scope">
+                  {{rowNum(scope.row.totalAmount)}}
+                </template>
+              </el-table-column>
+            </el-table>
+
+
+
+
             <el-col :span="24">
               <el-divider />
             </el-col>
             <el-col :span="12">
               <el-form-item label="单位缴纳:">
                 <el-input-number v-model="form.unitAmount" size="small" v-if="form.status !==3" placeholder="单位缴纳"
-                  :precision="2" :controls="false" style="width: 100%" @change="amountChangeHandler" />
+                  :precision="2" :controls="false" style="width: 100%" @change="amountChangeHandlerUnit" />
                 <div v-else>{{ rowNum(form.unitAmount) }}</div>
               </el-form-item>
             </el-col>
             <el-col :span="12">
               <el-form-item label="个人缴纳:">
                 <el-input-number v-model="form.individualAmount" v-if="form.status !==3" size="small" placeholder="个人缴纳"
-                  :precision="2" :controls="false" style="width: 100%" @change="amountChangeHandler" />
+                  :precision="2" :controls="false" style="width: 100%" @change="amountChangeHandlerIndividual" />
                 <div v-else>{{ rowNum(form.individualAmount) }}</div>
               </el-form-item>
             </el-col>
@@ -144,8 +185,10 @@
 <script setup>
   import {
     getDetail,
-    saveDetail, turnBackDetail,
+    saveDetail, turnBackDetail, exportDetail
   } from "@/api/business/production/housingFundDeclare";
+
+  import { getMembers, getMembersNoDelete } from "@/api/business/production/housingFundDeclare";
   import { uploadFile } from "@/api/tool/file";
   import dragUpload from "@/components/dragUpload"
   import { rowNum } from "@/utils/index";
@@ -166,10 +209,10 @@
       default: () => { },
     },
   });
-
+  const housingFundPersonList = ref([])
   const { getList } = toRefs(props);
   const total = ref(0);
-
+  const changSums = ref([])
   const employeeEmptyData = {
     id: null,
     title: "",
@@ -213,7 +256,6 @@
     form.value = detail;
     loadData();
   }
-
   function loadData() {
     loading.value = true;
     form.value.year = proxy.moment(currentMonth.value).format("YYYY");
@@ -226,16 +268,95 @@
       //   proxy.$modal.msgError("该信息已提交待审核");
       //   close();
       // }
-      amountChangeHandler();
+      amountChangeHandlerIndividual();
+      amountChangeHandlerUnit();
+      let query = { "companyId": companyId, "year": form.value.year, "month": form.value.month }
+      getMembersNoDelete(query)
+        .then((res) => {
+          housingFundPersonList.value = res.data
+          console.log("form.value", form.value.unitAmount);
+
+          if (form.value.unitAmount === undefined || form.value.unitAmount == 0) {
+            let amount = 0
+            housingFundPersonList.value.map(item => {
+              amount += item.companyAmount
+
+            })
+            form.value.unitAmount = amount
+          }
+          if (form.value.individualAmount === undefined || form.value.individualAmount == 0) {
+            let amount = 0
+            housingFundPersonList.value.map(item => {
+              amount += item.oneSelfAmount
+            })
+            form.value.individualAmount = amount
+          }
+        })
+        .catch((err) => {
+          console.log(err);
+        });
     }).finally(() => {
       loading.value = false;
     });
   }
-
+  function exportExcel() {
+    let data = {
+      "companyId": form.value.companyId,
+      "year": form.value.year,
+      "month": form.value.month
+    }
+    exportDetail(data)
+  }
   function close() {
     visible.value = false;
     reset();
   }
+
+  const getSummaries = (param) => {
+
+    const { columns, data } = param;
+    const sums = [];
+    columns.forEach((column, index) => {
+      if (index === 0) {
+        sums[index] = '合计';
+        return;
+      }
+      if (index === 1 || index === 2 || index === 3) {
+        return;
+      }
+
+      const values = data.map(item => Number(item[column.property]));
+      // if (column.property === 'companyAmount') {
+      //   if (form.value.unitAmount) {
+      //     sums[index] = form.value.unitAmount
+      //     return
+      //   }
+      // } else if (column.property === 'oneSelfAmount') {
+      //   if (form.value.unitAmount) {
+      //     sums[index] = form.value.individualAmount
+      //     return
+      //   }
+      // }
+      // else if (column.property === 'totalAmount') {
+      //   if (form.value.unitAmount && form.value.individualAmount) {
+      //     sums[index] = form.value.individualAmount + form.value.unitAmount
+      //     return
+      //   }
+      // }
+
+      sums[index] = values.reduce((prev, curr) => {
+        const value = Number(curr);
+        if (!isNaN(value)) {
+          return prev + curr;
+        } else {
+          return prev;
+        }
+      }, 0).toFixed(2);
+    });
+
+    return sums
+  }
+
   function turnBack(detail) {
     loading.value = true
     form.value.status = 1;
@@ -266,6 +387,7 @@
   }
 
   function handleSave() {
+
     if (form.value.isFirstHousingFund === 0 && form.value.isPayOnWindow === 0) {
       if (!form.value.housingFundUnitAccount) {
         proxy.$modal.msgError("请输入公积金单位账号");
@@ -356,15 +478,20 @@
   function openEvidience() {
     window.open(`${baseUrl.value}${form.value.evidenceFiles[0].fileUrl}`);
   }
-  function amountChangeHandler() {
+  function amountChangeHandlerUnit() {
+    let amount = 0;
+    amount += form.value.unitAmount == null ? 0 : form.value.unitAmount;
+    amount +=
+      form.value.individualAmount == null ? 0 : form.value.individualAmount;
+    form.value.amount = amount;
+  }
+  function amountChangeHandlerIndividual() {
     let amount = 0;
     amount += form.value.unitAmount == null ? 0 : form.value.unitAmount;
     amount +=
       form.value.individualAmount == null ? 0 : form.value.individualAmount;
-    console.log("金额", form.value.unitAmount);
     form.value.amount = amount;
   }
-
   function handleDel(row, index) {
     proxy.$modal
       .confirm("确定删除吗?")

+ 79 - 2
src/views/business/housingFund/declare/view.vue

@@ -54,6 +54,29 @@
                 <div>{{ form.housingFundDeductionPassword }}</div>
               </el-form-item>
             </el-col>
+            <el-col :span="24">
+              <div style="display: flex; justify-content: flex-end;margin-bottom: 10px;">
+                <el-button type="primary">导出明细表</el-button>
+              </div>
+            </el-col>
+            <el-table :data="housingFundPersonList" border style="width: 100%" show-summary
+              :summary-method="getSummaries">
+              <el-table-column label="序号" align="center" type="index" />
+              <el-table-column prop="employeeName" label="人员" />
+              <el-table-column prop="cardinalNumber" label="基数" />
+              <el-table-column prop="ratio" label="比例">
+                <template #default="scope">
+                  {{scope.row.ratio/100}}
+                </template>
+              </el-table-column>
+              <el-table-column label="公司" prop="companyAmount">
+              </el-table-column>
+              <el-table-column label="个人" prop="oneSelfAmount">
+              </el-table-column>
+              <el-table-column label="缴费金额" prop="totalAmount">
+              </el-table-column>
+            </el-table>
+
             <el-col :span="24">
               <el-divider />
             </el-col>
@@ -71,6 +94,7 @@
                 <div v-else>{{ rowNum(form.individualAmount) }}</div>
               </el-form-item>
             </el-col>
+           
             <el-col :span="24">
               <el-divider />
             </el-col>
@@ -130,6 +154,7 @@
     getDetail,
     saveDetail, turnBackDetail
   } from "@/api/business/production/housingFundDeclare";
+  import { getMembers, getMembersNoDelete } from "@/api/business/production/housingFundDeclare";
   import { uploadFile } from "@/api/tool/file";
   import { ref } from "vue";
   import { rowNum } from "@/utils/index";
@@ -152,7 +177,7 @@
       default: () => { },
     },
   });
-
+  const housingFundPersonList = ref([])
   const { getList } = toRefs(props);
   const total = ref(0);
 
@@ -196,12 +221,64 @@
       form.value = { ...proxy.deepClone(emptyForm), ...res.data };
       form.value.evidenceFile =  form.value.evidenceFiles[0].fileUrl;
       amountChangeHandler();
-
+      let query = { "companyId": companyId, "year": form.value.year, "month": form.value.month }
+      getMembersNoDelete(query)
+        .then((res) => {
+          housingFundPersonList.value = res.data
+          
+        })
+        .catch((err) => {
+          console.log(err);
+        });
     }).finally(() => {
       loading.value = false
     });
 
   }
+  const getSummaries = (param) => {
+
+const { columns, data } = param;
+const sums = [];
+columns.forEach((column, index) => {
+  if (index === 0) {
+    sums[index] = '合计';
+    return;
+  }
+  if (index === 1 || index === 2 || index === 3) {
+    return;
+  }
+
+  const values = data.map(item => Number(item[column.property]));
+  // if (column.property === 'companyAmount') {
+  //   if (form.value.unitAmount) {
+  //     sums[index] = form.value.unitAmount
+  //     return
+  //   }
+  // } else if (column.property === 'oneSelfAmount') {
+  //   if (form.value.unitAmount) {
+  //     sums[index] = form.value.individualAmount
+  //     return
+  //   }
+  // }
+  // else if (column.property === 'totalAmount') {
+  //   if (form.value.unitAmount && form.value.individualAmount) {
+  //     sums[index] = form.value.individualAmount + form.value.unitAmount
+  //     return
+  //   }
+  // }
+
+  sums[index] = values.reduce((prev, curr) => {
+    const value = Number(curr);
+    if (!isNaN(value)) {
+      return prev + curr;
+    } else {
+      return prev;
+    }
+  }, 0);
+});
+
+return sums
+}
   function changeMonthHandle() {
 
     // isView.value = true

+ 7 - 0
src/views/business/production/onceWork/index.vue

@@ -62,6 +62,13 @@
         prop="socialCreditCode"
         min-width="150"
       /> -->
+      <el-table-column
+        label="来源列"
+        align="center"
+        prop="accountName"
+        min-width="150"
+        v-if ="tenant.versionId !== '4'"
+      />
       <el-table-column label="工单类型" align="center" prop="amount" width="80">
         <template #default="scope">
           {{ scope.row.type === 1 ? "循环工单" : "代办工单" }}