From 8fc1138d2f2115121fd15b679ca1a20fc2ba838a Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 02 四月 2026 13:37:40 +0800
Subject: [PATCH] 绩效管理:工时汇总对接MES数据&人员考勤调整

---
 src/views/performance/manHour/workTimeStatistics.vue |   67 ++++++++++++++++++++++++++++-----
 1 files changed, 56 insertions(+), 11 deletions(-)

diff --git a/src/views/performance/manHour/workTimeStatistics.vue b/src/views/performance/manHour/workTimeStatistics.vue
index 422aa61..2bd920d 100644
--- a/src/views/performance/manHour/workTimeStatistics.vue
+++ b/src/views/performance/manHour/workTimeStatistics.vue
@@ -30,27 +30,59 @@
             <el-form-item>
               <el-button type="primary" size="mini" @click="refreshTable">鏌ヨ</el-button>
               <el-button size="mini" @click="refresh">閲嶇疆</el-button>
+              <el-button :loading="downloadLoading" type="success" size="mini" @click="exportWorkHoursTotal">瀵煎嚭</el-button>
             </el-form-item>
           </el-form>
         </div>
       </div>
-      <limsTable
-        :column="tableColumn"
-        :table-data="tableData"
-        :table-loading="tableLoading"
-        :page="page"
+<!--      <limsTable-->
+<!--        :column="tableColumn"-->
+<!--        :table-data="tableData"-->
+<!--        :table-loading="tableLoading"-->
+<!--        :page="page"-->
+<!--        :height="'calc(100vh - 290px)'"-->
+<!--        @pagination="pagination"-->
+<!--      >-->
+<!--      </limsTable>-->
+      <el-table
+        :data="tableData"
+        v-loading="tableLoading"
         :height="'calc(100vh - 290px)'"
-        @pagination="pagination"
+        :cell-style="{ textAlign: 'center' }"
+        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e', textAlign: 'center' }"
+        border
       >
-      </limsTable>
+        <el-table-column type="index" label="搴忓彿"></el-table-column>
+        <el-table-column prop="userName" label="濮撳悕" min-width="120"></el-table-column>
+        <el-table-column prop="month" label="鏈堜唤" min-width="120"></el-table-column>
+        <el-table-column label="LIMS">
+          <el-table-column prop="yieldHour" label="浜ч噺宸ユ椂" min-width="120"></el-table-column>
+          <el-table-column prop="subsidiaryHour" label="杈呭姪宸ユ椂" min-width="120"></el-table-column>
+          <el-table-column prop="totalHour" label="鎬诲伐鏃�" min-width="120"></el-table-column>
+        </el-table-column>
+        <el-table-column label="鑰愪笣鍩烳ES">
+          <el-table-column prop="operationPerformanceByNS" label="宸ュ簭缁╂晥" min-width="120"></el-table-column>
+          <el-table-column prop="productPerformanceByNS" label="鎴愬搧缁╂晥" min-width="120"></el-table-column>
+          <el-table-column prop="onsiteInspWageByNS" label="宸℃缁╂晥" min-width="120"></el-table-column>
+          <el-table-column prop="handymanWageByNS" label="鏉傚伐宸ヨ祫" min-width="120"></el-table-column>
+        </el-table-column>
+        <el-table-column label="绉戞妧鍩烳ES">
+          <el-table-column prop="operationPerformanceByKJ" label="宸ュ簭缁╂晥" min-width="120"></el-table-column>
+          <el-table-column prop="productPerformanceByKJ" label="鎴愬搧缁╂晥" min-width="120"></el-table-column>
+          <el-table-column prop="onsiteInspWageByKJ" label="宸℃缁╂晥" min-width="120"></el-table-column>
+          <el-table-column prop="handymanWageByKJ" label="鏉傚伐宸ヨ祫" min-width="120"></el-table-column>
+        </el-table-column>
+      </el-table>
+
     </div>
   </div>
 </template>
 
 <script>
-import { getYearAndMonthAndDays, getYearAndMonthAndDaysZTZB } from "@/utils/date";
+import {transformExcel} from '@/utils/file'
+import { getYearAndMonthAndDays, getWorkMonth } from "@/utils/date";
 import limsTable from "@/components/Table/lims-table.vue";
-import { selectAuxiliaryAllByMonth } from "@/api/performance/manHour";
+import { selectAuxiliaryAllByMonth,exportWorkHoursTotal } from "@/api/performance/manHour";
 export default {
   components: {
     limsTable
@@ -58,7 +90,7 @@
   data() {
     return {
       queryParams: {
-        month: getYearAndMonthAndDaysZTZB().slice(0, 7),
+        month: getWorkMonth().format('YYYY-MM'),
         name: "",
         departLims: "",
       },
@@ -96,12 +128,25 @@
         size: 20,
         current: 0,
       },
+      downloadLoading: false,
     };
   },
   mounted() {
     this.refreshTable();
   },
   methods: {
+    exportWorkHoursTotal(){
+      this.downloadLoading = true
+      exportWorkHoursTotal(this.queryParams).then(res=>{
+        transformExcel(res, "涓ぉ鑰愪笣璐ㄩ噺閮ㄥ伐鏃舵眹鎬�.xlsx")
+        this.$message.success("瀵煎嚭鎴愬姛")
+        this.$nextTick(()=>{
+          this.downloadLoading = false
+        })
+      }).catch((error)=>{
+        console.error(error)
+      })
+    },
     refreshTable() {
       this.tableLoading = true;
       selectAuxiliaryAllByMonth(this.queryParams)
@@ -115,7 +160,7 @@
     },
     refresh() {
       this.queryParams = {
-        month: getYearAndMonthAndDaysZTZB().slice(0, 7),
+        month: getWorkMonth().format('YYYY-MM'),
         name: "",
         departLims: "",
       };

--
Gitblit v1.9.3