From 9ff7d57765b1eb3704b9425819cdb9c5708e0ab1 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 14 八月 2025 22:53:32 +0800
Subject: [PATCH] 错误捕获
---
src/views/flow/components/TodolistLeft.vue | 107 +++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 87 insertions(+), 20 deletions(-)
diff --git a/src/views/flow/components/TodolistLeft.vue b/src/views/flow/components/TodolistLeft.vue
index 5302b8f..df27174 100644
--- a/src/views/flow/components/TodolistLeft.vue
+++ b/src/views/flow/components/TodolistLeft.vue
@@ -1,71 +1,103 @@
<!--
* @Date: 2025-07-01 20:45:15
* @LastEditors: gaoshp
- * @LastEditTime: 2025-08-02 13:57:52
+ * @LastEditTime: 2025-08-13 23:23:13
* @FilePath: /mdmweb/src/views/flow/components/TodolistLeft.vue
-->
<template>
<basic-container>
- <div class="tool" v-show="row.taskDefinitionKey === 'programmingTask'">
- <avue-form :option="attOption"
- v-model="attForm"
- :upload-after="uploadAfter"></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="绋嬪簭鍚嶇О">
+ <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'"><FolderOpened /></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="100">
- <template #default="scope" v-show="row.taskDefinitionKey === 'programmingTask'">
- <el-button type="text" size="small" @click.stop="del(scope.$index,scope.row)">鍒犻櫎</el-button>
+ <el-table-column fixed="right" label="鎿嶄綔" width="100" align="center">
+ <template #default="scope" >
+ <a style="color: blue;margin-right: 4px;cursor: pointer;font-size: 12px;" v-show="['programmingTask','cureProgramTask','repalceProgrammingTask'].includes(row.taskDefinitionKey)" type="text" size="small" @click.stop="del(scope.$index,scope.row)">鍒犻櫎</a>
+ <a style="color: blue;cursor: pointer;font-size: 12px;" type="text" size="small" @click.stop="downloadFile(scope.$index,scope.row)">涓嬭浇</a>
</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,
emptyBtn: false,
+ 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',
},
}
]
@@ -123,8 +155,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)
@@ -172,6 +206,11 @@
this.$emit('selection-change',this.tableData)
},
showContent (row, column, event) {
+ if(!row?.id) {
+ this.showContentId = ''
+ return this.appContent = '';
+ }
+ this.showContentId = row.id
getContent(row.id).then(res => {
if(res.data.code === 200) {
this.appContent = res.data.data
@@ -181,6 +220,10 @@
})
},
del (index,row) {
+ if(row.id === this.showContentId) {
+ this.showContentId = '';
+ this.showContent(null, null, null);
+ }
removeAtt(row.id).then(res => {
if(res.data.code === 200) {
this.$message.success('鍒犻櫎鎴愬姛');
@@ -189,6 +232,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();
+ });
}
},
}
@@ -211,4 +267,15 @@
max-height: 400px;
white-space: pre-wrap;
}
+
+</style>
+<style lang="scss">
+ .att-box {
+ .el-form-item--default {
+ margin-bottom: 0;
+ }
+ .avue-form__menu--center {
+ display: none;
+ }
+ }
</style>
\ No newline at end of file
--
Gitblit v1.9.3