From 242ebea83e157c35eb260f80b50b9d77e7da509d Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 15 五月 2026 09:04:55 +0800
Subject: [PATCH] 进销存pro 1.设备报修加上验收过程

---
 src/views/equipmentManagement/repair/Modal/AcceptanceModal.vue |  144 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 144 insertions(+), 0 deletions(-)

diff --git a/src/views/equipmentManagement/repair/Modal/AcceptanceModal.vue b/src/views/equipmentManagement/repair/Modal/AcceptanceModal.vue
new file mode 100644
index 0000000..6d61a9f
--- /dev/null
+++ b/src/views/equipmentManagement/repair/Modal/AcceptanceModal.vue
@@ -0,0 +1,144 @@
+<template>
+  <FormDialog
+    v-model="visible"
+    title="楠屾敹瀹℃壒"
+    width="500px"
+    @confirm="submitForm"
+    @cancel="handleCancel"
+    @close="handleCancel"
+  >
+    <el-form :model="form" :rules="rules" label-width="100px">
+      <el-form-item label="楠屾敹浜�" prop="acceptanceName">
+        <el-select
+          v-model="form.acceptanceName"
+          placeholder="璇烽�夋嫨楠屾敹浜�"
+          filterable
+          style="width: 100%"
+        >
+          <el-option
+            v-for="item in userList"
+            :key="item.userId"
+            :label="item.nickName"
+            :value="item.nickName"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="楠屾敹鏃堕棿" prop="acceptanceTime">
+        <el-date-picker
+          v-model="form.acceptanceTime"
+          type="datetime"
+          placeholder="璇烽�夋嫨楠屾敹鏃堕棿"
+          format="YYYY-MM-DD HH:mm:ss"
+          value-format="YYYY-MM-DD HH:mm:ss"
+          style="width: 100%"
+        />
+      </el-form-item>
+      <el-form-item label="楠屾敹澶囨敞" prop="acceptanceRemark">
+        <el-input
+          v-model="form.acceptanceRemark"
+          type="textarea"
+          :rows="3"
+          placeholder="璇疯緭鍏ラ獙鏀跺娉�"
+        />
+      </el-form-item>
+    </el-form>
+  </FormDialog>
+</template>
+
+<script setup>
+import FormDialog from "@/components/Dialog/FormDialog.vue";
+import { ref, reactive } from "vue";
+import { ElMessage } from "element-plus";
+import { userListNoPageByTenantId } from "@/api/system/user.js";
+import { repairAcceptance } from "@/api/equipmentManagement/repair";
+import dayjs from "dayjs";
+
+defineOptions({
+  name: "楠屾敹瀹℃壒寮圭獥",
+});
+
+const emits = defineEmits(["ok"]);
+
+const visible = ref(false);
+const loading = ref(false);
+const repairId = ref(null);
+const userList = ref([]);
+
+const form = reactive({
+  acceptanceName: undefined,
+  acceptanceTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
+  acceptanceRemark: undefined,
+});
+
+const rules = {
+  acceptanceName: [
+    { required: true, message: "璇烽�夋嫨楠屾敹浜�", trigger: "change" },
+  ],
+  acceptanceTime: [
+    { required: true, message: "璇烽�夋嫨楠屾敹鏃堕棿", trigger: "change" },
+  ],
+  acceptanceRemark: [
+    { required: true, message: "璇疯緭鍏ラ獙鏀跺娉�", trigger: "blur" },
+  ],
+};
+
+// 鍔犺浇鐢ㄦ埛鍒楄〃
+const loadUserList = async () => {
+  const { data } = await userListNoPageByTenantId();
+  userList.value = data;
+};
+
+// 鎵撳紑寮圭獥
+const open = async (row) => {
+  repairId.value = row.id;
+  visible.value = true;
+  // 閲嶇疆琛ㄥ崟
+  form.acceptanceName = undefined;
+  form.acceptanceTime = dayjs().format("YYYY-MM-DD HH:mm:ss");
+  form.acceptanceRemark = undefined;
+  await loadUserList();
+};
+
+// 鎻愪氦琛ㄥ崟
+const submitForm = async () => {
+  if (!form.acceptanceName) {
+    ElMessage.warning("璇烽�夋嫨楠屾敹浜�");
+    return;
+  }
+  if (!form.acceptanceTime) {
+    ElMessage.warning("璇烽�夋嫨楠屾敹鏃堕棿");
+    return;
+  }
+  if (!form.acceptanceRemark) {
+    ElMessage.warning("璇疯緭鍏ラ獙鏀跺娉�");
+    return;
+  }
+
+  loading.value = true;
+  try {
+    const { code } = await repairAcceptance({
+      id: repairId.value,
+      acceptanceName: form.acceptanceName,
+      acceptanceTime: form.acceptanceTime,
+      acceptanceRemark: form.acceptanceRemark,
+    });
+    if (code === 200) {
+      ElMessage.success("楠屾敹閫氳繃");
+      visible.value = false;
+      emits("ok");
+    }
+  } finally {
+    loading.value = false;
+  }
+};
+
+const handleCancel = () => {
+  visible.value = false;
+};
+
+defineExpose({
+  open,
+});
+</script>
+
+<style lang="scss" scoped></style>

--
Gitblit v1.9.3