From f36f2f20bfb06dc3ca1b69c8a6d260d09d7d70ba Mon Sep 17 00:00:00 2001
From: 曹睿 <360930172@qq.com>
Date: 星期五, 27 六月 2025 17:29:13 +0800
Subject: [PATCH] feat: 新增设备报修模块。

---
 src/views/equipmentManagement/repair/Form/RepairForm.vue |  112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 112 insertions(+), 0 deletions(-)

diff --git a/src/views/equipmentManagement/repair/Form/RepairForm.vue b/src/views/equipmentManagement/repair/Form/RepairForm.vue
new file mode 100644
index 0000000..6ded5fe
--- /dev/null
+++ b/src/views/equipmentManagement/repair/Form/RepairForm.vue
@@ -0,0 +1,112 @@
+<template>
+  <el-form :model="form" label-width="100px">
+    <el-row>
+      <el-col :span="12">
+        <el-form-item label="璁惧鍚嶇О">
+          <el-select v-model="form.deviceLedgerId" @change="setDeviceModel">
+            <el-option
+              v-for="(item, index) in deviceOptions"
+              :key="index"
+              :label="item.deviceName"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item label="瑙勬牸鍨嬪彿">
+          <el-input
+            v-model="form.deviceModel"
+            placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"
+            disabled
+          />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item label="鎶ヤ慨鏃ユ湡">
+          <el-date-picker
+            v-model="form.repairTime"
+            placeholder="璇烽�夋嫨鎶ヤ慨鏃ユ湡"
+            format="YYYY-MM-DD"
+            value-format="YYYY-MM-DD"
+            type="date"
+            clearable
+            style="width: 100%"
+          />
+        </el-form-item>
+      </el-col>
+      <el-col :span="12">
+        <el-form-item label="鎶ヤ慨浜�">
+          <el-input v-model="form.repairName" placeholder="璇疯緭鍏ユ姤淇汉" />
+        </el-form-item>
+      </el-col>
+      <el-col :span="24">
+        <el-form-item label="鏁呴殰鐜拌薄">
+          <el-input
+            v-model="form.remark"
+            :rows="2"
+            type="textarea"
+            placeholder="璇疯緭鍏ユ晠闅滅幇璞�"
+          />
+        </el-form-item>
+      </el-col>
+    </el-row>
+  </el-form>
+</template>
+
+<script setup>
+import useFormData from "@/hooks/useFormData";
+import { getDeviceLedger } from "@/api/equipmentManagement/ledger";
+import { onMounted } from "vue";
+
+defineOptions({
+  name: "璁惧鎶ヤ慨琛ㄥ崟",
+});
+
+const deviceOptions = ref([]);
+
+const loadDeviceName = async () => {
+  const { data } = await getDeviceLedger();
+  deviceOptions.value = data;
+};
+
+const { form, resetForm } = useFormData({
+  deviceLedgerId: undefined, // 璁惧Id
+  deviceName: undefined, // 璁惧鍚嶇О
+  deviceModel: undefined, // 瑙勬牸鍨嬪彿
+  repairTime: undefined, // 鎶ヤ慨鏃ユ湡
+  repairName: undefined, // 鎶ヤ慨浜�
+  remark: undefined, // 鏁呴殰鐜拌薄
+});
+
+const setDeviceModel = (id) => {
+  const option = deviceOptions.value.find((item) => item.id === id);
+  form.deviceModel = option.deviceModel;
+};
+
+const getForm = () => {
+  return form;
+};
+
+const setForm = (data) => {
+  form.deviceLedgerId = data.deviceLedgerId;
+  form.deviceName = data.deviceName;
+  form.deviceModel = data.deviceModel;
+  form.repairTime = data.repairTime;
+  form.repairName = data.repairName;
+  form.remark = data.remark;
+};
+
+onMounted(() => {
+  loadDeviceName();
+});
+
+defineExpose({
+  loadDeviceName,
+  resetForm,
+  getForm,
+  setForm,
+});
+</script>
+
+<style lang="scss" scoped></style>

--
Gitblit v1.9.3