提交 d11dbf58 作者: test

feat: Widgets 新增 getProp 方法

上级 53f26e58
......@@ -57,6 +57,10 @@
Object.assign(data, value)
}
function getProp(key: keyof typeof props) {
return data[key]
}
function setOptionItems(key: string, items: OptionItem[]) {
data.options = data.options.map((option) => {
if (option.key === key) {
......@@ -134,6 +138,7 @@
emits('register', {
setProps,
getProp,
toggleShow,
setOptionItems,
setOptionItemChecked,
......
......@@ -67,8 +67,13 @@
Object.assign(data, value)
}
function getProp(key: keyof typeof props) {
return data[key]
}
emits('register', {
setProps,
getProp,
toggleShow,
toggleExpand,
// TODO: 此处高度还需考虑底部安全区
......
......@@ -67,8 +67,13 @@
Object.assign(data, value)
}
function getProp(key: keyof typeof props) {
return data[key]
}
emits('register', {
setProps,
getProp,
setTitle,
setOption,
toggleShow,
......
......@@ -32,6 +32,10 @@
Object.assign(data, value)
}
function getProp(key: keyof typeof props) {
return data[key]
}
function onPrev() {
data.prev?.()
emits('prev')
......@@ -43,10 +47,11 @@
}
emits('register', {
prev: onPrev,
next: onNext,
setProps,
getProp,
toggleShow,
prev: onPrev,
next: onNext,
})
</script>
......
......@@ -66,6 +66,10 @@
}
}
function getProp(key: keyof typeof props) {
return data[key]
}
function getTime(): Dayjs[] {
return toRaw(data.time.value)
}
......@@ -146,6 +150,7 @@
emits('register', {
setProps,
getProp,
toggleShow,
getTime,
setTime,
......
......@@ -72,6 +72,10 @@
Object.assign(data, value)
}
function getProp(key: keyof typeof props) {
return data[key]
}
function onButtonTap(button: ToolBoxButton) {
console.log('onButtonTap', button)
......@@ -141,6 +145,7 @@
emits('register', {
setProps,
getProp,
toggleShow,
toggleExpand,
})
......
......@@ -16,6 +16,12 @@ export interface BasicWidgetInstance<T extends BasicWidgetProps = BasicWidgetPro
*/
setProps: (props: Partial<T>) => void
/**
* 获取小部件属性
* @param key 属性名称
* @returns 属性值
*/
getProp: <K extends keyof T>(key: K) => T[K]
/**
* 切换显示状态
* @param show 是否显示,强制指定显示状态
*/
......@@ -95,6 +101,8 @@ export function unpackWidgetInstance<T extends BasicWidgetInstance, P extends Ba
return {
get,
setProps: (props: Partial<P>) => get()?.setProps(props),
// @ts-expect-error
getProp: <K extends keyof P>(key: K) => get()?.getProp(key),
toggleShow: (show?: boolean) => get()?.toggleShow(getBooleanOrDefault(show)),
} as T & { get: () => T }
}
......
......@@ -231,7 +231,7 @@
const [registerLegendWidget, { setProps: setLegendProps }] = useLegendWidget(hourTemLegendConfig)
// 底部 Bar 小部件
const [registerBottomBarWidget, { height }] = useBottomBarWidget({
const [registerBottomBarWidget, { height, getProp: getBottomBarProp }] = useBottomBarWidget({
show: true,
expand: true,
// expandTitle: '工具栏',
......@@ -252,7 +252,7 @@
// 当底部 Bar 小部件高度变化时,重新设置地图的中心点,使界面显示效果更好
if (map.isReady.value) {
if (value === 150) {
if (value === getBottomBarProp('height')) {
map.flyTo({
center: [111.6, 26.770844],
speed: 0.2,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论