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