From f237ee145a06def3b413d113e419d62cca181ec4 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期一, 03 六月 2024 15:47:51 +0800
Subject: [PATCH] update 优化 去除请假案例状态字段

---
 src/views/workflow/leave/leaveEdit.vue |  177 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 100 insertions(+), 77 deletions(-)

diff --git a/src/views/workflow/leave/leaveEdit.vue b/src/views/workflow/leave/leaveEdit.vue
index 6569e93..af25fad 100644
--- a/src/views/workflow/leave/leaveEdit.vue
+++ b/src/views/workflow/leave/leaveEdit.vue
@@ -1,26 +1,42 @@
 <template>
   <div class="p-2">
-    <el-affix target=".p-2" :offset="80">
-      <el-card shadow="never">
-          <div style="display: flex;justify-content: space-between;">
-            <div>
-              <el-button :loading="buttonLoading" 
-              v-if="routeParams.type === 'add' || (routeParams.type === 'update' && form.processInstanceVo && form.processInstanceVo.businessStatus && (form.processInstanceVo.businessStatus === 'draft' || form.processInstanceVo.businessStatus === 'cancel' || form.processInstanceVo.businessStatus === 'back'))"
-              type="info" @click="submitForm('draft')">鏆傚瓨</el-button>
-              <el-button :loading="buttonLoading" v-if="routeParams.type === 'add' || (routeParams.type === 'update' && form.processInstanceVo && (form.processInstanceVo.businessStatus === 'draft' || form.processInstanceVo.businessStatus === 'cancel' || form.processInstanceVo.businessStatus === 'back'))"
-              type="primary" @click="submitForm('submit')">鎻� 浜�</el-button>
-              <el-button :loading="buttonLoading" v-if="routeParams.type === 'approval' && form.processInstanceVo && form.processInstanceVo.businessStatus === 'waiting'"
-              type="primary" @click="approvalVerifyOpen">瀹℃壒</el-button>
-              <el-button @click="handleApprovalRecord" type="primary" v-if="processInstanceId">娴佺▼杩涘害</el-button>
-            </div>
-            <div>
-              <el-button style="float: right" @click="goBack()">杩斿洖</el-button>
-            </div>
-          </div>
-      </el-card>
-    </el-affix>
     <el-card shadow="never">
-      <el-form ref="leaveFormRef" :disabled="routeParams.type ==='view'" v-loading="loading" :model="form" :rules="rules" label-width="80px">
+      <div style="display: flex; justify-content: space-between">
+        <div>
+          <el-button
+            v-if="routeParams.type === 'add' ||
+                (routeParams.type === 'update' &&form.status &&
+                (form.status === 'draft' || form.status === 'cancel' || form.status === 'back'))"
+            :loading="buttonLoading"
+            type="info"
+            @click="submitForm('draft')"
+            >鏆傚瓨</el-button
+          >
+          <el-button
+            v-if="routeParams.type === 'add' ||
+                (routeParams.type === 'update' && form.status &&
+                (form.status === 'draft' || form.status === 'cancel' || form.status === 'back'))"
+            :loading="buttonLoading"
+            type="primary"
+            @click="submitForm('submit')"
+            >鎻� 浜�</el-button
+          >
+          <el-button
+            v-if="routeParams.type === 'approval' && form.status && form.status === 'waiting'"
+            :loading="buttonLoading"
+            type="primary"
+            @click="approvalVerifyOpen"
+            >瀹℃壒</el-button
+          >
+          <el-button v-if="processInstanceId" type="primary" @click="handleApprovalRecord">娴佺▼杩涘害</el-button>
+        </div>
+        <div>
+          <el-button style="float: right" @click="goBack()">杩斿洖</el-button>
+        </div>
+      </div>
+    </el-card>
+    <el-card shadow="never" style="height: 78vh; overflow-y: auto">
+      <el-form ref="leaveFormRef" v-loading="loading" :disabled="routeParams.type === 'view'" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="璇峰亣绫诲瀷" prop="leaveType">
           <el-select v-model="form.leaveType" placeholder="璇烽�夋嫨璇峰亣绫诲瀷" style="width: 100%">
             <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
@@ -58,7 +74,7 @@
 import SubmitVerify from '@/components/Process/submitVerify.vue';
 import ApprovalRecord from '@/components/Process/approvalRecord.vue';
 import { AxiosResponse } from 'axios';
-
+import { StartProcessBo } from '@/api/workflow/workflowCommon/types';
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 
 const buttonLoading = ref(false);
@@ -66,8 +82,8 @@
 const leaveTime = ref<Array<string>>([]);
 //娴佺▼瀹炰緥id
 const processInstanceId = ref('');
-//璺敱鍙傛暟 
-const routeParams = ref<Record<string, any>>({})
+//璺敱鍙傛暟
+const routeParams = ref<Record<string, any>>({});
 const options = [
   {
     value: '1',
@@ -93,13 +109,12 @@
 
 const leaveFormRef = ref<ElFormInstance>();
 
-const submitFormData = ref<Record<string, any>>({
+const submitFormData = ref<StartProcessBo>({
   businessKey: '',
-  processKey: '',
+  tableName: '',
   variables: {}
 });
 const taskVariables = ref<Record<string, any>>({});
-
 
 const initFormData: LeaveForm = {
   id: undefined,
@@ -128,7 +143,6 @@
 
 const { form, rules } = toRefs(data);
 
-
 /** 琛ㄥ崟閲嶇疆 */
 const reset = () => {
   form.value = { ...initFormData };
@@ -144,7 +158,7 @@
 };
 /** 鑾峰彇璇︽儏 */
 const getInfo = () => {
-  loading.value = true
+  loading.value = true;
   buttonLoading.value = false;
   nextTick(async () => {
     const res = await getLeave(routeParams.value.id);
@@ -152,10 +166,10 @@
     leaveTime.value = [];
     leaveTime.value.push(form.value.startDate);
     leaveTime.value.push(form.value.endDate);
-    if(form.value.processInstanceVo){
-      processInstanceId.value = form.value.processInstanceVo.id
+    if (form.value.processInstanceVo) {
+      processInstanceId.value = form.value.processInstanceVo.id;
     }
-    loading.value = false
+    loading.value = false;
     buttonLoading.value = false;
   });
 };
@@ -166,74 +180,83 @@
     proxy?.$modal.msgError('璇峰亣鏃堕棿涓嶈兘涓虹┖');
     return;
   }
-  leaveFormRef.value?.validate(async (valid: boolean) => {
-    form.value.startDate = leaveTime.value[0];
-    form.value.endDate = leaveTime.value[1];
-    if (valid) {
-      buttonLoading.value = true;
-      let res: AxiosResponse<LeaveVO>;
-      if (form.value.id) {
-        res = await updateLeave(form.value);
-      } else {
-        res = await addLeave(form.value);
+  try {
+    leaveFormRef.value?.validate(async (valid: boolean) => {
+      form.value.startDate = leaveTime.value[0];
+      form.value.endDate = leaveTime.value[1];
+      if (valid) {
+        buttonLoading.value = true;
+        let res: AxiosResponse<LeaveVO>;
+        if (form.value.id) {
+          res = await updateLeave(form.value);
+        } else {
+          res = await addLeave(form.value);
+        }
+        form.value = res.data;
+        if (status === 'draft') {
+          buttonLoading.value = false;
+          proxy?.$modal.msgSuccess('鏆傚瓨鎴愬姛');
+          proxy.$tab.closePage(proxy.$route);
+          proxy.$router.go(-1);
+        } else {
+          await handleStartWorkFlow(res.data);
+        }
       }
-      form.value = res.data;
-      if (status === 'draft') {
-        buttonLoading.value = false;
-        proxy?.$modal.msgSuccess('鏆傚瓨鎴愬姛');
-        proxy.$tab.closePage(proxy.$route);
-        proxy.$router.go(-1)
-      } else {
-        await handleStartWorkFlow(res.data);
-      }
-    }
-  });
+    });
+  } finally {
+    buttonLoading.value = false;
+  }
 };
 
 //鎻愪氦鐢宠
 const handleStartWorkFlow = async (data: LeaveVO) => {
-  submitFormData.value.processKey = 'test';
-  submitFormData.value.businessKey = data.id;
-  //娴佺▼鍙橀噺
-  taskVariables.value = {
-    entity: data,
-    leaveDays: data.leaveDays,
-    userList: [1, 2],
-    userList2: [1, 2]
-  };
-  submitFormData.value.variables = taskVariables.value;
-  const resp = await startWorkFlow(submitFormData.value);
-  if (submitVerifyRef.value) {
+  try {
+    submitFormData.value.tableName = 'test_leave';
+    submitFormData.value.businessKey = data.id;
+    //娴佺▼鍙橀噺
+    taskVariables.value = {
+      entity: data,
+      leaveDays: data.leaveDays,
+      userList: [1, 3],
+      userList2: [1, 3]
+    };
+    submitFormData.value.variables = taskVariables.value;
+    const resp = await startWorkFlow(submitFormData.value);
+    if (submitVerifyRef.value) {
+      buttonLoading.value = false;
+      submitVerifyRef.value.openDialog(resp.data.taskId);
+    }
+  } finally {
     buttonLoading.value = false;
-    submitVerifyRef.value.openDialog(resp.data.taskId);
   }
 };
 //瀹℃壒璁板綍
 const handleApprovalRecord = () => {
-  approvalRecordRef.value.init(processInstanceId.value);
+  approvalRecordRef.value.init(form.value.id);
 };
 //鎻愪氦鍥炶皟
 const submitCallback = async () => {
-  proxy.$tab.closePage(proxy.$route);
-  proxy.$router.go(-1)
+  await proxy.$tab.closePage(proxy.$route);
+  proxy.$router.go(-1);
 };
 
 //杩斿洖
 const goBack = () => {
   proxy.$tab.closePage(proxy.$route);
-  proxy.$router.go(-1)
-}
+  proxy.$router.go(-1);
+};
 //瀹℃壒
 const approvalVerifyOpen = async () => {
-  submitVerifyRef.value.openDialog(proxy.$route.query.taskId);
+  submitVerifyRef.value.openDialog(routeParams.value.taskId);
 };
 onMounted(() => {
   nextTick(async () => {
-      routeParams.value = proxy?.$route.params
-      reset();
-      if (routeParams.value.type === 'update' || routeParams.value.type === 'view' || routeParams.value.type === 'approval') {
-        getInfo()
-      }
-  })
+    routeParams.value = proxy.$route.query;
+    reset();
+    loading.value = false;
+    if (routeParams.value.type === 'update' || routeParams.value.type === 'view' || routeParams.value.type === 'approval') {
+      getInfo();
+    }
+  });
 });
 </script>

--
Gitblit v1.9.3