From 3baaad59171ded6aca17340fcc907acbeeb45b7b Mon Sep 17 00:00:00 2001 From: zhuguifei <zhuguifei@zhuguifeideiMac.local> Date: 星期二, 08 四月 2025 08:14:43 +0800 Subject: [PATCH] Merge branch 'main' of http://lanpucloud.cn:1111/r/eims-master --- eims-ui/apps/web-antd/src/views/eims/fault-know/fault-know-drawer.vue | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 114 insertions(+), 0 deletions(-) diff --git a/eims-ui/apps/web-antd/src/views/eims/fault-know/fault-know-drawer.vue b/eims-ui/apps/web-antd/src/views/eims/fault-know/fault-know-drawer.vue new file mode 100644 index 0000000..799fd77 --- /dev/null +++ b/eims-ui/apps/web-antd/src/views/eims/fault-know/fault-know-drawer.vue @@ -0,0 +1,114 @@ +<script setup lang="ts"> +import { computed, ref } from 'vue'; + +import { useVbenDrawer, useVbenModal } from '@vben/common-ui'; +import { $t } from '@vben/locales'; +import { cloneDeep } from '@vben/utils'; + +import { InputSearch } from 'ant-design-vue'; + +import { useVbenForm } from '#/adapter/form'; +import { addFaultKnow, getFaultKnow, updateFaultKnow } from '#/api/eims/fault-know'; +import CodeInput from '#/views/eims/components/code-input.vue'; +import equModal from '#/views/eims/components/equ-modal.vue'; + +import { drawerSchema } from './data'; + +const emit = defineEmits<{ reload: [] }>(); + +const isUpdate = ref(false); +const title = computed(() => { + return isUpdate.value ? $t('pages.common.edit') : $t('pages.common.add'); +}); + +const [BasicForm, formApi] = useVbenForm({ + commonConfig: { + formItemClass: 'col-span-2', + componentProps: { + class: 'w-full' + }, + labelWidth: 120 + }, + schema: drawerSchema(), + showDefaultActions: false, + wrapperClass: 'grid-cols-2' +}); + +const [BasicDrawer, drawerApi] = useVbenDrawer({ + onCancel: handleCancel, + onConfirm: handleConfirm, + async onOpenChange(isOpen) { + if (!isOpen) { + return null; + } + drawerApi.drawerLoading(true); + const { id } = drawerApi.getData() as { id?: number | string }; + + isUpdate.value = !!id; + + // 鏇存柊 && 璧嬪�� + if (isUpdate.value && id) { + const record = await getFaultKnow(id); + await formApi.setValues(record); + } + drawerApi.drawerLoading(false); + } +}); + +async function handleConfirm() { + try { + drawerApi.drawerLoading(true); + const { valid } = await formApi.validate(); + if (!valid) { + return; + } + const data = cloneDeep(await formApi.getValues()); + await (isUpdate.value ? updateFaultKnow(data) : addFaultKnow(data)); + emit('reload'); + await handleCancel(); + } catch (error) { + console.error(error); + } finally { + drawerApi.drawerLoading(false); + } +} + +async function handleCancel() { + drawerApi.close(); + await formApi.resetForm(); +} + +// EQU modal +const [EquModal, equModalApi] = useVbenModal({ + connectedComponent: equModal, + draggable: true, + title: '閫夋嫨璁惧' +}); + +function handleEquModal() { + equModalApi.setData({}); + equModalApi.open(); +} + +/** + * 鏇存柊閫夋嫨鐨勮澶� + * @param equ + */ +async function updateEqu(equ: any) { + await formApi.setValues({ 'equId': equ.equId, 'equName': equ.equName, 'equTypeId': equ.equTypeId }); +} +</script> + +<template> + <BasicDrawer :close-on-click-modal="false" :title="title" class="w-[600px]"> + <BasicForm> + <template #faultCode="slotProps"> + <CodeInput v-bind="slotProps" :disabled="isUpdate" prefix="GZZS" /> + </template> + <template #equName="slotProps"> + <InputSearch :enter-button="true" placeholder="璇烽�夋嫨璁惧" @search="handleEquModal" v-bind="slotProps" :disabled="isUpdate" /> + </template> + </BasicForm> + <EquModal class="w-[1200px]" @update-equ="updateEqu" /> + </BasicDrawer> +</template> -- Gitblit v1.9.3