From ad01d0644484fb2577809c12f43e09c629632c94 Mon Sep 17 00:00:00 2001 From: gaoshp <291585735@qq.com> Date: 星期一, 16 六月 2025 23:15:23 +0800 Subject: [PATCH] 我的流程 --- src/api/flow/todolist.js | 15 +++ src/axios.js | 2 src/views/flow/todolist.vue | 169 +++++++++++++++++++++++++++--------------- 3 files changed, 124 insertions(+), 62 deletions(-) diff --git a/src/api/flow/todolist.js b/src/api/flow/todolist.js index c4591ae..4b0d67e 100644 --- a/src/api/flow/todolist.js +++ b/src/api/flow/todolist.js @@ -1,5 +1,11 @@ +/* + * @Date: 2025-06-12 22:38:05 + * @LastEditors: gaoshp + * @LastEditTime: 2025-06-16 22:42:32 + * @FilePath: /mdmweb/src/api/flow/todolist.js + */ import request from '@/axios'; -export const getLazyList = (current, size, params) => { +export const getList = (current, size, params) => { return request({ url: '/blade-mdm/flow/todo-list', method: 'get', @@ -10,6 +16,13 @@ }, }); }; +export const approve = (params) => { + return request({ + url: `/blade-mdm/flow/dispatch/completeTask?taskId=${params.taskId}&processInstanceId=${params.processInstanceId}&comment=${params.comment}`, + method: 'post', + data: params, + }); +} export const add = (parentId, params) => { }; diff --git a/src/axios.js b/src/axios.js index ce674c0..b339797 100644 --- a/src/axios.js +++ b/src/axios.js @@ -25,7 +25,7 @@ let isRefreshing = false; // 鏍囪褰撳墠鏄惁姝e湪鍒锋柊token let refreshTokenPromise = null; // 鍒锋柊token鐨凱romise锛岄伩鍏嶉噸澶嶈姹� -axios.defaults.timeout = 10000; +axios.defaults.timeout = 30000; //杩斿洖鍏朵粬鐘舵�佺爜 axios.defaults.validateStatus = function (status) { return status >= 200 && status <= 500; // 榛樿鐨� diff --git a/src/views/flow/todolist.vue b/src/views/flow/todolist.vue index 0764443..fc0148b 100644 --- a/src/views/flow/todolist.vue +++ b/src/views/flow/todolist.vue @@ -1,31 +1,67 @@ <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" @selection-change="selectionChange" + @search-change="searchChange" @search-reset="searchReset" @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"> <template #menu-left> <el-button type="primary" plain @click="reassign">閲嶆柊鎸囨淳 </el-button> </template> - <!-- <template #source="{ row }"> - <div style="text-align: center"> - <i :class="row.source" /> - </div> - </template> --> + <template #menu="scope"> + <el-button type="primary" text size="default" v-if="permission.flow_model_update" + @click.stop="handleAction(scope.row, scope.index)">瀹℃壒 + </el-button> + </template> </avue-crud> + <el-dialog title="瀹℃壒" append-to-body v-model="approveBox" width="20%"> + <avue-form ref="form" :option="optionApprove" v-model="formApprove" @submit="handleSubmit" /> + <!-- <template #footer> + <span class="dialog-footer"> + <el-button @click="deployBox = false">鍙� 娑�</el-button> + <el-button type="primary" @click="handleDoDeploy" :loading="deployLoading">纭� 瀹�</el-button> + </span> + </template> --> + </el-dialog> </basic-container> </template> <script> -import { getLazyList, remove, update, add, getMenu } from '@/api/flow/todolist'; +import { getList, approve } from '@/api/flow/todolist'; import { mapGetters } from 'vuex'; -import iconList from '@/config/iconList'; -import func from '@/utils/func'; -import { getMenuTree } from '@/api/system/menu'; export default { data() { return { + row: {}, + approveBox: false, + formApprove: { + comment: '', + approve: 'Y', // 榛樿鍚屾剰 + }, + optionApprove: { + labelWidth: 100, + column: [ + + { + label: '瀹℃壒缁撴灉', + prop: 'approve', + type: 'radio', + span: 24, + dicData: [ + { label: '閫氳繃', value: 'Y' }, + { label: '椹冲洖', value: 'N' }, + ], + rules: [{ required: true, message: '璇烽�夋嫨瀹℃壒缁撴灉', trigger: 'blur' }], + }, + { + label: '澶囨敞', + span: 24, + prop: 'comment', + type: 'textarea', + rules: [{ required: true, message: '璇疯緭鍏ュ鎵规剰瑙�', trigger: 'blur' }], + }, + ], + }, page: { pageSize: 10, currentPage: 1, @@ -43,6 +79,8 @@ }, option: { addBtn: false, + editBtn: false, + delBtn: false, columnBtn: false, tip: false, // simplePage: true, @@ -59,8 +97,10 @@ column: [ { label: '鍒涘缓鏃堕棿', - prop: 'time', + prop: 'createTime', type: 'datetime', + format: 'YYYY-MM-DD', + valueFormat: 'YYYY-MM-DD', search: true, searchRange: true, searchSpan: 8, @@ -68,7 +108,7 @@ }, { label: '鍏抽敭瀛�', - prop: 'keyWord', + prop: 'keyword', width: 300, search: true, searchType: 'input', @@ -87,30 +127,23 @@ { label: '缂栧彿', - prop: 'name', + prop: 'taskId', + width: 100, + }, + { + label: '浠诲姟鍚嶇О', + prop: 'taskName', width: 100, }, { label: '娴佺▼绫诲瀷', width: 100, - prop: 'path', - rules: [ - { - required: true, - message: '璇疯緭鍏ヨ矾鐢卞湴鍧�', - trigger: 'blur', - }, - ], + prop: 'processDefinitionName', }, { label: '瀹炰緥缂栧彿', width: 100, - type: 'tree', - }, - { - label: '娴佺▼瀹炰緥鍚�', - width: 100, - type: 'tree', + type: 'processInstanceId', }, { label: '鏈哄簥', @@ -125,27 +158,27 @@ { label: '鍒涘缓鏃堕棿', width: 100, - type: 'tree', + prop: 'createTime', }, { label: '鍒拌揪鏃堕棿', width: 100, - type: 'tree', + prop: '', }, { label: '鍒拌揪鎻忚堪', width: 100, - type: 'tree', + prop: 'comment', }, { label: '鏂囦欢', width: 100, - type: 'tree', + prop: '', }, { label: '鍒拌揪鏃堕棿', width: 100, - type: 'tree', + prop: '', }, ], @@ -154,49 +187,65 @@ }; }, watch: { - 'form.category'() { - const category = func.toInt(this.form.category); - this.$refs.crud.option.column.filter(item => { - if (item.prop === 'path') { - item.rules[0].required = category === 1; - } - if (item.prop === 'isOpen') { - item.disabled = category === 2; - } - }); - }, + // 'form.category'() { + // const category = func.toInt(this.form.category); + // this.$refs.crud.option.column.filter(item => { + // if (item.prop === 'path') { + // item.rules[0].required = category === 1; + // } + // if (item.prop === 'isOpen') { + // item.disabled = category === 2; + // } + // }); + // }, }, computed: { ...mapGetters(['userInfo', 'permission']), - permissionList() { - return { - addBtn: this.validData(this.permission.menu_add, false), - viewBtn: this.validData(this.permission.menu_view, false), - delBtn: this.validData(this.permission.menu_delete, false), - editBtn: this.validData(this.permission.menu_edit, false), - }; - }, + // permissionList() { + // return { + // addBtn: this.validData(this.permission.menu_add, false), + // viewBtn: this.validData(this.permission.menu_view, false), + // delBtn: this.validData(this.permission.menu_delete, false), + // editBtn: this.validData(this.permission.menu_edit, false), + // }; + // }, }, methods: { + handleAction(row, index) { + this.approveBox = true; + this.row = row + console.log('handleAction', row, index); + }, + handleSubmit (form,done) { + approve({ + ...this.formApprove, + taskId: this.row.taskId, + processInstanceId: this.row.processInstanceId, + }).then(res => { + this.$message.success('瀹℃壒鎴愬姛'); + this.approveBox = false; + this.onLoad(this.page, this.query); + done(); + }).catch(err => { + console.error(err); + }); + }, reassign() {// 閲嶆柊鎸囨淳 }, searchChange(params, done) { this.query = params; this.page.currentPage = 1; + console.log('searchChange', params); + params.createTimeBegin = params.createTime[0] || ''; + params.createTimeEnd = params.createTime[1] || ''; + console.log(params); this.onLoad(this.page, params); done(); }, searchReset() { this.query = {}; this.onLoad(this.page); - }, - searchChange(params, done) { - this.query = params; - this.parentId = ''; - this.page.currentPage = 1; - this.onLoad(this.page, params); - done(); }, currentChange(currentPage) { this.page.currentPage = currentPage; @@ -211,11 +260,11 @@ onLoad(page, params = {}) { const query = { ...this.query, - category: params.category ? flowCategory(params.category) : null, + // category: params.category ? flowCategory(params.category) : null, mode: this.mode, }; this.loading = true; - getLazyList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => { + getList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => { const data = res.data.data; this.page.total = data.total; this.data = data.records; -- Gitblit v1.9.3