Skip to content
本页目录

地图使用手册

应用包:lc-zkmap 类型:高级部件

一、效果预览

二、配置说明

2.1 基础配置

名称类型默认值描述
initCodenull/数值null地图初始化加载显示哪个地区,可以是某市的代码,其中浙江省区县地图为3300,全省为33
initSelectnull/数值null默认选中某一地区,可以是市或区县

注意

所有行政区划代码均以数值类型进行配置和使用,使用字符串类型可能会导致部分功能异常

2.2 省市本级

名称(base)类型默认值描述
hide布尔/数组false是否隐藏本级,数组情况下code在其中时会隐藏本级,如[330000, 330101]表示不显示省本级和杭州市本级
size数值0.3本级和主地图之间的比例,0.3=30%

2.3 地图形状

名称(mapShape)类型默认值描述
lift数值0.4悬浮提亮比例,悬浮时会让地图变得更白,取值范围0~1,数值越大越接近白色

包含多状态通用样式配置,详见下方

2.4 地图名称

名称(mapName)类型默认值描述
show布尔true是否显示名称
formatter函数d=>d地图名称的规整化,可批量修改

包含多状态通用样式配置,详见下方

2.4 地图数值

名称(mapValue)类型默认值描述
show布尔true是否显示数值
outside布尔false地图名称位置是否在外侧
formatter函数d=>d地图名称的规整化,可批量修改,包含两个参数,第一个是value字段值,第二个是整个数据对象

包含多状态通用样式配置,详见下方

2.5 数值连线

当数值在外时显示的连线样式 包含多状态通用样式配置,详见下方

2.6 悬浮框

名称(tooltip)类型默认值描述
offset数组[15, 10]悬浮框相对鼠标偏移量,[向右, 向下]

2.7 市边界线

当显示地区为浙江省区县(3300)时,可配置市的边框线样式

名称(stroke)类型默认值描述
show布尔true是否显示市边框线
style.stroke颜色#000边框线颜色
style.lineWidth数值2边框粗细

2.8 填色规则

名称(rule)类型默认值描述
baseColor颜色#ccc基础填充色,无匹配颜色时使用
key颜色#000用数据的哪个字段计算颜色

rule.categoryList:数组格式,配置多条匹配规则,定义范围和数值

名称(rule.categoryList的某一项)类型默认值描述
min数值null该区段的最小值,null为不限制,可理解负无穷
max数值null该区段的最大值,null为不限制,可理解正无穷
color颜色该区段对应的颜色
label文本该区段图例的名称

2.9 其他

名称类型默认值描述
blankBack布尔true点击空白是否能返回
beforeCodeChange函数()=>true地图下钻/返回前的钩子,返回false会阻止该行为
beforeSelectChange函数()=>true地图选中/取消选中前的钩子,返回false会阻止该行为

beforeCodeChange、beforeSelectChange是两个钩子函数,其会接收一个参数newCode,代表即将显示某地区地图或即将选中某地区,可以根据这个参数进行逻辑判断,以决定是否允许该操作:

js
// 限制宁波不能下钻
beforeCodeChange: (newCode)=>!(newCode == 330200)
// 限制地图为杭州或浙江
beforeCodeChange: (newCode)=>(newCode === 330100 || newCode === 33)
// 限制仅可选中西湖区和宁波市
beforeSelectChange: (newCode)=>(newCode === 330106 || newCode === 330200)

注意

当配置项发生改变时,组件会自动重绘刷新

三、通用样式配置

由于底层使用zrender进行开发制作,为了保证组件的开放性,更好地提供用户配置,其本质支持了zrender支持的配置项这里面的所有配置项,其中将部分通用性较强的配置总结出来加上可视化配置,即提供了上述9个配置项。

其中状态分为三种:默认、悬浮、选中,其中选中状态优先级>悬浮,可根据需要配置合适的样式。

四、数据

数据是一个数组格式的数据,其中包含两个必填字段:code(行政代码)、value(数值),其中code必须为数值类型,全省为33,省本级为330000,市本级为01结尾如330101。除了这两个字段,可根据业务需求添加任意字段,在formatter中均能够读到任一地区的对应的一条数据,也可以用于悬浮框里展示多条数据。

当数据发生更新时,视图会自动监听并刷新。

json
[
    {"code": 33, "value": 98.1},
    {"code": 330000, "value": 91.4},
    {"code": 330100, "value": 98.1},
    {"code": 330102, "value": 97.9},
]

五、事件

select 选中地区改变 参数:properties(当前选中地区的详情,其中有adcode属性为地区行政编码), adcode(当前地图绘制的地区编码)

六、插槽

  • 默认插槽(直接放入,不用定义插槽名) 部件默认携带经过封装的图例组件,可以通过配置修改其样式,图例组件会自动读取地图组件的填色规则并按顺序显示图例内容,可根据需要移动该组件的位置。

  • 悬浮框(tooltip) 需定义插槽名为tooltip并设置插槽参数名如scope,通过scope.properties可以读取到当前选中地区的属性,通过scope.data可以读取到当前选中地区的数据,自定进行字段选用和结构的拼凑、样式的定义。

插槽本身已经完成了对悬浮窗的定位,因此使用时只需配置其内容和样式即可,不用关心位置逻辑和显隐逻辑。

七、专项答疑

  • 如何在tab切换时改变地图数据和填色规则?

答:地图组件本身监听了数据和配置项,当数据、配置发生更新时,组件会自动刷新视图,因此可以将响应部分内容替换成变量,当tab操作时控制这些变量值发生改变即可。

内部资料,请勿外传