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 | 170 ++++++++++++++++++++++++++++++++------------------------ 1 files changed, 97 insertions(+), 73 deletions(-) diff --git a/src/views/workflow/leave/leaveEdit.vue b/src/views/workflow/leave/leaveEdit.vue index 58934a4..af25fad 100644 --- a/src/views/workflow/leave/leaveEdit.vue +++ b/src/views/workflow/leave/leaveEdit.vue @@ -1,24 +1,42 @@ <template> <div class="p-2"> <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 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" :disabled="routeParams.type ==='view'" v-loading="loading" :model="form" :rules="rules" label-width="80px"> + <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" /> @@ -56,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); @@ -64,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', @@ -91,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, @@ -126,7 +143,6 @@ const { form, rules } = toRefs(data); - /** 琛ㄥ崟閲嶇疆 */ const reset = () => { form.value = { ...initFormData }; @@ -142,7 +158,7 @@ }; /** 鑾峰彇璇︽儏 */ const getInfo = () => { - loading.value = true + loading.value = true; buttonLoading.value = false; nextTick(async () => { const res = await getLeave(routeParams.value.id); @@ -150,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; }); }; @@ -164,75 +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(routeParams.value.taskId); }; onMounted(() => { nextTick(async () => { - routeParams.value = proxy.$route.query - reset(); - loading.value = false - 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