From 736225fbfe3d45efff354232087f4814f1425771 Mon Sep 17 00:00:00 2001
From: dhb52 <dhb52@126.com>
Date: 星期五, 17 五月 2024 01:04:13 +0800
Subject: [PATCH] feat: powerjob,easyretry => snailjob
---
src/views/workflow/leave/leaveEdit.vue | 205 +++++++++++++++++++++++++++------------------------
1 files changed, 108 insertions(+), 97 deletions(-)
diff --git a/src/views/workflow/leave/leaveEdit.vue b/src/views/workflow/leave/leaveEdit.vue
index cdc7963..e978ad8 100644
--- a/src/views/workflow/leave/leaveEdit.vue
+++ b/src/views/workflow/leave/leaveEdit.vue
@@ -1,49 +1,53 @@
<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.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.processInstanceVo &&
+ form.processInstanceVo.businessStatus &&
+ (form.processInstanceVo.businessStatus === 'draft' ||
+ form.processInstanceVo.businessStatus === 'cancel' ||
+ form.processInstanceVo.businessStatus === 'back'))
+ "
+ :loading="buttonLoading"
+ type="info"
+ @click="submitForm('draft')"
+ >鏆傚瓨</el-button
+ >
+ <el-button
+ v-if="
+ routeParams.type === 'add' ||
+ (routeParams.type === 'update' &&
+ form.processInstanceVo &&
+ (form.processInstanceVo.businessStatus === 'draft' ||
+ form.processInstanceVo.businessStatus === 'cancel' ||
+ form.processInstanceVo.businessStatus === 'back'))
+ "
+ :loading="buttonLoading"
+ type="primary"
+ @click="submitForm('submit')"
+ >鎻� 浜�</el-button
+ >
+ <el-button
+ v-if="routeParams.type === 'approval' && form.processInstanceVo && form.processInstanceVo.businessStatus === '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">
- <el-form ref="leaveFormRef" :disabled="routeParams.type ==='view'" v-loading="loading" :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" />
- </el-select>
- </el-form-item>
- <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" />
- </el-select>
- </el-form-item>
- <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" />
- </el-select>
- </el-form-item>
- <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" />
- </el-select>
- </el-form-item>
- <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" />
- </el-select>
- </el-form-item>
+ <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" />
@@ -81,7 +85,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);
@@ -89,8 +93,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',
@@ -116,13 +120,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,
@@ -151,7 +154,6 @@
const { form, rules } = toRefs(data);
-
/** 琛ㄥ崟閲嶇疆 */
const reset = () => {
form.value = { ...initFormData };
@@ -167,7 +169,7 @@
};
/** 鑾峰彇璇︽儏 */
const getInfo = () => {
- loading.value = true
+ loading.value = true;
buttonLoading.value = false;
nextTick(async () => {
const res = await getLeave(routeParams.value.id);
@@ -175,10 +177,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;
});
};
@@ -189,46 +191,54 @@
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);
}
};
//瀹℃壒璁板綍
@@ -237,26 +247,27 @@
};
//鎻愪氦鍥炶皟
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