From f346dcb4e26bfca845b4825006af03affe089b8a Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 02 八月 2024 17:23:42 +0800
Subject: [PATCH] 对外支持模块

---
 src/components/form/FYForm.vue                    |   15 ++++++-
 src/views/fysp/support/components/FormDevice.vue  |   37 ++++++++++++++++++
 src/views/fysp/support/components/DeviceMatch.vue |   30 ++++++++++++++-
 3 files changed, 78 insertions(+), 4 deletions(-)

diff --git a/src/components/form/FYForm.vue b/src/components/form/FYForm.vue
index 94773fa..9c5405e 100644
--- a/src/components/form/FYForm.vue
+++ b/src/components/form/FYForm.vue
@@ -141,8 +141,19 @@
 );
 
 //鐩戝惉琛ㄥ崟缂栬緫鐘舵��
-watch(edit, (nValue) => {
-  emit('update:isEdit', nValue);
+watch(
+  () => props.isEdit,
+  (nV, oV) => {
+    if (nV != oV) {
+      edit.value = nV;
+    }
+  },
+  { immediate: true }
+);
+watch(edit, (nV, oV) => {
+  if (nV != oV) {
+    emit('update:isEdit', nV);
+  }
 });
 
 defineExpose({ formObj, onSubmit, onCancel, onReset });
diff --git a/src/views/fysp/support/components/DeviceMatch.vue b/src/views/fysp/support/components/DeviceMatch.vue
index 338bbe7..e9b046f 100644
--- a/src/views/fysp/support/components/DeviceMatch.vue
+++ b/src/views/fysp/support/components/DeviceMatch.vue
@@ -11,11 +11,20 @@
       <el-row justify="space-between">
         <div>
           <!-- <el-button type="primary" plain :disabled="!enabled">鍚嶇О鍚屾</el-button> -->
-          <el-button type="primary" plain :disabled="!enabled">褰曞叆璁惧淇℃伅</el-button>
+          <el-button type="primary" plain :disabled="!enabled" @click="setNewDevice"
+            >褰曞叆璁惧淇℃伅</el-button
+          >
         </div>
         <el-button type="danger" :disabled="!enabled">涓婁紶鍖归厤淇℃伅</el-button>
       </el-row>
-      <el-row></el-row>
+      <div v-if="newDevice">
+        <el-text>鏂板璁惧</el-text>
+        <FormDevice :form-info="newDevice" :is-edit="true" ></FormDevice>
+      </div>
+      <div v-if="deviceList.length > 0">
+        <el-text>宸叉湁璁惧</el-text>
+        <FormDevice v-for="item in deviceList" :key="item.diId" :form-info="item"></FormDevice>
+      </div>
     </template>
   </el-card>
 </template>
@@ -23,11 +32,16 @@
 import { ref, computed, watch } from 'vue';
 import deviceApi from '@/api/fysp/deviceApi';
 
+import FormDevice from './FormDevice.vue';
+
 const props = defineProps({
   device: Object,
   scene: Object
 });
 
+// 鏂板璁惧淇℃伅
+const newDevice = ref();
+// 鍦烘櫙宸叉湁璁惧淇℃伅
 const deviceList = ref([]);
 
 const enabled = computed(() => {
@@ -48,4 +62,16 @@
     deviceList.value = res.data;
   });
 }
+
+function setNewDevice() {
+  newDevice.value = {
+    diName: props.device.name,
+    diMnCode: props.device.code,
+    diType: 1,
+    diSupplier: null,
+    diMaintainer: null,
+    diRunningStatus: true,
+    diRemoved: false
+  };
+}
 </script>
diff --git a/src/views/fysp/support/components/FormDevice.vue b/src/views/fysp/support/components/FormDevice.vue
new file mode 100644
index 0000000..8e80c44
--- /dev/null
+++ b/src/views/fysp/support/components/FormDevice.vue
@@ -0,0 +1,37 @@
+<template>
+  <FYForm :form-info="formInfo" :rules="rules" :useReset="true" @submit="submit" @cancel="cancel">
+    <template #form-item="{ formObj }">
+      <el-form-item label="绔欑偣鍚嶇О" prop="diName">
+        <el-input clearable v-model="formObj.diName" placeholder="绔欑偣鍚嶇О" />
+      </el-form-item>
+      <el-form-item label="MN缂栧彿" prop="diMnCode">
+        <el-input clearable v-model="formObj.diMnCode" placeholder="MN缂栧彿" />
+      </el-form-item>
+      <el-form-item label="璁惧绫诲瀷" prop="diType">
+        <el-input clearable v-model="formObj.diType" placeholder="璁惧绫诲瀷" />
+      </el-form-item>
+      <el-form-item label="渚涘簲鍟�" prop="diSupplier">
+        <el-input clearable v-model="formObj.diSupplier" placeholder="渚涘簲鍟�" />
+      </el-form-item>
+      <el-form-item label="杩愮淮鍟�" prop="diMaintainer">
+        <el-input clearable v-model="formObj.diMaintainer" placeholder="杩愮淮鍟�" />
+      </el-form-item>
+      <el-form-item label="鏄惁涓婄嚎" prop="diRunningStatus">
+        <el-switch
+          v-model="formObj.diRunningStatus"
+          inline-prompt
+          active-text="鏄�"
+          inactive-text="鍚�"
+        />
+      </el-form-item>
+      <el-form-item label="鏄惁鎷嗛櫎" prop="diRemoved">
+        <el-switch v-model="formObj.diRemoved" inline-prompt active-text="鏄�" inactive-text="鍚�" />
+      </el-form-item>
+    </template>
+  </FYForm>
+</template>
+<script setup>
+const props = defineProps({
+  formInfo: Object
+});
+</script>

--
Gitblit v1.9.3