From 05a671e663de70616ab2a0b6ff269bfd44d1b75a Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 22 九月 2025 10:03:14 +0800
Subject: [PATCH] 部署修改
---
src/views/basicInformation/mould/coalQualityMaintenance.vue | 173 ++++++++++++++++++++++++++++++---------------------------
1 files changed, 92 insertions(+), 81 deletions(-)
diff --git a/src/views/basicInformation/mould/coalQualityMaintenance.vue b/src/views/basicInformation/mould/coalQualityMaintenance.vue
index 4f3dd9f..cb66226 100644
--- a/src/views/basicInformation/mould/coalQualityMaintenance.vue
+++ b/src/views/basicInformation/mould/coalQualityMaintenance.vue
@@ -1,55 +1,26 @@
<!-- 鐓よ川鏂规缁存姢寮圭獥缁勪欢 -->
<template>
- <el-dialog
- v-model="dialogVisible"
- :title="title"
- width="600"
- :close-on-click-modal="false"
- :before-close="handleClose"
- >
+ <el-dialog v-model="dialogVisible" :title="title" width="600" :close-on-click-modal="false"
+ :before-close="handleClose">
<!-- 琛ㄥ崟鍖哄煙 -->
- <el-form
- ref="formRef"
- :model="formData"
- :rules="formRules"
- label-width="120px"
- style="max-width: 400px; margin: 0 auto"
- >
+ <el-form ref="formRef" :model="formData" :rules="formRules" label-width="120px"
+ style="max-width: 400px; margin: 0 auto">
<!-- 鏂规鍚嶇О杈撳叆妗� -->
<el-form-item label="鐓よ川鏂规鍚嶇О" prop="plan">
- <el-input
- v-model="formData.plan"
- placeholder="璇疯緭鍏ョ叅璐ㄦ柟妗堝悕绉�"
- clearable
- />
+ <el-input v-model="formData.plan" placeholder="璇疯緭鍏ョ叅璐ㄦ柟妗堝悕绉�" clearable :disabled="isViewMode"/>
</el-form-item>
<!-- 鐓よ川瀛楁澶氶�変笅鎷夋 -->
- <el-form-item label="鐓よ川鏂规绫诲瀷" prop="coalFields">
- <el-select
- v-model="formData.coalFields"
- placeholder="璇烽�夋嫨鐓よ川鏂规绫诲瀷"
- style="width: 100%"
- clearable
- multiple
- >
- <el-option
- v-for="item in fieldOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
+ <el-form-item label="鐓よ川鏂规绫诲瀷" prop="coalFieldList">
+ <el-select v-model="formData.coalFieldList" placeholder="璇烽�夋嫨鐓よ川鏂规绫诲瀷" style="width: 100%" clearable
+ multiple :disabled="isViewMode">
+ <el-option v-for="item in fieldOptions" :key="item.id" :label="item.label" :value="item"/>
</el-select>
</el-form-item>
<!-- 鏂规鎻忚堪鏂囨湰鍩� -->
<el-form-item label="鐓よ川鏂规鎻忚堪" prop="schemeDesc">
- <el-input
- v-model="formData.schemeDesc"
- type="textarea"
- placeholder="璇疯緭鍏ョ叅璐ㄦ柟妗堟弿杩�"
- :rows="3"
- />
+ <el-input v-model="formData.schemeDesc" type="textarea" placeholder="璇疯緭鍏ョ叅璐ㄦ柟妗堟弿杩�" :rows="3" :disabled="isViewMode"/>
</el-form-item>
<!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
@@ -62,15 +33,16 @@
</el-dialog>
</template>
<script setup>
-import { ref, reactive, watch, computed, onMounted } from "vue";
-import { getCoalFieldList, addOrEditCoalPlan } from "@/api/basicInformation/coalQualityMaintenance";
+import {ref, reactive, watch, computed, onMounted} from "vue";
+import {getCoalFieldList, addOrEditCoalPlan} from "@/api/basicInformation/coalQualityMaintenance";
// ===== 缁勪欢灞炴�у畾涔� =====
const props = defineProps({
/** 鍏抽棴寮圭獥鍓嶇殑鍥炶皟鍑芥暟 */
beforeClose: {
type: Function,
- default: () => {},
+ default: () => {
+ },
},
/** 琛ㄥ崟鏁版嵁 */
form: {
@@ -88,7 +60,11 @@
default: "",
},
});
-
+const isViewMode = computed(() => props.addOrEdit.includes("view"));
+const copyForm = defineModel("copyForm", {
+ required: true,
+ type: Object,
+});
// ===== 浜嬩欢瀹氫箟 =====
const emit = defineEmits(["submit", "handleBeforeClose"]);
@@ -115,10 +91,10 @@
// ===== 琛ㄥ崟楠岃瘉瑙勫垯 =====
const formRules = reactive({
plan: [
- { required: true, message: "璇疯緭鍏ユ柟妗堝悕绉�", trigger: "blur" },
+ {required: true, message: "璇疯緭鍏ユ柟妗堝悕绉�", trigger: "blur"},
],
- coalFields: [
- { required: true, message: "璇烽�夋嫨鏂规绫诲瀷", trigger: "blur" },
+ coalFieldList: [
+ {required: true, message: "璇烽�夋嫨鏂规绫诲瀷", trigger: "blur"},
],
});
@@ -129,9 +105,9 @@
const parseCoalFields = (coalFieldsStr) => {
if (!coalFieldsStr || typeof coalFieldsStr !== 'string') return [];
return coalFieldsStr
- .split(',')
- .map(id => parseInt(id.trim()))
- .filter(id => !isNaN(id));
+ .split(',')
+ .map(id => parseInt(id.trim()))
+ .filter(id => !isNaN(id));
};
/**
@@ -147,18 +123,32 @@
* @param {Object} newForm - 鏂扮殑琛ㄥ崟鏁版嵁
*/
const initFormData = (newForm) => {
- formData.value = { ...newForm };
-
- // 澶勭悊coalFields瀛楁锛氱紪杈戞椂闇�瑕佸皢瀛楃涓茶浆鎹负鏁扮粍渚涘閫夌粍浠朵娇鐢�
- if (newForm.coalFields) {
- if (typeof newForm.coalFields === 'string') {
- formData.value.coalFields = parseCoalFields(newForm.coalFields);
- } else if (Array.isArray(newForm.coalFields)) {
- // 纭繚鏁扮粍涓殑鍊奸兘鏄暟瀛楃被鍨�
- formData.value.coalFields = newForm.coalFields
- .map(id => parseInt(id))
- .filter(id => !isNaN(id));
+ formData.value = {...newForm};
+ // 澶勭悊 coalFieldList 瀛楁锛氱紪杈戞椂闇�瑕佸皢瀛楃涓茶浆鎹负鏁扮粍渚涘閫夌粍浠朵娇鐢�
+ if (newForm.fieldIds) {
+ if (typeof newForm.fieldIds === 'string') {
+ // 灏嗗瓧绗︿覆杞崲涓篒D鏁扮粍锛岀劧鍚庡尮閰嶅搴旂殑閫夐」瀵硅薄
+ const ids = parseCoalFields(newForm.fieldIds);
+ formData.value.coalFieldList = ids.map(id => {
+ const option = fieldOptions.find(opt => opt.value === id);
+ return option || {fields: `瀛楁${id}`, value: id};
+ });
+ } else if (Array.isArray(newForm.coalFieldList)) {
+ // 纭繚鏁扮粍涓殑鍊奸兘鏄纭殑瀵硅薄鏍煎紡
+ formData.value.coalFieldList = newForm.coalFieldList.map(item => {
+ if (typeof item === 'object' && item.value !== undefined) {
+ return item;
+ } else {
+ // 濡傛灉鏄函ID锛岄渶瑕佸尮閰嶅搴旂殑閫夐」
+ const id = parseInt(item);
+ const option = fieldOptions.find(opt => opt.value === id);
+ return option || {fields: `瀛楁${id}`, value: id};
+ }
+ });
}
+ } else {
+ // 濡傛灉娌℃湁 coalFieldList锛屽垵濮嬪寲涓虹┖鏁扮粍
+ formData.value.coalFieldList = [];
}
};
@@ -168,12 +158,13 @@
*/
onMounted(async () => {
try {
- const { data, code } = await getCoalFieldList();
+ const {data, code} = await getCoalFieldList();
if (code === 200) {
// 鏋勫缓閫夐」鏁版嵁锛屾牸寮忓寲涓簕 label, value }
fieldOptions.push(...data.map(item => ({
label: item.fieldName,
value: item.id,
+ fields: item.fields
})));
} else {
console.error("鑾峰彇鐓よ川瀛楁鍒楄〃澶辫触", data);
@@ -187,9 +178,9 @@
/**
* 鐩戝惉琛ㄥ崟鏁版嵁鍙樺寲锛屽疄鐜版暟鎹洖鏄�
*/
-watch(() => props.form, initFormData, {
- deep: true,
- immediate: true
+watch(() => props.form, initFormData, {
+ deep: true,
+ immediate: true
});
// ===== 浜嬩欢澶勭悊鍑芥暟 =====
@@ -198,23 +189,44 @@
*/
const submitForm = async () => {
if (!formRef.value) return;
-
+
+ // 鍒濆鍖栧瓧娈垫暟缁�
+ formData.value.fieldIds = [];
+ formData.value.coalFields = [];
+
+ // 瀹夊叏澶勭悊 coalFieldList 鏁版嵁
+ if (formData.value.coalFieldList && Array.isArray(formData.value.coalFieldList)) {
+ formData.value.coalFieldList.forEach((element) => {
+ // 妫�鏌ュ厓绱犳槸鍚︿负瀵硅薄骞朵笖鏈夊繀瑕佺殑灞炴��
+ if (element && typeof element === 'object') {
+ if (element.value !== undefined) {
+ formData.value.fieldIds.push(element.value);
+ }
+ if (element.fields !== undefined) {
+ formData.value.coalFields.push(element.fields);
+ }
+ } else {
+ // 濡傛灉鍏冪礌鏄畝鍗曞�硷紝鐩存帴浣跨敤
+ formData.value.fieldIds.push(element);
+ // 灏濊瘯浠� fieldOptions 涓壘鍒板搴旂殑 label
+ const option = fieldOptions.find(opt => opt.value === element);
+ if (option) {
+ formData.value.coalFields.push(option.fields);
+ }
+ }
+ });
+ }
+
+ // 鍒犻櫎涓存椂瀛楁
+ delete formData.value.coalFieldList;
+
try {
- const isValid = await formRef.value.validate();
- if (!isValid) return;
-
- // 鍑嗗鎻愪氦鏁版嵁锛氬皢coalFields鏁扮粍杞崲涓哄瓧绗︿覆
- const submitData = {
+ // 鍑嗗鎻愪氦鏁版嵁锛氬皢鏁扮粍杞崲涓哄瓧绗︿覆
+ const submitData = {
...formData.value,
- coalFields: stringifyCoalFields(formData.value.coalFields)
+ coalFields: stringifyCoalFields(formData.value.coalFields),
+ fieldIds: stringifyCoalFields(formData.value.fieldIds)
};
-
- // 鍒犻櫎涓嶉渶瑕佺殑鏃堕棿瀛楁锛堢紪杈戞椂锛�
- if (isEditMode.value) {
- delete submitData.createTime;
- delete submitData.updateTime;
- }
-
// 璋冪敤API鎻愪氦鏁版嵁
const result = await addOrEditCoalPlan(submitData);
@@ -224,7 +236,6 @@
...submitData,
result
};
-
emit("submit", responseData);
} catch (error) {
console.error("琛ㄥ崟鎻愪氦澶辫触", error);
@@ -243,8 +254,8 @@
* 閲嶇疆琛ㄥ崟
*/
const resetForm = () => {
- if (!formRef.value) return;
- formRef.value.resetFields();
+ formData.value = JSON.parse(JSON.stringify(copyForm.value));
+ initFormData(formData.value);
};
/**
--
Gitblit v1.9.3