Appearance
BizCoordinateInput 经纬度输入
无地图依赖的坐标键入组件:经度 / 纬度双输入(十进制度编辑口径),范围校验(±180 / ±90)与 precision 小数位截断,失焦下方报错;DMS 度分秒只读换算(116°23′50.7″E 式展示切换);坐标系标注(WGS-84 / GCJ-02 / BD-09 提示性标签,不做偏移换算);完整坐标一键复制 lng,lat,粘贴坐标文本自动分发两框。适用于门店 / 物流网点坐标录入、设备点位、巡检点位、外勤签到中心点、地理围栏顶点——地图拾取之外「手工键入 / 粘贴补录」的动线。
与相关组件的边界:BizMapPicker 面向地图点选拾取(输出 lng/lat,需地图 key);BizCoordinateInput 面向键入 + 换算 + 校验(零依赖),二者常联动(选点回填、手工微调)。
基础录入
经度
纬度
两项同时有值时 v-model 落 { lng, lat } 对象(东经 / 北纬为正); 当前值:116.397428, 39.90923
DMS 度分秒互转
经度
纬度
(悉尼坐标,南纬 S)
「度分秒」按钮切换 116°23′50.7″E 式只读展示(悬浮可见十进制原值);编辑口径始终为十进制。
校验
越界 / 缺项(试试经度填 200,或只填一边)
经度
纬度
精度限制(precision=4,粘贴 116.397428 自动截断)
经度
纬度
经度 ±180、纬度 ±90;两项需同时填写(单边缺填即报错);blur 事件同步外抛 valid 供表单联动。
受控回显与清空
经度
纬度
change 事件:(尚未变更);完整坐标出现「复制 / 清空」操作,清空落 undefined。
坐标系标注
经度
纬度
GCJ-02(国测局)
标签仅作口径提示:不同坐标系坐标不可直接混用(GCJ-02 相对 WGS-84 有非线性偏移), 组件不做偏移换算,换算请在业务层完成并按系存储。
复制与粘贴分发
经度
纬度
「复制」写入 lng,lat 文本;在任一输入框内粘贴 116.397428, 39.90923(逗号 / 空格 / 中文逗号分隔) 自动分发两框——从 Excel、微信、工单里拷坐标的常见动线。
设备点位表单集成
新增巡检点位
地理围栏顶点列表
电子围栏顶点
2 / 3 已完整
1
经度
纬度
2
经度
纬度
3
经度
纬度
Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| model-value / v-model | BizCoordinateValue | undefined | — | 坐标值 { lng, lat }(两项同时有值才完整;清空为 undefined) |
| placeholder | string | '如 116.397428' | 输入占位提示 |
| disabled | boolean | false | 禁用(含度分秒切换 / 复制 / 清空按钮) |
| precision | number | 6 | 小数位数上限(0-8,输入自动截断 + 校验) |
| allow-dms | boolean | true | 允许切换度分秒(DMS)只读展示 |
| coordinate-system | 'wgs84' | 'gcj02' | 'bd09' | — | 坐标系标注标签(提示性,不做偏移换算) |
| show-error | boolean | true | 失焦校验失败时是否在下方展示原因 |
| copyable | boolean | true | 完整坐标时显示一键复制 lng,lat |
| clearable | boolean | true | 完整坐标时显示清空按钮 |
BizCoordinateValue: { lng: number; lat: number }——十进制度,东经 / 北纬为正。
Events
| 事件名 | 参数 | 说明 |
|---|---|---|
| update:model-value | (value: BizCoordinateValue | undefined) | 坐标变更落值(两项同时有值为对象,否则 undefined) |
| change | (value: BizCoordinateValue | undefined) | 同 update:model-value(输入 / 粘贴 / 清空均触发) |
| blur | (valid: boolean) | 失焦校验结果外抛(表单联动用) |
Expose
| 属性/方法 | 类型 | 说明 |
|---|---|---|
| validate | () => { valid: boolean; message: string } | 触发校验(空值视为通过;必填由表单规则控制) |
| getDms | () => { lng: string; lat: string } | 度分秒换算结果(字段缺省为 '—') |
| focus | () => void | 聚焦经度输入框 |