From 44b9294c347f4f45aae673a35f9a4b9b71f59572 Mon Sep 17 00:00:00 2001 From: gaoshp <291585735@qq.com> Date: 星期二, 22 七月 2025 22:41:29 +0800 Subject: [PATCH] Merge branch 'master' of http://www.beijingsoft.cn:9090/r/mdmweb --- src/views/flowmgr/processQuery.vue | 208 +++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 159 insertions(+), 49 deletions(-) diff --git a/src/views/flowmgr/processQuery.vue b/src/views/flowmgr/processQuery.vue index db902c0..b6060b8 100644 --- a/src/views/flowmgr/processQuery.vue +++ b/src/views/flowmgr/processQuery.vue @@ -1,35 +1,45 @@ <!-- * @Date: 2025-06-18 09:17:09 * @LastEditors: gaoshp - * @LastEditTime: 2025-07-20 20:48:15 + * @LastEditTime: 2025-07-22 22:39:59 * @FilePath: /mdmweb/src/views/flowmgr/processQuery.vue --> <template> <basic-container> <avue-crud :option="option" :table-loading="loading" :data="data" v-model:page="page" v-model="form" ref="crud" @search-change="searchChange" @search-reset="searchReset" @current-change="currentChange" - @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad" @selection-change="selectionChange"> + @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad" + @selection-change="selectionChange"> <template #menu-left> <!-- <el-button type="primary" plain @click="exportWebSite">瀵煎嚭鍥炰紶娑夊瘑缃�</el-button> --> <!-- <el-button type="primary" plain @click="reassign">鎸傝浇杞﹀簥绋嬪簭搴�</el-button> --> <!-- <el-button type="primary" plain @click="exportExcel">瀵煎嚭鍒癊XCEL</el-button> --> + <el-button type="primary" plain @click="reassign">閲嶆柊鎸囨淳 + </el-button> </template> <template #menu="scope"> - <el-button type="danger" text size="default" - @click.stop="handleAction(scope.row, scope.index, 0)">鍒犻櫎 + <el-button type="danger" text size="default" @click.stop="handleAction(scope.row, scope.index, 0)">鍒犻櫎 + </el-button> + <el-button type="danger" text size="default" v-if="scope.row.processDefinitionKey = 'dispatch'" + @click.stop="handleAction(scope.row, scope.index, 1)">瀹℃壒琛ㄦ墦鍗� </el-button> </template> </avue-crud> + <el-dialog title="鎸囨淳" append-to-body v-model="reassignBox" width="30%"> + <avue-form ref="reassginform" :option="reassignOption" v-model="reassignForm" + @submit="toPerson"></avue-form> + </el-dialog> </basic-container> </template> <script> -import { getList, deleteRow } from '@/api/flowmgr/processQuery.js'; -import { exportBlob } from '@/api/common'; -import { getToken } from '@/utils/auth'; +import { getList, deleteRow, printRow } from '@/api/flowmgr/processQuery.js'; +import { getAssignee, reassgin } from '@/api/flow/todolist'; +import { exportBlobPost } from '@/api/common'; import NProgress from 'nprogress'; -import { downloadXls } from '@/utils/util'; +import { downloadFile } from '@/utils/util'; import 'nprogress/nprogress.css'; + export default { name: 'MachineReturnFileOp', data() { @@ -58,21 +68,21 @@ border: true, index: true, selection: true, - + menuWidth: 200, // menu: false, dialogClickModal: false, column: [ { label: '娴佺▼绫诲瀷', - prop: '', + prop: 'processDefinitionKey', search: true, searchType: 'select', hide: true, dicUrl: `/blade-system/dict/dictionary?code=flow`, props: { label: 'dictValue', - value: 'dictKey', + value: 'remark', }, }, { @@ -93,28 +103,32 @@ hide: true, }, { - label: '娴佺▼妯$増', - prop: '', - }, - { label: '鏈哄簥', prop: '', - }, - { - label: '鏍囬', - prop: '', + render: ({ row }) => { + return h('p', + { + attrs: {}, + class: {}, + style: {}, + }, row?.variables?.machineCode) + } }, { label: '鍒涘缓浜�', prop: 'startUserName', }, { - label: '缂栧埗', - prop: '', - }, - { label: '宸ュ簭鍚嶇О', prop: '', + render: ({ row }) => { + return h('p', + { + attrs: {}, + class: {}, + style: {}, + }, row?.variables?.processName) + } }, { label: '鍔犲伐杞﹂棿', @@ -129,24 +143,121 @@ prop: 'taskName', }, ], - selectedList: [], - } + + }, + selectedList: [], + reassignBox: false, + reassignForm: {}, + reassignOption: { + submitBtn: true, + emptyBtn: false, + column: [ + { + label: '鍙戦�佺粰', + prop: 'newAssigneeId', + type: 'select', + // dicUrl: `/blade-mdm/flow/flow-user-list?deptId=0`, + // dicFlag: true, + props: { + label: 'name', + value: 'id', + }, + span: 24, + disabled: false, + dicData: [ + + ], + rules: [{ required: true, message: '璇疯緭鍏ラ�夋嫨', trigger: 'blur' }], + }, + { + label: '澶囨敞', + span: 24, + prop: 'comment', + type: 'textarea', + rules: [{ required: true, message: '璇疯緭鍏ュ鎵规剰瑙�', trigger: 'blur' }], + }, + ], + }, } }, + mounted() { + getAssignee().then(res => { + this.reassignOption.column[0].dicData = res.data.data; + }) + }, methods: { - handleAction (row, index, flag) { - // 澶勭悊鎺ュ彈鎴栨嫆缁濇搷浣� - let ids = [row.id].toString(); - this.$confirm('纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning', - }) - .then(() => { - deleteRow({processInstanceId: row.processInstanceId}) - }) + reassign() {// 閲嶆柊鎸囨淳 + console.log(this.selectedList.length) + if (this.selectedList.length === 0) { + this.$message.warning('璇烽�夋嫨闇�瑕侀噸鏂版寚娲剧殑浠诲姟'); + return; + } + if (this.selectedList.length > 1) { + this.$message.warning('璇烽�夋嫨涓�鏉�'); + return; + } + this.reassignBox = true; }, - selectionChange (list) { + toPerson(form, done) { + this.$confirm('璇风‘璁ゆ槸鍚︽寚娲�', '', { + confirmButtonText: this.$t('submitText'), + cancelButtonText: this.$t('cancelText'), + type: 'warning', + }).then(() => { + console.log('toPerson', form); + reassgin({ + ...form, + taskId: this.transferTaskSelection[0].taskId, + processInstanceId: this.transferTaskSelection[0].processInstanceId, + }).then(res => { + this.$message.success('鎸囨淳鎴愬姛'); + this.reassignBox = false; + this.$refs?.reassginform?.resetForm(); + this.onLoad(this.page, this.query); + + }).catch(err => { + console.error(err); + }) + }); + done(); + }, + handleAction(row, index, flag) { + if (flag === 0) { + // 澶勭悊鎺ュ彈鎴栨嫆缁濇搷浣� + let ids = [row.id].toString(); + this.$confirm('纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(() => { + deleteRow({ processInstanceId: row.processInstanceId }) + }) + } else if (flag === 1) { + printRow({ processInstanceId: row.processInstanceId }) + this.$confirm('鏄惁瀵煎嚭?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }).then(() => { + console.log(this.selection) + NProgress.start(); + exportBlobPost( + `/blade-mdm/flow/mgr/export-approve-table`, + { processInstanceId: row.processInstanceId }, + { processInstanceId: row.processInstanceId }, + ).then(res => { + let name = res.headers['content-disposition'].split('filename=')[1] + console.log(res.headers['content-disposition'].split('filename=')[1]); + downloadFile(res.data, `瀹℃壒鎵撳嵃-${name}`); + NProgress.done(); + }); + }); + } + + }, + selectionChange(list) { + console.log('selectionChange', list); this.selectedList = list; }, // exportWebSite() { @@ -206,6 +317,8 @@ data = { createTimeBegin: params.createTimeBegin, createTimeEnd: params.createTimeEnd, + keyword: params.keyword || '', + processDefinitionKey: params.processDefinitionKey || '' } this.query = data this.onLoad(this.page, data); @@ -213,12 +326,13 @@ }, searchReset() { let data = {} - this.query = params; + this.query = data; this.page.currentPage = 1; data = { createTimeBegin: params.createTimeBegin, createTimeEnd: params.createTimeEnd, - keyword: params.keyword || '' + keyword: params.keyword || '', + processDefinitionKey: params.processDefinitionKey || '' } this.onLoad(this.page, data); done(); @@ -237,19 +351,15 @@ */ onLoad(page, params = {}) { console.log('onLoad', page, params); - const query = { + const data = { ...this.query, - // category: params.category ? flowCategory(params.category) : null, - mode: this.mode, + createTimeBegin: params.createTimeBegin, + createTimeEnd: params.createTimeEnd, + keyword: params.keyword || '', + processDefinitionKey: params.processDefinitionKey || '' }; - try { - delete query.confirmTime; // 鍒犻櫎涓嶅繀瑕佺殑鏌ヨ鏉′欢 - } catch (error) { - console.error('鏃ユ湡鏍煎紡鍖栭敊璇�', error); - } - this.loading = true; - getList(page.currentPage, page.pageSize, Object.assign(query, params)).then(res => { + getList(page.currentPage, page.pageSize, Object.assign(data, params)).then(res => { const data = res.data.data; this.page.total = data.total; this.data = data.records; -- Gitblit v1.9.3