From 10a440fac0dd665bf4af78e1e3c913dcf893bf10 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 02 六月 2026 10:00:28 +0800
Subject: [PATCH] 新疆马铃薯 1.设备保养、设备验收添加验收人
---
src/views/equipmentManagement/repair/Modal/RepairModal.vue | 203 ++++++++++++++++++++++++++++++++++----------------
1 files changed, 137 insertions(+), 66 deletions(-)
diff --git a/src/views/equipmentManagement/repair/Modal/RepairModal.vue b/src/views/equipmentManagement/repair/Modal/RepairModal.vue
index 022ae6f..b7c3d35 100644
--- a/src/views/equipmentManagement/repair/Modal/RepairModal.vue
+++ b/src/views/equipmentManagement/repair/Modal/RepairModal.vue
@@ -59,43 +59,96 @@
</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-date-picker v-model="form.repairTime"
+ placeholder="璇烽�夋嫨鎶ヤ慨鏃ユ湡"
+ format="YYYY-MM-DD"
+ value-format="YYYY-MM-DD"
+ type="date"
+ clearable
+ style="width: 100%"
+ :disabled="operationType === 'view'" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="鎶ヤ慨浜�">
- <el-input v-model="form.repairName" placeholder="璇疯緭鍏ユ姤淇汉" />
+ <el-input v-model="form.repairName"
+ placeholder="璇疯緭鍏ユ姤淇汉"
+ :disabled="operationType === 'view'" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鎶ヤ慨鎶ヤ慨椤圭洰">
+ <el-input v-model="form.machineryCategory"
+ placeholder="璇疯緭鍏ユ姤淇姤淇」鐩�"
+ :disabled="operationType === 'view'" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="缁翠慨浜�">
+ <el-input v-model="form.maintenanceName"
+ placeholder="璇疯緭鍏ョ淮淇汉濮撳悕"
+ :disabled="operationType === 'view'" />
</el-form-item>
</el-col>
</el-row>
<el-row v-if="id">
<el-col :span="12">
<el-form-item label="鎶ヤ慨鐘舵��">
- <el-select v-model="form.status">
- <el-option label="寰呯淮淇�" :value="0" />
- <el-option label="瀹岀粨" :value="1" />
- <el-option label="澶辫触" :value="2" />
+ <el-select v-model="form.status"
+ disabled>
+ <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-col>
+ </el-row>
+ <!-- 楠屾敹淇℃伅灞曠ず -->
+ <el-row v-if="id && (form.status === 1 || form.status === 3)">
+ <el-col :span="12">
+ <el-form-item label="楠屾敹浜�">
+ <el-input v-model="form.acceptanceName"
+ disabled />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="楠屾敹鏃堕棿">
+ <el-input v-model="form.acceptanceTime"
+ disabled />
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="楠屾敹澶囨敞">
+ <el-input v-model="form.acceptanceRemark"
+ type="textarea"
+ :rows="2"
+ disabled />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="鏁呴殰鐜拌薄">
- <el-input
- v-model="form.remark"
- :rows="2"
- type="textarea"
- placeholder="璇疯緭鍏ユ晠闅滅幇璞�"
- />
+ <el-input v-model="form.remark"
+ :rows="2"
+ type="textarea"
+ placeholder="璇疯緭鍏ユ晠闅滅幇璞�"
+ :disabled="operationType === 'view'" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row v-if="operationType !== 'view'"
+ :gutter="30">
+ <el-col :span="24">
+ <el-form-item label="闄勪欢"
+ prop="attachmentIds">
+ <FileUpload v-model:file-list="form.storageBlobDTOs"
+ :disabled="operationType === 'view'" />
</el-form-item>
</el-col>
</el-row>
@@ -104,21 +157,18 @@
</template>
<script setup>
-import { nextTick, ref, unref } from "vue";
-import dayjs from "dayjs";
-import { ElMessage } from "element-plus";
-import FormDialog from "@/components/Dialog/FormDialog.vue";
-import useFormData from "@/hooks/useFormData";
-import useUserStore from "@/store/modules/user";
-import {
- addRepair,
- editRepair,
- getRepairById,
-} from "@/api/equipmentManagement/repair";
-import {
- getDeviceAreaTree,
- getDeviceAreaTreeWithDevices,
-} from "@/api/equipmentManagement/deviceArea";
+ import FormDialog from "@/components/Dialog/FormDialog.vue";
+ import FileUpload from "@/components/AttachmentUpload/file/index.vue";
+ import {
+ addRepair,
+ editRepair,
+ getRepairById,
+ } from "@/api/equipmentManagement/repair";
+ import { ElMessage } from "element-plus";
+ import dayjs from "dayjs";
+ import useFormData from "@/hooks/useFormData";
+ import { getDeviceLedger } from "@/api/equipmentManagement/ledger";
+ import useUserStore from "@/store/modules/user";
defineOptions({
name: "璁惧鎶ヤ慨寮圭獥",
@@ -126,16 +176,26 @@
const emits = defineEmits(["ok"]);
-const id = ref();
-const visible = ref(false);
-const loading = ref(false);
-const userStore = useUserStore();
-const areaOptions = ref([]);
-const deviceOptions = ref([]);
-const areaTreeProps = {
- label: "areaName",
- children: "children",
-};
+ const id = ref();
+ const visible = ref(false);
+ const loading = ref(false);
+ const operationType = ref(""); // add, edit, view
+
+ const computedTitle = computed(() => {
+ if (operationType.value === "add") return "鏂板璁惧鎶ヤ慨";
+ if (operationType.value === "edit") return "缂栬緫璁惧鎶ヤ慨";
+ if (operationType.value === "view") return "璁惧鎶ヤ慨璇︽儏";
+ return "";
+ });
+
+ const userStore = useUserStore();
+ const deviceOptions = ref([]);
+ const fileList = ref([]);
+
+ const loadDeviceName = async () => {
+ const { data } = await getDeviceLedger();
+ deviceOptions.value = data;
+ };
const { form, resetForm } = useFormData({
areaId: undefined,
@@ -314,29 +374,40 @@
visible.value = false;
};
-const openAdd = async () => {
- id.value = undefined;
- visible.value = true;
- await nextTick();
- await loadAreaTree();
- deviceOptions.value = [];
-};
+ const openAdd = async () => {
+ id.value = undefined;
+ operationType.value = "add";
+ visible.value = true;
+ fileList.value = [];
+ await nextTick();
+ await loadDeviceName();
+ };
-const openEdit = async (editId) => {
- const { data } = await getRepairById(editId);
- id.value = editId;
- visible.value = true;
- await nextTick();
- await loadAreaTree();
- setForm(data);
- await loadDevicesByArea(form.areaId);
- syncDeviceFields(form.deviceLedgerIds);
-};
+ const openEdit = async editId => {
+ const { data } = await getRepairById(editId);
+ id.value = editId;
+ operationType.value = "edit";
+ visible.value = true;
+ await nextTick();
+ await loadDeviceName();
+ setForm(data);
+ };
-defineExpose({
- openAdd,
- openEdit,
-});
+ const openView = async viewId => {
+ const { data } = await getRepairById(viewId);
+ id.value = viewId;
+ operationType.value = "view";
+ visible.value = true;
+ await nextTick();
+ await loadDeviceName();
+ setForm(data);
+ };
+
+ defineExpose({
+ openAdd,
+ openEdit,
+ openView,
+ });
</script>
<style lang="scss" scoped></style>
--
Gitblit v1.9.3