From f31be8280580be12a3bca0c6724fb0eca4c42482 Mon Sep 17 00:00:00 2001 From: Esacpe <1113279529@qq.com> Date: Mon, 20 Apr 2026 16:52:45 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backOfficeSystem/JudgmentHome/MeetingRoom/index.vue | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/views/backOfficeSystem/JudgmentHome/MeetingRoom/index.vue b/src/views/backOfficeSystem/JudgmentHome/MeetingRoom/index.vue index cd8ff95..1f62d76 100644 --- a/src/views/backOfficeSystem/JudgmentHome/MeetingRoom/index.vue +++ b/src/views/backOfficeSystem/JudgmentHome/MeetingRoom/index.vue @@ -74,9 +74,6 @@ - - - @@ -107,7 +104,6 @@ import ViewFeedback from "./components/ViewFeedback.vue"; import { useRoute, useRouter } from 'vue-router'; import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js"; import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue"; -import ConferenceRoom from "./components/Communications/conferenceRoom.vue"; import SemdFqzl from '@/components/instructionHasBeen/sendFqzl.vue' import Information from "@/views/home/model/information.vue"; import { isShiQingZhi } from "@/utils/auth.js" @@ -262,11 +258,6 @@ const tabHeightFn = () => { }; }; - -// 会议详情弹窗 -const conferenceRoomVisible = ref(false); - - const seedFqzl = () => { semdFqzlRef.value.getsendFqzl() } From 571e149313ddb0f26f060f112ada3d5ba20e075a Mon Sep 17 00:00:00 2001 From: Esacpe <1113279529@qq.com> Date: Mon, 20 Apr 2026 20:36:59 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Consultation/demo.vue | 2 + src/components/aboutTable/Search.vue | 66 +++++++++---------- src/components/fzq/index.vue | 4 +- .../mpvCar/components/addForm.vue | 3 +- .../DeploymentDisposal/mpvCar/index.vue | 4 +- .../infoCollection/infomation.vue | 41 +++++------- .../InformationReporting/index.vue | 30 ++++++++- .../myControl/components/addBkdx.vue | 5 +- .../IntelligentControl/myControl/index.vue | 26 +++++++- .../components/detailForm.vue | 7 +- .../systemConfig/menu-list/index.vue | 2 +- 11 files changed, 114 insertions(+), 76 deletions(-) diff --git a/src/components/Consultation/demo.vue b/src/components/Consultation/demo.vue index 4e6e625..e99f354 100644 --- a/src/components/Consultation/demo.vue +++ b/src/components/Consultation/demo.vue @@ -216,6 +216,7 @@ const getLoginAccountInfo =() =>{ // 加入会议 const openInit = (it,type) =>{ + log(it,type,'=======加入会议'); modleType.value = type; if(type == '会议'){ //判断是否有会议号 @@ -241,6 +242,7 @@ const openInit = (it,type) =>{ onMounted(()=>{ + console.log('组件挂载了'); jsonData.value = require('./components/zh_CN.json'); nextTick(()=>{ Init(); diff --git a/src/components/aboutTable/Search.vue b/src/components/aboutTable/Search.vue index 8e7377a..d5bde33 100644 --- a/src/components/aboutTable/Search.vue +++ b/src/components/aboutTable/Search.vue @@ -9,7 +9,7 @@ - @@ -412,12 +412,12 @@ const cascaderLazyProps = reactive({ } }); // 获取到传过来的参数 -let getArr = reactive([]); +let getArr = ref([]); const submit = () => { emit("submit", searchObj); }; const reset = () => { - getArr.forEach((item) => { + getArr.value.forEach((item) => { searchObj[item.prop] = item.defaultVal; }); emit("reset", true); @@ -430,63 +430,63 @@ defineExpose({ submit, reset }); -// 优化 watchEffect 为 watch,避免因 reactive 内部状态变化导致频繁重新执行 +// 监听 searchArr 变化,同时监听内部 options 的异步更新 watch(() => props.searchArr, (newArr) => { loadingPage.value = true; - // 使用 try-catch 防止解析失败导致崩溃 try { - let arr = JSON.parse(JSON.stringify(newArr)); - getArr = arr.map((item) => { - switch (item.showType) { + // 不再深拷贝,保留响应式引用 + getArr.value = newArr.map((item) => { + const itemCopy = { ...item }; // 浅拷贝即可 + switch (itemCopy.showType) { case "select": - item = { ...selectDefault, ...item }; - item.options = reactive(item.options); - getOptions[item.prop] = item.options; + Object.assign(itemCopy, { ...selectDefault, ...itemCopy }); + // 直接引用原 options,保持响应式 + getOptions[itemCopy.prop] = itemCopy.options || []; break; case "input": - item = { ...inputDefault, ...item }; + Object.assign(itemCopy, { ...inputDefault, ...itemCopy }); break; case "daterange": - item = { ...daterangeDefault, ...item }; - if (item.defaultShortcuts) item.shortcuts = shortcuts; + Object.assign(itemCopy, { ...daterangeDefault, ...itemCopy }); + if (itemCopy.defaultShortcuts) itemCopy.shortcuts = shortcuts; break; case "date": - item = { ...defaultDate, ...item }; - if (item.defaultShortcuts) { - item.shortcuts = dateShortcuts; + Object.assign(itemCopy, { ...defaultDate, ...itemCopy }); + if (itemCopy.defaultShortcuts) { + itemCopy.shortcuts = dateShortcuts; } break; case "checkbox": - item = reactive({ ...defaultCheckbox, ...item }); - item.checkboxValueArr = item.options.map((obj) => { + Object.assign(itemCopy, { ...defaultCheckbox, ...itemCopy }); + itemCopy.checkboxValueArr = (itemCopy.options || []).map((obj) => { return obj.value; }); break; case "cascader": - item = { ...defaultCascader, ...item }; - if (item.lazy) { - cascaderLazyProps.checkStrictly = item.checkStrictly; - item.props = { ...cascaderLazyProps, ...(item.props || {}) }; - delete item.options; + Object.assign(itemCopy, { ...defaultCascader, ...itemCopy }); + if (itemCopy.lazy) { + cascaderLazyProps.checkStrictly = itemCopy.checkStrictly; + itemCopy.props = { ...cascaderLazyProps, ...(itemCopy.props || {}) }; + delete itemCopy.options; } else { - item.props = { + itemCopy.props = { ...defaultCascader.props, - ...(item.props || {}), - ...{ checkStrictly: item.checkStrictly } + ...(itemCopy.props || {}), + ...{ checkStrictly: itemCopy.checkStrictly } }; - getOptions[item.prop] = reactive(item.options); + getOptions[itemCopy.prop] = itemCopy.options || []; } break; } - loadingPage.value = false; - searchObj[item.prop] = item.defaultVal; - return item; + searchObj[itemCopy.prop] = itemCopy.defaultVal; + return itemCopy; }); } catch (e) { - console.error('Search组件初始化失败:', e); + console.error('Search组件解析searchArr失败:', e); + } finally { loadingPage.value = false; } -}, { immediate: true, deep: false }); +}, { immediate: true, deep: true }); // 开启深度监听,检测 options 变化