From f71832a6389efa2f851b8b7bd7a615ed2d3250e4 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期四, 28 三月 2024 13:16:16 +0800
Subject: [PATCH] 完成模具页面

---
 src/views/common/ztt-table.vue |  117 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 86 insertions(+), 31 deletions(-)

diff --git a/src/views/common/ztt-table.vue b/src/views/common/ztt-table.vue
index 6367bee..4fc75c2 100644
--- a/src/views/common/ztt-table.vue
+++ b/src/views/common/ztt-table.vue
@@ -149,11 +149,8 @@
         v-bind="$attrs"
         v-on="$listeners"
         :highlight-current-row="true"
-        :row-key="
-          (row) => {
-            return row.id
-          }
-        "
+        :row-key="rowKey"
+        :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
         @row-dblclick="dbClickRow"
         @row-contextmenu="contextMenu"
         @header-click="headClick"
@@ -168,7 +165,7 @@
         :span-method="objectSpanMethod"
         :header-cell-style="tableHeaderStyle"
         v-adaptive="{ bottomOffset: bottomOffset, fixedHeight: fixedHeight }"
-        height="100px"
+        height="300px"
         :class="[
           'commonTable',
           isGeneralSearch && !isEdit
@@ -186,6 +183,7 @@
           v-if="options.multiSelect && !isEdit"
           style="width: 55px;"
           :selectable="selectHandle"
+
         >
         </el-table-column>
         <!--鍗曢�夋-->
@@ -249,6 +247,7 @@
             :show-overflow-tooltip="!item.noShowTip"
             :width="inMemoryColWidth[item.prop] || item.width"
             :prop="item.prop"
+            align="center"
           >
             <template slot="header" slot-scope="scope">
               <template v-if="item.isSearch">
@@ -327,8 +326,13 @@
               <template v-else>
                 <template v-if="!item.render">
                   <template v-if="item.formatter">
-                    <span v-if="item.isTag" style="text-align: center;">
-                      <el-tag style="width:50px;margin: 3px;" :type="scope.row[item.prop] == 0 ? 'success' : 'info'">
+                    <span v-if="item.isTag&&scope.row[item.prop]!=null" style="text-align: center;">
+                      <el-tag style="width:60px;margin: 3px;" :type="scope.row[item.prop] == 0 ? 'success' : 'info'">
+                        <span v-html="item.formatter(scope.row, item, scope.row[item.prop])"></span>
+                      </el-tag>
+                    </span>
+                    <span v-if="item.isTags&&scope.row[item.prop]!=null" style="text-align: center;">
+                      <el-tag style="width:60px;margin: 3px;" :type="scope.row[item.prop] == '姝e父' ? 'success' : (scope.row[item.prop] == '寮傚父'?'warning':(scope.row[item.prop] == '杩斾慨'?'danger':'info'))">
                         <span v-html="item.formatter(scope.row, item, scope.row[item.prop])"></span>
                       </el-tag>
                     </span>
@@ -401,6 +405,7 @@
         @size-change="sizeChangeHandle"
         :page-sizes="[10, 20, 50, 100]"
         :page-size="pagination.pageSize"
+        :page-count="pagination.size"
         :layout="
           size
             ? 'total, prev, pager, next'
@@ -507,11 +512,12 @@
             >
               <i class="el-icon-upload"></i>
               <div class="el-upload__text"><em>鐐瑰嚮瀵煎叆鏁版嵁</em></div>
-              <div class="el-upload__tip" slot="tip">
+              <div class="el-upload__tip" slot="tip" >
                 鍙兘涓婁紶xlsx/xls鏂囦欢锛屼笖涓嶈秴杩�10M<el-button
                   type="text"
-                  style="font-size:12px;"
-                  @click="downDataTemplate"
+                  style="font-size:14px;text-decoration: underline;"
+                  @click="downDataTemplate(uploadInfo.fileName)"
+                  v-if="uploadInfo.download"
                   >涓嬭浇妯℃澘</el-button
                 >
               </div>
@@ -563,6 +569,23 @@
   name: 'TTable',
   components: { exSlot, advancedSearchDialog, zttdraggable },
   props: {
+    rowKey: {
+      type: String,
+      default: ()=>{
+        return 'id'
+      }
+    },
+    //闇�瑕佸悎骞剁殑瀛楁闆嗗悎
+    mergeSpanArr: {
+        type: Array,
+        default: ()=>{
+            return []
+        }
+    },
+    toolbarMaxLength: {
+      type: Number,
+      default: 5,
+    },
     // 琛ㄦ牸鍨嬪彿锛歮ini,medium,small
     tableSize: { type: String, default: 'small' },
     // 鏁版嵁璇锋眰鏂规硶
@@ -716,6 +739,7 @@
         currentPage:
           this.table.currentPage == null ? 1 : this.table.currentPage,
         pageSize: this.table.pageSize == null ? 20 : this.table.pageSize,
+        size: this.table.size == null ? 7 : this.table.size,
         total: this.table.total == null ? 0 : this.table.total
       }, // 鍒嗛〉淇℃伅
       inMemoryColWidth: {}, // 璁板繂涓垪瀹斤紝榛樿鍒楀
@@ -749,11 +773,11 @@
       return colList
     },
     getToolBarBtn() {
-      return this.table.toolbar ? this.table.toolbar.slice(0, 5) : []
+      return this.table.toolbar ? this.table.toolbar.slice(0, this.toolbarMaxLength) : []
     },
     getToolbarDown() {
-      return this.getToolBarBtn.length === 5
-        ? this.table.toolbar.slice(5, this.table.toolbar.length)
+      return this.getToolBarBtn.length == this.toolbarMaxLength
+        ? this.table.toolbar.slice(this.toolbarMaxLength, this.table.toolbar.length)
         : []
     },
     isRefreshBtn() {
@@ -918,22 +942,41 @@
     },
     objectSpanMethod({ row, column, rowIndex, columnIndex }) {
       if (this.options.tableCellMerge) {
-        let result = ''
-        this.$emit(
-          'objectSpanMethod',
-          row,
-          column,
-          rowIndex,
-          columnIndex,
-          (val) => {
-            if (val) {
-              result = val
+        const propName = column.property
+        if (propName) {
+            if(this.mergeSpanArr.includes(propName)){
+                if (rowIndex > 0 && row[propName] === this.tableData[rowIndex - 1][propName]) {
+                    return { rowspan: 0, colspan: 0 };
+                } else {
+                    let rowspan = 1;
+                    for (let i = rowIndex + 1; i < this.tableData.length; i++) {
+                        if (this.tableData[i][propName] === row[propName]) {
+                            rowspan++;
+                        } else {
+                            break;
+                        }
+                    }
+                    return { rowspan: rowspan, colspan: 1 };
+                }
             }
-          }
-        )
-        if (result) {
-          return result
         }
+        // let result = ''
+        // this.$emit(
+        //   'objectSpanMethod',
+        //   row,
+        //   column,
+        //   rowIndex,
+        //   columnIndex,
+        //   (val) => {
+        //     console.log(val);
+        //     if (val) {
+        //       result = val
+        //     }
+        //   }
+        // )
+        // if (result) {
+        //   return result
+        // }
       }
     },
     getDataList(selectedId) {
@@ -963,6 +1006,7 @@
       return this.doCallback(this.ajaxFun, arr, selectedId)
     },
     doCallback(fn, args, selectedId) {
+      this.tableData=[]
       return fn
         .apply(this, args)
         .then((response) => {
@@ -1398,7 +1442,6 @@
             }
           }
         }
-        console.log(this.multipleSelection)
         this.$emit('handleSelectionChange', this.multipleSelection)
       } else {
         this.multipleSelection = val
@@ -1533,7 +1576,6 @@
           }
         }
       }
-      console.log(this.columnList);
       this.tableKey = Math.random()
       // this.$forceUpdate();
       const currPathColumnOrder = this.currPath + '_column'
@@ -1575,10 +1617,19 @@
       if (response.code != '0') {
         this.$message.warning(response.msg)
       } else {
+      if(response.data!=""&&response.data!=[]&&response.data!=null){
+        this.$message({
+          message: response.data,
+          type: 'success',
+          dangerouslyUseHTMLString: true,
+        })
+      }else{
         this.$message({
           message: '涓婁紶鎴愬姛',
           type: 'success'
         })
+      }
+        this.importDialogVisible=false
         this.getDataList()
       }
       this.$refs.uploadScan.clearFiles()
@@ -1602,7 +1653,11 @@
         const blob = new Blob([response.data], {
           type: 'application/force-download'
         })
-        const filename = decodeURI('妯℃澘鏂囦欢.xlsx')
+        let fileName="妯℃澘鏂囦欢";
+        if(this.uploadInfo.fileName!=undefined&&this.uploadInfo.fileName!=''&&this.uploadInfo.fileName!=null){
+            fileName=this.uploadInfo.fileName
+        }
+        const filename = decodeURI(fileName+'.xlsx')
         // 鍒涘缓涓�涓秴閾炬帴锛屽皢鏂囦欢娴佽祴杩涘幓锛岀劧鍚庡疄鐜拌繖涓秴閾炬帴鐨勫崟鍑讳簨浠�
         const elink = document.createElement('a')
         elink.download = filename

--
Gitblit v1.9.3