From 2df121072ba5274867324aae415c3735742711cd Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: 星期五, 19 四月 2024 22:13:26 +0800
Subject: [PATCH] fix 修改默认没有候选人与候选组时点击选择出现tag标签选中全部问题
---
src/views/workflow/leave/index.vue | 206 ++++++++-------------------------------------------
1 files changed, 33 insertions(+), 173 deletions(-)
diff --git a/src/views/workflow/leave/index.vue b/src/views/workflow/leave/index.vue
index c7550b2..2e8a9b7 100644
--- a/src/views/workflow/leave/index.vue
+++ b/src/views/workflow/leave/index.vue
@@ -2,7 +2,7 @@
<div class="p-2">
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
<div v-show="showSearch" class="search">
- <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="68px">
+ <el-form ref="queryFormRef" :model="queryParams" :inline="true">
<el-form-item label="璇峰亣澶╂暟" prop="startLeaveDays">
<el-input v-model="queryParams.startLeaveDays" placeholder="璇疯緭鍏ヨ鍋囧ぉ鏁�" clearable @keyup.enter="handleQuery" />
</el-form-item>
@@ -51,9 +51,9 @@
</el-table-column>
<el-table-column label="璇峰亣澶╂暟" align="center" prop="leaveDays" />
<el-table-column label="璇峰亣鍘熷洜" align="center" prop="remark" />
- <el-table-column align="center" prop="businessStatusName" label="娴佺▼鐘舵��" min-width="70">
+ <el-table-column align="center" label="娴佺▼鐘舵��" min-width="70">
<template #default="scope">
- <el-tag type="success">{{ scope.row.processInstanceVo.businessStatusName }}</el-tag>
+ <dict-tag :options="wf_business_status" :value="scope.row.processInstanceVo.businessStatus"></dict-tag>
</template>
</el-table-column>
<el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
@@ -80,11 +80,11 @@
>
<el-button v-hasPermi="['demo:leave:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
</el-tooltip>
+ <el-tooltip placement="top" content="鏌ョ湅">
+ <el-button link type="primary" icon="View" @click="handleView(scope.row)"></el-button>
+ </el-tooltip>
<el-tooltip v-if="scope.row.processInstanceVo.businessStatus === 'waiting'" content="鎾ら攢" placement="top">
<el-button link type="primary" icon="Notification" @click="handleCancelProcessApply(scope.row.processInstanceVo.id)"></el-button>
- </el-tooltip>
- <el-tooltip v-if="scope.row.processInstanceVo.businessStatus === 'waiting'" content="瀹℃壒璁板綍" placement="top">
- <el-button link type="primary" icon="Document" @click="handleApprovalRecord(scope.row.processInstanceVo.id)"></el-button>
</el-tooltip>
</template>
</el-table-column>
@@ -92,66 +92,23 @@
<pagination v-show="total > 0" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" :total="total" @pagination="getList" />
</el-card>
- <!-- 娣诲姞鎴栦慨鏀硅鍋囧璇濇 -->
- <el-dialog v-model="dialog.visible" :title="dialog.title" width="800px" append-to-body>
- <el-form ref="leaveFormRef" 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="璇峰亣鏃堕棿">
- <el-date-picker
- v-model="leaveTime"
- type="daterange"
- range-separator="To"
- start-placeholder="寮�濮嬫椂闂�"
- end-placeholder="缁撴潫鏃堕棿"
- @change="changeLeaveTime()"
- />
- </el-form-item>
- <el-form-item label="璇峰亣澶╂暟" prop="leaveDays">
- <el-input v-model="form.leaveDays" disabled type="number" placeholder="璇疯緭鍏ヨ鍋囧ぉ鏁�" />
- </el-form-item>
- <el-form-item label="璇峰亣鍘熷洜" prop="remark">
- <el-input v-model="form.remark" type="textarea" :rows="3" placeholder="璇疯緭鍏ヨ鍋囧師鍥�" />
- </el-form-item>
- </el-form>
- <template #footer>
- <div class="dialog-footer">
- <el-button :loading="buttonLoading" type="info" @click="submitForm('draft')">鏆� 瀛�</el-button>
- <el-button :loading="buttonLoading" type="primary" @click="submitForm('submit')">鎻� 浜�</el-button>
- <el-button @click="cancel">鍙� 娑�</el-button>
- </div>
- </template>
- </el-dialog>
- <!-- 鎻愪氦缁勪欢 -->
- <submitVerify ref="submitVerifyRef" :task-variables="taskVariables" @submit-callback="submitCallback" />
- <!-- 瀹℃壒璁板綍 -->
- <approvalRecord ref="approvalRecordRef" />
</div>
</template>
<script setup name="Leave" lang="ts">
-import { addLeave, delLeave, getLeave, listLeave, updateLeave } from '@/api/workflow/leave';
+import { delLeave, listLeave } from '@/api/workflow/leave';
import { cancelProcessApply } from '@/api/workflow/processInstance';
import { LeaveForm, LeaveQuery, LeaveVO } from '@/api/workflow/leave/types';
-import { startWorkFlow } from '@/api/workflow/task';
-import SubmitVerify from '@/components/Process/submitVerify.vue';
-import ApprovalRecord from '@/components/Process/approvalRecord.vue';
-import { AxiosResponse } from 'axios';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-
+const { wf_business_status } = toRefs<any>(proxy?.useDict('wf_business_status'));
const leaveList = ref<LeaveVO[]>([]);
-const buttonLoading = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
-const leaveTime = ref<Array<string>>([]);
const options = [
{
value: '1',
@@ -170,51 +127,21 @@
label: '濠氬亣'
}
];
-//鎻愪氦缁勪欢
-const submitVerifyRef = ref<InstanceType<typeof SubmitVerify>>();
-//瀹℃壒璁板綍缁勪欢
-const approvalRecordRef = ref<InstanceType<typeof ApprovalRecord>>();
const queryFormRef = ref<ElFormInstance>();
-const leaveFormRef = ref<ElFormInstance>();
-const submitFormData = ref<Record<string, any>>({
- businessKey: '',
- processKey: '',
- variables: {}
-});
-const taskVariables = ref<Record<string, any>>({});
-
-const dialog = reactive<DialogOption>({
- visible: false,
- title: ''
-});
-
-const initFormData: LeaveForm = {
- id: undefined,
- leaveType: undefined,
- startDate: undefined,
- endDate: undefined,
- leaveDays: undefined,
- remark: undefined
-};
const data = reactive<PageData<LeaveForm, LeaveQuery>>({
- form: { ...initFormData },
+ form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
startLeaveDays: undefined,
endLeaveDays: undefined
},
- rules: {
- id: [{ required: true, message: '涓婚敭涓嶈兘涓虹┖', trigger: 'blur' }],
- leaveType: [{ required: true, message: '璇峰亣绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }],
- leaveTime: [{ required: true, message: '璇峰亣鏃堕棿涓嶈兘涓虹┖', trigger: 'blur' }],
- leaveDays: [{ required: true, message: '璇峰亣澶╂暟涓嶈兘涓虹┖', trigger: 'blur' }]
- }
+ rules: {}
});
-const { queryParams, form, rules } = toRefs(data);
+const { queryParams } = toRefs(data);
/** 鏌ヨ璇峰亣鍒楄〃 */
const getList = async () => {
@@ -223,19 +150,6 @@
leaveList.value = res.rows;
total.value = res.total;
loading.value = false;
-};
-
-/** 鍙栨秷鎸夐挳 */
-const cancel = () => {
- reset();
- dialog.visible = false;
-};
-
-/** 琛ㄥ崟閲嶇疆 */
-const reset = () => {
- form.value = { ...initFormData };
- leaveTime.value = [];
- leaveFormRef.value?.resetFields();
};
/** 鎼滅储鎸夐挳鎿嶄綔 */
@@ -259,61 +173,36 @@
/** 鏂板鎸夐挳鎿嶄綔 */
const handleAdd = () => {
- dialog.visible = true;
- dialog.title = '娣诲姞璇峰亣鐢宠';
- nextTick(() => {
- reset();
+ proxy.$tab.closePage(proxy.$route);
+ proxy.$router.push(`/demo/leaveEdit/index/add/add`);
+ proxy.$router.push({
+ path: `/demo/leaveEdit/index`,
+ query: {
+ type: 'add'
+ }
});
};
-const changeLeaveTime = () => {
- const startDate = new Date(leaveTime.value[0]).getTime();
- const endDate = new Date(leaveTime.value[1]).getTime();
- const diffInMilliseconds = endDate - startDate;
- form.value.leaveDays = Math.floor(diffInMilliseconds / (1000 * 60 * 60 * 24));
-};
/** 淇敼鎸夐挳鎿嶄綔 */
const handleUpdate = (row?: LeaveVO) => {
- buttonLoading.value = false;
- dialog.visible = true;
- dialog.title = '淇敼璇峰亣鐢宠';
- nextTick(async () => {
- reset();
- const _id = row?.id || ids.value[0];
- const res = await getLeave(_id);
- Object.assign(form.value, res.data);
- leaveTime.value = [];
- leaveTime.value.push(form.value.startDate);
- leaveTime.value.push(form.value.endDate);
+ proxy.$tab.closePage(proxy.$route);
+ proxy.$router.push({
+ path: `/demo/leaveEdit/index`,
+ query: {
+ id: row.id,
+ type: 'update'
+ }
});
};
-/** 鎻愪氦鎸夐挳 */
-const submitForm = (status: string) => {
- if (leaveTime.value.length === 0) {
- 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);
- }
- form.value = res.data;
- if (status === 'draft') {
- buttonLoading.value = false;
- proxy?.$modal.msgSuccess('鏆傚瓨鎴愬姛');
- dialog.visible = false;
- await getList();
- } else {
- await handleStartWorkFlow(res.data);
- }
+/** 鏌ョ湅鎸夐挳鎿嶄綔 */
+const handleView = (row?: LeaveVO) => {
+ proxy.$tab.closePage(proxy.$route);
+ proxy.$router.push({
+ path: `/demo/leaveEdit/index`,
+ query: {
+ id: row.id,
+ type: 'view'
}
});
};
@@ -338,35 +227,6 @@
);
};
-//鎻愪氦鐢宠
-const handleStartWorkFlow = async (data: LeaveVO) => {
- submitFormData.value.processKey = 'leave7';
- 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) {
- buttonLoading.value = false;
- submitVerifyRef.value.openDialog(resp.data.taskId);
- }
-};
-//瀹℃壒璁板綍
-const handleApprovalRecord = (id: string) => {
- if (approvalRecordRef.value) {
- approvalRecordRef.value.init(id);
- }
-};
-//鎻愪氦鍥炶皟
-const submitCallback = async () => {
- dialog.visible = false;
- handleQuery();
-};
/** 鎾ら攢鎸夐挳鎿嶄綔 */
const handleCancelProcessApply = async (id: string) => {
await proxy?.$modal.confirm('鏄惁纭鎾ら攢褰撳墠鍗曟嵁锛�');
--
Gitblit v1.9.3