@@ -327,4 +341,53 @@ export default {
}
}
}
+ .title {
+ text-align: right;
+ font-size: 14px;
+ color: #606266;
+ line-height: 40px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ line-height: 40px;
+ width: 120px;
+ font-weight: bold;
+ display: block;
+ float: left;
+ padding-right: 12px;
+ }
+ .listWidth{
+ display: table;
+ float: left;
+ margin-right: 20px;
+ &:last-child{
+ margin: 0;
+ }
+ }
+ .coordinate {
+ overflow: hidden;
+
+ .title {
+ text-align: right;
+ font-size: 14px;
+ color: #606266;
+ line-height: 40px;
+ // padding: 0 12px 0 0;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ line-height: 28px;
+ width: 120px;
+ font-weight: bold;
+ display: block;
+ float: left;
+ margin-right: 7px;
+ }
+ .listWidth{
+ display: table;
+ float: left;
+ margin-right: 20px;
+ &:last-child{
+ margin: 0;
+ }
+ }
+ }
diff --git a/src/i18n/langs/en/router.js b/src/i18n/langs/en/router.js
index bcc0fa0e9..0ca93382f 100644
--- a/src/i18n/langs/en/router.js
+++ b/src/i18n/langs/en/router.js
@@ -70,5 +70,6 @@ export default {
runGraphReleaseApplication: 'Run graph release application',
subsystemGeneration: 'Subsystem generation',
newsBulletin: 'New bulletin',
- commandDictionary: 'Command dictionary'
+ commandDictionary: 'Command dictionary',
+ configLine: 'Line management'
};
diff --git a/src/i18n/langs/zh/router.js b/src/i18n/langs/zh/router.js
index e3458fee5..a1e74a379 100644
--- a/src/i18n/langs/zh/router.js
+++ b/src/i18n/langs/zh/router.js
@@ -71,5 +71,6 @@ export default {
runGraphReleaseApplication: '运行图发布申请',
subsystemGeneration: '子系统生成',
newsBulletin: '消息公告',
- commandDictionary: '指令字典'
+ commandDictionary: '指令字典',
+ configLine: '线路管理'
};
diff --git a/src/jmapNew/config/deviceStyle.js b/src/jmapNew/config/deviceStyle.js
index 3b7f47be2..b90f1e158 100644
--- a/src/jmapNew/config/deviceStyle.js
+++ b/src/jmapNew/config/deviceStyle.js
@@ -2,7 +2,8 @@ const mapDeviceStyle = {
'01': 'chengdu_04',
'02': 'fuzhou_01',
'03': 'bejing_01',
- '04': 'chengdu_03'
+ '04': 'chengdu_03',
+ '06': 'ningbo_01'
};
export function selectLineCode(code) {
diff --git a/src/jmapNew/config/skinCode/ningbo_01.js b/src/jmapNew/config/skinCode/ningbo_01.js
new file mode 100644
index 000000000..39bf29e52
--- /dev/null
+++ b/src/jmapNew/config/skinCode/ningbo_01.js
@@ -0,0 +1,587 @@
+import defaultStyle from '../defaultStyle';
+import deviceType from '../../constant/deviceType';
+
+class SkinCode extends defaultStyle {
+ constructor() {
+ super();
+ this[deviceType.Section] = {
+ active: {
+ routeColor: false // 进路触发颜色
+ },
+ text: {
+ show: true, // 物理区段名称显示
+ position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
+ distance: 10, // 文字离区段距离
+ fontSize: 12, // 字体大小
+ fontWeight: 'normal', // 字体粗细
+ fontColor: 'lightgreen', // 字体颜色
+ textAlign: 'center', // 水平对齐方式
+ textPosition: 'inside', // 文字位置
+ textVerticalAlign: 'middle' // 文字垂直对齐方式
+ },
+ logicText: { // 逻辑区段名称
+ show: false, // 逻辑区段名称显示
+ position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
+ distance: 12, // 文字离区段距离
+ fontSize: 11, // 字体大小
+ fontWeight: 'normal', // 字体粗细
+ fontColor: '#FFFFFF', // 字体颜色
+ textAlign: 'center', // 水平对齐方式
+ textPosition: 'inside', // 文字位置
+ textVerticalAlign: 'middle' // 文字垂直对齐方式
+ },
+ switchText: {
+ show: false, // 道岔区段名称显示
+ position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
+ distance: 18, // 文字离区段距离
+ fontSize: 11, // 字体大小
+ fontWeight: 'normal', // 字体粗细
+ fontColor: '#FFFFFF', // 字体颜色
+ textAlign: 'center', // 水平对齐方式
+ textPosition: 'inside', // 文字位置
+ textVerticalAlign: 'middle' // 文字垂直对齐方式
+ },
+ standText: { // 站台
+ show: true, // 站台轨名称显示
+ position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
+ distance: 24, // 文字离区段距离
+ fontSize: 11, // 字体大小
+ fontWeight: 'normal', // 字体粗细
+ fontColor: '#FFFFFF', // 字体颜色
+ textAlign: 'center', // 水平对齐方式
+ textPosition: 'inside', // 文字位置
+ textVerticalAlign: 'middle' // 文字垂直对齐方式
+ },
+ reentryText: { // 折返
+ show: true, // 折返轨名称显示
+ position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
+ distance: 36, // 文字离区段距离
+ fontSize: 11, // 字体大小
+ fontWeight: 'normal', // 字体粗细
+ fontColor: '#FFFFFF', // 字体颜色
+ textAlign: 'center', // 水平对齐方式
+ textPosition: 'inside', // 文字位置
+ textVerticalAlign: 'middle' // 文字垂直对齐方式
+ },
+ transferText: { // 转换轨
+ show: true, // 转换轨名称显示
+ position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
+ distance: 36, // 文字离区段距离
+ fontSize: 11, // 字体大小
+ fontWeight: 'normal', // 字体粗细
+ fontColor: '#FFFFFF', // 字体颜色
+ textAlign: 'center', // 水平对齐方式
+ textPosition: 'inside', // 文字位置
+ textVerticalAlign: 'middle' // 文字垂直对齐方式
+ },
+ destinationText: { // 目的地
+ show: true, // 目的码名称显示
+ opposite: true, // 对称相反
+ position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
+ distance: 12, // 文字离区段距离
+ fontSize: 11, // 字体大小
+ fontWeight: 'bold', // 字体粗细
+ fontColor: 'yellow', // 字体颜色
+ textAlign: 'center', // 水平对齐方式
+ textPosition: 'inside', // 文字位置
+ textVerticalAlign: 'middle' // 文字垂直对齐方式
+ },
+ line: {
+ width: 5, // 区段宽度
+ beyondWidth: 0, // 区段宽超出宽度
+ invadeColor: '#FFFFFF', // 区段侵入颜色
+ spareColor: '#5578B6', // 区段空闲颜色
+ communicationOccupiedColor: 'lightpink', // 区段通信车占用颜色
+ unCommunicationOccupiedColor: 'red', // 区段非通讯车占用颜色
+ routeLockColor: 'rgba(0, 255, 0, 1)', // 区段路由锁定颜色
+ faultLockColor: 'white', // 区段故障锁定颜色
+ undefinedColor: '#0071C1', // 区段未定义颜色
+ protectionLockedColor: '#FFFFFF', // 保护区段锁闭
+ blockColor: 'pink', // 区段封锁颜色
+ atcExcisionColor: '#A0522D', // 区段atc切除颜色
+ atsExcisionColor: '#A0522D', // 区段ats切除颜色
+ timeReleaseColor: '#3F3F3F', // 区段延时释放颜色
+ protectiveLockColor: '#92D14F', // 区段保护锁闭
+ protectiveTimeReleaseColor: '#0071C1', // 区段保护延时解锁
+ logicalColor: '#FFFF00', // 逻辑区段颜色 (未用)
+ logicalTextColor: 'white' // 逻辑区段名称颜色 (未用)
+ },
+ axle: {
+ radius: 3, // 计轴 半径
+ distance: 5, // 计轴和区段之间的距离 (未用)
+ color: 'white', // 区段计轴颜色
+ resetColor: '#00FFFF', // 区段计轴预复位颜色
+ Failure: '#E6A23C' // #FFFF00 计轴失效
+ },
+ speedLimit: { // 限速元素
+ width: 1, // 限速线的宽度
+ distance: 5, // 限速线距离区段距离
+ lineColor: '#C0C000', // 限速线颜色 (黄色透明光)
+ nameBackground: '#C0C000', // 限速名称背景颜色
+ nameShow: true, // 名称显示
+ nameNumberColor: '#C00808', // 限速值颜色
+ nameNumberFontSize: 11, // 限速值大小
+ kilometerColor: '#fff', // 公里标颜色
+ kilometerFontSize: 8, // 公里标大小
+ drogueWidth: 19, // 浮标宽度
+ drogueHeight: 12 // 浮标高度
+ },
+ separator: {
+ z: 6, // 分割符层级
+ width: 1.5, // 分隔符宽度
+ endWidth: 1.5, // 尽头分隔符宽度
+ endColor: '#FFFFFF', // 尽头分隔符颜色
+ color: 'white' // 区段边界符颜色
+ }
+ };
+
+ this[deviceType.Signal] = {
+ distance: 3, // 设备距离区段的距离
+ post: {
+ standardColor: '#C0C0C0', // 灯柱颜色
+ standardWidth: 2 // 灯柱宽度
+ },
+ text: {
+ show: true, // 信号机名称显示
+ distance: 3, // 文字和灯杆的距离
+ isAlignCenter: false, // 信号字体对其方式
+ fontSize: 11, // 信号机名称字体大小
+ fontWeight: 'bold', // 信号机名称字体粗细
+ defaultColor: 'white', // 信号灯字体默认色
+ blockColor: '#EF0C08', // 信号灯字体锁定颜色
+ checkColor: '#00FF00' // 信号保护区段检查颜色
+ },
+ lamp: {
+ guidName: 'defult', // 默认引导类型
+ borderVariable: true, // 信号灯边框可变
+ stopWidth: 2, // 禁止线宽度
+ borderWidth: 2, // 信号灯边框线宽度
+ borderColor: '#3149C3', // 信号灯边框线颜色
+ radiusR: 3, // 信号灯半径
+ blockColor: '#EF0C08', // 信号灯锁闭
+ grayColor: '#C0C0C0', // 信号灯灰色
+ redColor: 'red', // 信号灯红色
+ greenColor: 'green', // 信号灯绿色
+ yellowColor: 'yellow', // 信号灯黄色
+ whiteColor: '#FFFFFF', // 信号灯白色
+ blueColor: '#0070C0' // 信号灯蓝色
+ },
+ route: {
+ direction: true, // 自动通过方向
+ offset: { x: 4, y: 0}, // 自动通过偏移量
+ routeColor: '#00FF00' // 自动进路
+ },
+ auto: {
+ direction: false, // 自动通过方向
+ offset: { x: -4, y: 0}, // 自动通过偏移量
+ width: 5, // 自动宽度
+ manualControl: '#FFFF00', // 人工控制
+ autoRoute: '#00FF00', // 自动进路
+ autoTrigger: '#FFFF00', // 自动触发
+ outConflict: '#C00808' // 出车冲突
+ },
+ delay: {
+ direction: false, // 延时解锁方向
+ offset: { x: -5, y: 0}, // 延时解锁偏移量
+ fontSize: 11, // 延迟解锁字体大小
+ fontColor: '#C00808', // 延迟解锁颜色
+ fontWeight: 'bold' // 字体粗细
+
+ },
+ button: {
+ distance: 5, // 信号灯按钮距离区段的距离
+ borderDashColor: '#FFFFFF', // 信号灯按钮边线
+ buttonColor: 'darkgreen', // 信号灯按钮颜色
+ buttonLightenColor: 'yellow' // 信号灯按钮闪烁颜色
+ }
+ };
+
+ this[deviceType.StationStand] = {
+ common: { // 通用属性
+ textFontSize: 10, // 站台默认字体大小
+ haveJumpShow: true // 站台是否有列车停跳显示
+ },
+ safetyDoor: { // 屏蔽门
+ height: 3, // 站台屏蔽门高度
+ distance: 4, // 站台和屏蔽门之间的距离
+ defaultColor: 'green', // 屏蔽门默认颜色
+ splitDoorColor: 'green' // 屏蔽门切除颜色
+ },
+ stand: { // 站台
+ headFontSize: 10, // 站台首端字体大小
+ spareColor: 'white', // 站台空闲颜色
+ stopColor: 'yellow', // 站台列车停站颜色
+ jumpStopColor: 'blue', // 站台跳停颜色
+ designatedJumpStopColor: 'lightSkyBlue' // 站台指定列车跳停颜色
+ },
+ standEmergent: { // 紧急关闭
+ mergentR: 4, // 站台紧急关闭半径
+ offset: {x: 0, y: 40}, // 站台紧急关闭偏移量
+ closeColor: 'red' // 站台紧急关闭颜色
+ },
+ reentry: { // 站台折返策略
+ position: 0, // 折返方向
+ offset: {x: -16, y: 20}, // 折返偏移量
+ noHumanColor: '#0F16DA', // 站台无人折返
+ autoChangeEndsColor: '#0BF400' // 站台自动换端
+ },
+ detainCar: { // 扣车
+ text: '扣', // 扣车显示内容
+ position: -1, // 扣车方向
+ offset: {x: -8, y: -20}, // 扣车偏移量
+ trainColor: 'yellow', // 车站扣车颜色
+ centerTrainColor: 'white', // 中心扣车颜色
+ andCenterTrainColor: 'red', // 车站+中心扣车颜色
+ detainTrainTextColor: '#E4EF50' // 车站扣除文字颜色
+ },
+ stopTime: { // 停站时间
+ position: 1, // 运行时间方向
+ offset: {x: -8, y: -4}, // 运行时间偏移量
+ textColor: 'white' // 停站时间字体颜色
+ },
+ jump: {
+ text: '跳', // 停跳显示内容
+ position: -1, // 停跳方向
+ offset: {x: -8, y: 0},
+ textColor: '#0000FF', // 停跳文字颜色
+ arcColor: '#0000FF', // 停跳圆圈颜色
+ fillColor: 'rgba(0,0,0,0)', // 透明填充颜色
+ r: 8 // 圆半径大小
+ },
+ level: { // 运行等级
+ position: 1, // 运行等级方向
+ offset: {x: -8, y: 30}, // 运行等级偏移量
+ textColor: '#FFF000' // 停站等级字体颜色
+ }
+ };
+
+ this[deviceType.StationCounter] = {
+ text: {
+ distance: 2, // 计数器名称和文字的距离
+ fontColor: '#FFFFFF', // 计数器字体颜色
+ borderColor: '#E4EF50' // 计数器边框颜色
+ }
+ };
+
+ this[deviceType.StationDelayUnlock] = {
+ text: {
+ distance: 3, // 延迟解锁和设备之间的距离
+ fontColor: '#FFFFFF', // 延时解锁字体颜色
+ borderColor: '#FFFFFF' // 延迟解锁边框颜色
+ }
+ };
+
+ this[deviceType.Station] = {
+ // text: {
+ // show: true // 公里标名称显示
+ // },
+ kmPostShow: false, // 公里标显示
+ kilometerPosition: 'up', // 公里标朝向
+ text: {
+ fontSize: 11, // 字体大小
+ fontWeight: 'normal', // 字体粗细
+ distance: 5 // 灯跟文字距离
+ },
+ lamp: {
+ radiusR: 6, // 控制灯大小
+ controlColor: '#FFFF00' // 控制灯颜色
+ },
+ turnBack: { // 按图折返
+ lamp: 1, // 灯数量
+ lampSpace: 60 // 灯间距
+ },
+ StationControl:{
+ text: {
+ distance: 2, // 灯和文字之间的距离
+ fontSize: 12, // 字体大小
+ fontFormat: 'consolas', // 字体格式
+ fontColor: '#ffffff', // 字体颜色
+ fontWeight: 'normal', // 字体粗细
+ textAlign: 'middle', // 字体水平对齐
+ textVerticalAlign: 'top', // 字体垂直对齐
+ centerControlText: '中控', // 中控文字内容
+ substationControlText: '站控', // 站控文字内容
+ emergencyControlText:'紧急站控', // 紧急站控文字内容
+ interconnectedControlText:'连锁控' // 连锁控文字内容
+ // stationCenterControlText: '站中控', // 站中控文字内容
+ // generalAlarmControlText: '总报警' // 总报警文字内容
+ },
+ lamp: {
+ count: 4, // 控制模式的个数
+ offset: {x: 20, y: 0}, // 偏移量
+ radiusR: 4, // 控制模式灯的半径
+ distance: 46, // 控制模式之间灯之间的距离
+ grayColor: '#C0C0C0', // 控制模式灰色
+ greenColor: 'green', // 控制模式绿色
+ redColor: 'red', // 控制模式红色
+ yellowColor: 'yellow', // 控制模式黄色
+ emergencyControlShow: true, // 紧急站控显示
+ centerControlShow: true, // 中控显示
+ substationControlShow: true, // 站控按钮显示
+ interconnectedControlShow: false // 联锁控显示
+ },
+ arrow: {
+ show: false // 控制模式箭头显隐
+ }
+ }
+ };
+
+ this[deviceType.Switch] = {
+ text: {
+ show: true, // 道岔名称显示
+ position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
+ offset: {x: 5, y: -10}, // 道岔名称与区段距离
+ fontSize: 11, // 字体大小
+ fontColor: '#C0C0C0', // 道岔名称颜色
+ fontWeight: 'normal', // 字体粗细
+ borderColor: '#FE0000', // 道岔边框颜色
+ lossColor: 'lightgreen', // 道岔失去颜色
+ locateColor: 'lightgreen', // 道岔定位颜色
+ inversionColor: 'lightgreen', // 道岔反位颜色
+ monolockColor: '#FFFFFF' // 道岔单锁颜色
+ },
+ core: {
+ length: 10 // 道岔单边长度
+ },
+ monolock: { // 道岔单锁配置
+ locationColor: '#00FF00', // 道岔单锁'定位'颜色 (绿色)
+ inversionColor: '#FFFF00', // 道岔单锁'反位'颜色 (黄色)
+ rectShow: true, // 道岔单锁 矩形框是否显示
+ rectWidth: 18, // 矩形框 宽高
+ rectBorderColor: '#fff' // 矩形边框颜色
+ },
+ block: { // 道岔封锁配置
+ nameBorderShow: false, // 道岔名称是否有包围框 显示
+ contentRectShow: true, // 道岔封锁显示
+ contentRectColor: 'red' // 道岔封锁边框颜色
+ }
+ };
+
+ this[deviceType.LcControl] = {
+ text: {
+ fontSize: 11, // 字体大小
+ fontWeight: 'normal', // 字体粗细
+ distance: 5 // 灯跟文字距离
+ },
+ lamp: {
+ radiusR: 6, // 控制灯大小
+ controlColor: '#FFFF00' // 控制灯颜色
+ }
+ };
+
+ this[deviceType.ZcControl] = {
+ // 是否显示
+ visible:true,
+ text: {
+ fontSize: 11, // 字体大小
+ fontWeight: 'normal', // 字体粗细
+ distance: 5 // 灯跟文字距离
+ },
+ lamp: {
+ radiusR: 6, // 控制灯大小
+ controlColor: '#00FF00' // 控制灯颜色
+ }
+ };
+
+ this[deviceType.LimitControl] = {
+ text: {
+ fontSize: 11, // 字体大小
+ fontWeight: 'normal', // 字体粗细
+ distance: 5 // 灯跟文字距离
+ },
+ lamp: {
+ radiusR: 6, // 控制灯大小
+ controlColor: '#ECE9D8' // 控制灯颜色
+ }
+ };
+
+ this[deviceType.Line] = {
+ lineColor: '#FFFFFF' // 线条颜色
+ };
+
+ this[deviceType.TrainWindow] = {
+ lineColor: '#4DD43F', // 车次窗颜色
+ lineDash: null, // 车次窗虚线间隔
+ lineWidth: 1, // 车次窗线宽
+ trainWindowSmooth: 0 // 车次窗矩形圆滑程度
+ };
+
+ this[deviceType.Train] = {
+ trainBody: {
+ trainBodyLineWidth: 1, // 车身line宽
+ changeTrainWidth: false, // 是否根据车身上车组号、服务号、车次号、目的地码显示情况改变列车长度
+ specialTrainType: [], // 特殊列车类型需设置显示格式
+ lrPadding: 4, // 两边间隔
+ upPadding: 4, // 上边距离
+ trainBodyFillColor: '#000099', // 列车车身填充颜色
+ trainNameFormat: 'serviceNumber:targetCode'// 列车显示格式
+ },
+ hsda: {
+ lrPaddingHSDA: 3, // HSDA两边间隔
+ upPaddingHSDA: 4, // HSDA上边距离
+ trainHSDATextFontSize: 8, // 列车HDSA字号
+ textHContent: '扣', // textH文本
+ textSContent: '跳', // textS文本
+ textDContent: '门', // textD文本
+ textAContent: '警' // textA文本
+ },
+ trainNumber: {
+ targetCodePrefix: '000', // 目的地码前缀
+ defaultTargetCode: 'DDD', // 默认目的地码
+ trainTargetTextAlign: 'left', // 目的地码文字显示位置
+ trainNumberOffset: { x: 24, y: 4}// 目的地码偏移量
+ },
+ trainServer: {
+ serviceNumberPrefix: '000', // 服务号(表号)前缀
+ defaultServiceNumber: 'TTT', // 默认服务号(表号)
+ defaultServerNoColor: '#FFFFFF', // 默认服务号状态显示颜色
+ trainServerOffset: { x: 4, y: 4} // 列车服务号偏移
+ },
+ trainTarget: {
+ tripNumberPrefix: '000', // 车次号前缀
+ defaultTripNumber: 'DDD', // 默认车次号2
+ trainTargetOffset: { x: 36, y: 4}, // 列车车次号偏移
+ trainTargetTextAlign: 'right' // 车次号文字显示位置
+ },
+ trainTargetNumber: {
+ trainTargetNumberOffset: {x: 0, y: 0}// 车组号偏移量
+ },
+ trainHead: {
+ trainMoreLength: 1, // 列车车头比车身高出的长度,上下相比车体伸出去的边框
+ trainHeadTriangleFirst: { x: 7, y: 1}, // 列车车头三角坐标1偏移量
+ trainHeadTriangleSecond: { x: 13, y: 10}, // 列车车头三角坐标2偏移量
+ trainHeadTriangleThird: { x: 7, y: 19}, // 列车车头三角坐标3偏移量
+ trainConntWidth: 4, // 列车竖杠的宽度
+ trainHeadFillColor: '#000000', // 列车车头矩形填充颜色
+ trainHeadRectHeight: 20 // 列车车头矩形高度
+ },
+ common: {
+ trainHeight: 20, // 列车高度
+ trainHeadDistance: 2, // 列车和车头之间的间距
+ trainWidth: 55, // 列车长度
+ trainTextFontSize: 16, // 列车字号
+ fontFamily: 'consolas', // 默认字体 族类
+ haveTextHSDA: true, // 是否需创建textHSDA对象
+ haveArrowText: true, // 是否需创建arrowText对象
+ haveTrainBorder: false, // 是否需创建trainBorder对象
+ aspectRatio: 7 / 5, // 字体宽高比例(用以拼接text是计算位置)
+ textOffset: 4, // 字体偏移(用以控制字体据车头的距离)
+ trainWidthMoreText: 8, // 计算列车长度时--列车长比text多出尺寸
+ useSelfFormat: true, // 使用配置项的nameFormat
+ useSelfText: true // 使用配置项的字体大小
+ },
+ trainStatusStyle: {
+ defaultDestinationColor: '#FFFFFF', // 默认目的地状态显示颜色
+ destinationStatusSetText: 'trainTarget', // 目的地状态设置的对应哪个text的颜色
+ destinationStatus: [
+ {status: '01', showColor: '#FFFFFF'},
+ {status: '02', showColor: '#00FF00'},
+ {status: '03', showColor: '#A0522D'},
+ {status: '04', showColor: '#FFFF00'}
+ ], // 目的地状态 01准点 02早点 03晚点 04头码车
+ serverNoType: [
+ {type: '01', showColor: '#FFFFFF'},
+ {type: '02', showColor: '#FFF000'}
+ ], // 服务号状态类型 01显示服务号 计划车 02显示车组号: 头码车与人工车
+ directionType: [
+ {
+ type: '01',
+ lineLShow: true,
+ lineRShow: true,
+ arrowLShow: false,
+ arrowRShow: false
+ },
+ {
+ type: '02',
+ lineLShow: false,
+ lineRShow: true,
+ arrowLShow: false,
+ arrowRShow: true
+ },
+ {
+ type: '03',
+ lineLShow: true,
+ lineRShow: false,
+ arrowLShow: true,
+ arrowRShow: false
+ }
+ ], // 列车运行方向状态类型对应车头显示状态 01未知方向 02从左往右 上行 03从右往左 下行
+ directionStopType: [
+ {
+ type: '01',
+ lineLShow: false,
+ lineRShow: false
+ },
+ {
+ type: '02',
+ lineLShow: false,
+ lineRShow: true
+ },
+ {
+ type: '03',
+ lineLShow: true,
+ lineRShow: false
+ }
+ ], // 列车停止方向类型对应车头显示状态 01未知方向 02从左往右 上行 03从右往左 下行
+ runModeStatus: [
+ {
+ status: '01',
+ trainLColor: '#FFFFFF',
+ trainRColor: '#FFFFFF'
+ },
+ {
+ status: '02',
+ trainLColor: '#00FF00',
+ trainRColor: '#00FF00'
+ },
+ {
+ status: '03',
+ trainLColor: '#FFFF00',
+ trainRColor: '#FFFF00'
+ },
+ {
+ status: '04',
+ trainLColor: '#A0522D',
+ trainRColor: '#A0522D'
+ },
+ {
+ status: '05',
+ trainLColor: '#A0522D',
+ trainRColor: '#A0522D'
+ }
+ ], // 列车运行模式对应车头颜色 01未知 02 ATO自动驾驶模式AM 03 ATP监控下的人工驾驶模式CM 04 限制人工驾驶模式RM 05 非限制人工驾驶模式RM
+ runControlStatus: [
+ {
+ status: '01',
+ hShow: false,
+ sShow: false
+ },
+ {
+ status: '02',
+ hShow: true,
+ sShow: false
+ },
+ {
+ status: '03',
+ hShow: false,
+ sShow: true
+ }
+ ], // 设置运行控制状态类型 01正常 02扣车 03停跳
+ doorStatus: [
+ {status: '01', dShow: false},
+ {status: '02', dShow: true}
+ ], // 设置车门状态类型 01关门 02开门
+ communicationStatus: [
+ {status: '01', trainColor: '#725A64'},
+ {status: '02', trainColor: '#C0C0C0'}
+ ], // 设置通信状态 01正常 02故障
+ alarmStatus: [
+ {status: '01', aShow: false},
+ {status: '02', aShow: true}
+ ] // 设置报警状态 01不报警 02报警
+ }
+ };
+ }
+}
+
+export default new SkinCode();
diff --git a/src/jmapNew/theme/factory.js b/src/jmapNew/theme/factory.js
index d1d180c21..84517bb0f 100644
--- a/src/jmapNew/theme/factory.js
+++ b/src/jmapNew/theme/factory.js
@@ -6,7 +6,8 @@ class Theme {
'02': 'fuzhou_01',
'03': 'beijing_01',
'04': 'chengdu_03',
- '05': 'fuzhou_01' // 国际版运行图皮肤 指向05 福州线路
+ '05': 'fuzhou_01', // 国际版运行图皮肤 指向05 福州线路
+ '06': 'ningbo_01'
};
}
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/alxeEffective.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/alxeEffective.vue
new file mode 100644
index 000000000..37b8fda24
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/alxeEffective.vue
@@ -0,0 +1,381 @@
+
+
+
+
准备
+
+
+ 车站
+ 轨道/计轴
+
+
+
+
+
+
+
+
+
+ 确认
+
+
+
+
+
+
+
确认
+
+
+ 车站
+ 轨道/计轴
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确认
+
+
+
+
+
+ 操作倒计时
+
+
+
+
+
+ 状态
+
+
+
+
+
+
+
+
+
+ 关闭
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/cancelAllLimit.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/cancelAllLimit.vue
new file mode 100644
index 000000000..1f90d642c
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/cancelAllLimit.vue
@@ -0,0 +1,371 @@
+
+
+
+ 会话管理
+
+ 查询会话状态
+
+
+
+
+
+ 打开会话
+
+
+ 关闭会话
+
+
+
+
+
操作
+
+ 操作
+
+
+
+
+
+ 确认
+
+
+
+
+
确认
+
+ 操作
+
+
+
+
+
+ 确认
+
+
+
+
+
+ 操作倒计时
+
+
+
+ {{ timeCountConfirm == -1 ? '' : timeCountConfirm }}
+
+
+
+
+ 关闭
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/childDialog/noticeInfo.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/childDialog/noticeInfo.vue
new file mode 100644
index 000000000..574e2ed4c
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/childDialog/noticeInfo.vue
@@ -0,0 +1,86 @@
+
+
+
+
+ {{ message }}
+
+
+
+
+ 确定
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmControl.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmControl.vue
new file mode 100644
index 000000000..bbb3a2587
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmControl.vue
@@ -0,0 +1,360 @@
+
+
+
+
+ {{message}}
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmControlSpeed.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmControlSpeed.vue
new file mode 100644
index 000000000..31d4587e0
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmControlSpeed.vue
@@ -0,0 +1,153 @@
+
+
+
+ {{message}}
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmSignalUnlock.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmSignalUnlock.vue
new file mode 100644
index 000000000..c6f069ffe
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmSignalUnlock.vue
@@ -0,0 +1,118 @@
+
+
+
+ 在{{stationName}}【{{signalName}}】信号机,信号解锁,确认下达吗?
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmTip.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmTip.vue
new file mode 100644
index 000000000..6917c9a94
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmTip.vue
@@ -0,0 +1,68 @@
+
+
+
+ {{message}}
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmTrain.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmTrain.vue
new file mode 100644
index 000000000..b0a7ffc5d
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/confirmTrain.vue
@@ -0,0 +1,178 @@
+
+
+
+
+ {{ message }}
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/password.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/password.vue
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/passwordInputBox.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/passwordInputBox.vue
new file mode 100644
index 000000000..dda9defa7
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/passwordInputBox.vue
@@ -0,0 +1,206 @@
+
+
+
+
+
+
+
+
+
+ *密码输入错误请重新输入*
+
+
+
+
+ 7
+
+
+ 8
+
+
+ 9
+
+
+
+
+ 4
+
+
+ 5
+
+
+ 6
+
+
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+
+
+ 0
+
+
+ C
+
+
+ <-
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/popupAlarm.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/popupAlarm.vue
new file mode 100644
index 000000000..f71cf4158
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/childDialog/popupAlarm.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/routeControl.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/routeControl.vue
new file mode 100644
index 000000000..4c7ab1437
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/routeControl.vue
@@ -0,0 +1,363 @@
+
+
+
+ 车站
+
+
+
+ 始端信号机
+
+
+
+
+
+
+ 确定
+ 取 消
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/routeDetail.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/routeDetail.vue
new file mode 100644
index 000000000..c93dc7380
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/routeDetail.vue
@@ -0,0 +1,140 @@
+
+
+
+
+ 车站
+
+
+
+ 始端信号机
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.name}}
+
+
+
+
+ {{scope.row.name}}
+
+
+
+
+ {{scope.row.name}}
+
+
+
+
+ 自动
+ 人工
+
+
+
+
+
+
+ 取 消
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/routeGuide.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/routeGuide.vue
new file mode 100644
index 000000000..4d0534ee1
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/routeGuide.vue
@@ -0,0 +1,283 @@
+
+
+
+ 车站
+
+
+
+ 始端信号机
+
+
+
+
+
+ 进路列表
+
+
+
+
+ {{ controlTypeNameMap[scope.row.controlType] }}
+
+
+
+ 无
+
+
+
+
+
+ 执行
+ 取 消
+
+
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/routeSelection.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/routeSelection.vue
new file mode 100644
index 000000000..88df28887
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/routeSelection.vue
@@ -0,0 +1,270 @@
+
+
+
+ 车站
+
+
+
+ 始端信号机
+
+
+
+
+
+ 进路列表
+
+
+
+
+ {{ controlTypeNameMap[scope.row.controlType] }}
+
+
+
+ 无
+
+
+
+
+
+ 执行
+ 取 消
+
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/sectionCmdControl.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/sectionCmdControl.vue
new file mode 100644
index 000000000..96bd8f04b
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/sectionCmdControl.vue
@@ -0,0 +1,435 @@
+
+
+
+
+ 命令信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{message}}
+
+
+ 下达({{timeCountCommand}})
+
+
+ 确认1
+
+
+
+ 确认2({{timeCountConfirm}})
+
+
+ 中止
+
+
+ 关闭
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/sectionControl.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/sectionControl.vue
new file mode 100644
index 000000000..13ac35839
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/sectionControl.vue
@@ -0,0 +1,215 @@
+
+
+
+ 车站
+
+
+
+ 区段
+
+
+
+
+
+
+ 确定
+ 取 消
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/sectionDetail.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/sectionDetail.vue
new file mode 100644
index 000000000..21c0c7e13
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/sectionDetail.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/speedCmdControl.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/speedCmdControl.vue
new file mode 100644
index 000000000..46caafc6b
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/speedCmdControl.vue
@@ -0,0 +1,902 @@
+
+
+
+
+ 会话管理
+
+
+
+ 查询会话状态
+
+
+
+
+
+
+ 打开会话
+
+
+
+ 关闭会话
+
+
+
+
+
+
+
+
+
+
+
+
起点
+
区间选择
+
+
+
+
公里标数值(m)
+
+
+
+
终点
+
区间选择
+
+
+
+
公里标数值(m)
+
+
+
+ 查看设备
+
+ 首次确认
+
+
+
+
+
+
+
设备列表:
+
+
+ {{ item.name }}: {{ item.text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
起点
+
区间选择
+
+
+
+
公里标数值(m)
+
+
+
+
+
+
终点
+
区间选择
+
+
+
+
公里标数值(m)
+
+
+
+
+
+ 查看设备
+
+ 确认发送
+
+
+
+
+
+
+
设备列表:
+
+
+ {{ item.name }}: {{ item.text }}
+
+
+
+
+
+
+
+
+ 操作倒计时
+
+ {{ timeCountConfirm == -1 ? '' : timeCountConfirm }}
+
+
+ 状态
+
+ {{ messageStatus }}
+
+
+
+ 关闭
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/standControl.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/standControl.vue
new file mode 100644
index 000000000..7e019bfd0
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/standControl.vue
@@ -0,0 +1,621 @@
+
+
+
+
+
+ 范围
+
+
+
+ 本站台
+
+ 上行全线
+
+ 下行全线
+
+
+
+
+
+ 功能
+
+
+
+ 扣车
+
+
+
+ 取消扣车
+
+
+
+
+
+
+
范围
+
+
+
+
+ 站台跳停
+
+
+ 指定列车跳停
+
+ 车组号
+
+
+
+
+
+
+
+
+
+
+
+
+ 功能
+
+
+
+ 跳停
+
+
+
+ 取消跳停
+
+
+
+
+
+
+
范围
+
+
+
+
+ 自动
+
+
+ 人工
+
+ 站停时间
+ 运行等级
+
+
+
+
+
+
+
+
+
+
+
+
+ 功能
+
+
+
+
+ 一次有效
+
+
+
+ 一直有效
+
+
+
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/standDetail.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/standDetail.vue
new file mode 100644
index 000000000..5aea6cf4c
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/standDetail.vue
@@ -0,0 +1,219 @@
+
+
+
+
+
+
+ 停站时间
+
+
+
+
+
+
+
+ 运行等级
+
+
+
+
+
+
+
+ 扣车
+
+
+
+
+
+
+
+ 跳停
+
+
+
+
+
+
+
+ 1
+
+
+ 退出
+
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/stationCmdControl.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/stationCmdControl.vue
new file mode 100644
index 000000000..4680847c6
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/stationCmdControl.vue
@@ -0,0 +1,389 @@
+
+
+
+
+ 命令信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{message}}
+
+
+ 下达({{timeCountCommand}})
+
+
+ 确认1
+
+
+
+ 确认2({{timeCountConfirm}})
+
+
+ 中止
+
+
+ 关闭
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/switchCmdControl.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/switchCmdControl.vue
new file mode 100644
index 000000000..ae66d1d28
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/switchCmdControl.vue
@@ -0,0 +1,459 @@
+
+
+
+
+ 命令信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{message}}
+
+
+ 下达({{timeCountCommand}})
+
+
+ 确认1
+
+
+
+ 确认2({{timeCountConfirm}})
+
+
+ 中止
+
+
+ 关闭
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/dialog/switchControl.vue b/src/jmapNew/theme/ningbo_01/menus/dialog/switchControl.vue
new file mode 100644
index 000000000..c45f04de0
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/dialog/switchControl.vue
@@ -0,0 +1,416 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/index.vue b/src/jmapNew/theme/ningbo_01/menus/index.vue
new file mode 100644
index 000000000..ec218b332
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/index.vue
@@ -0,0 +1,360 @@
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuBar.vue b/src/jmapNew/theme/ningbo_01/menus/menuBar.vue
new file mode 100644
index 000000000..943662caa
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuBar.vue
@@ -0,0 +1,1220 @@
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuCancel.vue b/src/jmapNew/theme/ningbo_01/menus/menuCancel.vue
new file mode 100644
index 000000000..90d599739
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuCancel.vue
@@ -0,0 +1,150 @@
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/childDialog/twoConfirmation.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/childDialog/twoConfirmation.vue
new file mode 100644
index 000000000..d15dda0a8
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/childDialog/twoConfirmation.vue
@@ -0,0 +1,137 @@
+
+
+
+
+ {{ message }}
+
+
+
+
+ 确认
+
+
+ 关闭
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/childDialog/userAdd.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/childDialog/userAdd.vue
new file mode 100644
index 000000000..2bea83e3e
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/childDialog/userAdd.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/childDialog/userDelete.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/childDialog/userDelete.vue
new file mode 100644
index 000000000..631bcf2ea
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/childDialog/userDelete.vue
@@ -0,0 +1,144 @@
+
+
+
+
+
+ {{ message }}
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/childDialog/userEdit.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/childDialog/userEdit.vue
new file mode 100644
index 000000000..95e4e8fa8
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/childDialog/userEdit.vue
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/helpAbout.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/helpAbout.vue
new file mode 100644
index 000000000..698bd5429
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/helpAbout.vue
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+ ControlMonitor 1.3.5.0
+ 确定
+
+
+ 版权所有(C)2010-2011 北京玖琏科技有限公司
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/limitSpeed.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/limitSpeed.vue
new file mode 100644
index 000000000..0ac49d4d4
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/limitSpeed.vue
@@ -0,0 +1,135 @@
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/manageUser.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/manageUser.vue
new file mode 100644
index 000000000..f7a2e1589
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/manageUser.vue
@@ -0,0 +1,290 @@
+
+
+
+ 用户列表
+
+
+
+
+
+ {{scope.row.jobNumber}}
+
+
+
+
+ {{scope.row.userName}}
+
+
+
+
+
+
+
+ 刷新
+
+ 增加
+
+ 修改
+
+ 删除
+
+
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/passwordBox.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/passwordBox.vue
new file mode 100644
index 000000000..9feaf8232
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/passwordBox.vue
@@ -0,0 +1,221 @@
+
+
+
+
+
+ 用户名:
+
+
+
+ 密 码:
+
+
+
+
+
+ 1
+ 2
+ 3
+ 4
+ 5
+
+
+ 回退
+
+
+ 6
+ 7
+ 8
+ 9
+ 0
+
+
+ 清空
+
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/setLimitSpeed.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/setLimitSpeed.vue
new file mode 100644
index 000000000..6f19587a8
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/setLimitSpeed.vue
@@ -0,0 +1,275 @@
+
+
+
+
+
+ 请求
+
+ 线路选择
+
+
+
+
+
+
+ 限制速度
+
+
+
+
+
+
+
+
+ 起始公里标
+
+
+
+ 结束公里标
+
+
+
+
+
+ 限速区段长度
+
+
+
+
+ 查看
+
+
+ 请求
+
+
+
+
+ 执行
+
+ 线路选择
+
+
+
+
+
+
+ 限制速度
+
+
+
+
+
+
+
+
+ 起始公里标
+
+
+
+ 结束公里标
+
+
+
+
+
+ 限速区段长度
+
+
+
+
+ 查看
+
+
+ 请求
+
+
+
+
+ 操作提示
+ 11111113
+
+
+
+
+ 设备列表
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/stationControlConvert.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/stationControlConvert.vue
new file mode 100644
index 000000000..4bd00cc1b
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/stationControlConvert.vue
@@ -0,0 +1,414 @@
+
+
+
+
+
+
+
+
+
+
+ {{scope.row.operate}}
+
+
+
+
+ {{scope.row.control}}
+
+
+
+
+ {{scope.row.status}}
+
+
+
+
+ {{scope.row.result}}
+
+
+
+
+
+ 强制站控
+ 请求站控
+
+ 请求中控
+
+
+
+ 关闭
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/trainAdd.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/trainAdd.vue
new file mode 100644
index 000000000..7ddcff22c
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/trainAdd.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
添加位置
+
+
+ 终 端:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/trainDelete.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/trainDelete.vue
new file mode 100644
index 000000000..398ccb370
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/trainDelete.vue
@@ -0,0 +1,149 @@
+
+
+
+
+ 终 端:
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/trainTranstalet.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/trainTranstalet.vue
new file mode 100644
index 000000000..c82352003
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/trainTranstalet.vue
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+
+
目的
+
+
+ 终 端:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/viewDevice.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/viewDevice.vue
new file mode 100644
index 000000000..dd4fc2e38
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/viewDevice.vue
@@ -0,0 +1,166 @@
+
+
+
+
+ 车次窗
+
+
+ 区段边界
+
+
+ 联锁自动进路表示灯
+
+
+ ATS自动触发表示灯
+
+
+
+
+ 确定
+
+
+
+ 取 消
+
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/viewName.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/viewName.vue
new file mode 100644
index 000000000..aa1ccd4f0
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/viewName.vue
@@ -0,0 +1,248 @@
+
+
+
+
+
+ 信号机名称
+
+
+ 站台轨名称
+
+
+
+
+ 按钮名称
+
+
+ 折返轨名称
+
+
+
+
+ 股道名称
+
+
+ 转换轨名称
+
+
+
+
+ 道岔名称
+
+
+ 标识灯名称
+
+
+
+
+ 道岔区段名称
+
+
+ 目的地名称
+
+
+
+
+ 计轴区段名称
+
+
+ 公里标
+
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuDialog/viewTrainId.vue b/src/jmapNew/theme/ningbo_01/menus/menuDialog/viewTrainId.vue
new file mode 100644
index 000000000..888ba8d38
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuDialog/viewTrainId.vue
@@ -0,0 +1,183 @@
+
+
+
+ 计划车显示模式
+
+
+
+ 表号+车次号
+
+
+ 表号+车组号
+
+
+
+
+ 目的地号+车次号
+
+
+ 目的地号+车组号
+
+
+
+
+ 目的地号+表号+车次号
+
+
+ 目的地号+表号+车组号
+
+
+
+
+
+ 头码车显示模式
+
+
+
+ 目的地号+车次号
+
+
+ 目的地号+车组号
+
+
+
+
+
+ 字体大小
+
+
+
+
+
+ (范围:16-99)
+
+
+
+
+
+ 确定
+
+
+ 取 消
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuLimit.vue b/src/jmapNew/theme/ningbo_01/menus/menuLimit.vue
new file mode 100644
index 000000000..d8600220a
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuLimit.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuSection.vue b/src/jmapNew/theme/ningbo_01/menus/menuSection.vue
new file mode 100644
index 000000000..3cc709001
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuSection.vue
@@ -0,0 +1,403 @@
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuSignal.vue b/src/jmapNew/theme/ningbo_01/menus/menuSignal.vue
new file mode 100644
index 000000000..b01c897d3
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuSignal.vue
@@ -0,0 +1,583 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuStation.vue b/src/jmapNew/theme/ningbo_01/menus/menuStation.vue
new file mode 100644
index 000000000..a4e2e0c7d
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuStation.vue
@@ -0,0 +1,153 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuStationControl.vue b/src/jmapNew/theme/ningbo_01/menus/menuStationControl.vue
new file mode 100644
index 000000000..b569ec165
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuStationControl.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuStationStand.vue b/src/jmapNew/theme/ningbo_01/menus/menuStationStand.vue
new file mode 100644
index 000000000..5350140d1
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuStationStand.vue
@@ -0,0 +1,372 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuSwitch.vue b/src/jmapNew/theme/ningbo_01/menus/menuSwitch.vue
new file mode 100644
index 000000000..d6c79e675
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuSwitch.vue
@@ -0,0 +1,462 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuTool.vue b/src/jmapNew/theme/ningbo_01/menus/menuTool.vue
new file mode 100644
index 000000000..dc32a9673
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuTool.vue
@@ -0,0 +1,205 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/menuTrain.vue b/src/jmapNew/theme/ningbo_01/menus/menuTrain.vue
new file mode 100644
index 000000000..989ceb08e
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/menuTrain.vue
@@ -0,0 +1,42 @@
+
+
+ 1111111
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/passiveDialog/alarm.vue b/src/jmapNew/theme/ningbo_01/menus/passiveDialog/alarm.vue
new file mode 100644
index 000000000..9ec516a1c
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/passiveDialog/alarm.vue
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 等 级
+
+
+
+
+
+
+
+
+
+
+
+
+ 类 型
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 报警详细描述
+
+
+
+
+
+ 确 定
+
+
+ 未确认{{ level }}级报警数目:1
+
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menus/passiveDialog/control.vue b/src/jmapNew/theme/ningbo_01/menus/passiveDialog/control.vue
new file mode 100644
index 000000000..1e0175452
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/passiveDialog/control.vue
@@ -0,0 +1,285 @@
+
+
+ {{`${requestInfo}请求如下区域的控制模式`}}
+
+
+
+ {{scope.row.operate}}
+
+
+
+
+ {{scope.row.control.name}}
+
+
+
+
+ {{scope.row.target.name}}
+
+
+
+
+
+
+
+
+ 距离对话还有{{count}}秒,请应答。
+
+
+ 同意
+
+
+
+ 拒绝
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/passiveDialog/timeout.vue b/src/jmapNew/theme/ningbo_01/menus/passiveDialog/timeout.vue
new file mode 100644
index 000000000..91cb2849d
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/passiveDialog/timeout.vue
@@ -0,0 +1,106 @@
+
+
+ {{name}},{{msg}}!
+
+ 确认
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/statusBar.vue b/src/jmapNew/theme/ningbo_01/menus/statusBar.vue
new file mode 100644
index 000000000..46a07d747
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/statusBar.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/statusDownTrainDetail.vue b/src/jmapNew/theme/ningbo_01/menus/statusDownTrainDetail.vue
new file mode 100644
index 000000000..14f092b23
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/statusDownTrainDetail.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/statusUpTrainDetail.vue b/src/jmapNew/theme/ningbo_01/menus/statusUpTrainDetail.vue
new file mode 100644
index 000000000..afafa39cf
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/statusUpTrainDetail.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/menus/utils/menuItemStatus.js b/src/jmapNew/theme/ningbo_01/menus/utils/menuItemStatus.js
new file mode 100644
index 000000000..44d3cbb9a
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menus/utils/menuItemStatus.js
@@ -0,0 +1,587 @@
+import store from '@/store';
+import deviceState from '@/jmap/constant/deviceState';
+import { OperateMode } from '@/scripts/ConstDic';
+
+export function getCurrentStateObject() {
+ return store.getters['menuOperation/selected'];
+}
+
+/** 系统类型 */
+export const SystemType = {
+ '01': 'local', // 现地工作站
+ '02': 'central' // 中心调度工作站
+};
+
+export const StationControlType = {
+ '01': 'center', // 中控
+ '02': 'station', // 站控
+ '03': 'station'
+};
+
+// 控制禁用
+export const MenuDisabledState = {
+ Section: {
+ // 故障解锁
+ fault() {
+ },
+ // 切除
+ split() {
+ const device = getCurrentStateObject();
+ if (device && device.cutOff != deviceState.Section.cutOff.Default) {
+ return true;
+ }
+ },
+ // 激活
+ active() {
+ const device = getCurrentStateObject();
+ if (device && device.cutOff == deviceState.Section.cutOff.Default) {
+ return true;
+ }
+ },
+ // 区段封锁
+ lock() {
+ const device = getCurrentStateObject();
+ if (device && device.status == deviceState.Section.status.State06) {
+ return true;
+ }
+ },
+ // 区段解禁
+ unlock() {
+ const device = getCurrentStateObject();
+ if (device && device.status != deviceState.Section.status.State06) {
+ return true;
+ }
+ },
+ // 区段设置限速
+ setSpeed() {
+ },
+ // 区段取消限速
+ cancelSpeed() {
+ const device = getCurrentStateObject();
+ if (device && device.speedUpperLimit == deviceState.Section.speedUpperLimit.Default) {
+ return true;
+ }
+ },
+ // 新建列车
+ newTrain() {
+ },
+ // 计轴预复位
+ axlePreReset() {
+ },
+ // 设置计轴有效
+ alxeEffective() {
+ },
+ // 设置计轴失效
+ alxeFailure() {
+ const device = getCurrentStateObject();
+ if (device && device.status == deviceState.Section.status.State13) {
+ return true;
+ }
+ }
+ },
+ Signal: {
+ // 进路选排
+ arrangementRoute() {
+
+ },
+ // 进路取消
+ cancelTrainRoute() {
+ },
+ // 信号封闭
+ lock() {
+ const device = getCurrentStateObject();
+ if (device && device.status == deviceState.Signal.status.State05) {
+ return true;
+ }
+ },
+ // 信号解封
+ unlock() {
+ const device = getCurrentStateObject();
+ if (device && device.status != deviceState.Signal.status.State05) {
+ return true;
+ }
+ },
+ // 信号重开
+ reopenSignal() {
+ },
+ // 进路引导
+ guide() {
+ },
+ // 设置联锁自动进路
+ setAutoInterlock() {
+ },
+ // 取消联锁自动进路
+ cancelAutoInterlock() {
+ },
+ // 设置联锁自动触发
+ setAutoTrigger() {
+ },
+ // 取消联锁自动触发
+ cancelAutoTrigger() {
+ },
+ // 关灯
+ signalClose() {
+ const device = getCurrentStateObject();
+ if (device && device.status == deviceState.Signal.status.State01) {
+ return true;
+ }
+ },
+ // 总人解
+ humanTrainRoute() {
+ },
+ // 人工控
+ humanControl() {
+ },
+ // ats自动控
+ atsAutoControl() {
+ },
+ // 查询进路状态
+ detail() {
+ },
+ // 设置故障
+ setStoppage() {
+ const device = getCurrentStateObject();
+ if (device && device.fault) {
+ return true;
+ }
+ },
+ // 取消故障
+ cancelStoppage() {
+ const device = getCurrentStateObject();
+ if (device && !device.fault) {
+ return true;
+ }
+ }
+ },
+ Station: {
+ // 全站设置联锁自动触发
+ setAutoTrigger() {
+ },
+ // 全站取消联锁自动触发
+ cancelAutoTrigger() {
+ },
+ // 上电解锁
+ powerUnLock() {
+ },
+ // 执行关键操作测试
+ execKeyOperationTest() {
+ },
+ // 所有进路自排开
+ atsAutoControlALL() {
+ },
+ // 所有进路自排关
+ humanControlALL() {
+ },
+ // 设置ZC故障
+ setStoppage() {
+ const device = getCurrentStateObject();
+ if (device && device.fault) {
+ return true;
+ }
+ },
+ // 取消ZC故障
+ cancelStoppage() {
+ const device = getCurrentStateObject();
+ if (device && !device.fault) {
+ return true;
+ }
+ }
+ },
+ StationControl: {
+ // 紧急站控
+ emergencyStationControl() {
+ const device = getCurrentStateObject();
+ if (device && device.status == deviceState.StationControl.status.State03) {
+ return true;
+ }
+ },
+ // 请求站控
+ requestStationControl() {
+ const device = getCurrentStateObject();
+ if (device && device.status == deviceState.StationControl.status.State02) {
+ return true;
+ }
+ },
+ // 强行站控
+ forcedStationControl() {
+ const device = getCurrentStateObject();
+ if (device && device.status == deviceState.StationControl.status.State02) {
+ return true;
+ }
+ },
+ // 请求中控
+ requestCentralControl() {
+ const device = getCurrentStateObject();
+ if (device && device.status == deviceState.StationControl.status.State01) {
+ return true;
+ }
+ },
+ // 设置故障
+ setStoppage() {
+ const device = getCurrentStateObject();
+ if (device && device.fault) {
+ return true;
+ }
+ },
+ // 取消故障
+ cancelStoppage() {
+ const device = getCurrentStateObject();
+ if (device && !device.fault) {
+ return true;
+ }
+ }
+ },
+ StationStand: {
+ // 设置扣车
+ setDetainTrain() {
+ const device = getCurrentStateObject();
+ if (device && device.holdStatus != deviceState.StationStand.holdStatus.State01) {
+ return true;
+ }
+ },
+ // 取消扣车
+ cancelDetainTrain() {
+ const device = getCurrentStateObject();
+ if (device && device.holdStatus == deviceState.StationStand.holdStatus.State01) {
+ return true;
+ }
+ },
+ // 强制取消扣车
+ cancelDetainTrainForce() {
+ const device = getCurrentStateObject();
+ if (device && device.holdStatus == deviceState.StationStand.holdStatus.State01) {
+ return true;
+ }
+ },
+ // 设置全站扣车
+ cancelDetainTrainAll() {
+ },
+ // 设置运行等级
+ setRunLevel() {
+ },
+ // 设置停站时间
+ setStopTime() {
+ },
+ // 设置跳停
+ setJumpStop() {
+ const device = getCurrentStateObject();
+ if (device && device.jumpStopStatus != deviceState.StationStand.jumpStopStatus.State01) {
+ return true;
+ }
+ },
+ // 取消跳停
+ cancelJumpStop() {
+ const device = getCurrentStateObject();
+ if (device && device.jumpStopStatus == deviceState.StationStand.jumpStopStatus.State01) {
+ return true;
+ }
+ },
+ // 提前发车
+ earlyDeparture() {
+ },
+ // 站台详细信息
+ detail() {
+ },
+ // 设置折返策略
+ setBackStrategy() {
+ },
+ // 设置故障
+ setStoppage() {
+ const device = getCurrentStateObject();
+ if (device && device.fault) {
+ return true;
+ }
+ },
+ // 取消故障
+ cancelStoppage() {
+ const device = getCurrentStateObject();
+ if (device && !device.fault) {
+ return true;
+ }
+ }
+ },
+ Switch: {
+ // 单锁
+ lock() {
+ const device = getCurrentStateObject();
+ if (device && device.status == deviceState.Switch.status.State10) {
+ return true;
+ }
+ },
+ // 解锁
+ unlock() {
+ const device = getCurrentStateObject();
+ if (device && device.status != deviceState.Switch.status.State10) {
+ return true;
+ }
+ },
+ // 封锁
+ block() {
+ const device = getCurrentStateObject();
+ if (device && device.status == deviceState.Switch.status.State14) {
+ return true;
+ }
+ },
+ // 解封
+ unblock() {
+ const device = getCurrentStateObject();
+ if (device && device.status != deviceState.Switch.status.State14) {
+ return true;
+ }
+ },
+ // 强扳
+ switchTurnoutForce() {
+ },
+ // 转动
+ switchTurnout() {
+ },
+ // 道岔故障解锁
+ fault() {
+ },
+ // 计轴预复位
+ axlePreReset() {
+ },
+ // 道岔切除
+ split() {
+ },
+ // 道岔激活
+ active() {
+ },
+ // 道岔设置速度
+ setSpeed() {
+ // const device = getCurrentStateObject();
+ },
+ // 设置计轴有效
+ alxeEffective() {
+ },
+ // 道岔取消速度
+ cancelSpeed() {
+ },
+ // 设置故障
+ setStoppage() {
+ const device = getCurrentStateObject();
+ if (device && device.fault) {
+ return true;
+ }
+ },
+ // 取消故障
+ cancelStoppage() {
+ const device = getCurrentStateObject();
+ if (device && !device.fault) {
+ return true;
+ }
+ },
+ // 单操到定位
+ locate() {
+ },
+ // 单操到反位
+ reverse() {
+ },
+ // 属性
+ property() {
+ }
+ },
+ Train: {
+ // 添加列车识别号
+ addTrainId() {
+ },
+ // 删除列车识别号
+ delTrainId() {
+ },
+ // 修改列车识别号
+ editTrainId() {
+ },
+ // 修改车组号
+ editTrainNo() {
+ },
+ // 创建车组号
+ createTrainNo() {
+ },
+ // 移动车组号
+ moveTrainNo() {
+ },
+ // 删除车组号
+ deleteTrainNo() {
+ },
+ // 移动列车识别号
+ moveTrainId() {
+ },
+ // 交换列车识别号
+ switchTrainId() {
+ },
+ // 设计划车
+ setPlanTrainId() {
+ },
+ // 设目的地车
+ destinationTrainId() {
+ },
+ // 设人工车
+ artificialTrainId() {
+ },
+ // 详细列车信息
+ detailTrainInfo() {
+ },
+ // 设置限速
+ limitSpeed() {
+ },
+ // 设置通信故障
+ setStoppage() {
+ const device = getCurrentStateObject();
+ if (device && device.fault) {
+ return true;
+ }
+ },
+ // 取消通信故障
+ cancelStoppage() {
+ const device = getCurrentStateObject();
+ if (device && !device.fault) {
+ return true;
+ }
+ }
+ }
+};
+
+/**
+ * 将menu的disabled属性使用disabledCallback计算并返回
+ * @param {Array} menu
+ */
+export function menuConvert(menu) {
+ if (menu.constructor === Array) {
+ menu.forEach(elem => {
+ if (elem.type === 'separator') {
+ elem.show = true;
+ return;
+ }
+ if (elem.disabledCallback.constructor === Function) {
+ // elem.disabled = elem.defaultDisabled;
+ if (!elem.defaultDisabled) {
+ elem.disabled = elem.disabledCallback();
+ }
+ }
+ });
+ }
+ return menu;
+}
+
+/**
+ * 根据产品类型,返回对应的menuBar
+ * @param {*} menuObj
+ */
+export function menuBarConvert(menu, mode) {
+ if (menu) {
+ if (mode === OperateMode.NORMAL) {
+ menu.forEach(item => {
+ if (item.type === 'separator') {
+ item.show = true;
+ return;
+ }
+
+ item.show = false;
+ if (!item.click) {
+ item.click = () => { };
+ }
+
+ if (!item.froce) {
+ item.show = true;
+ if (item.children && item.children.length > 0) {
+ menuBarConvert(item.children, mode);
+ }
+ }
+ });
+ } else if (mode === OperateMode.ADMIN) {
+ menu.forEach(item => {
+ item.show = true;
+ if (!item.click) {
+ item.click = () => { };
+ }
+ if (item.children && item.children.length > 0) {
+ menuBarConvert(item.children, mode);
+ }
+ });
+ }
+ }
+ return menu || [];
+}
+
+/**
+ * 将menu的show属性过滤返回
+ * @param {Array} menu
+ */
+export function menuFiltration(menuObj) {
+ var selected = getCurrentStateObject();
+ var control;
+ var menu = [];
+
+ if (selected._type == 'StationStand') {
+ control = store.getters['map/getStationControlByStationCode'](selected.deviceStationCode);
+ } else if (selected._type == 'Station') {
+ control = store.getters['map/getStationControlByStationCode'](selected.code);
+ } else {
+ control = store.getters['map/getStationControlByStationCode'](selected.stationCode);
+ }
+
+ if (control) {
+ if (store.state.training.prdType != '') {
+ const type = SystemType[store.state.training.prdType];
+ const status = StationControlType[control.status];
+ menu = [...menuObj[type]];
+ if (menu.constructor === Array) {
+ menu.forEach(elem => {
+ if (elem.type === 'separator') {
+ elem.show = true;
+ return;
+ }
+
+ if (elem.auth.constructor === Object) {
+ elem.show = true;
+ if (!elem.auth['station'] && !elem.auth['center']) { // 控制不显示
+ elem.show = false;
+ }
+ elem.defaultDisabled = !elem.auth[status];
+ }
+ });
+ }
+ }
+ }
+ return menu;
+}
+
+/**
+ * 将train menu的show属性过滤返回
+ */
+export function trainMenuFiltration(menuObj) {
+ var menu = [];
+ if (store.state.training.prdType != '') {
+ var type = SystemType[store.state.training.prdType];
+ menu = [...menuObj[type]];
+ if (menu.constructor === Array) {
+ menu.forEach(elem => {
+ if (elem.type === 'separator') {
+ elem.show = true;
+ return;
+ }
+
+ if (elem.auth.constructor === Object) {
+ elem.show = true;
+ if (!elem.auth['station'] && !elem.auth['center']) { // 控制不显示
+ elem.show = false;
+ }
+ }
+ });
+ }
+ }
+ return menu;
+}
+
+/**
+ * 离开菜单以及执行完菜单取消选中状态
+ */
+export function mouseCancelState(device) {
+ // Object.assign(device, { _selected: false });
+ // var viewInstance = store.state.map.jlmap.getViewInstanceByDevice({ _type: device._type, _code: device.code });
+ // if (viewInstance && viewInstance['mouseleave']) {
+ // viewInstance['selected'] = false;
+ // viewInstance['mouseleave'](store.state.map.jlmap._zr.curEvent);
+ // }
+}
+
diff --git a/src/jmapNew/theme/ningbo_01/menusPlan/addTask.vue b/src/jmapNew/theme/ningbo_01/menusPlan/addTask.vue
new file mode 100644
index 000000000..009c19f02
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menusPlan/addTask.vue
@@ -0,0 +1,175 @@
+
+
+
+
+
+ 加在最前
+
+
+ 车次号:
+
+
+
+
+
+
+
+ 开始时间:
+
+
+
+
+
+
+
+
+
+ 加在最后
+
+
+ 车次号:
+
+
+
+
+
+
+
+ 开始时间:
+
+
+
+
+
+
+
+
+
+ 交路:
+
+
+
+
+
+
+
+
+
+
+ 详情:
+
+
+
+
+
+
+
+
+
+
+
+ 显示默认停站时间和运行等级
+
+
+
+
+ 确 定
+ 取 消
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menusPlan/chooseTemplatePlan.vue b/src/jmapNew/theme/ningbo_01/menusPlan/chooseTemplatePlan.vue
new file mode 100644
index 000000000..fa220d049
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menusPlan/chooseTemplatePlan.vue
@@ -0,0 +1,115 @@
+
+
+
+
+ 选 择
+ 取 消
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menusPlan/components/dataTable.vue b/src/jmapNew/theme/ningbo_01/menusPlan/components/dataTable.vue
new file mode 100644
index 000000000..ef76ee150
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menusPlan/components/dataTable.vue
@@ -0,0 +1,206 @@
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menusPlan/createTodayPlan.vue b/src/jmapNew/theme/ningbo_01/menusPlan/createTodayPlan.vue
new file mode 100644
index 000000000..061b7f8d0
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menusPlan/createTodayPlan.vue
@@ -0,0 +1,134 @@
+
+
+
+
+ 加 载
+ 取 消
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menusPlan/createWeekPlan.vue b/src/jmapNew/theme/ningbo_01/menusPlan/createWeekPlan.vue
new file mode 100644
index 000000000..2eabc8044
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menusPlan/createWeekPlan.vue
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
+
+
+
+ 选择
+
+
+
+
+
+
+
+
+
+
+
+ 确 定
+ 取 消
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menusPlan/deleteTask.vue b/src/jmapNew/theme/ningbo_01/menusPlan/deleteTask.vue
new file mode 100644
index 000000000..cd79c305f
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menusPlan/deleteTask.vue
@@ -0,0 +1,73 @@
+
+
+
+ 删除以前所有任务(包含本任务)
+
+
+ 删除以后所有任务(包含本任务)
+
+
+ 确 定
+ 取 消
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menusPlan/deleteTodayPlan.vue b/src/jmapNew/theme/ningbo_01/menusPlan/deleteTodayPlan.vue
new file mode 100644
index 000000000..2e22a7c64
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menusPlan/deleteTodayPlan.vue
@@ -0,0 +1,62 @@
+
+
+
+ 确 定
+ 取 消
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menusPlan/managePlanList.vue b/src/jmapNew/theme/ningbo_01/menusPlan/managePlanList.vue
new file mode 100644
index 000000000..7fcd45639
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menusPlan/managePlanList.vue
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menusPlan/modifyingPlan.vue b/src/jmapNew/theme/ningbo_01/menusPlan/modifyingPlan.vue
new file mode 100644
index 000000000..1d2b31102
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menusPlan/modifyingPlan.vue
@@ -0,0 +1,177 @@
+
+
+
+ 列车线路
+
+
+
+
+
+
+
+
+
+
+
+
+ 加任务
+
+
+ 替 换
+
+
+ 删任务
+
+
+
+
+ 进库
+ 出库
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 改车次号
+
+
+
+ 线路开始时间
+
+
+
+ 线路结束时间
+
+
+
+
+
+ 线路详细信息
+
+
+
+
+
+
+
+
+
+
+
+ 影响后续任务
+
+
+ 确 定
+ 取 消
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/menusPlan/modifyingTask.vue b/src/jmapNew/theme/ningbo_01/menusPlan/modifyingTask.vue
new file mode 100644
index 000000000..4679c003e
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/menusPlan/modifyingTask.vue
@@ -0,0 +1,326 @@
+
+
+
+
+
+
+
+ 车次号:
+
+
+
+
+
+
+
+
+
+
+
+ 手工
+
+
+
+
+
+
+ 缺省停站时间:
+
+
+
+
+
+
+
+
+
+
+
+ 表号:
+
+
+
+
+
+
+
+
+
+
+
+ 清客
+
+
+ 延续计划
+
+
+ 首班车
+
+
+
+
+
+
+
+
+
+
+ 序列号:
+
+
+
+
+
+
+
+
+
+
+
+ 手工
+
+
+
+
+
+
+ 缺省运行等级:
+
+
+
+
+
+
+
+
+
+
+
+ 开始时间:
+
+
+
+
+
+
+
+
+
+
+
+ 入库
+
+
+ 出库
+
+
+ 末班车
+
+
+
+
+
+
+
+ 交路:
+
+
+
+
+
+ {{ formatName(scope.row.beginStationCode) }}
+
+
+
+
+
+ {{ formatName(scope.row.endStationCode) }}
+
+
+
+
+
+
+
+
+ 详情:
+
+
+
+
+
+ {{ formatName(scope.row.stationCode) }}
+
+
+
+
+ {{ formatTime(scope.row.startTime) }}
+
+
+
+
+ {{ formatTime(scope.row.stopTime) }}
+
+
+
+
+ {{ formatTime(scope.row.endTime) }}
+
+
+
+
+
+
+
+
+ 显示默认停站时间和运行等级
+
+
+
+
+ 确 定
+ 取 消
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/model.js b/src/jmapNew/theme/ningbo_01/model.js
new file mode 100644
index 000000000..62440bda8
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/model.js
@@ -0,0 +1,63 @@
+import deviceType from '../../constant/deviceType';
+
+class Model {
+ constructor() {
+ // 公共字段部分默认初始值
+ this['public'] = {};
+ this['public'][deviceType.Signal] = {
+ lampPositionType: '02',
+ lampPostType: '02'
+ };
+
+ // 私有字段部分默认初始值
+ this['private'] = {};
+ this['private'][deviceType.StationControl] = {
+ indicatorShow: true // 标识灯名称显示
+ };
+ this['private'][deviceType.Section] = {
+ borderBorderShow: true, // 区段边界显示
+ standTrackNameShow: true, // 站台轨名称显示
+ reentryTrackNameShow: true, // 折返轨名称显示
+ transferTrackNameShow: true // 转换轨名称显示
+ };
+ this['private'][deviceType.Signal] = {
+ linkageAutoRouteShow: true, // 联锁自动进路表示灯显示
+ atsAutoTriggerShow: true // ATS自动触发表示灯显示
+ };
+ this['private'][deviceType.Train] = {
+ nameFormat: 'targetCode:serviceNumber:tripNumber', // 字体格式
+ nameFontSize: 10 // 字体大小
+ };
+ 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();
diff --git a/src/jmapNew/theme/ningbo_01/planConvert.js b/src/jmapNew/theme/ningbo_01/planConvert.js
new file mode 100644
index 000000000..dadb1996b
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/planConvert.js
@@ -0,0 +1,310 @@
+import { createMartPoint, createSeriesModel, createMarkLineModels, hexColor, convertSheetToList } from '@/utils/runPlan';
+
+export default {
+ /** 边缘高度*/
+ EdgeHeight: 600,
+
+ /** 间隔高度*/
+ CoordMultiple: 1,
+
+ /** 偏移时间*/
+ TranslationTime: 60 * 60 * 2,
+
+ /** excel解析配置*/
+ ExcelConfig: {
+ beginRow: 1,
+ beginCol: 0,
+ fieldNum: 10,
+ sepField: '车次',
+ columns: {
+ '车站名': { key: 'stationName', formatter: (val) => { return val; } },
+ '到点': { key: 'arriveTime', formatter: (val) => { return val; } },
+ '发点': { key: 'departureTime', formatter: (val) => { return val; } }
+ }
+ },
+
+ /** 解析exal数据转换为Json后台数据*/
+ importData(Sheet, JsonData) {
+ var dataList = convertSheetToList(Sheet, true);
+ var needList = Object.keys(this.ExcelConfig.columns);
+
+ if (dataList && dataList.length) {
+ for (var colIndex = this.ExcelConfig.beginCol; colIndex < dataList.length; colIndex += this.ExcelConfig.fieldNum + 1) {
+ var isContinue = true;
+ var tripObj = { code: '', arrivalList: [] };
+
+ for (var rowIndex = this.ExcelConfig.beginRow; isContinue; rowIndex += 1) {
+ isContinue = false;
+
+ var stationObj = {};
+ for (var index = 0; index < this.ExcelConfig.fieldNum; index += 1) {
+ if (dataList[colIndex + index]) {
+ var title = dataList[colIndex + index][0];
+ var value = dataList[colIndex + index][rowIndex];
+
+ if (title && value) {
+ // 数据列解析
+ isContinue = true;
+ var titleStr = `${title}`.trim();
+ var valueStr = `${value}`.trim();
+
+ if (titleStr == this.ExcelConfig.sepField) {
+ if (tripObj.code) {
+ const length = tripObj.arrivalList.length;
+ if (length == 1) {
+ tripObj.arrivalList[0]['flag'] = true;
+ }
+ JsonData.push(tripObj);
+ tripObj = { code: valueStr, arrivalList: [] };
+ } else {
+ tripObj.code = valueStr;
+ }
+ }
+
+ // 取需要的字段
+ if (needList.findIndex(elem => { return elem == titleStr; }) >= 0) {
+ stationObj[this.ExcelConfig.columns[titleStr].key] = this.ExcelConfig.columns[titleStr].formatter(valueStr);
+ }
+ }
+ }
+ }
+
+ // 添加字段值
+ if (Object.keys(stationObj).length) {
+ tripObj.arrivalList.push(stationObj);
+ }
+ }
+
+ // 添加最后那条没有车次的记录
+ if (tripObj.code) {
+ const length = tripObj.arrivalList.length;
+ if (length) {
+ tripObj.arrivalList[length - 1]['flag'] = true;
+ }
+ JsonData.push(tripObj);
+ }
+ }
+ }
+
+ return JsonData;
+ },
+
+ /** 将后台数据解析成图表*/
+ convertDataToModels(data, stations, kmRangeCoordMap, lineStyle) {
+ var models = [];
+
+ if (data && data.serviceNumberDataList && data.serviceNumberDataList.length) {
+ /** 按服务遍历数据*/
+ data.serviceNumberDataList.forEach((service) => {
+ /** 按车次遍历数据*/
+ var opt = { name: '', markPointData: [], data: [] };
+ if (service.tripNumberDataList && service.tripNumberDataList.length) {
+ service.tripNumberDataList.forEach((train, j) => {
+ var pointdata = {};
+ var idx = 0;
+ var num = 0;
+ var lastPoint = null;
+ var nextPoint = null;
+
+ /** 如果车次号为空,不显示名称*/
+ if (train.tripNumber) {
+ /** 创建标记点名称和坐标*/
+ pointdata.name = `${service.serviceNumber}${train.directionCode}${train.tripNumber}`;
+ pointdata.color = '#000' || lineStyle.color;
+ pointdata.directionCode = train.directionCode;
+ pointdata.coord = [train.stationTimeList[1].secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, train.stationTimeList[1], train.directionCode, false)];
+
+ /** 给服务对象添加服务名称和标记点*/
+ opt.markPointData.push(createMartPoint(pointdata));
+ /** 创建服务号名称*/
+ opt.name = `${service.serviceNumber}`;
+ }
+
+ /** 计算非折返点车次点坐标集合*/
+ train.stationTimeList.forEach((elem, index) => {
+ idx = index;
+ if (index == 0 && train.stationTimeList[index].stationCode != train.stationTimeList[index + 1].stationCode ||
+ index == train.stationTimeList.length - 2 && train.stationTimeList[index].secondTime != train.stationTimeList[index + 1].secondTime ||
+ index > 0 && index < train.stationTimeList.length - 1) {
+ const aa = `${train.directionCode}${train.tripNumber}`;
+ opt.data.push([elem.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, elem, elem.directionCode, false), elem.stationCode, aa]);
+ }
+ });
+
+ /** 计算折返点车次坐标点集合*/
+ if (!service.backup && train.reentry && service.tripNumberDataList[j + 1] && service.tripNumberDataList[j + 1].stationTimeList) {
+ lastPoint = train.stationTimeList[idx - 1];
+ nextPoint = service.tripNumberDataList[j + 1].stationTimeList[1];
+ num = this.computedReentryNumber(train.tripNumber);
+ opt.data.push([lastPoint.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, lastPoint, train.directionCode, true, num), lastPoint.stationCode]);
+ opt.data.push([nextPoint.secondTime, this.getCoordYByElem(stations, kmRangeCoordMap, nextPoint, train.directionCode, true, num), nextPoint.stationCode]);
+ }
+
+ /** 如果是备用车,按车次添加线*/
+ if (service.backup) {
+ /** 创建一条完成的服务数据*/
+ opt.name += j;
+ var model = createSeriesModel(opt, Object.assign({ color: hexColor.toCreate() }, lineStyle));
+ if (model) {
+ models.push(model);
+ opt = { name: '', markPointData: [], data: [] };
+ }
+ }
+ });
+
+ // 不是备用车,按服务添加线
+ if (!service.backup) {
+ /** 创建一条完成的服务数据*/
+ var model = createSeriesModel(opt, Object.assign({ color: hexColor.toCreate() }, lineStyle));
+ if (model) {
+ models.push(model);
+ }
+ }
+ }
+ });
+ return models;
+ } else {
+ return [];
+ }
+ },
+
+ /** 更新数据并解析成图表*/
+ updateDataToModels(data, stations, kmRangeCoordMap, runPlanData, series, lineStyle) {
+ if (data && data.length) {
+ data.forEach(elem => {
+ /** 判断此条记录的服务号是否存在*/
+ if (!runPlanData[elem.serviceNumber]) {
+ /** 创建一个新服务号标记*/
+ runPlanData[elem.serviceNumber] = {};
+
+ /** 不存在此服务号,则需要创建一条新的line*/
+ series.push(createSeriesModel({
+ zlevel: 1,
+ name: `run${elem.serviceNumber}`,
+ data: [],
+ markPointData: []
+ }, Object.assign({ color: hexColor.toCreate() }, lineStyle)));
+ }
+
+ /** 添加数据*/
+ series.forEach(serie => {
+ /** 找到服务号所在图数据的位置*/
+ if (serie.name == `run${elem.serviceNumber}`) {
+ /** 添加车组号记录标记*/
+ if (!runPlanData[elem.serviceNumber][elem.tripNumber]) {
+ runPlanData[elem.serviceNumber][elem.tripNumber] = [];
+ }
+
+ runPlanData[elem.serviceNumber][elem.tripNumber].push(elem);
+ runPlanData[elem.serviceNumber][elem.tripNumber].sort((a, b) => {
+ return parseInt(a.secondTime) - parseInt(b.secondTime);
+ });
+
+ /** 如果此记录车组号的数据为第一条时,则打上标签*/
+ if (runPlanData[elem.serviceNumber][elem.tripNumber].length <= 1) {
+ serie.markPoint.data.push(createMartPoint({
+ directionCode: elem.directionCode,
+ coord: [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false)],
+ name: `(${elem.groupNumber})${elem.serviceNumber}${elem.directionCode}${elem.tripNumber}`,
+ color: lineStyle.color || '#000'
+ }));
+ }
+
+ /** 计算折返点*/
+ var nextPoint = [parseInt(elem.secondTime), this.getCoordYByElem(stations, kmRangeCoordMap, elem, false), elem.directionCode];
+ if (serie.data.length > 0) {
+ var lastPoint = serie.data[serie.data.length - 1];
+ if (lastPoint[2] !== nextPoint[2]) {
+ var num = this.computedReentryNumber(elem.tripNumber);
+ serie.data.push([lastPoint[0], this.getYvalueByDirectionCode(lastPoint[1], lastPoint[2], num), lastPoint[2]]);
+ serie.data.push([nextPoint[0], this.getYvalueByDirectionCode(nextPoint[1], lastPoint[2], num), lastPoint[2]]);
+ }
+ }
+
+ /** 添加车组号数据到对应的服务图数据中*/
+ serie.data.push(nextPoint);
+
+ /** 保证原始数据排序*/
+ serie.data.sort((a, b) => {
+ return parseInt(a[0]) - parseInt(b[0]);
+ });
+ }
+ });
+ });
+ }
+
+ return series;
+ },
+
+ /** 初始化Y轴*/
+ initializeYaxis(stations) {
+ return createMarkLineModels(stations, (elem) => {
+ return this.EdgeHeight + elem.kmRange * this.CoordMultiple;
+ });
+ },
+
+ /** 将后台数据转换为试图序列模型*/
+ convertStationsToMap(stations) {
+ var map = {};
+ if (stations && stations.length) {
+ stations.forEach((elem) => {
+ map[`${elem.kmRange}`] = this.EdgeHeight + elem.kmRange * this.CoordMultiple;
+ });
+ }
+
+ return map;
+ },
+
+ /** 计算y轴最小值*/
+ computedYaxisMinValue(stations) {
+ return stations[0].kmRange * this.CoordMultiple;
+ },
+
+ /** 计算y轴最大值*/
+ computedYaxisMaxValue(stations) {
+ return stations[stations.length - 1].kmRange * this.CoordMultiple + this.EdgeHeight * 2;
+ },
+
+ /** 格式化y轴数据*/
+ computedFormatYAxis(stations, params) {
+ var yText = '';
+
+ stations.forEach(elem => {
+ if (elem.kmRange < parseInt(params.value) / this.CoordMultiple - this.EdgeHeight) {
+ yText = elem.kmRange + 'm';
+ }
+ });
+
+ return yText;
+ },
+
+ /** 根据是否和上一个车次是否相交,计算下一个车次的折返的高度*/
+ computedReentryNumber(code) {
+ return parseInt(code || 1) % 2 ? 1 : 2;
+ },
+
+ /** 根据方向计算y折返偏移量*/
+ getYvalueByDirectionCode(defaultVlue, directionCode, num) {
+ if (directionCode === '1') {
+ defaultVlue -= this.EdgeHeight / 2 * num;
+ } else if (directionCode === '2') {
+ defaultVlue += this.EdgeHeight / 2 * num;
+ }
+
+ return defaultVlue;
+ },
+
+ /** 根据elem计算y值*/
+ getCoordYByElem(stations, kmRangeCoordMap, elem, directionCode, isSpecial, num) {
+ var defaultVlue = 0;
+ var station = stations.find(it => { return it.code == elem.stationCode; });
+ if (station) {
+ defaultVlue = kmRangeCoordMap[`${station.kmRange}`];
+ if (isSpecial) {
+ defaultVlue = this.getYvalueByDirectionCode(defaultVlue, directionCode, num);
+ }
+ }
+
+ return defaultVlue;
+ }
+};
diff --git a/src/jmapNew/theme/ningbo_01/planSchedule/index.vue b/src/jmapNew/theme/ningbo_01/planSchedule/index.vue
new file mode 100644
index 000000000..6fa39ed23
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/planSchedule/index.vue
@@ -0,0 +1,403 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/planSchedule/menuBar.vue b/src/jmapNew/theme/ningbo_01/planSchedule/menuBar.vue
new file mode 100644
index 000000000..e64ae3063
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/planSchedule/menuBar.vue
@@ -0,0 +1,514 @@
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/planSchedule/menuTool.vue b/src/jmapNew/theme/ningbo_01/planSchedule/menuTool.vue
new file mode 100644
index 000000000..d3ecde016
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/planSchedule/menuTool.vue
@@ -0,0 +1,172 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/planSchedule/schedule.vue b/src/jmapNew/theme/ningbo_01/planSchedule/schedule.vue
new file mode 100644
index 000000000..d212eff63
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/planSchedule/schedule.vue
@@ -0,0 +1,482 @@
+
+
+
+
+
+
diff --git a/src/jmapNew/theme/ningbo_01/planSchedule/statusBar.vue b/src/jmapNew/theme/ningbo_01/planSchedule/statusBar.vue
new file mode 100644
index 000000000..170553e15
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/planSchedule/statusBar.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/jmapNew/theme/ningbo_01/planSchedule/titleBar.vue b/src/jmapNew/theme/ningbo_01/planSchedule/titleBar.vue
new file mode 100644
index 000000000..689c3486a
--- /dev/null
+++ b/src/jmapNew/theme/ningbo_01/planSchedule/titleBar.vue
@@ -0,0 +1,75 @@
+
+
+
+
{{mapName}}
+
({{runPlanName}})
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index 99ce006c7..8b33c9d6d 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -33,6 +33,7 @@ const IbpDraw = () => import('@/views/system/ibpDraw/index');
const News = () => import('@/views/system/news/index');
const CommandDictionary = () => import('@/views/system/commandDictionary/index');
const CommandDictionaryDetail = () => import('@/views/system/commandDictionary/edit');
+const configLine = () => import('@/views/system/configLine/index');
const Mapedit = () => import('@/views/mapdraft/index');
@@ -836,6 +837,13 @@ export const asyncRouter = [
path: 'commands/Detail',
hidden: true,
component: CommandDictionaryDetail
+ },
+ { // 线路管理
+ path: 'configLine',
+ component: configLine,
+ meta: {
+ i18n: 'router.configLine'
+ }
}
]
},
diff --git a/src/scripts/GlobalPlugin.js b/src/scripts/GlobalPlugin.js
index 08bbf343f..4b84bf802 100644
--- a/src/scripts/GlobalPlugin.js
+++ b/src/scripts/GlobalPlugin.js
@@ -4,7 +4,7 @@ import DataForm from '@/components/QueryListPage/DataForm';
import TurnbackBar from '@/components/TurnbackBar';
import ConstConfig from '@/scripts/ConstConfig';
import Dictionary from '@/scripts/DictionaryData';
-import Theme from '@/jmap/theme/factory';
+import Theme from '@/jmapNew/theme/factory';
// 全局组件
Vue.component('DataForm', DataForm);
diff --git a/src/views/jlmap/index.vue b/src/views/jlmap/index.vue
index 406d39d85..1d2cd3295 100644
--- a/src/views/jlmap/index.vue
+++ b/src/views/jlmap/index.vue
@@ -23,7 +23,7 @@
import Vue from 'vue';
import localStore from 'storejs';
import Jlmap from '@/jmap/map';
-import JlmapNew from '@/jmapNew/map';
+// import JlmapNew from '@/jmapNew/map';
import ZoomBox from './zoom/zoom';
import ProgressBar from '@/views/components/progressBar/index';
import { mapGetters } from 'vuex';
diff --git a/src/views/newMap/newMapdraft/dataRelation/index.vue b/src/views/newMap/newMapdraft/dataRelation/index.vue
index 1528f1c41..be1ada1fc 100644
--- a/src/views/newMap/newMapdraft/dataRelation/index.vue
+++ b/src/views/newMap/newMapdraft/dataRelation/index.vue
@@ -109,6 +109,13 @@ export default {
showMap() {
this.$emit('showMap');
},
+ initLoad() {
+ switch (this.enabledTab) {
+ case 'route':
+ this.$refs.routeOperate.initLoad();
+ break;
+ }
+ },
createRouteEvent() {
switch (this.enabledTab) {
case 'route':
diff --git a/src/views/newMap/newMapdraft/dataRelation/routeoperate/index.vue b/src/views/newMap/newMapdraft/dataRelation/routeoperate/index.vue
index 33ace43fb..a6e1e18cb 100644
--- a/src/views/newMap/newMapdraft/dataRelation/routeoperate/index.vue
+++ b/src/views/newMap/newMapdraft/dataRelation/routeoperate/index.vue
@@ -69,9 +69,13 @@ export default {
this.$refs.routeDetail.doShow();
}
},
+ initLoad() {
+ this.$refs.routeEdit && this.$refs.routeEdit.initLoad();
+ },
createRouteEvent: function () {
if (this.$refs && this.$refs.routeEdit) {
this.$refs.routeEdit.clear();
+
}
},
setSelected(selected) {
diff --git a/src/views/newMap/newMapdraft/dataRelation/routeoperate/route.vue b/src/views/newMap/newMapdraft/dataRelation/routeoperate/route.vue
index e28089fcf..9eefa8cb4 100644
--- a/src/views/newMap/newMapdraft/dataRelation/routeoperate/route.vue
+++ b/src/views/newMap/newMapdraft/dataRelation/routeoperate/route.vue
@@ -247,7 +247,7 @@ export default {
routeCode: '',
routeType: '',
loading: false,
- // interBlockStationList:[],
+ interBlockStationList:[],
SwitchLocateTypeList: [
{ name: '定位', code: true },
{ name: '反位', code: false }
@@ -320,11 +320,6 @@ export default {
]
};
return baseRules;
- },
- interBlockStationList() { // 联锁车站列表
- return this.stationList.filter(station=>{
- return station.ciStation;
- });
}
},
watch: {
@@ -360,6 +355,11 @@ export default {
this.getRouteList();
},
methods: {
+ initLoad() { // 加载联锁车站列表
+ this.interBlockStationList = this.stationList.filter(station=>{
+ return station.ciStation;
+ });
+ },
async getRouteList() {
const response = await getRouteNewList(this.$route.params.mapId, { pageSize: 9999, pageNum: 1 });
this.routeList = response.data.list;
diff --git a/src/views/newMap/newMapdraft/index.vue b/src/views/newMap/newMapdraft/index.vue
index 6d0909275..074dfa1d9 100644
--- a/src/views/newMap/newMapdraft/index.vue
+++ b/src/views/newMap/newMapdraft/index.vue
@@ -128,6 +128,9 @@ export default {
},
selectViewDraft(data) {
this.viewDraft = data;
+ if (data != 'draft') {
+ this.$refs.dataRelation.initLoad();
+ }
},
loadInitPage() {
this.$store.dispatch('training/changeMode', { mode: TrainingMode.MAP_EDIT });
@@ -140,7 +143,8 @@ export default {
});
this.setDelayUnlockStatus(response.data, '00');
this.initAutoSaveTask();
- }).catch(() => {
+ }).catch((error) => {
+ console.log(error, '加载地图错误提示');
this.$message.error(this.$t('tip.failedLoadMap'));
this.endViewLoading();
});
diff --git a/src/views/system/configLine/config.vue b/src/views/system/configLine/config.vue
new file mode 100644
index 000000000..7a7b39d3c
--- /dev/null
+++ b/src/views/system/configLine/config.vue
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+ 操作
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/configLine/edit.vue b/src/views/system/configLine/edit.vue
new file mode 100644
index 000000000..39bc23891
--- /dev/null
+++ b/src/views/system/configLine/edit.vue
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/configLine/editConfig.vue b/src/views/system/configLine/editConfig.vue
new file mode 100644
index 000000000..d4572e27f
--- /dev/null
+++ b/src/views/system/configLine/editConfig.vue
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/configLine/index.vue b/src/views/system/configLine/index.vue
new file mode 100644
index 000000000..8d862a96f
--- /dev/null
+++ b/src/views/system/configLine/index.vue
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+
+
From 2a517c8aa5f88c15da53006f33d6d4ef6e173230 Mon Sep 17 00:00:00 2001
From: fan <18706759286@163.com>
Date: Fri, 20 Dec 2019 10:20:03 +0800
Subject: [PATCH 04/17] =?UTF-8?q?=E8=BF=9B=E8=B7=AF=E8=B0=83=E6=95=B4=20?=
=?UTF-8?q?=E5=BB=B6=E7=BB=AD=E4=BF=9D=E6=8A=A4=E7=94=9F=E6=88=90=E7=BA=BF?=
=?UTF-8?q?=E8=B7=AF=E9=81=93=E5=B2=94=E5=8F=AF=E4=B8=BA=E7=A9=BA=EF=BC=8C?=
=?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=BB=B6=E7=BB=AD=E4=BF=9D=E6=8A=A4=E5=BF=85?=
=?UTF-8?q?=E9=A1=BB=E6=9C=89=E8=A7=A3=E9=94=81=E5=8C=BA=E6=AE=B5=EF=BC=8C?=
=?UTF-8?q?=E6=97=B6=E9=97=B4=EF=BC=8C=E7=BA=BF=E8=B7=AF=EF=BC=8C=E6=9B=B4?=
=?UTF-8?q?=E6=96=B0=E6=98=AF=E8=8B=A5=E6=97=A0=E8=A7=A3=E9=94=81=E5=8C=BA?=
=?UTF-8?q?=E6=AE=B5=E5=92=8C=E7=BA=BF=E8=B7=AF=E5=88=99=E5=88=A0=E9=99=A4?=
=?UTF-8?q?=E5=BB=B6=E7=BB=AD=E4=BF=9D=E6=8A=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../dataRelation/routeoperate/detail.vue | 11 +-
.../dataRelation/routeoperate/protect.vue | 278 +++++++++---------
.../dataRelation/routeoperate/route.vue | 13 +-
3 files changed, 156 insertions(+), 146 deletions(-)
diff --git a/src/views/newMap/newMapdraft/dataRelation/routeoperate/detail.vue b/src/views/newMap/newMapdraft/dataRelation/routeoperate/detail.vue
index dbc443836..7e16c6ceb 100644
--- a/src/views/newMap/newMapdraft/dataRelation/routeoperate/detail.vue
+++ b/src/views/newMap/newMapdraft/dataRelation/routeoperate/detail.vue
@@ -121,7 +121,8 @@ export default {
buttons: [
{
name: this.$t('map.preview'),
- handleClick: this.overlapSwitchDetail
+ handleClick: this.overlapSwitchDetail,
+ showControl: (row) => { return row.overlapCode; }
}
]
},
@@ -245,7 +246,6 @@ export default {
this.$Dictionary.switchLocateType().then(list => {
this.SwitchLocateTypeList = list;
});
- this.getProtectList();
this.acquireMapList();
},
methods: {
@@ -284,7 +284,6 @@ export default {
that.$convertSpecifiedField(elem, that.signalList, 'code', 'uniqueName', ['startSignalCode', 'endSignalCode']);
that.$convertSpecifiedField(elem, that.stationList, 'code', 'name', ['stationCode']);
that.$convertSpecifiedField(elem, that.sectionList, 'code', 'name', ['nearSectionCode', 'autoTriggerSectionCode', 'turnBackSectionCode']);
- that.$convertSpecifiedField(elem, that.ContinueProtectList, 'code', 'name', ['overlapCode']);
});
}
}
@@ -469,12 +468,6 @@ export default {
selectedObj(index, row) {
this.$emit('setRouteCode', row, this.codeType);
this.show = false;
- },
- // 获取延续保护list
- getProtectList() {
- getContinueProtectList(this.$route.params.mapId, {pageSize:9999, pageNum:1}).then((resp) => {
- this.ContinueProtectList = resp.data.list;
- });
}
}
};
diff --git a/src/views/newMap/newMapdraft/dataRelation/routeoperate/protect.vue b/src/views/newMap/newMapdraft/dataRelation/routeoperate/protect.vue
index 555755e60..fe740aa49 100644
--- a/src/views/newMap/newMapdraft/dataRelation/routeoperate/protect.vue
+++ b/src/views/newMap/newMapdraft/dataRelation/routeoperate/protect.vue
@@ -1,10 +1,62 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+ {{ $t('map.activate') }}
+
+
+
+
+
+
+
+
+
+
+ 移出
+
+
+ 编辑
+
+
+
+
+
+
+
+
+
+ {{ cardTitle }}
+ 生成
+
+ 修改
+ 取消
+
+
+
+
+
+
{{ $t('map.activate') }}
-
-
-
-
-
-
-
+
+
+
+
+ {{ $t('map.activate') }}
+ {{ $t('map.add') }}
+
+
+
+
+
+
+
+ {{ swictchName(scope.row.switchCode) }}
+
+
+
+
- 移出
-
-
- 编辑
+ {{ $t('map.remove') }}
-
-
-
-
- {{ cardTitle }}
- 生成
-
- 修改
- 取消
-
-
-
-
-
-
-
-
- {{ $t('map.activate') }}
-
-
-
-
-
- {{ $t('map.activate') }}
- {{ $t('map.add') }}
-
-
-
-
-
-
-
- {{ swictchName(scope.row.switchCode) }}
-
-
-
-
-
-
- {{ $t('map.remove') }}
-
-
-
-
-
-
-
-
-
+
+
+
+
diff --git a/src/views/jlmap/index.vue b/src/views/jlmap/index.vue
index 1d2cd3295..a8054c892 100644
--- a/src/views/jlmap/index.vue
+++ b/src/views/jlmap/index.vue
@@ -79,9 +79,10 @@ export default {
try {
if (val) {
this.setMap(val);
- } else {
- this.mapViewLoaded(false);
}
+ // else {
+ // this.mapViewLoaded(false);
+ // }
} catch (error) {
console.log('[ERROR] ', error);
this.mapViewLoaded(false);
diff --git a/src/views/newMap/jlmapNew/index.vue b/src/views/newMap/jlmapNew/index.vue
index 5344121fc..e52568172 100644
--- a/src/views/newMap/jlmapNew/index.vue
+++ b/src/views/newMap/jlmapNew/index.vue
@@ -91,9 +91,10 @@ export default {
try {
if (val) {
this.setMap(val);
- } else {
- this.mapViewLoaded(false);
}
+ // } else {
+ // this.mapViewLoaded(false);
+ // }
} catch (error) {
console.log('[ERROR] ', error);
this.mapViewLoaded(false);