1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <template>
- <div>
- <slot></slot>
- </div>
- </template>
- <script>
- import commonMixin from '../base/mixins/common.js'
- export default {
- name: 'bm-context-menu',
- props: {
- width: {
- type: Number
- }
- },
- mixins: [commonMixin('contextMenu')],
- methods: {
- load () {
- const {width, BMap, map, $parent} = this
- const parent = this.parent = $parent.originInstance || map
- if (this.originInstance) {
- parent.removeContextMenu(this.originInstance)
- }
- const menu = this.originInstance = new BMap.ContextMenu()
- for (const item of this.$children) {
- if (item.seperator) {
- menu.addSeparator()
- continue
- }
- const menuItem = new BMap.MenuItem(item.text, function (point, pixel) {
- item.callback({
- point,
- pixel,
- BMap,
- map,
- target: parent
- })
- }, {
- width,
- id: item.id,
- iconUrl: item.iconUrl
- })
- item.disabled ? menuItem.disable() : menuItem.enable()
- item.originInstance = menuItem
- menu.addItem(menuItem)
- }
- parent.addContextMenu(menu)
- }
- }
- }
- </script>
|