From 7bbab0e74d1d0208fa24ec67e3201427078980cd Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期日, 04 一月 2026 17:01:59 +0800
Subject: [PATCH] 器具校准,校准记录

---
 src/views/maintenance/Form/PlanForm.vue |  137 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 137 insertions(+), 0 deletions(-)

diff --git a/src/views/maintenance/Form/PlanForm.vue b/src/views/maintenance/Form/PlanForm.vue
new file mode 100644
index 0000000..df7bb7d
--- /dev/null
+++ b/src/views/maintenance/Form/PlanForm.vue
@@ -0,0 +1,137 @@
+<template>
+  <el-form :model="form" label-width="100px">
+    <el-form-item label="璁惧鍚嶇О">
+      <el-select
+        v-model="form.deviceLedgerId"
+        @change="setDeviceModel"
+        placeholder="璇烽�夋嫨璁惧"
+        filterable
+        default-first-option
+        :reserve-keyword="false"
+      >
+        <el-option
+          v-for="(item, index) in deviceOptions"
+          :key="index"
+          :label="item.deviceName"
+          :value="item.id"
+        ></el-option>
+      </el-select>
+    </el-form-item>
+    <el-form-item label="瑙勬牸鍨嬪彿">
+      <el-input
+        v-model="form.deviceModel"
+        placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"
+        disabled
+      />
+    </el-form-item>
+    <el-form-item label="褰曞叆浜�">
+      <el-select
+        v-model="form.createUser"
+        placeholder="璇烽�夋嫨"
+        filterable
+        default-first-option
+        :reserve-keyword="false"
+        clearable
+      >
+        <el-option
+          v-for="item in userList"
+          :key="item.userId"
+          :label="item.userName"
+          :value="item.userId"
+        />
+      </el-select>
+    </el-form-item>
+    <el-form-item v-if="id" label="淇濅慨鐘舵��">
+      <el-select v-model="form.status">
+        <el-option label="寰呬繚淇�" :value="0"></el-option>
+        <el-option label="瀹岀粨" :value="1"></el-option>
+        <el-option label="澶辫触" :value="2"></el-option>
+      </el-select>
+    </el-form-item>
+    <el-form-item label="璁″垝淇濆吇鏃ユ湡">
+      <el-date-picker
+        style="width: 100%"
+        v-model="form.maintenancePlanTime"
+        format="YYYY-MM-DD"
+        value-format="YYYY-MM-DD HH:mm:ss"
+        type="date"
+        placeholder="璇烽�夋嫨璁″垝淇濆吇鏃ユ湡鏃ユ湡"
+        clearable
+      />
+    </el-form-item>
+  </el-form>
+</template>
+
+<script setup>
+import useFormData from "../../../hooks/useFormData";
+import { getDeviceLedger } from "../../../api/equipmentManagement/ledger";
+import { onMounted } from "vue";
+import dayjs from "dayjs";
+import { userListNoPage } from "../../../api/system/user.js";
+
+defineOptions({
+  name: "璁″垝琛ㄥ崟",
+});
+
+const deviceOptions = ref([]);
+const loadDeviceName = async () => {
+  const { data } = await getDeviceLedger();
+  deviceOptions.value = data;
+};
+
+const { id } = defineProps(['id']);
+
+const { form, resetForm } = useFormData({
+  deviceLedgerId: undefined, // 璁惧Id
+  deviceName: undefined, // 璁惧鍚嶇О
+  deviceModel: undefined, // 瑙勬牸鍨嬪彿
+  maintenancePlanTime: undefined, // 璁″垝淇濆吇鏃ユ湡
+  createUser: undefined, // 褰曞叆浜�
+  status: 0, //淇濅慨鐘舵��
+});
+
+const setDeviceModel = (id) => {
+  const option = deviceOptions.value.find((item) => item.id === id);
+  form.deviceModel = option.deviceModel;
+};
+
+const getForm = () => {
+  return form;
+};
+
+/**
+ * @desc 璁剧疆琛ㄥ崟鍐呭
+ * @param data 璁惧淇℃伅
+ */
+const setForm = (data) => {
+  form.deviceLedgerId = data.deviceLedgerId;
+  form.deviceName = data.deviceName;
+  form.deviceModel = data.deviceModel;
+  form.createUser = Number(data.createUser);
+  form.status = data.status;
+  form.maintenancePlanTime = dayjs(data.maintenancePlanTime).format(
+    "YYYY-MM-DD HH:mm:ss"
+  );
+};
+
+// 鐢ㄦ埛鍒楄〃
+const userList = ref([]);
+
+const loadForm = () => {};
+
+onMounted(() => {
+  loadDeviceName();
+  userListNoPage().then((res) => {
+    userList.value = res.data;
+  });
+});
+
+defineExpose({
+  loadForm,
+  resetForm,
+  getForm,
+  setForm,
+});
+</script>
+
+<style lang="scss" scoped></style>

--
Gitblit v1.9.3