From 8b1de8b87d81cb5c4b3c207e10195f392ed330cc Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期五, 13 十二月 2024 17:56:02 +0800 Subject: [PATCH] 任务驳回功能基础实现 --- src/views/flowable/task/myProcess/send/index.vue | 49 +++++++++++++++++++++++- src/views/flowable/task/myProcess/detail/index.vue | 9 +++- src/views/flowable/definition/index.vue | 2 src/views/flowable/task/finished/detail/index.vue | 2 src/api/projectProcess/projectProcess.js | 9 ++++ src/views/projectProcess/detail/index.vue | 1 6 files changed, 64 insertions(+), 8 deletions(-) diff --git a/src/api/projectProcess/projectProcess.js b/src/api/projectProcess/projectProcess.js index 9123b96..055701d 100644 --- a/src/api/projectProcess/projectProcess.js +++ b/src/api/projectProcess/projectProcess.js @@ -69,3 +69,12 @@ }) } + +// 椹冲洖 +export function rejectTask(data) { + return request({ + url: '/project-process/detail/task/reject', + method: 'post', + data: data + }) +} diff --git a/src/views/flowable/definition/index.vue b/src/views/flowable/definition/index.vue index 630c9ce..9287c80 100644 --- a/src/views/flowable/definition/index.vue +++ b/src/views/flowable/definition/index.vue @@ -62,7 +62,7 @@ <el-table-column label="娴佺▼缂栧彿" align="center" prop="deploymentId" :show-overflow-tooltip="true"/> <el-table-column label="娴佺▼鏍囪瘑" align="center" prop="flowKey" :show-overflow-tooltip="true" /> <el-table-column label="娴佺▼鍒嗙被" align="center" prop="category" /> - <el-table-column label="娴佺▼鍚嶇О" align="center" width="120" :show-overflow-tooltip="true"> + <el-table-column label="娴佺▼鍚嶇О" align="center" width="200" :show-overflow-tooltip="true"> <template slot-scope="scope"> <el-button type="text" @click="handleReadImage(scope.row.deploymentId)"> <span>{{ scope.row.name }}</span> diff --git a/src/views/flowable/task/finished/detail/index.vue b/src/views/flowable/task/finished/detail/index.vue index 1491ec5..b47d303 100644 --- a/src/views/flowable/task/finished/detail/index.vue +++ b/src/views/flowable/task/finished/detail/index.vue @@ -23,7 +23,7 @@ :icon="setIcon(item.finishTime)" :color="setColor(item.finishTime)" > - <p style="font-weight: 700">{{item.taskName}}</p> + <p style="font-weight: 700">{{item.taskName}}<span v-if="item.comment.type === '3'" style="color: red">(鎵ц浜嗛┏鍥�)</span></p> <el-card :body-style="{ padding: '10px' }"> <el-descriptions class="margin-top" :column="1" size="small" border> <el-descriptions-item v-if="item.assigneeName" label-class-name="my-label"> diff --git a/src/views/flowable/task/myProcess/detail/index.vue b/src/views/flowable/task/myProcess/detail/index.vue index c797cb2..b2d1288 100644 --- a/src/views/flowable/task/myProcess/detail/index.vue +++ b/src/views/flowable/task/myProcess/detail/index.vue @@ -2,7 +2,7 @@ <div class="app-container"> <el-card class="box-card" > <div slot="header" class="clearfix"> - <span class="el-icon-document">宸插畬鎴愪换鍔�</span> + <span class="el-icon-document">浠诲姟璇︽儏</span> <el-button style="float: right;" size="mini" type="danger" @click="goBack">鍏抽棴</el-button> </div> <el-tabs tab-position="top" v-model="activeName" @tab-click="handleClick"> @@ -27,7 +27,7 @@ :icon="setIcon(item.finishTime)" :color="setColor(item.finishTime)" > - <p style="font-weight: 700">{{item.taskName}}</p> + <p style="font-weight: 700">{{item.taskName}}<span v-if="item.comment && item.comment.type === '3'" style="color: red">(鎵ц浜嗛┏鍥�)</span></p> <el-card :body-style="{ padding: '10px' }"> <el-descriptions class="margin-top" :column="1" size="small" border> <el-descriptions-item v-if="item.assigneeName" label-class-name="my-label"> @@ -191,7 +191,10 @@ goBack() { this.$router.push({ path: '/projectFlow/detail', - query: this.goBackParams + query: { + projectId: this.goBackParams.projectId, + processDefId: this.goBackParams.processDefId + } }) }, } diff --git a/src/views/flowable/task/myProcess/send/index.vue b/src/views/flowable/task/myProcess/send/index.vue index b235359..bf6e5f4 100644 --- a/src/views/flowable/task/myProcess/send/index.vue +++ b/src/views/flowable/task/myProcess/send/index.vue @@ -12,7 +12,7 @@ <el-col :span="16" :offset="4" v-if="formDataList && formDataList.length > 0"> <div v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp" style="position: relative"> <div v-if="!formDataObj.current" style="position: absolute; top: 2px; right: 2px"> - <el-button type="danger" disabled>椹冲洖(鍔熻兘寮�鍙戜腑)</el-button> + <el-button type="danger" @click="openRejectTask(formDataObj.beforeNodeDefId)">椹冲洖</el-button> </div> <div v-if="formDataObj.current" style="margin-bottom: 15px;color: #409eff">褰撳墠闃舵锛�<span style="color: red">{{formDataObj.beforeNodeName}}</span></div> <div v-else style="margin-bottom: 15px;color: #409eff">鍓嶇疆闃舵锛�<span style="color: #d5904b">{{formDataObj.beforeNodeName}}</span></div> @@ -43,6 +43,28 @@ </span> </el-dialog> </el-card> + + + <el-dialog + :title="`椹冲洖锛歚 + rejectForm.projectName" + :visible.sync="rejectShow" + width="950px" + :destroy-on-close="true" + :close-on-click-modal="false" + > + <div> + <el-input + type="textarea" + :rows="3" + placeholder="瀹℃牳寤鸿" + v-model="rejectForm.auditOpinion"> + </el-input> + </div> + <div> + <el-button type="danger" size="small" @click="rejectTask">椹冲洖</el-button> + </div> + </el-dialog> + </div> </template> @@ -54,6 +76,7 @@ import {getNextFlowNodeByStart} from "@/api/flowable/todo"; import FlowUser from '@/components/flow/User' import FlowRole from '@/components/flow/Role' +import {rejectTask} from "@/api/projectProcess/projectProcess"; export default { name: "Record", @@ -65,6 +88,7 @@ props: {}, data() { return { + rejectShow: false, goBackParams: {}, formDataList: [], // 琛ㄥ崟鍒楄〃 taskId: '', @@ -91,7 +115,12 @@ checkValues: null, // 閫変腑浠诲姟鎺ユ敹浜哄憳鏁版嵁 formData: {}, // 濉啓鐨勮〃鍗曟暟鎹�, multiInstanceVars: '', // 浼氱鑺傜偣 - formJson: {} // 琛ㄥ崟json + formJson: {}, // 琛ㄥ崟json + rejectForm: { + auditOpinion: '', // 瀹℃牳鎰忚 + taskId: '', + rejectedTaskDefKey: '' // 琚┏鍥炵殑浠诲姟key + } }; }, mounted() { @@ -105,6 +134,17 @@ this.getFlowFormData(this.taskId); }, methods: { + rejectTask() { + rejectTask(this.rejectForm).then(res => { + this.rejectShow = false + this.$message.success("椹冲洖鎴愬姛") + }) + }, + openRejectTask(rejectedTaskDefKey) { + this.rejectForm.rejectedTaskDefKey = rejectedTaskDefKey; + this.rejectForm.taskId = this.taskId; + this.rejectShow = true + }, handleClick(tab, event) { if (tab.name === '2'){ flowXmlAndNode({deployId:this.deployId}).then(res => { @@ -159,7 +199,10 @@ goBack() { this.$router.push({ path: '/projectFlow/detail', - query: this.goBackParams + query: { + projectId: this.goBackParams.projectId, + processDefId: this.goBackParams.processDefId + } }) }, /** 鐢宠娴佺▼琛ㄥ崟鏁版嵁鎻愪氦 */ diff --git a/src/views/projectProcess/detail/index.vue b/src/views/projectProcess/detail/index.vue index 37167c0..352f65f 100644 --- a/src/views/projectProcess/detail/index.vue +++ b/src/views/projectProcess/detail/index.vue @@ -131,6 +131,7 @@ } }, mounted() { + console.log(this.$route.query, "鍙傛暟") this.queryParams.projectId = this.$route.query.projectId this.queryParams.processDefId = this.$route.query.processDefId this.loading = true -- Gitblit v1.8.0