2019-11-29 12:51:58 +08:00
|
|
|
<template>
|
2020-01-06 18:39:44 +08:00
|
|
|
<div>
|
|
|
|
<pop-menu ref="popMenu" :menu="menu" />
|
|
|
|
<route-control ref="routeControl" />
|
|
|
|
<route-guide ref="routeGuide" />
|
|
|
|
<notice-info ref="noticeInfo" />
|
2020-01-08 09:41:55 +08:00
|
|
|
<create-device-label ref="createDeviceLabel" />
|
2020-01-06 18:39:44 +08:00
|
|
|
</div>
|
2019-11-29 12:51:58 +08:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
2020-01-06 18:39:44 +08:00
|
|
|
import PopMenu from '@/components/PopMenu';
|
|
|
|
import RouteControl from './dialog/routeControl';
|
|
|
|
import RouteGuide from './dialog/routeGuide';
|
|
|
|
import NoticeInfo from './dialog/childDialog/childDialog/noticeInfo';
|
2020-01-08 09:41:55 +08:00
|
|
|
import CreateDeviceLabel from './dialog/createDeviceLabel';
|
2020-01-06 18:39:44 +08:00
|
|
|
import { mapGetters } from 'vuex';
|
|
|
|
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
|
|
|
|
import { DeviceMenu, OperateMode } from '@/scripts/ConstDic';
|
|
|
|
import CMD from '@/scripts/cmdPlugin/CommandEnum';
|
|
|
|
import MenuContextHandler from '@/scripts/cmdPlugin/MenuContextHandler';
|
2019-11-29 12:51:58 +08:00
|
|
|
|
2020-01-06 18:39:44 +08:00
|
|
|
export default {
|
|
|
|
name: 'SignalMenu',
|
|
|
|
components: {
|
|
|
|
PopMenu,
|
|
|
|
RouteControl,
|
|
|
|
RouteGuide,
|
2020-01-08 09:41:55 +08:00
|
|
|
NoticeInfo,
|
|
|
|
CreateDeviceLabel
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
props: {
|
|
|
|
selected: {
|
|
|
|
type: Object,
|
|
|
|
default: () => {
|
|
|
|
return null;
|
2019-11-29 12:51:58 +08:00
|
|
|
}
|
2020-01-06 18:39:44 +08:00
|
|
|
}
|
|
|
|
},
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
menu: [],
|
|
|
|
menuNormal: {
|
|
|
|
Local: [
|
|
|
|
{
|
|
|
|
label: '始端/终端选择',
|
2020-01-09 17:48:25 +08:00
|
|
|
handler: this.arrangementRoute,
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '取消进路',
|
|
|
|
handler: this.cancelTrainRoute,
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '开放自动进路',
|
2020-01-09 17:48:25 +08:00
|
|
|
handler: this.atsAutoControl,
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '关闭自动进路',
|
2020-01-09 17:48:25 +08:00
|
|
|
handler: this.humanControl,
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '终端信号封锁',
|
|
|
|
handler: this.lock,
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_BLOCK
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '终端信号解封',
|
|
|
|
handler: this.unlock,
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '引导信号',
|
2020-01-09 17:48:25 +08:00
|
|
|
handler: this.guide,
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '设备标签',
|
|
|
|
handler: '',
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE,
|
|
|
|
children: [
|
|
|
|
{
|
|
|
|
label: '创建设备标签',
|
|
|
|
handler: '',
|
|
|
|
cmdType: ''
|
|
|
|
}
|
|
|
|
]
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '模拟',
|
|
|
|
handler: '',
|
|
|
|
cmdType: ''
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '选择设备',
|
|
|
|
handler: '',
|
|
|
|
cmdType: ''
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '帮助',
|
|
|
|
handler: '',
|
|
|
|
cmdType: ''
|
|
|
|
}
|
|
|
|
],
|
|
|
|
Center: [
|
|
|
|
{
|
|
|
|
label: '始端/终端选择',
|
2020-01-09 17:48:25 +08:00
|
|
|
handler: this.arrangementRoute,
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '取消进路',
|
|
|
|
handler: this.cancelTrainRoute,
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_CANCEL_ROUTE
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '开放自动进路',
|
2020-01-09 17:48:25 +08:00
|
|
|
handler: this.atsAutoControl,
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_OPEN_AUTO_SETTING
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '关闭自动进路',
|
2020-01-09 17:48:25 +08:00
|
|
|
handler: this.humanControl,
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_AUTO_SETTING
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '终端信号封锁',
|
|
|
|
handler: this.lock,
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_BLOCK
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '终端信号解封',
|
|
|
|
handler: this.unlock,
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_UNBLOCK
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '引导信号',
|
2020-01-09 17:48:25 +08:00
|
|
|
handler: this.guide,
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '设备标签',
|
|
|
|
handler: '',
|
2020-01-08 09:41:55 +08:00
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_ROUTE_GUIDE,
|
|
|
|
children: [
|
|
|
|
{
|
|
|
|
label: '创建设备标签',
|
|
|
|
handler: this.createDeviceLabel,
|
|
|
|
cmdType: ''
|
|
|
|
}
|
|
|
|
]
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
2019-11-29 12:51:58 +08:00
|
|
|
{
|
2020-01-06 18:39:44 +08:00
|
|
|
label: '模拟',
|
|
|
|
handler: '',
|
|
|
|
cmdType: ''
|
2019-11-29 12:51:58 +08:00
|
|
|
},
|
|
|
|
{
|
2020-01-06 18:39:44 +08:00
|
|
|
label: '选择设备',
|
|
|
|
handler: '',
|
|
|
|
cmdType: ''
|
2019-11-29 12:51:58 +08:00
|
|
|
},
|
|
|
|
{
|
2020-01-06 18:39:44 +08:00
|
|
|
label: '帮助',
|
|
|
|
handler: '',
|
|
|
|
cmdType: ''
|
2019-11-29 12:51:58 +08:00
|
|
|
}
|
|
|
|
]
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
menuForce: [
|
|
|
|
{
|
|
|
|
label: '信号关灯',
|
|
|
|
handler: this.signalClose,
|
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_CLOSE_SIGNAL
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '设置故障',
|
|
|
|
handler: this.setStoppage,
|
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_ADD_FAULT
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '取消故障',
|
|
|
|
handler: this.cancelStoppage,
|
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_REMOVE_FAULT
|
|
|
|
}
|
|
|
|
]
|
|
|
|
};
|
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
...mapGetters('training', [
|
|
|
|
'mode',
|
|
|
|
'operatemode'
|
|
|
|
]),
|
|
|
|
...mapGetters('menuOperation', [
|
|
|
|
'buttonOperation'
|
|
|
|
]),
|
|
|
|
group() {
|
|
|
|
return this.$route.query.group;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
watch: {
|
|
|
|
'$store.state.menuOperation.menuCount': function (val) {
|
|
|
|
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Signal) && !this.buttonOperation) {
|
|
|
|
this.doShow(this.$store.state.menuOperation.menuPosition);
|
|
|
|
} else {
|
|
|
|
this.doClose();
|
2019-11-29 12:51:58 +08:00
|
|
|
}
|
2020-01-06 18:39:44 +08:00
|
|
|
}
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
clickEvent() {
|
|
|
|
const self = this;
|
|
|
|
window.onclick = function (e) {
|
|
|
|
self.doClose();
|
|
|
|
};
|
2019-11-29 12:51:58 +08:00
|
|
|
},
|
2020-01-06 18:39:44 +08:00
|
|
|
initMenu() {
|
|
|
|
// 编辑模式菜单列表
|
|
|
|
this.menu = MenuContextHandler.covert(this.menuNormal);
|
|
|
|
|
|
|
|
// 故障模式菜单列表
|
|
|
|
if (this.operatemode === OperateMode.FAULT) {
|
|
|
|
this.menu = this.menuForce;
|
2019-11-29 12:51:58 +08:00
|
|
|
}
|
|
|
|
},
|
2020-01-06 18:39:44 +08:00
|
|
|
doShow(point) {
|
|
|
|
this.clickEvent();
|
|
|
|
this.initMenu();
|
|
|
|
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
|
|
|
this.$refs.popMenu.resetShowPosition(point);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
doClose() {
|
|
|
|
if (this.$refs && this.$refs.popMenu) {
|
|
|
|
this.$refs.popMenu.close();
|
|
|
|
}
|
2019-11-29 12:51:58 +08:00
|
|
|
},
|
2020-01-06 18:39:44 +08:00
|
|
|
// 信号关灯
|
|
|
|
signalClose() {
|
|
|
|
const step = {
|
|
|
|
start: true,
|
|
|
|
code: `${this.selected.code}`,
|
|
|
|
operation: OperationEvent.Signal.signalClose.menu.operation,
|
|
|
|
param: {
|
|
|
|
Signal_Code: `${this.selected.code}`
|
2019-11-29 12:51:58 +08:00
|
|
|
}
|
2020-01-06 18:39:44 +08:00
|
|
|
};
|
|
|
|
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
|
|
|
if (valid) {
|
|
|
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
|
|
|
this.$refs.routeControl.doShow(step, this.selected);
|
2019-11-29 12:51:58 +08:00
|
|
|
}
|
2020-01-06 18:39:44 +08:00
|
|
|
}).catch(() => {
|
|
|
|
this.$refs.noticeInfo.doShow(step);
|
|
|
|
});
|
|
|
|
},
|
|
|
|
// 设置故障
|
|
|
|
setStoppage() {
|
|
|
|
const step = {
|
|
|
|
start: true,
|
|
|
|
code: `${this.selected.code}`,
|
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_ADD_FAULT,
|
|
|
|
operation: OperationEvent.Signal.stoppage.menu.operation,
|
|
|
|
param: {
|
|
|
|
Signal_Code: `${this.selected.code}`
|
2019-11-29 12:51:58 +08:00
|
|
|
}
|
2020-01-06 18:39:44 +08:00
|
|
|
};
|
2019-11-29 12:51:58 +08:00
|
|
|
|
2020-01-06 18:39:44 +08:00
|
|
|
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
|
|
|
if (valid) {
|
|
|
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
|
|
|
} else {
|
|
|
|
this.$refs.noticeInfo.doShow(step);
|
2019-11-29 12:51:58 +08:00
|
|
|
}
|
2020-01-06 18:39:44 +08:00
|
|
|
}).catch(() => {
|
|
|
|
this.$refs.noticeInfo.doShow(step);
|
|
|
|
});
|
|
|
|
},
|
|
|
|
// 取消故障
|
|
|
|
cancelStoppage() {
|
|
|
|
const step = {
|
|
|
|
start: true,
|
|
|
|
code: `${this.selected.code}`,
|
|
|
|
cmdType: CMD.Signal.CMD_SIGNAL_REMOVE_FAULT,
|
|
|
|
operation: OperationEvent.Signal.cancelStoppage.menu.operation,
|
|
|
|
param: {
|
|
|
|
Signal_Code: `${this.selected.code}`
|
2019-11-29 12:51:58 +08:00
|
|
|
}
|
2020-01-06 18:39:44 +08:00
|
|
|
};
|
2019-11-29 12:51:58 +08:00
|
|
|
|
2020-01-06 18:39:44 +08:00
|
|
|
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
|
|
|
if (valid) {
|
|
|
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
|
|
|
} else {
|
|
|
|
this.$refs.noticeInfo.doShow(step);
|
|
|
|
}
|
|
|
|
}).catch(() => {
|
|
|
|
this.$refs.noticeInfo.doShow(step);
|
|
|
|
});
|
|
|
|
},
|
|
|
|
// 设置进路
|
|
|
|
arrangementRoute() {
|
|
|
|
const step = {
|
|
|
|
start: true,
|
|
|
|
code: `${this.selected.code}`,
|
|
|
|
operation: OperationEvent.Signal.arrangementRoute.menu.operation,
|
|
|
|
param: {
|
|
|
|
Signal_Code: `${this.selected.code}`
|
|
|
|
}
|
|
|
|
};
|
2019-11-29 12:51:58 +08:00
|
|
|
|
2020-01-06 18:39:44 +08:00
|
|
|
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
|
|
|
if (valid) {
|
2020-01-09 17:48:25 +08:00
|
|
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true});
|
2020-01-09 18:21:04 +08:00
|
|
|
this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, operation: '始端/终端选择'});
|
2019-11-29 12:51:58 +08:00
|
|
|
}
|
2020-01-06 18:39:44 +08:00
|
|
|
}).catch(() => {
|
|
|
|
this.$refs.noticeInfo.doShow(step);
|
|
|
|
});
|
|
|
|
},
|
|
|
|
// 进路引导
|
|
|
|
guide() {
|
|
|
|
const step = {
|
|
|
|
start: true,
|
|
|
|
code: `${this.selected.code}`,
|
|
|
|
operation: OperationEvent.Signal.guide.menu.operation,
|
|
|
|
param: {
|
|
|
|
Signal_Code: `${this.selected.code}`
|
|
|
|
}
|
|
|
|
};
|
|
|
|
this.$store.dispatch('training/nextNew', step).then(({ valid, response }) => {
|
|
|
|
if (valid) {
|
2020-01-09 17:48:25 +08:00
|
|
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
2020-01-09 18:21:04 +08:00
|
|
|
this.$store.dispatch('menuOperation/pushRequestList', {device: this.selected, operation: '引导信号'});
|
2020-01-06 18:39:44 +08:00
|
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
// 取消进路
|
|
|
|
cancelTrainRoute() {
|
|
|
|
const step = {
|
|
|
|
start: true,
|
|
|
|
code: `${this.selected.code}`,
|
|
|
|
operation: OperationEvent.Signal.cancelTrainRoute.menu.operation,
|
|
|
|
param: {
|
|
|
|
Signal_Code: `${this.selected.code}`
|
|
|
|
}
|
|
|
|
};
|
|
|
|
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
|
|
|
if (valid) {
|
2020-01-09 17:48:25 +08:00
|
|
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
2020-01-09 18:21:04 +08:00
|
|
|
this.$store.dispatch('menuOperation/pushRequestList', {device: this.selected, operation: '取消进路'});
|
2020-01-06 18:39:44 +08:00
|
|
|
}
|
|
|
|
});
|
|
|
|
},
|
2020-01-09 17:48:25 +08:00
|
|
|
// 信号封锁
|
|
|
|
lock() {
|
2020-01-06 18:39:44 +08:00
|
|
|
const step = {
|
|
|
|
start: true,
|
|
|
|
code: `${this.selected.code}`,
|
2020-01-09 17:48:25 +08:00
|
|
|
operation: OperationEvent.Signal.lock.menu.operation,
|
2020-01-06 18:39:44 +08:00
|
|
|
param: {
|
|
|
|
Signal_Code: `${this.selected.code}`
|
|
|
|
}
|
|
|
|
};
|
|
|
|
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
|
|
|
if (valid) {
|
|
|
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
2020-01-09 18:21:04 +08:00
|
|
|
this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, operation: '终端信号机封锁' });
|
2020-01-06 18:39:44 +08:00
|
|
|
}
|
2020-01-09 17:48:25 +08:00
|
|
|
}).catch(() => {
|
|
|
|
this.$refs.noticeInfo.doShow(step);
|
2020-01-06 18:39:44 +08:00
|
|
|
});
|
|
|
|
},
|
|
|
|
// 信号解封
|
|
|
|
unlock() {
|
|
|
|
const step = {
|
|
|
|
start: true,
|
|
|
|
code: `${this.selected.code}`,
|
|
|
|
operation: OperationEvent.Signal.unlock.menu.operation,
|
|
|
|
param: {
|
|
|
|
Signal_Code: `${this.selected.code}`
|
|
|
|
}
|
|
|
|
};
|
2020-01-09 17:48:25 +08:00
|
|
|
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
|
|
|
if (valid) {
|
|
|
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
2020-01-09 18:21:04 +08:00
|
|
|
this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, operation: '终端信号机解封'});
|
2020-01-09 17:48:25 +08:00
|
|
|
}
|
|
|
|
});
|
2020-01-06 18:39:44 +08:00
|
|
|
},
|
|
|
|
// 进路交人工控
|
|
|
|
humanControl() {
|
|
|
|
const step = {
|
|
|
|
start: true,
|
|
|
|
code: `${this.selected.code}`,
|
|
|
|
operation: OperationEvent.Signal.humanControl.menu.operation,
|
|
|
|
param: {
|
|
|
|
Signal_Code: `${this.selected.code}`
|
|
|
|
}
|
|
|
|
};
|
|
|
|
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
|
|
|
if (valid) {
|
2019-11-29 12:51:58 +08:00
|
|
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
2020-01-09 18:21:04 +08:00
|
|
|
this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, operation: '关闭自动进路'});
|
2020-01-06 18:39:44 +08:00
|
|
|
}
|
|
|
|
});
|
|
|
|
},
|
|
|
|
// 进路交自动控
|
|
|
|
atsAutoControl() {
|
|
|
|
const step = {
|
|
|
|
start: true,
|
|
|
|
code: `${this.selected.code}`,
|
|
|
|
operation: OperationEvent.Signal.atsAutoControl.menu.operation,
|
|
|
|
param: {
|
|
|
|
Signal_Code: `${this.selected.code}`
|
|
|
|
}
|
|
|
|
};
|
|
|
|
this.$store.dispatch('training/nextNew', step).then(({ valid }) => {
|
|
|
|
if (valid) {
|
2019-11-29 12:51:58 +08:00
|
|
|
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
|
2020-01-09 18:21:04 +08:00
|
|
|
this.$store.dispatch('menuOperation/pushRequestList', { device: this.selected, operation: '开放自动进路'});
|
2020-01-06 18:39:44 +08:00
|
|
|
}
|
|
|
|
});
|
2020-01-08 09:41:55 +08:00
|
|
|
},
|
|
|
|
createDeviceLabel() {
|
|
|
|
this.$refs.createDeviceLabel.doShow();
|
2019-11-29 12:51:58 +08:00
|
|
|
}
|
|
|
|
}
|
2020-01-06 18:39:44 +08:00
|
|
|
};
|
|
|
|
</script>
|