From b92ea6fb8b4a75a0d7c561bd045f1a8b1720ddd1 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 02 七月 2025 14:47:15 +0800
Subject: [PATCH] 人员管理-在职员工台账、合同管理联调

---
 src/views/salesManagement/invoiceLedger/index.vue |  247 +++++++++++-------------------------------------
 1 files changed, 59 insertions(+), 188 deletions(-)

diff --git a/src/views/salesManagement/invoiceLedger/index.vue b/src/views/salesManagement/invoiceLedger/index.vue
index 4ee4854..e54abf1 100644
--- a/src/views/salesManagement/invoiceLedger/index.vue
+++ b/src/views/salesManagement/invoiceLedger/index.vue
@@ -3,28 +3,17 @@
     <div class="search_form">
       <el-form :inline="true" :model="searchForm">
         <el-form-item label="瀹㈡埛鍚嶇О/鍚堝悓鍙�">
-          <el-input
-            v-model="searchForm.searchText"
-            style="width: 240px"
-            placeholder="杈撳叆瀹㈡埛鍚嶇О/鍚堝悓鍙锋悳绱�"
-            @change="handleQuery"
-            clearable
-            :prefix-icon="Search"
-          />
+          <el-input v-model="searchForm.searchText" style="width: 240px" placeholder="杈撳叆瀹㈡埛鍚嶇О/鍚堝悓鍙锋悳绱�"
+            @change="handleQuery" clearable :prefix-icon="Search" />
         </el-form-item>
         <el-form-item label="寮�绁ㄦ棩鏈�">
-          <el-date-picker
-            style="width: 240px"
-            v-model="searchForm.invoiceDate"
-            value-format="YYYY-MM-DD"
-            format="YYYY-MM-DD"
-            type="daterange"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            clearable
-            @change="changeDateRange"
-            @clear="clearRange"
-          />
+          <el-date-picker style="width: 240px" v-model="searchForm.invoiceDate" value-format="YYYY-MM-DD"
+            format="YYYY-MM-DD" type="daterange" start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" clearable
+            @change="changeDateRange" @clear="clearRange" />
+        </el-form-item>
+        <el-form-item label="褰曞叆鏃ユ湡">
+          <el-date-picker style="width: 100%" v-model="searchForm.createTimeStart" value-format="YYYY-MM-DD HH:mm:ss"
+            format="YYYY-MM-DD" type="date" placeholder="璇烽�夋嫨" clearable @change="handleQuery" />
         </el-form-item>
         <el-form-item label="涓嶆樉绀烘湁鍙戠エ琛�">
           <el-checkbox v-model="searchForm.status" @change="handleQuery" />
@@ -37,122 +26,46 @@
       </el-form>
     </div>
     <div class="table_list">
-      <el-table
-        :data="tableData"
-        border
-        v-loading="tableLoading"
-        @selection-change="handleSelectionChange"
-        :row-key="(row) => row.id"
-        show-summary
-        :summary-method="summarizeMainTable"
-        height="calc(100vh - 18.5em)"
-      >
+      <el-table :data="tableData" border v-loading="tableLoading" @selection-change="handleSelectionChange"
+        :row-key="(row) => row.id" show-summary :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">
         <el-table-column align="center" type="selection" width="55" />
         <el-table-column align="center" label="搴忓彿" type="index" width="60" />
-        <el-table-column
-          label="閿�鍞悎鍚屽彿"
-          prop="salesContractNo"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="瀹㈡埛鍚堝悓鍙�"
-          prop="customerContractNo"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="瀹㈡埛鍚嶇О"
-          prop="customerName"
-          show-overflow-tooltip
-        />
-        <el-table-column label="浜у搧澶х被" prop="productCategory" />
-        <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
-        <el-table-column
-          label="鍙戠エ鍙�"
-          prop="invoiceNo"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="鍙戠エ閲戦(鍏�)"
-          prop="invoiceTotal"
-          show-overflow-tooltip
-          :formatter="formattedNumber"
-        />
-        <el-table-column label="绋庣巼" prop="taxRate" show-overflow-tooltip />
-        <el-table-column
-          label="褰曞叆浜�"
-          prop="invoicePerson"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="褰曞叆鏃ユ湡"
-          prop="createTime"
-          show-overflow-tooltip
-          :formatter="formatDate"
-        />
-        <el-table-column
-          label="寮�绁ㄦ棩鏈�"
-          prop="invoiceDate"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="鍙戠エ"
-          prop="invoiceFileName"
-          show-overflow-tooltip
-        >
+        <el-table-column label="閿�鍞悎鍚屽彿" prop="salesContractNo" show-overflow-tooltip width="180" />
+        <el-table-column label="瀹㈡埛鍚堝悓鍙�" prop="customerContractNo" show-overflow-tooltip width="180" />
+        <el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" show-overflow-tooltip width="240" />
+        <el-table-column label="椤圭洰" prop="projectName" width="200" />
+        <el-table-column label="浜у搧澶х被" prop="productCategory" width="200" />
+        <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="300" show-overflow-tooltip />
+        <el-table-column label="鍙戠エ鍙�" prop="invoiceNo" width="200" show-overflow-tooltip />
+        <el-table-column label="鍙戠エ閲戦(鍏�)" prop="invoiceTotal" show-overflow-tooltip :formatter="formattedNumber"
+          width="120" />
+        <el-table-column label="绋庣巼(%)" prop="taxRate" show-overflow-tooltip />
+        <el-table-column label="褰曞叆浜�" prop="invoicePerson" show-overflow-tooltip />
+        <el-table-column label="褰曞叆鏃ユ湡" prop="createTime" show-overflow-tooltip :formatter="formatDate" width="180" />
+        <el-table-column label="寮�绁ㄦ棩鏈�" prop="invoiceDate" show-overflow-tooltip width="120" />
+        <el-table-column label="鍙戠エ" prop="invoiceFileName" width="120" align="center" show-overflow-tooltip>
           <template #default="scope">
-            <span v-if="scope.row.invoiceFileName">{{
-              scope.row.invoiceFileName
-            }}</span>
-            <el-button
-              v-else
-              link
-              type="primary"
-              @click="handleDownload(scope.row)"
-              >涓婁紶</el-button
-            >
+            <el-button v-if="scope.row.invoiceFileName" text bg type="primary"
+              @click="handleFile(scope.row.commonFiles)">
+              鏌ョ湅闄勪欢
+            </el-button>
+            <el-button v-else link type="primary" @click="handleDownload(scope.row)">
+              涓婁紶
+            </el-button>
           </template>
         </el-table-column>
         <el-table-column fixed="right" label="鎿嶄綔" width="150" align="center">
           <template #default="scope">
-            <el-button
-              link
-              type="primary"
-              size="small"
-              @click="openForm(scope.row)"
-              >缂栬緫</el-button
-            >
-            <el-button
-              link
-              type="primary"
-              size="small"
-              @click="delInvoiceLedger(scope.row)"
-              >鍒犻櫎</el-button
-            >
+            <el-button link type="primary" size="small" @click="openForm(scope.row)">缂栬緫</el-button>
+            <el-button link type="primary" size="small" @click="delInvoiceLedger(scope.row)">鍒犻櫎</el-button>
           </template>
         </el-table-column>
       </el-table>
-      <pagination
-        v-show="total > 0"
-        :total="total"
-        layout="total, sizes, prev, pager, next, jumper"
-        :page="page.current"
-        :limit="page.size"
-        @pagination="paginationChange"
-      />
+      <pagination v-show="total > 0" :total="total" layout="total, sizes, prev, pager, next, jumper"
+        :page="page.current" :limit="page.size" @pagination="paginationChange" />
     </div>
-    <el-dialog
-      v-model="dialogFormVisible"
-      title="寮�绁ㄥ彴璐﹂〉闈�"
-      width="70%"
-      @close="closeDia"
-    >
-      <el-form
-        :model="form"
-        label-width="140px"
-        label-position="top"
-        :rules="rules"
-        ref="formRef"
-      >
+    <el-dialog v-model="dialogFormVisible" title="寮�绁ㄥ彴璐﹂〉闈�" width="70%" @close="closeDia">
+      <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="閿�鍞悎鍚屽彿锛�" prop="salesContractNo">
@@ -161,79 +74,41 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="瀹㈡埛鍚嶇О锛�" prop="customerName">
-              <el-input
-                v-model="form.customerName"
-                placeholder="鑷姩濉厖"
-                clearable
-                disabled
-              />
+              <el-input v-model="form.customerName" placeholder="鑷姩濉厖" clearable disabled />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="鍙戠エ鍙凤細" prop="invoiceNo">
-              <el-input
-                v-model="form.invoiceNo"
-                placeholder="璇疯緭鍏�"
-                clearable
-              />
+              <el-input v-model="form.invoiceNo" placeholder="璇疯緭鍏�" clearable />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="鍙戠エ閲戦(鍏�)锛�" prop="invoiceTotal">
-              <el-input
-                type="number"
-                :step="0.01"
-                v-model="form.invoiceTotal"
-                placeholder="璇疯緭鍏�"
-                clearable
-              />
+              <el-input type="number" :step="0.01" v-model="form.invoiceTotal" placeholder="璇疯緭鍏�" clearable />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="寮�绁ㄤ汉锛�" prop="invoicePerson">
-              <el-input
-                v-model="form.invoicePerson"
-                placeholder="璇疯緭鍏�"
-                clearable
-                disabled
-              />
+              <el-input v-model="form.invoicePerson" placeholder="璇疯緭鍏�" clearable disabled />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="寮�绁ㄦ棩鏈燂細" prop="invoiceDate">
-              <el-date-picker
-                style="width: 100%"
-                v-model="form.invoiceDate"
-                value-format="YYYY-MM-DD"
-                format="YYYY-MM-DD"
-                type="date"
-                placeholder="璇烽�夋嫨"
-                clearable
-              />
+              <el-date-picker style="width: 100%" v-model="form.invoiceDate" value-format="YYYY-MM-DD"
+                format="YYYY-MM-DD" type="date" placeholder="璇烽�夋嫨" clearable />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="24">
             <el-form-item label="闄勪欢鏉愭枡锛�" prop="remark">
-              <el-upload
-                v-model:file-list="fileList"
-                :action="upload.url"
-                multiple
-                ref="fileUpload"
-                auto-upload
-                :headers="upload.headers"
-                accept=".pdf"
-                :limit="1"
-                :before-upload="handleBeforeUpload"
-                :on-error="handleUploadError"
-                :on-success="handleUploadSuccess"
-                :on-remove="handleRemove"
-              >
+              <el-upload v-model:file-list="fileList" :action="upload.url" multiple ref="fileUpload" auto-upload
+                :headers="upload.headers" accept=".pdf" :limit="10" :before-upload="handleBeforeUpload"
+                :on-error="handleUploadError" :on-success="handleUploadSuccess" :on-remove="handleRemove">
                 <el-button type="primary">涓婁紶</el-button>
                 <template #tip>
                   <!--                  鏂囦欢鏍煎紡鏀寔 doc锛宒ocx锛寈ls锛寈lsx锛宲pt锛宲ptx锛宲df锛宼xt锛寈ml锛宩pg锛宩peg锛宲ng锛実if锛宐mp锛宺ar锛寊ip锛�7z-->
@@ -255,22 +130,10 @@
       <el-row :gutter="30">
         <el-col :span="24">
           <el-form-item label="闄勪欢鏉愭枡锛�" prop="remark">
-            <el-upload
-              v-model:file-list="fileList"
-              :action="upload.url"
-              multiple
-              ref="fileUpload"
-              auto-upload
-              :headers="upload.headers"
-              accept=".pdf"
-              :limit="1"
-              style="width: 100%"
-              :on-exceed="handleExceed"
-              :before-upload="handleBeforeUpload"
-              :on-error="handleUploadError"
-              :on-success="handleUploadSuccess"
-              :on-remove="handleRemove"
-            >
+            <el-upload v-model:file-list="fileList" :action="upload.url" multiple ref="fileUpload" auto-upload
+              :headers="upload.headers" accept=".pdf" :limit="10" style="width: 100%" :on-exceed="handleExceed"
+              :before-upload="handleBeforeUpload" :on-error="handleUploadError" :on-success="handleUploadSuccess"
+              :on-remove="handleRemove">
               <el-button type="primary">涓婁紶</el-button>
               <template #tip>
                 <div class="el-upload__tip">鏂囦欢鏍煎紡浠呮敮鎸� pdf</div>
@@ -328,6 +191,7 @@
     ],
     invoiceDateStart: dayjs().startOf("month").format("YYYY-MM-DD"),
     invoiceDateEnd: dayjs().endOf("month").format("YYYY-MM-DD"),
+    createTimeStart: "", // 褰曞叆鏃ユ湡
   },
   form: {
     salesLedgerId: "",
@@ -339,6 +203,7 @@
     invoiceDate: "",
     customerName: "",
     fileList: [],
+    createTime: "", // 褰曞叆鏃ユ湡
   },
   rules: {
     salesLedgerId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
@@ -557,6 +422,12 @@
   }
 };
 
+const handleFile = (commonFiles) => {
+  commonFiles.forEach((e) => {
+    proxy.$download.name(e.url);
+  });
+};
+
 const clearRange = () => {
   searchForm.invoiceDate = [];
   searchForm.invoiceDateStart = undefined;

--
Gitblit v1.9.3