From 96258d844aa1a8dfa62a77aaa33d3ff9b953d36f Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期三, 13 八月 2025 22:58:13 +0800
Subject: [PATCH] 添加下载

---
 src/views/flow/components/TodolistLeft.vue |   76 ++++++++++++++++++++++++++++---------
 1 files changed, 57 insertions(+), 19 deletions(-)

diff --git a/src/views/flow/components/TodolistLeft.vue b/src/views/flow/components/TodolistLeft.vue
index 3d96254..2c21bfd 100644
--- a/src/views/flow/components/TodolistLeft.vue
+++ b/src/views/flow/components/TodolistLeft.vue
@@ -1,58 +1,69 @@
 <!--
  * @Date: 2025-07-01 20:45:15
  * @LastEditors: gaoshp
- * @LastEditTime: 2025-08-06 20:40:36
+ * @LastEditTime: 2025-08-13 22:56:43
  * @FilePath: /mdmweb/src/views/flow/components/TodolistLeft.vue
 -->
 <template>
     <basic-container>
-        <div class="tool" v-show="['programmingTask','cureProgramTask'].includes(row.taskDefinitionKey)">
-            <avue-form :option="attOption"
-             v-model="attForm"
-             :upload-after="uploadAfter" class="att-box"></avue-form>
+        <div class="tool" v-show="['programmingTask','cureProgramTask','repalceProgrammingTask'].includes(row.taskDefinitionKey)">
+             <el-button type="primary" plain @click="addApp">娣诲姞鏂囦欢
+                </el-button>
         </div>
         <el-table :data="tableData" border @row-click="showContent" max-height="200">
             <!-- <el-table-column prop="machineCode" label="鍔犲伐鏈哄簥">
             </el-table-column> -->
+			<el-table-column type="index" label="#" width="40" align="center"/>
             <el-table-column prop="name" label="绋嬪簭鍚嶇О">
             </el-table-column>
-            <el-table-column fixed="right" label="鎿嶄綔" width="60" align="center">
+            <el-table-column fixed="right" label="鎿嶄綔" width="150" align="center">
             <template #default="scope" >
-                <el-button v-show="['programmingTask','cureProgramTask'].includes(row.taskDefinitionKey)" type="text" size="small" @click.stop="del(scope.$index,scope.row)">鍒犻櫎</el-button>
+                <el-button v-show="['programmingTask','cureProgramTask','repalceProgrammingTask'].includes(row.taskDefinitionKey)" type="text" size="small" @click.stop="del(scope.$index,scope.row)">鍒犻櫎</el-button>
+                <el-button type="text" size="small" @click.stop="downloadFile(scope.$index,scope.row)">涓嬭浇</el-button>
             </template>
             </el-table-column>
         </el-table>
         <h4>绋嬪簭鍐呭</h4>
         <div v-html="appContent" class="app-content">
         </div>
-        <el-dialog title="绋嬪簭閫夋嫨" v-model="appDialog" width="50%" v-if="appDialog">
-            <avue-crud :option="optionApp" v-model="form" v-model:page="page" ref="crud" :data="appData"
-                @current-change="currentChange" @size-change="sizeChange"
-                @on-load="onLoad" @selection-change="selectionChange">
-                <template #search="{ }"></template>
-                <template #search-menu="{ }"></template>
-            </avue-crud>
-            <div slot="footer" class="dialog-footer">
+        <el-dialog title="绋嬪簭閫夋嫨" v-model="appDialog" width="400" v-if="appDialog">
+            <avue-form :option="attOption"
+             v-model="attForm"
+             :upload-after="uploadAfter" class="att-box"></avue-form>
+            <!-- <div slot="footer" class="dialog-footer">
                 <el-button @click="appDialog = false">鍙� 娑�</el-button>
                 <el-button type="primary" @click="add">纭� 瀹�</el-button>
-            </div>
+            </div> -->
         </el-dialog>
     </basic-container>
 </template>
 
 <script>
 import { getAppList,getSelectedAppList,getContent,removeAtt} from '@/api/flow/todolist';
+import { exportBlob } from '@/api/common';
+import { getToken } from '@/utils/auth';
+import NProgress from 'nprogress';
+import { downloadXls } from '@/utils/util';
 export default {
     props: {
         row: {
             type: Object,
         }
     },
+    watch: {
+        'attForm.fileType': {
+            handler(newVal) {
+                this.attOption.column[1].data.fileType = newVal;
+            },
+            immediate: true,
+        },
+    },
     data() {
         return {
             showContentId: '',
             attForm: {
                 att: '',
+                fileType: 'program'
             }, //绋嬪簭涓婁紶琛ㄥ崟
             attOption: {
                 submitBtn: false,
@@ -60,14 +71,26 @@
                 menu: false,
                 column: [
                     {
-                        label: '娣诲姞绋嬪簭',
+                        label: '鏂囦欢绫诲瀷',
+                        prop: 'fileType',
+                        type: 'select',
+                        span: 24,
+                        clearable: false,
+                        dicData: [
+                            { label: '绋嬪簭鏂囦欢', value: 'program' },
+                            { label: '鍏朵粬鏂囦欢', value: 'other' },
+                        ],
+                    },
+                    {
+                        label: '娣诲姞鏂囦欢',
                         prop: 'att',
                         type: 'upload',
                         multiple: true,
                         action: '/api/blade-mdm/flow/mgr/ncupload',
                         span: 24,
                         data: {
-                            processInstanceId: this.row.processInstanceId
+                            processInstanceId: this.row.processInstanceId,
+                            fileType: 'program',
                         },
                     }
                 ]
@@ -125,8 +148,10 @@
         uploadAfter(res, done, loading, column) {
             if (res.code === 200) {
                 this.getAttList();
-                this.$message.success('涓婁紶鎴愬姛');
+                this.$message.success(res.msg || '涓婁紶鎴愬姛');
                 this.attForm.att = '';
+                this.attForm.fileType = 'program'
+                this.appDialog = false
                 return done();
             } else {
                 console.log(res)
@@ -200,6 +225,19 @@
                     this.$message.error('鍒犻櫎澶辫触');
                 }
             })
+        },
+        downloadFile(index,row) {
+            NProgress.start();
+            exportBlob(
+                `/blade-mdm/flow/mgr/down-flow-file?id=${row.id}`
+            ).then(res => {
+                console.log(res)
+                if(res.status !== 200) {
+                    return this.$message.error(res.msg);
+                } 
+                downloadXls(res.data, `${row.name}`);
+                NProgress.done();
+            });
         }
     },
 }

--
Gitblit v1.9.3