@vuemap/vue-amap
Version:
高德地图vue3版本封装
1 lines • 15.2 kB
Source Map (JSON)
{"version":3,"file":"register-component.mjs","sources":["../../../mixins/register-component.ts"],"sourcesContent":["import {defineComponent, isProxy, toRaw, unref} from \"vue\";\r\nimport {convertEventToLowerCase, eventReg, upperCamelCase, bindInstanceEvent, removeInstanceEvent} from \"../utils\";\r\nimport type {WatchStopHandle, ComponentPublicInstance} from \"vue\";\r\n\r\nexport default defineComponent({\r\n inject: {\r\n parentInstance: {\r\n default: null\r\n }\r\n },\r\n inheritAttrs: false,\r\n props: {\r\n visible: {\r\n type: Boolean,\r\n default: true\r\n }, // 是否显示,默认 true\r\n zIndex: {\r\n type: Number\r\n },\r\n reEventWhenUpdate: {\r\n type: Boolean,\r\n default: false\r\n }, // 是否在组件更新时重新注册事件,主要用于数组更新时,绑定了事件但事件的对象不会更新问题\r\n extraOptions: {\r\n type: Object\r\n } // 额外扩展属性\r\n },\r\n emits: ['init'],\r\n data() {\r\n return {\r\n needInitComponents: [] as (() => void)[],\r\n unwatchFns: [] as WatchStopHandle[],\r\n propsRedirect: {},\r\n converters: {},\r\n isDestroy: false,\r\n cacheEvents: {},\r\n isMounted: false\r\n };\r\n },\r\n created() {\r\n this.$amapComponent = null as any;\r\n this.$parentComponent = null as any;\r\n },\r\n mounted() {\r\n if (this.parentInstance) {\r\n if (this.parentInstance.$amapComponent) {\r\n this.register();\r\n } else {\r\n this.parentInstance.addChildComponent(this.register);\r\n }\r\n }\r\n },\r\n\r\n beforeUnmount() {\r\n if (!this.$amapComponent) return;\r\n this.unregisterEvents();\r\n this.unwatchFns.forEach(item => item());\r\n this.unwatchFns = [];\r\n this.destroyComponent();\r\n this.isDestroy = true;\r\n },\r\n beforeUpdate() {\r\n if(this.reEventWhenUpdate && this.isMounted && this.$amapComponent){\r\n this.unregisterEvents();\r\n }\r\n },\r\n updated() {\r\n if(this.reEventWhenUpdate && this.isMounted && this.$amapComponent){\r\n this.registerEvents();\r\n }\r\n },\r\n methods: {\r\n getHandlerFun(prop) {\r\n if (this[`__${prop}`]) {\r\n return this[`__${prop}`];\r\n }\r\n if(!this.$amapComponent){\r\n return null;\r\n }\r\n return this.$amapComponent[`set${upperCamelCase(prop)}`];\r\n },\r\n\r\n convertProps() {\r\n const props = {};\r\n const {$props, propsRedirect} = this;\r\n if(this.extraOptions){\r\n Object.assign(props, this.extraOptions);\r\n }\r\n const result = Object.keys($props).reduce((res, _key) => {\r\n let key = _key;\r\n const propsValue = this.convertSignalProp(key, $props[key]);\r\n if (propsValue === undefined) return res;\r\n if (propsRedirect && propsRedirect[_key]) key = propsRedirect[key];\r\n props[key] = propsValue;\r\n return res;\r\n }, props);\r\n Object.keys(result).forEach(key => {\r\n result[key] = this.convertProxyToRaw(result[key]);\r\n });\r\n return result;\r\n },\r\n\r\n convertProxyToRaw(value: any){\r\n if(isProxy(value)){\r\n return toRaw(value);\r\n }\r\n return unref(value);\r\n },\r\n\r\n convertSignalProp(key, sourceData) {\r\n if (this.converters && this.converters[key]) {\r\n return this.converters[key].call(this, sourceData);\r\n }\r\n return sourceData;\r\n },\r\n\r\n registerEvents() {\r\n const $props = this.$attrs;\r\n Object.keys($props).forEach(key => {\r\n if(eventReg.test(key)){\r\n const eventKey = convertEventToLowerCase(key);\r\n bindInstanceEvent(this.$amapComponent, eventKey, $props[key]);\r\n this.cacheEvents[eventKey] = $props[key];\r\n }\r\n });\r\n },\r\n\r\n unregisterEvents() {\r\n Object.keys(this.cacheEvents).forEach(eventKey => {\r\n removeInstanceEvent(this.$amapComponent, eventKey, this.cacheEvents[eventKey]);\r\n delete this.cacheEvents[eventKey];\r\n });\r\n },\r\n\r\n setPropWatchers() {\r\n const {propsRedirect, $props} = this;\r\n\r\n Object.keys($props).forEach(prop => {\r\n let handleProp = prop;\r\n if (propsRedirect && propsRedirect[prop]) handleProp = propsRedirect[prop];\r\n const handleFun = this.getHandlerFun(handleProp);\r\n if (!handleFun) return;\r\n const watchOptions = {\r\n deep: false\r\n };\r\n const propValueType = Object.prototype.toString.call($props[prop]);\r\n if ( propValueType === '[object Object]' || propValueType === '[object Array]') {\r\n watchOptions.deep = true;\r\n }\r\n // watch props\r\n const unwatch = this.$watch(prop, nv => {\r\n handleFun.call(this.$amapComponent, this.convertProxyToRaw(this.convertSignalProp(prop, nv)));\r\n }, watchOptions);\r\n\r\n // collect watchers for destroyed\r\n this.unwatchFns.push(unwatch);\r\n });\r\n },\r\n\r\n // some prop can not init by initial created methods\r\n initProps() {\r\n const props = ['editable', 'visible', 'zooms'];\r\n\r\n props.forEach(propStr => {\r\n if (this[propStr] !== undefined) {\r\n const handleFun = this.getHandlerFun(propStr);\r\n handleFun && handleFun.call(this.$amapComponent, this.convertProxyToRaw(this.convertSignalProp(propStr, this[propStr])));\r\n }\r\n });\r\n\r\n // this.printReactiveProp();\r\n },\r\n\r\n lazyRegister(){\r\n const $parent = this.parentInstance as (ComponentPublicInstance);\r\n if($parent && $parent.addChildComponent){\r\n $parent.addChildComponent(this);\r\n }\r\n },\r\n addChildComponent(component : () => void){\r\n this.needInitComponents.push(component);\r\n },\r\n createChildren(){\r\n while (this.needInitComponents.length > 0){\r\n this.needInitComponents[0]();\r\n this.needInitComponents.splice(0, 1);\r\n }\r\n },\r\n register() {\r\n if(this.parentInstance && !this.$parentComponent){\r\n this.$parentComponent = this.parentInstance.$amapComponent;\r\n }\r\n const res = this['__initComponent'] && this['__initComponent'](this.convertProps());\r\n if (res && res.then) res.then((instance) => this.registerRest(instance)); // promise\r\n else this.registerRest(res);\r\n },\r\n\r\n registerRest(instance) {\r\n if (!this.$amapComponent && instance) this.$amapComponent = instance;\r\n this.registerEvents();\r\n this.initProps();\r\n this.setPropWatchers();\r\n this.$emit('init', this.$amapComponent, this);\r\n this.$nextTick(() => {\r\n this.createChildren();\r\n });\r\n this.isMounted = true;\r\n },\r\n\r\n // helper method\r\n $$getInstance() {\r\n return this.$amapComponent;\r\n },\r\n destroyComponent() {\r\n this.$amapComponent.setMap && this.$amapComponent.setMap(null);\r\n this.$amapComponent.close && this.$amapComponent.close();\r\n this.$amapComponent.editor && this.$amapComponent.editor.close();\r\n },\r\n __visible(flag){\r\n if(!!this.$amapComponent && !!this.$amapComponent.show && !!this.$amapComponent.hide){\r\n flag === false ? this.$amapComponent.hide() : this.$amapComponent.show();\r\n }\r\n },\r\n __zIndex(value){\r\n if (this.$amapComponent && this.$amapComponent.setzIndex) {\r\n this.$amapComponent.setzIndex(value);\r\n }\r\n }\r\n }\r\n});\r\n"],"names":[],"mappings":"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"}