From c8005d3f303be7241f5acdc10ad679e1bf8cd602 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期二, 24 十月 2023 11:16:29 +0800
Subject: [PATCH] 横向滚动条固定列bug

---
 Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue |  172 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 129 insertions(+), 43 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
index e3a85a7..376bd5f 100644
--- a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
+++ b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -6,7 +6,7 @@
           <div>
           </div>
           <el-row style="width: 100%;margin-bottom: 10px">
-            <div>
+            <div style="margin-bottom: 10px">
               <el-button v-for="(item, index) in masterVrBtnList"
                          v-if="!['PREVIEW', 'DELETEFILE', 'revisefile', 'DOWNLOADFILE', 'UPLOADFILE'].includes(item.uniqueFlag)"
                          :key="index" plain size="small"
@@ -17,7 +17,8 @@
               </el-button>
               <span v-if="tableHeadFindData.length > 0">
               <el-select slot="prepend" v-model="keyWordFind" placeholder="璇烽�夋嫨" size="small">
-                <el-option v-for="item in tableHeadFindData" :label="item.label" :value="item.prop"></el-option>
+                <el-option v-for="item in tableHeadFindData" :key="item.id" :label="item.label"
+                           :value="item.prop"></el-option>
               </el-select>
               <el-input v-model="WupinFindValue" placeholder="璇疯緭鍏ュ叧閿瓧鎸夊洖杞︽煡璇�"
                         size="small" style="width: 180px; margin-left: 5px; margin-top: 10px"
@@ -34,27 +35,50 @@
                 <el-option label="瀹℃牳涓�" value="Auditing"></el-option>
               </el-select></span>
             </div>
-            <el-table ref="dataTable" v-loading="isLoading" :data="tableData"
-                      :height="tableHeight"
-                      @select="handleSelection" @cell-click="handleCellClick" @row-click="handleRowClick"
-                      @select-all="handleSelectionAll" @selection-change="handleSelectionChange"
-                      @sort-change="sortChange">
-              <el-table-column v-if="tableData.length != 0" fixed type="selection" width="55"></el-table-column>
-              <el-table-column v-if="tableData.length != 0" fixed label="搴忓彿" type="index" width="55">
-              </el-table-column>
-              <el-table-column v-for="item in this.tableHeadFindData" :key="item.id" :formatter="item.formatter"
-                               :label="item.label"
-                               :prop="item.prop" :show-overflow-tooltip="true"
-                               :sortable="item.sortable"
-                               :width="item.width"
-                               v-if="!item.hidden"
-                               align="center">
-              </el-table-column>
-            </el-table>
+            <div class="custom-table">
+              <el-table class="cus-table" ref="dataTable" v-loading="isLoading" :data="tableData"
+                        :height="tableHeight"  border
+                        @select="handleSelection" @cell-click="handleCellClick" @row-click="handleRowClick"
+                        @select-all="handleSelectionAll" @selection-change="handleSelectionChange"
+                        @sort-change="sortChange">
+                <el-table-column v-if="tableData.length != 0" fixed type="selection" width="55"></el-table-column>
+                <el-table-column v-if="tableData.length != 0" fixed label="搴忓彿" type="index" width="55">
+                </el-table-column>
+                <!--              鐢熷懡鍛ㄦ湡-->
+                <el-table-column v-for="(item,index) in lcstatusArray" key="index" v-if=" lcstatusArray.length !== 0 && !item.hidden" label="鐢熷懡鍛ㄦ湡鍊�" prop="lcstatus"
+                                 :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width"
+                                 align="center">
+                  <template slot-scope="scope">
+                    <span>{{ scope.row.lcstatus_text }}</span>
+                  </template>
+                </el-table-column>
+                <!--              缂栧彿-->
+                <el-table-column  v-for="(item, index) in CodeArray" key="index" v-if="CodeArray.length !== 0 && !item.hidden" :label="item.label" :prop="item.prop"
+                                  :show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width"
+                                  align="center">
+                  <template slot-scope="scope">
+                    <el-link type="primary" @click="CodeLinkHandler(scope.row)">
+                      {{ scope.row[item.prop] }}
+                    </el-link>
+                  </template>
+                </el-table-column>
+                <el-table-column v-for="item in this.tableHeadFindData" v-if="!item.hidden && item.prop !== 'id' && item.prop !== 'lcstatus'"
+                                 :key="item.id"
+                                 :formatter="item.formatter"
+                                 :label="item.label" :prop="item.prop"
+                                 :show-overflow-tooltip="true"
+                                 :sortable="item.sortable"
+                                 :width="item.width"
+                                 align="center">
+                </el-table-column>
+
+              </el-table>
+            </div>
           </el-row>
           <!--          鏂板-->
-          <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
-                              :disabledProp="disabledProp" :templateOid="templateOid" :visible.sync="addvisible" :TreeValue="TreeValue"
+          <FormTemplateDialog :TreeValue="TreeValue" :codeClassifyOid="this.codeClassifyOid"
+                              :codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :templateOid="templateOid"
+                              :visible.sync="addvisible"
                               type="add"
                               @submit="AddSumbit">
           </FormTemplateDialog>
@@ -63,6 +87,12 @@
                               :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid" :title="'淇敼缂栫爜淇℃伅'"
                               :visible.sync="editvisible"
                               type="edit" @submit="EditSumbit"></FormTemplateDialog>
+          <!--          鏁版嵁璇︽儏-->
+          <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
+                               :rowOid="this.LinkObject.oid" :templateOid="templateOid"
+                              :title="'鏁版嵁璇︽儏'"
+                              :visible.sync="LinkVisible"
+                              type="detail"></FormTemplateDialog>
           <!--          宸插彂甯冩暟鎹慨鏀�-->
           <FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
                               :disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid"
@@ -117,7 +147,17 @@
   </basic-container>
 </template>
 <script>
-import {MasterTable, TableData, FindData, addSaveCode, editSaveCode, deleteCode, upSaveCode,applyGroupCode,receiveEditApply} from "@/api/GetItem";
+import {
+  MasterTable,
+  TableData,
+  FindData,
+  addSaveCode,
+  editSaveCode,
+  deleteCode,
+  upSaveCode,
+  applyGroupCode,
+  receiveEditApply
+} from "@/api/GetItem";
 import {processTS, changeStatus} from "@/api/template/setPersonnel"
 import {listCodeAttributeByClassId} from "@/api/integration/integration.js";
 import integrationTransfer from "@/views/integration/integrationTransfer";
@@ -155,7 +195,7 @@
     tableDataArray: {
       type: Array,
     },
-    TreeValue:{
+    TreeValue: {
       type: String,
       default: "",
     },
@@ -187,6 +227,13 @@
   },
   data() {
     return {
+      LinkVisible: false,
+      LinkObject: {}, // 缂栫爜鏁版嵁
+      LinkList: [],
+      isCodeArrayPushed: false, // 缂栫爜鏁扮粍娣诲姞鏍囪瘑鍙橀噺
+      CodeArray: [],
+      lcstatusArray:[],
+      islcstatusPushed:false,
       // 鐘舵�佹悳绱�
       statusSelect: "all",
       // 鍏抽敭瀛楁煡璇�
@@ -319,7 +366,6 @@
     },
     tableHeadFindData: {
       handler(newval, oldval) {
-        console.log('new',newval)
         newval.forEach((record, _index) => {
           if (record.queryField == 'id' && validatenull(record.templet)) {
             //浼佷笟缂栫爜鐨勯粯璁ゆ坊鍔犺秴閾炬帴,鏆傛湭瀹炵幇
@@ -340,6 +386,25 @@
           }
         })
         this.tableHeadFindDatas = newval;
+        // console.log('new',newval)
+        if (!this.isCodeArrayPushed) {
+          if (newval.find(item => item.prop === 'id')) {
+            this.CodeArray.push(newval.find(item => item.prop === 'id'));
+          } else {
+            this.CodeArray.push([]);
+          }
+          // console.log('CodeArray', this.CodeArray);
+          this.isCodeArrayPushed = true;
+        }
+        if (!this.islcstatusPushed) {
+          if (newval.find(item => item.prop === 'lcstatus')) {
+            this.lcstatusArray.push(newval.find(item => item.prop === 'lcstatus'));
+          } else {
+            this.lcstatusArray.push([]);
+          }
+          // console.log('lcstatusArray', this.lcstatusArray);
+          this.islcstatusPushed = true;
+        }
         // console.log('new',newval)
         this.WupinFindValue = ''
       },
@@ -365,6 +430,13 @@
     },
   },
   methods: {
+    CodeLinkHandler(row) {
+      this.LinkObject = row;
+      this.LinkVisible = true;
+      this.LinkList = Object.keys(row).map(property => property)
+      // console.log(result);
+      // console.log(this.LinkObject)
+    },
     //鐘舵�佹悳绱�
     cellSelectHandler(row) {
       if (row === 'all') {
@@ -428,16 +500,16 @@
       });
     },
     //鐢宠闆嗗洟鐮佹暟鎹�
-    applyGroupCode(){
-      if(this.selectRow.length <= 0){
+    applyGroupCode() {
+      if (this.selectRow.length <= 0) {
         this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹ā鏉匡紒')
-      }else {
+      } else {
         // const requestData = this.selectRow.forEach(item => {
         //   return { oids: item.oid, btmName: item.btmname };
         // });
         const oids = this.selectRow.map(item => item.oid).join(',');
-        applyGroupCode({ oids, btmName: this.selectRow[0].btmname }).then(res=>{
-          if(res.data.code==200){
+        applyGroupCode({oids, btmName: this.selectRow[0].btmname}).then(res => {
+          if (res.data.code == 200) {
             this.$message.success('鐢宠鎴愬姛')
           }
           this.onLoad()
@@ -445,16 +517,16 @@
       }
     },
     //鏇存柊闆嗗洟鐮佹暟鎹�
-    receiveEditApply(){
-      if(this.selectRow.length <= 0){
+    receiveEditApply() {
+      if (this.selectRow.length <= 0) {
         this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹ā鏉匡紒')
-      }else {
+      } else {
         // const requestData = this.selectRow.forEach(item => {
         //   return { oids: item.oid, btmName: item.btmname };
         // });
         const oids = this.selectRow.map(item => item.oid).join(',');
-        receiveEditApply({ oids, btmName: this.selectRow[0].btmname }).then(res => {
-          if(res.data.code==200){
+        receiveEditApply({oids, btmName: this.selectRow[0].btmname}).then(res => {
+          if (res.data.code == 200) {
             this.$message.success('鏇存柊鎴愬姛')
             this.onLoad()
           }
@@ -707,7 +779,7 @@
     },
     // 鎺掑簭
     sortChange(val) {
-      console.log(val)
+      // console.log(val)
       this.isLoading = true;
       let order = "";
       if (val.order == "ascending") {
@@ -866,15 +938,26 @@
 </script>
 
 <style lang="scss" scoped>
-.testbox {
-  .el-table--scrollable-x .el-table__body-wrapper {
-    overflow: auto !important;
-  }
-
-  .el-table__fixed-right-patch {
-    background-color: #f5f7fa !important;
-  }
+//鍥哄畾鍒楅珮搴�
+/deep/ .el-table__fixed {
+  height: calc(100vh - 370px)!important;
 }
+// 婊氬姩鏉℃牱寮忎慨鏀�
+// 婊氬姩鏉$殑瀹藉害
+/deep/ .el-table__body-wrapper::-webkit-scrollbar {
+  height: 15px; // 绾靛悜婊氬姩鏉� 蹇呭啓
+  background: white;
+  border: white;
+  width: 10px;
+
+}
+// 婊氬姩鏉$殑婊戝潡
+/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
+  background-color: #ececec;
+  border-radius: 20px;
+  border: #ececec;
+}
+
 
 .el-button {
   margin: 0 10px 10px 0;
@@ -900,4 +983,7 @@
   margin-top: 10px;
 }
 
+ .el-table__body-wrapper{
+  height: calc(100% - 44px) !important;
+}
 </style>

--
Gitblit v1.9.3