| | |
| | | <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')) |
| | | (routeParams.type === 'update' && form.status && (form.status === 'draft' || form.status === 'cancel' || form.status === 'back')) |
| | | " |
| | | :loading="buttonLoading" |
| | | type="info" |
| | |
| | | <el-button |
| | | v-if=" |
| | | routeParams.type === 'add' || |
| | | (routeParams.type === 'update' && |
| | | form.processInstanceVo && |
| | | (form.processInstanceVo.businessStatus === 'draft' || |
| | | form.processInstanceVo.businessStatus === 'cancel' || |
| | | form.processInstanceVo.businessStatus === 'back')) |
| | | (routeParams.type === 'update' && form.status && (form.status === 'draft' || form.status === 'cancel' || form.status === 'back')) |
| | | " |
| | | :loading="buttonLoading" |
| | | type="primary" |
| | |
| | | >提 交</el-button |
| | | > |
| | | <el-button |
| | | v-if="routeParams.type === 'approval' && form.processInstanceVo && form.processInstanceVo.businessStatus === 'waiting'" |
| | | 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> |
| | | <el-button v-if="form.status !== 'draft'" type="primary" @click="handleApprovalRecord">流程进度</el-button> |
| | | </div> |
| | | <div> |
| | | <el-button style="float: right" @click="goBack()">返回</el-button> |
| | |
| | | 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); |
| | | const loading = ref(true); |
| | | const leaveTime = ref<Array<string>>([]); |
| | | //流程实例id |
| | | const processInstanceId = ref(''); |
| | | //路由参数 |
| | | const routeParams = ref<Record<string, any>>({}); |
| | | const options = [ |
| | |
| | | |
| | | const leaveFormRef = ref<ElFormInstance>(); |
| | | |
| | | const submitFormData = ref<Record<string, any>>({ |
| | | const submitFormData = ref<StartProcessBo>({ |
| | | businessKey: '', |
| | | processKey: '', |
| | | tableName: '', |
| | | variables: {} |
| | | }); |
| | | const taskVariables = ref<Record<string, any>>({}); |
| | |
| | | endDate: undefined, |
| | | leaveDays: undefined, |
| | | remark: undefined, |
| | | processInstanceVo: {} |
| | | status: undefined |
| | | }; |
| | | const data = reactive<PageData<LeaveForm, LeaveQuery>>({ |
| | | form: { ...initFormData }, |
| | |
| | | leaveTime.value = []; |
| | | leaveTime.value.push(form.value.startDate); |
| | | leaveTime.value.push(form.value.endDate); |
| | | if (form.value.processInstanceVo) { |
| | | processInstanceId.value = form.value.processInstanceVo.id; |
| | | } |
| | | loading.value = false; |
| | | buttonLoading.value = false; |
| | | }); |
| | |
| | | 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 = 'leave1'; |
| | | 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 () => { |