Selaa lähdekoodia

add 增加按钮权限

gssong 4 kuukautta sitten
vanhempi
commit
61b81f4692

+ 0 - 5
src/api/workflow/category/types.ts

@@ -6,7 +6,6 @@ export interface CategoryTreeVO {
   children: CategoryTreeVO[];
 }
 export interface CategoryVO {
-
   /**
    * 流程分类ID
    */
@@ -39,7 +38,6 @@ export interface CategoryVO {
 }
 
 export interface CategoryForm extends BaseEntity {
-
   /**
    * 流程分类ID
    */
@@ -59,14 +57,11 @@ export interface CategoryForm extends BaseEntity {
    * 显示顺序
    */
   orderNum?: number;
-
 }
 
 export interface CategoryQuery {
-
   /**
    * 流程分类名称
    */
   categoryName?: string;
-
 }

+ 5 - 0
src/api/workflow/task/types.ts

@@ -29,8 +29,13 @@ export interface FlowTaskVO {
   nodeType: number;
   nodeRatio: string | number;
   version?: string;
+  buttonList?: buttonList[];
 }
 
+export interface buttonList {
+  code: string;
+  show: boolean;
+}
 export interface VariableVo {
   key: string;
   value: string;

+ 41 - 14
src/components/Process/submitVerify.vue

@@ -11,7 +11,7 @@
       <el-form-item v-if="task.flowStatus === 'waiting'" label="附件">
         <fileUpload v-model="form.fileId" :file-type="['png', 'jpg', 'jpeg', 'doc', 'docx', 'xlsx', 'xls', 'ppt', 'txt', 'pdf']" :file-size="20" />
       </el-form-item>
-      <el-form-item label="抄送">
+      <el-form-item label="抄送" v-if="task.flowStatus === 'waiting' && buttonObj.copy">
         <el-button type="primary" icon="Plus" circle @click="openUserSelectCopy" />
         <el-tag v-for="user in selectCopyUserList" :key="user.userId" closable style="margin: 2px" @close="handleCopyCloseTag(user)">
           {{ user.nickName }}
@@ -24,10 +24,14 @@
     <template #footer>
       <span class="dialog-footer">
         <el-button :disabled="buttonDisabled" type="primary" @click="handleCompleteTask"> 提交 </el-button>
-        <el-button v-if="task.flowStatus === 'waiting'" :disabled="buttonDisabled" type="primary" @click="openDelegateTask"> 委托 </el-button>
-        <el-button v-if="task.flowStatus === 'waiting'" :disabled="buttonDisabled" type="primary" @click="openTransferTask"> 转办 </el-button>
+        <el-button v-if="task.flowStatus === 'waiting' && buttonObj.trust" :disabled="buttonDisabled" type="primary" @click="openDelegateTask">
+          委托
+        </el-button>
+        <el-button v-if="task.flowStatus === 'waiting' && buttonObj.transfer" :disabled="buttonDisabled" type="primary" @click="openTransferTask">
+          转办
+        </el-button>
         <el-button
-          v-if="task.flowStatus === 'waiting' && Number(task.nodeRatio) > 0"
+          v-if="task.flowStatus === 'waiting' && Number(task.nodeRatio) > 0 && buttonObj.subSign"
           :disabled="buttonDisabled"
           type="primary"
           @click="openMultiInstanceUser"
@@ -35,15 +39,24 @@
           加签
         </el-button>
         <el-button
-          v-if="task.flowStatus === 'waiting' && Number(task.nodeRatio) > 0"
+          v-if="task.flowStatus === 'waiting' && Number(task.nodeRatio) > 0 && buttonObj.subSign"
           :disabled="buttonDisabled"
           type="primary"
           @click="handleTaskUser"
         >
           减签
         </el-button>
-        <el-button v-if="task.flowStatus === 'waiting'" :disabled="buttonDisabled" type="danger" @click="handleTerminationTask"> 终止 </el-button>
-        <el-button v-if="task.flowStatus === 'waiting'" :disabled="buttonDisabled" type="danger" @click="handleBackProcessOpen"> 退回 </el-button>
+        <el-button
+          v-if="task.flowStatus === 'waiting' && buttonObj.termination"
+          :disabled="buttonDisabled"
+          type="danger"
+          @click="handleTerminationTask"
+        >
+          终止
+        </el-button>
+        <el-button v-if="task.flowStatus === 'waiting' && buttonObj.back" :disabled="buttonDisabled" type="danger" @click="handleBackProcessOpen">
+          退回
+        </el-button>
         <el-button :disabled="buttonDisabled" @click="cancel">取消</el-button>
       </span>
     </template>
@@ -72,7 +85,11 @@
           </el-checkbox-group>
         </el-form-item>
         <el-form-item v-if="task.flowStatus === 'waiting'" label="附件">
-          <fileUpload v-model="backForm.fileId" :file-type="['png', 'jpg', 'jpeg', 'doc', 'docx', 'xlsx', 'xls', 'ppt', 'txt', 'pdf']" :file-size="20" />
+          <fileUpload
+            v-model="backForm.fileId"
+            :file-type="['png', 'jpg', 'jpeg', 'doc', 'docx', 'xlsx', 'xls', 'ppt', 'txt', 'pdf']"
+            :file-size="20"
+          />
         </el-form-item>
         <el-form-item label="审批意见">
           <el-input v-model="backForm.message" type="textarea" resize="none" />
@@ -142,6 +159,10 @@ const backLoading = ref(true);
 const backButtonDisabled = ref(true);
 // 可驳回得任务节点
 const taskNodeList = ref([]);
+const buttonObj = ref<any>({
+  code: undefined,
+  show: false
+});
 //任务
 const task = ref<FlowTaskVO>({
   id: undefined,
@@ -159,7 +180,8 @@ const task = ref<FlowTaskVO>({
   formCustom: undefined,
   formPath: undefined,
   nodeType: undefined,
-  nodeRatio: undefined
+  nodeRatio: undefined,
+  buttonList: []
 });
 const dialog = reactive<DialogOption>({
   visible: false,
@@ -181,6 +203,7 @@ const backForm = ref<Record<string, any>>({
   variables: {},
   messageType: ['1']
 });
+
 //打开弹窗
 const openDialog = (id?: string) => {
   selectCopyUserIds.value = undefined;
@@ -194,6 +217,10 @@ const openDialog = (id?: string) => {
   nextTick(() => {
     getTask(taskId.value).then((response) => {
       task.value = response.data;
+      buttonObj.value = [];
+      task.value.buttonList.forEach((e) => {
+        buttonObj.value[e.code] = e.show;
+      });
       loading.value = false;
       buttonDisabled.value = false;
     });
@@ -208,9 +235,9 @@ const handleCompleteTask = async () => {
   form.value.taskId = taskId.value;
   form.value.taskVariables = props.taskVariables;
   if (selectCopyUserList.value && selectCopyUserList.value.length > 0) {
-    let flowCopyList = [];
+    const flowCopyList = [];
     selectCopyUserList.value.forEach((e) => {
-      let copyUser = {
+      const copyUser = {
         userId: e.userId,
         userName: e.nickName
       };
@@ -239,7 +266,7 @@ const handleBackProcessOpen = async () => {
   backVisible.value = true;
   backLoading.value = true;
   backButtonDisabled.value = true;
-  let data = await getBackTaskNode(task.value.definitionId, task.value.nodeCode);
+  const data = await getBackTaskNode(task.value.definitionId, task.value.nodeCode);
   taskNodeList.value = data.data;
   backLoading.value = false;
   backButtonDisabled.value = false;
@@ -386,7 +413,7 @@ const handleDelegateTask = async (data) => {
 };
 //终止任务
 const handleTerminationTask = async () => {
-  let params = {
+  const params = {
     taskId: taskId.value,
     comment: form.value.message
   };
@@ -402,7 +429,7 @@ const handleTerminationTask = async () => {
   proxy?.$modal.msgSuccess('操作成功');
 };
 const handleTaskUser = async () => {
-  let data = await currentTaskAllUser(taskId.value);
+  const data = await currentTaskAllUser(taskId.value);
   deleteUserList.value = data.data;
   if (deleteUserList.value && deleteUserList.value.length > 0) {
     deleteUserList.value.forEach((e) => {