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