55## QuickStart
66
77``` js
8- import Jx3boxMap from ' @jx3box/jx3box-map/src/components/Map.vue
8+ import Jx3boxMap from " @jx3box/jx3box-map" ;
99```
1010
1111``` html
1212<jx3box-map :map-id =" 8" :datas =" datas" ></jx3box-map >
1313```
1414
15+ PVX 风格与响应式总览:
16+
17+ ``` html
18+ <jx3box-map
19+ :map-id =" 8"
20+ :datas =" datas"
21+ mode =" responsive"
22+ locale =" zh-CN"
23+ :trim-border =" true"
24+ :zoomable =" true"
25+ />
26+ ```
27+
1528``` js
1629export default {
1730 name: " App" ,
@@ -64,6 +77,60 @@ export default {
6477或者给组件传入focus属性,值是要展示的点位在datas内的索引。
6578如果不通过任何方式指定要展示的点位会直接取第一个。
6679
80+ ### mode
81+
82+ 新版布局模式,可选:
83+
84+ - ` overview ` :完整总览;
85+ - ` responsive ` :完整总览并随容器宽度重新计算,推荐普通 Web 和手机使用;
86+ - ` focus ` :使用 1024 × 896 内部画布展示点位附近区域。
87+
88+ 未传入 ` mode ` 时继续读取旧的 ` overview ` ,旧调用无需迁移。
89+
90+ ### locale / messages / translator / labels
91+
92+ 组件内置 ` zh-CN ` 、` zh-TW ` 、` en-US ` 、` vi ` 四语言,并统一回退到 ` zh-CN ` 。
93+
94+ ``` html
95+ <jx3box-map locale =" en-US" />
96+ ```
97+
98+ ` locale ` 未传入时会读取宿主 ` vue-i18n ` 的当前 locale,再读取 ` <html lang> ` 。
99+
100+ 可以通过 ` messages ` 覆盖内置语言:
101+
102+ ``` js
103+ const messages = {
104+ " en-US" : {
105+ loadError: " Custom map error" ,
106+ },
107+ };
108+ ```
109+
110+ 也可以传入 ` translator(key, params, locale) ` 对接宿主翻译函数,或通过 ` labels ` 直接覆盖单个固定文案。组件固定词条位于 ` jx3boxMap ` 命名空间;地图名、NPC、点位标题和说明仍由业务数据提供。
111+
112+ ### trim-border / trim-ratio
113+
114+ ` trim-border ` 用于裁去地图图片上下透明边,默认关闭;` trim-ratio ` 默认 ` 0.05 ` 。裁边在公共组件内部完成,宿主不需要监听 ` resize ` 后反向修改轮播高度。
115+
116+ ### zoomable / wheel-zoom
117+
118+ - ` zoomable ` :是否允许缩放;
119+ - ` wheel-zoom ` :是否允许鼠标滚轮缩放,只有同时启用 ` zoomable ` 才生效;
120+
121+ 普通总览地图的滚轮缩放默认关闭,避免地图阻断页面正常滚动。为兼容旧版地图工具,启用 ` map-draggable ` 的焦点地图继续保留滚轮和双指缩放;业务也可以通过 ` zoomable / wheel-zoom ` 显式控制。
122+
123+ ### aspect-ratio
124+
125+ 响应式总览比例,默认 ` 1024 / 896 ` 。容器宽度变化由 ` ResizeObserver ` 监听,同一帧内合并测量,并且只有尺寸实际改变时才触发 ` resize ` 。
126+
127+ ### map-label / point-label-key
128+
129+ 用于无障碍名称和点位交互:
130+
131+ - ` map-label ` :地图区域与图片替代文本;
132+ - ` point-label-key ` :点位对象中作为可访问名称的字段,默认 ` title ` 。
133+
67134### map-draggable
68135
69136是否允许用户拖动地图,仅在overview为false时生效。
@@ -79,11 +146,6 @@ export default {
79146
80147用户拖拽点位之后是否让地图跟随被拖拽的点居中。
81148
82- ### trim-border
83-
84- 是否移除地图边框。
85- 西山居的中地图图片是有边框的,默认不展示边框,如果需要展示可以设为`true`
86-
87149### show-toolbar
88150
89151是否展示地图控制条,默认不展示。
@@ -109,6 +171,23 @@ export default {
109171
110172用户拖拽点位之后触发
111173
174+ ### resize
175+
176+ 容器尺寸实际变化后触发,保持兼容数组参数:` [width, height] ` 。
177+
178+ ### error
179+
180+ 比例数据或地图图片加载失败时触发:
181+
182+ ``` js
183+ {
184+ type: " scales" | " image" ,
185+ error,
186+ }
187+ ```
188+
189+ 原有 ` sub-switch ` 保持不变。
190+
112191## 方法
113192
114193### pointPosition(point) -> {left: ..., bottom: ...}
@@ -139,3 +218,15 @@ export default {
139218#### popover
140219
141220如果使用默认的point,可以用popover这个slot来替换的默认的popover里的内容
221+
222+ ### error
223+
224+ 替换默认错误状态,插槽参数为 ` { error, retry } ` 。
225+
226+ ## 响应式建议
227+
228+ - 桌面焦点浏览使用 ` mode="focus" ` 并给宿主容器明确高度;
229+ - 平板和手机使用 ` mode="responsive" ` ;
230+ - 手机触控按钮按 ` 720px ` 断点增大,页面不会产生横向滚动;
231+ - 组件遵循 ` prefers-reduced-motion ` ;
232+ - 宿主应设置 ` min-width: 0 ` ,不要再覆盖 ` .c-map__inner ` 等内部结构。
0 commit comments