This commit is contained in:
sunzhenyu 2020-12-18 15:26:12 +08:00
commit ad462cfc70
28 changed files with 969 additions and 71 deletions

View File

@ -11,7 +11,8 @@ const mapDeviceStyle = {
'10': 'xian_01', // 西安一号线 '10': 'xian_01', // 西安一号线
'11': 'xian_01', // 西安三号线 '11': 'xian_01', // 西安三号线
'12': 'ningbo_03', // 宁波三号线 '12': 'ningbo_03', // 宁波三号线
'13': 'race_01' // 2020国赛线路 '13': 'race_01', // 2020国赛线路
'14':'nanjing_02' // 南京二号线
}; };
export function selectLineCode(code) { export function selectLineCode(code) {

View File

@ -133,7 +133,8 @@ class SkinCode extends defaultStyle {
standardLength: 6, // 高柱长度 standardLength: 6, // 高柱长度
standardHeight: 6, // 灯柱高度 standardHeight: 6, // 灯柱高度
standardColor: '#5578B6', // 灯灯柱颜色 standardColor: '#5578B6', // 灯灯柱颜色
standardWidth: 1.5 // 灯柱宽度 standardVerticalWidth: 1.5, // 灯柱竖杆宽度
standardRailWidth: 1.5 // 灯柱横杆宽度
}, },
text: { text: {
show: true, // 信号机名称显示 show: true, // 信号机名称显示

View File

@ -141,7 +141,8 @@ class SkinCode extends defaultStyle {
standardLength: 6, // 高柱长度 standardLength: 6, // 高柱长度
standardHeight: 6, // 灯柱高度 standardHeight: 6, // 灯柱高度
standardColor: '#C0C0C0', // 灯柱颜色 standardColor: '#C0C0C0', // 灯柱颜色
standardWidth: 2 // 灯柱宽度 standardVerticalWidth: 2, // 灯柱竖杆宽度
standardRailWidth: 2 // 灯柱横杆宽度
}, },
text: { text: {
show: true, // 信号机名称显示 show: true, // 信号机名称显示

View File

@ -147,7 +147,8 @@ class SkinCode extends defaultStyle {
standardLength: 6, // 高柱长度 standardLength: 6, // 高柱长度
standardHeight: 6, // 灯柱高度 standardHeight: 6, // 灯柱高度
standardColor: '#FFFFFF', // 灯柱颜色 standardColor: '#FFFFFF', // 灯柱颜色
standardWidth: 2 // 灯柱宽度 standardVerticalWidth: 2, // 灯柱竖杆宽度
standardRailWidth: 2 // 灯柱横杆宽度
}, },
text: { text: {
show: true, // 信号机名称显示 show: true, // 信号机名称显示

View File

@ -125,7 +125,8 @@ class SkinCode extends defaultStyle {
standardLength: 6, // 高柱长度 standardLength: 6, // 高柱长度
standardHeight: 6, // 灯柱高度 standardHeight: 6, // 灯柱高度
standardColor: '#3149C3', // 灯珠颜色 standardColor: '#3149C3', // 灯珠颜色
standardWidth: 2 // 灯珠宽度 standardVerticalWidth: 2, // 灯柱竖杆宽度
standardRailWidth: 2 // 灯柱横杆宽度
}, },
text: { text: {
show: true, // 信号机名称显示 show: true, // 信号机名称显示

View File

@ -125,7 +125,8 @@ class SkinCode extends defaultStyle {
standardLength: 6, // 高柱长度 standardLength: 6, // 高柱长度
standardHeight: 6, // 灯柱高度 standardHeight: 6, // 灯柱高度
standardColor: '#3149C3', // 灯珠颜色 standardColor: '#3149C3', // 灯珠颜色
standardWidth: 2 // 灯珠宽度 standardVerticalWidth: 2, // 灯柱竖杆宽度
standardRailWidth: 2 // 灯柱横杆宽度
}, },
text: { text: {
show: true, // 信号机名称显示 show: true, // 信号机名称显示

View File

@ -148,7 +148,8 @@ class SkinCode extends defaultStyle {
standardLength: 4, // 高柱长度 standardLength: 4, // 高柱长度
standardHeight: 5, // 灯柱高度 standardHeight: 5, // 灯柱高度
standardColor: '#FF0000', // 灯柱颜色 standardColor: '#FF0000', // 灯柱颜色
standardWidth: 4 // 灯柱宽度 standardVerticalWidth: 4, // 灯柱竖杆宽度
standardRailWidth: 4 // 灯柱横杆宽度
}, },
text: { text: {
show: true, // 信号机名称显示 show: true, // 信号机名称显示

View File

@ -0,0 +1,832 @@
import defaultStyle from '../defaultStyle';
import deviceType from '../../constant/deviceType';
class SkinCode extends defaultStyle {
constructor() {
super();
this.fontFamily = '宋体';
this[deviceType.Section] = {
elemnetType:['name', 'logicText', 'standTrackText', 'reentryTrackText', 'transferTrackText', 'line', 'lineBorder', 'sectionBlock', 'speedLimitName'],
active: {
routeColor: false // 进路触发颜色
},
name: {
z: 10,
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
distance: 18, // 文字离区段距离
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
fontColor: '#FFFFFF', // 字体颜色
textAlign: 'center', // 水平对齐方式
textPosition: 'inside', // 文字位置
textVerticalAlign: 'middle', // 文字垂直对齐方式
approachColor: '#FFFFFF'
},
logicText: {
z: 10,
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
distance: 6, // 文字离区段距离
fontSize: 8, // 字体大小
fontWeight: 'normal', // 字体粗细
fontColor: '#FFFFFF', // 字体颜色
textAlign: 'center', // 水平对齐方式
textPosition: 'inside', // 文字位置
textVerticalAlign: 'middle' // 文字垂直对齐方式
},
standTrackText: {
z: 10,
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
distance: 30, // 文字离区段距离
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
fontColor: '#FFFFFF', // 字体颜色
textAlign: 'center', // 水平对齐方式
textPosition: 'inside', // 文字位置
textVerticalAlign: 'middle' // 文字垂直对齐方式
},
reentryTrackText: {
z: 10,
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
distance: 30, // 文字离区段距离
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
fontColor: '#FFFFFF', // 字体颜色
textAlign: 'center', // 水平对齐方式
textPosition: 'inside', // 文字位置
textVerticalAlign: 'middle' // 文字垂直对齐方式
},
transferTrackText: {
z: 10,
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
distance: 28, // 文字离区段距离
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
fontColor: '#FFFFFF', // 字体颜色
textAlign: 'center', // 水平对齐方式
textPosition: 'inside', // 文字位置
textVerticalAlign: 'middle' // 文字垂直对齐方式
},
destinationText: {
z: 10,
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
distance: 10, // 文字离区段距离
fontSize: 10, // 字体大小
fontWeight: 'bold', // 字体粗细
fontColor: 'yellow', // 字体颜色
textAlign: 'center', // 水平对齐方式
textPosition: 'inside', // 文字位置
textVerticalAlign: 'middle' // 文字垂直对齐方式
},
line: {
z: 0,
width: 5, // 区段宽度
beyondWidth: 0, // 区段宽超出宽度
invadeColor: '#EF0C08', // 区段侵入颜色
spareColor: '#ffff00', // 区段空闲颜色 (黄色)
communicationOccupiedColor: '#ff0000', // 区段通信车占用颜色 红色
unCommunicationOccupiedColor: '#ff0000', // 区段非通讯车占用颜色 红色
routeLockColor: '#00FF00', // 区段路由锁定颜色
faultLockColor: '#9B4A0A', // 区段故障锁定颜色
invalidColor: '#ff0000', // 计轴故障
undefinedColor: '#0071C1', // 区段未定义颜色
protectionLockedColor: '#FEFF00', // 保护区段锁闭(未用)
blockColor: '#000080', // 区段封锁颜色 深蓝色
atcExcisionColor: '#A0522D', // 区段atc切除颜色
atsExcisionColor: '#A0522D', // 区段ats切除颜色
timeReleaseColor: '#ffff00', // 区段延时释放颜色
protectiveLockColor: '#FFFF00', // 区段保护锁闭
protectiveTimeReleaseColor: '#0071C1', // 区段保护延时解锁
logicalColor: '#FFFF00', // 逻辑区段颜色 (未用)
logicalTextColor: '#FFFFFF' // 逻辑区段名称颜色 (未用)
},
lineBorder: { // 哈尔滨点击背景 元素
z: -1,
activeStroke: '#2EBFBF'
},
sectionBlock: {
z: 2
}, // 计轴
speedLimit: { // 限速元素
z: 2,
width: 1, // 限速线的宽短
distance: 5, // 限速线距离区段距离
lineColor: '#FFFF00', // 限速线颜色
nameShow: false // 名称显示
},
speedLimitName: {
z: 10,
leftName: true, // 左侧限速值是否展示
rightName: false, // 右侧限速值是否展示
nameBackgroundIsRect: true, // 限速值背景是否为矩形
nameBackgroundBorderWidth: 1, // 限速值背景是否边框宽度
nameBackgroundBorderColor: '#C00808', // 限速值背景边框颜色
limitValueDistance: 18,
kilometerFontSize: 0, // 公里标大小
nameNumberFontSize: 11, // 限速值大小
nameNumberColor: '#C00808', // 限速值颜色
nameBackground: '#000', // 限速名称背景颜色
drogueWidth: 15, // 浮标宽度
drogueHeight: 12 // 浮标高度
},
separator: {
z: 3, // 分割符层级
width: 1.2, // 分隔符宽度
endWidth: 3.5, // 尽头分隔符宽度
endColor: '#3F3F3F', // 尽头分隔符颜色
color: '#3149C3', // 区段边界符颜色
halfHeight: 5 // 区段分隔符高度的一半
},
trainPosition:{
display: false // 列车实时位置显示
}
};
this[deviceType.Signal] = {
distance: 10, // 设备距离区段的距离
post: {
standardShow: true, // 灯柱显示
standardVerticalShape: '8', // 灯柱 竖杆 8边型
standardLength: 12, // 高柱长度
standardHeight: 5, // 灯柱高度
standardColor: '#FF0000', // 灯柱颜色
standardVerticalWidth: 1, // 灯柱竖杆宽度
standardRailWidth: 6 // 灯柱横杆宽度
},
text: {
show: true, // 信号机名称显示
distance: 4, // 文字和灯杆的距离
isAlignCenter: true, // 信号字体对其方式
fontSize: 11, // 信号机名称字体大小
fontWeight: 'bold', // 信号机名称字体粗细
defaultColor: '#00CE00', // 信号灯字体默认色
blockColor: '#ffffff', // 信号灯字体锁定颜色
checkColor: '#00FF00', // 信号字体
ArtificialRouteColor: '#FFFFFF', // ATS关自排 设定颜色
AutoRouteColor: '#D8D800', // 联锁自动进路颜色
nameBorderShow: false // 信号机名字边框显示
},
lamp: {
bgShow: true, // 是否被选中
logicDisplayNone: true, // 逻辑点灯斜线不显示
guidName: 'doubleAndBase', // 默认引导类型
stopWidth: 2, // 禁止线宽度
borderWidth: 0, // 信号灯边框线宽度
borderColor: '#FF0000', // 信号灯边框线颜色 (虚拟信号机)
radiusR: 4, // 信号灯半径
blockColor: '#EF0C08', // 信号灯锁闭
grayColor: '#7F7F7F', // 信号灯灰色
redColor: '#FF0000', // 信号灯红色
greenColor: '#00FF00', // 信号灯绿色
yellowColor: '#FFFF00', // 信号灯黄色
whiteColor: '#FFFFFF', // 信号灯白色
blueColor: '#000080' // 信号灯蓝色
},
route: {
direction: false, // 自动进路方向
offset: { x: -4, y: 0 }, // 自动进路偏移量
routeColor: '#00FF00' // 自动进路
},
auto: {
signalFrontTriangle: false, // 信号灯前三角展示
direction: false, // 自动通过方向
offset: { x: -4, y: 0 }, // 自动通过偏移量
width: 5, // 自动宽度
autoRoute: '#00FF00', // 自动进路
autoTrigger: '#FFFF00', // 自动触发
autoTriggerType:'text', // 自动触发类型 text 为哈尔滨线路的类型(只更改信号机名称的颜色)
autoRouteType:'text', // 自动进路类型 text 为哈尔滨线路的类型(只更改信号机名称的颜色)
manualControl: '#FFFF00', // 人工控制
outConflict: '#C00808' // 出车冲突
},
delay: {
direction: true, // 延时解锁方向
offset: { x: 15, y: -10 }, // 延时解锁偏移量
fontSize: 11, // 延迟解锁字体大小
fontColor: '#FF0000', // 延迟解锁颜色
fontWeight: 'bold' // 字体粗细
},
button: {
distance: 5, // 信号灯按钮距离区段的距离
borderDashColor: '#FFFFFF', // 信号灯按钮边线
buttonColor: 'darkgreen', // 信号灯按钮颜色
buttonLightenColor: '#E4EF50' // 信号灯按钮闪烁颜色
},
lowButton:{
display: false // 现地 信号机按钮
}
};
// 屏蔽门
this[deviceType.Psd] = {
// 西安一/三号线 屏蔽门
elemnetType:['horizontal2Door'],
horizontal2Door: { // 屏蔽门
z:0,
height: 3, // 站台屏蔽门高度
width: 60,
distance: 8, // 站台和屏蔽门之间的距离
defaultColor: '#fff', // 屏蔽门默认颜色
splitDoorColor: '#F61107' // 屏蔽门切除颜色
}
};
this[deviceType.StationStand] = {
// 哈尔滨一号线站台元素 站台 站台紧急关闭 扣车元素 停站时间 运行等级 跳停
elemnetType:['gapStand', 'emergentArrow', 'detainNormal', 'level', 'jump', 'trainStop', 'trainDepart', 'trainSetButton'],
// 站台
gapStand:{
// 层级
z:0,
spareColor: '#00FFFF', // 站台空闲颜色
jumpStopColor: '#9A99FF', // 站台跳停颜色
designatedJumpStopColor: 'lightSkyBlue', // 站台指定列车跳停颜色
headFontSize: 11, // 站台首端字体大小
stopColor: '#FEFE00', // 站台列车停站颜色
textFill: '#fff' // 站台字体颜色
},
// 站台紧急关闭
emergentArrow:{
z:1,
special:false,
mergentR: 4, // 站台紧急关闭半径
mergentN: 4, // 站台紧急关闭边数
insideOffset: { x: -10, y: -20 }, // 内站台紧急关闭偏移量
outsideOffset: { x: -10, y: -10}, // 外站台紧急关闭偏移量
closeColor: '#F61107', // 站台紧急关闭颜色
width: 4,
radiusR: 6
},
// 扣车元素 普通扣车
detainNormal:{
z:0,
position: 1, // 扣车标识在站台上显示方向
text: 'H', // 扣车显示内容
insideOffset: { x: 60, y: -18 }, // 内站台扣车偏移量
outsideOffset: { x: 60, y: 25 }, // 外站台扣车偏移量
centerTrainColor: '#F61107', // 中心扣车颜色
andCenterTrainColor: '#F61107', // 车站+中心扣车颜色
detainTrainTextColor: '#E4EF50', // 车站扣除文字颜色
fontSize: 18, // 字体大小
fontWeight: 'bolder',
textVerticalAlign: 'middle' // 车站扣车 文字垂直对齐方式
},
// 运行等级
level:{
z:1,
textFontSize: 11, // 运行等级字体大小
position: 1, // 运行等级方向
offset: { x: -8, y: 6 }, // 运行等级偏移量
textColor: '#FFFFFF' // 停站等级字体颜色
},
// 跳停
jump: {
z:1,
position: 1, // 停跳方向
text: 'S', // 停跳显示内容
offset: { x: 20, y: 21 },
textColor: '#00FF00', // 停跳文字颜色
fontWeight: 'bold', // 文字居中
fontSize: 18 // 文字大小
},
// 列车停站
trainStop: { // 停车标志
z:1,
fillColor: '#FF0000',
insideOffset:{ x: 6, y: -22}, // 内站台停车标志偏移量
outsideOffset: { x: -6, y: 22}, // 外站台停车标志偏移量
radiusR: 4 // 标志半径
},
// 停车计时
trainDepart:{ // 停车计时
z:1,
insideOffset:{ x: 25, y: -21}, // 内站台停车计时偏移量
outsideOffset: { x: -25, y: -11}, // 外站台停车计时偏移量
textFill: '#00FF00', // 文字颜色
textBorderColor: '#00FF00', // 文字边框颜色
fontSize: 10 // 字体大小
},
// 站台 扣车/取消扣车,越站/取消越站 设置按钮
trainSetButton:{
z:1,
offset: { x: 80, y:10}, // 按钮偏移
textFontSize: 13, // 按钮字体大小
textColor:'#00FF00'
},
common: { // 通用属性
bgShow: true, // 是否被选中
textFontSize: 11, // 站台默认字体大小
functionButtonShow: '03' // 功能灯按钮显示条件01所有模式下显示 02 行调显示 03现地显示
},
lamp: {
radiusR: 6, // 控制灯大小
lampColor: '#5A5D5A' // 功能按钮颜色
},
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
}
// reentry: {}, // 站台折返策略
// stopTime: {}, // 停站时间
};
this[deviceType.StationCounter] = {
text: {
distance: 2, // 计数器名称和文字的距离
fontColor: '#FFFFFF', // 计数器字体颜色
borderColor: '#E4EF50' // 计数器边框颜色
}
};
this[deviceType.StationDelayUnlock] = {
text: {
distance: 3, // 延迟解锁和设备之间的距离
fontColor: '#FFFFFF', // 延时解锁字体颜色
borderColor: '#FFFFFF' // 延迟解锁边框颜色
}
};
this[deviceType.AutoTurnBack] = {
// 是否显示
visibleConditions: '03',
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
subtitleText: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 17 // 等于副标题距离
},
lamp: {
lineDash: null, // 灯的包围框
borderShow: false, // 是否显示边框
stroke: '#FFFFFF', // 框的颜色
fill: 'rgba(0,0,0,0)', // 填充色
radiusR: 6, // 控制灯大小
controlColor: '#b5b3b3', // 控制灯颜色 (灰色)
lightUpColor: '#ffff00' // 点亮灯颜色
},
OutFrame: {
}
};
/** 引导总锁 */
this[deviceType.GuideLock] = {
// 是否显示
displayCondition: '03', // 显示条件 prdType
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
fill: 'rgba(0,0,0,0)', // 填充色
radiusR: 6, // 控制灯大小
controlColor: '#b5b3b3', // 控制灯颜色 (灰色)
lightUpColor: '#FF0000' // 点亮灯颜色
}
};
this[deviceType.Station] = {
// 哈尔滨一号线 车站元素 车站名称
elemnetType:['stationText'],
stationText:{
z:0,
fontWeight:'normal', // 字体粗细
textPadding:[2, 6], // 字体边距
borderColor:'', // 字体边框颜色
textBorderWidth:1 // 字体边框宽度
},
kmPostShow: true, // 公里标显示
kilometerPosition: 'up', // 公里标朝向
text: {
borderShow: true, // 车站包围框显示
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 控制灯大小
controlColor: '#FFFF00' // 控制灯颜色
},
turnBack: { // 按图折返
lamp: 1, // 灯数量
lampSpace: 60 // 灯间距
},
StationControl: {
disPlayNone: true, // 不显示
text: {
distance: 2, // 灯和文字之间的距离
fontSize: 11, // 字体大小
fontFormat: 'consolas', // 字体格式
fontColor: '#ffffff', // 字体颜色
fontWeight: 'normal', // 字体粗细
textAlign: 'middle', // 字体水平对齐
textVerticalAlign: 'top' // 字体垂直对齐
},
lamp: {
count: 2, // 控制模式灯个数
offset: { x: 0, y: 0 }, // 控制模式灯偏移量
emergencyOffset: {x: 0, y: 0},
radiusR: 4, // 控制模式灯的半径
distance: 36, // 控制模式之间灯之间的距离
grayColor: '#7F7F7F', // 控制模式灰色
greenColor: '#00FF00', // 控制模式绿色
redColor: '#FF0000', // 控制模式红色
yellowColor: '#FFFF00' // 控制模式黄色
},
emergencyControl: { // 紧急站控
show: false,
offset: { x: 0, y: 0 },
text: '紧急',
arrowShow: false,
grayColor: '#7F7F7F'
},
centerControl: { // 中控
show: true,
offset: { x: 0, y: 0 },
text: '中控',
buttonShow: false,
arrowShow: false,
grayColor: '#7F7F7F'
},
substationControl: { // 站控按钮
show: true,
offset: { x: 0, y: 0 },
text: '站控',
arrowShow: true,
grayColor: '#7F7F7F'
},
interconnectedControl: { // 联锁控
show: false,
offset: { x: 0, y: 0 },
text: '联锁控',
arrowShow: false,
grayColor: '#7F7F7F'
},
mouseOverStyle: { // 鼠标悬浮样式
fontSize: null,
fontFormat: 'consolas',
fontColor: '#000',
fontWeight: 'normal',
textAlign: 'middle',
textVerticalAlign: 'top'
}
}
};
// 供电线路
this[deviceType.Power] = {
noElectricStrokeColor:'#808080', // 无电颜色
defaultStrokeColor: '#F00', // 线条颜色
extendLength: 10 // 延伸长度
};
// 延续保护计时
this[deviceType.OverAp] = {
show: false
};
this[deviceType.Switch] = {
text: {
show: true, // 道岔名称显示
position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
offset: { x: 0, y: 8 }, // 道岔名称与区段距离
fontSize: 11, // 字体大小
fontColor: '#fff', // 道岔名称颜色
fontWeight: 'bold', // 字体粗细
borderColor: 'red', // 道岔边框颜色
lossColor: '#FFFFFF', // 道岔失去颜色
locateColor: '#fff', // 道岔定位颜色
inversionColor: '#fff', // 道岔反位颜色
monolock: true, // 名称单锁显示包围框
monolockLocationColor: '#fff', // 道岔单锁'定位'颜色
monolockInversionColor: '#fff', // 道岔单锁'反位'颜色
faultFlashing: true // 故障闪烁
},
sectionAction: {
flag: true, // 道岔 关联区段显示
spareColor: '#5b5b5b' // 区段显示颜色 (灰色)
},
core: {
splice: true, // 哈尔滨特殊显示
length: 6 // 道岔单边长度
},
trapezoid: { // 直角梯形元素
length: 16, // 默认长度
block: true // 封锁显示
},
jointImg: { // 道岔 A B C D四元素属性配置
trapezoidLength: 8, // 直角梯形元素默认长度
trapezoidBlock: true, // 梯形封锁显示
fork: true, // 挤岔专用(如有挤岔操作 变为true
forKColor: 'red' // 挤岔颜色 配合挤岔专用
},
arcBlcok: { // 圆形封锁图形
show: false, // 显示
arcBorderColor: 'green', // 默认边框颜色
locationColor: 'green', // 定位封锁颜色
inversionColor: '#FFFF00' // 反位封锁颜色
},
rectLock: { // 矩形封锁框图形
rectWidth: 18, // 矩形框 宽高
rectBorderColor: 'red', // 矩形边框颜色
monolock: false, // 单锁显示
block: false // 封锁显示
}
};
this[deviceType.Line] = {
lineColor: '#FFFFFF' // 线条颜色
};
this[deviceType.LcControl] = {
text: {
fontSize: 10, // 灯字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 灯大小
controlColor: '#FFFF00' // 灯颜色
},
mouseOverStyle: {
fontSize: 10,
fontFormat: 'consolas',
fontColor: '#FFF000',
fontWeight: 'normal',
textAlign: 'middle',
textVerticalAlign: 'top',
arcColor: '#00FFFF',
textColor: '#000000'
}
};
this[deviceType.ZcControl] = {
text: {
fontSize: 10, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 灯大小
controlColor: '#00FF00' // 灯颜色
},
mouseOverStyle: {
fontSize: 10,
fontFormat: 'consolas',
fontColor: '#FFF000',
fontWeight: 'normal',
textAlign: 'middle',
textVerticalAlign: 'top',
arcColor: '#00FFFF',
textColor: '#000000'
}
};
this[deviceType.LimitControl] = {
text: {
fontSize: 10, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
radiusR: 6, // 灯大小
controlColor: '#ECE9D8' // 灯颜色
},
mouseOverStyle: {
fontSize: 10,
fontFormat: 'consolas',
fontColor: '#FFF000',
fontWeight: 'normal',
textAlign: 'middle',
textVerticalAlign: 'top',
textColor: '#000000',
arcColor: '#00FFFF'
}
};
this[deviceType.AutomaticRoute] = {
// 是否显示
displayCondition: '03',
text: {
fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细
distance: 5 // 灯跟文字距离
},
lamp: {
fill: 'rgba(0,0,0,0)', // 填充色
radiusR: 6, // 控制灯大小
controlColor: '#b5b3b3' // 控制灯颜色 (灰色)
}
};
this[deviceType.TrainWindow] = {
lineColor: '#4DD43F', // 车次窗颜色
lineDash: null, // 车次窗虚线间隔
lineWidth: 1, // 车次窗线宽
trainWindowSmooth: 0, // 车次窗矩形圆滑程度
show: true // 车次窗是否显示
};
this[deviceType.SplitStation] = {
lineLength: 15, // 箭头线长度
lineWidth: 2, // 线宽
height: 35, // 分隔整体高度
strokeColor: '#00FF00', // 线颜色
triangleFillColor: '#00FF00', // 三角填充颜色
textFill: '#FFFFFF', // 文字颜色
verticalDistance: 10, // 箭头三角垂直高度
horizontalDistance: 7// 箭头三角水平高度
};
this[deviceType.Train] = {
trainBody: {
fontFamily: 'consolas',
trainBodyLineWidth: 2, // 车身line宽
changeTrainWidth: false, // 是否根据车身上车组号、服务号、车次号、目的地码显示情况改变列车长度
specialTrainType: [
{
type: '03',
serviceNumber: 'MM',
nameFormat: 'tripNumber:serviceNumber:groupNumber'
},
{
type: '02',
nameFormat: 'tripNumber:serviceNumber:groupNumber'
}
], // 特殊列车类型需设置显示格式
lrPadding: 1, // 两边间隔
upPadding: 1, // 上边距离
trainBodyFillColor: '#000000', // 列车车身填充颜色
trainSidelineColor: '#FFFF00',
trainNameFormat: 'tripNumber:serviceNumber:groupNumber'// 列车显示格式
},
soonerOrLater: {
level: 5,
earlyColor: '#00FF00',
severeEarlyColor: '#0000FF',
lateColor: '#FF00FF',
severeLateColor: '#FF0000',
normalColor: '#DADA00'
},
directionArrow: {
},
hsda: {
lrPaddingHSDA: 3, // HSDA两边间隔
upPaddingHSDA: 20, // HSDA上边距离
trainHSDATextFontSize: 8, // 列车HDSA字号
textHContent: '扣', // textH文本
textSContent: '跳', // textS文本
textDContent: '门', // textD文本
textAContent: '警' // textA文本
},
trainAtrStatus: {
trainAtrStatusOffset: { x: 74, y: 8},
r: 5
},
travelSigns: {
trainTravelLeftSignsOffset: { x:3, y: 3},
trainTravelRightSignsOffset: { x: 62, y: 3}
},
delayTime: {
trainDelayTimeOffset: { x:5, y: 14}
},
crewNum: {
trainCrewNumOffset: { x:50, y: 25}
},
travelNum: {
trainTravelNumOffset: { x:9, y:3}
},
trainNumber: {
targetCodePrefix: '000', // 目的地码前缀
defaultTargetCode: 'AAA', // 默认目的地码
trainTargetTextAlign: 'left', // 车次号文字显示位置
trainNumberOffset: { x: 48, y: 3 }// 目的地码偏移量
},
trainServer: {
serviceNumberPrefix: '000', // 服务号(表号)前缀
defaultServiceNumber: 'BBB', // 默认服务号(表号)
trainServerOffset: { x: 33, y: 3 }, // 列车服务号偏移
fontColor: '#00C300'
},
trainTarget: {
tripNumberPrefix: '00', // 车次号前缀
defaultDirectionCode: '', // 默认车次号1
defaultTripNumber: 'CC', // 默认车次号2
trainTargetOffset: { x: 53, y: 3 }, // 列车车次号偏移
fontColor: '#00C300'
},
trainTargetNumber: {
groupNumberPrefix: '000', // 车组号前缀
defaultGroupNumber: 'EEE', // 默认车组号
trainTargetNumberOffset: { x: 5, y: 25 }// 车组号偏移量
},
trainHead: {
trainHeadRectHeight: 15, // 列车车头矩形高度
trainConntWidth: 0, // 列车竖杠的宽度
trainHeadFillColor: '#EF0C08', // 列车车头矩形填充颜色
directionStopType:'normal', // special 西安二号线 停车 列车方向图标不消失 normal 正常
trainHeadHeight: 'trainBox', // 列车车头高度取决于trainBox高度
trainHeadArrowWidth: 5, // 列车车头三角宽度
trainHeadArrowOffsetX: 2 // 列车车头三角偏移
},
common: {
hasTravelSigns: true, // 是否有行进标志
hasAtrStatus: true, // 是否有atr状态
hasDelayTime: true, // 是否有延迟时间
hasCrewNum: true, // 是否有乘务组号
hasTravelNum: true, // 是否有行程号
fixedCoordinates: true, // 列车车组号等固定坐标
trainHeight: 40, // 列车高度
trainHeadDistance: 2, // 列车和车头之间的间距
trainWidth: 82, // 列车长度
trainTextFontSize: 12, // 列车字号
fontFamily: 'consolas', // 默认字体 族类
haveTextHSDA: false, // 是否需创建textHSDA对象
haveArrowText: true, // 是否需创建arrowText对象
textOffset: 1, // 字体偏移(用以控制字体据车头的距离)
trainWidthMoreText: 2, // 计算列车长度时--列车长比text多出尺寸
trainTip:true // 鼠标悬停列车状态信息框是否显示
},
trainStatusStyle: {
defaultDestinationColor: '#FFFF00', // 默认目的地状态显示颜色
destinationStatus: [
{ status: '01', showColor: '#FFFF00' },
{ status: '02', showColor: '#00FF00' },
{ status: '03', showColor: '#3265FF' },
{ status: '04', showColor: '#FF14E9' },
{ status: '05', showColor: '#FF0000' },
{ status: '06', showColor: '#FFFFFF' },
{ status: '07', showColor: '#FFFF00' }
], // 目的地状态 01准点 02早点 03严重早点 04晚点 05严重晚点 06头码车 07ATP切除
destinationStatusSetText: 'trainServer', // 目的地状态设置的对应哪个text的颜色
directionType: [
{
type: 1,
lineLShow: false,
lineRShow: false,
arrowLShow: false,
arrowRShow: false
},
{
type: 0,
lineLShow: false,
lineRShow: false,
arrowLShow: false,
arrowRShow: false
}
], // 运行方向状态类型对应车头显示状态 1从左往右 0从右往左
directionStopType: [
{ type: 1, lineLShow: false, lineRShow: false },
{ type: 0, lineLShow: false, lineRShow: false }
], // 列车停止方向类型对应车头显示状态 1从左往右 0从右往左
driveModeStatus: [
{
status: 'AM',
trainLColor: '#00FF00',
trainRColor: '#00FF00'
},
{
status: 'CM',
trainLColor: '#FFFF00',
trainRColor: '#FFFF00'
},
{
status: 'RM',
trainLColor: '#EA700D',
trainRColor: '#EA700D'
},
{
status: 'NRM',
trainLColor: '#A0522D',
trainRColor: '#A0522D'
}
], // 列车运行模式对应车头颜色 ATO自动驾驶模式AM ATP监控下的人工驾驶模式CM 限制人工驾驶模式RM 非限制人工驾驶模式NRM
runControlStatus: [], // 设置运行控制状态类型 eg:{status: '01', hShow: false, sShow: false}
doorStatus: [], // 设置车门状态类型
communicationStatus: [
{status: 'CBTC', trainColor: '#000000'},
{status: 'ITC', trainColor: '#C0C0C0'},
{status: 'IL', trainColor: '#C0C0C0'}
], // 设置通信状态
alarmStatus: [], // 设置报警状态 eg:{status: '01', aShow: false}
serverNoType: []// 服务号状态类型 eg:{type: '01', showColor: '#FFFFFF'}
}
};
this[deviceType.FloodGate] = {};
this[deviceType.DirectionRod] = {
displayCondition: '01', // 显示条件 01所有模式下显示 02 行调显示 03现地显示
fillColor: '#0F0',
fontColor: '#FFF',
rodLength: 90,
rodHeight: 10,
triangleLength: 25,
triangleHeight: 20,
fontSize: 14,
fontOffsetX: 45,
fontOffsetY: 24
};
}
}
export default new SkinCode();

View File

@ -128,7 +128,8 @@ class SkinCode extends defaultStyle {
standardLength: 6, // 高柱长度 standardLength: 6, // 高柱长度
standardHeight: 6, // 灯柱高度 standardHeight: 6, // 灯柱高度
standardColor: '#C0C0C0', // 灯柱颜色 standardColor: '#C0C0C0', // 灯柱颜色
standardWidth: 2 // 灯柱宽度 standardVerticalWidth: 2, // 灯柱竖杆宽度
standardRailWidth: 2 // 灯柱横杆宽度
}, },
text: { text: {
show: true, // 信号机名称显示 show: true, // 信号机名称显示

View File

@ -164,7 +164,8 @@ class SkinCode extends defaultStyle {
standardHeight: 6, // 灯柱高度 standardHeight: 6, // 灯柱高度
standardColor: '#000000', // 灯柱颜色 standardColor: '#000000', // 灯柱颜色
physicColor:'#c0c0c0', // 物理点灯灯柱颜色 physicColor:'#c0c0c0', // 物理点灯灯柱颜色
standardWidth: 2 // 灯柱宽度 standardVerticalWidth: 2, // 灯柱竖杆宽度
standardRailWidth: 2 // 灯柱横杆宽度
}, },
text: { text: {
show: true, // 信号机名称显示 show: true, // 信号机名称显示

View File

@ -150,7 +150,8 @@ class SkinCode extends defaultStyle {
standardLength: 6, // 高柱长度 standardLength: 6, // 高柱长度
standardHeight: 6, // 灯柱高度 standardHeight: 6, // 灯柱高度
standardColor: '#969696', // 灯灯柱颜色 standardColor: '#969696', // 灯灯柱颜色
standardWidth: 3 // 灯柱宽度 standardVerticalWidth: 3, // 灯柱竖杆宽度
standardRailWidth: 3 // 灯柱横杆宽度
}, },
text: { text: {
show: true, // 信号机名称显示 show: true, // 信号机名称显示

View File

@ -133,7 +133,8 @@ class SkinCode extends defaultStyle {
standardLength: 6, // 高柱长度 standardLength: 6, // 高柱长度
standardHeight: 6, // 灯柱高度 standardHeight: 6, // 灯柱高度
standardColor: '#3149C3', // 灯珠颜色 standardColor: '#3149C3', // 灯珠颜色
standardWidth: 2 // 灯珠宽度 standardVerticalWidth: 2, // 灯柱竖杆宽度
standardRailWidth: 2 // 灯柱横杆宽度
}, },
text: { text: {
show: true, // 信号机名称显示 show: true, // 信号机名称显示

View File

@ -142,7 +142,8 @@ class SkinCode extends defaultStyle {
standardLength: 7, // 高柱长度 standardLength: 7, // 高柱长度
standardHeight: 6, // 灯柱高度 standardHeight: 6, // 灯柱高度
standardColor: '#fff', // 灯柱颜色 standardColor: '#fff', // 灯柱颜色
standardWidth: 2, // 灯柱宽度 standardVerticalWidth: 2, // 灯柱竖杆宽度
standardRailWidth: 2, // 灯柱横杆宽度
autoRouteColor: '#008000', // 自动进路开启灯柱颜色 autoRouteColor: '#008000', // 自动进路开启灯柱颜色
shapeChange: true, // 灯柱形状改变 shapeChange: true, // 灯柱形状改变
terminalOptional: '#CC3399' // 终端可选信号机灯柱颜色 terminalOptional: '#CC3399' // 终端可选信号机灯柱颜色

View File

@ -12,23 +12,49 @@ class ESigPost extends Group {
create() { create() {
const model = this.model; const model = this.model;
const style = this.model.style; const style = this.model.style;
// 竖杆 // 基座
this.ver = new Polyline({ let verPoints = [[model.x, model.y + style.Signal.post.standardHeight * 1.2], [model.x, model.y - style.Signal.post.standardHeight * 1.2]];
_subType: 'SignalLamp', if (style.Signal.post.standardVerticalShape && style.Signal.post.standardVerticalShape === '8') {
_val: '3', verPoints = [
zlevel: model.zlevel, [model.x - model.drict * 2, model.y + style.Signal.post.standardHeight * 1.2],
z: model.z, [model.x - model.drict * 2, model.y - style.Signal.post.standardHeight * 1.2],
shape: { [model.x, model.y - style.Signal.post.standardHeight * 1.2],
points: [ [model.x, model.y - style.Signal.post.standardRailWidth / 2],
[model.x, model.y + style.Signal.post.standardHeight * 1.2], [model.x + model.drict * 2, model.y - style.Signal.post.standardRailWidth / 2],
[model.x, model.y - style.Signal.post.standardHeight * 1.2] [model.x + model.drict * 2, model.y + style.Signal.post.standardRailWidth / 2],
] [model.x, model.y + style.Signal.post.standardRailWidth / 2],
}, [model.x, model.y + style.Signal.post.standardHeight * 1.2]
style: { ];
lineWidth: style.Signal.post.standardWidth, this.ver = new Polygon({
stroke: style.Signal.post.standardColor _subType: 'SignalLamp',
} _val: '3',
}); zlevel: model.zlevel,
z: model.z,
shape: {
points: verPoints
},
style: {
lineWidth: style.Signal.post.standardVerticalWidth,
stroke: style.Signal.post.standardColor,
fill: style.Signal.post.standardColor
}
});
} else {
this.ver = new Polyline({
_subType: 'SignalLamp',
_val: '3',
zlevel: model.zlevel,
z: model.z,
shape: {
points: verPoints
},
style: {
lineWidth: style.Signal.post.standardVerticalWidth,
stroke: style.Signal.post.standardColor,
fill: style.Signal.post.standardColor
}
});
}
// 横杆 // 横杆
this.hor = new Polyline({ this.hor = new Polyline({
zlevel: model.zlevel, zlevel: model.zlevel,
@ -41,18 +67,13 @@ class ESigPost extends Group {
] ]
}, },
style: { style: {
lineWidth: style.Signal.post.standardWidth, lineWidth: style.Signal.post.standardRailWidth,
stroke: style.Signal.post.standardColor stroke: style.Signal.post.standardColor
} }
}); });
this.add(this.ver); this.add(this.ver);
this.add(this.hor); this.add(this.hor);
model.type === '01' ? this.hor.hide() : this.hor.show();
if (style.Signal.post.standardShow) {
this.hor.show();
}
} }
setColor(color) { setColor(color) {
@ -100,7 +121,7 @@ class ESigPost extends Group {
if (style.Signal.post.standardShow) { if (style.Signal.post.standardShow) {
type = '01'; type = '01';
} }
const length = style.Signal.post.standardShow ? 4 : 0; const length = style.Signal.post.standardShow ? style.Signal.post.standardLength : 0;
if (type === '01') { if (type === '01') {
return { return {
x: model.x + model.drict * style.Signal.lamp.radiusR * 3 / 2 + model.drict * length, x: model.x + model.drict * style.Signal.lamp.radiusR * 3 / 2 + model.drict * length,

View File

@ -180,7 +180,7 @@ class Signal extends Group {
this.sigBack.hide(); this.sigBack.hide();
} }
// 信号机名称 // 信号机名称
const sigNameX = model.position.x + model.positionPoint.x - drict * (style.Signal.post.standardWidth) + model.namePosition.x; const sigNameX = model.position.x + model.positionPoint.x - drict * (style.Signal.post.standardVerticalWidth) + model.namePosition.x;
const sigNameY = model.position.y + model.positionPoint.y + posit * (style.Signal.distance + style.Section.line.width + style.Signal.lamp.radiusR * 2 + model.namePosition.y + style.Signal.text.distance); const sigNameY = model.position.y + model.positionPoint.y + posit * (style.Signal.distance + style.Section.line.width + style.Signal.lamp.radiusR * 2 + model.namePosition.y + style.Signal.text.distance);
const textAlign = style.Signal.text.isAlignCenter ? 'middle' : this.model.right ? 'left' : 'right'; const textAlign = style.Signal.text.isAlignCenter ? 'middle' : this.model.right ? 'left' : 'right';
const textVerticalAlign = posit == 1 ? 'top' : 'bottom'; const textVerticalAlign = posit == 1 ? 'top' : 'bottom';
@ -725,7 +725,7 @@ class Signal extends Group {
const rect = this.sigPost.getBoundingRect().clone(); const rect = this.sigPost.getBoundingRect().clone();
return { return {
x: rect.x + drict * this.style.Signal.post.standardWidth, x: rect.x + drict * this.style.Signal.post.standardVerticalWidth,
y: rect.y - offsetY y: rect.y - offsetY
}; };
} }

View File

@ -15,7 +15,8 @@ class Theme {
'10': 'xian_01', '10': 'xian_01',
'11': 'xian_01', '11': 'xian_01',
'12': 'ningbo_03', '12': 'ningbo_03',
'13': 'race_01' '13': 'race_01',
'14': 'haerbin_01' // 南京二号线菜单暂用 哈尔滨的
}; };
this._localShowMode = { // 现地显示模式 this._localShowMode = { // 现地显示模式
'01': 'all', // 成都一 全显 '01': 'all', // 成都一 全显
@ -30,7 +31,8 @@ class Theme {
'10': 'all', '10': 'all',
'11': 'all', '11': 'all',
'12': 'all', '12': 'all',
'13':'all' '13':'all',
'14':'all'
}; };
} }

View File

@ -29,7 +29,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="tripNumber" label="车次号"> <el-table-column prop="tripNumber" label="车次号">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.serviceNumber+scope.row.tripNumber+scope.row.destinationCode }}</span> <span>{{ scope.row.serviceNumber+scope.row.destinationCode+(scope.row.tripNumber.substring(1)) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="groupNumber" label="车组号" /> <el-table-column prop="groupNumber" label="车组号" />
@ -52,7 +52,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="tripNumber" label="车次号"> <el-table-column prop="tripNumber" label="车次号">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.destinationCode+scope.row.serviceNumber+scope.row.tripNumber }}</span> <span>{{ scope.row.destinationCode+scope.row.serviceNumber+(scope.row.tripNumber.substring(1)) }}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -157,7 +157,7 @@ export default {
if (device && device.code && device.deviceType === 'TRAIN') { if (device && device.code && device.deviceType === 'TRAIN') {
this.tempTableData = [device]; this.tempTableData = [device];
this.sectionCode = device.sectionModel.name; this.sectionCode = device.sectionModel.name;
this.tripNum = device.destinationCode + device.serviceNumber + device.tripNumber; this.tripNum = device.destinationCode + device.serviceNumber + (device.tripNumber.substring(1));
this.groupNum = device.groupNumber; this.groupNum = device.groupNumber;
} }
} }
@ -186,10 +186,10 @@ export default {
}, },
commit() { commit() {
this.newTripNumError = false; this.newTripNumError = false;
if (this.newTripNum && this.newTripNum.length === 9) { if (this.newTripNum && this.newTripNum.length === 8) {
const params = { const params = {
groupNumber: this.groupNum, groupNumber: this.groupNum,
tripNumber: this.newTripNum.slice(6, 9), tripNumber: '0' + this.newTripNum.slice(6, 8),
serviceNumber: this.newTripNum.slice(3, 6) serviceNumber: this.newTripNum.slice(3, 6)
}; };
const step = { const step = {

View File

@ -794,7 +794,7 @@ export default {
this.standParamList = this.$store.state.training.prdType === '01' ? [] : [ this.standParamList = this.$store.state.training.prdType === '01' ? [] : [
{ name: '扣车', cmdType: CMD.Stand.CMD_STAND_SET_HOLD_TRAIN, operate: OperationEvent.StationStand.setDetainTrain.menuButton, show: false }, { name: '扣车', cmdType: CMD.Stand.CMD_STAND_SET_HOLD_TRAIN, operate: OperationEvent.StationStand.setDetainTrain.menuButton, show: false },
{ name: '取消扣车', cmdType: CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN, operate: OperationEvent.StationStand.cancelDetainTrain.menuButton, show: false }, { name: '取消扣车', cmdType: CMD.Stand.CMD_STAND_CANCEL_HOLD_TRAIN, operate: OperationEvent.StationStand.cancelDetainTrain.menuButton, show: false },
{ name: '越站', cmdType: CMD.Stand.CMD_STAND_SET_JUMP_STOP, operate: OperationEvent.StationStand.setJumpStop.menuButton, show: false, securityCommand: true }, { name: '越站', cmdType: CMD.Stand.CMD_STAND_SET_JUMP_STOP, operate: OperationEvent.StationStand.setJumpStop.menuButton, show: false },
{ name: '取消越站', cmdType: CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP, operate: OperationEvent.StationStand.cancelJumpStop.menuButton, show: false, securityCommand: true } { name: '取消越站', cmdType: CMD.Stand.CMD_STAND_CANCEL_JUMP_STOP, operate: OperationEvent.StationStand.cancelJumpStop.menuButton, show: false, securityCommand: true }
]; ];
this.directionRodParamList = [ this.directionRodParamList = [

View File

@ -29,7 +29,8 @@ function getRouteInfo(to) {
if (whiteList.includes(toRoutePath)) { // 登陆页面清空 token if (whiteList.includes(toRoutePath)) { // 登陆页面清空 token
removeToken(); removeToken();
} }
loginPath = loginInfo[current_session] ? loginInfo[current_session].loginPath : whiteList[0]; const localLogin = process.env.VUE_APP_PRO == 'local' || process.env.VUE_APP_PRO == 'ntyl';
loginPath = loginInfo[current_session] && !localLogin ? loginInfo[current_session].loginPath : whiteList[0];
if (to.query.projectDevice && to.query.type) { if (to.query.projectDevice && to.query.type) {
loginPath = `${loginPath}&projectDevice=${to.query.projectDevice}&type=${to.query.type}`; loginPath = `${loginPath}&projectDevice=${to.query.projectDevice}&type=${to.query.type}`;
} }

View File

@ -427,7 +427,7 @@ export const ProjectIcon = {
export const ProjectCode = { export const ProjectCode = {
login: 'DEFAULT', login: 'DEFAULT',
designlogin: 'DEFAULT', design: 'DEFAULT',
xty: 'XTY', xty: 'XTY',
designxty: 'XTY', designxty: 'XTY',
gzb: 'GZB', gzb: 'GZB',

View File

@ -70,8 +70,12 @@ export default {
createPost(this.form).then(resp => { createPost(this.form).then(resp => {
this.$emit('reloadTable'); this.$emit('reloadTable');
this.handleClose(); this.handleClose();
}).catch(() => { }).catch((error) => {
this.$message.error('创建留言板失败!'); if (error.code == '10012') {
this.$message.error('本项目下的留言板已存在,请勿重复创建!');
} else {
this.$message.error('创建留言板失败!');
}
this.handleClose(); this.handleClose();
}); });
} }

View File

@ -277,7 +277,7 @@ export default {
const routeData = this.$router.resolve({ const routeData = this.$router.resolve({
path:'/messageBoard', path:'/messageBoard',
query:{ query:{
project: this.$route.query.project, project: this.$route.query.project || getSessionStorage('project'),
noPreLogout: true noPreLogout: true
} }
}); });

View File

@ -234,7 +234,7 @@ export default {
this.group = this.$route.query.group; this.group = this.$route.query.group;
this.setWindowSize(); this.setWindowSize();
this.initLoadData(); this.initLoadData();
getPostByProjectCode(ProjectCode[this.project]).then(resp => { getPostByProjectCode(ProjectCode[this.$route.query.project]).then(resp => {
if (resp.data) { if (resp.data) {
this.messageBoard = true; this.messageBoard = true;
} }

View File

@ -51,13 +51,15 @@ export default {
activeName: 'first', activeName: 'first',
lazy: true, lazy: true,
LineTypeList: [], LineTypeList: [],
centralizedStationList: [],
editModel: { editModel: {
code: '', code: '',
type: '', type: '',
width: 1, width: 1,
lineColor: '', lineColor: '',
showConditions: '01', showConditions: '01',
points: [] points: [],
stationCode: ''
}, },
addModel: { addModel: {
type: '', type: '',
@ -110,7 +112,8 @@ export default {
{ prop: 'lineColor', label: this.$t('map.lineColor'), type: 'color' }, { prop: 'lineColor', label: this.$t('map.lineColor'), type: 'color' },
{ prop: 'width', label: this.$t('map.lineWidth'), type: 'number', min: 1, placeholder: 'px' }, { prop: 'width', label: this.$t('map.lineWidth'), type: 'number', min: 1, placeholder: 'px' },
{ prop: 'showConditions', label: this.$t('map.showConditions'), type: 'radio', optionLabel: 'label', optionValue:'value', radioList: this.showConditionsList}, { prop: 'showConditions', label: this.$t('map.showConditions'), type: 'radio', optionLabel: 'label', optionValue:'value', radioList: this.showConditionsList},
{ prop: 'points', label: this.$t('map.segmentCoordinates'), type: 'points', width: '100px', isHidden: !this.isPointsShow, addPoint: this.addPoint, delPoint: this.delPoint } { prop: 'points', label: this.$t('map.segmentCoordinates'), type: 'points', width: '100px', isHidden: !this.isPointsShow, addPoint: this.addPoint, delPoint: this.delPoint },
{ prop: 'stationCode', label: this.$t('map.equipmentStation') + ':', type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.centralizedStationList }
] ]
}, },
map: { map: {
@ -153,14 +156,20 @@ export default {
clearDeviceSelect() { clearDeviceSelect() {
this.$emit('deviceSelect', ''); this.$emit('deviceSelect', '');
}, },
handleInit() {
if (this.stationList && this.stationList.length) {
this.centralizedStationList = this.stationList.filter(station=> station.centralized);
}
},
deviceChange(code) { deviceChange(code) {
this.$emit('setCenter', code); this.$emit('setCenter', code);
this.deviceSelect(this.$store.getters['map/getDeviceByCode'](code)); this.deviceSelect(this.$store.getters['map/getDeviceByCode'](code));
}, },
deviceSelect(selected) { deviceSelect(selected) {
this.handleInit();
if (selected && selected._type.toUpperCase() === 'Line'.toUpperCase()) { if (selected && selected._type.toUpperCase() === 'Line'.toUpperCase()) {
this.$refs.form && this.$refs.form.resetFields(); this.$refs.form && this.$refs.form.resetFields();
this.$refs.make && this.$refs.make.resetFields(); this.$refs.dataform && this.$refs.dataform.resetFields();
this.activeName = 'first'; this.activeName = 'first';
this.editModel = deepAssign(this.editModel, selected); this.editModel = deepAssign(this.editModel, selected);
} }

View File

@ -51,6 +51,7 @@ export default {
activeName: 'first', activeName: 'first',
lazy: true, lazy: true,
LineTypeList: [], LineTypeList: [],
centralizedStationList: [],
editModel: { editModel: {
code: '', code: '',
width: 1, width: 1,
@ -59,7 +60,8 @@ export default {
position: { position: {
x: 0, x: 0,
y: 0 y: 0
} },
stationCode: ''
}, },
addModel: { addModel: {
code: '', code: '',
@ -86,7 +88,8 @@ export default {
}, },
computed: { computed: {
...mapGetters('map', [ ...mapGetters('map', [
'outerFrameList' 'outerFrameList',
'stationList'
]), ]),
showConditionsList() { showConditionsList() {
const showConditionsList = ConstConfig.ConstSelect.showConditionsList; const showConditionsList = ConstConfig.ConstSelect.showConditionsList;
@ -108,7 +111,8 @@ export default {
{ prop: 'position', label: '坐标:', type: 'coordinate', width: '140px', children: [ { prop: 'position', label: '坐标:', type: 'coordinate', width: '140px', children: [
{ prop: 'position.x', firstLevel: 'position', secondLevel: 'x', label: 'x:', type: 'number', labelWidth: '20px' }, { prop: 'position.x', firstLevel: 'position', secondLevel: 'x', label: 'x:', type: 'number', labelWidth: '20px' },
{ prop: 'position.y', firstLevel: 'position', secondLevel: 'y', label: 'y:', type: 'number', labelWidth: '20px' } { prop: 'position.y', firstLevel: 'position', secondLevel: 'y', label: 'y:', type: 'number', labelWidth: '20px' }
] } ] },
{ prop: 'stationCode', label: this.$t('map.equipmentStation') + ':', type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.centralizedStationList }
] ]
} }
} }
@ -125,12 +129,17 @@ export default {
}); });
}, },
methods: { methods: {
handleInit() {
if (this.stationList && this.stationList.length) {
this.centralizedStationList = this.stationList.filter(station=> station.centralized);
}
},
deviceChange(code) { deviceChange(code) {
this.$emit('setCenter', code); this.$emit('setCenter', code);
this.deviceSelect(this.$store.getters['map/getDeviceByCode'](code)); this.deviceSelect(this.$store.getters['map/getDeviceByCode'](code));
}, },
deviceSelect(selected) { deviceSelect(selected) {
this.handleInit();
this.$refs.createForm && this.$refs.createForm.resetFields(); this.$refs.createForm && this.$refs.createForm.resetFields();
if (selected && selected._type.toUpperCase() === 'OutFrame'.toUpperCase()) { if (selected && selected._type.toUpperCase() === 'OutFrame'.toUpperCase()) {
this.activeName = 'first'; this.activeName = 'first';

View File

@ -61,7 +61,8 @@ export default {
position: { position: {
x: 0, x: 0,
y: 0 y: 0
} },
stationCode: ''
}, },
addModel: { addModel: {
prepend: 'H', prepend: 'H',
@ -72,6 +73,7 @@ export default {
y: 0 y: 0
} }
}, },
centralizedStationList: [], //
rules: { rules: {
code: [ code: [
{ required: true, message: this.$t('rules.selectText'), trigger: 'blur' } { required: true, message: this.$t('rules.selectText'), trigger: 'blur' }
@ -125,7 +127,8 @@ export default {
{ prop: 'position', label: this.$t('map.textPoints'), type: 'coordinate', width: '120px', children: [ { prop: 'position', label: this.$t('map.textPoints'), type: 'coordinate', width: '120px', children: [
{ prop: 'position.x', firstLevel: 'position', secondLevel: 'x', label: 'x:', type: 'number', labelWidth: '25px', disabled: false }, { prop: 'position.x', firstLevel: 'position', secondLevel: 'x', label: 'x:', type: 'number', labelWidth: '25px', disabled: false },
{ prop: 'position.y', firstLevel: 'position', secondLevel: 'y', label: 'y:', type: 'number', labelWidth: '25px', disabled: false } { prop: 'position.y', firstLevel: 'position', secondLevel: 'y', label: 'y:', type: 'number', labelWidth: '25px', disabled: false }
] } ] },
{ prop: 'stationCode', label: this.$t('map.equipmentStation') + ':', type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.centralizedStationList }
] ]
}, },
map: { map: {
@ -158,13 +161,19 @@ export default {
} }
}, },
methods: { methods: {
handleInit() {
if (this.stationList && this.stationList.length) {
this.centralizedStationList = this.stationList.filter(station=> station.centralized);
}
},
deviceChange(code) { deviceChange(code) {
this.$emit('setCenter', code); this.$emit('setCenter', code);
this.deviceSelect(this.$store.getters['map/getDeviceByCode'](code)); this.deviceSelect(this.$store.getters['map/getDeviceByCode'](code));
}, },
deviceSelect(selected) { deviceSelect(selected) {
this.handleInit();
this.$refs.form && this.$refs.form.resetFields(); this.$refs.form && this.$refs.form.resetFields();
this.$refs.make && this.$refs.make.resetFields(); this.$refs.dataform && this.$refs.dataform.resetFields();
if (selected && selected._type.toUpperCase() === 'Text'.toUpperCase()) { if (selected && selected._type.toUpperCase() === 'Text'.toUpperCase()) {
this.activeName = 'first'; this.activeName = 'first';
this.editModel = deepAssign(this.editModel, selected); this.editModel = deepAssign(this.editModel, selected);

View File

@ -264,14 +264,13 @@ export default {
message: this.$t('publish.setSuccess') message: this.$t('publish.setSuccess')
}); });
}).catch(res => { }).catch(res => {
// if (res.code == '500009') { if (res.code == '10004') {
// this.$message({ type: 'warning', message: this.$t('error.paperHasUseNotDel') }); this.$message({ type: 'error', message: '删除失败:试卷已被使用,无法删除!' });
// } else if (res.code == '10005') { } else if (res.code == '10003') {
// this.$message({ type: 'warning', message: '使'}); this.$message({ type: 'warning', message: '删除失败:无权限删除!'});
// } else { } else {
// this.$message({ type: 'error', message: this.$t('error.deleteException') }); this.$message({ type: 'error', message: this.$t('error.deleteException') });
// } }
this.$message({ type: 'error', message: '删除失败:' + res.message });
}); });
}).catch(() => { }); }).catch(() => { });
}, },

View File

@ -87,7 +87,7 @@ export default {
doSave() { doSave() {
const self = this; const self = this;
this.$refs.dataform.validateForm(() => { this.$refs.dataform.validateForm(() => {
if (this.isAdd === 'ADD') { if (this.isAdd) {
self.create(); self.create();
} else { } else {
self.update(); self.update();