From 75710711b3def04ef2e4836eb5c4565f4db6747c Mon Sep 17 00:00:00 2001 From: Cano1997 <1978141412@qq.com> Date: Mon, 18 Aug 2025 20:25:03 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8D=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=E5=86=85=E7=BD=AE=E5=AF=BC=E8=88=AA=E6=9C=AA=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E9=80=89=E4=B8=AD=E7=AC=AC=E4=B8=80=E6=9D=A1=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=8C=E7=AC=AC=E4=B8=80=E6=9D=A1=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=BA=E5=8C=BA=E5=9F=9F=E6=97=B6=E8=BF=98=E9=9C=80=E4=BC=A0?= =?UTF-8?q?=E9=80=92=E8=A1=8C=E6=94=BF=E7=BC=96=E7=A0=81=E4=B8=8E=E8=A1=8C?= =?UTF-8?q?=E6=94=BF=E7=AD=89=E7=BA=A7=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 +- .../provider/map-navigation.provider.ts | 41 ++++++++++--- src/control/map/map.tsx | 57 ++++++++++--------- 3 files changed, 69 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b36738491..53e582ea7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ ## [Unreleased] +### Fixed + +- 修复地图内置导航未默认选中第一条数据,第一条数据为区域时还需传递行政编码与行政等级参数 + ## [0.7.41-alpha.19] - 2025-08-18 ### Added @@ -23,7 +27,7 @@ - 更新门户菜单容器默认显示的边距 -## Fixed +### Fixed - 修复数据关系分页部件流布局模式下嵌套数据关系分页部件流布局时样式异常以及初始导航栏定位异常问题 - 修复面板分页组件在切换分页时,如果分页里面有气泡飘窗,切换时飘窗会定位到界面左上角的样式异常问题 diff --git a/src/common/control-navigation/provider/map-navigation.provider.ts b/src/common/control-navigation/provider/map-navigation.provider.ts index 58319ba14..456493108 100644 --- a/src/common/control-navigation/provider/map-navigation.provider.ts +++ b/src/common/control-navigation/provider/map-navigation.provider.ts @@ -1,4 +1,6 @@ import { + calcDeCodeNameById, + getAreaLevelNum, IMapData, IMapEvent, INavViewMsg, @@ -42,7 +44,21 @@ export class MapNavigationProvider extends NavgationBaseProvider { .map(key => items.find(item => item._id === key)) .find(item => item !== undefined) || items[0]; if (navData) { - this.controller.setNavData(navData); + // 默认选中区域数据需传行政编码与行政等级 + if (navData._itemStyle.startsWith('REGION')) { + const data: IData = { ...navData }; + if (navData._areaCode) { + data.areaCode = this.controller.state.strAreaCode + ? `${navData._areaCode}` + : Number(navData._areaCode); + data.areaLevel = getAreaLevelNum(navData._areaCode); + } + this.controller.evt.emit('onNavDataChange', { + navData: data, + }); + } else { + this.controller.setNavData(navData); + } } else { this.navStack = []; this.navViewMsg.value = undefined; @@ -54,17 +70,26 @@ export class MapNavigationProvider extends NavgationBaseProvider { const { areaCode, areaLevel } = item; const itemModel = sysMapItems?.find(_item => _item.id === item._mapItemId); if (itemModel) { + const tempContext = this.controller.context.clone(); + const tempParams = { ...this.controller.params }; + // 点数据添加主键 + if (itemModel.itemStyle?.startsWith('POINT')) { + const deName = calcDeCodeNameById(itemModel.appDataEntityId!); + tempContext[deName] = item._deData.srfkey; + } + // 区域导航视图添加行政编码与行政等级 + if (itemModel.itemStyle?.startsWith('REGION')) { + tempParams.srfareacode = areaCode; + tempParams.srfarealevel = areaLevel; + tempParams.srfarealevelnum = getAreaLevelNum(areaLevel); + } const { context, params } = this.prepareParams( itemModel, { ...item._deData, areaCode, areaLevel }, - this.controller.context, - this.controller.params, + tempContext, + tempParams, ); - // 区域导航视图添加行政编码与行政等级 - if (itemModel.itemStyle?.startsWith('REGION')) { - params.srfareacode = areaCode; - params.srfarealevel = areaLevel; - } + Object.assign(params, tempParams); return { params, context, diff --git a/src/control/map/map.tsx b/src/control/map/map.tsx index 86359da45..3a13070a6 100644 --- a/src/control/map/map.tsx +++ b/src/control/map/map.tsx @@ -69,35 +69,40 @@ const MapControl = defineComponent({ }, render() { const { state } = this.c; - if (!state.isCreated || !state.isLoaded) return; + if (!state.isCreated) return; + let content; + if (state.isLoaded) { + content = + this.mapStyle === 'USER' ? ( + + ) : ( + { + this.c.onMapChange(e.areaCode); + }} + onPointClick={(e: IMapData) => { + this.c.onPointClick(e); + }} + onAreaClick={(e: IMapData) => { + this.c.onAreaClick(e, '', ''); + }} + > + ); + } return ( - {this.mapStyle === 'USER' ? ( - - ) : ( - { - this.c.onMapChange(e.areaCode); - }} - onPointClick={(e: IMapData) => { - this.c.onPointClick(e); - }} - onAreaClick={(e: IMapData) => { - this.c.onAreaClick(e, '', ''); - }} - > - )} + {content} {this.c.state.enableNavView && this.c.state.showNavIcon ? ( !this.c.state.showNavView ? ( Date: Mon, 18 Aug 2025 20:27:37 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E8=A1=A5=E5=85=85=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=E5=88=9D=E5=A7=8B=E5=8C=96=E8=AE=BE=E7=BD=AE=E8=A1=8C?= =?UTF-8?q?=E6=94=BF=E7=AD=89=E7=BA=A7=E5=8F=82=E6=95=B0=EF=BC=8C=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=9C=B0=E5=9B=BE=E5=BC=B9=E6=A1=86=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E6=8D=A2=E8=A1=8C=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 +++++ src/common/map-chart-user/map-chart-user.scss | 1 + src/common/map-chart-user/map-chart-user.tsx | 7 ++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 53e582ea7..557678fa3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ ## [Unreleased] +### Changed + +- 补充地图初始化设置行政等级参数 +- 调整地图弹框默认换行样式 + ### Fixed - 修复地图内置导航未默认选中第一条数据,第一条数据为区域时还需传递行政编码与行政等级参数 diff --git a/src/common/map-chart-user/map-chart-user.scss b/src/common/map-chart-user/map-chart-user.scss index f99339e0b..c4fa5a9a3 100644 --- a/src/common/map-chart-user/map-chart-user.scss +++ b/src/common/map-chart-user/map-chart-user.scss @@ -30,5 +30,6 @@ @include e(popper) { padding: getCssVar(spacing, tight); + white-space: pre; } } \ No newline at end of file diff --git a/src/common/map-chart-user/map-chart-user.tsx b/src/common/map-chart-user/map-chart-user.tsx index 1296c1e40..1d40010ee 100644 --- a/src/common/map-chart-user/map-chart-user.tsx +++ b/src/common/map-chart-user/map-chart-user.tsx @@ -9,7 +9,11 @@ import { } from 'vue'; import { isNil, mergeDeepLeft, mergeDeepWithKey } from 'ramda'; import { useNamespace } from '@ibiz-template/vue3-util'; -import { IMapData, MapController } from '@ibiz-template/runtime'; +import { + getAreaLevelByCode, + IMapData, + MapController, +} from '@ibiz-template/runtime'; import { listenJSEvent, NOOP } from '@ibiz-template/core'; import { toNumber } from 'lodash-es'; import { @@ -115,6 +119,7 @@ export const IBizMapChartUser = defineComponent({ const name = options.value.defaultAreaCode; const areaCode = c.state.strAreaCode ? `${name}` : Number(name); c.state.areaCode = areaCode; + c.state.areaLevel = getAreaLevelByCode(areaCode.toString()); changeMap(name, areaCode, true); c.evt.on('onDrillDown', async (args: IData) => { -- Gitee