From a7a9f53ef126659f664f5cbfe4eb10bebdfc4a6a Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 19 五月 2026 23:33:56 +0800
Subject: [PATCH] feat: 设备巡检修改
---
src/views/equipmentManagement/inspectionManagement/components/formDia.vue | 153 ++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 138 insertions(+), 15 deletions(-)
diff --git a/src/views/equipmentManagement/inspectionManagement/components/formDia.vue b/src/views/equipmentManagement/inspectionManagement/components/formDia.vue
index 79ff5b0..722c7a1 100644
--- a/src/views/equipmentManagement/inspectionManagement/components/formDia.vue
+++ b/src/views/equipmentManagement/inspectionManagement/components/formDia.vue
@@ -23,11 +23,29 @@
</el-select>
</el-form-item>
</el-col>
+ <el-col :span="12">
+ <el-form-item label="宸℃楠屾敹浜�" prop="inspectionAcceptor">
+ <el-select v-model="form.inspectionAcceptor" placeholder="璇烽�夋嫨" clearable>
+ <el-option v-for="item in userList" :label="item.nickName" :value="item.userId" :key="item.userId"/>
+ </el-select>
+ </el-form-item>
+ </el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="澶囨敞" prop="remarks">
<el-input v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" type="textarea" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="浠诲姟鐘舵��" prop="isActive">
+ <el-switch
+ v-model="form.isActive"
+ :active-value="1"
+ :inactive-value="0"
+ active-text="鍚敤"
+ inactive-text="鍋滅敤"
+ />
</el-form-item>
</el-col>
</el-row>
@@ -100,7 +118,7 @@
</template>
<script setup>
-import {reactive, ref} from "vue";
+import {reactive, ref, getCurrentInstance, toRefs} from "vue";
import useUserStore from '@/store/modules/user'
import {addOrEditTimingTask} from "@/api/inspectionManagement/index.js";
import {userListNoPageByTenantId} from "@/api/system/user.js";
@@ -118,16 +136,76 @@
taskName: undefined,
inspector: '',
inspectorIds: '',
+ inspectionAcceptor: undefined,
+ inspectionAcceptorId: undefined,
remarks: '',
frequencyType: '',
frequencyDetail: '',
week: '',
- time: ''
+ time: '',
+ isActive: 1 // 榛樿鍚敤
},
- rules: {
- taskId: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
- inspector: [{ required: true, message: "璇疯緭鍏ュ贰妫�浜�", trigger: "blur" },],
- }
+ rules: {
+ taskId: [{ required: true, message: "璇烽�夋嫨璁惧", trigger: "change" },],
+ inspector: [{ required: true, message: "璇疯緭鍏ュ贰妫�浜�", trigger: "blur" },],
+ inspectionAcceptor: [{ required: true, message: "璇烽�夋嫨宸℃楠屾敹浜�", trigger: "change" },],
+ dateStr: [{ required: true, message: "璇烽�夋嫨鐧昏鏃堕棿", trigger: "change" }],
+ frequencyType: [{ required: true, message: "璇烽�夋嫨浠诲姟棰戠巼", trigger: "change" }],
+ frequencyDetail: [
+ {
+ required: true,
+ message: "璇烽�夋嫨鏃ユ湡",
+ trigger: "change",
+ validator: (rule, value, callback) => {
+ if (!form.value.frequencyType) {
+ callback()
+ return
+ }
+ if (form.value.frequencyType === 'WEEKLY') {
+ if (!form.value.week || !form.value.time) {
+ callback(new Error("璇烽�夋嫨鏃ユ湡鍜屾椂闂�"))
+ } else {
+ callback()
+ }
+ } else {
+ if (!value) {
+ callback(new Error("璇烽�夋嫨鏃ユ湡"))
+ } else {
+ callback()
+ }
+ }
+ }
+ }
+ ],
+ week: [
+ {
+ required: true,
+ message: "璇烽�夋嫨鏄熸湡",
+ trigger: "change",
+ validator: (rule, value, callback) => {
+ if (form.value.frequencyType === 'WEEKLY' && !value) {
+ callback(new Error("璇烽�夋嫨鏄熸湡"))
+ } else {
+ callback()
+ }
+ }
+ }
+ ],
+ time: [
+ {
+ required: true,
+ message: "璇烽�夋嫨鏃堕棿",
+ trigger: "change",
+ validator: (rule, value, callback) => {
+ if (form.value.frequencyType === 'WEEKLY' && !value) {
+ callback(new Error("璇烽�夋嫨鏃堕棿"))
+ } else {
+ callback()
+ }
+ }
+ }
+ ]
+ }
})
const { form, rules } = toRefs(data)
const userList = ref([])
@@ -161,9 +239,39 @@
await loadDeviceName();
if (type === 'edit' && row) {
- form.value = {...row}
- form.value.inspector = form.value.inspectorIds.split(',').map(Number)
-
+ form.value = {
+ ...data.form, // 鍏堝鍒堕粯璁よ〃鍗�
+ ...row, // 鍐嶈鐩� row 涓殑鍊�
+ }
+ // 纭繚 inspectorIds 瀛樺湪鎵嶈繘琛� split
+ if (form.value.inspectorIds) {
+ form.value.inspector = form.value.inspectorIds.split(',').map(Number)
+ } else {
+ form.value.inspector = []
+ }
+ // 纭繚楠屾敹鍏D鍜屽鍚嶆纭洖鏄�
+ if (form.value.inspectionAcceptorId) {
+ form.value.inspectionAcceptor = form.value.inspectionAcceptorId
+ }
+ // 纭繚 isActive 鏈夊�硷紝榛樿鍚敤
+ if (form.value.isActive === undefined || form.value.isActive === null) {
+ form.value.isActive = 1
+ }
+
+ if (row.frequencyDetail) {
+ if (row.frequencyType === 'WEEKLY') {
+ const parts = row.frequencyDetail.split(',')
+ if (parts.length === 2) {
+ form.value.week = parts[0]
+ form.value.time = parts[1]
+ }
+ } else if (row.frequencyType === 'DAILY') {
+ form.value.frequencyDetail = row.frequencyDetail
+ } else {
+ form.value.frequencyDetail = row.frequencyDetail
+ }
+ }
+
// 濡傛灉鏈夎澶嘔D锛岃嚜鍔ㄨ缃澶囦俊鎭�
if (form.value.taskId) {
setDeviceModel(form.value.taskId);
@@ -189,11 +297,14 @@
taskName: undefined,
inspector: '',
inspectorIds: '',
+ inspectionAcceptor: undefined,
+ inspectionAcceptorId: undefined,
remarks: '',
frequencyType: '',
frequencyDetail: '',
week: '',
- time: ''
+ time: '',
+ isActive: 1 // 榛樿鍚敤
}
}
@@ -202,18 +313,30 @@
proxy.$refs["formRef"].validate(async valid => {
if (valid) {
try {
- form.value.inspectorIds = form.value.inspector.join(',')
- delete form.value.inspector
-
+ // 纭繚 inspector 鏄暟缁勬墠杩涜 join
+ if (form.value.inspector && Array.isArray(form.value.inspector)) {
+ form.value.inspectorIds = form.value.inspector.join(',')
+ delete form.value.inspector
+ }
+
+ // 澶勭悊楠屾敹鍏�
+ if (form.value.inspectionAcceptor) {
+ const selectedUser = userList.value.find(u => u.userId === form.value.inspectionAcceptor)
+ if (selectedUser) {
+ form.value.inspectionAcceptorId = form.value.inspectionAcceptor
+ form.value.inspectionAcceptor = selectedUser.nickName
+ }
+ }
+
if (form.value.frequencyType === 'WEEKLY') {
let frequencyDetail = ''
frequencyDetail = form.value.week + ',' + form.value.time
form.value.frequencyDetail = frequencyDetail
}
-
+
let res = await userStore.getInfo()
form.value.registrantId = res.user.userId
-
+
await addOrEditTimingTask(form.value)
cancel()
proxy.$modal.msgSuccess('鎻愪氦鎴愬姛')
--
Gitblit v1.9.3