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