提交 d11dbf58 作者: test

feat: Widgets 新增 getProp 方法

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