西安三号线 鼠标右键无法出现菜单快速切换车站 处理
This commit is contained in:
parent
8abbe2e05a
commit
60fce71f8a
@ -11,10 +11,12 @@
|
|||||||
<passive-alarm ref="passiveAlarm" />
|
<passive-alarm ref="passiveAlarm" />
|
||||||
<passive-contorl ref="passiveControl" pop-class="xian-01__systerm" />
|
<passive-contorl ref="passiveControl" pop-class="xian-01__systerm" />
|
||||||
<passive-Timeout ref="passiveTimeout" />
|
<passive-Timeout ref="passiveTimeout" />
|
||||||
|
<pop-menu ref="popMenu" :menu="menu" pop-class="preview_new_pop" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { DeviceMenu } from '@/scripts/ConstDic';
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import MenuSignal from './menuSignal';
|
import MenuSignal from './menuSignal';
|
||||||
import MenuStationStand from './menuStationStand';
|
import MenuStationStand from './menuStationStand';
|
||||||
@ -27,6 +29,7 @@ import MenuStationTurnBack from './menuStationTurnBack';
|
|||||||
import PassiveAlarm from './passiveDialog/alarm';
|
import PassiveAlarm from './passiveDialog/alarm';
|
||||||
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
|
import PassiveContorl from '@/jmapNew/theme/components/menus/passiveDialog/control';
|
||||||
import PassiveTimeout from './passiveDialog/timeout';
|
import PassiveTimeout from './passiveDialog/timeout';
|
||||||
|
import PopMenu from '@/components/PopMenu';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Menus',
|
name: 'Menus',
|
||||||
@ -41,7 +44,8 @@ export default {
|
|||||||
PassiveAlarm,
|
PassiveAlarm,
|
||||||
MenuStationTurnBack,
|
MenuStationTurnBack,
|
||||||
PassiveContorl,
|
PassiveContorl,
|
||||||
PassiveTimeout
|
PassiveTimeout,
|
||||||
|
PopMenu
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
selected: {
|
selected: {
|
||||||
@ -51,6 +55,12 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
menu: [],
|
||||||
|
menuNormal: []
|
||||||
|
};
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters('config', [
|
...mapGetters('config', [
|
||||||
'width'
|
'width'
|
||||||
@ -62,6 +72,13 @@ export default {
|
|||||||
watch: {
|
watch: {
|
||||||
isShowBar(val) {
|
isShowBar(val) {
|
||||||
val && this.$store.dispatch('config/updateMenuBar');
|
val && this.$store.dispatch('config/updateMenuBar');
|
||||||
|
},
|
||||||
|
'$store.state.menuOperation.menuCount': function (val) {
|
||||||
|
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Cancel) && this.$store.state.training.prdType == '02') {
|
||||||
|
this.popDoShow(this.$store.state.menuOperation.menuPosition);
|
||||||
|
} else {
|
||||||
|
this.popDoClose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@ -84,6 +101,58 @@ export default {
|
|||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
window.onclick = function (e) {};
|
window.onclick = function (e) {};
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
popClickEvent() {
|
||||||
|
const self = this;
|
||||||
|
window.onclick = function (e) {
|
||||||
|
self.popDoClose();
|
||||||
|
};
|
||||||
|
},
|
||||||
|
popDoShow(point) {
|
||||||
|
this.popClickEvent();
|
||||||
|
this.initMenu();
|
||||||
|
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||||
|
this.$refs.popMenu.resetShowPosition(point);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
initMenu() {
|
||||||
|
this.menuNormal = [];
|
||||||
|
this.$store.state.map.map.stationList.forEach(station => {
|
||||||
|
if (station.chargeStationCodeList && station.chargeStationCodeList.length) {
|
||||||
|
const node = {
|
||||||
|
label: station.name,
|
||||||
|
children: [{
|
||||||
|
code: station.code,
|
||||||
|
label: station.name,
|
||||||
|
handler: this.mapLocation
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
station.chargeStationCodeList.forEach(item => {
|
||||||
|
const next = this.$store.getters['map/getDeviceByCode'](item);
|
||||||
|
node.children.push({
|
||||||
|
code: next.code,
|
||||||
|
label: next.name,
|
||||||
|
handler: this.mapLocation
|
||||||
|
});
|
||||||
|
});
|
||||||
|
this.menuNormal.push(node);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.menu = [...this.menuNormal];
|
||||||
|
},
|
||||||
|
popDoClose() {
|
||||||
|
if (this.$refs && this.$refs.popMenu) {
|
||||||
|
this.$refs.popMenu.close();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 设置地图定位
|
||||||
|
mapLocation(item) {
|
||||||
|
if (item) {
|
||||||
|
this.$store.dispatch('training/updateOffsetStationCode', { offsetStationCode: item.code });
|
||||||
|
this.popDoClose();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
Reference in New Issue
Block a user