Merge remote-tracking branch 'origin/test'

This commit is contained in:
fan 2022-06-27 18:08:41 +08:00
commit 3e60f4b8e1
28 changed files with 2482 additions and 248 deletions

View File

@ -15,7 +15,8 @@ const mapDeviceStyle = {
'14':'nanjing_02', // 南京二号线
'15': 'datie_01', // 大铁线路一
'16': 'datie_02', // 大铁线路二
'17':'datie_tky' // 铁科院大铁线路
'17':'datie_tky', // 铁科院大铁线路
'18':'datie_jd1a'
};
export function selectLineCode(code) {

File diff suppressed because it is too large Load Diff

View File

@ -34,13 +34,13 @@ class SkinCode extends defaultStyle {
width: 3, // 区段宽度
beyondWidth: 0, // 区段宽超出宽度
invadeColor: '#FF0000', // 区段侵入颜色 (红色)
spareColor: 'rgb(85,120,182)', // 区段空闲颜色 (浅蓝)
spareColor: '#808080', // 区段空闲颜色 (灰色) ok
communicationOccupiedColor: '#FF0000', // 区段通信车占用颜色 (红色)
unCommunicationOccupiedColor: '#FF0000', // 区段非通讯车占用颜色 (红色)
communicationOccupiedColor: '#FF0000', // 区段通信车占用颜色 (红色) ok
unCommunicationOccupiedColor: '#FF0000', // 区段非通讯车占用颜色 (红色) ok
routeLockColor: '#FFFFFF', // 区段进路锁定颜色 (白色)
faultLockColor: '#006400', // 区段故障锁定颜色
routeLockColor: '#FFFFFF', // 区段进路锁定颜色 (白色) ok
faultLockColor: '#006400', // 区段故障锁定颜色 ok 空闲锁闭状态
undefinedColor: '#0071C1', // 区段未定义颜色
blockColor: '#00FF00', // 区段封锁颜色
@ -49,7 +49,6 @@ class SkinCode extends defaultStyle {
timeReleaseColor: '#3F3F3F', // 区段延时释放颜色
protectiveLockColor: '#FFFF00', // 区段保护锁闭
protectiveTimeReleaseColor: '#0071C1', // 区段保护延时解锁
logicalColor: '#FFFF00', // 逻辑区段颜色 (未用)
logicalTextColor: '#C0C0C0', // 逻辑区段名称颜色 (未用)
@ -131,8 +130,10 @@ class SkinCode extends defaultStyle {
fontWeight: 'normal', // 字体粗细
borderColor: '#FE0000', // 道岔边框颜色
lossColor: '#C00808', // 道岔失去颜色
locateColor: '#00FF00', // 道岔定位颜色
inversionColor: '#FFFF00', // 道岔反位颜色
locateColor: '#00FF00', // 道岔定位颜色 ok
inversionColor: '#FFFF00', // 道岔反位颜色 ok
monolockLocationColor: '#00FF00', // 道岔单锁'定位'颜色 (绿色)
monolockInversionColor: '#FFFF00', // 道岔单锁'反位'颜色 (黄色)
faultFlashing: false // 故障闪烁

View File

@ -126,6 +126,7 @@
v-model="tableData[scope.$index].arriveRunPlan.sectionCode"
placeholder=""
size="mini"
popper-class="stationSelect"
@focus="focusArriveRunPlan($event,scope.row)"
@change="changeArriveRunPlan($event,scope.row,scope.$index)"
>

View File

@ -0,0 +1,37 @@
<template>
<div class="menus" :style="{width: width + 'px'}">
<menu-switch ref="menuSwitch" :selected="selected" />
<menu-signal ref="menuSignal" :selected="selected" />
</div>
</template>
<script>
import { mapGetters } from 'vuex';
import MenuSignal from './menuSignal';
import MenuSwitch from './menuSwitch';
export default {
name: 'Menus',
components: {
MenuSignal,
MenuSwitch
},
props: {
selected: {
type: Object,
default() {
return null;
}
}
},
computed: {
...mapGetters('config', [
'width'
])
},
mounted() {
},
methods: {
}
};
</script>

View File

@ -0,0 +1,131 @@
<template>
<div>
<pop-menu ref="popMenu" :menu="menu" />
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
</div>
</template>
<script>
import { mapGetters } from 'vuex';
import PopMenu from '@/components/PopMenu';
// OperateMode
import { DeviceMenu } from '@/scripts/ConstDic';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
export default {
name: 'SignalMenu',
components: {
PopMenu,
NoticeInfo
},
props: {
selected: {
type: Object,
default: () => {
return null;
}
}
},
data() {
return {
menu: [],
menuNormal: {
Local: [
{
label: '总取消',
handler: this.signalTotalCancle
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
},
{
label: '总人解',
handler: this.humanTrainRoute
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
},
{
type: 'separator'
},
{
label: '开放引导信号',
handler: this.signalRouteGuide
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
},
{
label: '建立引导总锁闭',
handler: this.guideTotalLock
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
},
{
type: 'separator'
},
{
label: '加封',
handler: this.seal
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
}
]
}
};
},
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.Switch) && !this.buttonOperation) {
this.doShow(this.$store.state.menuOperation.menuPosition);
} else {
this.doClose();
}
}
},
methods: {
initMenu() {
//
// this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = this.menuNormal.Local;
// //
// if (this.operatemode === OperateMode.FAULT) {
// this.menu = this.menuForce;
// }
},
doShow(point) {
this.initMenu();
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
this.$refs.popMenu.resetShowPosition(point);
}
},
//
signalTotalCancle() {
},
//
humanTrainRoute() {
},
//
signalRouteGuide() {
},
//
guideTotalLock() {
},
//
seal() {
},
doClose() {
if (this.$refs && this.$refs.popMenu) {
this.$refs.popMenu.close();
}
}
}
};
</script>

View File

@ -0,0 +1,170 @@
<template>
<div>
<pop-menu ref="popMenu" :menu="menu" />
<switch-control ref="switchControl" pop-class="chengdou-03__systerm" />
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
</div>
</template>
<script>
import PopMenu from '@/components/PopMenu';
// OperateMode
import { DeviceMenu } from '@/scripts/ConstDic';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import CMD from '@/scripts/cmdPlugin/CommandEnum';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import SwitchControl from '@/jmapNew/theme/components/menus/dialog/switchControl';
export default {
name: 'SwitchMenu',
components: {
PopMenu,
SwitchControl,
NoticeInfo
},
props: {
selected: {
type: Object,
default: () => {
return null;
}
}
},
data() {
return {
menu: [],
menuNormal: {
Local: [
{
label: '总定',
handler: this.locate,
cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION
},
{
label: '总反',
handler: this.reverse,
cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION
},
{
type: 'separator'
},
{
label: '单锁',
handler: this.lock,
cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK
},
{
label: '单解',
handler: this.unlock,
cmdType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK
},
{
type: 'separator'
},
{
label: '封闭',
handler: this.block,
cmdType: CMD.Switch.CMD_SWITCH_BLOCK
},
{
label: '解封',
handler: this.unblock,
cmdType: CMD.Switch.CMD_SWITCH_UNBLOCK
}
],
Center: [
]
}
};
},
watch: {
'$store.state.menuOperation.menuCount': function (val) {
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Switch) && !this.buttonOperation) {
this.doShow(this.$store.state.menuOperation.menuPosition);
} else {
this.doClose();
}
}
},
methods:{
//
locate() {
commitOperate(menuOperate.Switch.locate, {switchCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.switchControl.doShow(operate, this.selected);
}
});
},
//
reverse() {
commitOperate(menuOperate.Switch.reverse, {switchCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.switchControl.doShow(operate, this.selected);
}
});
},
//
lock() {
commitOperate(menuOperate.Switch.lock, { switchCode: this.selected.code}, 0).then(({valid, operate}) => {
if (valid) {
this.$refs.switchControl.doShow(operate, this.selected);
}
});
},
//
unlock() {
commitOperate(menuOperate.Switch.unlock, { switchCode: this.selected.code}, 0).then(({valid, operate}) => {
if (valid) {
this.$refs.switchControl.doShow(operate, this.selected);
}
});
},
//
block() {
commitOperate(menuOperate.Switch.block, { switchCode: this.selected.code}, 0).then(({valid, operate}) => {
if (valid) {
this.$refs.switchControl.doShow(operate, this.selected);
}
});
},
//
unblock() {
commitOperate(menuOperate.Switch.unblock, { switchCode: this.selected.code}, 0).then(({valid, operate}) => {
if (valid) {
this.$refs.switchControl.doShow(operate, this.selected);
}
});
},
doShow(point) {
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();
}
},
initMenu() {
//
// this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = this.menuNormal.Local;
//
// if (this.operatemode === OperateMode.FAULT) {
// if (!this.$store.state.scriptRecord.bgSet) {
// const menuHook = [{
// label: '',
// handler: this.hookLock
// }];
// this.menu = [...this.menuForce, ...menuHook];
// } else {
// this.menu = this.menuForce;
// }
// }
}
}
};
</script>

View File

@ -0,0 +1,71 @@
import deviceType from '../../constant/deviceType';
class Model {
constructor() {
this.screenLine = 3;
// 公共字段部分默认初始值
this['public'] = {};
this['public'][deviceType.Signal] = {
lampPositionType: '02',
lampPostType: '02'
};
// 私有字段部分默认初始值
this['private'] = {};
this['private'][deviceType.StationControl] = {
indicatorShow: true // 标识灯名称显示
};
this['private'][deviceType.Station] = {
kmPostShow: true // 公里标显示
};
this['private'][deviceType.Switch] = {
nameShow: true
};
this['private'][deviceType.Section] = {
nameShow: true,
borderBorderShow: true, // 区段边界显示
destinationNameShow: true, // 目的地码名称显示
standTrackNameShow: true, // 站台轨名称显示
reentryTrackNameShow: true, // 折返轨名称显示
transferTrackNameShow: true // 转换轨名称显示
};
this['private'][deviceType.Signal] = {
nameShow: true, // 信号机名称显示
linkageAutoRouteShow: true, // 联锁自动进路表示灯显示
atsAutoTriggerShow: true // ATS自动触发表示灯显示
};
this['private'][deviceType.Train] = {
};
this['private'][deviceType.TrainWindow] = {
trainWindowShow: true
};
}
initPublicProps(model) {
if (model) {
var modelInitial = this.public[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
}
return model;
}
initPrivateProps(model) {
if (model) {
var modelInitial = this.private[model._type];
if (modelInitial) {
for (var prop in modelInitial) {
model[prop] = modelInitial[prop];
}
}
}
return model;
}
}
export default new Model();

View File

@ -0,0 +1,5 @@
import CMD from '@/scripts/cmdPlugin/CommandEnum';
export default {
list: [
]
};

View File

@ -0,0 +1,37 @@
<template>
<div class="menus" :style="{width: width + 'px'}">
<menu-switch ref="menuSwitch" :selected="selected" />
<menu-signal ref="menuSignal" :selected="selected" />
</div>
</template>
<script>
import { mapGetters } from 'vuex';
import MenuSignal from './menuSignal';
import MenuSwitch from './menuSwitch';
export default {
name: 'Menus',
components: {
MenuSignal,
MenuSwitch
},
props: {
selected: {
type: Object,
default() {
return null;
}
}
},
computed: {
...mapGetters('config', [
'width'
])
},
mounted() {
},
methods: {
}
};
</script>

View File

@ -0,0 +1,131 @@
<template>
<div>
<pop-menu ref="popMenu" :menu="menu" />
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
</div>
</template>
<script>
import { mapGetters } from 'vuex';
import PopMenu from '@/components/PopMenu';
// OperateMode
import { DeviceMenu } from '@/scripts/ConstDic';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
export default {
name: 'SignalMenu',
components: {
PopMenu,
NoticeInfo
},
props: {
selected: {
type: Object,
default: () => {
return null;
}
}
},
data() {
return {
menu: [],
menuNormal: {
Local: [
{
label: '总取消',
handler: this.signalTotalCancle
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
},
{
label: '总人解',
handler: this.humanTrainRoute
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
},
{
type: 'separator'
},
{
label: '开放引导信号',
handler: this.signalRouteGuide
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
},
{
label: '建立引导总锁闭',
handler: this.guideTotalLock
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
},
{
type: 'separator'
},
{
label: '加封',
handler: this.seal
// cmdType: CMD.Signal.CMD_SIGNAL_SET_ROUTE
}
]
}
};
},
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.Switch) && !this.buttonOperation) {
this.doShow(this.$store.state.menuOperation.menuPosition);
} else {
this.doClose();
}
}
},
methods: {
initMenu() {
//
// this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = this.menuNormal.Local;
// //
// if (this.operatemode === OperateMode.FAULT) {
// this.menu = this.menuForce;
// }
},
doShow(point) {
this.initMenu();
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
this.$refs.popMenu.resetShowPosition(point);
}
},
//
signalTotalCancle() {
},
//
humanTrainRoute() {
},
//
signalRouteGuide() {
},
//
guideTotalLock() {
},
//
seal() {
},
doClose() {
if (this.$refs && this.$refs.popMenu) {
this.$refs.popMenu.close();
}
}
}
};
</script>

View File

@ -0,0 +1,170 @@
<template>
<div>
<pop-menu ref="popMenu" :menu="menu" />
<switch-control ref="switchControl" pop-class="chengdou-03__systerm" />
<notice-info ref="noticeInfo" pop-class="chengdou-03__systerm" />
</div>
</template>
<script>
import PopMenu from '@/components/PopMenu';
// OperateMode
import { DeviceMenu } from '@/scripts/ConstDic';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
import CMD from '@/scripts/cmdPlugin/CommandEnum';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
import SwitchControl from '@/jmapNew/theme/components/menus/dialog/switchControl';
export default {
name: 'SwitchMenu',
components: {
PopMenu,
SwitchControl,
NoticeInfo
},
props: {
selected: {
type: Object,
default: () => {
return null;
}
}
},
data() {
return {
menu: [],
menuNormal: {
Local: [
{
label: '总定',
handler: this.locate,
cmdType: CMD.Switch.CMD_SWITCH_NORMAL_POSITION
},
{
label: '总反',
handler: this.reverse,
cmdType: CMD.Switch.CMD_SWITCH_REVERSE_POSITION
},
{
type: 'separator'
},
{
label: '单锁',
handler: this.lock,
cmdType: CMD.Switch.CMD_SWITCH_SINGLE_LOCK
},
{
label: '单解',
handler: this.unlock,
cmdType: CMD.Switch.CMD_SWITCH_SINGLE_UNLOCK
},
{
type: 'separator'
},
{
label: '封闭',
handler: this.block,
cmdType: CMD.Switch.CMD_SWITCH_BLOCK
},
{
label: '解封',
handler: this.unblock,
cmdType: CMD.Switch.CMD_SWITCH_UNBLOCK
}
],
Center: [
]
}
};
},
watch: {
'$store.state.menuOperation.menuCount': function (val) {
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Switch) && !this.buttonOperation) {
this.doShow(this.$store.state.menuOperation.menuPosition);
} else {
this.doClose();
}
}
},
methods:{
//
locate() {
commitOperate(menuOperate.Switch.locate, {switchCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.switchControl.doShow(operate, this.selected);
}
});
},
//
reverse() {
commitOperate(menuOperate.Switch.reverse, {switchCode:this.selected.code}, 0).then(({valid, operate})=>{
if (valid) {
this.$refs.switchControl.doShow(operate, this.selected);
}
});
},
//
lock() {
commitOperate(menuOperate.Switch.lock, { switchCode: this.selected.code}, 0).then(({valid, operate}) => {
if (valid) {
this.$refs.switchControl.doShow(operate, this.selected);
}
});
},
//
unlock() {
commitOperate(menuOperate.Switch.unlock, { switchCode: this.selected.code}, 0).then(({valid, operate}) => {
if (valid) {
this.$refs.switchControl.doShow(operate, this.selected);
}
});
},
//
block() {
commitOperate(menuOperate.Switch.block, { switchCode: this.selected.code}, 0).then(({valid, operate}) => {
if (valid) {
this.$refs.switchControl.doShow(operate, this.selected);
}
});
},
//
unblock() {
commitOperate(menuOperate.Switch.unblock, { switchCode: this.selected.code}, 0).then(({valid, operate}) => {
if (valid) {
this.$refs.switchControl.doShow(operate, this.selected);
}
});
},
doShow(point) {
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();
}
},
initMenu() {
//
// this.menu = MenuContextHandler.covert(this.menuNormal);
this.menu = this.menuNormal.Local;
//
// if (this.operatemode === OperateMode.FAULT) {
// if (!this.$store.state.scriptRecord.bgSet) {
// const menuHook = [{
// label: '',
// handler: this.hookLock
// }];
// this.menu = [...this.menuForce, ...menuHook];
// } else {
// this.menu = this.menuForce;
// }
// }
}
}
};
</script>

View File

@ -52,7 +52,8 @@ class Theme {
'14': 'nanjing_02', // 南京二号线
'15': 'datie_01',
'16': 'datie_02',
'17': 'datie_tky'
'17': 'datie_tky',
'18': 'datie_jd1a'
};
this._runplan = {
@ -73,7 +74,8 @@ class Theme {
'14': 'nanjing_02', // 南京二号线
'15': 'datie_01',
'16': 'datie_02',
'17': 'datie_tky'
'17': 'datie_tky',
'18': 'datie_jd1a'
};
this._localShowMode = { // 现地显示模式
@ -93,7 +95,8 @@ class Theme {
'14':'ecStation',
'15':'all',
'16':'ecStation',
'17': 'all'
'17': 'all',
'18': 'all'
};
}

View File

@ -243,6 +243,7 @@ export const projectRichorJoint = '023'; // 中航锐创(实训室)
export const projectSrsandbox = '024'; // 上饶沙盘
export const projectJxgm = '025'; // 江西工贸
export const projectSay = '026'; // 江苏安全
export const projectRichorhhcj = '027'; //红河财经
export const userTrainingPlatform = '016'; // 实训系统
// export const refereePlatform = '017'; // 裁判系统
@ -687,7 +688,7 @@ export const publicAsyncRoute = [
path: '/bigTrainRunplanManage',
component: BigTrainRunplanManage,
hidden: true
},
}
];
// 城市轨道项目
@ -1636,6 +1637,27 @@ export const projectRoute = {
}
]
}
],
designrichorhhcj: [
{ // 系统管理
path: '/system',
component: Layout,
merge: true,
mergeIndex: 4,
meta: {
i18n: 'router.systemManage',
roles: [admin]
},
children: [
{
path: 'deviceManage',
component: DeviceManage,
meta: {
i18n: 'router.deviceManage'
}
}
]
}
]
};
const createRouter = () => new Router({

View File

@ -581,7 +581,7 @@ export const loginInfo = {
titleDistance: '-150px',
navigationLogoWidth: '40px',
navigationMarginLeft: '60px',
systemType: '011'
systemType: '027'
},
richorhhcj: {
title: '红河财经学校城市轨道交通实训平台',
@ -593,7 +593,7 @@ export const loginInfo = {
titleDistance: '-150px',
navigationLogoWidth: '40px',
navigationMarginLeft: '60px',
systemType: '011'
systemType: '027'
},
designjxgm: {
title: '江西工业贸易职业技术学院城市轨道交通设计平台',

View File

@ -1,4 +1,6 @@
import { publicAsyncRoute, asyncRouter, constantRoutes, user, projectTrain, projectXian, projectXty, projectGzzb, projectJsxt, projectRichorJoint, projectJyd, projectRichor, projectTky, projectHeb, superAdmin, admin, userTrainingPlatform, JSXT, projectRoute, projectDrts, projectSdy, projectSrsandbox, projectJxgm, projectSay } from '@/router/index';
import { publicAsyncRoute, asyncRouter, constantRoutes, user, projectTrain, projectXian, projectXty, projectGzzb, projectJsxt, projectRichorJoint,
projectJyd, projectRichor, projectTky, projectHeb, superAdmin, admin, userTrainingPlatform, JSXT, projectRoute, projectDrts, projectSdy,
projectSrsandbox, projectJxgm, projectSay, projectRichorhhcj } from '@/router/index';
import { loginInfo } from '@/scripts/ProjectConfig';
import { getSessionStorage } from '@/utils/auth';
@ -36,9 +38,10 @@ function hasPermission(roles, route, parentsRoles) {
function resetAsyncRouter({ systemType }) {
let list = publicAsyncRoute;
const projectList = [projectTrain, projectXian, projectJyd, projectTky, projectDrts, projectRichor];
const specialProjects = [projectXty, projectGzzb, projectHeb, projectSdy, projectRichorJoint, projectSrsandbox, projectJxgm, projectSay];
const specialProjects = [projectXty, projectGzzb, projectHeb, projectSdy, projectRichorJoint, projectSrsandbox, projectJxgm, projectSay, projectRichorhhcj];
const specialProjectEnum = {[projectXty]:'designxty', [projectGzzb]:'designgzb', [projectHeb]:'designheb',
[projectSdy]:'designsdy', [projectRichorJoint]:'designrichorjoint', [projectSrsandbox]: 'designsrsandbox', [projectJxgm]: 'designjxgm', [projectSay]: 'designsay' };
[projectSdy]:'designsdy', [projectRichorJoint]:'designrichorjoint', [projectSrsandbox]: 'designsrsandbox', [projectJxgm]: 'designjxgm',
[projectSay]: 'designsay', [projectRichorhhcj]: 'designrichorhhcj' };
if (projectList.includes(systemType)) {
list = [...list, ...asyncRouter];
} else if (specialProjects.includes(systemType) ) {

View File

@ -24,7 +24,7 @@ export function handlerUrl(data) {
if (process.env.NODE_ENV === 'development') {
// const data = null;
// BASE_API = 'https://joylink.club/jlcloud';
// BASE_API = 'https://test.joylink.club/jlcloud';
BASE_API = 'https://test.joylink.club/jlcloud';
// BASE_API = 'http://114.116.51.125/jlcloud';
// BASE_API = 'http://192.168.8.152:9000'; // 袁琪
// BASE_API = 'http://192.168.8.172:9200'; // 旭强
@ -33,7 +33,7 @@ export function handlerUrl(data) {
// BASE_API = 'http://192.168.3.37:9000'; // 卫志宏
// BASE_API = 'http://b29z135112.zicp.vip';
// BASE_API = 'http://2925963m2a.zicp.vip'; // 杜康
BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛
// BASE_API = 'http://2i38984j47.qicp.vip'; // 张赛
// BASE_API = data && data.domainName ? 'https://' + data.domainName : BASE_API;
BASE_API = data && data.domainName ? 'http://' + data.domainName : BASE_API;
VOICE_API = data && data.resourcesDomainName ? 'https://' + data.resourcesDomainName : 'https://joylink.club/oss/joylink';

View File

@ -116,7 +116,8 @@ export default {
callback('字母+数字,最后一位数字');
}
} else {
callback('请输入车次');
// callback('');
callback();
}
};
return {
@ -137,42 +138,42 @@ export default {
departStationCode:'' //
},
rules: {
trackSectionCode: [
{ required: true, message: '请选择股道', trigger: 'blur' },
{ required: true, message: '请选择股道', trigger: 'change' }
],
// trackSectionCode: [
// { required: true, message: '', trigger: 'blur' },
// { required: true, message: '', trigger: 'change' }
// ],
arriveTripNumber:[
{ required: true, validator: validateTripNumber, trigger: 'blur' }
// message: ''
],
departTripNumber:[
{ required: true, validator: validateTripNumber, trigger: 'blur' }
],
// message: ''
arriveTime: [
{ required: true, message: '请选择到达时间', trigger: 'blur' },
{ required: true, message: '请选择到达时间', trigger: 'change' }
],
departTime: [
{ required: true, message: '请选择出发时间', trigger: 'blur' },
{ required: true, message: '请选择出发时间', trigger: 'change' }
],
arriveDirectionCode: [
{ required: true, message: '请选择入口', trigger: 'blur' },
{ required: true, message: '请选择入口', trigger: 'change' }
],
departDirectionCode: [
{ required: true, message: '请选择出口', trigger: 'blur' },
{ required: true, message: '请选择出口', trigger: 'change' }
],
arriveStationCode: [
{ required: true, message: '请选择后方车站', trigger: 'blur' },
{ required: true, message: '请选择后方车站', trigger: 'change' }
],
departStationCode: [
{ required: true, message: '请选择前方车站', trigger: 'blur' },
{ required: true, message: '请选择前方车站', trigger: 'change' }
]
// message: ''
// arriveTime: [
// { required: true, message: '', trigger: 'blur' },
// { required: true, message: '', trigger: 'change' }
// ],
// departTime: [
// { required: true, message: '', trigger: 'blur' },
// { required: true, message: '', trigger: 'change' }
// ],
// arriveDirectionCode: [
// { required: true, message: '', trigger: 'blur' },
// { required: true, message: '', trigger: 'change' }
// ],
// departDirectionCode: [
// { required: true, message: '', trigger: 'blur' },
// { required: true, message: '', trigger: 'change' }
// ],
// arriveStationCode: [
// { required: true, message: '', trigger: 'blur' },
// { required: true, message: '', trigger: 'change' }
// ],
// departStationCode: [
// { required: true, message: '', trigger: 'blur' },
// { required: true, message: '', trigger: 'change' }
// ]
}
};
},

View File

@ -138,7 +138,7 @@ export default {
};
</script>
<style lang="scss" scoped>
.BTRp{height:100%;width:100%;padding-top:30px}
.BTRp{height:100%;width:100%;padding-top:30px;overflow: hidden;}
.BTRpMenuBarOut{
position: absolute;
width: 100%;

View File

@ -46,47 +46,83 @@
prop="lineType"
label="线路性质"
width="100"
/>
>
<template slot-scope="scope">
{{ lineTypeMap[scope.row.lineType] }}
</template>
</el-table-column>
<el-table-column
prop="RVdirection"
prop="direction"
label="接发车方向"
width="100"
/>
>
<template slot-scope="scope">
{{ directionMap[scope.row.direction] }}
</template>
</el-table-column>
<el-table-column
prop="RVType"
prop="type"
label="接发车类型"
width="100"
/>
>
<template slot-scope="scope">
{{ typeMap[scope.row.type] }}
</template>
</el-table-column>
<el-table-column
prop="transType"
prop="transfiniteType"
label="超限类型"
width="100"
/>
>
<template slot-scope="scope">
{{ transfiniteTypeMap[scope.row.transfiniteType] }}
</template>
</el-table-column>
<el-table-column
prop="stationStand"
prop="standType"
label="站台"
width="100"
/>
>
<template slot-scope="scope">
{{ standTypeMap[scope.row.standType] }}
</template>
</el-table-column>
<el-table-column
prop="allowEMU"
prop="allowEmu"
label="允许动车组"
width="100"
/>
>
<template slot-scope="scope">
{{ allowEmuMap[scope.row.allowEmu] }}
</template>
</el-table-column>
<el-table-column
prop="waterEquip"
prop="addWaterEqu"
label="上水设备"
width="100"
/>
>
<template slot-scope="scope">
{{ addWaterEquMap[scope.row.addWaterEqu] }}
</template>
</el-table-column>
<el-table-column
prop="sewageEquip"
prop="sewageEqu"
label="排污设备"
width="100"
/>
>
<template slot-scope="scope">
{{ sewageEquMap[scope.row.sewageEqu] }}
</template>
</el-table-column>
<el-table-column
prop="military"
label="军用"
width="100"
/>
>
<template slot-scope="scope">
{{ militaryMap[scope.row.military] }}
</template>
</el-table-column>
</el-table>
</div>
</div>
@ -109,11 +145,53 @@ export default {
height: this.$store.state.app.height - 61,
currentStationCode:'',
filterSectionMap:{},
currentRow:null,
lineTypeMap:{
1:'正线',
2:'到发线'
},
directionMap:{
1:'上行',
2:'下行',
3:'上下行'
},
typeMap:{
1:'客车',
2:'货车',
3:'客货车'
},
transfiniteTypeMap:{
1:'不能接发超限列车',
2:'一级超限',
3:'二级超限',
4:'超级超限'
},
standTypeMap:{
1:'无',
2:'高站台',
3:'低站台'
},
allowEmuMap:{
1:'是',
2:'否'
},
addWaterEquMap:{
1:'有',
2:'无'
},
sewageEquMap:{
1:'有',
2:'无'
},
militaryMap:{
1:'是',
2:'否'
},
tableData:[
{trackName:'IG', lineType:'正线', RVType:'上下行', RVdirection:'客货车', transType:'超额超限', stationStand:'无', allowEMU:'否', waterEquip:'无',
sewageEquip:'无', military:'否'},
{trackName:'IIG', lineType:'正线', RVType:'上下行', RVdirection:'客货车', transType:'超额超限', stationStand:'低', allowEMU:'否', waterEquip:'无',
sewageEquip:'无', military:'否' }
{trackName:'IG', lineType:'1', direction:'1', type:'2', transfiniteType:'2', standType:'1', allowEmu:'2', addWaterEqu:'1',
sewageEqu:'1', military:'1'},
{trackName:'IIG', lineType:'2', direction:'1', type:'2', transfiniteType:'2', standType:'1', allowEmu:'2', addWaterEqu:'1',
sewageEqu:'1', military:'1' }
]
};
},
@ -138,10 +216,10 @@ export default {
},
handleData() {
this.tableData = [
{trackName:'IG', lineType:'正线', RVType:'上下行', RVdirection:'客货车', transType:'超额超限', stationStand:'无', allowEMU:'否', waterEquip:'无',
sewageEquip:'无', military:'否'},
{trackName:'IIG', lineType:'正线', RVType:'上下行', RVdirection:'客货车', transType:'超额超限', stationStand:'低', allowEMU:'否', waterEquip:'无',
sewageEquip:'无', military:'否' }
{trackName:'IG', lineType:'1', direction:'1', type:'2', transfiniteType:'2', standType:'1', allowEmu:'2', addWaterEqu:'1',
sewageEqu:'1', military:'1'},
{trackName:'IIG', lineType:'2', direction:'1', type:'2', transfiniteType:'2', standType:'1', allowEmu:'2', addWaterEqu:'1',
sewageEqu:'1', military:'1' }
];
},
rowDbClick(row, column, event) {

View File

@ -4,17 +4,113 @@
class="datie-02__systerm"
:title="title"
:visible.sync="show"
width="560px"
width="660px"
:before-close="doClose"
:z-index="2000"
:modal="false"
:close-on-click-modal="false"
>
<div class="TrackInformation">
<!-- 111 -->
<!-- form -->
<el-form ref="form" :model="model" label-width="85px" :rules="rules">
<el-form-item label="线路性质:" prop="lineType">
<el-select v-model="model.lineType" placeholder="" style="width:145px">
<el-option
v-for="item in lineTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="接发车方向:" prop="direction">
<el-select v-model="model.direction" placeholder="" style="width:90px">
<el-option
v-for="item in directionList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="接发车类型:" prop="type">
<el-select v-model="model.type" placeholder="" style="width:90px">
<el-option
v-for="item in typeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="超限类型:" prop="transfiniteType">
<el-select v-model="model.transfiniteType" placeholder="" style="width:145px">
<el-option
v-for="item in transfiniteTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="站台:" prop="standType">
<el-select v-model="model.standType" placeholder="" style="width:90px">
<el-option
v-for="item in standTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="允许动车组:" prop="allowEmu">
<el-select v-model="model.allowEmu" placeholder="" style="width:90px">
<el-option
v-for="item in allowEmuList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="上水设备:" prop="addWaterEqu">
<el-select v-model="model.addWaterEqu" placeholder="" style="width:145px">
<el-option
v-for="item in addWaterEquList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="排污设备:" prop="sewageEqu">
<el-select v-model="model.sewageEqu" placeholder="" style="width:90px">
<el-option
v-for="item in sewageEquList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="军用:" prop="military">
<el-select v-model="model.military" placeholder="" style="width:90px">
<el-option
v-for="item in militaryList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-form>
</div>
<div style="text-align:right;display:inline-block;width:100%;">
<div style="display:inline-block">
<div class="trackBtn">
<el-button :id="domIdCancel" @click="cancel">取消</el-button>
</div>
<div style="display:inline-block">
<div class="trackBtn">
<el-button :id="domIdConfirm " type="primary" :loading="loading" @click="commit">确定 </el-button>
</div>
</div>
@ -24,11 +120,67 @@
import { OperationEvent } from '@/scripts/cmdPlugin/OperationHandler';
import {menuOperate, commitOperate} from '@/jmapNew/theme/components/utils/menuOperate';
export default {
name: 'AddRunPlan',
name: 'TrackInformation',
data() {
return {
dialogShow: false,
loading: false
loading: false,
trackSectionCode:'',
lineTypeList:[
{label:'正线', value:'1'},
{label:'到发线', value:'2'}
],
directionList:[
{label:'上行', value:'1'},
{label:'下行', value:'2'},
{label:'上下行', value:'3'}
],
typeList:[
{label:'客车', value:'1'},
{label:'货车', value:'2'},
{label:'客货车', value:'3'}
],
transfiniteTypeList:[
{label:'不能接发超限列车', value:'1'},
{label:'一级超限', value:'2'},
{label:'二级超限', value:'3'},
{label:'超级超限', value:'4'}
],
standTypeList:[
{label:'无', value:'1'},
{label:'高站台', value:'2'},
{label:'低站台', value:'3'}
],
allowEmuList:[
{label:'是', value:'1'},
{label:'否', value:'2'}
],
addWaterEquList:[
{label:'有', value:'1'},
{label:'无', value:'2'}
],
sewageEquList:[
{label:'有', value:'1'},
{label:'无', value:'2'}
],
militaryList:[
{label:'是', value:'1'},
{label:'否', value:'2'}
],
model:{
lineType:'', // 线 线/线
direction:'', //
type:'', // //
transfiniteType:'', // ///
standType:'', // //
allowEmu:'', // /
addWaterEqu:'', // /
sewageEqu:'', // /
military:'' // /
},
rules:{
}
};
},
computed: {
@ -52,26 +204,27 @@ export default {
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
this.model = Object.assign({}, row);
},
doClose() {
this.loading = false;
this.dialogShow = false;
},
commit() {
// this.$refs.form.validate((valid) => {
// if (valid) {
// this.loading = true;
// const param = {stationCode:this.addModel.stationCode, runPlanParamList:[this.addModel]};
// commitOperate(menuOperate.CTC.addTrainFixedPath, param, 3).then(({valid})=>{
// if (valid) {
// this.doClose();
// }
// }).catch(() => {
// this.doClose();
// this.$emit('noticeInfo');
// });
// }
// });
this.$refs.form.validate((valid) => {
if (valid) {
// this.loading = true;
// const param = {stationCode:this.addModel.stationCode, runPlanParamList:[this.addModel]};
// commitOperate(menuOperate.CTC.addTrainFixedPath, param, 3).then(({valid})=>{
// if (valid) {
// this.doClose();
// }
// }).catch(() => {
// this.doClose();
// this.$emit('noticeInfo');
// });
}
});
},
cancel() {
const operate = {
@ -86,3 +239,16 @@ export default {
}
};
</script>
<style lang="scss" scoped>
.trackBtn{display:inline-block;margin-right: 10px;}
.TrackInformation .el-form-item{
display:inline-block;
margin-bottom:20px;
}
.TrackInformation{margin-bottom: 15px;}
</style>
<style lang="scss">
.TrackInformation .el-form-item__content {
line-height: 30px;
}
</style>

View File

@ -12,7 +12,7 @@
<el-button class="trainFixedPathButton" size="small">基本图导入</el-button>
<el-button class="trainFixedPathButton" size="small">基本图申请</el-button>
<el-button class="trainFixedPathButton" size="small">其他站导入</el-button>
<el-button class="trainFixedPathButton" size="small">删除</el-button>
<el-button class="trainFixedPathButton" size="small" @click="deleteRunplan">删除</el-button>
<el-button class="trainFixedPathButton" size="small">全部清空</el-button>
<el-button class="trainFixedPathButton" size="small">修改</el-button>
<el-button class="trainFixedPathButton" size="small">查找</el-button>
@ -36,10 +36,12 @@
ref="trainFixedPathTableIn"
:data="tableData"
border
height="600px"
:height="(height-100)+'px'"
highlight-current-row
style="border:1px #ccc solid;"
@row-click="selectedSection"
>
<!-- :height="(height-100)+'px'" -->
<!-- @cell-click="selectedTripNumber" -->
<!-- @current-change="handleCurrentChange" -->
<el-table-column
@ -86,7 +88,9 @@
width="75"
>
<template slot-scope="scope">
{{ filterSectionMap[scope.row.trackSectionCode].name }}
<div v-if="scope.row.trackSectionCode">
{{ filterSectionMap[scope.row.trackSectionCode].name }}
</div>
</template>
</el-table-column>
<el-table-column
@ -95,7 +99,9 @@
width="110"
>
<template slot-scope="scope">
{{ stationMap[scope.row.departStationCode].name }}
<div v-if="scope.row.departStationCode">
{{ stationMap[scope.row.departStationCode].name }}
</div>
</template>
</el-table-column>
<el-table-column
@ -104,7 +110,9 @@
width="155"
>
<template slot-scope="scope">
{{ mapStationDirectionData[scope.row.arriveDirectionCode].name }}
<div v-if="scope.row.arriveDirectionCode">
{{ mapStationDirectionData[scope.row.arriveDirectionCode].name }}
</div>
</template>
</el-table-column>
<el-table-column
@ -113,7 +121,9 @@
width="155"
>
<template slot-scope="scope">
{{ mapStationDirectionData[scope.row.departDirectionCode].name }}
<div v-if="scope.row.departDirectionCode">
{{ mapStationDirectionData[scope.row.departDirectionCode].name }}
</div>
</template>
</el-table-column>
<el-table-column
@ -122,7 +132,9 @@
width="110"
>
<template slot-scope="scope">
{{ stationMap[scope.row.arriveStationCode].name }}
<div v-if="scope.row.arriveStationCode">
{{ stationMap[scope.row.arriveStationCode].name }}
</div>
</template>
</el-table-column>
<el-table-column
@ -279,6 +291,7 @@ export default {
return {
height: this.$store.state.app.height - 61,
currentStationCode:'',
currentRow:null,
tableData:[],
filterSectionMap:{}
};
@ -305,6 +318,9 @@ export default {
}
},
methods:{
selectedSection(row, column, event) {
this.currentRow = row;
},
loadStation() {
this.$refs.terminalStationList.loadStation();
},
@ -325,6 +341,26 @@ export default {
mapStationDirectionMap:this.mapStationDirectionData
});
},
deleteRunplan() {
if (this.currentRow) {
const that = this;
this.$confirm('确定删除该条列车路径数据?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// stationCode
const param = {stationCode:this.currentRow.stationCode, runPlanCode:this.currentRow.runPlanCode};
commitOperate(menuOperate.CTC.deleteTrainFixedPath, param, 3).then(({valid})=>{
if (valid) {
that.$message.success('删除成功!');
}
}).catch(() => {
that.$message.error('删除失败');
});
}).catch(e => {});
}
},
noticeInfo() {
this.$emit('noticeInfo');
},
@ -398,10 +434,11 @@ export default {
});
},
coverTime(time) {
return time.split(':').splice(0, 2).join(':');
return time ? time.split(':').splice(0, 2).join(':') : '';
},
handleData() {
this.tableData = [];
this.currentRow = null;
const railCtcStationManageRpMsg = copyAssign({}, this.$store.state.socket.railCtcStationManageRpMsg);
this.tableData = Object.values(railCtcStationManageRpMsg).filter(data=>{
data.arriveTime = this.coverTime(data.arriveTime);
@ -464,7 +501,7 @@ export default {
.trainFixedPathButton:hover{
background-image: linear-gradient(#efffff,#a8daf3);
}
.trainFixedPathRTable{background:#a9a9a9;border-left: 1px #707070 solid;}
.trainFixedPathRTable{background:#a9a9a9;border-left: 1px #707070 solid;overflow: hidden;}
.trainFixedPathUpload {
position: relative;
overflow: hidden;
@ -488,5 +525,9 @@ export default {
border-color: #a5a5a5;
}
#trainFixedPathTableIn.el-table .cell{ padding-left: 5px;padding-right: 5px; text-align: center;font-size: 13px;}
#trainFixedPathTableIn .el-table__body tr.current-row>td{
background-color: #6aa8ec;
color: #fff;
}
</style>

View File

@ -1,130 +1,131 @@
<template>
<div>
<el-form ref="form" :rules="rules" :model="form" label-width="80px">
<el-form-item :label="this.$t('ibp.buttonCode')" prop="code">
<el-input v-model="form.code" :disabled="true">
<el-button slot="append" :disabled="isUpdate" type="primary" @click="generateCode">{{
$t("ibp.generateCode")
}}</el-button>
</el-input>
</el-form-item>
<el-form-item :label="this.$t('ibp.buttonColor')" prop="buttonColor">
<el-select v-model="form.buttonColor" :placeholder="this.$t('ibp.selectTheButtonColor')">
<el-option
v-for="item in colors"
:key="`btn${item}`"
:label="`${$t(`ibp.${item}`)}${$t('ibp.button')}`"
:value="item"
></el-option>
</el-select>
</el-form-item>
<el-form-item :label="this.$t('ibp.buttonLightColor')" prop="buttonLightColor">
<el-select v-model="form.buttonLightColor">
<el-option label="默认" value=""></el-option>
<el-option
v-for="item in colors"
:key="`light${item}`"
:label="`${$t(`ibp.${item}`)}`"
:value="item"
></el-option>
</el-select>
</el-form-item>
<el-form-item :label="this.$t('ibp.buttonWidth')" prop="buttonWidth">
<el-input-number v-model="form.buttonWidth" controls-position="right" :min="1" />
</el-form-item>
<el-form-item :label="this.$t('ibp.xCoordinate')">
<el-input-number v-model="form.x" controls-position="right" :min="1" />
</el-form-item>
<el-form-item :label="this.$t('ibp.yCoordinate')">
<el-input-number v-model="form.y" controls-position="right" :min="1" />
</el-form-item>
<el-form-item label="操作">
<el-select v-model="form.mean" placeholder="请选择">
<el-option
v-for="item in operateMeanList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item v-if="'AXLE_PRE_RESET' === form.mean" label="关联区段" prop="sectionCode">
<el-select v-model="form.sectionCode" filterable placeholder="请选择">
<el-option
v-for="item in sectionList"
:key="item.code"
:label="item.name + '(' + item.code + ')'"
:value="item.code"
/>
</el-select>
</el-form-item>
<el-form-item v-if="needDirectionItem" label="方向">
<el-select v-model="form.direction" placeholder="请选择">
<el-option
v-for="(item, i) in directions"
:key="i"
:label="item.name"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit('form')">{{ buttonText }}</el-button>
<el-button v-show="showDeleteButton" type="danger" @click="deleteDevice">{{
$t("global.delete")
}}</el-button>
<el-button v-show="showDeleteButton" @click="initPage">{{ $t("global.cancel") }}</el-button>
</el-form-item>
</el-form>
</div>
<div>
<el-form ref="form" :rules="rules" :model="form" label-width="80px">
<el-form-item :label="this.$t('ibp.buttonCode')" prop="code">
<el-input v-model="form.code" :disabled="true">
<el-button slot="append" :disabled="isUpdate" type="primary" @click="generateCode">{{
$t("ibp.generateCode")
}}</el-button>
</el-input>
</el-form-item>
<el-form-item :label="this.$t('ibp.buttonColor')" prop="buttonColor">
<el-select v-model="form.buttonColor" :placeholder="this.$t('ibp.selectTheButtonColor')">
<el-option
v-for="item in colors"
:key="`btn${item}`"
:label="`${$t(`ibp.${item}`)}${$t('ibp.button')}`"
:value="item"
/>
</el-select>
</el-form-item>
<el-form-item :label="this.$t('ibp.buttonLightColor')" prop="buttonLightColor">
<el-select v-model="form.buttonLightColor">
<el-option label="默认" value="" />
<el-option
v-for="item in colors"
:key="`light${item}`"
:label="`${$t(`ibp.${item}`)}`"
:value="item"
/>
</el-select>
</el-form-item>
<el-form-item :label="this.$t('ibp.buttonWidth')" prop="buttonWidth">
<el-input-number v-model="form.buttonWidth" controls-position="right" :min="1" />
</el-form-item>
<el-form-item :label="this.$t('ibp.xCoordinate')">
<el-input-number v-model="form.x" controls-position="right" :min="1" />
</el-form-item>
<el-form-item :label="this.$t('ibp.yCoordinate')">
<el-input-number v-model="form.y" controls-position="right" :min="1" />
</el-form-item>
<el-form-item label="操作">
<el-select v-model="form.mean" placeholder="请选择">
<el-option
v-for="item in operateMeanList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item v-if="'AXLE_PRE_RESET' === form.mean" label="关联区段" prop="sectionCode">
<el-select v-model="form.sectionCode" filterable placeholder="请选择">
<el-option
v-for="item in sectionList"
:key="item.code"
:label="item.name + '(' + item.code + ')'"
:value="item.code"
/>
</el-select>
</el-form-item>
<el-form-item v-if="needDirectionItem" label="方向">
<el-select v-model="form.direction" placeholder="请选择">
<el-option
v-for="(item, i) in directions"
:key="i"
:label="item.name"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit('form')">{{ buttonText }}</el-button>
<el-button v-show="showDeleteButton" type="danger" @click="deleteDevice">{{
$t("global.delete")
}}</el-button>
<el-button v-show="showDeleteButton" @click="initPage">{{ $t("global.cancel") }}</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
import { getSectionListByCenStationCode, getSectionListByMapId } from "@/api/jmap/map";
import { getSectionListByCenStationCode, getSectionListByMapId } from '@/api/jmap/map';
export default {
name: "ButtonDraft",
name: 'ButtonDraft',
components: {},
data() {
return {
isUpdate: false,
buttonText: this.$t("ibp.createNow"),
buttonText: this.$t('ibp.createNow'),
showDeleteButton: false,
operateMeanList: [
{ label: "扣车", value: "KC" },
{ label: "终止扣车", value: "ZZKC" },
{ label: "紧急停车", value: "JJTC" },
{ label: "取消紧急停车", value: "QXJJTC" },
{ label: "报警切除", value: "BJQC" },
{ label: "屏蔽门开门", value: "KM" },
{ label: "屏蔽门关门", value: "GM" },
{ label: "计轴复位", value: "AXLE_RESET" },
{ label: "计轴区段复位", value: "AXLE_PRE_RESET" },
{ label: "计轴预复位", value: "PRERESET_Z" },
{ label: "试灯", value: "SD" },
{ label: "首末开门", value: 'PSD_SMKM' },
{ label: "屏蔽门试灯", value: 'PSD_SD' }
{ label: '扣车', value: 'KC' },
{ label: '终止扣车', value: 'ZZKC' },
{ label: '紧急停车', value: 'JJTC' },
{ label: '取消紧急停车', value: 'QXJJTC' },
{ label: '报警切除', value: 'BJQC' },
{ label: '屏蔽门报警切除', value: 'PSD_BJQC'},
{ label: '屏蔽门开门', value: 'KM' },
{ label: '屏蔽门关门', value: 'GM' },
{ label: '计轴复位', value: 'AXLE_RESET' },
{ label: '计轴区段复位', value: 'AXLE_PRE_RESET' },
{ label: '计轴预复位', value: 'PRERESET_Z' },
{ label: '试灯', value: 'SD' },
{ label: '首末开门', value: 'PSD_SMKM' },
{ label: '屏蔽门试灯', value: 'PSD_SD' }
],
colors: ["red", "yellow", "blue", "green", "gray"],
operateWithoutDirections: ["AXLE_RESET", "AXLE_PRE_RESET", "PRERESET_Z", "SD"],
colors: ['red', 'yellow', 'blue', 'green', 'gray'],
operateWithoutDirections: ['AXLE_RESET', 'AXLE_PRE_RESET', 'PRERESET_Z', 'SD'],
form: {
code: "",
buttonColor: "red",
buttonLightColor: "",
code: '',
buttonColor: 'red',
buttonLightColor: '',
buttonWidth: 25,
x: 10,
y: 10,
sectionCode: "",
mean: "",
sectionCode: '',
mean: '',
direction: null
},
rules: {
code: [{ required: true, message: this.$t("ibp.enterTheButtonCode"), trigger: "blur" }],
buttonColor: [{ required: true, message: this.$t("ibp.selectTheButtonColor"), trigger: "change" }],
buttonWidth: [{ required: true, message: this.$t("ibp.enterTheButtonWidth"), trigger: "blur" }],
sectionCode: [{ required: true, message: "请选择关联区段", trigger: "blur" }]
code: [{ required: true, message: this.$t('ibp.enterTheButtonCode'), trigger: 'blur' }],
buttonColor: [{ required: true, message: this.$t('ibp.selectTheButtonColor'), trigger: 'change' }],
buttonWidth: [{ required: true, message: this.$t('ibp.enterTheButtonWidth'), trigger: 'blur' }],
sectionCode: [{ required: true, message: '请选择关联区段', trigger: 'blur' }]
},
sectionList: [],
directions: [{ name: "全部", value: null }, { name: "上行", value: true }, { name: "下行", value: false }]
directions: [{ name: '全部', value: null }, { name: '上行', value: true }, { name: '下行', value: false }]
};
},
computed: {
@ -133,10 +134,10 @@ export default {
}
},
watch: {
"$store.state.ibp.rightClickCount": function(val) {
const model = this.$store.getters["ibp/updateDeviceData"];
if (model._type === "SquareButton") {
this.buttonText = this.$t("global.modify");
'$store.state.ibp.rightClickCount': function(val) {
const model = this.$store.getters['ibp/updateDeviceData'];
if (model._type === 'SquareButton') {
this.buttonText = this.$t('global.modify');
this.showDeleteButton = true;
this.isUpdate = true;
this.form.code = model.code;
@ -159,7 +160,7 @@ export default {
// console.log(resp.data);
})
.catch(() => {
this.$message.error("获取区段列表失败!");
this.$message.error('获取区段列表失败!');
});
} else {
getSectionListByMapId(this.$route.query.mapId)
@ -168,7 +169,7 @@ export default {
console.log(resp.data);
})
.catch(() => {
this.$message.error("获取区段列表失败!");
this.$message.error('获取区段列表失败!');
});
}
},
@ -181,17 +182,17 @@ export default {
x: this.form.x,
y: this.form.y
},
_type: "SquareButton",
_type: 'SquareButton',
code: this.form.code,
color: this.form.buttonColor,
lightColor: this.form.buttonLightColor,
status: "off",
status: 'off',
width: this.form.buttonWidth,
mean: this.form.mean,
sectionCode: this.form.sectionCode,
direction: this.form.direction
};
this.$emit("createData", buttonModel);
this.$emit('createData', buttonModel);
this.initPage();
} else {
return false;
@ -204,39 +205,39 @@ export default {
x: this.form.x,
y: this.form.y
},
_type: "SquareButton",
_type: 'SquareButton',
code: this.form.code,
color: this.form.buttonColor,
lightColor: this.form.buttonLightColor,
status: "off",
status: 'off',
width: this.form.buttonWidth,
mean: this.form.mean,
sectionCode: this.form.sectionCode,
direction: this.form.direction
};
this.$emit("deleteDataModel", buttonModel);
this.$emit('deleteDataModel', buttonModel);
this.initPage();
},
initPage() {
this.isUpdate = false;
this.buttonText = this.$t("ibp.createNow");
this.buttonText = this.$t('ibp.createNow');
this.showDeleteButton = false;
this.form = {
code: "",
buttonColor: "red",
buttonLightColor: "",
code: '',
buttonColor: 'red',
buttonLightColor: '',
buttonWidth: 25,
x: 10,
y: 10,
mean: "",
sectionCode: "",
mean: '',
sectionCode: '',
direction: null
};
},
generateCode() {
const mydate = new Date();
this.form.code =
"sButton_" +
'sButton_' +
mydate.getDay() +
mydate.getHours() +
mydate.getMinutes() +

View File

@ -40,6 +40,16 @@
/>
</el-select>
</el-form-item>
<el-form-item label="方向">
<el-select v-model="form.direction" placeholder="请选择">
<el-option
v-for="(item, i) in directions"
:key="i"
:label="item.name"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit('form')">{{ buttonText }}</el-button>
<el-button v-show="showDeleteButton" type="danger" @click="deleteDevice">{{ $t('global.delete') }}</el-button>
@ -67,13 +77,16 @@ export default {
y: 10,
topText:'',
bottomText:'',
textFontSize: 10
textFontSize: 10,
mean: '',
direction: ''
},
operateMeanList: [
{ label: '上行钥匙', value: 'SXYS' },
{ label: '下行钥匙', value: 'XXYS' },
{ label: '互锁解除', value: 'PSD_HSJC' }
{ label: '互锁解除', value: 'PSD_HSJC' }
],
directions: [{ name: '全部', value: null }, { name: '上行', value: true }, { name: '下行', value: false }],
rules: {
code: [
{ required: true, message: this.$t('rules.enterTheKeyCode'), trigger: 'blur' }
@ -112,6 +125,7 @@ export default {
this.form.bottomText = model.bottomText;
this.form.mean = model.mean;
this.form.textFontSize = model.textFontSize;
this.form.direction = model.direction;
}
}
},
@ -134,6 +148,7 @@ export default {
topText:this.form.topText,
bottomText:this.form.bottomText,
mean:this.form.mean,
direction: this.form.direction,
textFontSize: this.form.textFontSize
};
this.$emit('createData', keyModel);
@ -158,6 +173,7 @@ export default {
topText:this.form.topText,
bottomText:this.form.bottomText,
mean:this.form.mean,
direction: this.form.direction,
textFontSize: this.form.textFontSize
};
this.$emit('deleteDataModel', keyModel);
@ -176,6 +192,7 @@ export default {
topText:'',
bottomText:'',
mean:'',
direction: '',
textFontSize: 10
};
},

View File

@ -41,6 +41,8 @@
<script>
import { registerUser } from '@/api/management/user';
import { ProjectCode } from '@/scripts/ProjectConfig';
import { getSessionStorage } from '@/utils/auth';
import md5 from 'js-md5';
export default {
name: 'Register',
@ -129,7 +131,8 @@ export default {
submitForm() {
this.$refs.ruleForm.validate((valid) => {
if (valid) {
const data = { email: this.form.email, nickname: this.form.nickname, password: md5(this.form.password) };
const project = getSessionStorage('project');
const data = { email: this.form.email, nickname: this.form.nickname, password: md5(this.form.password), source: ProjectCode[project] || '' };
registerUser(data).then(resp => {
this.$message.success('账号注册成功!' );
this.doClose();

View File

@ -1,7 +1,7 @@
<template>
<el-dialog
title="车站股道图"
:visible.sync="dialogVisible"
:visible="dialogVisible"
width="99%"
z-index="3000"
top="5vh"
@ -299,7 +299,7 @@ export default {
data() {
return {
menu: [{label: '设置自触', handler: this.setTrigger, disabled: false}, {label: '取消自触', handler: this.cancelTrigger, disabled: false}],
dialogVisible: true,
dialogVisible: false,
triggerParam: {},
selectCode: '',
selectCode1: '',
@ -406,7 +406,6 @@ export default {
}
},
mounted() {
this.dialogVisible = false;
},
methods: {
handleClose() {

View File

@ -98,8 +98,10 @@ export default {
} else {
item.buttonShowType = false;
item.typeName = this.typeList.find(el => el.value == item.type).label;
if (item.vrDeviceCode) {
if (item.vrDeviceCode && this.$store.getters['map/getDeviceByCode'](item.vrDeviceCode)) {
item.vrDeviceName = this.$store.getters['map/getDeviceByCode'](item.vrDeviceCode).name;
} else {
item.vrDeviceName = item.vrDeviceCode;
}
if (this.project == 'heb' || this.project == 'designheb') {
if (item.type == 'SWITCH') {

View File

@ -13,7 +13,7 @@
/>
</el-select>
<el-button-group>
<el-button v-if="isCtc" size="small" @click="showLineBoard">占线板</el-button>
<el-button v-if="isCtc" size="small" @click="showLineBoard">占线板</el-button>
<el-button v-if="userRole=== 'STATION_SUPERVISOR' && !$route.query.projectDevice && $route.query.lineCode!='08'" size="small" @click="goIbp">IBP盘</el-button>
<el-button v-if="userRole=== 'DISPATCHER' && !$route.query.projectDevice && hasBigScreen" size="small" @click="goBigScreen">大屏</el-button>
<el-button v-if="(userRole==='DISPATCHER' || userRole=== 'STATION_SUPERVISOR') && !$route.query.projectDevice && iscsShow" size="small" @click="goIscs">ISCS</el-button>
@ -24,13 +24,13 @@
</template>
</el-button-group>
<el-button v-if="(isAdmin || $route.query.type === 'ILW') && !dataError && !isScreen" size="small" :type="faultMode ? '' : 'primary' " @click="changeOperateMode()">{{ faultMode?' 切换到普通模式[Tab]':'切换到故障模式[Tab]' }}</el-button>
<!-- isCenter && !dataError && !isAdmin 此判断用于以后(目前 暂时不用) -->
<!-- isCenter && !dataError && !isAdmin 此判断用于以后(目前 暂时不用)786 -->
<el-button v-if="isShowDirective" size="small" :type="directiveMode ? 'primary' : ''" @click="changeDirectiveMode()">{{ directiveMode? '切换到普通模式[Tab]':'切换到指令模式[Tab]' }}</el-button>
</div>
<!-- running && -->
<join-run-plan-view v-if="!dataError" ref="runPlanView" :group="group" />
<select-ibp ref="selectIbp" />
<line-board ref="lineBoard" />
<line-board ref="lineBoard" />
</div>
</template>
@ -52,7 +52,7 @@ export default {
components:{
JoinRunPlanView,
SelectIbp,
LineBoard
LineBoard
},
props: {
group: {
@ -138,12 +138,12 @@ export default {
running() {
return this.$store.state.training.started;
},
datie(){
return this.$route.query.lineCode == '16'
},
isCtc() {
return !!this.$route.query.ctc
},
datie() {
return this.$route.query.lineCode == '16';
},
isCtc() {
return !!this.$route.query.ctc;
},
isScreen() {
return this.$store.state.training.prdType === '07';
},
@ -313,9 +313,9 @@ export default {
this.$message.error('设置倍速失败!');
});
},
showLineBoard() {
this.$refs.lineBoard.doShow();
},
showLineBoard() {
this.$refs.lineBoard.doShow();
},
// ibp
goIbp() {
// this.$refs.selectIbp.doShow();