From bc44c8e3c9d85691ce3fa73ef1300a6fae46e365 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 18 三月 2025 19:07:08 +0800
Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/center-lims-before-ruoyi into dev

---
 src/components/Table/lims-table.vue                    |   19 ++
 src/views/business/unPass/index.vue                    |   38 ++++
 src/views/business/reportPreparation/index.vue         |  102 +++++++-------
 src/views/business/costStatistics/index.vue            |   75 ++++++++--
 src/views/performance/manHour/work-time-management.vue |   39 ++++-
 src/views/performance/manHour/work-time-statistics.vue |   27 +--
 src/views/performance/manHour/work-time-config.vue     |   22 ++
 src/views/business/inspectionTask/index.vue            |    2 
 src/views/business/reportPreparation/onlyoffice.vue    |    5 
 src/views/bulletinBoard/tasksShow/index.vue            |   25 +--
 src/views/performance/staffEvaluate/index.vue          |    2 
 src/views/performance/manHour/index.vue                |    6 
 src/views/performance/class/index.vue                  |    9 +
 src/views/business/sample/index.vue                    |   14 -
 14 files changed, 248 insertions(+), 137 deletions(-)

diff --git a/src/components/Table/lims-table.vue b/src/components/Table/lims-table.vue
index 5be37a4..e293a94 100644
--- a/src/components/Table/lims-table.vue
+++ b/src/components/Table/lims-table.vue
@@ -14,7 +14,7 @@
       :row-class-name="rowClassName"
       :row-style="rowStyle"
       :row-key="rowKey"
-      :span-method="spanMethod"
+      :span-method="finalSpanMethod"
       :stripe="stripe"
       style="width: 100%"
       tooltip-effect="dark"
@@ -319,6 +319,10 @@
     },
   },
   props: {
+    parentSpanMethod: {
+      type: Function,
+      default: () => {},
+    },
     isSelection: {
       type: Boolean,
       default: undefined,
@@ -418,6 +422,17 @@
     this.$nextTick(() => {
       this.$refs.multipleTable.doLayout();
     });
+  },
+  computed: {
+    finalSpanMethod() {
+      if(this.parentSpanMethod) {
+        console.log('鐖剁粍浠剁殑鍚堝苟鏂规硶');
+        return this.parentSpanMethod;
+      }else{
+        console.log('瀛愮粍浠剁殑鍚堝苟鏂规硶');
+        return this.spanMethod;
+      }
+    },
   },
   mounted() {
     this.calculateSpanInfo();
@@ -611,7 +626,7 @@
 }
 
 >>> .el-table__body-wrapper::-webkit-scrollbar {
-  height: 6px;
+  height: 14px;
   /* 璁剧疆婊氬姩鏉″搴� */
 }
 </style>
diff --git a/src/views/bulletinBoard/tasksShow/index.vue b/src/views/bulletinBoard/tasksShow/index.vue
index 171122b..82673f9 100644
--- a/src/views/bulletinBoard/tasksShow/index.vue
+++ b/src/views/bulletinBoard/tasksShow/index.vue
@@ -116,7 +116,7 @@
         border
         :data="tableData"
         style="width: 100%"
-        :height="tableHeight"
+        :height="tableHeight+''"
         :header-cell-style="{ textAlign: 'center' }"
         :cell-style="{ textAlign: 'center' }"
       >
@@ -228,7 +228,7 @@
         <el-pagination
           @size-change="handleSizeChange"
           @current-change="handleCurrentChange"
-          :current-page="page.currentPage"
+          :current-page="page.current"
           :page-sizes="[20, 40, 60, 80, 100]"
           :page-size="20"
           layout="total, sizes, prev, pager, next, jumper"
@@ -257,11 +257,11 @@
       intervalId: null,
       total: 0,
       page: {
-        currentPage: 1,
-        pageSize: 20,
+        current: 1,
+        size: 20,
       },
       tableData: [],
-      tableHeight: 0,
+      tableHeight: "",
     };
   },
   watch: {
@@ -320,12 +320,7 @@
   methods: {
     //鍔ㄦ�佽幏鍙栬〃鏍奸珮搴�
     handlerResize() {
-      let viewHeight = window.innerHeight;
-      let titleHeight = 60;
-      let headMenuHeight = 90;
-      let pageHeight = 42;
-      this.tableHeight =
-        viewHeight - titleHeight - headMenuHeight - pageHeight - 120;
+      this.tableHeight = window.innerHeight - 50 - 46 - 60 - 80  - 30 - 30 - 32;
     },
     // 鍏抽棴
     close() {
@@ -373,20 +368,20 @@
       this.getTableData();
     },
     handleSizeChange(val) {
-      this.page.pageSize = val;
+      this.page.size = val;
       this.getTableData();
       console.log(`姣忛〉 ${val} 鏉);
     },
     handleCurrentChange(val) {
-      this.page.currentPage = val;
+      this.page.current = val;
       this.getTableData();
       console.log(`褰撳墠椤�: ${val}`);
     },
     getTableData() {
       this.loading = true;
       let data = {
-        currentPage: this.page.currentPage,
-        pageSize: this.page.pageSize,
+        current: this.page.current,
+        size: this.page.size,
         sonLaboratory: this.sonLaboratory,
       };
         tasksShow(data).then((res) => {
diff --git a/src/views/business/costStatistics/index.vue b/src/views/business/costStatistics/index.vue
index 78d5a12..6cbb466 100644
--- a/src/views/business/costStatistics/index.vue
+++ b/src/views/business/costStatistics/index.vue
@@ -1,4 +1,8 @@
 <style scoped>
+.costStatistics {
+  width: 100%;
+  height: 100%;
+}
 .title {
   height: 60px;
   line-height: 60px;
@@ -49,15 +53,20 @@
 </style>
 
 <template>
-  <div class="inspection_order">
-    <div style="width: 100%; height: 100%">
+  <div>
+    <div class="costStatistics bg-1">
       <div>
         <el-row class="title">
           <el-col :span="12" style="padding-left: 20px; text-align: left"
             >璐圭敤缁熻</el-col
           >
           <el-col :span="12" style="text-align: right">
-            <el-button size="small" type="primary">OA鎺ㄩ��</el-button>
+            <el-button
+              size="small"
+              type="primary"
+              v-hasPermi="['business:costStatistics:OA']"
+              >OA鎺ㄩ��</el-button
+            >
           </el-col>
         </el-row>
       </div>
@@ -83,8 +92,6 @@
         <div class="search_thing" style="width: 340px">
           <div class="search_label">濮旀墭鍗曚綅锛�</div>
           <div class="search_input">
-            <!--            <el-input size="small" placeholder="璇疯緭鍏�" clearable-->
-            <!--               @keyup.enter.native="refreshTable()"></el-input>-->
             <el-select
               @focus="getCompanyOptions"
               @change="refreshTable()"
@@ -109,7 +116,6 @@
             >鏌� 璇�</el-button
           >
         </div>
-        <!-- <div class="search_thing" style="padding-left: 70px;">鎬讳环锛歿{total}}</div> -->
         <div class="search_thing" style="margin-left: 50px">
           <div style="width: 100%; text-align: right">鎬讳环锛�</div>
           <el-statistic
@@ -125,24 +131,18 @@
             type="primary"
             @click="handleDown"
             :loading="outLoading"
+            v-hasPermi="['business:costStatistics:export']"
             >瀵煎嚭</el-button
           >
         </div>
       </div>
       <div class="table">
-        <!-- <ValueTable
-          ref="ValueTable"
-          :url="$api.insOrder.costStatistics"
-          :componentData="componentData"
-          :key="upIndex"
-          @handleWeave="handleWeave"
-          :column-min-width="'140'"
-        /> -->
         <lims-table
           :tableData="tableData"
+          :parentSpanMethod="spanMethod"
           :column="column"
           :tableLoading="tableLoading"
-          :height="'calc(100vh - 270px)'"
+          :height="tableHeight"
           :page="page"
           @pagination="pagination"
         ></lims-table>
@@ -178,6 +178,7 @@
   },
   data() {
     return {
+      tableHeight: "",
       tableData: [],
       column: [
         {
@@ -237,12 +238,48 @@
       outLoading: false,
     };
   },
+  created() {
+    this.getTableHeight();
+  },
   mounted() {
     this.getDates();
     this.refreshTable();
     this.entityCopy = this.HaveJson(this.entity);
   },
   methods: {
+    // 鍚堝苟鍗曞厓鏍�
+    spanMethod({row, column, rowIndex, columnIndex}) {
+      // 濮旀墭鍗曞彿鐩稿悓鐨勮繘琛屼竴涓垪鍚堝苟
+      const mergeColumns = [1,2,8,9]
+      if (
+        mergeColumns.includes(columnIndex)
+      ) {
+        // 濡傛灉鏄涓�琛岋紝 鎴栬�呬笂涓�琛屾暟鎹殑濮旀墭鍗曞彿鍜屽綋鍓嶈鐨勫鎵樺崟鍙蜂笉涓�鏍�
+        if (
+          rowIndex == 0 ||
+          row.entrustCode != this.tableData[rowIndex - 1].entrustCode
+        ) {
+          // 璁$畻闇�瑕佸悎骞剁殑琛屾暟
+          let rowspan = 1;
+          while (
+            rowIndex + rowspan < this.tableData.length &&
+            row.entrustCode == this.tableData[rowIndex + rowspan].entrustCode
+          ) {
+            rowspan++;
+          }
+          return [rowspan, 1];
+        } else {
+          return [0, 0];
+        }
+      } else {
+        // 鍏朵粬鍒椾笉鍚堝苟
+        return [1, 1];
+      }
+    },
+    getTableHeight() {
+      const windowHeight = window.innerHeight;
+      this.tableHeight = windowHeight - 50 - 46 - 60 - 80 - 60 - 32 + "";
+    },
     getData() {
       this.tableLoading = true;
       let params = { ...this.page, ...this.entity };
@@ -252,15 +289,15 @@
         this.tableLoading = false;
       });
     },
-    pagination({ cutPage, size }) {
-      this.page.current = cutPage;
-      this.page.size = size;
+    pagination({ page, limit }) {
+      this.page.current = page;
+      this.page.size = limit;
       this.refreshTable();
     },
 
     handleDown() {
       let data = {
-        company: this.entity.company ? this.entity.company : '',
+        company: this.entity.company ? this.entity.company : "",
         startTime: this.dates[0],
         endTime: this.dates[1],
       };
diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index 52f42d7..3acf827 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -411,7 +411,7 @@
               border
               ref="showResultTable"
               v-loading="loadingTable"
-              :height="tableHeight"
+              :height="tableHeight+''"
               element-loading-text="鍔犺浇涓�"
               element-loading-spinner="el-icon-loading"
               element-loading-background="rgba(255, 255, 255, 1)"
diff --git a/src/views/business/reportPreparation/index.vue b/src/views/business/reportPreparation/index.vue
index ecb205b..fe5106a 100644
--- a/src/views/business/reportPreparation/index.vue
+++ b/src/views/business/reportPreparation/index.vue
@@ -1,4 +1,9 @@
 <style scoped>
+.reportPreparation {
+  width: 100%;
+  height: 100%;
+}
+
 .title {
   height: 60px;
   line-height: 60px;
@@ -15,7 +20,7 @@
   display: flex;
   align-items: center;
   height: 50px;
-  width: 230px;
+  width: 210px;
 }
 
 .search_label {
@@ -65,8 +70,8 @@
 </style>
 
 <template>
-  <div class="inspection_order">
-    <div style="width: 100%; height: 100%">
+  <div>
+    <div class="reportPreparation bg-1">
       <div>
         <el-row class="title">
           <el-col :span="12" style="padding-left: 20px; text-align: left"
@@ -196,6 +201,7 @@
                 :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
                 style="color: #3a7bfa"
                 @click="more = !more"
+                v-hasPermi="['bbusiness:reportPreparation:more']"
                 >{{ !more ? "鏇村" : "鏀惰捣" }}</el-button
               >
               <div class="search_thing" style="padding-left: 20px">
@@ -224,31 +230,31 @@
                       <el-dropdown-item
                         icon="el-icon-download"
                         command="batchDownload"
+                        v-hasPermi="['business:reportPreparation:batchDownload']"
                         >鎵归噺涓嬭浇</el-dropdown-item
                       >
                       <el-dropdown-item
                         icon="el-icon-upload"
                         command="batchUpload"
+                         v-hasPermi="['business:reportPreparation:batchUpload']"
                         >鎵归噺涓婁紶</el-dropdown-item
                       >
                       <el-dropdown-item
                         icon="el-icon-s-check"
                         command="oneClickApproval"
+                         v-hasPermi="['business:reportPreparation:oneClickApproval']"
                         >涓�閿鎵�</el-dropdown-item
                       >
                       <el-dropdown-item
                         icon="el-icon-setting"
                         command="approvalConfig"
+                         v-hasPermi="['business:reportPreparation:signatureConfiguration']"
                         >瀹℃壒绛惧悕閰嶇疆</el-dropdown-item
                       >
                     </el-dropdown-menu>
                   </el-dropdown>
                 </template>
               </div>
-              <!-- <div class="btns">
-              <el-button size="small" type="primary" @click="handleDowns" :loading="outLoading" style="margin-right: 16px;">鎵归噺涓嬭浇</el-button>
-              <el-button size="small" type="primary" @click="openBatchUploadDia()" :loading="inLoading">鎵归噺涓婁紶</el-button>
-            </div> -->
             </div>
           </el-col>
         </el-row>
@@ -290,7 +296,7 @@
           :tableData="tableData"
           :column="column"
           :tableLoading="tableLoading"
-          :height="'calc(100vh - 270px)'"
+          :height="tableHeight+''"
           :page="page"
           @pagination="pagination"
         ></lims-table>
@@ -312,13 +318,6 @@
           style="cursor: pointer; font-size: 18px"
           @click="fullscreen = true"
         ></i>
-        <!-- <img
-          v-else
-          alt=""
-          src="../../../static/img/no-full.svg"
-          style="cursor: pointer"
-          @click="fullscreen = false"
-        /> -->
       </div>
       <div v-if="viewIssuedVisible" style="height: 80vh">
         <onlyoffice
@@ -342,13 +341,6 @@
           @click="fullscreen = true"
           v-if="!fullscreen"
         ></i>
-        <!-- <img
-          src="../../../static/img/no-full.svg"
-          alt=""
-          v-else
-          style="cursor: pointer"
-          @click="fullscreen = false"
-        /> -->
       </div>
       <Word
         style="height: 70vh"
@@ -377,13 +369,6 @@
           @click="fullscreen = true"
           v-if="!fullscreen"
         ></i>
-        <!-- <img
-          src="../../../static/img/no-full.svg"
-          alt=""
-          v-else
-          style="cursor: pointer"
-          @click="fullscreen = false"
-        /> -->
       </div>
       <div style="height: 75vh" v-if="issuedVisible">
         <onlyoffice
@@ -448,13 +433,6 @@
           @click="fullscreen = true"
           v-if="!fullscreen"
         ></i>
-        <!-- <img
-          src="../../../static/img/no-full.svg"
-          alt=""
-          v-else
-          style="cursor: pointer"
-          @click="fullscreen = false"
-        /> -->
       </div>
       <div style="height: 75vh" v-if="approveVisible">
         <onlyoffice
@@ -513,18 +491,6 @@
       top="5vh"
     >
       <div>
-        <!-- <el-upload
-            class="upload-demo"
-            :action="action"
-            :headers="headers"
-            :show-file-list="false"
-            accept=".doc,.docx"
-            :limit="1"
-            :before-upload="beforeUpload"
-            :on-success="handleSuccess"
-            ref="upload"
-            :on-error="onError">
-          </el-upload> -->
         <el-upload
           ref="upload"
           class="upload-demo custom-upload"
@@ -834,6 +800,8 @@
 
 import { getToken } from "@/utils/auth";
 
+import auth from "@/plugins/auth.js";
+
 export default {
   components: {
     limsTable,
@@ -841,6 +809,7 @@
   },
   data() {
     return {
+      tableHeight: "",
       tagField: {
         isUpload: {
           select: [
@@ -1092,12 +1061,18 @@
               disabled: (row) => {
                 return row.isExamine != -9;
               },
+              showHide: () => {
+                return auth.hasPermi("business:reportPreparation:establishment");
+              },
             },
             {
               name: "涓嬭浇",
               type: "text",
               clickFun: (row) => {
                 this.download(row);
+              },
+              showHide: () => {
+                return auth.hasPermi("business:reportPreparation:download");
               },
             },
             {
@@ -1115,6 +1090,9 @@
               disabled: (row) => {
                 return row.isExamine != -9;
               },
+              showHide: () => {
+                return auth.hasPermi("business:reportPreparation:upload");
+              },
             },
             {
               name: "杩樺師",
@@ -1125,6 +1103,9 @@
               disabled: (row) => {
                 return row.isExamine != -9;
               },
+              showHide: () => {
+                return auth.hasPermi("business:reportPreparation:restore");
+              },
             },
             {
               name: "鎻愪氦",
@@ -1134,6 +1115,9 @@
               },
               disabled: (row) => {
                 return row.state != 0;
+              },
+              showHide: () => {
+                return auth.hasPermi("business:reportPreparation:submit");
               },
             },
             {
@@ -1146,6 +1130,9 @@
                 return (
                   row.state == null || row.state == 0 || row.isExamine == 1
                 );
+              },
+              showHide: () => {
+                return auth.hasPermi("business:reportPreparation:examine");
               },
             },
             {
@@ -1163,6 +1150,9 @@
                   row.isRatify == 1
                 );
               },
+              showHide: () => {
+                return auth.hasPermi("business:reportPreparation:approve");
+              },
             },
             {
               name: "鎾ゅ洖",
@@ -1172,6 +1162,9 @@
               },
               disabled: (row) => {
                 return row.state == 1;
+              },
+              showHide: () => {
+                return auth.hasPermi("business:reportPreparation:withdraw");
               },
             },
           ],
@@ -1224,7 +1217,7 @@
     this.getAuthorizedPerson();
     this.handleResize();
     // 鐩戝惉绐楀彛澶у皬鏀瑰彉浜嬩欢
-    window.addEventListener("resize", this.handleResize);
+    window.addEventListener("resize", this.handleResize);  
   },
   beforeDestroy() {
     if (this.time != null) {
@@ -1244,6 +1237,11 @@
     this.entityCopy = this.HaveJson(this.entity);
     this.getList();
     this.getReportCountInfo();
+    this.getTableHeight();
+    window.addEventListener('resize', this.calculateTableHeight); // 鐩戝惉绐楀彛澶у皬鍙樺寲
+  },
+  beforeDestroy() {
+    window.removeEventListener('resize', this.calculateTableHeight); // 绉婚櫎鐩戝惉
   },
   watch: {
     batchUploadDia(newVal) {
@@ -1281,6 +1279,12 @@
     },
   },
   methods: {
+    // 鑾峰彇琛ㄦ牸楂樺害
+    getTableHeight() {
+      const windowHeight =   window.innerHeight; // 娴忚鍣ㄧ獥鍙i珮搴�
+      this.tableHeight = windowHeight - 60 - 80 - 46 - 50 - 32 - 44 -30 - 30;
+      console.log('this.tableHeight',this.tableHeight);
+    },
     // 杩斿洖鍒嗛〉鍊�
     pagination({ page, limit }) {
       this.page.current = page;
diff --git a/src/views/business/reportPreparation/onlyoffice.vue b/src/views/business/reportPreparation/onlyoffice.vue
index c9a6e33..50d3ab1 100644
--- a/src/views/business/reportPreparation/onlyoffice.vue
+++ b/src/views/business/reportPreparation/onlyoffice.vue
@@ -187,14 +187,13 @@
   body {
     height: 100%;
   }
-  #app {
+  /* #app {
     font-family: Avenir, Helvetica, Arial, sans-serif;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
-    text-align: center;
     color: #2c3e50;
     height: 100%;
-  }
+  } */
   .qualityManual-container {
     padding: 0 !important;
     height: 100%;
diff --git a/src/views/business/sample/index.vue b/src/views/business/sample/index.vue
index dbfd2b9..589b8f2 100644
--- a/src/views/business/sample/index.vue
+++ b/src/views/business/sample/index.vue
@@ -168,8 +168,8 @@
         <el-row class="title">
           <el-col :span="12" style="padding-left: 20px;text-align: left;">鏍峰搧绠$悊</el-col>
           <el-col :span="12" style="text-align: right;">
-            <el-button size="small" type="primary" @click="storageVisible=true">鍏ュ簱</el-button>
-            <el-button size="small" type="primary" @click="exportVisible=true">鍑哄簱</el-button>
+            <el-button size="small" type="primary" @click="storageVisible=true"  v-hasPermi="['business:sample:store']">鍏ュ簱</el-button>
+            <el-button size="small" type="primary" @click="exportVisible=true"  v-hasPermi="['business:sample:outbound']">鍑哄簱</el-button>
           </el-col>
         </el-row>
       </div>
@@ -200,15 +200,11 @@
             </el-input>
           </div>
         </div>
-        <!-- <div class="search_thing" style="padding-left: 30px;">
-					<el-button size="small" @click="refresh()">閲� 缃�</el-button>
-					<el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
-				</div> -->
         <div class="btns">
-          <el-button size="small" style="color:#3A7BFA" @click="keepVisible=true">缁存姢</el-button>
-          <el-button size="small" style="color:#3A7BFA" @click="warehouseVisible=true,isEdit=false">娣诲姞浠撳簱</el-button>
+          <el-button size="small" style="color:#3A7BFA" @click="keepVisible=true"  v-hasPermi="['business:sample:maintenance']">缁存姢</el-button>
+          <el-button size="small" style="color:#3A7BFA" @click="warehouseVisible=true,isEdit=false"  v-hasPermi="['business:sample:addWarehouse']">娣诲姞浠撳簱</el-button>
           <el-button size="small" style="color:#3A7BFA" @click="shelvesVisible=true,isEdit=false"
-            :disabled="entity.warehouseId==null">娣诲姞璐ф灦</el-button>
+            :disabled="entity.warehouseId==null"  v-hasPermi="['business:sample:addGoodsShelves']">娣诲姞璐ф灦</el-button>
         </div>
       </div>
       <div class="table" v-loading="tableLoading">
diff --git a/src/views/business/unPass/index.vue b/src/views/business/unPass/index.vue
index 18a6423..88ee522 100644
--- a/src/views/business/unPass/index.vue
+++ b/src/views/business/unPass/index.vue
@@ -33,7 +33,7 @@
 }
 </style>
 <template>
-  <div class="below-standard-main">
+  <div class="below-standard-main bg-1">
     <div style="width: 100%; height: 100%">
       <div>
         <el-row class="title">
@@ -79,7 +79,8 @@
           :tableData="tableData"
           :column="column"
           :tableLoading="tableLoading"
-          :height="'calc(100vh - 270px)'"
+          :parentSpanMethod="spanMethod"
+          :height="tableHeight+''"
           :page="page"
           @pagination="pagination"
         ></lims-table>
@@ -157,12 +158,39 @@
     this.entityCopy = this.HaveJson(this.entity);
     this.refreshTable();
   },
+  created() {
+    this.getTableHeight();
+  },
   methods: {
+    // 琛ㄦ牸鍚堝苟
+    spanMethod({row,column,rowIndex,columnIndex}) {
+      // 闇�瑕佸悎骞剁殑鍒�
+      const needSpan = [1]
+      if(needSpan.includes(columnIndex)) {
+        // 濡傛灉鏄涓�琛� 鎴栬�� 褰撳墠琛岀殑鍊煎拰涓婁竴琛岀殑鍊间笉涓�鏍� 灏辫寮�濮嬭繘琛岃绠楀悎骞�
+        if(rowIndex == 0 || row.entrustCode != this.tableData[rowIndex -1 ].entrustCode) {
+          // 鍚戜笅鎵惧埌鍜屽綋鍓嶈涓嶄竴鏍风殑琛屾暟
+          let rowSpan = 1;
+          while(rowIndex + rowSpan < this.tableData.length && row.entrustCode == this.tableData[rowIndex + rowSpan].entrustCode) {
+            rowSpan++
+          }
+          return [rowSpan,1]
+        }else {
+          // 濡傛灉鍜屼笂涓�琛岀殑鍊间竴鏍� 灏遍殣钘�
+          return [0,0]
+        }
+      }else{
+        return [1,1]
+      }
+    },
+    getTableHeight() {
+      this.tableHeight = window.innerHeight - 50 - 46 - 60 - 80 - 30 - 30 - 32;
+    },
     getData() {
       this.tableLoading = true;
       pageInsUnPass({
         current: this.page.current,
-        limit: this.page.size,
+        size: this.page.size,
         model: this.entity.model,
         sample: this.entity.sample,
       }).then((res) => {
@@ -171,8 +199,8 @@
         this.page.total = res.data.total;
       });
     },
-    pagination({current,limit}) {
-      this.page.current = current;
+    pagination({page,limit}) {
+      this.page.current = page;
       this.page.size = limit;
       this.getData();
     },
diff --git a/src/views/performance/class/index.vue b/src/views/performance/class/index.vue
index 376e359..4ee8df7 100644
--- a/src/views/performance/class/index.vue
+++ b/src/views/performance/class/index.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="class-page">
+  <div class="classHour bg-1">
     <div class="search">
       <div class="search_thing">
         <div class="search_label">閫夋嫨鏃堕棿锛�</div>
@@ -70,6 +70,7 @@
           size="small"
           type="primary"
           @click="configTime"
+           v-hasPermi="['performance:class:time']"
           >鏃堕棿閰嶇疆</el-button
         >
         <el-button
@@ -78,6 +79,7 @@
           size="small"
           type="primary"
           @click="handleDown"
+           v-hasPermi="['performance:class:down']"
           >瀵� 鍑�</el-button
         >
         <el-button
@@ -85,6 +87,7 @@
           size="small"
           type="primary"
           @click="schedulingVisible = true"
+           v-hasPermi="['performance:class:add']"
           >鎺� 鐝�</el-button
         >
       </div>
@@ -1068,6 +1071,10 @@
 </script>
   
   <style scoped>
+  .classHour{
+    width: 100%;
+    height: 100%;
+  }
 .form_title {
   height: 36px;
   display: flex;
diff --git a/src/views/performance/manHour/index.vue b/src/views/performance/manHour/index.vue
index f7face2..c754d40 100644
--- a/src/views/performance/manHour/index.vue
+++ b/src/views/performance/manHour/index.vue
@@ -2,13 +2,13 @@
   <div class="work-time-management bg-1">
     <div style="text-align: left">
       <el-radio-group v-model="currentComponent" size="small" style="margin-top: 16px;margin-bottom: 16px;">
-        <el-radio-button label="workTimeStatistics">
+        <el-radio-button label="workTimeStatistics"  v-hasPermi="['performance:manHour:workTimeStatistics']">
           宸ユ椂缁熻
         </el-radio-button>
-        <el-radio-button label="workTimeManagement" >
+        <el-radio-button label="workTimeManagement" v-hasPermi="['performance:manHour:workTimeManagement']">
           鏃ュ伐鏃剁鐞�
         </el-radio-button>
-        <el-radio-button label="workTimeConfig">
+        <el-radio-button label="workTimeConfig" v-hasPermi="['performance:manHour:workTimeConfig']">
           杈呭姪宸ユ椂閰嶇疆
         </el-radio-button>
       </el-radio-group>
diff --git a/src/views/performance/manHour/work-time-config.vue b/src/views/performance/manHour/work-time-config.vue
index abe1b42..131ad9a 100644
--- a/src/views/performance/manHour/work-time-config.vue
+++ b/src/views/performance/manHour/work-time-config.vue
@@ -54,18 +54,16 @@
         type="primary"
         style="position: absolute; right: 50px"
         @click="openAdd()"
+         v-hasPermi="['performance:manHour:workTimeConfig:add']"
         >鏂� 澧�</el-button
       >
     </div>
     <div class="table">
-      <!-- <ValueTable ref="ValueTable0"
-                  :url="$api.auxiliaryWorkingHours.selectAuxiliaryWorkingHours" :upUrl="$api.auxiliaryWorkingHours.upAuxiliaryWorkingHours"
-                  :delUrl="$api.auxiliaryWorkingHours.deleteAuxiliaryWorkingHours" :componentData="componentData" :key="upIndex" /> -->
       <lims-table
         :tableData="tableData"
         :column="column"
         :tableLoading="tableLoading"
-        :height="'calc(100vh - 270px)'"
+        :height="tableHeight"
         :page="page"
         @pagination="pagination"
       ></lims-table>
@@ -172,6 +170,8 @@
 } from "../../../api/business/manHour";
 import { getYearAndMonthAndDays } from "../../../utils/date";
 
+import auth from "@/plugins/auth.js";
+
 import { getDicts } from "@/api/system/dict/data";
 import { number } from "echarts";
 export default {
@@ -180,6 +180,7 @@
   },
   data() {
     return {
+      tableHeight: "",
       rules: {
         number: [{ required: true, message: "璇疯緭鍏ョ紪鍙�", trigger: "blur" }],
         auxiliaryProject: [
@@ -273,12 +274,18 @@
               clickFun: (row) => {
                 this.openAdd(row);
               },
+              showHide: (row) => {
+                return auth.hasPermi("performance:manHour:workTimeConfig:edit");
+              },
             },
             {
               name: "鍒犻櫎",
               type: "text",
               clickFun: (row) => {
                 this.del(row);
+              },
+              showHide: (row) => {
+                return auth.hasPermi("performance:manHour:workTimeConfig:del");
               },
             },
           ],
@@ -302,7 +309,9 @@
       addPower: true,
     };
   },
-  created() {},
+  created() {
+    this.getTableHeight();
+  },
   mounted() {
     this.entityCopy = this.HaveJson(this.entity);
     this.obtainItemParameterList();
@@ -310,6 +319,9 @@
     this.getData();
   },
   methods: {
+    getTableHeight() {
+      this.tableHeight = window.innerHeight -50 -46 - 63 - 80 - 41 -30 -30 -32 + '';
+    },
     getData() {
       this.tableLoading = true;
       this.page.total = 0;
diff --git a/src/views/performance/manHour/work-time-management.vue b/src/views/performance/manHour/work-time-management.vue
index 2f78cbe..d2abcb7 100644
--- a/src/views/performance/manHour/work-time-management.vue
+++ b/src/views/performance/manHour/work-time-management.vue
@@ -124,6 +124,7 @@
           type="primary"
           @click="openAdd"
           v-show="currentTable == 'ValueTable0'"
+           v-hasPermi="['performance:manHour:workTimeManagement:enterData']"
           >褰曞叆鏁版嵁</el-button
         >
         <el-button
@@ -131,6 +132,7 @@
           type="primary"
           @click="handleOut"
           :loading="outLoading"
+          v-hasPermi="['performance:manHour:workTimeManagement:export']"
           >瀵� 鍑�</el-button
         >
         <el-button
@@ -138,6 +140,7 @@
           type="primary"
           v-show="currentTable == 'ValueTable0'"
           @click="openBatchCheck(0)"
+          v-hasPermi="['performance:manHour:workTimeManagement:batchExamine']"
           >鎵归噺瀹℃牳</el-button
         >
         <el-button
@@ -145,6 +148,7 @@
           type="primary"
           v-show="currentTable == 'ValueTable0'"
           @click="openBatchCheck(1)"
+          v-hasPermi="['performance:manHour:workTimeManagement:batchApprove']"
           >鎵归噺鎵瑰噯</el-button
         >
       </div>
@@ -158,7 +162,7 @@
         :column="column"
         :key="upIndex"
         :tableLoading="tableLoading"
-        :height="'calc(100vh - 270px)'"
+        :height="tableHeight+''"
         :page="page"
         @pagination="pagination"
       ></lims-table>
@@ -169,7 +173,7 @@
         :column="column1"
         :key="upIndex1"
         :tableLoading="tableLoading1"
-        :height="'calc(100vh - 270px)'"
+        :height="tableHeight+''"
         :page="page1"
         @pagination="pagination1"
       ></lims-table>
@@ -477,6 +481,8 @@
 } from "../../../api/business/manHour";
 import { getYearAndMonthAndDays } from "../../../utils/date";
 
+import auth from "@/plugins/auth.js";
+
 import { getDicts } from "@/api/system/dict/data";
 import Big from "big.js";
 export default {
@@ -485,6 +491,7 @@
   },
   data() {
     return {
+      tableHeight: "",
         shiftList:[],
       tableData: [],
       column: [
@@ -597,6 +604,9 @@
               clickFun: (row) => {
                 this.del(row);
               },
+              showHide: () => {
+                return auth.hasPermi('performance:manHour:workTimeManagement:del');
+              }
             },
             {
               name: "缂栬緫",
@@ -604,6 +614,9 @@
               clickFun: (row) => {
                 this.handleEdit(row);
               },
+              showHide: () => {
+                return auth.hasPermi('performance:manHour:workTimeManagement:edit');
+              }
             },
             {
               name: "瀹℃牳",
@@ -611,6 +624,9 @@
               clickFun: (row) => {
                 this.handleCheck(row);
               },
+              showHide: () => {
+                return auth.hasPermi('performance:manHour:workTimeManagement:examine');
+              }
             },
             {
               name: "鎵瑰噯",
@@ -618,6 +634,9 @@
               clickFun: (row) => {
                 this.handleRatify(row);
               },
+              showHide: () => {
+                return auth.hasPermi('performance:manHour:workTimeManagement:approve');
+              }
             },
           ],
         },
@@ -840,6 +859,7 @@
     //褰撳彧鏈変骇閲忓伐鏃秚ab椤垫椂锛屽綋鍓嶉〉鏀逛负浜ч噺宸ユ椂椤�
     this.selectEnumByCategory();
     this.setDate();
+    this.getTableHeight();
   },
   mounted() {
     console.log(11);
@@ -849,6 +869,9 @@
     this.entityCopy1 = this.HaveJson(this.entity);
   },
   methods: {
+    getTableHeight() {
+      this.tableHeight = window.innerHeight -50 -46 - 63 - 80 - 41 -30 -30 -32;
+    },
     del(row) {
       console.log(row);
       this.$confirm("姝ゆ搷浣滃皢姘镐箙鍒犻櫎, 鏄惁缁х画?", "鎻愮ず", {
@@ -889,8 +912,8 @@
         console.log('浜ч噺宸ユ椂');
         this.tableLoading1 = true;
         let params = {
-            current: this.page.current,
-            size: this.page.size,
+            current: this.page1.current,
+            size: this.page1.size,
             dateTime1: this.entity.dateTime[0],
             dateTime2: this.entity.dateTime[1],
             week: this.entity.week,
@@ -906,13 +929,13 @@
           });
       }
     },
-    pagination({ current, limit }) {
-      this.page.current = current;
+    pagination({ page, limit }) {
+      this.page.current = page;
       this.page.size = limit;
       this.getData();
     },
-    pagination1({ current, limit }) {
-      this.page1.current = current;
+    pagination1({ page, limit }) {
+      this.page1.current = page;
       this.page1.size = limit;
       this.getData();
     },
diff --git a/src/views/performance/manHour/work-time-statistics.vue b/src/views/performance/manHour/work-time-statistics.vue
index 86aac14..e57b4d3 100644
--- a/src/views/performance/manHour/work-time-statistics.vue
+++ b/src/views/performance/manHour/work-time-statistics.vue
@@ -95,24 +95,13 @@
       </el-radio-group>
     </div>
     <div class="table">
-      <!-- <ValueTable ref="ValueTable0"
-          v-if="currentTable == 'value0' && isPermission('selectAuxiliaryOriginalHours')" :isColumnWidth="true"
-                    :isShowZero="true"
-                  :url="$api.auxiliaryOriginalHours.selectAuxiliaryOriginalHours"
-                  :componentData="componentData" :key="upIndex" />
-        <ValueTable ref="ValueTable1" :isShowZero="true"
-          v-if="currentTable == 'value1' && isPermission('selectAuxiliaryCorrectionHours')" :isColumnWidth="true"
-                  :url="$api.auxiliaryCorrectionHours.selectAuxiliaryCorrectionHours"
-          :inputUrl="$api.auxiliaryCorrectionHours.upload"
-                  :componentData="componentData0"
-          :key="upIndex1" /> -->
       <lims-table
         v-if="currentTable == 'value0'"
         :tableData="tableData"
         :column="column"
         :key="upIndex"
         :tableLoading="tableLoading"
-        :height="'calc(100vh - 270px)'"
+        :height="tableHeight+''"
         :page="page"
         @pagination="pagination"
       ></lims-table>
@@ -123,7 +112,7 @@
         :column="column1"
         :key="upIndex1"
         :tableLoading="tableLoading1"
-        :height="'calc(100vh - 270px)'"
+        :height="tableHeight+''"
         :page="page1"
         @pagination="pagination1"
       ></lims-table>
@@ -151,6 +140,7 @@
   computed: {},
   data() {
     return {
+      tableHeight: "",
       column: [
         {
           label: "濮撳悕",
@@ -468,7 +458,9 @@
       outLoading: false,
     };
   },
-  created() {},
+  created() {
+    this.getTableHeight();
+  },
   mounted() {
     this.entityCopy = this.HaveJson(this.entity);
     this.entityCopy0 = this.HaveJson(this.entity);
@@ -480,6 +472,9 @@
     },
   },
   methods: {
+    getTableHeight() {
+      this.tableHeight = window.innerHeight -50 -46 - 63 - 80 - 41 -30 -30 -32;
+    },
     getData() {
         if (this.currentTable == "value0") {
             console.log('value0');
@@ -505,13 +500,13 @@
     pagination({ page, limit }) {
       this.page.current = page;
       this.page.size = limit;
-      this.getList();
+      this.getData();
     },
    // 杩斿洖鍒嗛〉鍊�
    pagination1({ page, limit }) {
       this.page1.current = page;
       this.page1.size = limit;
-      this.getList();
+      this.getData();
     },
     refresh() {
       this.entity = {
diff --git a/src/views/performance/staffEvaluate/index.vue b/src/views/performance/staffEvaluate/index.vue
index bbfd6a3..68e4af3 100644
--- a/src/views/performance/staffEvaluate/index.vue
+++ b/src/views/performance/staffEvaluate/index.vue
@@ -42,7 +42,7 @@
         <el-radio-button v-hasPermi="['staffEvaluate:leaderRate:list']" label="leaderRate">缁勯暱璇勫垎</el-radio-button>
         <el-radio-button v-hasPermi="['staffEvaluate:supervisorRate:list']" label="supervisorRate">涓荤鎵撳垎</el-radio-button>
       </el-radio-group>
-      <el-button :loading="outLoading" size="small" type="primary" @click="handleDown">瀵� 鍑�</el-button>
+      <el-button :loading="outLoading" size="small" type="primary" @click="handleDown"  v-hasPermi="['staffEvaluate:evaluation:export']">瀵� 鍑�</el-button>
     </div>
 
     </basicContainer>

--
Gitblit v1.9.3