From b95a00bf7ec7c667e16032bcabc4d97ef42909fc Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 18 五月 2026 15:27:20 +0800
Subject: [PATCH] feat: 设备保养添加任务状态
---
src/views/equipmentManagement/upkeep/index.vue | 24 ++++++++----
src/views/equipmentManagement/upkeep/Form/PlanModal.vue | 9 +++-
src/views/equipmentManagement/upkeep/Form/formDia.vue | 22 ++++++++--
src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue | 21 +++++++---
4 files changed, 54 insertions(+), 22 deletions(-)
diff --git a/src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue b/src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue
index 6b574a5..7de50e9 100644
--- a/src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue
+++ b/src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue
@@ -10,8 +10,9 @@
<el-form :model="form" label-width="100px">
<el-form-item label="瀹為檯淇濆吇浜�">
<el-input
- v-model="form.maintenanceActuallyName"
- placeholder="璇疯緭鍏ュ疄闄呬繚鍏讳汉"
+ :model-value="currentUserName"
+ disabled
+ placeholder="褰撳墠鐧诲綍鐢ㄦ埛"
></el-input>
</el-form-item>
<el-form-item label="瀹為檯淇濆吇鏃ユ湡">
@@ -48,6 +49,7 @@
</template>
<script setup>
+import { computed } from "vue";
import FormDialog from "@/components/Dialog/FormDialog.vue";
import { addMaintenance } from "@/api/equipmentManagement/upkeep";
import useFormData from "@/hooks/useFormData";
@@ -67,6 +69,8 @@
const loading = ref(false);
const userStore = useUserStore();
+const currentUserName = computed(() => userStore.nickName || userStore.name || "");
+
const { form, resetForm } = useFormData({
maintenanceActuallyName: undefined, // 瀹為檯淇濆吇浜�
maintenanceActuallyTime: undefined, // 瀹為檯淇濆吇鏃ユ湡
@@ -75,10 +79,10 @@
});
const setForm = (data) => {
- form.maintenanceActuallyName =
- data.maintenanceActuallyName ?? userStore.nickName;
+ // 瀹為檯淇濆吇浜鸿嚜鍔ㄥ~鍏呭綋鍓嶇櫥褰曚汉锛屼笉鍙紪杈�
+ form.maintenanceActuallyName = userStore.nickName || userStore.name || "";
form.maintenanceActuallyTime =
- data.maintenanceActuallyTime
+ data.maintenanceActuallyTime
? dayjs(data.maintenanceActuallyTime).format("YYYY-MM-DD HH:mm:ss")
: dayjs().format("YYYY-MM-DD HH:mm:ss");
form.maintenanceResult = data.maintenanceResult;
@@ -91,7 +95,12 @@
const sendForm = async () => {
loading.value = true;
try {
- const { code } = await addMaintenance({ id: planId.value, ...form });
+ // 纭繚瀹為檯淇濆吇浜烘槸褰撳墠鐧诲綍浜�
+ const payload = {
+ ...form,
+ maintenanceActuallyName: userStore.nickName || userStore.name || "",
+ };
+ const { code } = await addMaintenance({ id: planId.value, ...payload });
if (code == 200) {
ElMessage.success("淇濆吇鎴愬姛");
emits("ok");
diff --git a/src/views/equipmentManagement/upkeep/Form/PlanModal.vue b/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
index 2df504e..0ba259d 100644
--- a/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
+++ b/src/views/equipmentManagement/upkeep/Form/PlanModal.vue
@@ -7,7 +7,7 @@
@cancel="handleCancel"
@close="handleClose"
>
- <el-form :model="form" label-width="100px">
+ <el-form :model="form" :rules="rules" label-width="100px">
<el-form-item label="璁惧鍚嶇О">
<el-select
v-model="form.deviceLedgerId"
@@ -39,14 +39,13 @@
placeholder="褰撳墠鐧诲綍鐢ㄦ埛"
/>
</el-form-item>
- <el-form-item label="淇濆吇浜�">
+ <el-form-item label="淇濆吇浜�" prop="maintenancePerson">
<el-select
v-model="form.maintenancePerson"
filterable
default-first-option
:reserve-keyword="false"
placeholder="璇烽�夋嫨淇濆吇浜�"
- clearable
style="width: 100%"
>
<el-option
@@ -138,6 +137,10 @@
() => userStore.nickName || userStore.name || "褰撳墠鐧诲綍鐢ㄦ埛"
);
+const rules = {
+ maintenancePerson: [{ required: true, message: "璇烽�夋嫨淇濆吇浜�", trigger: "change" }],
+};
+
const syncCreateUserFromLogin = () => {
if (userStore.id != null && userStore.id !== "") {
form.createUser = userStore.id;
diff --git a/src/views/equipmentManagement/upkeep/Form/formDia.vue b/src/views/equipmentManagement/upkeep/Form/formDia.vue
index 4c07007..a33a695 100644
--- a/src/views/equipmentManagement/upkeep/Form/formDia.vue
+++ b/src/views/equipmentManagement/upkeep/Form/formDia.vue
@@ -75,6 +75,17 @@
/>
</el-form-item>
</el-col>
+ <el-col :span="12">
+ <el-form-item label="浠诲姟鐘舵��">
+ <el-switch
+ v-model="form.isActive"
+ :active-value="1"
+ :inactive-value="0"
+ active-text="鍚敤"
+ inactive-text="鍋滅敤"
+ />
+ </el-form-item>
+ </el-col>
</el-row>
<el-row>
<el-col :span="12">
@@ -185,7 +196,8 @@
week: '',
time: '',
deviceModel: undefined, // 瑙勬牸鍨嬪彿
- registrationDate: ''
+ registrationDate: '',
+ isActive: 0, // 浠诲姟鐘舵�侊細0-鍋滅敤锛�1-鍚敤
},
rules: {
taskId: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
@@ -301,7 +313,8 @@
week: '',
time: '',
deviceModel: undefined,
- registrationDate: ''
+ registrationDate: '',
+ isActive: 0,
}
}
@@ -335,10 +348,9 @@
// 褰曞叆鏃ユ湡锛氱洿鎺ヤ娇鐢ㄨ〃鍗曢噷鐨� registrationDate 瀛楁
// 涓�浜涢粯璁ょ姸鎬佸瓧娈�
- if (payload.status === undefined || payload.status === null || payload.status === '') {
- payload.status = '0' // 榛樿鐘舵�侊紝鍙寜瀹為檯鏋氫妇璋冩暣
+ if (payload.isActive === undefined || payload.isActive === null) {
+ payload.isActive = 0 // 榛樿鍋滅敤
}
- payload.active = true
payload.deleted = 0
if (operationType.value === 'edit') {
diff --git a/src/views/equipmentManagement/upkeep/index.vue b/src/views/equipmentManagement/upkeep/index.vue
index 9820910..56e54c7 100644
--- a/src/views/equipmentManagement/upkeep/index.vue
+++ b/src/views/equipmentManagement/upkeep/index.vue
@@ -16,9 +16,9 @@
/>
</el-form-item>
<el-form-item label="浠诲姟鐘舵��">
- <el-select v-model="scheduledFilters.status" placeholder="璇烽�夋嫨浠诲姟鐘舵��" clearable style="width: 200px">
- <el-option label="鍚敤" value="1" />
- <el-option label="鍋滅敤" value="0" />
+ <el-select v-model="scheduledFilters.isActive" placeholder="璇烽�夋嫨浠诲姟鐘舵��" clearable style="width: 200px">
+ <el-option label="鍚敤" :value="1" />
+ <el-option label="鍋滅敤" :value="0" />
</el-select>
</el-form-item>
<el-form-item>
@@ -58,8 +58,8 @@
@pagination="changeScheduledPage"
>
<template #statusRef="{ row }">
- <el-tag v-if="row.status === 1" type="success">鍚敤</el-tag>
- <el-tag v-if="row.status === 0" type="danger">鍋滅敤</el-tag>
+ <el-tag v-if="row.isActive === 1" type="success">鍚敤</el-tag>
+ <el-tag v-if="row.isActive === 0" type="danger">鍋滅敤</el-tag>
</template>
<template #operation="{ row }">
<el-button
@@ -315,7 +315,7 @@
// 瀹氭椂浠诲姟绠$悊tab鐩稿叧鍙橀噺
const scheduledFilters = reactive({
taskName: '',
- status: '',
+ isActive: '',
})
const scheduledDataList = ref([])
@@ -375,6 +375,14 @@
showOverflowTooltip: true,
},
{ prop: "registrationDate", label: "鐧昏鏃ユ湡", minWidth: 100 },
+ {
+ label: "浠诲姟鐘舵��",
+ prop: "isActive",
+ minWidth: 100,
+ dataType: "slot",
+ slot: "statusRef",
+ align: "center",
+ },
{
fixed: "right",
label: "鎿嶄綔",
@@ -478,7 +486,7 @@
current: scheduledPagination.currentPage,
size: scheduledPagination.pageSize,
taskName: scheduledFilters.taskName || undefined,
- status: scheduledFilters.status || undefined,
+ isActive: scheduledFilters.isActive !== '' ? scheduledFilters.isActive : undefined,
}
const { code, data } = await deviceMaintenanceTaskList(params)
if (code === 200) {
@@ -492,7 +500,7 @@
const resetScheduledFilters = () => {
scheduledFilters.taskName = ''
- scheduledFilters.status = ''
+ scheduledFilters.isActive = ''
getScheduledTableData()
}
--
Gitblit v1.9.3