Closed HNQX closed 2 years ago
好像pixelSize一定要声明,否则就会报错 pointOpts: { pixelSize: 8, onClick(){ console.log(123213); } }
嗯 得传。 其实这个问题也困扰我很久了,比较方便的应该是不传,然后组件内部去merge默认属性,因为配置对象还是有好几层,只能但内部深度merge,但这样会导致 props 响应式丢失。一直也没想好完美解决方案。
目前是 vue-cesium 把一些默认配置导出了,用的时候先导入默认配置,然后通过 Object.assgin({}, defaultProps, 你自定义的)来传进去。
举个例子吧
import { editorOptsDefault, pointDrawingDefault } from 'vue-cesium/es/composables/use-drawing/defaultOpts'
const pinDrawingOpts = {
billboardOpts: {
image: '/images/pin.svg',
scale: 0.25
},
editorOpts: Object.assign({}, pointDrawingDefault.editorOpts, {
custom: Object.assign({}, editorOptsDefault, {
icon: 'label',
tooltip: {
tip: '编辑文本'
},
callback: (index, polyline) => {
$q.dialog({
title: '提示',
message: '请输入文本',
prompt: {
model:
drawingsRef.value.getDrawingActionInstances()[0].cmpRef.value.renderDatas.value[index].labelOpts.text ||
'',
isValid: val => val.length > 0, // << here is the magic
type: 'text' // optional
},
cancel: true,
persistent: true
}).onOk(data => {
drawingsRef.value.getDrawingActionInstances()[0].cmpRef.value.renderDatas.value[index].labelOpts.text = data
})
}
})
})
}
VueCesium version
3.0.17
OS/Browsers version
win11
Vue version
3.2.37
Cesium version
1.96.0
Reproduction Link
https://zouyaoji.top/vue-cesium/#/zh-CN/component/analyses/vc-drawings
Steps to reproduce
打开【可编辑】模式,鼠标移动到【点】上
What is Expected?
期待无报错
What is actually happening?
报错,停止渲染
PS:VIDEO