yangys
2025-09-15 d7eb1d1e959559e3a77ed825a6b73dc79dbb008a
替换上传文件不显示bug
已重命名2个文件
已修改2个文件
166 ■■■■■ 文件已修改
src/views/wel/components/ReplaceLeft.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/wel/components/ReplaceRightTop.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/views/wel/shemi.vue 119 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/wel/todolist.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/wel/components/ReplaceLeft.vue
ÎļþÃû´Ó src/views/wel/components/TodolistLeft.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相同,按照name的降序
                    //return a.name - b.name
                    return a.name.localeCompare(b.name)
                }else{
                    return b.program - a.program
                }
            });
            return data;
        },
        addApp() {
            this.appDialog = true;
        },
src/views/wel/components/ReplaceRightTop.vue
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>');
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;