From d7eb1d1e959559e3a77ed825a6b73dc79dbb008a Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 15 九月 2025 01:19:26 +0800
Subject: [PATCH] 替换上传文件不显示bug

---
 src/views/wel/components/ReplaceLeft.vue     |   35 ++++++++++-
 src/views/wel/components/ReplaceRightTop.vue |    0 
 src/views/wel/shemi.vue                      |  119 +++++++++++++++++++--------------------
 src/views/wel/todolist.vue                   |   12 ++--
 4 files changed, 96 insertions(+), 70 deletions(-)

diff --git a/src/views/wel/components/TodolistLeft.vue b/src/views/wel/components/ReplaceLeft.vue
similarity index 82%
rename from src/views/wel/components/TodolistLeft.vue
rename to src/views/wel/components/ReplaceLeft.vue
index 84d2316..ff53a4f 100644
--- a/src/views/wel/components/TodolistLeft.vue
+++ b/src/views/wel/components/ReplaceLeft.vue
@@ -2,16 +2,33 @@
  * @Date: 2025-07-01 20:45:15
  * @LastEditors: 鏉庡枂(寮�鍙戠粍) lzhe@yxqiche.com
  * @LastEditTime: 2025-08-11 10:35:59
- * @FilePath: /mdmweb/src/views/flow/components/TodolistLeft.vue
+ * @FilePath: /mdmweb/src/views/flow/components/ReplaceLeft.vue
 -->
 <template>
     <basic-container>
         <div class="tool">
             <el-button type="primary" plain @click="addApp">娣诲姞鏂囦欢</el-button>
         </div>
-        <el-table :data="tableData" border @row-click="showContent" max-height="200">
+        <el-table :data="tableData" :row-style="{height:'20px'}" :cell-style="{padding:'0px'}" border @row-click="showContent" max-height="380" highlight-current-row>
             <el-table-column type="index" label="#" width="40" align="center"/>
             <el-table-column prop="name" label="绋嬪簭鍚嶇О">
+                <template #default="{ row }">
+                    <div style="display: flex;align-items: center;">
+                        <span style="margin-right: 8px;">{{ row.name }}</span>
+                        <el-icon v-if="row.fileType === 'other'">
+                            <el-tooltip class="box-item" effect="light" content="鍏朵粬鏂囦欢"  placement="right">
+                            <FolderOpened />
+                            </el-tooltip>
+                        </el-icon>
+                        <el-icon v-if="row.fileType === 'program'">
+                            <el-tooltip class="box-item" effect="light" content="绋嬪簭鏂囦欢"  placement="right">
+                                <Tickets/>
+                            </el-tooltip>
+                        </el-icon>
+                        
+                        <!--<img v-else src="./app.jpg" alt="" width="16" height="16">-->
+                    </div>
+                </template>
             </el-table-column>
             <el-table-column fixed="right" label="鎿嶄綔" width="60" align="center">
             <template #default="scope" >
@@ -127,6 +144,7 @@
         }
     },
     mounted() {
+
         this.getAttList();
         this.onLoad(this.page);
     },
@@ -165,11 +183,22 @@
                     this.$message.error('鑾峰彇宸查�夌▼搴忓け璐�');
                     return;
                 } else {
-                    this.tableData = res.data.data || [];
+                    this.tableData = this.sortTable(res.data.data || []);
                 }
                 // this.$emit('selection-change',this.tableData)
             })
         },
+        sortTable(data) {
+           data.sort(function(a,b){
+                if(a.program === b.program){//濡傛灉program鐩稿悓锛屾寜鐓ame鐨勯檷搴�
+                    //return a.name - b.name
+                    return a.name.localeCompare(b.name)
+                }else{
+                    return b.program - a.program
+                }
+            });
+            return data;
+        },
         addApp() {
             this.appDialog = true;
         },
diff --git a/src/views/wel/components/TodolistRightTop.vue b/src/views/wel/components/ReplaceRightTop.vue
similarity index 100%
rename from src/views/wel/components/TodolistRightTop.vue
rename to src/views/wel/components/ReplaceRightTop.vue
diff --git a/src/views/wel/shemi.vue b/src/views/wel/shemi.vue
index fdd59b0..fc180ea 100644
--- a/src/views/wel/shemi.vue
+++ b/src/views/wel/shemi.vue
@@ -43,6 +43,7 @@
        
         <template #name="{ row }">
           <span>{{ row.name }}</span>
+          <el-tag v-if="row.nodeType == 60" size="mini" effect="plain">v{{ row.versionNumber }}</el-tag>
           
           <el-button class="treebtn" :size="size" text v-if="permission.replace_button && row.nodeType == 60 && row.parentIds.indexOf('0,1,') > -1"
             icon="el-icon-switch" type="primary" @click="replacement(row)" placeholder="鏇挎崲" title="鏇挎崲"></el-button>
@@ -101,7 +102,7 @@
       </template> -->
         <template #name="{ row }">
           <span>{{ row.name }}</span>
-          
+          <el-tag v-if="row.nodeType == 60" size="mini" effect="plain">v{{ row.versionNumber }}</el-tag>
           <!-- 鏇挎崲  v-if="permission.auto_dispatch"-->
           <el-button class="treebtn" :size="size" text v-if="permission.replace_button && row.nodeType == 60 && row.parentIds.indexOf('0,1,') > -1"
             icon="el-icon-switch" type="primary" @click="replacement(row)" placeholder="鏇挎崲" title="鏇挎崲"></el-button>
@@ -166,15 +167,15 @@
     </div>
   </el-drawer>
   <!-- 鏇挎崲 -->
-  <el-drawer title="鏇挎崲" append-to-body v-model="todolistModel" size="100%" class="code-box">
+  <el-drawer title="鏇挎崲" append-to-body v-model="replaceModel" size="100%" class="code-box">
     <div class="approve-box">
       <div class="left">
-        <TodolistLeft :row="row" :replaceDataId="replaceDataId" :drawingNo="drawingNo" :processNo="processNo"
+        <ReplaceLeft ref="replaceLeft" v-if="replaceModel" :row="row" :replaceDataId="replaceDataId" :drawingNo="drawingNo" :processNo="processNo"
           :processEdition="processEdition" @selection-change="todoSelectionChange" />
       </div>
       <div class="right">
-        <TodolistRightTop :row="row" :name="name" />
-        <avue-form ref="form" :option="optionApprove" v-model="formApprove" @submit="handleSubmit" />
+        <ReplaceRightTop :row="row" :name="name" />
+        <avue-form ref="form" :option="optionApprove" v-model="formApprove" @submit="handleReplace" />
       </div>
     </div>
   </el-drawer>
@@ -186,16 +187,16 @@
 import debounce from 'lodash/debounce';
 
 import { ElMessage } from 'element-plus';
-import TodolistLeft from './components/TodolistLeft.vue';
-import TodolistRightTop from './components/TodolistRightTop.vue';
+import ReplaceLeft from './components/ReplaceLeft.vue';
+import ReplaceRightTop from './components/ReplaceRightTop.vue';
 import qs from 'qs';
 export default {
   components: {
-    TodolistLeft,
-    TodolistRightTop
+    ReplaceLeft,
+    ReplaceRightTop
   },
   data() {
-    let rejectText = '椹冲洖';//+this.row.categoryName;
+    
     return {
       size:'large',//鏍戦噷鎸夐挳鐨勫昂瀵�
       isSearch: null,
@@ -274,7 +275,7 @@
       },
       applist: [],
       row: {},
-      todolistModel: false,
+      replaceModel: false,
       diffBox: false,
       content1: "",
       content2: "",
@@ -883,7 +884,51 @@
     unlockCancel() {
       this.unlockBox = false;
     },
-    handleSubmit(form, done) {
+    replacement(row) {  //鏇挎崲
+      this.id = row.id;
+      this.formApprove = {
+        comment: '',
+        approve: 'Y', // 榛樿鍚�
+      }
+      //鍑嗗绋嬪簭鏇挎崲娴佺▼ 
+      axios({
+        url: '/blade-mdm/flow/replace/pre',
+        method: 'post',
+        params: { nodeId: row.id }
+      }).then(resp => {
+        this.row = row;
+
+        this.drawingNo = resp.data.data.drawingNo;
+        this.replaceDataId = resp.data.data.processInstanceId;
+        //console.log('replaceDataId',this.replaceDataId)
+        this.processNo = resp.data.data.processNo;
+        this.processEdition = resp.data.data.processEdition;
+       
+        this.formApprove.title = resp.data.data.name + "鏇挎崲";
+
+        this.getHandler(); //鑾峰彇澶勭悊浜�
+        this.$nextTick(() => {
+          //绛夊緟dom鏇存柊鍐嶆樉绀虹晫闈�
+          this.replaceModel = true;
+        })
+        
+      });
+    },
+    getHandler() {  //鑾峰彇澶勭悊浜�
+      axios({
+        url: '/blade-mdm/flow/replace/default-assignees',
+        method: 'get',
+        params: { drawingNo: this.drawingNo }
+      }).then(
+        resp => {
+          if (resp.data.code == 200) {
+            this.formApprove.assignee = resp.data.data.checkerId;
+          } else {
+            this.$message.success(resp.msg);
+          }
+        });
+    },
+    handleReplace(form, done) {
       //鍙戣捣绋嬪簭鏇挎崲娴佺▼
       var obj = {
         title: this.formApprove.title,
@@ -902,7 +947,7 @@
           message: '鎿嶄綔鎴愬姛!',
         });
         done();
-        this.todolistModel = false;
+        this.replaceModel = false;
       }).catch(error => {
         done();
       });
@@ -910,54 +955,6 @@
     },
     todoSelectionChange(applist) {
       this.applist = applist;
-    },
-    showReplaceDlg(row) {  //鏇挎崲瀵硅瘽妗�
-      
-      if (row.nodeType == 60) { //绋嬪簭鍖�
-        return;
-      }
-      //111
-      this.modalTitle = "鏂板瀛愯妭鐐�";
-      this.selectedColumn.parentId = row.id;
-      this.modalForm = this.selectedColumn;
-      
-      this.modalBox = true;
-    },
-    replacement(row) {  //鏇挎崲
-      this.id = row.id;
-      this.formApprove = {
-        comment: '',
-        approve: 'Y', // 榛樿鍚�
-      }
-      //鍑嗗绋嬪簭鏇挎崲娴佺▼ 
-      axios({
-        url: '/blade-mdm/flow/replace/pre',
-        method: 'post',
-        params: { nodeId: row.id }
-      }).then(resp => {
-        this.row = row;
-        this.replaceDataId = resp.data.data.processInstanceId;
-        this.processNo = resp.data.data.processNo;
-        this.processEdition = resp.data.data.processEdition;
-        this.drawingNo = resp.data.data.drawingNo;
-        this.formApprove.title = resp.data.data.name + "鏇挎崲";
-        this.getHandler(); //鑾峰彇澶勭悊浜�
-        this.todolistModel = true;
-      });
-    },
-    getHandler() {  //鑾峰彇澶勭悊浜�
-      axios({
-        url: '/blade-mdm/flow/replace/default-assignees',
-        method: 'get',
-        params: { drawingNo: this.drawingNo }
-      }).then(
-        resp => {
-          if (resp.data.code == 200) {
-            this.formApprove.assignee = resp.data.data.checkerId;
-          } else {
-            this.$message.success(resp.msg);
-          }
-        });
     },
     convertToHtml(text) {
       return text.replace(/\n/g, '<br>');
diff --git a/src/views/wel/todolist.vue b/src/views/wel/todolist.vue
index 190446f..3202d0f 100644
--- a/src/views/wel/todolist.vue
+++ b/src/views/wel/todolist.vue
@@ -19,10 +19,10 @@
         <el-drawer title="瀹℃壒" append-to-body v-model="approveBox" size="100%" v-if="approveBox">
             <div class="approve-box">
                 <div class="left">
-                    <TodolistLeft :row="row" @selection-change="selectionChange" />
+                    <ReplaceLeft :row="row" @selection-change="selectionChange" />
                 </div>
                 <div class="right">
-                    <TodolistRightTop :row="row" />
+                    <ReplaceRightTop :row="row" />
                     <avue-form ref="form" :option="optionApprove" v-model="formApprove" @submit="handleSubmit" />
                 </div>
             </div>
@@ -34,12 +34,12 @@
 import { getList, approve, getAssignee,reassgin } from '@/api/flow/todolist';
 import { mapGetters } from 'vuex';
 import dayjs from 'dayjs';
-import TodolistLeft from './components/TodolistLeft.vue';
-import TodolistRightTop from './components/TodolistRightTop.vue';
+import ReplaceLeft from './components/ReplaceLeft.vue';
+import ReplaceRightTop from './components/ReplaceRightTop.vue';
 export default {
     components: {
-        TodolistLeft,
-        TodolistRightTop
+        ReplaceLeft,
+        ReplaceRightTop
     },
     data() {
 	    let rejectText = '椹冲洖';//+this.row.categoryName;

--
Gitblit v1.9.3