From a8d18e4dc7c46bf491e96424873ce9a0cf0bbf79 Mon Sep 17 00:00:00 2001 From: yyy <2605810609@qq.com> Date: Fri, 4 Jul 2025 15:36:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E4=BF=AE=E6=94=B9=E8=B7=AF?= =?UTF-8?q?=E7=BA=BF=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EditNodesAndAlignmentsDialog.vue | 42 +++++++++++++------ 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/src/views/mapPage/realTimeMap/components-tool/EditNodesAndAlignmentsDialog.vue b/src/views/mapPage/realTimeMap/components-tool/EditNodesAndAlignmentsDialog.vue index bef9cc40..27f183c0 100644 --- a/src/views/mapPage/realTimeMap/components-tool/EditNodesAndAlignmentsDialog.vue +++ b/src/views/mapPage/realTimeMap/components-tool/EditNodesAndAlignmentsDialog.vue @@ -241,6 +241,19 @@ const dialogClose = () => { } const submitForm = async () => { + // 新增:勾选项校验 + const selectedKeys = selectList.value.map((item) => item.value) + if (form.value.direction === 2) { + if (!(selectedKeys.includes('startToEndToward') && selectedKeys.includes('endToStartToward'))) { + message.warning('双向时必须勾选“开始点到结束点车头朝向”和“结束点到开始点车头朝向”!') + return + } + } else if (form.value.direction === 1) { + if (!selectedKeys.includes('toward')) { + message.warning('单向时必须勾选“车头朝向”!') + return + } + } await checkToward() const batchKeys = selectList.value.map((item) => item.value) const formData = form.value @@ -304,25 +317,28 @@ const handleSelectionChange = (val) => { const multipleTableRef = ref() const directionChange = (e) => { - if (e === 1) { - //单向 - 取消勾选开始点到结束点和结束点到开始点的车头朝向 - nextTick(() => { + nextTick(() => { + // 先清空所有勾选 + multipleTableRef.value.clearSelection() + selectList.value = [] + if (e === 1) { + // 单向,自动勾选toward tableData.value.forEach((item, index) => { - if (index === 10 || index === 11) { - multipleTableRef.value.toggleRowSelection(item, false) + if (item.value === 'toward') { + multipleTableRef.value.toggleRowSelection(item, true) + selectList.value.push(item) } }) - }) - } else if (e === 2) { - //双向 - 取消勾选车头朝向 - nextTick(() => { + } else if (e === 2) { + // 双向,自动勾选startToEndToward和endToStartToward tableData.value.forEach((item, index) => { - if (index === 9) { - multipleTableRef.value.toggleRowSelection(item, false) + if (item.value === 'startToEndToward' || item.value === 'endToStartToward') { + multipleTableRef.value.toggleRowSelection(item, true) + selectList.value.push(item) } }) - }) - } + } + }) } defineExpose({ open }) // 提供 open 方法,用于打开弹窗