From d088628a4b421e7e0a8363b8b75529d8b2ecfe89 Mon Sep 17 00:00:00 2001
From: lyh <liuyuanheng@xalxzn.com>
Date: 星期一, 24 二月 2025 10:07:14 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/flowable/mixin/FlowableMixin.js |   68 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 insertions(+), 0 deletions(-)

diff --git a/src/views/flowable/mixin/FlowableMixin.js b/src/views/flowable/mixin/FlowableMixin.js
new file mode 100644
index 0000000..50a76a4
--- /dev/null
+++ b/src/views/flowable/mixin/FlowableMixin.js
@@ -0,0 +1,68 @@
+import Vue from "vue";
+import {USER_INFO} from "@/store/mutation-types";
+
+/**
+ *
+ */
+
+export const FlowableMixin = {
+  data(){
+    return {
+      loginUser:{}
+    }
+  },
+  created() {
+    this.loginUser = Vue.ls.get(USER_INFO);
+  },
+  methods:{
+    // 褰撳墠鏁版嵁鏄惁鍙彁浜�
+    isCanApply(row){
+      // 娌℃湁娴佺▼瀹炰緥鐨勫嵆鍙彁浜�
+      return !Boolean(row.processInstanceId);
+    },
+    // 褰撳墠鏁版嵁鏄惁鍙挙鍥�
+    isCanRecall(row){
+      // 杩涜涓殑娴佺▼&&褰撳墠鑺傜偣涓嶆槸寮�濮嬭妭鐐�&&鐘舵�佷笉鏄�氳繃
+      return Boolean(row.processInstanceId)&&row.taskNameId!=='start'&&row.actStatus!=='瀹℃壒閫氳繃';
+    },
+    // 閲嶆柊鎻愪氦鎸夐挳
+    isCanReApply(row){
+      return row.taskNameId=='start'&&this.isTodoUsers(row);
+    },
+    // 閫氳繃鎸夐挳
+    isCanPass(row){
+      return row.taskNameId!=='start'&& this.isTodoUsers(row);
+    },
+    // 椹冲洖閫�鍥炴寜閽�
+    isCanBacke(row){
+      // 涓嶆槸start鑺傜偣&&鍦ㄥ彲鎿嶄綔浜哄憳鍒楄〃
+      return row.taskNameId!=='start'&&this.isTodoUsers(row);
+    },
+    // 鏌ョ湅瀹℃壒鍘嗗彶鎸夐挳
+    isCanHistoric(row){
+      // 鏈夊疄渚媔d灏辫兘鏌ョ湅
+      return Boolean(row.processInstanceId);
+    },
+    // 褰撳墠鐧诲綍浜烘槸鍚﹀湪澶勭悊浜哄垪琛�
+    isTodoUsers(row){
+      const todoUsers = row.todoUsers;
+      if (todoUsers&&todoUsers.length){
+        const parse = JSON.parse(todoUsers)||[];
+        return parse.includes(this.loginUser.username);
+      }else {
+        return false;
+      }
+    },
+    // 褰撳墠鐧诲綍浜烘槸鍚︽槸澶勭悊杩囩殑浜哄垪琛�
+    isDoneUsers(row){
+      const doneUsers = row.doneUsers;
+      if (doneUsers&&doneUsers.length){
+        const parse = JSON.parse(doneUsers)||[];
+        return parse.includes(this.loginUser.username);
+      }else {
+        return false;
+      }
+    },
+  }
+
+}
\ No newline at end of file

--
Gitblit v1.9.3