From a7dc7b230fcc6abc6ee5a7bfadb90789b03d2ca8 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期一, 07 九月 2026 16:45:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro2.0' into dev_pro2.0
---
src/views/hrm/leave/index.vue | 50 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 45 insertions(+), 5 deletions(-)
diff --git a/src/views/hrm/leave/index.vue b/src/views/hrm/leave/index.vue
index e7ae028..d088fc2 100644
--- a/src/views/hrm/leave/index.vue
+++ b/src/views/hrm/leave/index.vue
@@ -2,9 +2,11 @@
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { HrmLeaveApi } from '#/api/hrm/leave';
+import { ref } from 'vue';
+
import { Page, useVbenModal } from '#/packages/effects/common-ui/src';
-import { message, Tag } from 'ant-design-vue';
+import { message, Modal, Select, Tag } from 'ant-design-vue';
import { DICT_TYPE } from '#/packages/constants/src';
import { getDictLabel } from '#/packages/effects/hooks/src';
@@ -13,6 +15,7 @@
import {
cancelLeave,
deleteLeave,
+ getLeaveApproveProcessDefinitionList,
getLeavePage,
submitLeave,
} from '#/api/hrm/leave';
@@ -61,11 +64,34 @@
}
}
-/** 鎻愪氦璇峰亣鐢宠 */
+const submitModalVisible = ref(false);
+const currentRow = ref<HrmLeaveApi.Leave>();
+const processList = ref<HrmLeaveApi.ApproveProcess[]>([]);
+const selectedProcessKey = ref<string>();
+const submitLoading = ref(false);
+
+/** 鎻愪氦璇峰亣鐢宠锛堝厛閫夋嫨瀹℃壒娴佺▼锛� */
async function handleSubmit(row: HrmLeaveApi.Leave) {
- await submitLeave(row.id!);
- message.success('鎻愪氦鎴愬姛');
- handleRefresh();
+ processList.value = await getLeaveApproveProcessDefinitionList();
+ currentRow.value = row;
+ selectedProcessKey.value = undefined;
+ submitModalVisible.value = true;
+}
+
+async function confirmSubmit() {
+ if (!selectedProcessKey.value) {
+ message.warning('璇烽�夋嫨璇峰亣瀹℃壒娴佺▼');
+ return;
+ }
+ submitLoading.value = true;
+ try {
+ await submitLeave(currentRow.value!.id!, selectedProcessKey.value);
+ message.success('鎻愪氦鎴愬姛');
+ submitModalVisible.value = false;
+ handleRefresh();
+ } finally {
+ submitLoading.value = false;
+ }
}
/** 鎾ら攢璇峰亣鐢宠 */
@@ -187,5 +213,19 @@
/>
</template>
</Grid>
+ <Modal
+ v-model:open="submitModalVisible"
+ title="鎻愪氦鑷冲崗鍚屽姙鍏�"
+ width="420px"
+ :confirm-loading="submitLoading"
+ @ok="confirmSubmit"
+ >
+ <Select
+ v-model:value="selectedProcessKey"
+ class="w-full"
+ placeholder="璇烽�夋嫨璇峰亣瀹℃壒娴佺▼"
+ :options="processList.map((item) => ({ label: item.name, value: item.key }))"
+ />
+ </Modal>
</Page>
</template>
\ No newline at end of file
--
Gitblit v1.9.3