This commit is contained in:
sunzhenyu 2019-09-17 13:16:49 +08:00
parent 9fd032372c
commit 183f972884
89 changed files with 3135 additions and 1596 deletions

View File

@ -109,3 +109,11 @@ export function getGoodsList() {
method: 'get'
});
}
// 通过权限判断有无商品
export function getPermissionGoods(id) {
return request({
url: `/api/goods/list/permissionIds?permissionIds=${id}`,
method: 'get'
});
}

View File

@ -18,6 +18,7 @@ export default {
residualPermissionDistributionMap: 'Residual permission distribution map',
totalPermissions: 'total permissions',
noMapLineDataYetAvailable: 'No map line data yet available',
selectTheMapRoute: 'Please select the map route.',
individual: 'individual',
permissionMap: {
'ATS local workstation - Course authority': 0,

View File

@ -89,5 +89,7 @@ export default {
destroyedRoomFailed: 'Destroyed room failed!',
exceededTheTotalNumberOfAssignableRoles: 'The number of assigned roles has exceeded the total number of assignable roles!',
getRunGraphDataFailed: 'Failed to get run graph data',
getStationListFail: 'Failed to get station list'
getStationListFail: 'Failed to get station list',
obtainTrainGroupNumberFailed: 'Failed to obtain train group number',
getTrainListFailed: 'Failed to get train list'
};

View File

@ -110,6 +110,8 @@ export default {
orderCode: 'Order Code: ',
creationTime: 'Create Time: ',
amountPayable: 'Amounts Payable: ',
screenName: 'Screen Name',
timeUnitPrice: 'Screen Unit Price',
buyProject: 'The products you will purchase are virtual content services. After purchase, you will not be able to return, transfer or exchange. Please confirm.',
relatedServices: 'You can view and use the related services in the “Permissions Details” area after purchase.',

View File

@ -25,12 +25,34 @@ export default {
contentShows: 'content show',
createBatch: 'Create a batch',
publishMap: 'Publish map',
bothCreate: 'Batch generation',
automaticRouteTypeColon: 'Automatic route type:',
stationstandPosition: 'Station stand position:',
signalLinkCode: 'Signal link',
signalNamePosition: 'Signal name position:',
signalGuidePosition: 'Signal guide:',
signalPosition: 'Signal position:',
signalButtonPosition: 'button:',
switchTp: 'Time coordinate offset:',
buttonType: 'Button type',
buttonControl: 'Button',
textPoints: 'Coordinate:',
codeC: 'code',
delayUnlockPosition: 'Delay unlock position:',
counterPosition: 'Counter position:',
trainNumber: 'Train number',
automaticRouteType: 'Automatic route type',
routeRouteScreenData: 'Route screen door',
routeRouteTurnoutData: 'Route turnout',
trainWindowPoints: 'Train window points:',
createSection: '一键生成区段',
createSwitch: '一键生成道岔',
clearHint: '清除提示',
batchOperation: '批量操作',
breakUpNumber: '拆分数量',
physicalSegmentName: '物理区段:',
// physicalSegmentName: '物理区段:',
save: 'save',
updata: 'update',
@ -273,6 +295,7 @@ export default {
signalUseType: 'Use the type:',
potLampType: 'Light type:',
signalDirectionType: 'The direction of the type:',
signalDirectionTypeX: 'The direction of the type:',
signalPositionType: 'Signal position type:',
signalOffset: 'The offset:',
signalPositionX: 'Signal x:',
@ -301,6 +324,7 @@ export default {
stationKmPostFontColor: 'Font color of kilometer mark:',
stationPositionX: 'X coordinate:',
stationPositionY: 'Y coordinate:',
stationPosition: 'Station position:',
stationControlCode: 'Control mode coding:',
stationControlName: 'Control mode name:',
@ -381,6 +405,7 @@ export default {
switchShowName: 'Whether the switch name is displayed:',
switchPositionX: 'Switch name x offset:',
switchPositionY: 'Switch name y offset:',
switchPosition: 'Switch name offset:',
turnTime: 'The switch changes time:',
timeoutShow: 'Whether to display switch countdown time:',
sectionACode: 'Associated with A Section Code:',
@ -419,6 +444,8 @@ export default {
createTrainWindow: 'Create a train window with one click',
showZc: 'Whether or not visible:',
interconnected: 'Interlock control name',
stationControlPosition: 'Control mode coordinates:',
pathUnitList: 'Path unit list',
startSectionCode: 'Starting stop',

View File

@ -43,7 +43,9 @@ export default {
axisPreReset: 'Axis PreReset',
createTrain: 'Create Train',
setFault: 'Set Fault',
cancelFault: 'Cancel Fault'
cancelFault: 'Cancel Fault',
orbitalSectionActive: 'Orbital section active',
orbitalSectionResection: 'Orbital section resection'
},
menuSignal: {
routeSelect: 'Route Select',
@ -62,7 +64,9 @@ export default {
atsAutoControl: 'ATS Auto Control',
queryRouteControlMode: 'Query Route Control Mode',
setFault: 'Set Fault',
cancelFault: 'Cancel Fault'
cancelFault: 'Cancel Fault',
cancelTheTrainApproach: 'Cancel the train approach',
reopenTrainSignal: 'Re-open train signal'
},
menuStation: {
fullSiteSetInterlockAutoTrigger: 'Full Site Set Interlock Auto Trigger',
@ -90,7 +94,10 @@ export default {
setStopTime: 'Set Stop Time',
setFault: 'Set Fault',
cancelFault: 'Cancel Fault',
cancelDetainTrainAll: 'All Cancel Detain Train'
cancelDetainTrainAll: 'All Cancel Detain Train',
cancelJumpStopAll: 'All Cancel Jump Stop',
earlyDeparture: 'Early departure',
setJumpStop: 'Set jump stop'
},
menuSwitch: {
switchLock: 'Switch Lock',
@ -105,7 +112,10 @@ export default {
switchSectionSetSpeedLimit: 'Switch Section Set Speed Limit',
switchSectionCancelSpeedLimit: 'Switch Section Cancel Speed Limit',
setFault: 'Set Fault',
cancelFault: 'Cancel Fault'
cancelFault: 'Cancel Fault',
switchMalfunctionUnlock: 'Switch Malfunction Unlock',
switchBlockade: 'Switch Blockade',
switchForcedPull: 'Switch Forced Pull'
},
menuTrain: {
addTrainId: 'Add Train Identifier',
@ -116,7 +126,190 @@ export default {
switchTrainId: 'Switch Train Identifier',
setCommunicationFault: 'Set Communication Fault',
cancelCommunicationFault: 'Cancel Communication Fault',
confirmRunToFrontStation: 'Confirm Run To Front Station',
confirmRunToFrontStation: 'Confirm Run To Front Station'
},
passiveDialog: {
// 级告警详细信息
// 线路名称
// 单位名称
// 模块名称
// 报警时间
// 选择日期时间
// 等 级
// 确认状态
// 类  型
// 子类型
// 时间摘要
// 推荐操作
// 报警详细描述
// 请输入内容
// 确 定
// 未确认
// 级报警数目1
// 中控
// 站控
// CMM控制模式转换模式
// 0级告警
// 确认状态
// 系统事件
// 依据信号设备操作命令设置控制模式
// 控制模式摘要
// 控制模式转换:
// 由
// 站控转为中控模式
// 中控转为站控模式
controlModeRequest: 'Control Mode Request',
requestAreaControlMode: 'Request Area Control Mode',
operatingArea: 'Operating Area',
currentControlMode: 'Current Control Mode',
requestControlMode: 'Request Control Mode',
isAgree: 'Agree or not',
messageOne: 'There is still',
messageTwo: 'seconds from the conversation, please answer.',
agree: 'Agree',
refuse: 'Refuse',
dispatcherWorkstation: 'Dispatcher One Workstation',
inTheControl: 'In The Control',
stationControl: 'Station Control',
selectData: 'Please select a piece of data',
operationCommandTips: 'Operation Command Prompt',
operationConfirm: 'confirm',
requestTimedOut: 'Request Timed Out',
requestRejection: 'Request Rejection'
},
menuChildDialog: {
secondaryConfirmation: 'Secondary Confirmation',
confirm: 'Confirm',
close: 'Close',
jobNumber: 'JobNumber:',
userName: 'User Name:',
password: 'Password:',
confirmPassword: 'Confirm Password:',
inputJobNumber: 'Please enter job number',
inputUserName: 'Please enter user name',
inputPassword: 'Please enter password',
inputPasswordAgain: 'Please enter password again',
addUser: 'Add User',
passwordInconsistent: 'Inconsistent input password',
determine: 'Confirm',
cancel: 'Cancel',
deleteUser: 'Delete User',
selectTips: 'The selected username or job number is empty.',
originalPassword: 'Original Password:',
inputOriginal: 'Please enter original password',
inputNewPassword: 'Please enter new password',
inputNewAgain: 'Please enter new password again',
userEditPage: 'User Edit Page',
originalPasswordError: 'Original password error',
passwordError: 'Second entered password error',
passwordSame: 'Old password is the same as new password'
},
menuDialog: {
versionName: 'ControlMonitor 1.3.5.0',
confirm: 'Confirm',
copyright: 'Copyright (C) 2010-2011 Beijing Jiu Lian Technology Co., Ltd.',
moduleName: 'Module Name',
version: 'Version',
modifyDate: 'Modify Date',
mainProgramVersion: 'Main Program Version:',
about: 'About ControlMonitor',
userList: 'User List',
jobNumber: 'JobNumber',
userName: 'UserName',
refresh: 'Refresh',
add: 'Add',
modify: 'Modify',
delete: 'Delete',
cancel: 'Cancel',
userManage: 'User Manage',
selectUser: 'Please select a user first',
deleteMessageOne: 'Are you sure to delete user',
deleteMessageTwo: '?',
addFail: 'Add failed, users with the same job number',
modifyFail: 'failed to modify',
deleteFail: 'failed to delete',
passwordBox: 'Password box',
userNameLabel: 'UserName:',
password: 'Password',
back: 'Back',
clear: 'Clear',
IncorrectPassword: 'Incorrect Password!',
controlModeConversion: 'Control Mode Conversion',
select: 'Select',
operatingArea: 'Operating Area',
controlMode: 'Control Mode',
centerStationCommunicationStatus: 'Center-Station Communication Status',
transferExecutionStatus: 'Transfer Execution Status',
forcedStationControl: 'Forced Station Control',
requestStationControl: 'Request Station Control',
requestInTheControl: 'Request Central Control',
close: 'Close',
inTheControl: 'Central Control',
stationControl: 'Station Control',
acceptConversionResponseTimeout: 'Accept conversion response timeout',
controlModeTransfersuccees: 'Control mode transfer succees',
controlModeTransferFailed: 'Control mode transfer failed',
senedMessageOne: 'A transfer request has been sent and timed out after ',
senedMessageTwo: 'seconds.',
normal: 'Normal',
selectData: 'Please select a piece of data',
confirmStationControlTip: 'Confirm that the control mode of the following operation area is changed from central control to station control:',
confirmInTheControlTip: 'Confirm that the control mode of the following operation area is changed from station control to central control:',
addLocation: 'Add Location',
terminalOne: 'Terminal:',
pleaseSelect: 'please select',
frontTrainNumber: 'Front TrainNumber:',
addTrainNumber: 'Add TrainNumber:',
inputTrainNumber: 'Please input train number',
selectTerminal: 'Please select terminal',
addPlanTrain: 'Add Plan Train',
terminalTwo: 'Terminal:',
trainNumber: 'TrainNumber:',
deletePlanTrain: 'Delete Plan Train',
purpose: 'Purpose',
inputFrontNumber: 'Please input front train number',
panPlanCar: 'Pan Plan Car',
deviceDisplaySettings: 'Device Display Setting',
trainWindow: 'Train Window',
sectionBoundary: 'Section Boundary',
linkageAutoRouteShow: 'Linkage Auto Route Show',
atsAutoTriggerShow: 'ATS Auto Trigger Show',
nameDisplaySetting: 'Name Display Setting',
signalName: 'Signal Name',
standTrackName: 'Stand Track Name',
buttonName: 'Button Name',
reentryTrackName: 'Reentry Track Name',
trackName: 'Track Name',
transferTrackName: 'Transfer Track Name',
turnoutName: 'Turnout Name',
indicatorName: 'Indicator Name',
turnoutSectionName: 'Turnout Section Name',
destinationName: 'Destination Name',
axisSectionName: 'Axis Section Name',
kmPost: 'Km Post',
trainIDDisplaySetting: 'Train ID Display Setting',
plantrainDisplayMode: 'Plan train Display Mode',
serviceNumber: 'Service Number',
tripNumber: 'Train Number',
groupNumber: 'Group Number',
targetNumber: 'Target Number',
headCodeStationDisplayMode: 'Head Code Train Display Mode',
fontSize: 'Font Size',
range: ' (Range16-99) '
},
platform: 'Platform',
arrivalTime: 'Arrival time',
@ -184,17 +377,116 @@ export default {
description: 'Description',
modifyTask: 'Modify task',
accessSetting: 'Access setting',
signalOff: 'SignalOff',
signalReopening: 'Signal reopening',
cancelTheWay: 'Cancel the way',
approachManualControl: 'Approach manual control',
accessToATSAutomaticControl: 'Access to ATS automatic control',
setTheRunLevel: 'Set the run level',
setTheFoldbackStrategy: 'Set the foldback strategy',
turnoutSettingSpeedLimit: 'Turnout setting speed limit',
turnoutCancelsSpeedLimit: 'Turnout cancels speed limit',
signalDeblocking: 'Signal deblocking',
in: 'In the',
signalConfirmed: 'signal, the signal is unlocked, is it confirmed?',
commandInformation: 'Command information'
sectionSetLimitPrefix: 'section, the section is set to a speed limit of',
sectionCancelLimitPrefix: 'section, the section cancels the speed limit of',
switchSetLimitPrefix: 'switch, the switch is set a speed limit of',
switchCancelLimitPrefix: 'switch, this switch cancels the speed limit of',
sectionLimitSuffix: '5km/h. Is it confirmed?',
commandInformation: 'Command information',
type: 'Type',
signalName: 'Signal name',
serialNumber2: 'Serial number',
time: 'Time',
implementationProcess: 'Implementation process',
executionResult: 'The execution result',
release: 'Release',
firstConfirm: 'First confirm',
secondConfirm: 'Second confirm',
suspend: 'Suspend',
clickReleaseCommand: 'Click release command',
clickFirstConfirm: 'Click to first confirm',
clickSecondConfirm: 'Click to second confirm',
clickSuspend: 'Click to suspend',
signal: 'signal',
startSignal: 'Start signal',
routeList: 'Route list',
route: 'Route',
controlState: 'Control state',
automatic: 'Automatic (no conflict detection)',
artificial: 'Artificial',
queryAccessControlMode: 'Query access control mode',
automatic2: 'Automatic',
conflictCheck: 'Conflict check',
listOfSignalButtons: 'Signal button list',
buttonName: 'Button name',
buttonStatus: 'Button status',
blockSignalButton: 'Block signal button',
unblocked: 'Unblocked',
blocked: 'Blocked',
protectionSection: 'Protection section',
allowSelection: 'Allow selection',
notAllowSelection: 'Not allowed selection',
sectionName: 'Section name',
section: 'section',
speedLimitValue: 'Speed limit value',
switchName: 'Switch name',
clickToClose: 'Click to close',
stationStandStatus: 'Station stand status',
upDirection: 'Up direction',
downDirection: 'Down direction',
switchbackStation: 'Switchback station',
switchbackPlatform: 'Switchback platform',
switchbackStrategy: 'Switchback strategy',
switchbackStrategyTip: 'Tip: The switchback strategy is not set',
setSwitchbackStrategyTipPrefix: 'Tip: Check the station',
setSwitchbackStrategyTipSuffix: 'setting to run the switchback strategy',
setSwitchbackStrategy: 'Set switchback strategy',
noSwitchback: 'No switchback',
noOneSwitchback: 'No one switchback',
automaticChange: 'Automatic change',
default: 'Default',
item: 'Item',
stationDetainTrain: 'Station detain train',
hasBeenSet: 'Has been set',
notSet: 'Not set',
to: 'to',
downSwitchbackStrategy: 'Down switchback strategy',
range: 'Range',
uplinkBroadly: 'Uplink broadly',
downlinkBroadly: 'Downlink broadly',
detainTrainStationList: 'Detain train station list (center setting)',
allStationsHaveNoDetainTrainStatus: 'All stations have no detain train status!',
detainTrainStation: 'Detain train station',
nextPlatform: 'Next platform',
intervalRunningTime: 'Interval running time',
alwaysEffective: 'Always effective',
setRunLevelTip: 'Tip: The next station to set the run level is not selected.',
setRunLevelStationTip: 'Tip: Check the next station to set the run level to',
runTimeAutomatically: 'Run time automatically',
runningTimeIs: 'Running time is',
effectiveFrequencyIs: 'Effective frequency is',
onceEffective: 'Once effective',
platformName: 'Platform name',
controlMode: 'Control mode',
effectiveNumber: 'Effective number',
stopTimeIs: 'Stop time is',
fullConcentrationStationAccessManualControl: 'Full concentration station access manual control',
concentratedStationName: 'Concentrated station name',
checkConflict: 'Check conflict',
notCheckConflict: 'Not check conflict',
fullConcentrationStationSettingAccessControlMode: 'All centralized station setting access control mode',
switch: 'Switch',
activation: 'Activation',
resection: 'Resection',
groupNumber: 'Group number',
planTrain: 'Plan train',
headCodeTrain: 'Head code train',
artificialTrain: 'Artificial train',
targetCode: 'Target code',
train: 'Train',
trainDirection: 'Train direction',
up: 'up',
down: 'down',
settingTrain: 'Setting train',
sourceTrainWindow: 'Source train window',
trainWindow: 'Train window',
targetTrainWindow: 'Target train window'
};

View File

@ -260,5 +260,11 @@ export default {
pleaseSelectTemplateRunGraph: 'Please select a template to run the diagram',
selectTheRunningDiagramToBeLoaded: 'Please select the running diagram to be loaded',
selectOneOrMoreDates: 'Select one or more dates',
selectAPlannedDateRange: 'Please select a planned date range'
selectAPlannedDateRange: 'Please select a planned date range',
selectGroupNumber: 'Please select group number',
selectATrainType: 'Please select a train type',
enterTheServiceNumber: 'Please enter the service number',
enterTheTripNumber: 'Please enter the trip number',
enterTheTargetCode: 'Please enter the target code',
selectStation: 'Please select station'
};

View File

@ -152,5 +152,19 @@ export default {
createRunChartPlanSuccessfully: 'Create a run chart plan successfully',
createRunChartPlanFailed: 'Create run chart plan failed',
deleteTheRunningGraphLoadedTheNextDay: 'This operation will delete the running graph loaded the next day, will it continue?',
commandFailed: 'Command failed'
commandFailed: 'Command failed',
releaseTip: 'Please click the "release" button to issue the order!',
firstConfirmTip: 'Please click the "First confirm" button to confirm the order!',
executionSucceed: 'Execution succeed',
executionFailed: 'Execution failed',
executionException: 'Execution exception',
secondConfirmTip: 'Please click the "Second confirm" button to confirm the order!',
confirmedSuccess: 'Confirmed success',
cancelSuccess: 'Cancel success',
signalModeToManualModeTipPrefix: 'Cancel the approach starting with the signal',
signalModeToManualModeTipSuffix: ', the way will be changed from automatic signal mode to manual mode!',
selectAPieceOfData: 'Please select a piece of data',
selectSpeedLimitValueTip: 'Please select the speed limit value, click the "release" button, and issue the command!',
addTrainIdTip: 'Add train identification number: successful',
editTrainIdTip: 'Modify train identification number: successful'
};

View File

@ -19,6 +19,7 @@ export default {
residualPermissionDistributionMap: '剩余权限分布图',
totalPermissions: '权限总计',
noMapLineDataYetAvailable: '暂无地图线路数据',
selectTheMapRoute: '请选择地图线路',
individual: '个',
permissionMap: {
'ATS现地工作站-课程权限': 0,

View File

@ -89,5 +89,7 @@ export default {
destroyedRoomFailed: '销毁房间失败!',
exceededTheTotalNumberOfAssignableRoles: '分配角色数量已超过可分配角色总数!',
getRunGraphDataFailed: '获取运行图数据失败',
getStationListFail: '获取车站列表失败'
getStationListFail: '获取车站列表失败',
obtainTrainGroupNumberFailed: '获取列车车组号失败',
getTrainListFailed: '获取列车列表失败'
};

View File

@ -277,7 +277,8 @@ export default {
lampPositionType: '灯位类型:',
signalUseType: '用途类型:',
potLampType: '点灯类型:',
signalDirectionType: '方向类型:',
signalDirectionType: '行驶方向:',
signalDirectionTypeX: '显示方向:',
signalPositionType: '信号机位置类型:',
signalOffset: '所属link偏移量:',
signalLinkCode: '所属link',

View File

@ -43,7 +43,9 @@ export default {
axisPreReset: '计轴预复位',
createTrain: '新建列车',
setFault: '设置故障',
cancelFault: '取消故障'
cancelFault: '取消故障',
orbitalSectionActive: '轨道区段激活',
orbitalSectionResection: '轨道区段切除'
},
menuSignal: {
routeSelect: '进路选排',
@ -62,7 +64,9 @@ export default {
atsAutoControl: '自排开',
queryRouteControlMode: '查询进路控制模式',
setFault: '设置故障',
cancelFault: '取消故障'
cancelFault: '取消故障',
cancelTheTrainApproach: '取消列车进路',
reopenTrainSignal: '重开列车信号'
},
menuStation: {
fullSiteSetInterlockAutoTrigger: '全站设置联锁自动触发',
@ -87,7 +91,10 @@ export default {
setStopTime: '设置停站时间',
setFault: '设置故障',
cancelFault: '取消故障',
cancelDetainTrainAll: '全线取消扣车'
cancelDetainTrainAll: '全线取消扣车',
cancelJumpStopAll: '全线取消跳停',
earlyDeparture: '提前发车',
setJumpStop: '设置跳停'
},
menuSwitch: {
switchLock: '道岔单锁',
@ -102,7 +109,10 @@ export default {
switchSectionSetSpeedLimit: '道岔区段设置限速',
switchSectionCancelSpeedLimit: '道岔区段取消限速',
setFault: '设置故障',
cancelFault: '取消故障'
cancelFault: '取消故障',
switchMalfunctionUnlock: '道岔故障解锁',
switchBlockade: '道岔封锁',
switchForcedPull: '道岔强扳'
},
menuTrain: {
addTrainId: '添加列车识别号',
@ -113,7 +123,189 @@ export default {
switchTrainId: '交换列车识别号',
setCommunicationFault: '设置通信故障',
cancelCommunicationFault: '取消通信故障',
confirmRunToFrontStation: '确认运行至前方站',
confirmRunToFrontStation: '确认运行至前方站'
},
passiveDialog: {
// 级告警详细信息
// 线路名称
// 单位名称
// 模块名称
// 报警时间
// 选择日期时间
// 等 级
// 确认状态
// 类  型
// 子类型
// 时间摘要
// 推荐操作
// 报警详细描述
// 请输入内容
// 确 定
// 未确认
// 级报警数目1
// 中控
// 站控
// CMM控制模式转换模式
// 0级告警
// 确认状态
// 系统事件
// 依据信号设备操作命令设置控制模式
// 控制模式摘要
// 控制模式转换:
// 由
// 站控转为中控模式
// 中控转为站控模式
controlModeRequest: '控制模式请求',
requestAreaControlMode: '请求如下区域的控制模式',
operatingArea: '操作区域',
currentControlMode: '当前控制模式',
requestControlMode: '请求控制模式',
isAgree: '是否同意',
messageOne: '距离对话还有',
messageTwo: '秒,请应答。',
agree: '同意',
refuse: '拒绝',
dispatcherWorkstation: '调度员1工作站',
inTheControl: '中控',
stationControl: '站控',
selectData: '请选择一条数据',
operationCommandTips: '操作命令提示',
operationConfirm: '确认',
requestTimedOut: '请求超时',
requestRejection: '请求拒绝'
},
menuChildDialog: {
secondaryConfirmation: '二次确认',
confirm: '确认',
close: '关闭',
jobNumber: '工号:',
userName: '用户名:',
password: '密码:',
confirmPassword: '确认密码:',
inputJobNumber: '请输入工号',
inputUserName: '请输入用户名',
inputPassword: '请输入密码',
inputPasswordAgain: '请再次输入密码',
addUser: '增加用户',
passwordInconsistent: '二次输入密码不一致',
determine: '确定',
cancel: '取 消',
deleteUser: '删除用户',
selectTips: '选择的用户名或工号为空',
originalPassword: '原始密码:',
inputOriginal: '请输入原始密码',
inputNewPassword: '请输入新密码',
inputNewAgain: '请再次输入新密码',
userEditPage: '用户编辑页面',
originalPasswordError: '原始密码错误',
passwordError: '二次输入的密码错误',
passwordSame: '老密码和新密相同'
},
menuDialog: {
versionName: 'ControlMonitor 1.3.5.0',
confirm: '确定',
copyright: '版权所有C2010-2011 北京玖琏科技有限公司',
moduleName: '模块名称',
version: '版本',
modifyDate: '修改日期',
mainProgramVersion: '主程序版本:',
about: '关于ControlMonitor',
userList: '用户列表',
jobNumber: '工号',
userName: '用户名',
refresh: '刷新',
add: '增加',
modify: '修改',
delete: '删除',
cancel: '取 消',
userManage: '用户管理',
selectUser: '请先选择用户',
deleteMessageOne: '你确定删除用户',
deleteMessageTwo: '吗?',
addFail: '添加失败,存在相同工号的用户',
modifyFail: '修改失败',
deleteFail: '删除失败',
passwordBox: '密码框',
userNameLabel: '用户名:',
password: '密 码:',
back: '回退',
clear: '清空',
IncorrectPassword: '密码输入错误!',
controlModeConversion: '控制模式转换',
select: '选择',
operatingArea: '操作区域',
controlMode: '控制模式',
centerStationCommunicationStatus: '中心-车站通信状态',
transferExecutionStatus: '转换执行状态',
forcedStationControl: '强制站控',
requestStationControl: '请求站控',
requestInTheControl: '请求中控',
close: '关闭',
inTheControl: '中控',
stationControl: '站控',
acceptConversionResponseTimeout: '接受转换应答超时',
controlModeTransfersuccees: '控制模式转换成功',
controlModeTransferFailed: '控制模式转换失败',
senedMessageOne: '已发送转换请求,',
senedMessageTwo: '秒后超时.',
normal: '正常',
selectData: '请选择一条数据',
confirmStationControlTip: '确认将如下操作区域的控制模式由中控转为站控:',
confirmInTheControlTip: '确认将如下操作区域的控制模式由站控转为中控:',
addLocation: '添加位置',
terminalOne: '终 端:',
pleaseSelect: '请选择',
frontTrainNumber: '前车车次号:',
addTrainNumber: '添加车次号:',
inputTrainNumber: '请输入车次号',
selectTerminal: '请选择终端',
addPlanTrain: '添加计划车',
terminalTwo: '终 端:',
trainNumber: '车 次 号:',
deletePlanTrain: '删除计划车',
purpose: '目的',
inputFrontNumber: '请输入前车车次号',
panPlanCar: '平移计划车',
deviceDisplaySettings: '设备显示设置',
trainWindow: '车次窗',
sectionBoundary: '区段边界',
linkageAutoRouteShow: '联锁自动进路表示灯',
atsAutoTriggerShow: 'ATS自动触发表示灯',
nameDisplaySetting: '名称显示设置',
signalName: '信号机名称',
standTrackName: '站台轨名称',
buttonName: '按钮名称',
reentryTrackName: '折返轨名称',
trackName: '股道名称',
transferTrackName: '转换轨名称',
turnoutName: '道岔名称',
indicatorName: '标识灯名称',
turnoutSectionName: '道岔区段名称',
destinationName: '目的地名称',
axisSectionName: '计轴区段名称',
kmPost: '公里标',
trainIDDisplaySetting: '列车识别号显示设置',
plantrainDisplayMode: '计划车显示模式',
serviceNumber: '表号',
tripNumber: '车次号',
groupNumber: '车组号',
targetNumber: '目的地号',
headCodeStationDisplayMode: '头码车显示模式',
fontSize: '字体大小',
range: '范围16-99'
},
platform: '站台',
arrivalTime: '到点',
@ -181,18 +373,118 @@ export default {
description: '描述',
modifyTask: '修改任务',
accessSetting: '进路设置',
signalOff: '信号关灯',
signalReopening: '信号重开',
cancelTheWay: '取消进路',
approachManualControl: '进路交人工控',
accessToATSAutomaticControl: '进路交ATS自动控',
setTheRunLevel: '设置运行等级',
setTheFoldbackStrategy: '设置折返策略',
turnoutSettingSpeedLimit: '道岔设置限速',
turnoutCancelsSpeedLimit: '道岔取消限速',
signalDeblocking: '信号解封',
in: '在',
signalConfirmed: '信号机,信号解锁,确认下达吗?',
commandInformation: '命令信息'
sectionSetLimitPrefix: '区段,区段设置限速',
sectionCancelLimitPrefix: '区段,区段取消限速',
switchSetLimitPrefix: '道岔,道岔设置限速',
switchCancelLimitPrefix: '道岔,道岔取消限速',
sectionLimitSuffix: 'km/h确认下达吗',
commandInformation: '命令信息',
type: '类型',
signalName: '信号机名称',
serialNumber2: '序号',
time: '时间',
implementationProcess: '执行过程',
executionResult: '执行结果',
release: '下达',
firstConfirm: '确认1',
secondConfirm: '确认2',
suspend: '中止',
clickReleaseCommand: '点击下达命令',
clickFirstConfirm: '点击确认1',
clickSecondConfirm: '点击确认2',
clickSuspend: '点击终止',
signal: '信号机',
startSignal: '始端信号机',
routeList: '进路列表',
route: '进路',
controlState: '控制状态',
automatic: '自动(不进行冲突检测)',
artificial: '人工',
queryAccessControlMode: '查询进路控制模式',
automatic2: '自动',
conflictCheck: '冲突检查',
listOfSignalButtons: '信号按钮列表',
buttonName: '按钮名称',
buttonStatus: '按钮状态',
blockSignalButton: '封锁信号按钮',
unblocked: '未封锁',
blocked: '封锁',
protectionSection: '保护区段',
allowSelection: '允许选排',
notAllowSelection: '不允许选排',
sectionName: '区段名称',
section: '区段',
speedLimitValue: '限速值',
switchName: '道岔名称',
clickToClose: '点击关闭',
stationStandStatus: '站台状态',
upDirection: '上行方向',
downDirection: '下行方向',
switchbackStation: '折返站',
switchbackPlatform: '折返站台',
switchbackStrategy: '折返策略',
switchbackStrategyTip: '提示: 未设置折返策略',
setSwitchbackStrategyTipPrefix: '提示: 选中站台',
setSwitchbackStrategyTipSuffix: '设置运行折返策略',
setSwitchbackStrategy: '设置折返策略',
noSwitchback: '无折返',
noOneSwitchback: '无人折返',
automaticChange: '自动换端',
default: '默认',
item: '项目',
stationDetainTrain: '车站扣车',
centerDetainTrain: '中心扣车',
hasBeenSet: '已设置',
notSet: '未设置',
to: '至',
downSwitchbackStrategy: '下行折返策略',
range: '范围',
uplinkBroadly: '上行全线',
downlinkBroadly: '下行全线',
detainTrainStationList: '扣车站台列表(中心设置)',
allStationsHaveNoDetainTrainStatus: '所有站台都无扣车状态!',
detainTrainStation: '扣车站台',
nextPlatform: '下一站台',
intervalRunningTime: '区间运行时间',
alwaysEffective: '一直有效',
setRunLevelTip: '提示: 未选中要设置运行等级的下一站台。',
setRunLevelStationTip: '提示: 选中要设置运行等级的下一站台为',
runTimeAutomatically: '运行时间自动',
runningTimeIs: '运行时间为',
effectiveFrequencyIs: '有效次数为',
onceEffective: '一次有效',
platformName: '站台名称',
controlMode: '控制方式',
effectiveNumber: '有效次数',
stopTimeIs: '停站时间为',
fullConcentrationStationAccessManualControl: '全集中站进路交人工控',
concentratedStationName: '集中站名称:',
checkConflict: '检查冲突',
notCheckConflict: '不检查冲突',
fullConcentrationStationSettingAccessControlMode: '全集中站设置进路控制模式',
switch: '道岔',
activation: '激活',
resection: '切除',
groupNumber: '车组号',
planTrain: '计划车',
headCodeTrain: '头码车',
artificialTrain: '人工车',
targetCode: '目的地号',
train: '列车',
trainDirection: '列车方向',
up: '上行',
down: '下行',
settingTrain: '设置列车',
sourceTrainWindow: '源车次窗',
trainWindow: '车次窗',
targetTrainWindow: '目的车次窗'
};

View File

@ -101,4 +101,5 @@ export default {
orderSelectionItem: '订单选择商品',
orderDetails: '订单详情',
statusType: '状态类型',
createPackage: '创建权限'
};

View File

@ -271,5 +271,11 @@ export default {
pleaseSelectTemplateRunGraph: '请选择模板运行图',
selectTheRunningDiagramToBeLoaded: '请选择需要加载的运行图',
selectOneOrMoreDates: '选择一个或多个日期',
selectAPlannedDateRange: '请选择计划日期范围'
selectAPlannedDateRange: '请选择计划日期范围',
selectGroupNumber: '请选择车组号',
selectATrainType: '请选择一个列车类型',
enterTheServiceNumber: '请输入表号',
enterTheTripNumber: '请输入车次号',
enterTheTargetCode: '请输入目的地号',
selectStation: '请选择车站'
};

View File

@ -156,5 +156,19 @@ export default {
createRunChartPlanSuccessfully: '创建运行图计划成功',
createRunChartPlanFailed: '创建运行图计划失败',
deleteTheRunningGraphLoadedTheNextDay: '此操作将删除次日加载的运行图, 是否继续?',
commandFailed: '命令下达失败'
commandFailed: '命令下达失败',
releaseTip: '请点击“下达”按钮,下达命令!',
firstConfirmTip: '请点击“确认1”按钮确认命令',
executionSucceed: '执行成功',
executionFailed: '执行失败',
executionException: '执行异常',
secondConfirmTip: '请点击“确认2”按钮确认命令',
confirmedSuccess: '确认成功',
cancelSuccess: '取消成功',
signalModeToManualModeTipPrefix: '取消以信号机',
signalModeToManualModeTipSuffix: '为始端的进路,该进路即将由自动信号模式转为人工模式!',
selectAPieceOfData: '请选择一条数据',
selectSpeedLimitValueTip: '请选择限速值后,点击“下达”按钮,下达命令!',
addTrainIdTip: '添加列车识别号:成功',
editTrainIdTip: '修改列车识别号:成功'
};

View File

@ -33,7 +33,7 @@ class Signal extends Group {
create() {
const model = this.model;
const style = this.style;
const drict = this.model.directionType == '01' ? -1 : 1; // 朝向 左:右
const drict = this.model.directionShowType == '01' ? -1 : 1; // 朝向 左:右
const posit = this.model.positionType == '01' ? -1 : 1; // 位置 上:下
// 信号机高柱矮柱
@ -68,7 +68,7 @@ class Signal extends Group {
// 信号机名称
const sigNameX = model.position.x - drict * (style.Signal.post.standardWidth) + model.namePosition.x;
const sigNameY = model.position.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.directionType == '01'? 'right': 'left';
const textAlign = style.Signal.text.isAlignCenter ? 'middle': this.model.directionShowType == '01'? 'right': 'left';
const textVerticalAlign = posit == 1 ? 'top' : 'bottom';
this.sigName = new ESigName({
zlevel: this.zlevel,
@ -262,7 +262,7 @@ class Signal extends Group {
}
}
}
/* count 1单灯 2双灯 lightType 01物理点灯 02逻辑点灯*/
/* count 1单灯 2双灯 lightType 01物理点灯 02逻辑点灯*/
openLateral() {
if (this.count == 2 && this.model.lightType == '01') {
if (this.lamps[0]) {
@ -492,7 +492,7 @@ class Signal extends Group {
getShapeTipPoint(opts) {
var rect = new BoundingRect(0, 0, 0, 0);
var drict = this.model.directionType == '01' ? -1 : 1; // 朝向 左:右
var drict = this.model.directionShowType == '01' ? -1 : 1; // 朝向 左:右
var offsetY = this.model.positionType == '01' ? this.style.Signal.text.fontSize : 0; // 位置 上:下
if (opts.val == '1' || opts.val == '2') {
rect = this.sigButton.getBoundingRect();

View File

@ -44,9 +44,9 @@
if (this.operation === OperationEvent.Signal.arrangementRoute.menu.operation) {
return this.$t('menu.accessSetting');
} else if (this.operation === OperationEvent.Signal.signalClose.menu.operation) {
return this.$t('menu.signalOff');
return this.$t('menu.menuSignal.signalOff');
} else if (this.operation === OperationEvent.Signal.reopenSignal.menu.operation) {
return this.$t('menu.signalReopening');
return this.$t('menu.menuSignal.signalReopen');
} else if (this.operation === OperationEvent.Signal.cancelTrainRoute.menu.operation) {
return this.$t('menu.cancelTheWay');
} else if (this.operation === OperationEvent.Signal.humanControl.menu.operation) {
@ -54,11 +54,11 @@
} else if (this.operation === OperationEvent.Signal.atsAutoControl.menu.operation) {
return this.$t('menu.accessToATSAutomaticControl');
} else if (this.operation === OperationEvent.StationStand.setRunLevel.menu.operation) {
return this.$t('menu.setTheRunLevel');
return this.$t('menu.menuStationStand.setRunLevel');
} else if (this.operation === OperationEvent.StationStand.setStopTime.menu.operation) {
return this.$t('menu.stopTime');
} else if (this.operation === OperationEvent.StationStand.setBackStrategy.menu.operation) {
return this.$t('menu.setTheFoldbackStrategy');
return this.$t('menu.setSwitchbackStrategy');
}
},
domIdCancel() {

View File

@ -7,7 +7,7 @@
<el-form label-position="center" size="mini">
<el-row>
<el-col :span="8">
<el-form-item label="类型" label-width="40px">
<el-form-item :label="this.$t('menu.type')" label-width="40px">
<el-select v-model="operation" size="small" disabled>
<el-option v-for="option in typeList" :key="option.code" :label="option.name"
:value="option.code">
@ -16,12 +16,12 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="车站名称" label-width="80px">
<el-form-item :label="this.$t('menu.stationName')" label-width="80px">
<el-input v-model="stationName" size="small" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="信号机名称" label-width="100px">
<el-form-item :label="this.$t('menu.signalName')" label-width="100px">
<el-input v-model="signalName" size="small" disabled></el-input>
</el-form-item>
</el-col>
@ -30,34 +30,34 @@
</div>
<el-table class="table" ref="tempData" :data="tempData" border style="width: 100%" size="mini"
highlight-current-row height="200">
<el-table-column prop="order" :width="50" label="序号">
<el-table-column prop="order" :width="50" :label="this.$t('menu.serialNumber2')">
</el-table-column>
<el-table-column prop="date" :width="160" label="时间">
<el-table-column prop="date" :width="160" :label="this.$t('menu.time')">
</el-table-column>
<el-table-column prop="context" :width="180" label="执行过程">
<el-table-column prop="context" :width="180" :label="this.$t('menu.implementationProcess')">
</el-table-column>
<el-table-column prop="result" label="执行结果">
<el-table-column prop="result" :label="this.$t('menu.executionResult')">
</el-table-column>
</el-table>
<span class="notice">{{message}}</span>
<el-row class="button-group">
<el-col :span="2" :offset="2">
<el-button :id="domIdCommand" type="primary" :disabled="cmdDisabled[0]" @click="command">下达<span
<el-button :id="domIdCommand" type="primary" :disabled="cmdDisabled[0]" @click="command">{{$t('menu.release')}}<span
v-show="timeCountCommand>0">({{timeCountCommand}})</span></el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdConfirm1" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">确认1
<el-button :id="domIdConfirm1" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">{{$t('menu.firstConfirm')}}
</el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdConfirm2" type="primary" :disabled="cmdDisabled[2]" @click="confirm2">确认2<span
<el-button :id="domIdConfirm2" type="primary" :disabled="cmdDisabled[2]" @click="confirm2">{{$t('menu.secondConfirm')}}<span
v-show="timeCountConfirm>0">({{timeCountConfirm}})</span></el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdStop" type="primary" :disabled="stpDisabled" @click="stop">中止</el-button>
<el-button :id="domIdStop" type="primary" :disabled="stpDisabled" @click="stop">{{$t('menu.suspend')}}</el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdClose" @click="close">关闭</el-button>
<el-button :id="domIdClose" @click="close">{{$t('global.close')}}</el-button>
</el-col>
</el-row>
</el-dialog>
@ -96,8 +96,8 @@
computed: {
typeList() {
return [
{ code: OperationEvent.Signal.unlock.menu.operation, name: '信号解封' },
{ code: OperationEvent.Signal.guide.menu.operation, name: '办理引导进路' }
{ code: OperationEvent.Signal.unlock.menu.operation, name: this.$t('menu.menuSignal.signalDeblock') },
{ code: OperationEvent.Signal.guide.menu.operation, name: this.$t('menu.menuSignal.guideRouteHandle') }
]
},
show() {
@ -225,7 +225,7 @@
}
this.dialogShow = true;
this.stpDisabled = true;
this.setMessage('请点击“下达”按钮,下达命令!');
this.setMessage(this.$t('tip.releaseTip'));
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
@ -253,8 +253,8 @@
operate.operation = OperationEvent.Signal.unlock.order.operation
}
this.setMessage('请点击“确认1”按钮确认命令');
this.writeRecord({ order: ++this.order, date: now(), context: '点击下达命令', result: '' });
this.setMessage(this.$t('tip.firstConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
@ -274,18 +274,18 @@
operate.operation = OperationEvent.Signal.guide.order.operation
}
this.setMessage('请点击“确认1”按钮确认命令');
this.writeRecord({ order: ++this.order, date: now(), context: '点击下达命令', result: '' });
this.setMessage(this.$t('tip.firstConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 1 });
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionException') });
})
},
confirm1() {
@ -301,20 +301,20 @@
operate.operation = OperationEvent.Signal.guide.confirm1.operation;
}
this.setMessage('请点击“确认2”按钮确认命令');
this.writeRecord({ order: ++this.order, date: now(), context: '点击确认1', result: '' });
this.setMessage(this.$t('tip.secondConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.timeCountCommand = -1;
this.timeCountConfirm = 10;
this.setButtonEnable({ step: 2 });
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionException') });
})
},
confirm2() {
@ -331,22 +331,22 @@
operate.operation = OperationEvent.Signal.guide.confirm2.operation;
}
this.setMessage('');
this.writeRecord({ order: ++this.order, date: now(), context: '点击确认2', result: '' });
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
this.timeCountCommand = -1;
this.timeCountConfirm = -1;
this.setButtonEnable({ step: -1 });
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.timeCountCommand = -1;
this.timeCountConfirm = -1;
this.setButtonEnable({ step: -1 });
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionException') });
})
},
stop() {
@ -363,17 +363,17 @@
}
this.writeRecord({ order: ++this.order, date: now(), context: '点击终止', result: '' });
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickSuspend'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 0 });
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionFailed') });
}
}).catch(error => {
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionException') });
})
},
close() {
@ -398,9 +398,9 @@
this.setButtonEnable(operate);
if (operate.success) {
this.timeCountCommand = 30;
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '确认成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.confirmedSuccess') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '取消成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.cancelSuccess') });
}
}
},

View File

@ -2,8 +2,8 @@
<el-dialog class="fuzhou-01__systerm signal-control" :title="title" :visible.sync="show" width="300px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header">
<el-col :span="11"><span>车站名称</span></el-col>
<el-col :span="11" :offset="2"><span>信号机</span></el-col>
<el-col :span="11"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="11" :offset="2"><span>{{$t('menu.signal')}}</span></el-col>
</el-row>
<el-row>
<el-col :span="11">
@ -15,10 +15,10 @@
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('menu.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('menu.cancel')}}</el-button>
</el-col>
</el-row>
<confirm-control ref="confirmControl"></confirm-control>
@ -60,19 +60,19 @@
},
title() {
if (this.operation == OperationEvent.Signal.cancelTrainRoute.menu.operation) {
return '取消列车进路';
return this.$t('menu.menuSignal.cancelTheTrainApproach');
} else if (this.operation == OperationEvent.Signal.signalClose.menu.operation) {
return '信号关灯';
return this.$t('menu.menuSignal.signalOff');
} else if (this.operation == OperationEvent.Signal.reopenSignal.menu.operation) {
return '重开列车信号';
return this.$t('menu.menuSignal.reopenTrainSignal');
} else if (this.operation == OperationEvent.Signal.setAutoInterlock.menu.operation) {
return '设置联锁自动进路';
return this.$t('menu.menuSignal.setInterlockAutoRoute');
} else if (this.operation == OperationEvent.Signal.cancelAutoInterlock.menu.operation) {
return '取消联锁自动进路';
return this.$t('menu.menuSignal.cancelInterlockAutoRoute');
} else if (this.operation == OperationEvent.Signal.setAutoTrigger.menu.operation) {
return '设置联锁自动触发';
return this.$t('menu.menuSignal.setInterlockAutoTrigger');
} else if (this.operation == OperationEvent.Signal.cancelAutoTrigger.menu.operation) {
return '取消联锁自动触发';
return this.$t('menu.menuSignal.cancelInterlockAutoTrigger');
}
}
},
@ -165,7 +165,7 @@
let operate = {
type: MapDeviceType.Signal.type,
operation: OperationEvent.Signal.cancelTrainRoute.menu.operation,
messages: [`取消以信号机${this.signalName}为始端的进路,该进路即将由自动信号模式转为人工模式!`]
messages: [this.$t('tip.signalModeToManualModeTipPrefix') + this.signalName + this.$t('tip.signalModeToManualModeTipSuffix')]
}
this.loading = true;
@ -185,7 +185,7 @@
let operate = {
type: MapDeviceType.Signal.type,
operation: OperationEvent.Signal.signalClose.menu.operation,
messages: [`信号关灯: ${this.signalName}`],
messages: [this.$t('menu.menuSignal.signalOff') + this.$t('global.colon') + this.signalName],
}
this.loading = true;
@ -205,7 +205,7 @@
let operate = {
type: MapDeviceType.Signal.type,
operation: OperationEvent.Signal.reopenSignal.menu.operation,
messages: [`信号重开: ${this.signalName}`],
messages: [this.$t('menu.menuSignal.signalReopen') + this.$t('global.colon') + this.signalName],
}
this.loading = true;
@ -322,4 +322,4 @@
}
}
}
</script>
</script>

View File

@ -3,8 +3,8 @@
<el-dialog class="fuzhou-01__systerm route-detail" :title="title" :visible.sync="show" width="340px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header">
<el-col :span="10"><span>车站名称</span></el-col>
<el-col :span="10" :offset="2"><span>始端信号机</span></el-col>
<el-col :span="10"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="10" :offset="2"><span>{{$t('menu.startSignal')}}</span></el-col>
</el-row>
<el-row>
<el-col :span="10">
@ -15,28 +15,28 @@
</el-col>
</el-row>
<div class="table">
<span>进路列表</span>
<span>{{$t('menu.routeList')}}</span>
<el-table ref="tempTable" :data="tempData" border style="width: 100%" size="mini" highlight-current-row
:height="140">
<el-table-column label="进路">
<el-table-column :label="this.$t('menu.route')">
<template slot-scope="scope">
<span>{{scope.row.name}}</span>
</template>
</el-table-column>
<el-table-column prop="status" label="控制状态" width="180">
<el-table-column prop="status" :label="this.$t('menu.controlState')" width="180">
<template slot-scope="scope">
<span v-if="scope.row.controlType == '01'">自动不进行冲突检测</span>
<span v-else>人工</span>
<span v-if="scope.row.controlType == '01'">{{$t('menu.automatic')}}</span>
<span v-else>{{$t('menu.artificial')}}</span>
</template>
</el-table-column>
</el-table>
</div>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo"></notice-info>
@ -77,7 +77,7 @@
return this.dialogShow ? OperationEvent.Signal.detail.menu.domId : '';
},
title() {
return '查询进路控制模式'
return this.$t('menu.queryAccessControlMode');
}
},
mounted() {
@ -146,4 +146,4 @@
}
}
}
</script>
</script>

View File

@ -3,8 +3,8 @@
<el-dialog class="fuzhou-01__systerm route-hand-control" :title="title" :visible.sync="show" width="360px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header">
<el-col :span="10"><span>车站名称</span></el-col>
<el-col :span="10" :offset="2"><span>始端信号机</span></el-col>
<el-col :span="10"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="10" :offset="2"><span>{{$t('menu.startSignal')}}</span></el-col>
</el-row>
<el-row>
<el-col :span="10">
@ -15,24 +15,24 @@
</el-col>
</el-row>
<div class="table">
<span>进路列表</span>
<span>{{$t('menu.routeList')}}</span>
<el-table ref="tempTable" :data="tempData" border style="width: 100%" size="mini" highlight-current-row
:height="140">
<el-table-column prop="name" label="进路" :id="domIdChoose" style="margin-left:30px">
<el-table-column prop="name" :label="this.$t('menu.route')" :id="domIdChoose" style="margin-left:30px">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.check" :disabled="scope.row.disabled"> </el-checkbox>
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{scope.row.name}}</span>
</template>
</el-table-column>
<el-table-column prop="controlType" label="控制状态" :width="80">
<el-table-column prop="controlType" :label="this.$t('menu.controlState')" :width="80">
<template slot-scope="scope">
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">
<span v-if="scope.row.controlType == '01'">自动</span>
<span v-else>人工</span>
<span v-if="scope.row.controlType == '01'">{{$t('menu.automatic2')}}</span>
<span v-else>{{$t('menu.artificial')}}</span>
</span>
</template>
</el-table-column>
<el-table-column prop="conflictCheck" label="冲突检查" :width="80">
<el-table-column prop="conflictCheck" :label="this.$t('menu.conflictCheck')" :width="80">
<template slot-scope="scope">
<span
:style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{scope.row.conflictCheck}}</span>
@ -43,10 +43,10 @@
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :disabled="commitDisabled" :loading="loading"
@click="commit">确定</el-button>
@click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<confirm-control ref="confirmControl"></confirm-control>
@ -102,9 +102,9 @@
},
title() {
if (this.operation == OperationEvent.Signal.humanControl.menu.operation) {
return '自排关';
return this.$t('menu.menuSignal.humanControl');
} else if (this.operation == OperationEvent.Signal.atsAutoControl.menu.operation) {
return '自排开';
return this.$t('menu.menuSignal.atsAutoControl');
}
},
commitDisabled() {
@ -222,7 +222,7 @@
}
})
} else if (!selection) {
this.$messageBox(`请选择一条数据`);
this.$messageBox(this.$t('tip.selectAPieceOfData'));
}
},
commit() {
@ -290,4 +290,4 @@
}
}
}
</script>
</script>

View File

@ -12,8 +12,8 @@
:close-on-click-modal="false"
>
<el-row class="header">
<el-col :span="10"><span>车站名称</span></el-col>
<el-col :span="10" :offset="2"><span>信号机名称</span></el-col>
<el-col :span="10"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="10" :offset="2"><span>{{$t('menu.signalName')}}</span></el-col>
</el-row>
<el-row>
<el-col :span="10">
@ -24,7 +24,7 @@
</el-col>
</el-row>
<div class="table">
<span>信号按钮列表</span>
<span>{{$t('menu.listOfSignalButtons')}}</span>
<el-table
ref="table"
:data="tempData"
@ -34,16 +34,16 @@
highlight-current-row
:height="140"
>
<el-table-column prop="name" label="按钮名称" />
<el-table-column prop="status" label="按钮状态" />
<el-table-column prop="name" :label="this.$t('menu.buttonName')" />
<el-table-column prop="status" :label="this.$t('menu.buttonStatus')" />
</el-table>
</div>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" />
@ -85,7 +85,7 @@ export default {
return this.dialogShow ? OperationEvent.Signal.lock.menu.domId : '';
},
title() {
return '封锁信号按钮';
return this.$t('menu.blockSignalButton');
}
},
mounted() {
@ -110,7 +110,7 @@ export default {
/** status 04:封锁*/
const signal = (selected || {}).status;
this.tempData = [{ code: selected.code, name: selected.name, status: signal.status != '04' ? '未封锁' : '封锁' }];
this.tempData = [{ code: selected.code, name: selected.name, status: signal.status != '04' ? this.$t('menu.unblocked') : this.$t('menu.blocked') }];
const timer = setInterval(() => {
if (this.$refs.table) {
this.$refs.table.setCurrentRow(this.tempData[0]);

View File

@ -11,8 +11,8 @@
:close-on-click-modal="false"
>
<el-row class="header">
<el-col :span="8"><span>车站名称</span></el-col>
<el-col :span="8" :offset="2"><span>始端信号机</span></el-col>
<el-col :span="8"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="8" :offset="2"><span>{{$t('menu.startSignal')}}</span></el-col>
</el-row>
<el-row>
<el-col :span="8">
@ -32,16 +32,16 @@
highlight-current-row
@row-click="clickEvent"
>
<el-table-column :id="domIdChoose" prop="name" label="进路" style="margin-left:30px" />
<el-table-column prop="protectedSection" label="保护区段" :width="180">
<el-table-column :id="domIdChoose" prop="name" :label="this.$t('menu.route')" style="margin-left:30px" />
<el-table-column prop="protectedSection" :label="this.$t('menu.protectionSection')" :width="180">
<template slot-scope="scope">
<span>{{ getProtectedSectionName(scope.row) }}</span>
</template>
</el-table-column>
<el-table-column prop="canSetting" label="状态" :width="100">
<el-table-column prop="canSetting" :label="this.$t('global.status')" :width="100">
<template slot-scope="scope">
<span v-if="scope.row.canSetting">允许选排</span>
<span v-else>不允许选排</span>
<span v-if="scope.row.canSetting">{{$t('menu.allowSelection')}}</span>
<span v-else>{{$t('menu.notAllowSelection')}}</span>
</template>
</el-table-column>
</el-table>
@ -57,10 +57,10 @@
:loading="loading"
:disabled="commitDisabled"
@click="commit"
>确定</el-button>
>{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<confirm-control ref="confirmControl" />
@ -106,7 +106,7 @@ export default {
return this.dialogShow ? OperationEvent.Signal.arrangementRoute.menu.domId : '';
},
title() {
return '进路选排';
return this.$t('menu.menuSignal.routeSelect');
},
commitDisabled() {
let disabled = true;
@ -225,7 +225,7 @@ export default {
const operate = {
type: MapDeviceType.Signal.type,
operation: OperationEvent.Signal.arrangementRoute.menu.operation,
messages: [`进路设置:${this.row.name}${names}(${this.row.stationName})`]
messages: [this.$t('menu.accessSetting') + this.$t('global.colon') + `${this.row.name}${names}(${this.row.stationName})`]
};
this.loading = true;

View File

@ -3,11 +3,11 @@
<el-dialog class="fuzhou-01__systerm section-cmd-control" :title="title" :visible.sync="show" width="800px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<div style="padding: 10px 20px; border: 1px solid lightgray;">
<span class="base-label">命令信息</span>
<span class="base-label">{{$t('menu.commandInformation')}}</span>
<el-form label-position="center" size="mini">
<el-row>
<el-col :span="8">
<el-form-item label="类型" label-width="40px">
<el-form-item :label="this.$t('global.status')" label-width="40px">
<el-select v-model="operation" size="small" disabled>
<el-option v-for="option in typeList" :key="option.code" :label="option.name"
:value="option.code">
@ -16,12 +16,12 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="车站名称" label-width="80px">
<el-form-item :label="this.$t('menu.stationName')" label-width="80px">
<el-input v-model="stationName" size="small" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="区段名称" label-width="100px">
<el-form-item :label="this.$t('menu.sectionName')" label-width="100px">
<el-input v-model="sectionName" size="small" disabled></el-input>
</el-form-item>
</el-col>
@ -30,34 +30,34 @@
</div>
<el-table class="table" ref="tempData" :data="tempData" border style="width: 100%" size="mini"
highlight-current-row height="200">
<el-table-column prop="order" :width="50" label="序号">
<el-table-column prop="order" :width="50" :label="this.$t('menu.serialNumber2')">
</el-table-column>
<el-table-column prop="date" :width="160" label="时间">
<el-table-column prop="date" :width="160" :label="this.$t('menu.time')">
</el-table-column>
<el-table-column prop="context" :width="180" label="执行过程">
<el-table-column prop="context" :width="180" :label="this.$t('menu.implementationProcess')">
</el-table-column>
<el-table-column prop="result" label="执行结果">
<el-table-column prop="result" :label="this.$t('menu.executionResult')">
</el-table-column>
</el-table>
<span class="notice">{{message}}</span>
<el-row class="button-group">
<el-col :span="2" :offset="2">
<el-button :id="domIdCommand" type="primary" :disabled="cmdDisabled[0]" @click="command">下达<span
<el-button :id="domIdCommand" type="primary" :disabled="cmdDisabled[0]" @click="command">{{$t('menu.release')}}<span
v-show="timeCountCommand>0">({{timeCountCommand}})</span></el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdConfirm1" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">确认1
<el-button :id="domIdConfirm1" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">{{$t('menu.firstConfirm')}}
</el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdConfirm2" type="primary" :disabled="cmdDisabled[2]" @click="confirm2">确认2<span
<el-button :id="domIdConfirm2" type="primary" :disabled="cmdDisabled[2]" @click="confirm2">{{$t('menu.secondConfirm')}}<span
v-show="timeCountConfirm>0">({{timeCountConfirm}})</span></el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdStop" type="primary" :disabled="stpDisabled" @click="stop">中止</el-button>
<el-button :id="domIdStop" type="primary" :disabled="stpDisabled" @click="stop">{{$t('menu.suspend')}}</el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdClose" @click="close">关闭</el-button>
<el-button :id="domIdClose" @click="close">{{$t('global.close')}}</el-button>
</el-col>
</el-row>
</el-dialog>
@ -91,9 +91,9 @@
computed: {
typeList() {
return [
{ code: OperationEvent.Section.unlock.menu.operation, name: '区段解封' },
{ code: OperationEvent.Section.fault.menu.operation, name: '区段故障解锁' },
{ code: OperationEvent.Section.axlePreReset.menu.operation, name: '区段计轴预复位' },
{ code: OperationEvent.Section.unlock.menu.operation, name: this.$t('menu.menuSection.sectionUnblock') },
{ code: OperationEvent.Section.fault.menu.operation, name: this.$t('menu.menuSection.sectionFaultUnlock') },
{ code: OperationEvent.Section.axlePreReset.menu.operation, name: this.$t('menu.menuSection.sectionAxisPreReset') },
]
},
show() {
@ -163,11 +163,11 @@
title() {
if (this.dialogShow) {
if (this.operation == OperationEvent.Section.unlock.menu.operation) {
return '区段解封';
return this.$t('menu.menuSection.sectionUnblock');
} else if (this.operation == OperationEvent.Section.fault.menu.operation) {
return '区段故障解锁';
return this.$t('menu.menuSection.sectionFaultUnlock');
} else if (this.operation == OperationEvent.Section.axlePreReset.menu.operation) {
return '区段计轴预复位';
return this.$t('menu.menuSection.sectionAxisPreReset');
}
}
}
@ -241,7 +241,7 @@
this.cmdDisabled = [false, true, true];
}
this.stpDisabled = true;
this.setMessage('请点击“下达”按钮,下达命令!');
this.setMessage(this.$t('tip.releaseTip'));
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
@ -280,18 +280,18 @@
operate.operation = OperationEvent.Section.axlePreReset.order.operation
}
this.setMessage('请点击“确认1”按钮确认命令');
this.writeRecord({ order: ++this.order, date: now(), context: '点击下达命令', result: '' });
this.setMessage(this.$t('tip.firstConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 1 });
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionException') });
})
},
confirm1() {
@ -310,20 +310,20 @@
operate.operation = OperationEvent.Section.axlePreReset.confirm1.operation;
}
this.setMessage('请点击“确认2”按钮确认命令');
this.writeRecord({ order: ++this.order, date: now(), context: '点击确认1', result: '' });
this.setMessage(this.$t('tip.secondConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.timeCountCommand = -1;
this.timeCountConfirm = 10;
this.setButtonEnable({ step: 2 });
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionException') });
})
},
confirm2() {
@ -343,22 +343,22 @@
operate.operation = OperationEvent.Section.axlePreReset.confirm2.operation;
}
this.setMessage('');
this.writeRecord({ order: ++this.order, date: now(), context: '点击确认2', result: '' });
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
this.timeCountCommand = -1;
this.timeCountConfirm = -1;
this.setButtonEnable({ step: -1 });
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.timeCountCommand = -1;
this.timeCountConfirm = -1;
this.setButtonEnable({ step: -1 });
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionException') });
})
},
stop() {
@ -377,17 +377,17 @@
operate.operation = OperationEvent.Section.axlePreReset.stop.operation;
}
this.writeRecord({ order: ++this.order, date: now(), context: '点击终止', result: '' });
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickSuspend'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 0 });
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionFailed') });
}
}).catch(error => {
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionException') });
})
},
close() {
@ -430,4 +430,4 @@
}
}
}
</script>
</script>

View File

@ -2,8 +2,8 @@
<el-dialog class="fuzhou-01__systerm section-control" :title="title" :visible.sync="show" width="300px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header">
<el-col :span="11"><span>车站名称</span></el-col>
<el-col :span="11" :offset="2"><span>区段</span></el-col>
<el-col :span="11"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="11" :offset="2"><span>{{$t('menu.section')}}</span></el-col>
</el-row>
<el-row>
<el-col :span="11">
@ -15,10 +15,10 @@
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo"></notice-info>
@ -55,11 +55,11 @@
},
title() {
if (this.operation == OperationEvent.Section.lock.menu.operation) {
return '区段封锁';
return this.$t('menu.menuSection.sectionBlockade');
} else if (this.operation == OperationEvent.Section.split.menu.operation) {
return '轨道区段切除';
return this.$t('menu.menuSection.orbitalSectionResection');
} else if (this.operation == OperationEvent.Section.active.menu.operation) {
return '轨道区段激活';
return this.$t('menu.menuSection.orbitalSectionActive');
}
}
},
@ -187,4 +187,4 @@
}
}
}
</script>
</script>

View File

@ -12,11 +12,11 @@
:close-on-click-modal="false"
>
<div style="padding: 10px 20px; border: 1px solid lightgray;">
<span class="base-label">命令信息</span>
<span class="base-label">{{$t('menu.commandInformation')}}</span>
<el-form label-position="center" size="mini">
<el-row>
<el-col :span="6">
<el-form-item label="类型" label-width="40px">
<el-form-item :label="this.$t('menu.type')" label-width="40px">
<el-select v-model="operation" size="small" disabled>
<el-option
v-for="option in typeList"
@ -28,7 +28,7 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="车站名称" label-width="80px">
<el-form-item :label="this.$t('menu.stationName')" label-width="80px">
<el-input v-model="stationName" size="small" disabled />
</el-form-item>
</el-col>
@ -38,7 +38,7 @@
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="限速值" label-width="80px">
<el-form-item :label="this.$t('menu.speedLimitValue')" label-width="80px">
<el-select
:id="domIdChoose"
v-model="speed"
@ -63,32 +63,32 @@
highlight-current-row
height="200"
>
<el-table-column prop="order" :width="50" label="序号" />
<el-table-column prop="date" :width="160" label="时间" />
<el-table-column prop="context" :width="180" label="执行过程" />
<el-table-column prop="result" label="执行结果" />
<el-table-column prop="order" :width="50" :label="this.$t('menu.serialNumber2')" />
<el-table-column prop="date" :width="160" :label="this.$t('menu.time')" />
<el-table-column prop="context" :width="180" :label="this.$t('menu.implementationProcess')" />
<el-table-column prop="result" :label="this.$t('menu.executionResult')" />
</el-table>
<span class="notice">{{ message }}</span>
<el-row class="button-group">
<el-col :span="2" :offset="2">
<el-button :id="domIdCommand" type="primary" :disabled="cmdDisabled[0]" @click="command">下达<span
<el-button :id="domIdCommand" type="primary" :disabled="cmdDisabled[0]" @click="command">{{$t('menu.release')}}<span
v-show="timeCountCommand>0"
>({{ timeCountCommand }})</span></el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdConfirm1" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">确认1
<el-button :id="domIdConfirm1" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">{{$t('menu.firstConfirm')}}
</el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdConfirm2" type="primary" :disabled="cmdDisabled[2]" @click="confirm2">确认2<span
<el-button :id="domIdConfirm2" type="primary" :disabled="cmdDisabled[2]" @click="confirm2">{{$t('menu.secondConfirm')}}<span
v-show="timeCountConfirm>0"
>({{ timeCountConfirm }})</span></el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdStop" type="primary" :disabled="stpDisabled" @click="stop">中止</el-button>
<el-button :id="domIdStop" type="primary" :disabled="stpDisabled" @click="stop">{{$t('menu.suspend')}}</el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdClose" @click="close">关闭</el-button>
<el-button :id="domIdClose" @click="close">{{$t('global.close')}}</el-button>
</el-col>
</el-row>
</el-dialog>
@ -133,10 +133,10 @@ export default {
nameLabel() {
if (this.operation == OperationEvent.Section.setSpeed.menu.operation ||
this.operation == OperationEvent.Section.cancelSpeed.menu.operation) {
return '区段名称';
return this.$t('menu.sectionName');
} else if (this.operation == OperationEvent.Switch.setSpeed.menu.operation ||
this.operation == OperationEvent.Switch.cancelSpeed.menu.operation) {
return '道岔名称';
return this.$t('menu.switchName');
}
return null;
},
@ -149,22 +149,22 @@ export default {
},
typeList() {
return [
{ code: OperationEvent.Section.setSpeed.menu.operation, name: '区段设置限速' },
{ code: OperationEvent.Section.cancelSpeed.menu.operation, name: '区段取消限速' },
{ code: OperationEvent.Switch.setSpeed.menu.operation, name: '道岔设置限速' },
{ code: OperationEvent.Switch.cancelSpeed.menu.operation, name: '道岔取消限速' }
{ code: OperationEvent.Section.setSpeed.menu.operation, name: this.$t('menu.menuSection.sectionSetSpeedLimit') },
{ code: OperationEvent.Section.cancelSpeed.menu.operation, name: this.$t('menu.menuSection.sectionCancelSpeedLimit') },
{ code: OperationEvent.Switch.setSpeed.menu.operation, name: this.$t('menu.turnoutSettingSpeedLimit') },
{ code: OperationEvent.Switch.cancelSpeed.menu.operation, name: this.$t('menu.turnoutCancelsSpeedLimit') }
];
},
title() {
if (this.dialogShow) {
if (this.operation == OperationEvent.Section.setSpeed.menu.operation) {
return '区段设置限速';
return this.$t('menu.menuSection.sectionSetSpeedLimit');
} else if (this.operation == OperationEvent.Section.cancelSpeed.menu.operation) {
return '区段取消限速';
return this.$t('menu.menuSection.sectionCancelSpeedLimit');
} else if (this.operation == OperationEvent.Switch.setSpeed.menu.operation) {
return '道岔设置限速';
return this.$t('menu.turnoutSettingSpeedLimit');
} else if (this.operation == OperationEvent.Switch.cancelSpeed.menu.operation) {
return '道岔取消限速';
return this.$t('menu.turnoutCancelsSpeedLimit');
}
}
return null;
@ -354,7 +354,7 @@ export default {
this.order = 0;
this.type = operate.type;
this.operation = operate.operation;
this.setMessage('请选择限速值后,点击“下达”按钮,下达命令!');
this.setMessage(this.$t('tip.selectSpeedLimitValueTip'));
if (this.isCancelSpeed) {
this.speed = `${tempData}`;
this.spdDisabled = true;
@ -386,7 +386,7 @@ export default {
operate.operation = OperationEvent.Switch.setSpeed.choose.operation;
}
this.setMessage('请点击“下达”按钮,下达命令!');
this.setMessage(this.$t('tip.releaseTip'));
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
@ -402,33 +402,33 @@ export default {
if (this.operation == OperationEvent.Section.setSpeed.menu.operation) {
/** 区段设置限速*/
operate.operation = OperationEvent.Section.setSpeed.order.operation;
operate.message = `${this.name}区段,区段设置限速${this.speed}km/h确认下达吗`;
operate.message = this.$t('menu.in') + `${this.name}`+ this.$t('menu.sectionSetLimitPrefix') +`${this.speed}` + this.$t('menu.sectionLimitSuffix');
} else if (this.operation == OperationEvent.Section.cancelSpeed.menu.operation) {
/** 区段取消限速*/
operate.operation = OperationEvent.Section.cancelSpeed.order.operation;
operate.message = `${this.name}区段,区段取消限速${this.speed}km/h确认下达吗`;
operate.message = this.$t('menu.in') + `${this.name}`+ this.$t('menu.sectionCancelLimitPrefix') +`${this.speed}` + this.$t('menu.sectionLimitSuffix');
} else if (this.operation == OperationEvent.Switch.setSpeed.menu.operation) {
/** 道岔设置限速*/
operate.operation = OperationEvent.Switch.setSpeed.order.operation;
operate.message = `${this.name}道岔,道岔设置限速${this.speed}km/h确认下达吗`;
operate.message = this.$t('menu.in') + `${this.name}`+ this.$t('menu.switchSetLimitPrefix') +`${this.speed}` + this.$t('menu.sectionLimitSuffix');
} else if (this.operation == OperationEvent.Switch.cancelSpeed.menu.operation) {
/** 道岔取消限速*/
operate.operation = OperationEvent.Switch.cancelSpeed.order.operation;
operate.message = `${this.name}道岔,道岔取消限速${this.speed}km/h确认下达吗`;
operate.message = this.$t('menu.in') + `${this.name}`+ this.$t('menu.switchCancelLimitPrefix') +`${this.speed}` + this.$t('menu.sectionLimitSuffix');
}
this.setMessage('请点击“确认1”按钮确认命令');
this.writeRecord({ order: ++this.order, date: now(), context: '点击下达命令', result: '' });
this.setMessage(this.$t('tip.firstConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionSucceed') });
this.$refs.confirmControlSpeed.doShow(operate, this.selected);
} else {
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionException') });
});
},
confirm1() {
@ -450,20 +450,20 @@ export default {
operate.operation = OperationEvent.Switch.cancelSpeed.confirm1.operation;
}
this.setMessage('请点击“确认2”按钮确认命令');
this.writeRecord({ order: ++this.order, date: now(), context: '点击确认1', result: '' });
this.setMessage(this.$t('tip.secondConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.timeCountCommand = -1;
this.timeCountConfirm = 10;
this.setButtonEnable({ step: 2 });
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionException') });
});
},
confirm2() {
@ -488,22 +488,22 @@ export default {
}
this.setMessage('');
this.writeRecord({ order: ++this.order, date: now(), context: '点击确认2', result: '' });
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
this.timeCountCommand = -1;
this.timeCountConfirm = -1;
this.setButtonEnable({ step: -1 });
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.timeCountCommand = -1;
this.timeCountConfirm = -1;
this.setButtonEnable({ step: -1 });
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionException') });
});
},
stop() {
@ -525,17 +525,17 @@ export default {
operate.operation = OperationEvent.Switch.cancelSpeed.stop.operation;
}
this.writeRecord({ order: ++this.order, date: now(), context: '点击终止', result: '' });
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickSuspend'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 0 });
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionException') });
});
},
close() {
@ -543,7 +543,7 @@ export default {
type: this.type,
operation: OperationEvent.Command.close.menu.operation
};
this.writeRecord({ order: ++this.order, date: now(), context: '点击关闭', result: '' });
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickToClose'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.doClose();

View File

@ -2,8 +2,8 @@
<el-dialog class="fuzhou-01__systerm stand-run-level" :title="title" :visible.sync="show" width="500px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header">
<el-col :span="10"><span>车站名称</span></el-col>
<el-col :span="10" :offset="2"><span>站台状态</span></el-col>
<el-col :span="10"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="10" :offset="2"><span>{{$t('menu.stationStandStatus')}}</span></el-col>
</el-row>
<el-row>
<el-col :span="10">
@ -12,20 +12,20 @@
<el-col :span="10" :offset="2">
<div style="height: 32px;">
<el-radio v-model="standStatus" label="02" style="line-height: 32px;"
:style="{color: standStatus == '02' ? '' : 'red'}" disabled>上行方向</el-radio>
:style="{color: standStatus == '02' ? '' : 'red'}" disabled>{{$t('menu.upDirection')}}</el-radio>
<el-radio v-model="standStatus" label="01" style="line-height: 32px;"
:style="{color: standStatus == '01' ? '' : 'red'}" disabled>下行方向</el-radio>
:style="{color: standStatus == '01' ? '' : 'red'}" disabled>{{$t('menu.downDirection')}}</el-radio>
</div>
</el-col>
</el-row>
<div class="table">
<span>站台状态</span>
<span>{{$t('menu.stationStandStatus')}}</span>
<el-table ref="tempData" :data="tempData" border style="width: 100%; height: 170px;" size="mini">
<el-table-column prop="name" :width="170" label="折返站">
<el-table-column prop="name" :width="170" :label="this.$t('menu.switchbackStation')">
</el-table-column>
<el-table-column prop="station" label="折返站台">
<el-table-column prop="station" :label="this.$t('menu.switchbackPlatform')">
</el-table-column>
<el-table-column prop="strategy" label="折返策略">
<el-table-column prop="strategy" :label="this.$t('menu.switchbackStrategy')">
<template slot-scope="scope">
<el-select v-model="scope.row.strategy" size="mini" @change="strategySelectChange"
:id='domIdChoose'>
@ -38,16 +38,16 @@
</el-table>
</div>
<el-row class="button-group">
<span v-if="isSelect && tempData.length">提示: 未设置折返策略</span>
<span v-if="isConfirm && tempData.length">提示: 选中站台{{tempData[0].name}}设置运行折返策略</span>
<span v-if="isSelect && tempData.length">{{$t('menu.switchbackStrategyTip')}}</span>
<span v-if="isConfirm && tempData.length">{{$t('menu.setSwitchbackStrategyTipPrefix') + tempData[0].name + $t('menu.setSwitchbackStrategyTipSuffix')}}</span>
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!isConfirm" @click="commit">
确定</el-button>
{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<confirm-control ref="confirmControl"></confirm-control>
@ -75,19 +75,19 @@
strategyList: [
{
value: '01',
label: '无折返'
label: this.$t('menu.noSwitchback')
},
{
value: '02',
label: '无人折返'
label: this.$t('menu.noOneSwitchback')
},
{
value: '03',
label: '自动换端'
label: this.$t('menu.automaticChange')
},
{
value: '04',
label: '默认'
label: this.$t('menu.default')
},
],
stationName: '',
@ -115,7 +115,7 @@
return this.dialogShow ? OperationEvent.StationStand.setBackStrategy.choose.domId : '';
},
title() {
return '设置折返策略';
return this.$t('menu.setSwitchbackStrategy');
}
},
mounted() {
@ -225,4 +225,4 @@
}
}
}
</script>
</script>

View File

@ -6,10 +6,10 @@
</div>
<el-row class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo"></notice-info>
@ -46,17 +46,17 @@
},
title() {
if (this.operation == OperationEvent.StationStand.setDetainTrain.menu.operation) {
return '扣车';
return this.$t('menu.menuStationStand.detainTrain');
} else if (this.operation == OperationEvent.StationStand.cancelDetainTrain.menu.operation) {
return '取消扣车';
return this.$t('menu.menuStationStand.cancelDetainTrain');
} else if (this.operation == OperationEvent.StationStand.cancelDetainTrainForce.menu.operation) {
return '强制取消扣车'
return this.$t('menu.menuStationStand.cancelDetainTrainForce');
} else if (this.operation == OperationEvent.StationStand.earlyDeparture.menu.operation) {
return '提前发车'
return this.$t('menu.menuStationStand.earlyDeparture');
} else if (this.operation == OperationEvent.StationStand.setJumpStop.menu.operation) {
return '设置跳停'
return this.$t('menu.menuStationStand.setJumpStop');
} else if (this.operation == OperationEvent.StationStand.cancelJumpStop.menu.operation) {
return '取消跳停'
return this.$t('menu.menuStationStand.cancelJumpStop');
}
},
preContext() {
@ -257,4 +257,4 @@
.stand-detain-train .context {
height: 80px !important;
}
</style>
</style>

View File

@ -2,8 +2,8 @@
<el-dialog class="fuzhou-01__systerm stand-detail" :title="title" :visible.sync="show" width="400px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header">
<el-col :span="10"><span>车站名称</span></el-col>
<el-col :span="10" :offset="2"><span>站台</span></el-col>
<el-col :span="10"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="10" :offset="2"><span>{{$t('menu.platform')}}</span></el-col>
</el-row>
<el-row>
<el-col :span="10">
@ -14,20 +14,20 @@
</el-col>
</el-row>
<div class="table">
<span>站台状态</span>
<span>{{$t('menu.stationStandStatus')}}</span>
<el-table ref="tempData" :data="tempData" border style="width: 100%" size="mini" highlight-current-row>
<el-table-column prop="item" :width="140" label="项目">
<el-table-column prop="item" :width="140" :label="this.$t('menu.item')">
</el-table-column>
<el-table-column prop="status" label="状态">
<el-table-column prop="status" :label="this.$t('global.status')">
</el-table-column>
</el-table>
</div>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo"></notice-info>
@ -52,10 +52,10 @@
stationName: '',
standName: '',
strategyMap: {
'01': '无折返',
'02': '无人折返',
'03': '自动换端',
'04': '默认'
'01': this.$t('menu.noSwitchback'),
'02': this.$t('menu.noOneSwitchback'),
'03': this.$t('menu.automaticChange'),
'04': this.$t('menu.default')
}
}
},
@ -73,7 +73,7 @@
return this.dialogShow ? OperationEvent.Command.close.confirm.domId : '';
},
title() {
return '查询站台状态';
return this.$t('menu.menuStationStand.getStationStandStatus');
}
},
mounted() {
@ -103,16 +103,16 @@
}
/** 01: 未设置扣车 02: 车站扣车 03: 中心扣车 04: 中心+车站扣车*/
this.tempData.push({ item: '车站扣车', status: opts.holdStatus == '02' || opts.holdStatus == '04' ? '已设置' : '未设置' });
this.tempData.push({ item: '中心扣车', status: opts.holdStatus == '03' || opts.holdStatus == '04' ? '已设置' : '未设置' });
this.tempData.push({ item: '停站时间', status: opts.parkingTime != -1 ? opts.parkingTime : '自动' });
this.tempData.push({ item: this.$t('menu.stationDetainTrain'), status: opts.holdStatus == '02' || opts.holdStatus == '04' ? this.$t('menu.hasBeenSet') : this.$t('menu.notSet') });
this.tempData.push({ item: this.$t('menu.centerDetainTrain'), status: opts.holdStatus == '03' || opts.holdStatus == '04' ? this.$t('menu.hasBeenSet') : this.$t('menu.notSet') });
this.tempData.push({ item: this.$t('menu.stopTime'), status: opts.parkingTime != -1 ? opts.parkingTime : this.$t('menu.automatic2') });
if (!stationStand || !station) {
this.tempData.push({ item: '运行等级', status: `自动` });
this.tempData.push({ item: this.$t('menu.runLevel'), status: this.$t('menu.automatic2') });
} else {
this.tempData.push({ item: '运行等级', status: opts.intervalRunTime > 0 ? `${station.name}${stationStand.name}:人工` : `${station.name}${stationStand.name}:自动` });
this.tempData.push({ item: this.$t('menu.runLevel'), status: opts.intervalRunTime > 0 ? this.$t('menu.to')+station.name+stationStand.name+ this.$t('global.colon') + this.$t('menu.artificial') : this.$t('menu.to')+station.name+stationStand.name+ this.$t('menu.automatic2') });
}
this.tempData.push({ item: '跳停', status: opts.jumpStopStatus != '01' ? '已设置' : '未设置' });
this.tempData.push({ item: '下行折返策略', status: this.strategyMap[opts.reentryStrategy] ? this.strategyMap[opts.reentryStrategy] : '默认' });
this.tempData.push({ item: this.$t('menu.jumpStop'), status: opts.jumpStopStatus != '01' ? this.$t('menu.hasBeenSet') : this.$t('menu.notSet') });
this.tempData.push({ item: this.$t('menu.downSwitchbackStrategy'), status: this.strategyMap[opts.reentryStrategy] ? this.strategyMap[opts.reentryStrategy] : this.$t('menu.default') });
},
doShow(operate, selected, opts) {
if (!this.dialogShow) {
@ -170,4 +170,4 @@
}
}
}
</script>
</script>

View File

@ -11,42 +11,42 @@
:close-on-click-modal="false"
>
<el-radio-group style="padding: 10px 20px; border: 1px double lightgray; ">
<span class="base-label">范围</span>
<span class="base-label">{{$t('menu.range')}}</span>
<el-row>
<el-radio-group v-model="upDown" @change="choose">
<el-col :span="10">
<el-radio :id="upDown == '01' ? domIdChoose : ''" label="02">上行全线</el-radio>
<el-radio :id="upDown == '01' ? domIdChoose : ''" label="02">{{$t('menu.uplinkBroadly')}}</el-radio>
</el-col>
<el-col :span="6" :offset="8">
<el-radio :id="upDown == '02' ? domIdChoose : ''" label="01">下行全线</el-radio>
<el-radio :id="upDown == '02' ? domIdChoose : ''" label="01">{{$t('menu.downlinkBroadly')}}</el-radio>
</el-col>
</el-radio-group>
</el-row>
</el-radio-group>
<div class="table">
<span>扣车站台列表中心设置</span>
<span>{{$t('menu.detainTrainStationList')}}</span>
<el-table
ref="tempData"
:data="tempData"
border
style="width: 100%"
size="mini"
empty-text="所有站台都无扣车状态!"
:empty-text="this.$t('menu.allStationsHaveNoDetainTrainStatus')"
height="160"
highlight-current-row
>
<el-table-column prop="stationName" label="车站名称" />
<el-table-column prop="standName" :width="140" label="扣车站台" />
<el-table-column prop="stationName" :label="this.$t('menu.stationName')" />
<el-table-column prop="standName" :width="140" :label="this.$t('menu.detainTrainStation')" />
</el-table>
</div>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="disabled" @click="commit">确定
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="disabled" @click="commit">{{$t('global.confirm')}}
</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" />
@ -91,9 +91,9 @@ export default {
},
title() {
if (this.operation == OperationEvent.StationStand.cancelDetainTrainAll.menu.operation) {
return '全线取消扣车';
return this.$t('menu.menuStationStand.cancelDetainTrainAll');
} else {
return '全线取消跳停';
return this.$t('menu.menuStationStand.cancelJumpStopAll');
}
}
},

View File

@ -2,8 +2,8 @@
<el-dialog class="fuzhou-01__systerm stand-run-level" :title="title" :visible.sync="show" width="500px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header">
<el-col :span="10"><span>车站名称</span></el-col>
<el-col :span="10" :offset="2"><span>站台</span></el-col>
<el-col :span="10"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="10" :offset="2"><span>{{$t('menu.platform')}}</span></el-col>
</el-row>
<el-row>
<el-col :span="10">
@ -14,11 +14,11 @@
</el-col>
</el-row>
<div class="table">
<span>站台状态</span>
<span>{{$t('menu.stationStandStatus')}}</span>
<el-table ref="tempData" :data="tempData" border style="width: 100%; height: 170px;" size="mini">
<el-table-column prop="name" :width="210" label="下一站台">
<el-table-column prop="name" :width="210" :label="this.$t('menu.nextPlatform')">
</el-table-column>
<el-table-column prop="time" label="区间运行时间">
<el-table-column prop="time" :label="this.$t('menu.intervalRunningTime')">
<template slot-scope="scope">
<el-select v-model="scope.row.time" size="mini" @change="timeSelectChange" :id='domIdChoose'>
<el-option v-for="item in timeList" :key="item.value" :label="item.label"
@ -27,7 +27,7 @@
</el-select>
</template>
</el-table-column>
<el-table-column prop="check" label="一直有效">
<el-table-column prop="check" :label="this.$t('menu.alwaysEffective')">
<template slot-scope="scope">
<el-checkbox ref="check" v-model="scope.row.check" @change="checkChange" :id='domIdCheck'>
</el-checkbox>
@ -36,16 +36,16 @@
</el-table>
</div>
<el-row class="button-group">
<span v-if="isSelect && tempData.length">提示: 未选中要设置运行等级的下一站台</span>
<span v-if="isConfirm && tempData.length">提示: 选中要设置运行等级的下一站台为{{tempData[0].name}}</span>
<span v-if="isSelect && tempData.length">{{ $t('menu.setRunLevelTip') }}</span>
<span v-if="isConfirm && tempData.length">{{ $t('menu.setRunLevelStationTip') + tempData[0].name}}</span>
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!isConfirm" @click="commit">
确定</el-button>
{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<confirm-control ref="confirmControl"></confirm-control>
@ -106,11 +106,11 @@
return this.dialogShow ? OperationEvent.StationStand.setRunLevel.check.domId : '';
},
title() {
return '设置运行等级';
return this.$t('menu.menuStationStand.setRunLevel');
},
timeList() {
let list = [
{ value: 0, label: '自动' },
{ value: 0, label: this.$t('menu.automatic2') },
{ value: 1, label: '1' }
];
for (var i = 60; i <= this.maxRunLevel; i++) {
@ -221,7 +221,7 @@
let operate = {
type: MapDeviceType.StationStand.type,
operation: OperationEvent.StationStand.setRunLevel.menu.operation,
messages: [`设置运行等级:${this.tempData[0].name}-${this.standName},${this.tempData[0].time == 0 ? `运行时间自动` : `运行时间为${this.tempData[0].time}s`},有效次数为${this.tempData[0].check ? '一直有效' : '一次有效'}`],
messages: [ `${this.$t('menu.menuStationStand.setRunLevel')}${this.$t('global.colon')}${this.tempData[0].name}-${this.standName},${this.tempData[0].time == 0 ? this.$t('menu.runTimeAutomatically') : `${this.$t('menu.runningTimeIs')}${this.tempData[0].time}s`},${this.$t('menu.effectiveFrequencyIs')}${this.tempData[0].check ? this.$t('menu.alwaysEffective') : this.$t('menu.onceEffective')}`],
val: [this.time, forver].join('::'),
}
@ -257,4 +257,4 @@
}
}
}
</script>
</script>

View File

@ -2,8 +2,8 @@
<el-dialog class="fuzhou-01__systerm stand-stop-time" :title="title" :visible.sync="show" width="340px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header">
<el-col :span="11"><span>车站名称</span></el-col>
<el-col :span="11" :offset="2"><span>站台名称</span></el-col>
<el-col :span="11"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="11" :offset="2"><span>{{$t('menu.platformName')}}</span></el-col>
</el-row>
<el-row>
<el-col :span="11">
@ -14,40 +14,40 @@
</el-col>
</el-row>
<div style="padding: 10px 15px; border: 1px double lightgray; margin: 20px 0px; height: 60px;">
<span class="base-label">控制方式</span>
<span class="base-label">{{$t('menu.controlMode')}}</span>
<div style=" position: relative; top:-10px;">
<el-radio-group v-model="control" @change='chooseControl'>
<el-radio label="01" :id="control === '01'? '': domIdChoose1">自动</el-radio>
<el-radio label="02" :id="control === '02'? '': domIdChoose1">人工</el-radio>
<el-radio label="01" :id="control === '01'? '': domIdChoose1">{{$t('menu.automatic2')}}</el-radio>
<el-radio label="02" :id="control === '02'? '': domIdChoose1">{{$t('menu.artificial')}}</el-radio>
</el-radio-group>
<el-input-number v-model="time" @change="inputTime" :disabled="disabledInput" :id="domIdInput"
controls-position="right" :min="0" size="mini" style="width: 130px; padding-left:30px">
</el-input-number>
</el-input-number>{{$t('global.second')}}
</div>
</div>
<div style="padding: 0px 15px; height: 30px;">
<div style=" position: relative; top:-5px;">
<el-radio-group v-model="direction">
<el-radio label="02" :disabled="disabledUp">上行方向</el-radio>
<el-radio label="01" :disabled="disabledDown">下行方向</el-radio>
<el-radio label="02" :disabled="disabledUp">{{$t('menu.upDirection')}}</el-radio>
<el-radio label="01" :disabled="disabledDown">{{$t('menu.downDirection')}}</el-radio>
</el-radio-group>
</div>
</div>
<div style="padding: 10px 15px; border: 1px double lightgray; height: 60px;">
<span class="base-label">有效次数</span>
<span class="base-label">{{$t('menu.effectiveNumber')}}</span>
<div style=" position: relative; top:-10px;">
<el-radio-group v-model="effective" @change="chooseEffective" :disabled="disabledTime">
<el-radio :label="false" :id="effective === false? '': domIdChoose2">一次有效</el-radio>
<el-radio :label="true" :id="effective === true? '': domIdChoose2">一直有效</el-radio>
<el-radio :label="false" :id="effective === false? '': domIdChoose2">{{$t('menu.onceEffective')}}</el-radio>
<el-radio :label="true" :id="effective === true? '': domIdChoose2">{{$t('menu.alwaysEffective')}}</el-radio>
</el-radio-group>
</div>
</div>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<confirm-control ref="confirmControl"></confirm-control>
@ -117,7 +117,7 @@
return this.control === '01'; //
},
title() {
return '停站时间';
return this.$t('menu.stopTime');
}
},
mounted() {
@ -206,7 +206,7 @@
type: MapDeviceType.StationStand.type,
operation: OperationEvent.StationStand.setStopTime.menu.operation,
val: [`${this.control}`, this.time, this.effective].join('::'),
messages: [`停站时间: ${this.stationName} - ${this.standName}, 停站时间为${this.control == '01' ? '自动' : this.time + '秒'}, 有效次数为${this.effective == false ? '一次有效' : '一直有效'}`]
messages: [`${this.$t('menu.stopTime') + this.$t('global.colon') + this.stationName} - ${this.standName}, ${this.$t('menu.stopTimeIs')}${this.control == '01' ? this.$t('menu.automatic2') : this.time + this.$t('global.second')}, ${this.$t('menu.effectiveFrequencyIs')}${this.effective == false ? this.$t('menu.alwaysEffective') : this.$t('menu.onceEffective')}`]
}
this.loading = true;
@ -236,4 +236,4 @@
}
}
}
</script>
</script>

View File

@ -3,11 +3,11 @@
<el-dialog class="fuzhou-01__systerm station-cmd-control" :title="title" :visible.sync="show" width="800px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<div style="padding: 10px 20px; border: 1px solid lightgray;">
<span class="base-label">命令信息</span>
<span class="base-label">{{$t('menu.commandInformation')}}</span>
<el-form label-position="center" size="mini">
<el-row>
<el-col :span="8">
<el-form-item label="类型" label-width="40px">
<el-form-item :label="this.$t('menu.type')" label-width="40px">
<el-select v-model="operation" size="small" disabled>
<el-option v-for="option in typeList" :key="option.code" :label="option.name"
:value="option.code">
@ -16,7 +16,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="车站名称" label-width="100px">
<el-form-item :label="this.$t('menu.stationName')" label-width="100px">
<el-input v-model="stationName" size="small" disabled></el-input>
</el-form-item>
</el-col>
@ -25,34 +25,34 @@
</div>
<el-table class="table" ref="tempData" :data="tempData" border style="width: 100%" size="mini"
highlight-current-row height="200">
<el-table-column prop="order" :width="50" label="序号">
<el-table-column prop="order" :width="50" :label="this.$t('menu.serialNumber2')">
</el-table-column>
<el-table-column prop="date" :width="160" label="时间">
<el-table-column prop="date" :width="160" :label="this.$t('menu.time')">
</el-table-column>
<el-table-column prop="context" :width="180" label="执行过程">
<el-table-column prop="context" :width="180" :label="this.$t('menu.implementationProcess')">
</el-table-column>
<el-table-column prop="result" label="执行结果">
<el-table-column prop="result" :label="this.$t('menu.executionResult')">
</el-table-column>
</el-table>
<span class="notice">{{message}}</span>
<el-row class="button-group">
<el-col :span="2" :offset="2">
<el-button :id="domIdCommand" type="primary" :disabled="cmdDisabled[0]" @click="command">下达<span
<el-button :id="domIdCommand" type="primary" :disabled="cmdDisabled[0]" @click="command">{{$t('menu.release')}}<span
v-show="timeCountCommand>0">({{timeCountCommand}})</span></el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdConfirm1" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">确认1
<el-button :id="domIdConfirm1" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">{{$t('menu.firstConfirm')}}
</el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdConfirm2" type="primary" :disabled="cmdDisabled[2]" @click="confirm2">确认2<span
<el-button :id="domIdConfirm2" type="primary" :disabled="cmdDisabled[2]" @click="confirm2">{{$t('menu.secondConfirm')}}<span
v-show="timeCountConfirm>0">({{timeCountConfirm}})</span></el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdStop" type="primary" :disabled="stpDisabled" @click="stop">中止</el-button>
<el-button :id="domIdStop" type="primary" :disabled="stpDisabled" @click="stop">{{$t('menu.suspend')}}</el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdClose" @click="close">关闭</el-button>
<el-button :id="domIdClose" @click="close">{{$t('global.close')}}</el-button>
</el-col>
</el-row>
</el-dialog>
@ -84,8 +84,8 @@
computed: {
typeList() {
return [
{ code: OperationEvent.Station.powerUnLock.menu.operation, name: '上电解锁' },
{ code: OperationEvent.Station.execKeyOperationTest.menu.operation, name: '执行关键操作测试' }
{ code: OperationEvent.Station.powerUnLock.menu.operation, name: this.$t('menu.menuStation.powerUnLock') },
{ code: OperationEvent.Station.execKeyOperationTest.menu.operation, name: this.$t('menu.menuStation.execKeyOperationTest') }
]
},
show() {
@ -143,9 +143,9 @@
title() {
if (this.dialogShow) {
if (this.operation == OperationEvent.Station.powerUnLock.menu.operation) {
return '信号解封';
return this.$t('menu.signalDeblocking');
} else if (this.operation == OperationEvent.Station.execKeyOperationTest.menu.operation) {
return '执行关键操作测试';
return this.$t('menu.menuStation.execKeyOperationTest');
}
}
}
@ -206,7 +206,7 @@
}
this.stpDisabled = true;
this.dialogShow = true;
this.setMessage('请点击“下达”按钮,下达命令!');
this.setMessage(this.$t('tip.releaseTip'));
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
@ -240,18 +240,18 @@
operate.operation = OperationEvent.Station.execKeyOperationTest.order.operation
}
this.setMessage('请点击“确认1”按钮确认命令');
this.writeRecord({ order: ++this.order, date: now(), context: '点击下达命令', result: '' });
this.setMessage(this.$t('tip.firstConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 1 });
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionException') });
})
},
confirm1() {
@ -267,20 +267,20 @@
operate.operation = OperationEvent.Station.execKeyOperationTest.confirm1.operation;
}
this.setMessage('请点击“确认2”按钮确认命令');
this.writeRecord({ order: ++this.order, date: now(), context: '点击确认1', result: '' });
this.setMessage(this.$t('tip.secondConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.timeCountCommand = -1;
this.timeCountConfirm = 10;
this.setButtonEnable({ step: 2 });
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionException') });
})
},
confirm2() {
@ -298,22 +298,22 @@
}
this.setMessage('');
this.writeRecord({ order: ++this.order, date: now(), context: '点击确认2', result: '' });
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
this.timeCountCommand = -1;
this.timeCountConfirm = -1;
this.setButtonEnable({ step: -1 });
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.timeCountCommand = -1;
this.timeCountConfirm = -1;
this.setButtonEnable({ step: -1 });
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionException') });
})
},
stop() {
@ -329,17 +329,17 @@
operate.operation = OperationEvent.Station.execKeyOperationTest.stop.operation;
}
this.writeRecord({ order: ++this.order, date: now(), context: '点击终止', result: '' });
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickSuspend'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 0 });
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionFailed') });
}
}).catch(error => {
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionException') });
})
},
close() {
@ -382,4 +382,4 @@
}
}
}
</script>
</script>

View File

@ -6,10 +6,10 @@
</div>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo"></notice-info>
@ -37,7 +37,7 @@
return this.dialogShow && !this.$store.state.menuOperation.break;
},
title() {
return '全集中站进路交人工控';
return this.$t('menu.fullConcentrationStationAccessManualControl');
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
@ -111,4 +111,4 @@
padding-bottom: 40px !important;
border: 1px solid lightgray;
}
</style>
</style>

View File

@ -4,25 +4,25 @@
v-dialogDrag>
<div style="padding: 0px 10px">
<el-form size="small" label-width="90px" label-position="left" ref="form">
<el-form-item label="集中站名称:" prop="stationName">
<el-form-item :label="this.$t('menu.concentratedStationName')" prop="stationName">
<el-input v-model="stationName" size="small" disabled></el-input>
</el-form-item>
</el-form>
<el-radio-group v-model="mode">
<el-row>
<el-radio :label="true">检查冲突</el-radio>
<el-radio :label="true">{{$t('menu.checkConflict')}}</el-radio>
</el-row>
<el-row style="margin-top: 20px">
<el-radio :label="false">不检查冲突</el-radio>
<el-radio :label="false">{{$t('menu.notCheckConflict')}}</el-radio>
</el-row>
</el-radio-group>
</div>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo"></notice-info>
@ -52,7 +52,7 @@
return this.dialogShow && !this.$store.state.menuOperation.break;
},
title() {
return '全集中站设置进路控制模式';
return this.$t('menu.fullConcentrationStationSettingAccessControlMode');
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
@ -131,4 +131,4 @@
padding-bottom: 40px !important;
border: 1px solid lightgray;
}
</style>
</style>

View File

@ -3,11 +3,11 @@
<el-dialog class="fuzhou-01__systerm switch-cmd-control" :title="title" :visible.sync="show" width="800px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<div style="padding: 10px 20px; border: 1px solid lightgray;">
<span class="base-label">命令信息</span>
<span class="base-label">{{$t('menu.commandInformation')}}</span>
<el-form label-position="center" size="mini">
<el-row>
<el-col :span="8">
<el-form-item label="类型" label-width="40px">
<el-form-item :label="this.$t('menu.type')" label-width="40px">
<el-select v-model="operation" size="small" disabled>
<el-option v-for="option in typeList" :key="option.code" :label="option.name"
:value="option.code">
@ -16,12 +16,12 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="车站名称" label-width="80px">
<el-form-item :label="this.$t('menu.stationName')" label-width="80px">
<el-input v-model="stationName" size="small" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="道岔名称" label-width="80px">
<el-form-item :label="this.$t('menu.switchName')" label-width="80px">
<el-input v-model="switchName" size="small" disabled></el-input>
</el-form-item>
</el-col>
@ -30,34 +30,34 @@
</div>
<el-table class="table" ref="tempData" :data="tempData" border style="width: 100%" size="mini"
highlight-current-row height="200">
<el-table-column prop="order" :width="50" label="序号">
<el-table-column prop="order" :width="50" :label="this.$t('menu.serialNumber2')">
</el-table-column>
<el-table-column prop="date" :width="160" label="时间">
<el-table-column prop="date" :width="160" :label="this.$t('menu.time')">
</el-table-column>
<el-table-column prop="context" :width="180" label="执行过程">
<el-table-column prop="context" :width="180" :label="this.$t('menu.implementationProcess')">
</el-table-column>
<el-table-column prop="result" label="执行结果">
<el-table-column prop="result" :label="this.$t('menu.executionResult')">
</el-table-column>
</el-table>
<span class="notice">{{message}}</span>
<el-row class="button-group">
<el-col :span="2" :offset="2">
<el-button :id="domIdCommand" type="primary" :disabled="cmdDisabled[0]" @click="command">下达<span
<el-button :id="domIdCommand" type="primary" :disabled="cmdDisabled[0]" @click="command">{{$t('menu.release')}}<span
v-show="timeCountCommand>0">({{timeCountCommand}})</span></el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdConfirm1" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">确认1
<el-button :id="domIdConfirm1" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">{{$t('menu.firstConfirm')}}
</el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdConfirm2" type="primary" :disabled="cmdDisabled[2]" @click="confirm2">确认2<span
<el-button :id="domIdConfirm2" type="primary" :disabled="cmdDisabled[2]" @click="confirm2">{{$t('menu.secondConfirm')}}<span
v-show="timeCountConfirm>0">({{timeCountConfirm}})</span></el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdStop" type="primary" :disabled="stpDisabled" @click="stop">中止</el-button>
<el-button :id="domIdStop" type="primary" :disabled="stpDisabled" @click="stop">{{$t('menu.suspend')}}</el-button>
</el-col>
<el-col :span="2" :offset="2">
<el-button :id="domIdClose" @click="close">关闭</el-button>
<el-button :id="domIdClose" @click="close">{{$t('global.close')}}</el-button>
</el-col>
</el-row>
</el-dialog>
@ -91,10 +91,10 @@
computed: {
typeList() {
return [
{ code: OperationEvent.Switch.unlock.menu.operation, name: '道岔单解' },
{ code: OperationEvent.Switch.unblock.menu.operation, name: '道岔解封' },
{ code: OperationEvent.Switch.fault.menu.operation, name: '道岔故障解锁' },
{ code: OperationEvent.Switch.axlePreReset.menu.operation, name: '道岔计轴预复位' },
{ code: OperationEvent.Switch.unlock.menu.operation, name: this.$t('menu.menuSwitch.switchUnlock') },
{ code: OperationEvent.Switch.unblock.menu.operation, name: this.$t('menu.menuSwitch.switchSectionUnblock') },
{ code: OperationEvent.Switch.fault.menu.operation, name: this.$t('menu.menuSwitch.switchMalfunctionUnlock') },
{ code: OperationEvent.Switch.axlePreReset.menu.operation, name: this.$t('menu.menuSwitch.switchSectionAxisPreReset') },
]
},
show() {
@ -249,7 +249,7 @@
this.cmdDisabled = [false, true, true];
}
this.stpDisabled = true;
this.setMessage('请点击“下达”按钮,下达命令!');
this.setMessage(this.$t('tip.releaseTip'));
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
@ -294,18 +294,18 @@
operate.operation = OperationEvent.Switch.axlePreReset.order.operation;
}
this.setMessage('请点击“确认1”按钮确认命令');
this.writeRecord({ order: ++this.order, date: now(), context: '点击下达命令', result: '' });
this.setMessage(this.$t('tip.firstConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 1 });
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.editRecord({ order: this.order, date: now(), context: '点击下达命令', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: this.$t('tip.executionException') });
})
},
confirm1() {
@ -327,20 +327,20 @@
operate.operation = OperationEvent.Switch.axlePreReset.confirm1.operation;
}
this.setMessage('请点击“确认2”按钮确认命令');
this.writeRecord({ order: ++this.order, date: now(), context: '点击确认1', result: '' });
this.setMessage(this.$t('tip.secondConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.timeCountCommand = -1;
this.timeCountConfirm = 10;
this.setButtonEnable({ step: 2 });
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.editRecord({ order: this.order, date: now(), context: '点击确认1', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: this.$t('tip.executionException') });
})
},
confirm2() {
@ -364,22 +364,22 @@
}
this.setMessage('');
this.writeRecord({ order: ++this.order, date: now(), context: '点击确认2', result: '' });
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
this.timeCountCommand = -1;
this.timeCountConfirm = -1;
this.setButtonEnable({ step: -1 });
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionFailed') });
}
}).catch(() => {
this.timeCountCommand = -1;
this.timeCountConfirm = -1;
this.setButtonEnable({ step: -1 });
this.editRecord({ order: this.order, date: now(), context: '点击确认2', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSecondConfirm'), result: this.$t('tip.executionException') });
})
},
stop() {
@ -401,17 +401,17 @@
operate.operation = OperationEvent.Switch.axlePreReset.stop.operation;
}
this.writeRecord({ order: ++this.order, date: now(), context: '点击终止', result: '' });
this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickSuspend'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 0 });
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行成功' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionSucceed') });
} else {
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行失败' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionFailed') });
}
}).catch(error => {
this.editRecord({ order: this.order, date: now(), context: '点击终止', result: '执行异常' });
this.editRecord({ order: this.order, date: now(), context: this.$t('menu.clickSuspend'), result: this.$t('tip.executionException') });
})
},
close() {
@ -454,4 +454,4 @@
}
}
}
</script>
</script>

View File

@ -2,8 +2,8 @@
<el-dialog class="fuzhou-01__systerm switch-control" :title="title" :visible.sync="show" width="300px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header">
<el-col :span="11"><span>车站名称</span></el-col>
<el-col :span="11" :offset="2"><span>道岔</span></el-col>
<el-col :span="11"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="11" :offset="2"><span>{{$t('menu.switch')}}</span></el-col>
</el-row>
<el-row>
<el-col :span="11">
@ -16,19 +16,19 @@
<el-row style="margin-top: 10px;" v-if="activeShow">
<el-col :span="11">
<el-radio v-model="radio" label="1" :disabled="radio == 2" style="display: block; text-align: center;">
激活</el-radio>
{{$t('menu.activation')}}</el-radio>
</el-col>
<el-col :span="11" :offset="2">
<el-radio v-model="radio" label="2" :disabled="radio == 1" style="display: block; text-align: center;">
切除</el-radio>
{{$t('menu.resection')}}</el-radio>
</el-col>
</el-row>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo"></notice-info>
@ -67,21 +67,21 @@
},
title() {
if (this.operation == OperationEvent.Switch.lock.menu.operation) {
return '道岔单锁';
return this.$t('menu.menuSwitch.switchLock');
} else if (this.operation == OperationEvent.Switch.block.menu.operation) {
return '道岔封锁';
return this.$t('menu.menuSwitch.switchBlockade');
} else if (this.operation == OperationEvent.Switch.turnout.menu.operation) {
return '道岔转动';
return this.$t('menu.menuSwitch.switchTurnout');
} else if (this.operation == OperationEvent.Switch.turnoutForce.menu.operation) {
return '道岔强扳';
return this.$t('menu.menuSwitch.switchForcedPull');
} else if (this.operation == OperationEvent.Switch.split.menu.operation) {
this.activeShow = true;
this.radio = '2';
return '区段切除'
return this.$t('menu.menuSwitch.sectionResection');
} else if (this.operation == OperationEvent.Switch.active.menu.operation) {
this.activeShow = true;
this.radio = '1';
return '区段激活'
return this.$t('menu.menuSwitch.sectionActive');
}
}
},
@ -268,4 +268,4 @@
}
}
}
</script>
</script>

View File

@ -11,7 +11,7 @@
:close-on-click-modal="false"
>
<el-form ref="form" size="small" label-width="90px" :model="formModel" :rules="rules">
<el-form-item label="车 组 号:" prop="groupNumber">
<el-form-item :label="this.$t('menu.groupNumber')+this.$t('global.colon')" prop="groupNumber">
<el-select
:id="domIdTrainNumber"
v-model="formModel.groupNumber"
@ -35,13 +35,13 @@
:disabled="trainTypeIsDisabled"
@change="trainTypeChange"
>
<el-radio :label="'01'">计划车</el-radio>
<el-radio :label="'02'">头码车</el-radio>
<el-radio :label="'03'">人工车</el-radio>
<el-radio :label="'01'">{{$t('menu.planTrain')}}</el-radio>
<el-radio :label="'02'">{{$t('menu.headCodeTrain')}}</el-radio>
<el-radio :label="'03'">{{$t('menu.artificialTrain')}}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item prop="serviceNumber">
<span slot="label">&emsp;&emsp;</span>
<span slot="label">{{$t('menu.serviceNumber')}}</span>
<el-input
:id="domIdServerNo"
v-model="formModel.serviceNumber"
@ -49,7 +49,7 @@
@change="serverNoChange"
/>
</el-form-item>
<el-form-item label="车 次 号:" prop="tripNumber">
<el-form-item :label="this.$t('menu.tripNumber')+this.$t('global.colon')" prop="tripNumber">
<el-input
:id="domIdTrainNo"
v-model="formModel.tripNumber"
@ -57,7 +57,7 @@
@change="trainNoChange"
/>
</el-form-item>
<el-form-item label="目的地号:" prop="targetCode">
<el-form-item :label="this.$t('menu.targetCode')+this.$t('global.colon')" prop="targetCode">
<el-input
:id="domIdTargetCode"
v-model="formModel.targetCode"
@ -68,10 +68,10 @@
</el-form>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<confirm-train ref="confirmTrain" />
@ -105,19 +105,19 @@ export default {
rules: {
groupNumber: [
{ required: true, message: '请选择车组号', trigger: 'change' }
{ required: true, message: this.$t('rules.selectGroupNumber'), trigger: 'change' }
],
trainType: [
{ required: true, message: '请选择一个列车类型', trigger: 'change' }
{ required: true, message: this.$t('rules.selectATrainType'), trigger: 'change' }
],
serviceNumber: [
{ required: true, message: '请输入表号', trigger: 'blur' }
{ required: true, message: this.$t('rules.enterTheServiceNumber'), trigger: 'blur' }
],
tripNumber: [
{ required: true, message: '请输入车次号', trigger: 'blur' }
{ required: true, message: this.$t('rules.enterTheTripNumber'), trigger: 'blur' }
],
targetCode: [
{ required: true, message: '请输入目的地号', trigger: 'blur' }
{ required: true, message: this.$t('rules.enterTheTargetCode'), trigger: 'blur' }
]
},
operation: null,
@ -231,9 +231,9 @@ export default {
},
title() {
if (this.operation == OperationEvent.Train.addTrainId.menu.operation) {
return '添加列车识别号';
return this.$t('menu.menuTrain.addTrainId');
} else if (this.operation == OperationEvent.Train.editTrainId.menu.operation) {
return '修改列车识别号';
return this.$t('menu.menuTrain.editTrainId');
}
return '';
}
@ -249,7 +249,7 @@ export default {
getPublishTrainList(map.skinCode).then(resp => {
this.trainList = resp.data;
}).catch(() => {
this.$messageBox(`获取列车车组号失败`);
this.$messageBox(this.$t('error.obtainTrainGroupNumberFailed'));
});
}
},
@ -393,7 +393,7 @@ export default {
send: true,
type: MapDeviceType.Train.type,
operation: OperationEvent.Train.addTrainId.menu.operation,
messages: [`添加列车识别号:成功`],
messages: [this.$t('tip.addTrainIdTip')],
val: `${model.groupNumber}::${model.trainType}::${model.serviceNumber}::${model.tripNumber}::${model.targetCode}`
};
@ -423,7 +423,7 @@ export default {
send: true,
type: MapDeviceType.Train.type,
operation: OperationEvent.Train.editTrainId.menu.operation,
messages: [`修改列车识别号:成功`],
messages: [this.$t('tip.editTrainIdTip')],
val: this.formModel.tripNumber
};

View File

@ -4,8 +4,8 @@
v-dialogDrag>
<div style="padding: 10px 20px; border: 1px solid lightgray;">
<el-form size="small" label-width="100px">
<el-form-item label="列车:" prop="trainCode">
<el-select v-model="trainCode" filterable placeholder="列车">
<el-form-item :label="this.$t('menu.train')+this.$t('global.colon')" prop="trainCode">
<el-select v-model="trainCode" filterable :placeholder="this.$t('menu.train')">
<el-option v-for="item in trainList" :key="item.code" :label="item.groupNumber"
:value="item.code"></el-option>
</el-select>
@ -16,8 +16,8 @@
</el-select>
<div style="font-size: 12px;">(上行路线车次号选择偶数下行路线车次号选择基数)</div>
</el-form-item> -->
<el-form-item label="列车方向:" prop="direction">
<el-select v-model="direction" filterable placeholder="列车方向">
<el-form-item :label="this.$t('menu.trainDirection')+this.$t('global.colon')" prop="direction">
<el-select v-model="direction" filterable :placeholder="this.$t('menu.trainDirection')">
<el-option v-for="no in directionList" :key="no.value" :label="no.label" :value="no.value">
</el-option>
</el-select>
@ -26,8 +26,8 @@
</el-form>
<el-row>
<el-col style="text-align: right;">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{this.$t('global.confirm')}}</el-button>
<el-button :id="domIdCancel" @click="cancel">{{this.$t('global.cancel')}}</el-button>
</el-col>
</el-row>
</div>
@ -55,11 +55,11 @@
directionList: [
{
value: '2',
label: '上行'
label: this.$t('menu.up')
},
{
value: '1',
label: '下行'
label: this.$t('menu.down')
}
],
trainCode: '',
@ -82,7 +82,7 @@
return OperationEvent.Section.newtrain.menu.domId;
},
title() {
return '设置列车';
return this.$t('menu.settingTrain');
}
},
mounted() {
@ -96,7 +96,7 @@
getPublishTrainList(map.skinCode).then(response => {
this.trainList = response.data;
}).catch(error => {
this.$messageBox(`获取列车列表失败`);
this.$messageBox(this.$t('error.getTrainListFailed'));
})
}
},
@ -153,4 +153,4 @@
}
}
}
</script>
</script>

View File

@ -11,16 +11,16 @@
:close-on-click-modal="false"
>
<el-form ref="form" size="small" label-width="90px" :model="formModel" :rules="rules">
<el-form-item label="车 组 号:" prop="groupNumber">
<el-form-item :label="this.$t('menu.groupNumber')+this.$t('global.colon')" prop="groupNumber">
<el-input :id="domIdTrainNumber" v-model="formModel.groupNumber" @change="trainNumberChange" />
</el-form-item>
</el-form>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
<confirm-control ref="confirmControl" />
@ -50,7 +50,7 @@ export default {
rules: {
groupNumber: [
{ required: true, message: '请输入车组号', trigger: 'blur' }
{ required: true, message: this.$t('rules.selectGroupNumber'), trigger: 'blur' }
]
},
operation: null,
@ -75,7 +75,7 @@ export default {
return this.dialogShow ? OperationEvent.Train.delTrainId.trainNumberChange.domId : '';
},
title() {
return '删除列车识别号';
return this.$t('menu.menuTrain.deleteTrainId');
}
},
mounted() {

View File

@ -2,16 +2,16 @@
<el-dialog class="fuzhou-01__systerm stand-stop-time" :title="title" :visible.sync="show" width="320px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-form size="small" label-width="80px" :model="addModel" :rules="rules" ref="form">
<el-form-item label="车 组 号:" label-width="95px" prop="tripNumber">
<el-form-item :label="this.$t('menu.groupNumber')+this.$t('global.colon')" label-width="95px" prop="tripNumber">
<el-input v-model="addModel.tripNumber"></el-input>
</el-form-item>
</el-form>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
</el-dialog>
@ -34,7 +34,7 @@
rules: {
tripNumber: [
{ required: true, message: '请输入车组号', trigger: 'blur' }
{ required: true, message: this.$t('rules.selectGroupNumber'), trigger: 'blur' }
],
},
dialogShow: false,
@ -55,7 +55,7 @@
return this.dialogShow ? OperationEvent.Train.editTrainNo.menu.domId : '';
},
title() {
return '修改车组号'
return this.$t('menu.menuTrain.editTrainNo')
}
},
mounted() {
@ -128,4 +128,4 @@
padding: 0 5px;
background-color: #F0F0F0;
}
</style>
</style>

View File

@ -3,41 +3,41 @@
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-form size="small" label-width="80px" :model="addModel" :rules="rules" ref="form">
<div style="width: 46%;">
<el-form-item label="车 组 号:" label-width="95px" prop="tripNumber">
<el-form-item :label="this.$t('menu.groupNumber')+this.$t('global.colon')" label-width="95px" prop="tripNumber">
<el-input v-model="addModel.tripNumber" disabled></el-input>
</el-form-item>
</div>
<div style="overflow: hidden;">
<div
style="width: 48%; float: left; padding: 10px 15px; border: 1px double lightgray; margin: 20px 0px; height: 120px; margin-right: 4%;">
<span class="base-label">源车次窗</span>
<span class="base-label">{{$t('menu.sourceTrainWindow')}}</span>
<div style="position: relative; top:-10px;">
<el-form-item prop="stationStandSource">
<span slot="label">&emsp; :</span>
<el-select v-model="addModel.stationStandSource" filterable placeholder="请选择">
<span slot="label">{{$t('menu.station') + $t('global.colon')}}</span>
<el-select v-model="addModel.stationStandSource" filterable :placeholder="this.$t('global.choose')">
<el-option v-for="item in stationStandList" :key="item.code" :label="item.name"
:value="item.code">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="车 次 窗:" prop="trainSource">
<el-form-item :label="this.$t('menu.trainWindow')+this.$t('global.colon')" prop="trainSource">
<el-input v-model="addModel.trainSource"></el-input>
</el-form-item>
</div>
</div>
<div
style="width: 48%; float: left; padding: 10px 15px; border: 1px double lightgray; margin: 20px 0px; height: 120px;">
<span class="base-label">目的车次窗</span>
<span class="base-label">{{$t('menu.targetTrainWindow')}}</span>
<div style="position: relative; top:-10px;">
<el-form-item prop="stationStandGoal">
<span slot="label">&emsp; :</span>
<el-select v-model="addModel.stationStandGoal" filterable placeholder="请选择">
<span slot="label">{{$t('menu.station') + $t('global.colon')}}</span>
<el-select v-model="addModel.stationStandGoal" filterable :placeholder="this.$t('global.choose')">
<el-option v-for="item in stationStandList" :key="item.code" :label="item.name"
:value="item.code">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="车 次 窗:" prop="trainGoal">
<el-form-item :label="this.$t('menu.trainWindow')+this.$t('global.colon')" prop="trainGoal">
<el-input v-model="addModel.trainGoal"></el-input>
</el-form-item>
</div>
@ -46,10 +46,10 @@
</el-form>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
</el-dialog>
@ -76,19 +76,19 @@
rules: {
tripNumber: [
{ required: true, message: '请输入车组号', trigger: 'blur' }
{ required: true, message: this.$t('rules.selectGroupNumber'), trigger: 'blur' }
],
trainSource: [
{ required: true, message: '请输入车次号', trigger: 'blur' }
{ required: true, message: this.$t('rules.enterTheTripNumber'), trigger: 'blur' }
],
stationStandSource: [
{ required: true, message: '请选择车站', trigger: 'change' }
{ required: true, message: this.$t('rules.selectStation'), trigger: 'change' }
],
trainGoal: [
{ required: true, message: '请输入车次号', trigger: 'blur' }
{ required: true, message: this.$t('rules.enterTheTripNumber'), trigger: 'blur' }
],
stationStandGoal: [
{ required: true, message: '请选择车站', trigger: 'change' }
{ required: true, message: this.$t('rules.selectStation'), trigger: 'change' }
],
},
dialogShow: false,
@ -109,7 +109,7 @@
return this.dialogShow ? OperationEvent.Train.moveTrainId.menu.domId : '';
},
title() {
return '移动列车识别号'
return this.$t('menu.menuTrain.moveTrainId');
}
},
mounted() {
@ -183,4 +183,4 @@
padding: 0 5px;
background-color: #F0F0F0;
}
</style>
</style>

View File

@ -5,40 +5,40 @@
<div style="overflow: hidden;">
<div
style="width: 48%; float: left; padding: 10px 15px; border: 1px double lightgray; margin: 20px 0px; height: 177px; margin-right: 4%;">
<span class="base-label">源车次窗</span>
<span class="base-label">{{$t('menu.sourceTrainWindow')}}</span>
<div style="position: relative; top:-10px;">
<el-form-item label="车 组 号:" prop="trainNumberSource">
<el-form-item :label="this.$t('menu.groupNumber')+this.$t('global.colon')" prop="trainNumberSource">
<el-input v-model="addModel.trainNumberSource"></el-input>
</el-form-item>
<el-form-item prop="stationStandSource">
<span slot="label">&emsp; :</span>
<el-select v-model="addModel.stationStandSource" filterable placeholder="请选择">
<span slot="label">{{$t('menu.station') + $t('global.colon')}}</span>
<el-select v-model="addModel.stationStandSource" filterable :placeholder="this.$t('global.choose')">
<el-option v-for="item in stationStandList" :key="item.code" :label="item.name"
:value="item.code">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="车 次 窗:" prop="trainSource">
<el-form-item :label="this.$t('menu.trainWindow')+this.$t('global.colon')" prop="trainSource">
<el-input v-model="addModel.trainSource"></el-input>
</el-form-item>
</div>
</div>
<div
style="width: 48%; float: left; padding: 10px 15px; border: 1px double lightgray; margin: 20px 0px; height: 177px;">
<span class="base-label">目的车次窗</span>
<span class="base-label">{{$t('menu.targetTrainWindow')}}</span>
<div style="position: relative; top:-10px;">
<el-form-item label="车 组 号:" prop="trainNumberGoal">
<el-form-item :label="this.$t('menu.groupNumber')+this.$t('global.colon')" prop="trainNumberGoal">
<el-input v-model="addModel.trainNumberGoal"></el-input>
</el-form-item>
<el-form-item prop="stationStandGoal">
<span slot="label">&emsp; :</span>
<el-select v-model="addModel.stationStandGoal" filterable placeholder="请选择">
<span slot="label">{{$t('menu.station') + $t('global.colon')}}</span>
<el-select v-model="addModel.stationStandGoal" filterable :placeholder="this.$t('global.choose')">
<el-option v-for="item in stationStandList" :key="item.code" :label="item.name"
:value="item.code">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="车 次 窗:" prop="trainGoal">
<el-form-item :label="this.$t('menu.trainWindow')+this.$t('global.colon')" prop="trainGoal">
<el-input v-model="addModel.trainGoal"></el-input>
</el-form-item>
</div>
@ -47,10 +47,10 @@
</el-form>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col>
</el-row>
</el-dialog>
@ -78,22 +78,22 @@
rules: {
trainNumberSource: [
{ required: true, message: '请输入车组号', trigger: 'blur' }
{ required: true, message: this.$t('rules.selectGroupNumber'), trigger: 'blur' }
],
trainSource: [
{ required: true, message: '请输入车次号', trigger: 'blur' }
{ required: true, message: this.$t('rules.enterTheTripNumber'), trigger: 'blur' }
],
stationStandSource: [
{ required: true, message: '请选择车站', trigger: 'change' }
{ required: true, message: this.$t('rules.selectStation'), trigger: 'change' }
],
trainNumberGoal: [
{ required: true, message: '请输入车组号', trigger: 'blur' }
{ required: true, message: this.$t('rules.selectGroupNumber'), trigger: 'blur' }
],
trainGoal: [
{ required: true, message: '请输入车次号', trigger: 'blur' }
{ required: true, message: this.$t('rules.enterTheTripNumber'), trigger: 'blur' }
],
stationStandGoal: [
{ required: true, message: '请选择车站', trigger: 'change' }
{ required: true, message: this.$t('rules.selectStation'), trigger: 'change' }
],
},
dialogShow: false,
@ -114,7 +114,7 @@
return this.dialogShow ? OperationEvent.Train.moveTrainId.menu.domId : '';
},
title() {
return '移动列车识别号'
return this.$t('menu.menuTrain.moveTrainId');
}
},
mounted() {
@ -188,4 +188,4 @@
padding: 0 5px;
background-color: #F0F0F0;
}
</style>
</style>

View File

@ -1,133 +0,0 @@
<template>
<el-dialog class="fuzhou-01__systerm two-confirmation" title="二次确认" :visible.sync="show" width="360px"
:before-close="doClose" :showClose="false" :zIndex="2000" :modal="false" :close-on-click-modal="false"
append-to-body v-dialogDrag>
<div class="context">
<template v-for="message in messages">
<span>{{message}}</span><br>
</template>
</div>
<el-row class="button-group">
<el-col :span="10" :offset="3">
<el-button :id="show? domIdConfirm: ''" :loading="loading" @click="commit">确认</el-button>
</el-col>
<el-col :span="6" :offset="4">
<el-button :id="domIdCancel" @click="cancel">关闭</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo"></notice-info>
</el-dialog>
</template>
<script>
import { MapDeviceType, OperationEvent, checkOperationIsCurrentOperate } from '@/scripts/ConstDic';
import NoticeInfo from '../../dialog/childDialog/childDialog/noticeInfo'
export default {
name: 'TwoConfirmation',
data() {
return {
dialogShow: false,
loading: false,
operate: '',
timer: null,
domIdConfirm: ''
}
},
components: {
NoticeInfo
},
computed: {
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.close.confirm.domId : '';
},
messages() {
if (this.operate) {
return this.operate.messages;
}
return []
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
})
},
methods: {
doShow(operate) {
this.domIdConfirm = '';
if (checkOperationIsCurrentOperate(operate.operation, OperationEvent.StationControl.forcedStationControl)) {
this.domIdConfirm = OperationEvent.StationControl.forcedStationControl.confirm.domId;
} else if (checkOperationIsCurrentOperate(operate.operation, OperationEvent.StationControl.requestStationControl)) {
this.domIdConfirm = OperationEvent.StationControl.requestStationControl.confirm.domId;
} else if (checkOperationIsCurrentOperate(this.operation, OperationEvent.StationControl.requestCentralControl)) {
this.domIdConfirm = OperationEvent.StationControl.requestCentralControl.confirm.domId;
}
this.operate = operate || {};
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
cancel() {
let operate = {
type: this.operate.type,
operation: OperationEvent.Command.close.confirm.operation,
}
this.$emit('setOperate', { selection: this.operate.selection, cancel: true });
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.doClose();
}
})
},
forEachDoHandler(selection, handler) {
selection.forEach(elem => {
handler(elem)
})
},
commit() {
if (this.operate) {
this.loading = true;
this.forEachDoHandler(this.operate.selection || [], elem => {
let operate = {
send: true,
type: this.operate.type,
val: elem.code
}
if (checkOperationIsCurrentOperate(this.operate.operation, OperationEvent.StationControl.forcedStationControl)) {
operate.operation = OperationEvent.StationControl.forcedStationControl.confirm.operation;
} else if (checkOperationIsCurrentOperate(this.operate.operation, OperationEvent.StationControl.requestStationControl)) {
operate.operation = OperationEvent.StationControl.requestStationControl.confirm.operation;
} else if (checkOperationIsCurrentOperate(this.operate.operation, OperationEvent.StationControl.requestCentralControl)) {
operate.operation = OperationEvent.StationControl.requestCentralControl.confirm.operation;
}
this.doClose();
this.$emit('setOperate', { selection: this.operate.selection, commit: true });
this.$store.dispatch('training/next', operate).then(({ valid, response }) => {
if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
}
}).catch((error) => {
this.$refs.noticeInfo.doShow(operate);
});
})
this.loading = false;
}
}
}
}
</script>

View File

@ -3,16 +3,16 @@
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag>
<div style="padding: 15px 40px; border: 1px double lightgray; margin: 20px 10px; ">
<el-form size="small" label-width="90px" :model="model" label-position="left" :rules="rules" ref="form">
<el-form-item label="工号:" prop="jobNumber">
<el-form-item :label="$t('menu.menuChildDialog.jobNumber')" prop="jobNumber">
<el-input v-model="model.jobNumber"></el-input>
</el-form-item>
<el-form-item label="用户名:" prop="userName">
<el-form-item :label="$t('menu.menuChildDialog.userName')" prop="userName">
<el-input v-model="model.userName"></el-input>
</el-form-item>
<el-form-item label="密码:" prop="password">
<el-form-item :label="$t('menu.menuChildDialog.password')" prop="password">
<el-input type="password" v-model="model.password"></el-input>
</el-form-item>
<el-form-item label="确认密码:" prop="confirm">
<el-form-item :label="$t('menu.menuChildDialog.confirmPassword')" prop="confirm">
<el-input type="password" v-model="model.confirm"></el-input>
</el-form-item>
@ -20,10 +20,10 @@
</div>
<el-row justify="center" class="button-group">
<el-col :span="8" :offset="6">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('menu.menuChildDialog.determine')}}</el-button>
</el-col>
<el-col :span="8" :offset="0">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('menu.menuChildDialog.cancel')}}</el-button>
</el-col>
</el-row>
</el-dialog>
@ -52,16 +52,16 @@
},
rules: {
jobNumber: [
{ required: true, message: '请输入工号', trigger: 'blur' }
{ required: true, message: this.$t('menu.menuChildDialog.inputJobNumber'), trigger: 'blur' }
],
userName: [
{ required: true, message: '请输入用户名', trigger: 'blur' }
{ required: true, message: this.$t('menu.menuChildDialog.inputUserName'), trigger: 'blur' }
],
password: [
{ required: true, message: '请输入密码', trigger: 'change' }
{ required: true, message: this.$t('menu.menuChildDialog.inputPassword'), trigger: 'change' }
],
confirm: [
{ required: true, message: '请再次输入密码', trigger: 'change' }
{ required: true, message: this.$t('menu.menuChildDialog.inputPasswordAgain'), trigger: 'change' }
],
},
}
@ -80,7 +80,7 @@
return this.dialogShow ? OperationEvent.Command.close.confirm.domId : '';
},
title() {
return '增加用户'
return this.$t('menu.menuChildDialog.addUser')
}
},
mounted() {
@ -126,7 +126,7 @@
this.doClose();
this.$emit('operateUser', this.model);
} else {
this.$messageBox('二次输入密码不一致');
this.$messageBox(this.$t('menu.menuChildDialog.passwordInconsistent'));
}
}
})

View File

@ -1,134 +0,0 @@
<template>
<el-dialog class="fuzhou-01__systerm user-delete" :title="title" :visible.sync="show" width="260px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag>
<div style="padding-left: 10px; padding-bottom: 10px">
<i class="el-icon-info"></i>
<template v-for="message in messages">
<span>{{message}}</span>
</template>
</div>
<el-row justify="center" class="button-group">
<el-col :span="8" :offset="3">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
</el-col>
<el-col :span="8" :offset="2">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
</el-col>
</el-row>
</el-dialog>
</template>
<script>
import { mapGetters } from 'vuex';
import { MapDeviceType, OperationEvent } from '@/scripts/ConstDic';
export default {
name: 'UserDelete',
components: {
},
data() {
return {
operate: {},
messages: [],
model: {
type: 'DELETE',
jobNumber: '',
userName: '',
},
operation: null,
dialogShow: false,
loading: false,
}
},
computed: {
...mapGetters('map', [
'stationStandList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Command.close.confirm.domId : '';
},
title() {
return '删除用户'
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
})
},
methods: {
doShow(operate, selected) {
//
if (!this.dialogShow) {
this.loading = false;
this.operate = operate || {};
this.operation = operate.operation;
this.messages = operate.messages;
this.model.userName = '';
this.model.jobNumber = '';
if (selected) {
this.model.userName = selected.userName;
this.model.jobNumber = selected.jobNumber;
}
}
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
if (this.model.userName && this.model.jobNumber) {
let operate = {
type: this.operate.type,
operation: OperationEvent.Command.close.confirm.operation,
}
this.loading = true;
this.$store.dispatch('training/next', operate).then(({ valid }) => {
this.loading = false;
if (valid) {
this.doClose();
this.$emit('operateUser', this.model);
}
})
} else {
this.$messageBox('选择的用户名或工号为空');
}
},
cancel() {
let operate = {
type: this.operate.type,
operation: OperationEvent.Command.cancel.menu.operation,
}
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(error => { this.doClose(); });
}
}
}
</script>
<style scoped>
.fuzhou-01__systerm .el-dialog .base-label {
background: rgba(0, 0, 0, x);
position: relative;
left: -5px;
top: -10px;
padding: 0 5px;
background-color: #F0F0F0;
}
</style>

View File

@ -1,178 +0,0 @@
<template>
<el-dialog class="fuzhou-01__systerm user-edit" :title="title" :visible.sync="show" width="420px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag>
<div style="padding: 15px 40px; border: 1px double lightgray; margin: 20px 10px; ">
<el-form size="small" label-width="90px" :model="model" label-position="left" :rules="rules" ref="form">
<el-form-item label="工号:" prop="jobNumber">
<el-input v-model="model.jobNumber" disabled></el-input>
</el-form-item>
<el-form-item label="用户名:" prop="userName">
<el-input v-model="model.userName" disabled></el-input>
</el-form-item>
<el-form-item label="原始密码:" prop="oldPassword">
<el-input type="oldPassword" v-model="model.oldPassword"></el-input>
</el-form-item>
<el-form-item label="密码:" prop="password">
<el-input type="password" v-model="model.password"></el-input>
</el-form-item>
<el-form-item label="确认密码:" prop="confirm">
<el-input type="password" v-model="model.confirm"></el-input>
</el-form-item>
</el-form>
</div>
<el-row justify="center" class="button-group">
<el-col :span="8" :offset="6">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
</el-col>
<el-col :span="8" :offset="0">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
</el-col>
</el-row>
</el-dialog>
</template>
<script>
import { mapGetters } from 'vuex';
import { MapDeviceType, OperationEvent } from '@/scripts/ConstDic';
export default {
name: 'UserEdit',
components: {
},
data() {
return {
operate: {},
selected: {},
operation: null,
dialogShow: false,
loading: false,
model: {
type: 'EDIT',
jobNumber: '',
userName: '',
oldPassword: '',
password: '',
confirm: '',
},
rules: {
jobNumber: [
{ required: true, message: '请输入工号', trigger: 'blur' }
],
userName: [
{ required: true, message: '请输入用户名', trigger: 'blur' }
],
oldPassword: [
{ required: true, message: '请输入原始密码', trigger: 'change' }
],
password: [
{ required: true, message: '请输入新密码', trigger: 'change' }
],
confirm: [
{ required: true, message: '请再次输入新密码', trigger: 'change' }
],
},
}
},
computed: {
...mapGetters('map', [
'stationStandList'
]),
show() {
return this.dialogShow && !this.$store.state.menuOperation.break;
},
domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
},
domIdConfirm() {
return this.dialogShow ? OperationEvent.Command.close.confirm.domId : '';
},
title() {
return '用户编辑页面'
}
},
mounted() {
this.$nextTick(() => {
this.$store.dispatch('training/tipReload');
})
},
methods: {
doShow(operate, selected) {
//
if (!this.dialogShow) {
this.loading = false;
this.operate = operate || {};
this.operation = operate.operation;
this.$nextTick(() => {
this.$refs.form.resetFields();
this.selected = selected;
if (selected) {
this.model.jobNumber = selected.jobNumber;
this.model.userName = selected.userName;
}
});
}
this.dialogShow = true;
this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh');
});
},
doClose() {
this.loading = false;
this.dialogShow = false;
this.$store.dispatch('training/emitTipFresh');
},
commit() {
this.$refs['form'].validate((valid) => {
if (valid) {
let operate = {
type: this.operate.type,
operation: OperationEvent.Command.close.confirm.operation,
}
this.loading = true;
this.$store.dispatch('training/next', operate).then(({ valid }) => {
this.loading = false;
if (valid)
if (this.selected.password !== this.model.oldPassword) {
this.$messageBox('原始密码错误');
} else if (this.model.password !== this.model.confirm) {
this.$messageBox('二次输入的密码错误');
} else if (this.model.oldPassword === this.model.password) {
this.$messageBox('老密码和新密相同');
} else {
this.doClose();
this.$emit('operateUser', this.model);
}
})
} else {
return false;
}
});
},
cancel() {
let operate = {
type: this.operate.type,
operation: OperationEvent.Command.cancel.menu.operation,
}
this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) {
this.doClose();
}
}).catch(error => { this.doClose(); });
}
}
}
</script>
<style scoped>
.fuzhou-01__systerm .el-dialog .base-label {
background: rgba(0, 0, 0, x);
position: relative;
left: -5px;
top: -10px;
padding: 0 5px;
background-color: #F0F0F0;
}
</style>

View File

@ -6,28 +6,27 @@
</div>
<div style="position: relative; left: 80px;">
<div style="width:100%">
<span style="padding-left: 60px">ControlMonitor 1.3.5.0</span>
<span style="padding-left: 60px">{{$t('menu.menuDialog.versionName')}}</span>
<el-button style="position: absolute; right: 95px;" :id="domIdConfirm" type="primary"
:loading="loading" @click="commit">确定</el-button>
:loading="loading" @click="commit">{{$t('menu.menuDialog.confirm')}}</el-button>
</div>
<div style="width:100%; padding-top: 20px">
<span> 版权所有C2010-2011 北京玖琏科技有限公司</span>
<span> {{$t('menu.menuDialog.copyright')}}</span>
</div>
</div>
</div>
<div style="padding: 10px; margin: 5px; ">
<el-table :data="tableData" style="width: 100%;" height="400">
<el-table-column prop="moduleName" label="模块名称" width="180">
<el-table-column prop="moduleName" :label="$t('menu.menuDialog.moduleName')" width="180">
</el-table-column>
<el-table-column prop="version" label="版本" width="180">
<el-table-column prop="version" :label="$t('menu.menuDialog.version')" width="180">
</el-table-column>
<el-table-column prop="updateDate" label="修改日期">
<el-table-column prop="updateDate" :label="$t('menu.menuDialog.modifyDate')">
</el-table-column>
</el-table>
</div>
</el-dialog>
</template>
<script>
import { MapDeviceType, OperationEvent } from '@/scripts/ConstDic';
@ -37,7 +36,7 @@
return {
tableData: [
{
moduleName: '主程序版本:',
moduleName: this.$t('menu.menuDialog.mainProgramVersion'),
version: '123',
updateDate: '123'
}
@ -60,7 +59,7 @@
return this.dialogShow ? OperationEvent.Command.close.menu.domId : '';
},
title() {
return '关于ControlMonitor'
return this.$t('menu.menuDialog.about')
}
},
mounted() {

View File

@ -2,17 +2,17 @@
<el-dialog class="fuzhou-01__systerm manage-user" :title="title" :visible.sync="show" width="420px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<div style="padding: 5px 5px; border: 1px double lightgray; margin: 20px 0px; ">
<span class="base-label">用户列表</span>
<span class="base-label">{{$t('menu.menuDialog.userList')}}</span>
<el-row>
<el-col :span="18">
<el-table ref="multipleTable" :data="tableData" border row-key="code" style="width: 100%"
height="450" center size="mini" highlight-current-row @row-click="chooseUser">
<el-table-column prop="jobNumber" label="工号" width="120">
<el-table-column prop="jobNumber" :label="$t('menu.menuDialog.jobNumber')" width="120">
<template slot-scope="scope">
<span>{{scope.row.jobNumber}}</span>
</template>
</el-table-column>
<el-table-column prop="userName" label="用户名">
<el-table-column prop="userName" :label="$t('menu.menuDialog.userName')">
<template slot-scope="scope">
<span>{{scope.row.userName}}</span>
</template>
@ -22,23 +22,23 @@
</el-table>
</el-col>
<el-col :span="4">
<el-button style="margin-top: 140px; margin-left: 10px;" :id="domIdFreshUser" @click="freshUser">刷新
<el-button style="margin-top: 140px; margin-left: 10px;" :id="domIdFreshUser" @click="freshUser">{{$t('menu.menuDialog.refresh')}}
</el-button>
<el-button style="margin-top: 30px; margin-left: 10px;" :id="domIdAddUser" @click="addUser">增加
<el-button style="margin-top: 30px; margin-left: 10px;" :id="domIdAddUser" @click="addUser">{{$t('menu.menuDialog.add')}}
</el-button>
<el-button style="margin-top: 30px; margin-left: 10px;" :id="domIdEditUser" @click="editUser">修改
<el-button style="margin-top: 30px; margin-left: 10px;" :id="domIdEditUser" @click="editUser">{{$t('menu.menuDialog.modify')}}
</el-button>
<el-button style="margin-top: 30px; margin-left: 10px;" :id="domIdDelUser" @click="delUser">删除
<el-button style="margin-top: 30px; margin-left: 10px;" :id="domIdDelUser" @click="delUser">{{$t('menu.menuDialog.delete')}}
</el-button>
</el-col>
</el-row>
</div>
<el-row justify="center" class="button-group">
<el-col :span="8" :offset="6">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('menu.menuDialog.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="0">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('menu.menuDialog.cancel')}}</el-button>
</el-col>
</el-row>
<user-add ref="userAdd" @operateUser="operateUser"></user-add>
@ -100,7 +100,7 @@
return this.dialogShow ? OperationEvent.Command.close.menu.domId : '';
},
title() {
return '用户管理'
return this.$t('menu.menuDialog.userManage')
}
},
mounted() {
@ -162,7 +162,7 @@
this.loading = false;
})
} else {
this.$messageBox('请先选择用户');
this.$messageBox(this.$t('menu.menuDialog.selectUser'));
}
},
//
@ -171,7 +171,7 @@
let operate = {
type: this.operate.type,
operation: OperationEvent.Command.manage.delUser.operation,
messages: [`你确定删除用户${this.selected.userName}吗?`]
messages: [`${this.$t('menu.menuDialog.deleteMessageOne')} ${this.selected.userName} ${this.$t('menu.menuDialog.deleteMessageTwo')}`]
}
this.loading = true;
@ -184,7 +184,7 @@
this.loading = false;
})
} else {
this.$messageBox('请先选择用户');
this.$messageBox(this.$t('menu.menuDialog.selectUser'));
}
},
//
@ -256,7 +256,7 @@
password: data.password
});
} else {
this.$messageBox('添加失败,存在相同工号的用户');
this.$messageBox(this.$t('menu.menuDialog.addFail'));
}
} else if (data && data.type === 'EDIT') {
let index = this.tableData.indexOf(this.tableData.find(elem => { return elem.jobNumber === data.jobNumber }));
@ -264,14 +264,14 @@
this.tableData[index].password = data.password;
this.tableData[index].userName = data.userName;
} else {
this.$messageBox('修改失败');
this.$messageBox(this.$t('menu.menuDialog.modifyFail'));
}
} else if (data && data.type === 'DELETE') {
let index = this.tableData.indexOf(this.tableData.find(elem => { return elem.jobNumber === data.jobNumber }));
if (index >= 0) {
this.tableData.splice(index, 1);
} else {
this.$messageBox('删除失败');
this.$messageBox(this.$t('menu.menuDialog.deleteFail'));
}
}
}

View File

@ -1,14 +1,14 @@
<template>
<el-dialog class="fuzhou-01__systerm password-box" title="密码框" :visible.sync="show" width="320px"
<el-dialog class="fuzhou-01__systerm password-box" :title="$t('menu.menuDialog.passwordBox')" :visible.sync="show" width="320px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<div class="context" style="overflow:hidden">
<el-form label-width="80px" size="mini">
<el-form-item prop="username">
<span slot="label">用户名</span>
<span slot="label">{{$t('menu.menuDialog.userNameLabel')}}</span>
<el-input v-model="model.username" disabled></el-input>
</el-form-item>
<el-form-item prop="password">
<span slot="label">&emsp;</span>
<span slot="label">{{$t('menu.menuDialog.password')}}</span>
<el-input type="password" v-model="model.password"></el-input>
</el-form-item>
</el-form>
@ -21,7 +21,7 @@
<el-button size="mini" @click="click(5)">5</el-button>
</el-button-group>
<el-button-group class="right" v-model="key" size="mini">
<el-button @click="esc">回退</el-button>
<el-button @click="esc">{{$t('menu.menuDialog.back')}}</el-button>
</el-button-group>
<el-button-group class="left" v-model="key" size="mini">
<el-button size="mini" @click="click(6)">6</el-button>
@ -31,16 +31,16 @@
<el-button size="mini" @click="click(0)">0</el-button>
</el-button-group>
<el-button-group class="right" v-model="key" size="mini">
<el-button @click="clr">清空</el-button>
<el-button @click="clr">{{$t('menu.menuDialog.clear')}}</el-button>
</el-button-group>
</div>
</div>
<el-row class="button-group">
<el-col :span="6" :offset="4">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('menu.menuDialog.confirm')}}</el-button>
</el-col>
<el-col :span="6" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('menu.menuDialog.cancel')}}</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo"></notice-info>
@ -155,7 +155,7 @@
});
})
} else {
this.$refs.noticeInfo.doShow(operate, ['密码输入错误!']);
this.$refs.noticeInfo.doShow(operate, [this.$t('menu.menuDialog.IncorrectPassword')]);
}
},

View File

@ -1,30 +1,30 @@
<template>
<el-dialog class="fuzhou-01__systerm station-control-convert" title="控制模式转换" :visible.sync="show" width="700px"
<el-dialog class="fuzhou-01__systerm station-control-convert" :title="$t('menu.menuDialog.controlModeConversion')" :visible.sync="show" width="700px"
:before-close="doClose" :showClose="true" :zIndex="2000" :modal="false" :close-on-click-modal="false"
v-dialogDrag>
<el-table ref="multipleTable" :data="tableData" border row-key="code" style="width: 100%" height="250" center
size="mini" highlight-current-row>
<el-table-column prop="check" label="选择" width="60" :id="domIdChoose" style="margin-left:30px">
<el-table-column prop="check" :label="$t('menu.menuDialog.select')" width="60" :id="domIdChoose" style="margin-left:30px">
<template slot-scope="scope">
<el-checkbox ref="check" v-model="scope.row.check" :disabled="scope.row.disabled"></el-checkbox>
</template>
</el-table-column>
<el-table-column prop="operate" label="操作区域" width="140">
<el-table-column prop="operate" :label="$t('menu.menuDialog.operatingArea')" width="140">
<template slot-scope="scope">
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{scope.row.operate}}</span>
</template>
</el-table-column>
<el-table-column prop="control" label="控制模式" width="80">
<el-table-column prop="control" :label="$t('menu.menuDialog.controlMode')" width="80">
<template slot-scope="scope">
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{scope.row.control}}</span>
</template>
</el-table-column>
<el-table-column prop="status" label="中心-车站通信状态" width="140">
<el-table-column prop="status" :label="$t('menu.menuDialog.centerStationCommunicationStatus')" width="140">
<template slot-scope="scope">
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{scope.row.status}}</span>
</template>
</el-table-column>
<el-table-column prop="result" label="转换执行状态">
<el-table-column prop="result" :label="$t('menu.menuDialog.transferExecutionStatus')">
<template slot-scope="scope">
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{scope.row.result}}</span>
</template>
@ -32,14 +32,14 @@
</el-table>
<el-row class="button-group">
<el-col :span="10" :offset="3">
<el-button v-if="isFork" :id="domIdFork" :disabled="disabledCommit" @click="forkCommit">强制站控</el-button>
<el-button v-if="isRequest" :id="domIdRequest" :disabled="disabledCommit" @click="requestCommit">请求站控
<el-button v-if="isFork" :id="domIdFork" :disabled="disabledCommit" @click="forkCommit">{{$t('menu.menuDialog.forcedStationControl')}}</el-button>
<el-button v-if="isRequest" :id="domIdRequest" :disabled="disabledCommit" @click="requestCommit">{{$t('menu.menuDialog.requestStationControl')}}
</el-button>
<el-button v-if="isConter" :id="domIdConter" :disabled="disabledCommit" @click="conterCommit">请求中控
<el-button v-if="isConter" :id="domIdConter" :disabled="disabledCommit" @click="conterCommit">{{$t('menu.menuDialog.requestInTheControl')}}
</el-button>
</el-col>
<el-col :span="6" :offset="4">
<el-button :id="domIdCancel" :disabled="disabledClose" @click="cancel">关闭
<el-button :id="domIdCancel" :disabled="disabledClose" @click="cancel">{{$t('menu.menuDialog.close')}}
</el-button>
</el-col>
</el-row>
@ -51,7 +51,7 @@
import { mapGetters } from 'vuex';
import { MapDeviceType, TrainingMode, OperationEvent, getDomIdByOperation, checkOperationIsCurrentOperate } from '@/scripts/ConstDic';
import TwoConfirmation from './childDialog/twoConfirmation';
export default {
name: 'StationControlConvert',
data() {
@ -63,8 +63,8 @@
disabledClose: false,
operation: '',
controlProps: {
'01': '中控',
'02': '站控'
'01': this.$t('menu.menuDialog.inTheControl'),
'02': this.$t('menu.menuDialog.stationControl')
},
selection: [],
tableData: [],
@ -138,12 +138,12 @@
if (elem) {
this.flagListBit[this.selection.forEach(elem => { return elem.stationControlCode == elem.code })] = false;
if (elem.hasOwnProperty('timeout')) {
this.updateTableValue(elem.stationControlCode, { result: `接受转换应答超时` }, false);
this.updateTableValue(elem.stationControlCode, { result: this.$t('menu.menuDialog.acceptConversionResponseTimeout') }, false);
} else if (elem.hasOwnProperty('agree')) {
if (elem.agree) {
this.updateTableValue(elem.stationControlCode, { result: '控制模式转换成功' }, true);
this.updateTableValue(elem.stationControlCode, { result: this.$t('menu.menuDialog.controlModeTransfersuccees') }, true);
} else {
this.updateTableValue(elem.stationControlCode, { result: `控制模式转换失败` }, false);
this.updateTableValue(elem.stationControlCode, { result: this.$t('menu.menuDialog.controlModeTransferFailed') }, false);
}
}
this.disabledClose = false;
@ -155,7 +155,7 @@
if (operate.selection && operate.selection.length) {
operate.selection.forEach(elem => {
if (operate.commit) {
this.updateTableValue(elem.code, { result: `已发送转换请求,${this.timeout}秒后超时.` }, false);
this.updateTableValue(elem.code, { result: `${$t('menu.menuDialog.senedMessageOne')} ,${this.timeout} ${$t('menu.menuDialog.senedMessageTwo')}` }, false);
} else if (operate.cancel) {
this.updateTableValue(elem.code, { result: '' }, false);
}
@ -235,7 +235,7 @@
control: '',
check: false,
disabled: false,
status: '正常',
status: this.$t('menu.menuDialog.normal'),
result: '',
});
})
@ -346,20 +346,20 @@
}
})
} else if (!selection) {
this.$messageBox('请选择一条数据');
this.$messageBox(this.$t('menu.menuDialog.selectData'));
}
},
requestCommit() {
let operate = {
type: MapDeviceType.StationControl.type,
messages: ['确认将如下操作区域的控制模式由中控转为站控:'],
messages: [this.$t('menu.menuDialog.confirmStationControlTip')],
operation: OperationEvent.StationControl.requestStationControl.menu.operation,
val: this.serializeCodeListWithSeparator('::'),
selection: this.selection
}
this.selection.forEach((elem, index) => {
operate.messages.push(`操作区域${index + 1}:${elem.operate}`);
operate.messages.push(`${$t('menu.menuDialog.operatingArea')} ${index + 1}:${elem.operate}`);
});
this.disabledSure = true;
@ -377,14 +377,14 @@
forkCommit() {
let operate = {
type: MapDeviceType.StationControl.type,
messages: ['确认将如下操作区域的控制模式由中控转为站控:'],
messages: [this.$t('menu.menuDialog.confirmInTheControlTip')],
operation: OperationEvent.StationControl.forcedStationControl.menu.operation,
val: this.serializeCodeListWithSeparator('::'),
selection: this.selection
}
this.selection.forEach((elem, index) => {
operate.messages.push(`操作区域${index + 1}:${elem.operate}`);
operate.messages.push(`${$t('menu.menuDialog.operatingArea')} ${index + 1}:${elem.operate}`);
});
this.disabledSure = true;
@ -402,14 +402,14 @@
conterCommit() { //
let operate = {
type: MapDeviceType.StationControl.type,
messages: ['确认将如下操作区域的控制模式由站控转为中控:'],
messages: [this.$t('menu.menuDialog.confirmInTheControlTip')],
operation: OperationEvent.StationControl.requestCentralControl.menu.operation,
val: this.serializeCodeListWithSeparator('::'),
selection: this.selection
}
this.selection.forEach((elem, index) => {
operate.messages.push(`操作区域${index + 1}:${elem.operate}`);
operate.messages.push(`${$t('menu.menuDialog.operatingArea')} ${index + 1}:${elem.operate}`);
});
this.disabledSure = true;

View File

@ -3,31 +3,32 @@
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-form size="small" label-width="100px" :model="addModel" :rules="rules" ref="form">
<div style="padding: 10px 15px; border: 1px double lightgray; margin: 20px 0px; height: 120px;">
<span class="base-label">添加位置</span>
<span class="base-label">{{$t('menu.menuDialog.addLocation')}}</span>
<div style="position: relative; top:-10px;">
<el-form-item prop="stationStandCode">
<span slot="label">&emsp;&emsp;&emsp;:</span>
<el-select v-model="addModel.stationStandCode" filterable placeholder="请选择">
<span slot="label">{{$t('menu.menuDialog.terminalOne')}}</span>
<el-select v-model="addModel.stationStandCode" filterable :placeholder="$t('menu.menuDialog.pleaseSelect')">
<el-option v-for="item in stationStandList" :key="item.code" :label="item.name"
:value="item.code">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="前车车次号:" prop="trainNumberLimber">
<el-form-item prop="trainNumberLimber">
<span slot="label" id="frontTrainNumber">{{$t('menu.menuDialog.frontTrainNumber')}}</span>
<el-input v-model="addModel.trainNumberLimber"></el-input>
</el-form-item>
</div>
</div>
<el-form-item label="添加车次号:" label-width="115px" prop="groupNumber">
<el-form-item :label="$t('menu.menuDialog.addTrainNumber')" label-width="115px" prop="groupNumber" id="groupNumber">
<el-input v-model="addModel.groupNumber"></el-input>
</el-form-item>
</el-form>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('menu.menuDialog.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('menu.menuDialog.cancel')}}</el-button>
</el-col>
</el-row>
</el-dialog>
@ -52,13 +53,13 @@
rules: {
groupNumber: [
{ required: true, message: '请输入车次号', trigger: 'blur' }
{ required: true, message: this.$t('menu.menuDialog.inputTrainNumber'), trigger: 'blur' }
],
// trainNumberLimber: [
// { required: true, message: '', trigger: 'blur' }
// ],
stationStandCode: [
{ required: true, message: '请选择终端', trigger: 'change' }
{ required: true, message: this.$t('menu.menuDialog.selectTerminal'), trigger: 'change' }
],
},
operation: null,
@ -80,7 +81,7 @@
return this.dialogShow ? OperationEvent.Command.planTrain.addPlanTrain.domId : '';
},
title() {
return '添加计划车'
return this.$t('menu.menuDialog.addPlanTrain')
}
},
mounted() {
@ -159,4 +160,8 @@
padding: 0 5px;
background-color: #F0F0F0;
}
#frontTrainNumber,#groupNumber label{
line-height: 100%;
display: inline-block;
}
</style>

View File

@ -3,22 +3,22 @@
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-form size="small" label-width="100px" :model="addModel" :rules="rules" ref="form">
<el-form-item prop="stationStandCode">
<span slot="label">&emsp;&emsp;:</span>
<el-select v-model="addModel.stationStandCode" filterable placeholder="请选择">
<span slot="label">{{$t('menu.menuDialog.terminalTwo')}}</span>
<el-select v-model="addModel.stationStandCode" filterable :placeholder="$t('menu.menuDialog.pleaseSelect')">
<el-option v-for="item in stationStandList" :key="item.code" :label="item.name" :value="item.code">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="车 次 号:" prop="groupNumber">
<el-form-item :label="$t('menu.menuDialog.trainNumber')" prop="groupNumber">
<el-input v-model="addModel.groupNumber"></el-input>
</el-form-item>
</el-form>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('menu.menuDialog.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('menu.menuDialog.cancel')}}</el-button>
</el-col>
</el-row>
</el-dialog>
@ -42,10 +42,10 @@
rules: {
groupNumber: [
{ required: true, message: '请输入车次号', trigger: 'blur' }
{ required: true, message: this.$t('menu.menuDialog.inputTrainNumber'), trigger: 'blur' }
],
stationStandCode: [
{ required: true, message: '请选择终端', trigger: 'change' }
{ required: true, message: this.$t('menu.menuDialog.selectTerminal'), trigger: 'change' }
],
},
operation: null,
@ -67,7 +67,7 @@
return this.dialogShow ? OperationEvent.Command.planTrain.delPlanTrain.domId : '';
},
title() {
return '删除计划车'
return this.$t('menu.menuDialog.deletePlanTrain')
}
},
mounted() {

View File

@ -2,21 +2,21 @@
<el-dialog class="fuzhou-01__systerm stand-stop-time" :title="title" :visible.sync="show" width="320px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-form size="small" label-width="100px" :model="addModel" :rules="rules" ref="form">
<el-form-item label="车 次 号:" label-width="115px" prop="groupNumber">
<el-form-item :label="$t('menu.menuDialog.trainNumber')" label-width="115px" prop="groupNumber">
<el-input v-model="addModel.groupNumber"></el-input>
</el-form-item>
<div style="padding: 10px 15px; border: 1px double lightgray; margin: 20px 0px; height: 120px;">
<span class="base-label">目的</span>
<span class="base-label">{{$t('menu.menuDialog.purpose')}}</span>
<div style="position: relative; top:-10px;">
<el-form-item prop="stationStandCode">
<span slot="label">&emsp;&emsp;:</span>
<el-select v-model="addModel.stationStandCode" filterable placeholder="请选择">
<span slot="label">{{$t('menu.menuDialog.terminalTwo')}}</span>
<el-select v-model="addModel.stationStandCode" filterable :placeholder="$t('menu.menuDialog.pleaseSelect')">
<el-option v-for="item in stationStandList" :key="item.code" :label="item.name"
:value="item.code">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="车 次 号:" prop="trainNumberLimber">
<el-form-item :label="$t('menu.menuDialog.trainNumber')" prop="trainNumberLimber">
<el-input v-model="addModel.trainNumberLimber"></el-input>
</el-form-item>
</div>
@ -24,10 +24,10 @@
</el-form>
<el-row justify="center" class="button-group">
<el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('menu.menuDialog.confirm')}}</el-button>
</el-col>
<el-col :span="8" :offset="4">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('menu.menuDialog.cancel')}}</el-button>
</el-col>
</el-row>
</el-dialog>
@ -52,13 +52,13 @@
rules: {
groupNumber: [
{ required: true, message: '请输入车次号', trigger: 'blur' }
{ required: true, message: this.$t('menu.menuDialog.inputTrainNumber'), trigger: 'blur' }
],
trainNumberLimber: [
{ required: true, message: '请输入前车车次号', trigger: 'blur' }
{ required: true, message: this.$t('menu.menuDialog.inputFrontNumber'), trigger: 'blur' }
],
stationStandCode: [
{ required: true, message: '请选择终端', trigger: 'change' }
{ required: true, message: this.$t('menu.menuDialog.selectTerminal'), trigger: 'change' }
],
},
operation: null,
@ -80,7 +80,7 @@
return this.dialogShow ? OperationEvent.Command.planTrain.translatPlanTrain.domId : '';
},
title() {
return '平移计划车'
return this.$t('menu.menuDialog.panPlanCar')
}
},
mounted() {

View File

@ -1,27 +1,27 @@
<template>
<el-dialog class="fuzhou-01__systerm view-display" title="设备显示设置" :visible.sync="show" width="240px"
<el-dialog class="fuzhou-01__systerm view-display" :title="$t('menu.menuDialog.deviceDisplaySettings')" :visible.sync="show" width="340px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-checkbox-group v-model="deviceLevels">
<div>
<el-checkbox :label="1">车次窗</el-checkbox>
<el-checkbox :label="1">{{$t('menu.menuDialog.trainWindow')}}</el-checkbox>
</div>
<div>
<el-checkbox :label="2">区段边界</el-checkbox>
<el-checkbox :label="2">{{$t('menu.menuDialog.sectionBoundary')}}</el-checkbox>
</div>
<div>
<el-checkbox :label="3">联锁自动进路表示灯</el-checkbox>
<el-checkbox :label="3">{{$t('menu.menuDialog.linkageAutoRouteShow')}}</el-checkbox>
</div>
<div>
<el-checkbox :label="4">ATS自动触发表示灯</el-checkbox>
<el-checkbox :label="4">{{$t('menu.menuDialog.atsAutoTriggerShow')}}</el-checkbox>
</div>
</el-checkbox-group>
<el-row class="button-group">
<el-col :span="8" :offset="2">
<el-button class="commit" :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定
<el-button class="commit" :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('menu.menuDialog.confirm')}}
</el-button>
</el-col>
<el-col :span="8" :offset="3">
<el-button class="cancal" :id="domIdCancel" @click="cancel"> </el-button>
<el-button class="cancal" :id="domIdCancel" @click="cancel">{{$t('menu.menuDialog.cancel')}}</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo"></notice-info>

View File

@ -2,9 +2,9 @@
<el-dialog
v-dialogDrag
class="fuzhou-01__systerm view-name"
title="名称显示设置"
:title="$t('menu.menuDialog.nameDisplaySetting')"
:visible.sync="show"
width="320px"
width="400px"
:before-close="doClose"
:z-index="2000"
:modal="false"
@ -13,59 +13,59 @@
<el-checkbox-group v-model="nameLevels">
<el-row>
<el-col :span="10">
<el-checkbox :label="1">信号机名称</el-checkbox>
<el-checkbox :label="1">{{$t('menu.menuDialog.signalName')}}</el-checkbox>
</el-col>
<el-col :span="10" :offset="4">
<el-checkbox :label="2">站台轨名称</el-checkbox>
<el-checkbox :label="2">{{$t('menu.menuDialog.standTrackName')}}</el-checkbox>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-checkbox :label="3" disabled>按钮名称</el-checkbox>
<el-checkbox :label="3" disabled>{{$t('menu.menuDialog.buttonName')}}</el-checkbox>
</el-col>
<el-col :span="10" :offset="4">
<el-checkbox :label="4">折返轨名称</el-checkbox>
<el-checkbox :label="4">{{$t('menu.menuDialog.reentryTrackName')}}</el-checkbox>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-checkbox :label="5">股道名称</el-checkbox>
<el-checkbox :label="5">{{$t('menu.menuDialog.trackName')}}</el-checkbox>
</el-col>
<el-col :span="10" :offset="4">
<el-checkbox dio :label="6">转换轨名称</el-checkbox>
<el-checkbox dio :label="6">{{$t('menu.menuDialog.transferTrackName')}}</el-checkbox>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-checkbox :label="7">道岔名称</el-checkbox>
<el-checkbox :label="7">{{$t('menu.menuDialog.turnoutName')}}</el-checkbox>
</el-col>
<el-col :span="10" :offset="4">
<el-checkbox dio :label="8">标识灯名称</el-checkbox>
<el-checkbox dio :label="8">{{$t('menu.menuDialog.indicatorName')}}</el-checkbox>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-checkbox :label="9">道岔区段名称</el-checkbox>
<el-checkbox :label="9">{{$t('menu.menuDialog.turnoutSectionName')}}</el-checkbox>
</el-col>
<el-col :span="10" :offset="4">
<el-checkbox dio :label="10">目的地名称</el-checkbox>
<el-checkbox dio :label="10">{{$t('menu.menuDialog.destinationName')}}</el-checkbox>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-checkbox :label="11">计轴区段名称</el-checkbox>
<el-checkbox :label="11">{{$t('menu.menuDialog.axisSectionName')}}</el-checkbox>
</el-col>
<el-col :span="10" :offset="4">
<el-checkbox dio :label="12">公里标</el-checkbox>
<el-checkbox dio :label="12">{{$t('menu.menuDialog.kmPost')}}</el-checkbox>
</el-col>
</el-row>
</el-checkbox-group>
<el-row class="button-group">
<el-col :span="6" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('menu.menuDialog.confirm')}}</el-button>
</el-col>
<el-col :span="4" :offset="8">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('menu.menuDialog.cancel')}}</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" />

View File

@ -2,7 +2,7 @@
<el-dialog
v-dialogDrag
class="fuzhou-01__systerm view-train-id"
title="列车识别号显示设置"
:title="$t('menu.menuDialog.trainIDDisplaySetting')"
:visible.sync="show"
width="420px"
:before-close="doClose"
@ -11,64 +11,64 @@
:close-on-click-modal="false"
>
<div style="padding: 10px 20px; border: 1px double lightgray;">
<span class="base-label">计划车显示模式</span>
<span class="base-label">{{$t('menu.menuDialog.plantrainDisplayMode')}}</span>
<el-radio-group v-model="planMode">
<el-row>
<el-col :span="10">
<el-radio :label="1">表号+车次号</el-radio>
<el-radio :label="1">{{$t('menu.menuDialog.serviceNumber')}} + {{$t('menu.menuDialog.tripNumber')}}</el-radio>
</el-col>
<el-col :span="10" :offset="4">
<el-radio :label="2">表号+车组号</el-radio>
<el-radio :label="2">{{$t('menu.menuDialog.serviceNumber')}} + {{$t('menu.menuDialog.groupNumber')}}</el-radio>
</el-col>
</el-row>
<el-row>
<el-row class="elrow">
<el-col :span="10">
<el-radio :label="3">目的地号+车次号</el-radio>
<el-radio :label="3">{{$t('menu.menuDialog.targetNumber')}} + {{$t('menu.menuDialog.tripNumber')}}</el-radio>
</el-col>
<el-col :span="10" :offset="4">
<el-radio :label="4">目的地号+车组号</el-radio>
<el-radio :label="4">{{$t('menu.menuDialog.targetNumber')}} + {{$t('menu.menuDialog.groupNumber')}}</el-radio>
</el-col>
</el-row>
<el-row>
<el-row class="elrow">
<el-col :span="10">
<el-radio :label="5">目的地号+表号+车次号</el-radio>
<el-radio :label="5">{{$t('menu.menuDialog.targetNumber')}} + {{$t('menu.menuDialog.serviceNumber')}} + {{$t('menu.menuDialog.tripNumber')}}</el-radio>
</el-col>
<el-col :span="10" :offset="4">
<el-radio :label="6">目的地号+表号+车组号</el-radio>
<el-radio :label="6">{{$t('menu.menuDialog.targetNumber')}} + {{$t('menu.menuDialog.serviceNumber')}} + {{$t('menu.menuDialog.groupNumber')}}</el-radio>
</el-col>
</el-row>
</el-radio-group>
</div>
<div style="padding: 10px 20px; border: 1px double lightgray; margin: 20px 0px;">
<span class="base-label">头码车显示模式</span>
<span class="base-label">{{$t('menu.menuDialog.headCodeStationDisplayMode')}}</span>
<el-radio-group v-model="headMode">
<el-row>
<el-col :span="10">
<el-radio :label="3">目的地号+车次号</el-radio>
<el-radio :label="3">{{$t('menu.menuDialog.targetNumber')}} + {{$t('menu.menuDialog.tripNumber')}}</el-radio>
</el-col>
<el-col :span="6" :offset="8">
<el-radio :label="4">目的地号+车组号</el-radio>
<el-col :span="6" :offset="4">
<el-radio :label="4">{{$t('menu.menuDialog.targetNumber')}} + {{$t('menu.menuDialog.groupNumber')}}</el-radio>
</el-col>
</el-row>
</el-radio-group>
</div>
<div style="padding: 10px 20px; border: 1px double lightgray;">
<span class="base-label">字体大小</span>
<span class="base-label">{{$t('menu.menuDialog.fontSize')}}</span>
<el-row>
<el-col :span="10">
<el-input v-model="fontSize" size="small" min="16" max="99" />
</el-col>
<el-col :span="10" :offset="1">
<span style="height:32px; line-height:32px;">范围16-99</span>
<span style="height:32px; line-height:32px;">{{$t('menu.menuDialog.range')}}</span>
</el-col>
</el-row>
</div>
<el-row class="button-group">
<el-col :span="6" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button>
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{$t('menu.menuDialog.confirm')}}</el-button>
</el-col>
<el-col :span="4" :offset="8">
<el-button :id="domIdCancel" @click="cancel"> </el-button>
<el-button :id="domIdCancel" @click="cancel">{{$t('menu.menuDialog.cancel')}}</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo" />
@ -192,3 +192,18 @@ export default {
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
/deep/ {
.el-dialog .el-radio__label{
width: 150px ;
white-space: pre-wrap ;
display: inline-block ;
}
.el-radio__input{
vertical-align: top;
}
}
.elrow{
margin-top:4px;
}
</style>

View File

@ -1,39 +1,39 @@
<template>
<el-dialog class="fuzhou-01__systerm passive-control" title="控制模式请求" :visible.sync="show" width="700px"
<el-dialog class="fuzhou-01__systerm passive-control" :title="$t('menu.passiveDialog.controlModeRequest')" :visible.sync="show" width="700px"
:before-close="doClose" :showClose="true" :zIndex="2000" :modal="false" :close-on-click-modal="false"
v-dialogDrag>
<span class="control-label">{{`${requestInfo}请求如下区域的控制模式`}}</span>
<span class="control-label">{{`${requestInfo}${$t('menu.passiveDialog.requestAreaControlMode')}`}}</span>
<el-table ref="multipleTable" :data="tableData" border row-key="code" style="width: 100%" height="250" center
size="mini" highlight-current-row>
<el-table-column prop="operate" label="操作区域">
<el-table-column prop="operate" :label="$t('menu.passiveDialog.operatingArea')">
<template slot-scope="scope">
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{scope.row.operate}}</span>
</template>
</el-table-column>
<el-table-column prop="control" label="当前控制模式" width="120">
<el-table-column prop="control" :label="$t('menu.passiveDialog.currentControlMode')" width="120">
<template slot-scope="scope">
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{scope.row.control.name}}</span>
</template>
</el-table-column>
<el-table-column prop="target" label="请求控制模式" width="120">
<el-table-column prop="target" :label="$t('menu.passiveDialog.requestControlMode')" width="120">
<template slot-scope="scope">
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{scope.row.target.name}}</span>
</template>
</el-table-column>
<el-table-column prop="agree" label="是否同意" width="140">
<el-table-column prop="agree" :label="$t('menu.passiveDialog.isAgree')" width="140">
<template slot-scope="scope">
<el-checkbox ref="agree" v-model="scope.row.agree" :disabled="scope.row.disabled"></el-checkbox>
</template>
</el-table-column>
</el-table>
<span class="control-label">距离对话还有{{count}}请应答</span>
<span class="control-label">{{$t('menu.passiveDialog.messageOne')}} {{count}} {{$t('menu.passiveDialog.messageTwo')}}</span>
<el-row class="button-group">
<el-col :span="10" :offset="3">
<el-button :id="domAgree" :disabled="disabledAgree" @click="agree">同意
<el-button :id="domAgree" :disabled="disabledAgree" @click="agree">{{$t('menu.passiveDialog.agree')}}
</el-button>
</el-col>
<el-col :span="6" :offset="4">
<el-button :id="domIdRefuse" :disabled="disabledRefuse" @click="refuse">拒绝</el-button>
<el-button :id="domIdRefuse" :disabled="disabledRefuse" @click="refuse">{{$t('menu.passiveDialog.refuse')}}</el-button>
</el-col>
</el-row>
<notice-info ref="noticeInfo"></notice-info>
@ -55,10 +55,10 @@
dialogShow: false,
disabledAgree: false,
disabledRefuse: false,
requestInfo: '调度员1工作站',
requestInfo: this.$t('menu.passiveDialog.dispatcherWorkstation'),
controlProps: {
'01': '中控',
'02': '站控'
'01': this.$t('menu.passiveDialog.inTheControl'),
'02': this.$t('menu.passiveDialog.stationControl')
},
selection: [],
tableData: [],
@ -233,7 +233,8 @@
}
})
} else if (!selection) {
this.$messageBox('请选择一条数据');
this.$messageBox(this.$t('menu.passiveDialog.selectData'));
}
},
agree() {

View File

@ -1,9 +1,9 @@
<template>
<el-dialog class="fuzhou-01__systerm cmd-notice" title="操作命令提示" :visible.sync="show" width="400px"
<el-dialog class="fuzhou-01__systerm cmd-notice" :title="$t('menu.passiveDialog.operationCommandTips')" :visible.sync="show" width="400px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<span>{{name}}{{msg}}!</span>
<el-row class="button-group">
<el-button :id="domIdCancel" type="primary" :loading="loading" @click="commit">确认</el-button>
<el-button :id="domIdCancel" type="primary" :loading="loading" @click="commit">{{$t('menu.passiveDialog.operationConfirm')}}</el-button>
</el-row>
</el-dialog>
</template>
@ -41,10 +41,10 @@
}
if (elem.timeout) {
newOperate['msg'] = '请求超时';
newOperate['msg'] = this.$t('menu.passiveDialog.requestTimedOut');
this.doShow(newOperate);
} else if (!elem.agree) {
newOperate['msg'] = '请求拒绝';
newOperate['msg'] = this.$t('menu.passiveDialog.requestRejection');
this.doShow(newOperate);
}
}

View File

@ -44,7 +44,7 @@
</el-row>
<el-row>
<el-col :span="3">
<el-radio v-model="model.type" label="2">{{$t('global.addToTheEnd')}}</el-radio>
<el-radio v-model="model.type" label="2">{{$t('menu.addToTheEnd')}}</el-radio>
</el-col>
<el-col :span="2" :offset="1">
<span>{{$t('menu.tripNumber') + $t('global.colon')}}</span>

View File

@ -32,7 +32,7 @@
<el-col :span="2">
<el-row>
<el-col :offset="4">
<el-checkbox v-model="model.trainManual">{{this.$t('global.manual')}}</el-checkbox>
<el-checkbox v-model="model.trainManual">{{this.$t('menu.manual')}}</el-checkbox>
</el-col>
</el-row>
</el-col>
@ -102,7 +102,7 @@
<el-col :span="2">
<el-row>
<el-col :offset="4">
<el-checkbox v-model="model.serialManual">{{this.$t('global.manual')}}</el-checkbox>
<el-checkbox v-model="model.serialManual">{{this.$t('menu.manual')}}</el-checkbox>
</el-col>
</el-row>
</el-col>

View File

@ -97,6 +97,7 @@ import AuthorDraft from '@/views/orderauthor/author/draft/ruleForm';
import Permission from '@/views/orderauthor/permission/index';
import PermissionDetail from '@/views/orderauthor/permission/detail';
import PermissionDraft from '@/views/orderauthor/permission/draft/ruleForm';
import PermissionCreate from '@/views/orderauthor/permission/create/index';
import UserRules from '@/views/orderauthor/rules/index';
import UserRulesDetail from '@/views/orderauthor/rules/detail';
@ -220,7 +221,8 @@ export const UrlConfig = {
authorDetail: '/orderauthor/author/detail',
authorDraft: '/orderauthor/author/draft',
transferDetail: '/orderauthor/transfer/detail',
trainferPackage: '/orderauthor/transfer/package'
trainferPackage: '/orderauthor/transfer/package',
createPackage: '/orderauthor/transfer/create'
},
script: {
prefix: '/script',
@ -934,6 +936,11 @@ export const asyncRouter = [
path: 'transfer/package',
component: PermissionDraft,
hidden: true
},
{
path: 'transfer/create',
component: PermissionCreate,
hidden: true
}
]
},

View File

@ -3,10 +3,10 @@ export function getBaseUrl() {
let BASE_API;
if (process.env.NODE_ENV === 'development') {
// BASE_API = 'https://joylink.club/jlcloud';
BASE_API = 'https://test.joylink.club/jlcloud';
// BASE_API = 'https://test.joylink.club/jlcloud';
// BASE_API = 'http://192.168.3.5:9000'; // 袁琪
// BASE_API = 'http://192.168.3.6:9000'; // 旭强
// BASE_API = 'http://192.168.3.4:9000' // 琰培
BASE_API = 'http://192.168.3.41:9000'; // 王兴杰
} else {
BASE_API = process.env.VUE_APP_BASE_API;
}

View File

@ -86,6 +86,9 @@ export const hexColor = {
'#00FFFF', '#008B8B', '#B8860B', '#BDB76B', '#8B008B', '#FF8C00', '#9932CC', '#8FBC8F', '#FF1493', '#00BFFF',
'#FF00FF', '#FFD700', '#FF69B4', '#FF4500', '#DB7093', '#4169E1', '#6A5ACD', '#00FF7F', '#EE82EE', '#40E0D0'
],
colors: [
'#B9C671', '#6C9040', '#79C671', '#71A5C6', '#C6A071', '#71C689', '#'
],
randomHsl: function () {
const h = Math.random();
const s = Math.random();

View File

@ -14,7 +14,7 @@
</template>
<script>
import { requestAnimationFrame, cancelRequestAnimFrame } from '@/jmap/utils/animation';
import { requestAnimationFrame, cancelRequestAnimFrame } from '@/utils/animation';
export default {
name: 'ProgressBar',

View File

@ -186,7 +186,7 @@ export default {
},
time(){
let vWeek,vWeek_s,vDay;
vWeek = this.$t('jlmap3d.vWeek');
vWeek = ["星期天","星期一","星期二","星期三","星期四","星期五","星期六"];
let date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;

View File

@ -35,6 +35,7 @@
<span class="svg-container" />
<el-radio>琏课堂</el-radio>
</el-form-item>
<div class="tip-message">{{ tipsMsg }}</div>
<el-form-item>
<el-button type="primary" style="width:100%;" :loading="loading" @click.native.prevent="handleLogin">
登陆
@ -74,7 +75,8 @@ export default {
password: [{ required: true, trigger: 'blur', validator: validatePass }]
},
loading: false,
pwdType: 'password'
pwdType: 'password',
tipsMsg: ''
};
},
mounted() {
@ -100,9 +102,12 @@ export default {
this.$store.dispatch('GetUserConfigInfo');
//
this.loading = false;
this.tipsMsg = '';
this.$router.push({ path: '/' });
}).catch(() => {
}).catch(error => {
this.tipsMsg = error.message;
this.loading = false;
setTimeout(() => { this.tipsMsg = ''; }, 5000);
});
} else {
console.log('error submit!!');
@ -148,6 +153,12 @@ export default {
border-radius: 5px;
color: #454545;
}
.tip-message {
color: #F56C61;
padding: 5px;
font-size: 12px;
}
}
</style>

View File

@ -41,6 +41,7 @@
<span class="svg-container" />
<el-radio>琏计划</el-radio>
</el-form-item>
<div class="tip-message">{{ tipsMsg }}</div>
<el-form-item>
<el-button type="primary" style="width:100%;" :loading="loading" @click.native.prevent="handleLogin">
登陆
@ -81,7 +82,8 @@ export default {
password: [{ required: true, trigger: 'blur', validator: validatePass }]
},
loading: false,
pwdType: 'password'
pwdType: 'password',
tipsMsg: ''
};
},
mounted() {
@ -107,9 +109,12 @@ export default {
this.$store.dispatch('GetUserConfigInfo');
//
this.loading = false;
this.tipsMsg = '';
this.$router.push({ path: `${UrlConfig.plan.prefix}/home` });
}).catch(() => {
}).catch(error => {
this.tipsMsg = error.message;
this.loading = false;
setTimeout(() => { this.tipsMsg = ''; }, 5000);
});
} else {
@ -156,6 +161,12 @@ export default {
border-radius: 5px;
color: #454545;
}
.tip-message {
color: #F56C61;
padding: 5px;
font-size: 12px;
}
}
</style>

View File

@ -41,6 +41,7 @@
<span class="svg-container" />
<el-radio>大屏系统</el-radio>
</el-form-item>
<div class="tip-message">{{ tipsMsg }}</div>
<el-form-item>
<el-button type="primary" style="width:100%;" :loading="loading" @click.native.prevent="handleLogin">
登陆
@ -81,7 +82,8 @@ export default {
password: [{ required: true, trigger: 'blur', validator: validatePass }]
},
loading: false,
pwdType: 'password'
pwdType: 'password',
tipsMsg: ''
};
},
mounted() {
@ -107,9 +109,12 @@ export default {
this.$store.dispatch('GetUserConfigInfo');
//
this.loading = false;
this.tipsMsg = '';
this.$router.push({ path: `${UrlConfig.dp.prefix}/home` });
}).catch(() => {
}).catch(error => {
this.tipsMsg = error.message;
this.loading = false;
setTimeout(() => { this.tipsMsg = ''; }, 5000);
});
} else {
@ -156,6 +161,12 @@ export default {
border-radius: 5px;
color: #454545;
}
.tip-message {
color: #F56C61;
padding: 5px;
font-size: 12px;
}
}
</style>

View File

@ -49,6 +49,16 @@
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('map.signalDirectionTypeX')" prop="directionShowType">
<el-select v-model="addModel.directionShowType" filterable>
<el-option
v-for="item in SignalDirectionList"
:key="item.code"
:label="item.name"
:value="item.code"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('map.positionType')" prop="positionType">
<el-select v-model="addModel.positionType" filterable>
<el-option
@ -97,6 +107,10 @@ export default {
data() {
return {
activeName: 'first',
SignalDirectionList: [
{ code: '01', name: '向左' },
{ code: '02', name: '向右' }
],
SignalLeftOrRightList: [],
SignalPotLampTypeList: [],
SignalLampPostTypeList: [],
@ -116,6 +130,7 @@ export default {
lampPostType: '',
lampPositionType: '',
potLampType: '01',
directionShowType: '',
directionType: '',
positionType: '',
namePosition: { x: 0, y: 0 },
@ -134,6 +149,7 @@ export default {
addModel: {
sectionCode: '',
directionType: '01',
directionShowType: '01',
leftOrRight: '0',
positionType: '01'
},
@ -142,13 +158,16 @@ export default {
{ required: true, message: this.$t('rules.selectPhysicalExtentName'), trigger: 'change' }
],
directionType: [
{ required: true, message: this.$t('map.pleaseSelect') + '' + this.$t('rules.directionType'), trigger: 'change' }
{ required: true, message: this.$t('map.pleaseSelect') + '' + this.$t('map.directionType'), trigger: 'change' }
],
directionShowType: [
{ required: true, message: this.$t('map.pleaseSelect') + '' + this.$t('map.directionType'), trigger: 'change' }
],
leftOrRight: [
{ required: true, message: this.$t('map.pleaseSelect') + '' + this.$t('rules.leftOrRight'), trigger: 'change' }
{ required: true, message: this.$t('map.pleaseSelect') + '' + this.$t('map.leftOrRight'), trigger: 'change' }
],
positionType: [
{ required: true, message: this.$t('map.pleaseSelect') + '' + this.$t('rules.positionType'), trigger: 'change' }
{ required: true, message: this.$t('map.pleaseSelect') + '' + this.$t('map.positionType'), trigger: 'change' }
]
}
};
@ -187,7 +206,7 @@ export default {
] },
{ prop: 'lampPostType', label: this.$t('map.lampPostType'), type: 'select', optionLabel: 'name', optionValue: 'code', options: this.SignalLampPostTypeList },
{ prop: 'lampPositionType', label: this.$t('map.lampPositionType'), type: 'select', optionLabel: 'name', optionValue: 'code', options: this.SignalLampPositionTypeList },
{ prop: 'directionType', label: this.$t('map.signalDirectionType'), type: 'select', optionLabel: 'name', optionValue: 'code', options: this.SignalDirectionTypeList },
{ prop: 'directionShowType', label: this.$t('map.signalDirectionTypeX'), type: 'select', optionLabel: 'name', optionValue: 'code', options: this.SignalDirectionList },
{ prop: 'positionType', label: this.$t('map.signalPositionType'), type: 'select', optionLabel: 'name', optionValue: 'code', options: this.SignalPositionTypeList },
{ prop: 'rotate', label: this.$t('map.rotateAngle'), type: 'number', min: -90, max: 90, placeholder: this.$t('tip.angle') },
{ prop: 'namePosition', label: this.$t('map.signalNamePosition'), type: 'coordinate', width: '140px', children: [
@ -210,6 +229,7 @@ export default {
name: this.$t('map.mapData'),
item: [
{ prop: 'stationCode', label: this.$t('map.equipmentStation'), type: 'select', optionLabel: 'name&&code', optionValue: 'code', options: this.stationList },
{ prop: 'directionType', label: this.$t('map.signalDirectionType'), type: 'select', optionLabel: 'name', optionValue: 'code', options: this.SignalDirectionTypeList },
{ prop: 'uniqueName', label: this.$t('map.signalUniqueName'), type: 'input' },
{ prop: 'useType', label: this.$t('map.signalUseType'), type: 'select', optionLabel: 'name', optionValue: 'code', options: this.SignalUseTypeList },
{ prop: 'potLampType', label: this.$t('map.potLampType'), type: 'select', optionLabel: 'name', optionValue: 'code', options: this.SignalPotLampTypeList },
@ -325,6 +345,7 @@ export default {
uniqueName: uid,
positionType: this.addModel.positionType,
directionType: this.addModel.directionType,
directionShowType: this.addModel.directionShowType,
nameShow: true,
namePosition: { x: 0, y: 0 },
buttonShow: true,

View File

@ -117,10 +117,10 @@ export default {
updtRules() {
return {
'origin.x': [
{ required: true, message: this.$t('map.enterXOffset'), trigger: 'blur' }
{ required: true, message: this.$t('rules.enterXOffset'), trigger: 'blur' }
],
'origin.y': [
{ required: true, message: this.$t('map.enterYOffset'), trigger: 'blur' }
{ required: true, message: this.$t('rules.enterYOffset'), trigger: 'blur' }
],
scaling: [
{ required: true, message: this.$t('rules.enterScale'), trigger: 'blur' }

View File

@ -1,6 +1,5 @@
<template>
<el-card>
<!-- <turnback-bar :title="turnbackBarTitle"></turnback-bar> -->
<div class="pack-box" :style="{ height: height +'px' }">
<el-scrollbar wrap-class="scrollbar-wrapper">
<el-steps class="steps" :active="display">

View File

@ -6,7 +6,7 @@
</el-scrollbar>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="doClose">{{$t('global.close')}}</el-button>
<el-button type="primary" @click="doClose">{{ $t('global.close') }}</el-button>
</div>
</el-dialog>
</template>

View File

@ -0,0 +1,151 @@
<template>
<el-dialog
title="新增商品"
:visible.sync="show"
top="20px"
width="600px"
:before-do-close="close"
:close-on-click-modal="false"
>
<data-form ref="dataform" :form="form" :form-model="formModel" :rules="rules" />
<span slot="footer" class="dialog-footer">
<el-button @click="close"> </el-button>
<el-button type="primary" @click="create"> </el-button>
</span>
</el-dialog>
</template>
<script>
import { saveCommodityList } from '@/api/management/goods';
export default {
name: 'DictionaryDetailEdit',
components: {
},
data() {
return {
show: false,
TimeStyleList: [],
TimeStyleDict: {},
formModel: {
name: '',
permissionName: '',
permissionId: '',
forever: false,
tryUseTime: 0,
tryUseTimeUnit: '05',
price: 0,
remarks: ''
}
};
},
computed: {
form() {
return {
labelWidth: '135px',
items: [
{ prop: 'name', label: this.$t('orderAuthor.commodityName'), type: 'text', required: false },
{ prop: 'permissionName', label: this.$t('orderAuthor.permission'), type: 'text', required: false, disabled: true },
{ prop: 'forever', label: this.$t('orderAuthor.whetherTrial'), type: 'radio', required: false, options: this.$ConstSelect.Whether, disabled: false },
{ prop: 'tryUseTimeUnit', label: this.$t('orderAuthor.unitOfTime'), type: 'select', required: false, disabled: false, show: this.isShowForever, options: this.TimeStyleList },
{ prop: 'tryUseTime', label: this.$t('orderAuthor.trialTime'), type: 'number', required: false, disabled: false, show: this.isShowForever, message: `${this.TimeStyleDict[this.formModel.tryUseTimeUnit]}` },
{ prop: 'price', label: this.$t('orderAuthor.price'), type: 'number', required: false, min: 0.01, message: this.$t('global.yuan') },
{ prop: 'remarks', label: this.$t('orderAuthor.describtion'), type: 'textarea', required: false }
]
};
},
rules() {
return {
name: [
{ required: true, message: this.$t('rules.goodsNameInput'), trigger: 'blur' }
],
permissionName: [
{ required: true, message: this.$t('rules.pleaseSelectPermission'), trigger: 'change' }
],
forever: [
{ required: true, message: this.$t('rules.pleaseSelect'), trigger: 'change' }
],
tryUseTime: [
{ required: true, message: this.$t('rules.trialTimeInput'), trigger: 'change' }
],
tryUseTimeUnit: [
{ required: true, message: this.$t('rules.unitOfTimeRadio'), trigger: 'change' }
],
price: [
{ required: true, message: this.$t('rules.totalPriceInput'), trigger: 'change' },
{
validator(rule, value, callback) {
if (Number(value) >= 0) {
if (String(value).split('.')[1] && String(value).split('.')[1].length > 2) {
callback(new Error(this.$t('rules.totalPriceInputError1')));
} else {
callback();
}
} else {
callback(new Error(this.$t('rules.totalPriceInputError2')));
}
},
trigger: 'blur'
}
],
remarks: [
{ required: true, message: this.$t('rules.goodsDescribtionInput'), trigger: 'blur' }
]
};
}
},
mounted() {
this.initLoadPage();
},
methods: {
doShow() {
this.show = true;
},
initLoadPage() {
//
this.TimeStyleDict = {};
this.$Dictionary.timeStyleType().then(list => {
this.convertList(list, this.TimeStyleList, elem => {
return true;
});
list.forEach(elem => {
this.TimeStyleDict[elem.code] = elem.name;
});
});
},
buildModel() {
//
const model = {
name: this.formModel.name,
permissionId: this.formModel.permissionId,
tryUse: this.formModel.forever,
tryUseTime: this.formModel.tryUseTime,
tryUseTimeUnit: this.formModel.tryUseTimeUnit,
price: this.formModel.price,
remarks: this.formModel.remarks
};
return model;
},
create() {
this.$refs.dataform.validateForm(() => {
saveCommodityList(this.buildModel()).then(response => {
this.turnback();
this.$message.success(this.$t('tip.creatingSuccessful'));
}).catch((error) => {
this.$messageBox(this.$t('tip.creatingFailed')+':'+error.message);
});
});
},
close() {
this.show = false;
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
</style>

View File

@ -0,0 +1,172 @@
<template>
<div>
<data-form ref="dataform" :form="form" :form-model="formModel" :rules="rules" />
<el-table :data="tableData" border style="width: 100%" :height="height-640">
<el-table-column prop="name" :label="this.$t('orderAuthor.permissionName')" />
<el-table-column prop="date" :label="this.$t('orderAuthor.permissionType')" />
<el-table-column prop="address" :label="this.$t('global.operate')" />
</el-table>
<add-goods ref="addGoods" @selectGoods="selectGoods" />
</div>
</template>
<script>
import addGoods from '../../commodity/addGoods';
export default {
name: 'DictionaryDetailEdit',
components: {
addGoods
},
data() {
return {
TimeStyleList: [],
TimeStyleDict: {},
formModel: {
name: '',
permissionName: '',
permissionId: '',
forever: false,
tryUseTime: 0,
tryUseTimeUnit: '05',
price: 0,
remarks: ''
},
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}]
};
},
computed: {
isShowForever() {
return this.formModel.forever;
},
form() {
return {
labelWidth: '135px',
items: [
{ prop: 'name', label: this.$t('orderAuthor.commodityName'), type: 'text', required: false },
{ prop: 'permissionName', label: this.$t('orderAuthor.permission'), type: 'text', required: false, disabled: true, rightWidth: true, buttontip: this.$t('orderAuthor.selectPermission'), buttonClick: this.buttonClick },
{ prop: 'forever', label: this.$t('orderAuthor.whetherTrial'), type: 'radio', required: false, options: this.$ConstSelect.Whether, disabled: false },
{ prop: 'tryUseTimeUnit', label: this.$t('orderAuthor.unitOfTime'), type: 'select', required: false, disabled: false, show: this.isShowForever, options: this.TimeStyleList },
{ prop: 'tryUseTime', label: this.$t('orderAuthor.trialTime'), type: 'number', required: false, disabled: false, show: this.isShowForever, message: `${this.TimeStyleDict[this.formModel.tryUseTimeUnit]}` },
{ prop: 'price', label: this.$t('orderAuthor.price'), type: 'number', required: false, min: 0.01, message: this.$t('global.yuan') },
{ prop: 'remarks', label: this.$t('orderAuthor.describtion'), type: 'textarea', required: false }
]
};
},
rules() {
return {
name: [
{ required: true, message: this.$t('rules.goodsNameInput'), trigger: 'blur' }
],
permissionName: [
{ required: true, message: this.$t('rules.pleaseSelectPermission'), trigger: 'change' }
],
forever: [
{ required: true, message: this.$t('rules.pleaseSelect'), trigger: 'change' }
],
tryUseTime: [
{ required: true, message: this.$t('rules.trialTimeInput'), trigger: 'change' }
],
tryUseTimeUnit: [
{ required: true, message: this.$t('rules.unitOfTimeRadio'), trigger: 'change' }
],
price: [
{ required: true, message: this.$t('rules.totalPriceInput'), trigger: 'change' },
{
validator(rule, value, callback) {
if (Number(value) >= 0) {
if (String(value).split('.')[1] && String(value).split('.')[1].length > 2) {
callback(new Error(this.$t('rules.totalPriceInputError1')));
} else {
callback();
}
} else {
callback(new Error(this.$t('rules.totalPriceInputError2')));
}
},
trigger: 'blur'
}
],
remarks: [
{ required: true, message: this.$t('rules.goodsDescribtionInput'), trigger: 'blur' }
]
};
},
height() {
return this.$store.state.app.height;
}
},
mounted() {
this.initLoadPage();
},
methods: {
convertList(FromList, ToList, checktypeFunction) {
if (FromList) {
ToList.length = 0;
FromList.forEach(elem => {
if (checktypeFunction(elem)) {
ToList.push({ value: elem.code, label: elem.name });
}
});
}
},
async initLoadPage() {
//
this.TimeStyleDict = {};
this.$Dictionary.timeStyleType().then(list => {
this.convertList(list, this.TimeStyleList, elem => {
return true;
});
list.forEach(elem => {
this.TimeStyleDict[elem.code] = elem.name;
});
});
},
buttonClick() {
this.$refs.addGoods.doShow();
},
selectGoods(data) {
this.formModel.permissionId = data.id;
this.formModel.permissionName = data.name;
},
buildModel() {
//
const model = {
name: this.formModel.name,
permissionId: this.formModel.permissionId,
tryUse: this.formModel.forever,
tryUseTime: this.formModel.tryUseTime,
tryUseTimeUnit: this.formModel.tryUseTimeUnit,
price: this.formModel.price,
remarks: this.formModel.remarks,
id: this.formModel.id
};
return model;
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
</style>

View File

@ -0,0 +1,153 @@
<template>
<el-card>
<div class="pack-box" :style="{ height: height +'px' }">
<el-scrollbar wrap-class="scrollbar-wrapper" style="">
<el-steps class="steps" :active="display" align-center>
<el-step title="选择权限" icon="el-icon-edit" />
<el-step title="创建商品" icon="el-icon-edit" />
<el-step title="创建订单" icon="el-icon-edit" />
</el-steps>
<div v-show="display == 0">
<permission-form @permissionNext="permissionNext" />
</div>
<div v-show="display == 1">
<el-card class="forms pack-rule">
<goods-form />
</el-card>
<div class="draft">
<el-button-group>
<el-button type="primary" @click="packForm">下一步</el-button>
<el-button type="primary" @click="back">上一步</el-button>
</el-button-group>
</div>
</div>
<div v-show="display == 2">
<el-card class="forms pack-rule">
<order-form />
</el-card>
<div class="draft">
<el-button-group>
<el-button type="primary" @click="createPackage">创建</el-button>
<el-button type="primary" @click="back">上一步</el-button>
</el-button-group>
</div>
</div>
</el-scrollbar>
<qr-code ref="qrCode" />
</div>
</el-card>
</template>
<script>
import QrCode from '@/components/QrCode';
import GoodsForm from './goods';
import OrderForm from './order';
import PermissionForm from './permission';
export default {
name: 'PackRule',
components: {
QrCode,
GoodsForm,
OrderForm,
PermissionForm
},
data() {
return {
display: 0,
urlInfo: {}
};
},
computed: {
height() {
return this.$store.state.app.height - 62;
}
},
mounted() {
this.loadInitData();
},
methods: {
loadInitData() {
},
packForm() {
this.display++;
},
back() {
this.display--;
},
permissionNext(code) {
this.display = 1;
},
turnback() {
this.$router.go(-1);
},
createPackage() {
},
qrCodeShow() {
if (this.$refs) {
this.$refs.qrCode.doShow(this.urlInfo);
}
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.pack-box {
padding-top: 10px;
/deep/ {
.el-step__icon.is-icon {
width: 95px;
}
}
.steps {
width: 980px;
margin: 0 auto;
padding-top: 5px;
}
.forms {
width: 800px;
margin: 0 auto;
margin-top: 12px;
padding: 40px;
}
}
::-webkit-scrollbar {
width: 10px;
height: 10px;
}
.pack-rule {
.addList {
float: right;
font-size: 14px;
color: #000;
margin-bottom: 8px;
cursor: pointer;
}
.btn-footer {
width: 100%;
display: flex;
justify-content: center;
margin-top: 20px;
}
/deep/ .el-table__footer-wrapper {
.is-leaf:nth-child(3) {
font-size: 0;
}
}
}
.draft {
width: 400px;
text-align: center;
margin: 20px auto;
}
</style>

View File

@ -0,0 +1,330 @@
<template>
<div>
<el-scrollbar
wrap-class="scrollbar-wrapper"
:style="{height:height -70 + 'px'}"
style="padding-top: 40px"
>
<data-form ref="dataform" :form="form" :form-model="formModel" :rules="rules" class="data-box" />
<add-goods ref="addGoods" @selectGoods="selectGoods" />
</el-scrollbar>
</div>
</template>
<script>
import { addOrganization, getOrganizationList } from '@/api/management/organization';
import { getGoodsList } from '@/api/management/goods';
import { getSellerList } from '@/api/management/user';
import addGoods from '../../order/addGoods';
export default {
name: 'OrderForm',
components: {
addGoods
},
data() {
return {
goodsList: [],
OrganizationList: [],
OrderTypeList: [],
SellerList: [],
BizTypeList: [],
PayTypeList: [],
PayStatusTypeList: [],
foreverInitData: false,
formModel: {
organizationId: '',
goodsId: '',
goodsName: '',
orderType: '02',
contractNo: '',
forever: false,
totalPrice: 0,
price: 0,
amount: 0,
monthAmount: 0,
bizType: '01',
payWays: '01',
payStatus: '02',
startTime: '',
sellerId: ''
},
DatePicker: {
shortcuts: [{
text: this.$t('orderAuthor.today'),
onClick(picker) {
picker.$emit('pick', new Date());
}
}, {
text: this.$t('orderAuthor.yesterday'),
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24);
picker.$emit('pick', date);
}
}, {
text: this.$t('orderAuthor.aWeekAgo'),
onClick(picker) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', date);
}
}]
}
};
},
computed: {
isShowStartDate() {
return !this.formModel.forever && (this.formModel.bizType !== '02'); //
},
isShowMonths() {
return !this.formModel.forever; //
},
isShowContractNo() {
return this.formModel.orderType === '02'; //
},
isShowPrice() {
return this.formModel.orderType === '02'; //
},
isShowPayType() {
return this.formModel.orderType === '02'; //
},
isShowPayStatus() {
return this.formModel.orderType === '02'; //
},
isShowSeller() {
return this.formModel.orderType !== '04'; //
},
foreverIsDisabled() {
return this.foreverInitData;
},
form() {
const form = {
labelWidth: this.$i18n.locale == 'en' ? '200px': '145px',
items: [
{ prop: 'organizationId', label: this.$t('orderAuthor.organizationOrEnterprise'), type: 'select', required: false, options: this.OrganizationList, allowCreate: true, onChange: this.onChange },
{ prop: 'goodsName', label: this.$t('orderAuthor.commodityName'), type: 'text', required: false, disabled: true, rightWidth: true, buttontip: '选择商品', buttonClick: this.buttonClick },
{ prop: 'price', label: this.$t('orderAuthor.itemPricing'), type: 'number', required: false, disabled: true, min: 0, message: '元' },
{ prop: 'orderType', label: this.$t('orderAuthor.orderType'), type: 'select', required: false, options: this.OrderTypeList },
{ prop: 'sellerId', label: this.$t('orderAuthor.salesman'), type: 'select', required: false, show: this.isShowSeller, options: this.SellerList },
{ prop: 'contractNo', label: this.$t('orderAuthor.contractNumber'), type: 'text', required: false, show: this.isShowContractNo },
{ prop: 'amount', label: this.totalTitle, type: 'number', required: false, show: true, min: 0 },
{ prop: 'forever', label: this.$t('orderAuthor.permanenceOrNot'), type: 'radio', required: false, options: this.$ConstSelect.Whether, disabled: this.foreverIsDisabled },
{ prop: 'startTime', label: this.$t('orderAuthor.startDate'), type: 'date', required: false, show: this.isShowStartDate, viewFormat: 'yyyy-MM-dd', valueFormat: 'yyyy-MM-dd', picker: this.DatePicker },
{ prop: 'monthAmount', label: this.$t('orderAuthor.choosePurchaseTime'), type: 'number', required: false, show: this.isShowMonths, min: 0, message: '月' },
{ prop: 'totalPrice', label: this.$t('orderAuthor.totalPrice'), type: 'number', required: false, show: this.isShowPrice, min: 0, message: '元' },
{ prop: 'bizType', label: this.$t('orderAuthor.businessType'), type: 'select', required: false, disabled: true, options: this.BizTypeList },
{ prop: 'payWays', label: this.$t('orderAuthor.paymentMethod'), type: 'select', required: false, show: this.isShowPayType, options: this.PayTypeList },
{ prop: 'payStatus', label: this.$t('orderAuthor.paymentStatus'), type: 'select', required: false, show: this.isShowPayStatus, options: this.PayStatusTypeList }
]
};
return form;
},
rules() {
const _this = this;
const baseRules = {
organizationId: [
{ required: true, message: this.$t('rules.organizationInput'), trigger: 'blur' }
],
goodsName: [
{ required: true, message: this.$t('rules.productSelect'), trigger: 'change' }
],
price: [
{ required: true, message: this.$t('rules.itemPricingInput'), trigger: 'blur' }
],
orderType: [
{ required: true, message: this.$t('rules.orderTypeSelect'), trigger: 'change' }
],
contractNo: [
{ required: true, message: this.$t('rules.contractNumberInput'), trigger: 'blur' },
{ min: 1, max: 25, message: this.$t('rules.strLength1To25'), trigger: 'blur' }
],
sellerId: [
{ required: true, message: this.$t('rules.salesmanInput'), trigger: 'change' }
],
forever: [
{ required: true, message: this.$t('rules.pleaseSelect'), trigger: 'change' }
],
amount: [
{ required: true, message: this.$t('rules.authorAmountInput'), trigger: 'change' },
{
validator(rule, value, callback) {
if (Number.isInteger(Number(value)) && Number(value) > 0) {
callback();
} else {
callback(new Error(_this.$t('rules.authorAmountInputError')));
}
},
trigger: 'blur'
}
],
totalPrice: [
{ required: true, message: this.$t('rules.totalPriceInput'), trigger: 'change' },
{
validator(rule, value, callback) {
if (Number(value) >= 0) {
if (String(value).split('.')[1] && String(value).split('.')[1].length > 2) {
callback(new Error(this.$t('rules.totalPriceInputError1')));
} else {
callback();
}
} else {
callback(new Error(_this.$t('rules.totalPriceInputError2')));
}
},
trigger: 'blur'
}
],
monthAmount: [
{ required: true, message: this.$t('rules.monthAmountInput'), trigger: 'change' },
{
validator(rule, value, callback) {
if (Number.isInteger(Number(value)) && Number(value) > 0) {
callback();
} else {
callback(new Error(_this.$t('rules.monthAmountInputError')));
}
},
trigger: 'blur'
}
],
startTime: [
{ required: true, message: this.$t('rules.startTimePick'), trigger: 'change' }
],
bizType: [
{ required: true, message: this.$t('rules.bizTypeSelect'), trigger: 'change' }
],
payWays: [
{ required: true && this.isShowPayType, message: this.$t('rules.payWaysSelect'), trigger: 'change' }
],
payStatus: [
{ required: true && this.isShowPayStatus, message: this.$t('rules.payStatusSelect'), trigger: 'change' }
]
};
//
this.$nextTick(function () {
this.$refs.dataform.clearValidate();
});
return baseRules;
},
height() {
return this.$store.state.app.height - 240;
}
},
mounted() {
this.initLoadPage();
},
methods: {
buttonClick() {
this.$refs.addGoods.doShow();
},
selectGoods(data) {
this.formModel.goodsId = data.id;
this.formModel.goodsName = data.name;
this.formModel.price = data.price;
},
initLoadPage() {
//
//
this.loading = false;
this.goodsList.length = 0;
getGoodsList().then(response => {
const data = response.data;
if (data && data.length) {
data.forEach(elem => {
this.goodsList.push({ value: elem.id, label: elem.name, price: elem.price });
});
}
});
//
this.OrganizationList.length = 0;
getOrganizationList().then(response => {
const data = response.data;
data.forEach(elem => {
this.OrganizationList.push({ value: '' + elem.id, label: elem.name });
});
});
getSellerList().then(response => {
const data = response.data;
data.forEach(elem => {
this.SellerList.push({ value: '' + elem.id, label: elem.name });
});
});
// this.$Dictionary.permissionType().then(list => {
// this.$convertList(list, this.PermissionTypeList, elem => {
// return true;
// });
// });
this.$Dictionary.orderType().then(list => {
this.$convertList(list, this.OrderTypeList, elem => {
return elem.code !== '01'; //
});
});
this.$Dictionary.payStatus().then(list => {
this.$convertList(list, this.PayStatusTypeList, elem => {
return elem.code !== '03'; //
});
});
this.$Dictionary.payType().then(list => {
this.$convertList(list, this.PayTypeList, elem => {
return true;
});
});
this.$Dictionary.bizType().then(list => {
this.$convertList(list, this.BizTypeList, elem => {
return true;
});
});
//
this.$refs.dataform.resetForm();
//
this.$nextTick(function () {
this.$refs.dataform.clearValidate();
});
},
onChange(input) {
// List,,
const list = this.OrganizationList;
for (const i in list) {
if (list[i].value === input) {
return;
}
}
// ,List,,
this.$confirm(this.$t('tip.addOrganizationPrefix') + input + this.$t('tip.addOrganizationSuffix'), this.$t('tip.hint'), {
confirmButtonText: this.$t('tip.confirm'),
cancelButtonText: this.$t('tip.cancel'),
type: 'warning'
}).then(() => {
addOrganization({ name: input }).then(response => {
this.OrgzList.push(response.data);
}).catch(() => {
this.$messageBox(this.$t('error.addingFailure'));
});
}).catch(() => {
this.formModel.organizationId = '';
this.$message.info(this.$t('error.cancelled'));
});
},
turnback() {
this.$router.go(-1);
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
</style>

View File

@ -0,0 +1,244 @@
<template>
<div>
<el-card class="forms pack-rule">
<el-form ref="formData" label-width="130px" :model="addModel" size="mini" :rules="rules" class="rule_box">
<el-form-item label="权限类型" prop="type">
<el-radio-group v-model="addModel.type">
<el-radio v-for="item in permissionType" :key="item.value" :label="item.value">{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-show="addModel.type == '02'" :label="this.$t('orderAuthor.permissionName') + ':'" prop="name">
<el-input v-model="addModel.name" size="small" />
</el-form-item>
<el-form-item v-show="addModel.type == '02'" :label="this.$t('orderAuthor.describtion') + ':'" prop="remarks">
<el-input
v-model="addModel.remarks"
type="textarea"
:rows="2"
maxlength="60"
show-word-limit
/>
</el-form-item>
<el-form-item :label="this.$t('orderAuthor.mapName') + ':'">
<el-select v-model="addModel.mapId" :disabled="ruleList.length ? true : false">
<el-option
v-for="item in mapList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-form>
<div>
<el-button class="addList" size="small" @click="dialogSelect">{{ $t('orderAuthor.addPermissions') }}</el-button>
<el-table
:data="ruleList"
border
style="width: 100%"
:height="addModel.type == '01' ? height-400 : height-500"
>
<el-table-column prop="name" :label="this.$t('orderAuthor.permissionName')" />
<el-table-column prop="type" :label="this.$t('orderAuthor.permissionType')">
<template slot-scope="scope">
{{ computedName(PermissionTypeList, scope.row.type) }}
</template>
</el-table-column>
<el-table-column :label="this.$t('global.operate')" width="180">
<template slot-scope="scope">
<el-button type="text" size="small" @click="deleteForm(scope.$index, scope.row)">{{ $t('global.delete') }}</el-button>
<el-button v-if="scope.row.flag" type="text" size="small" @click="createGood(scope.$index, scope.row)">创建商品</el-button>
</template>
</el-table-column>
</el-table>
</div>
<choose-permission
ref="choosePermission"
:rule-list="ruleList"
:effective-type-list="EffectiveTypeList"
:permission-type-list="PermissionTypeList"
@addRuleForm="addRuleForm"
@deleteForm="deleteForm"
/>
<create-good ref="createGood" />
</el-card>
<div class="draft">
<el-button-group>
<el-button type="primary" @click="permissionNext">下一步</el-button>
<el-button type="primary" @click="turnback">{{ $t('global.back') }}</el-button>
</el-button-group>
</div>
</div>
</template>
<script>
import ChoosePermission from '../../author/draft/choosePermission';
import CreateGood from './createGood';
import { EventBus } from '@/scripts/event-bus';
import { listPublishMap } from '@/api/jmap/map';
import { getPermissionGoods } from '@/api/management/goods';
export default {
name: 'PermissionForm',
components: {
ChoosePermission,
CreateGood
},
data() {
return {
ruleList: [],
EffectiveTypeList: [],
PermissionTypeList: [],
permissionType: [
{value: '01', label: '基础权限'},
{value: '02', label: '权限包'}
],
mapList: [],
goodsList: [],
addModel: {
type: '01',
name: '',
remarks: '',
mapId: ''
},
rules: {
name: [
{ required: true, message: this.$t('rules.enterPermissionName'), trigger: 'blur' }
]
}
};
},
computed: {
height() {
return this.$store.state.app.height - 65;
}
},
mounted() {
this.loadInitData();
},
methods: {
async loadInitData() {
this.EffectiveTypeList = [];
this.$Dictionary.effectiveType().then(list => {
this.EffectiveTypeList = list.map(elem => { return { value: elem.code, label: elem.name }; });
});
this.PermissionTypeList = [];
this.$Dictionary.permissionType().then(list => {
this.PermissionTypeList = list.map(elem => { return { value: elem.code, label: elem.name }; });
});
try {
//
this.mapList = [];
const res = await listPublishMap();
res.data.forEach(elem => {
this.mapList.push({ value: elem.id, label: elem.name });
});
} catch (error) {
console.error(error, '获取发布地图');
}
},
computedName(list, code) {
let name = '';
list.forEach(elem => {
if (elem.value == code) {
name = elem.label;
}
});
return name;
},
deleteForm(index, row) {
const idx = this.ruleList.findIndex(elem => { return elem.id == row.id; });
if (idx >= 0) {
row['isPut'] = false;
this.ruleList.splice(idx, 1);
}
EventBus.$emit('reloadTable', { index: index, list: row });
},
createGood(index, row) {
this.$refs.createGood.doShow();
},
addRuleForm(index, row) {
row['isPut'] = true;
this.ruleList.push(row);
EventBus.$emit('reloadTable', { index: index, list: row });
},
dialogSelect(row) {
if (this.addModel.mapId) {
this.$refs.choosePermission.doShow(this.addModel.mapId);
} else {
this.$messageBox(this.$t('rules.mapInput'));
}
},
async permissionNext() {
if (this.ruleList.length) {
const arr = this.ruleList.map(item => {
return item.id;
});
const res = await getPermissionGoods(arr.join(','));
if (res.code == 200) {
this.goodsList = res.data;
if (this.goodsList.length == this.ruleList.length) {
this.$emit('permissionNext', this.addModel.type);
} else {
this.goodsList.forEach(nor => {
this.ruleList.forEach(ele => {
if (nor.permissionId == ele.id) {
ele.createGood = true;
}
});
});
this.ruleList.forEach(item => {
item.flag = true;
if (item.createGood) {
item.flag = false;
}
});
this.$messageBox('基础权限没有对应商品类型, 请创建商品');
}
}
} else {
this.$messageBox('请添加权限');
}
},
turnback() {
this.$router.go(-1);
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.pack-rule {
width: 800px;
margin: 0 auto;
margin-top: 12px;
padding: 40px;
.addList {
float: right;
font-size: 14px;
color: #000;
margin-bottom: 8px;
cursor: pointer;
}
.btn-footer {
width: 100%;
display: flex;
justify-content: center;
margin-top: 20px;
}
/deep/ .el-table__footer-wrapper {
.is-leaf:nth-child(3) {
font-size: 0;
}
}
}
.draft {
width: 400px;
text-align: center;
margin: 20px auto;
}
</style>

View File

@ -8,7 +8,7 @@
<script>
import { admin } from '@/router';
import { listPackagePermission, restorePackagePermission, getPackageQrCode, permissionDistributeUnPackage } from '@/api/management/distribute';
import { listPackagePermission, restorePackagePermission, getPackageQrCode } from '@/api/management/distribute';
import { UrlConfig } from '@/router/index';
import QrCode from '@/components/QrCode';
import Qcode from './Qcode';
@ -29,23 +29,12 @@ export default {
},
queryForm: {
labelWidth: '140px',
reset: true,
reset: false,
queryObject: {
// 'userMobile': {
// type: 'text',
// label: this.$t('orderAuthor.founderPhone')
// },
'userName': {
type: 'text',
label: this.$t('orderAuthor.founder')
},
// 'permissionType': {
// type: 'select',
// label: this.$t('orderAuthor.permissionType'),
// config: {
// data: []
// }
// },
'status': {
type: 'select',
label: this.$t('global.status'),
@ -73,29 +62,6 @@ export default {
title: this.$t('orderAuthor.founder'),
prop: 'userName'
},
// {
// title: this.$t('orderAuthor.founderPhone'),
// prop: 'userMobile'
// },
// {
// title: this.$t('orderAuthor.mapName'),
// prop: 'mapName'
// },
// {
// title: this.$t('orderAuthor.mapProductName'),
// prop: 'mapProductName'
// },
// {
// title: this.$t('orderAuthor.courseName'),
// prop: 'lessonName'
// },
// {
// title: this.$t('orderAuthor.permissionType'),
// prop: 'permissionType',
// type: 'tag',
// columnValue: (row) => { return this.$convertField(row.permissionType, this.PermissionTypeList, ['value', 'label']); },
// tagType: (row) => { return ''; }
// },
{
title: this.$t('orderAuthor.publicOrPrivate'),
prop: 'canDistribute',
@ -182,6 +148,7 @@ export default {
],
actions: [
{ text: this.$t('orderAuthor.privilegePackaging'), btnCode: 'employee_insert', handler: this.handlePackage },
// { text: this.$t('orderAuthor.createPackage'), handler: this.handleCreatePackage },
{ text: this.$t('orderAuthor.receivingPermission'), handler: this.handlerPermission, show: process.env.NODE_ENV == 'development' }
]
}
@ -201,15 +168,6 @@ export default {
return true;
});
});
// this.$Dictionary.permissionType().then(list => {
// list.forEach(elem => {
// this.queryForm.queryObject.permissionType.config.data.push({ value: elem.code, label: elem.name });
// });
// this.$convertList(list, this.PermissionTypeList, elem => {
// return true;
// });
// this.PermissionTypeList.push({ value: undefined, label: this.$t('orderAuthor.permissionPack') });
// });
},
formatterDate(row, porpInfo) {
return row[porpInfo.property] ? row[porpInfo.property] : '---';
@ -254,6 +212,9 @@ export default {
},
handlerPermission() {
this.$refs.qcode.doShow();
},
handleCreatePackage() {
this.$router.push({ path: `${UrlConfig.orderauthor.createPackage}` });
}
}
};

View File

@ -4,7 +4,7 @@
class="planEdit__tool add-planning-train"
:title="title"
:visible.sync="dialogShow"
width="260px"
width="300px"
:before-close="doClose"
:z-index="2000"
:modal="false"
@ -16,10 +16,10 @@
<el-input v-model="serviceNumber" size="mini" />
</el-col>
</el-row>
<el-row type="flex" justify="center" style="margin-top: 20px">
<el-button @click="handleCommit"> </el-button>
<el-button @click="doClose"> </el-button>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button size="medium" @click="doClose"> </el-button>
<el-button type="primary" size="medium" @click="handleCommit"> </el-button>
</span>
</el-dialog>
</template>
@ -92,10 +92,16 @@ export default {
.el-input {
width: 120px;
}
.el-button {
margin-left: 20px !important;
margin-right: 20px !important;
}
}
.add-planning-train{
/deep/ {
.el-dialog__body{
padding: 10px 20px;
}
.dialog-footer{
display: flex;
justify-content: center;
}
}
}
</style>

View File

@ -10,128 +10,126 @@
:modal="false"
:close-on-click-modal="false"
>
<div style="margin: 10px">
<el-row>
<el-col :span="3">
<el-radio v-model="addModel.addToFront" :label="true">加在最前</el-radio>
</el-col>
<el-col :span="4" style="margin-left: 10px">
<span>车次号</span>
</el-col>
<el-col :span="5">
<el-select v-model="addModel.tripNumber" placeholder="请选择">
<el-option
v-for="item in tripNumberList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-col>
<el-col :span="4" style="margin-left: 20px">
<span>开始时间</span>
</el-col>
<el-col :span="5">
<el-time-picker v-model="addModel.startTime" value-format="HH:mm:ss" :clearable="false" />
</el-col>
</el-row>
<el-row style="margin-top: 5px">
<el-col :span="3">
<el-radio v-model="addModel.addToFront" :label="false">加在最后</el-radio>
</el-col>
<el-col :span="4" style="margin-left: 10px">
<span>缺省停站时间</span>
</el-col>
<el-col :span="5">
<el-select v-model="addModel.defaultStopTime" placeholder="请选择">
<el-option
v-for="item in defaultStopTimeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-col>
<el-col :span="4" style="margin-left: 20px">
<span>缺省运行等级</span>
</el-col>
<el-col :span="5">
<el-select v-model="addModel.defaultSpeedLevel" placeholder="请选择">
<el-option
v-for="item in defaultSpeedLevelList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-col>
</el-row>
<el-row style="margin-bottom: 5px;">
交路
</el-row>
<el-row>
<el-table
:data="addModel.routingList"
border
highlight-current-row
:height="180"
@row-click="handleClick"
>
<el-table-column prop="startStationCode" label="起始站">
<template slot-scope="scope">
{{ formatName(scope.row.startStationCode) }}
</template>
</el-table-column>
<el-table-column prop="startSectionCode" label="起始区段">
<template slot-scope="scope">
{{ formatName(scope.row.startSectionCode) }}
</template>
</el-table-column>
<el-table-column prop="endStationCode" label="终到站">
<template slot-scope="scope">
{{ formatName(scope.row.endStationCode) }}
</template>
</el-table-column>
<el-table-column prop="endSectionCode" label="终到区段">
<template slot-scope="scope">
{{ formatName(scope.row.endSectionCode) }}
</template>
</el-table-column>
<el-table-column prop="remarks" label="描述" />
</el-table>
</el-row>
<el-row style=" margin-bottom: 5px;margin-top: 10px;">
详情
</el-row>
<el-row>
<el-table :data="addModel.arriveConfigList" border :height="180">
<el-table-column prop="stationCode" label="车站">
<template slot-scope="scope">
{{ formatName(scope.row.stationCode) }}
</template>
</el-table-column>
<el-table-column prop="sectionCode" label="区段">
<template slot-scope="scope">
{{ formatName(scope.row.sectionCode) }}
</template>
</el-table-column>
<el-table-column prop="arriveTime" label="到点" />
<el-table-column prop="stopTime" label="停站时间" />
<el-table-column prop="departureTime" label="发点" />
<el-table-column prop="speedLevel" label="运行等级" />
</el-table>
</el-row>
<el-row>
<el-col :offset="16">
<el-checkbox v-model="showDefault">显示默认停站时间和运行等级</el-checkbox>
</el-col>
</el-row>
</div>
<el-row add-to-front="flex" justify="center" class="button-group">
<el-button @click="handleCommit"> </el-button>
<el-button @click="doClose"> </el-button>
<el-row>
<el-col :span="3" style="height: 28px;line-height: 28px;">
<el-radio v-model="addModel.addToFront" :label="true">加在最前</el-radio>
</el-col>
<el-col :span="4" style="margin-left: 10px;height: 28px;line-height: 28px;">
<span>车次号</span>
</el-col>
<el-col :span="5">
<el-select v-model="addModel.tripNumber" size="mini" placeholder="请选择">
<el-option
v-for="item in tripNumberList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-col>
<el-col :span="4" style="margin-left: 20px;height: 28px;line-height: 28px;">
<span>开始时间</span>
</el-col>
<el-col :span="5">
<el-time-picker v-model="addModel.startTime" size="mini" value-format="HH:mm:ss" :clearable="false" />
</el-col>
</el-row>
<el-row style="margin-top: 5px;height: 28px;line-height: 28px;">
<el-col :span="3">
<el-radio v-model="addModel.addToFront" :label="false">加在最后</el-radio>
</el-col>
<el-col :span="4" style="margin-left: 10px;height: 28px;line-height: 28px;">
<span>缺省停站时间</span>
</el-col>
<el-col :span="5">
<el-select v-model="addModel.defaultStopTime" size="mini" placeholder="请选择">
<el-option
v-for="item in defaultStopTimeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-col>
<el-col :span="4" style="margin-left: 20px;height: 28px;line-height: 28px;">
<span>缺省运行等级</span>
</el-col>
<el-col :span="5">
<el-select v-model="addModel.defaultSpeedLevel" size="mini" placeholder="请选择">
<el-option
v-for="item in defaultSpeedLevelList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-col>
</el-row>
<el-row style="margin-bottom: 5px;">
交路
</el-row>
<el-row>
<el-table
:data="addModel.routingList"
border
highlight-current-row
:height="180"
@row-click="handleClick"
>
<el-table-column prop="startStationCode" label="起始站">
<template slot-scope="scope">
{{ formatName(scope.row.startStationCode) }}
</template>
</el-table-column>
<el-table-column prop="startSectionCode" label="起始区段">
<template slot-scope="scope">
{{ formatName(scope.row.startSectionCode) }}
</template>
</el-table-column>
<el-table-column prop="endStationCode" label="终到站">
<template slot-scope="scope">
{{ formatName(scope.row.endStationCode) }}
</template>
</el-table-column>
<el-table-column prop="endSectionCode" label="终到区段">
<template slot-scope="scope">
{{ formatName(scope.row.endSectionCode) }}
</template>
</el-table-column>
<el-table-column prop="remarks" label="描述" />
</el-table>
</el-row>
<el-row style=" margin-bottom: 5px;margin-top: 10px;">
详情
</el-row>
<el-row>
<el-table :data="addModel.arriveConfigList" border :height="180">
<el-table-column prop="stationCode" label="车站">
<template slot-scope="scope">
{{ formatName(scope.row.stationCode) }}
</template>
</el-table-column>
<el-table-column prop="sectionCode" label="区段">
<template slot-scope="scope">
{{ formatName(scope.row.sectionCode) }}
</template>
</el-table-column>
<el-table-column prop="arriveTime" label="到点" />
<el-table-column prop="stopTime" label="停站时间" />
<el-table-column prop="departureTime" label="发点" />
<el-table-column prop="speedLevel" label="运行等级" />
</el-table>
</el-row>
<el-row>
<el-col :offset="16">
<el-checkbox v-model="showDefault">显示默认停站时间和运行等级</el-checkbox>
</el-col>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button size="medium" @click="doClose"> </el-button>
<el-button type="primary" size="medium" @click="handleCommit"> </el-button>
</span>
</el-dialog>
</template>
@ -311,24 +309,20 @@ export default {
@import "src/styles/mixin.scss";
/deep/ {
.el-button {
margin-left: 40px !important;
margin-right: 40px !important;
margin-top: 10px !important;
}
.el-row {
margin-bottom: 5px !important;
}
.el-input__inner {
height: 20px !important;
line-height: 20px !important;
}
.el-date-editor .el-icon-time:before {
top: -8px;
position: relative;
}
}
.add-task{
/deep/ {
.el-dialog__body{
padding: 0 20px;
}
.dialog-footer{
display: flex;
justify-content: center;
}
}
}
</style>

View File

@ -16,10 +16,10 @@
<el-row>
<el-radio v-model="model.deleteBefore" :label="false">删除以后所有任务包含本任务</el-radio>
</el-row>
<el-row type="flex" justify="center" class="button-group">
<el-button @click="handleCommit"> </el-button>
<el-button @click="doClose"> </el-button>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button size="medium" @click="doClose"> </el-button>
<el-button type="primary" size="medium" @click="handleCommit"> </el-button>
</span>
</el-dialog>
</template>
@ -97,4 +97,15 @@ export default {
margin: 10px;
}
}
.delete-task{
/deep/ {
.el-dialog__body{
padding: 0 20px;
}
.dialog-footer{
display: flex;
justify-content: center;
}
}
}
</style>

View File

@ -29,10 +29,10 @@
<span></span>
</el-col>
</el-row>
<el-row type="flex" justify="center" style="margin-top: 20px">
<el-button @click="handleCommit"> </el-button>
<el-button @click="doClose"> </el-button>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button size="medium" @click="doClose"> </el-button>
<el-button type="primary" size="medium" @click="handleCommit"> </el-button>
</span>
</el-dialog>
</template>
@ -89,11 +89,15 @@ export default {
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
@import "src/styles/mixin.scss";
/deep/ {
.el-button {
margin-left: 40px !important;
margin-right: 40px !important;
}
}
.duplicate-train{
/deep/ {
.el-dialog__body{
padding: 0 20px;
}
.dialog-footer{
display: flex;
justify-content: center;
}
}
}
</style>

View File

@ -90,7 +90,7 @@
</el-table>
</el-row>
<div class="button-group" style="text-align: center; margin-top: 10px;">
<el-button @click="handleSave">保存</el-button>
<el-button type="primary" @click="handleSave">保存</el-button>
<el-button @click="doClose">取消&退出</el-button>
</div>
<update-station-interval-time ref="updateStationIntervalTime" @handleConfirm="handleConfirm" />

View File

@ -10,212 +10,213 @@
:modal="false"
:close-on-click-modal="false"
>
<div style="margin: 10px">
<el-row>
<el-col :span="4">
<el-row>
<el-col :span="9">
<span>车次号</span>
</el-col>
<el-col :span="15">
<el-select v-model="editModel.tripNumber" style="display: inline-black" placeholder="请选择">
<el-option
v-for="item in tripNumberList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-col>
</el-row>
</el-col>
<el-col :span="2">
<el-row>
<el-col :offset="8">
<el-checkbox v-model="editModel.trainManual">手工</el-checkbox>
</el-col>
</el-row>
</el-col>
<el-col :span="6">
<el-row>
<el-col :span="11" :offset="1">
<span>缺省停站时间</span>
</el-col>
<el-col :span="12">
<el-select
v-model="editModel.defaultStopTime"
style="display: inline-black"
placeholder="请选择"
>
<el-option
v-for="item in defaultStopTimeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-col>
</el-row>
</el-col>
<el-col :span="5">
<el-row>
<el-col :span="9" :offset="2">
<span>表号</span>
</el-col>
<el-col :span="13">
<el-input v-model="editModel.serviceNumber" />
</el-col>
</el-row>
</el-col>
<el-col :span="7">
<el-row>
<el-col :span="22" :offset="2">
<el-row>
<el-col :span="6">
<el-checkbox v-model="editModel.clearGuest">清客</el-checkbox>
</el-col>
<el-col :span="8">
<el-checkbox v-model="editModel.continuationPlan">延续计划</el-checkbox>
</el-col>
<el-col :span="6">
<el-checkbox v-model="editModel.firstTrain">首班车</el-checkbox>
</el-col>
</el-row>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row>
<el-col :span="4">
<el-row>
<el-col :span="9">
<span>序列号</span>
</el-col>
<el-col :span="15">
<el-select v-model="editModel.serialNumber" style="display: inline-black" placeholder="请选择">
<el-option
v-for="item in serialNumberList"
:key="item.value"
:label="item.label"
:value="editModel.value"
/>
</el-select>
</el-col>
</el-row>
</el-col>
<el-col :span="2">
<el-row>
<el-col :offset="8">
<el-checkbox v-model="editModel.serialManual">手工</el-checkbox>
</el-col>
</el-row>
</el-col>
<el-col :span="6">
<el-row>
<el-col :span="11" :offset="1">
<span>缺省运行等级</span>
</el-col>
<el-col :span="12">
<el-select
v-model="editModel.defaultSpeedLevel"
style="display: inline-black"
placeholder="请选择"
>
<el-option
v-for="item in defaultSpeedLevelList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-col>
</el-row>
</el-col>
<el-col :span="5">
<el-row>
<el-col :span="9" :offset="2">
<span>开始时间</span>
</el-col>
<el-col :span="13">
<el-time-picker
v-model="editModel.startTime"
placeholder="选择时间"
value-format="HH:mm:ss"
:clearable="false"
<el-row>
<el-col :span="4">
<el-row>
<el-col :span="9" class="lineHeight">
<span>车次号</span>
</el-col>
<el-col :span="15">
<el-select v-model="editModel.tripNumber" size="mini" style="display: inline-black" placeholder="请选择">
<el-option
v-for="item in tripNumberList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-col>
</el-row>
</el-col>
<el-col :span="7">
<el-row>
<el-col :span="22" :offset="2">
<el-row>
<el-col :span="6">
<el-checkbox v-model="editModel.inStock">入库</el-checkbox>
</el-col>
<el-col :span="8">
<el-checkbox v-model="editModel.outStock">出库</el-checkbox>
</el-col>
<el-col :span="6">
<el-checkbox v-model="editModel.lastTrain">末班车</el-checkbox>
</el-col>
</el-row>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row style="margin-bottom: 5px;">
交路
</el-row>
<el-row>
<el-table :data="editModel.routingList" border :height="140">
<el-table-column prop="startStationCode" label="起始站">
<template slot-scope="scope">
{{ formatName(scope.row.startStationCode) }}
</template>
</el-table-column>
<el-table-column prop="startSectionCode" label="起始区段" />
<el-table-column prop="endStationCode" label="终到站">
<template slot-scope="scope">
{{ formatName(scope.row.endStationCode) }}
</template>
</el-table-column>
<el-table-column prop="endSectionCode" label="终到区段" />
<el-table-column prop="remarks" label="描述" :width="280" />
<el-table-column :width="40" />
</el-table>
</el-row>
<el-row style=" margin-bottom: 5px;margin-top: 10px;">
详情
</el-row>
<el-row>
<el-table :data="editModel.arriveConfigList" border :height="180">
<el-table-column prop="stationCode" label="车站">
<template slot-scope="scope">
{{ formatName(scope.row.stationCode) }}
</template>
</el-table-column>
<el-table-column prop="sectionCode" label="区段">
<template slot-scope="scope">
{{ formatName(scope.row.sectionCode) }}
</template>
</el-table-column>
<el-table-column prop="arriveTime" label="到点" />
<el-table-column prop="stopTime" label="停站时间" />
<el-table-column prop="departureTime" label="发点" />
<el-table-column prop="speedLevel" label="运行等级" />
</el-table>
</el-row>
<el-row>
<el-col :offset="16">
<el-checkbox v-model="editModel.default">显示默认停站时间和运行等级</el-checkbox>
</el-col>
</el-row>
</div>
<el-row type="flex" justify="center" class="button-group">
<el-button @click="handleCommit"> </el-button>
<el-button @click="doClose"> </el-button>
</el-select>
</el-col>
</el-row>
</el-col>
<el-col :span="2">
<el-row>
<el-col :offset="8" class="lineHeight">
<el-checkbox v-model="editModel.trainManual">手工</el-checkbox>
</el-col>
</el-row>
</el-col>
<el-col :span="6">
<el-row>
<el-col :span="11" :offset="1" class="lineHeight">
<span>缺省停站时间</span>
</el-col>
<el-col :span="12">
<el-select
v-model="editModel.defaultStopTime"
style="display: inline-black"
size="mini"
placeholder="请选择"
>
<el-option
v-for="item in defaultStopTimeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-col>
</el-row>
</el-col>
<el-col :span="5">
<el-row>
<el-col :span="9" :offset="2" class="lineHeight">
<span>表号</span>
</el-col>
<el-col :span="13">
<el-input v-model="editModel.serviceNumber" size="mini" />
</el-col>
</el-row>
</el-col>
<el-col :span="7" class="lineHeight">
<el-row>
<el-col :span="22" :offset="2">
<el-row>
<el-col :span="6">
<el-checkbox v-model="editModel.clearGuest">清客</el-checkbox>
</el-col>
<el-col :span="8">
<el-checkbox v-model="editModel.continuationPlan">延续计划</el-checkbox>
</el-col>
<el-col :span="6">
<el-checkbox v-model="editModel.firstTrain">首班车</el-checkbox>
</el-col>
</el-row>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row>
<el-col :span="4">
<el-row>
<el-col :span="9" class="lineHeight">
<span>序列号</span>
</el-col>
<el-col :span="15">
<el-select v-model="editModel.serialNumber" size="mini" style="display: inline-black" placeholder="请选择">
<el-option
v-for="item in serialNumberList"
:key="item.value"
:label="item.label"
:value="editModel.value"
/>
</el-select>
</el-col>
</el-row>
</el-col>
<el-col :span="2">
<el-row>
<el-col :offset="8" class="lineHeight">
<el-checkbox v-model="editModel.serialManual" size="mini">手工</el-checkbox>
</el-col>
</el-row>
</el-col>
<el-col :span="6" class="lineHeight">
<el-row>
<el-col :span="11" :offset="1">
<span>缺省运行等级</span>
</el-col>
<el-col :span="12">
<el-select
v-model="editModel.defaultSpeedLevel"
style="display: inline-black"
size="mini"
placeholder="请选择"
>
<el-option
v-for="item in defaultSpeedLevelList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-col>
</el-row>
</el-col>
<el-col :span="5" class="lineHeight">
<el-row>
<el-col :span="9" :offset="2">
<span>开始时间</span>
</el-col>
<el-col :span="13">
<el-time-picker
v-model="editModel.startTime"
placeholder="选择时间"
value-format="HH:mm:ss"
size="mini"
:clearable="false"
/>
</el-col>
</el-row>
</el-col>
<el-col :span="7" class="lineHeight">
<el-row>
<el-col :span="22" :offset="2">
<el-row>
<el-col :span="6">
<el-checkbox v-model="editModel.inStock">入库</el-checkbox>
</el-col>
<el-col :span="8">
<el-checkbox v-model="editModel.outStock">出库</el-checkbox>
</el-col>
<el-col :span="6">
<el-checkbox v-model="editModel.lastTrain">末班车</el-checkbox>
</el-col>
</el-row>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row style="margin-bottom: 5px;">
交路
</el-row>
<el-row>
<el-table :data="editModel.routingList" border :height="140">
<el-table-column prop="startStationCode" label="起始站">
<template slot-scope="scope">
{{ formatName(scope.row.startStationCode) }}
</template>
</el-table-column>
<el-table-column prop="startSectionCode" label="起始区段" />
<el-table-column prop="endStationCode" label="终到站">
<template slot-scope="scope">
{{ formatName(scope.row.endStationCode) }}
</template>
</el-table-column>
<el-table-column prop="endSectionCode" label="终到区段" />
<el-table-column prop="remarks" label="描述" :width="280" />
<el-table-column :width="40" />
</el-table>
</el-row>
<el-row style=" margin-bottom: 5px;margin-top: 10px;">
详情
</el-row>
<el-row>
<el-table :data="editModel.arriveConfigList" border :height="180">
<el-table-column prop="stationCode" label="车站">
<template slot-scope="scope">
{{ formatName(scope.row.stationCode) }}
</template>
</el-table-column>
<el-table-column prop="sectionCode" label="区段">
<template slot-scope="scope">
{{ formatName(scope.row.sectionCode) }}
</template>
</el-table-column>
<el-table-column prop="arriveTime" label="到点" />
<el-table-column prop="stopTime" label="停站时间" />
<el-table-column prop="departureTime" label="发点" />
<el-table-column prop="speedLevel" label="运行等级" />
</el-table>
</el-row>
<el-row>
<el-col :offset="16">
<el-checkbox v-model="editModel.default">显示默认停站时间和运行等级</el-checkbox>
</el-col>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button size="medium" @click="doClose"> </el-button>
<el-button type="primary" size="medium" @click="handleCommit"> </el-button>
</span>
</el-dialog>
</template>
@ -417,28 +418,27 @@ export default {
<style rel="stylesheet/scss" lang="scss" scoped>
@import "src/styles/mixin.scss";
.lineHeight{
height: 28px;
line-height: 28px;
}
/deep/ {
.el-button {
margin-left: 40px !important;
margin-right: 40px !important;
}
.el-row {
margin-bottom: 5px !important;
}
.el-dialog .el-input__inner {
height: 20px !important;
line-height: 20px !important;
}
.add-task{
/deep/ {
.el-dialog__body{
padding: 0 20px;
}
.el-dialog .el-input {
width: 120px !important;
}
.el-icon-time:before {
position: relative;
top: -10px;
.dialog-footer{
display: flex;
justify-content: center;
}
}
}
</style>

View File

@ -17,10 +17,10 @@
{{ params.message }}
</el-col>
</el-row>
<el-row type="flex" justify="center" class="button-group">
<el-button @click="handleCommit"> </el-button>
<el-button @click="doClose"> </el-button>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button size="medium" @click="doClose"> </el-button>
<el-button type="primary" size="medium" @click="handleCommit"> </el-button>
</span>
</el-dialog>
</template>
@ -39,7 +39,7 @@ export default {
},
computed: {
title() {
return 'offline';
return '删除计划车';
},
width() {
if (this.params.width) {
@ -75,4 +75,15 @@ export default {
width: 40px;
}
}
.add-planning-train{
/deep/ {
.el-dialog__body{
padding: 10px 20px;
}
.dialog-footer{
display: flex;
justify-content: center;
}
}
}
</style>

View File

@ -11,10 +11,10 @@
:close-on-click-modal="false"
>
<el-input v-model="context" type="textarea" :rows="10" readonly />
<el-row type="flex" justify="center" class="button-group">
<el-button @click="handleCommit"> </el-button>
<el-button @click="doClose"> </el-button>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button size="medium" @click="doClose"> </el-button>
<el-button type="primary" size="medium" @click="handleCommit"> </el-button>
</span>
</el-dialog>
</template>
@ -68,4 +68,15 @@ export default {
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
@import "src/styles/mixin.scss";
.systerm-out{
/deep/ {
.el-dialog__body{
padding: 10px 20px;
}
.dialog-footer{
display: flex;
justify-content: center;
}
}
}
</style>

View File

@ -120,7 +120,8 @@ export default {
tooltip: {
axisPointer: {
trigger: 'item',
type: 'cross'
type: 'cross',
snap: true
},
formatter: this.axisTooltip,
borderWidth: 1
@ -282,17 +283,19 @@ export default {
}
});
}
});
this.myChart && this.myChart.setOption({ series:
{
name: 'trainLabel',
lineStyle: {
color: 'green'
},
type: 'line',
data: data
if (item.name == 'trainLabel') {
item.data = [];
}
});
op.series.push({
name: 'trainLabel',
lineStyle: {
color: 'green'
},
type: 'line',
data: data
});
this.myChart && this.myChart.setOption(op);
}
this.$store.dispatch('runPlan/setSelected', { serviceNumber: serviceNumber, tripNumber: tripNumber });
@ -461,7 +464,7 @@ export default {
that.myChart = ec.init(document.getElementById(that.runPlanId));
that.myChart.setOption(that.option);
that.reSize({ width: that.$store.state.runPlan.width, height: that.$store.state.runPlan.height });
that.myChart.on('click', that.mouseClick);
// that.myChart.on('click', that.mouseClick);
resolve(true);
}
);
@ -526,25 +529,24 @@ export default {
`到站时间: ${timeFormat(param.data[0] + this.planConvert.TranslationTime)} (${param.data[0]})<br>`
].join('');
},
mouseClick(params) {
const model = {
serviceNumber: params.seriesName
};
// mouseClick(params) {
// const model = {
// serviceNumber: params.seriesName
// };
const op = this.myChart.getOption();
op.series.forEach(item => {
item.lineStyle.color = '#000';
if (item.name == params.seriesName) {
item.lineStyle.color = 'red';
}
if (item.name == 'trainLabel') {
item.data = [];
}
});
this.myChart.setOption(op);
this.$store.dispatch('runPlan/setSelected', model);
},
// const op = this.myChart.getOption();
// op.series.forEach(item => {
// item.lineStyle.color = '#000';
// if (item.name == params.seriesName) {
// item.lineStyle.color = 'red';
// }
// if (item.name == 'trainLabel') {
// item.data = [];
// }
// });
// this.myChart.setOption(op);
// this.$store.dispatch('runPlan/setSelected', model);
// },
reSize(opt) {
if (this.myChart) {
this.myChart.resize({

View File

@ -8,6 +8,7 @@
import { getPublishMapList, delPublishMap, getPublishMapExport, putMapOnLine, putMapOffLine } from '@/api/jmap/map';
import { getSkinCodeList } from '@/api/management/mapskin';
import { UrlConfig } from '@/router/index';
import deviceType from '@/jmap/constant/deviceType';
import localStore from 'storejs';
export default {
@ -61,6 +62,10 @@ export default {
columnValue: (row) => { return this.$convertField(row.skinCode, this.skinCodeList, ['code', 'name']); },
tagType: (row) => { return ''; }
},
// {
// title: this.$t('publish.updateTime'),
// prop: 'updateTime'
// },
{
type: 'button',
title: this.$t('global.operate'),
@ -96,6 +101,11 @@ export default {
{
name: this.$t('global.exportMap'),
handleClick: this.handleExportMap
},
{
name: this.$t('global.export'),
handleClick: this.handleExportMapSame,
showControl: () => { return process.env.NODE_ENV === 'development'; }
}
]
}
@ -196,24 +206,196 @@ export default {
//
async handleExportMap(index, row) {
try {
const res = await getPublishMapExport(row.id);
const resultData = res.data;
if (resultData === false) {
return;
}
const content = new Blob([JSON.stringify(resultData)]);
const urlObject = window.URL || window.webkitURL || window;
const url = urlObject.createObjectURL(content);
const el = document.createElement('a');
el.href = url;
el.download =`${resultData.name}.json`;
el.click();
urlObject.revokeObjectURL(url);
} catch (error) {
console.error(error);
const res = await getPublishMapExport(row.id);
const resultData = res.data;
if (resultData === false) {
return;
}
// const self = this;
// import('@/utils/Export2Excel').then(excel => {
// self.queryExportData(resultData).then(data => {
// excel.export_json_excel(data, resultData.name);
// }).catch(error => {
// self.$message.error(`${this.$t('error.exportException')}:${error.message}`);
// });
// });
const content = new Blob([JSON.stringify(resultData)]);
const urlObject = window.URL || window.webkitURL || window;
const url = urlObject.createObjectURL(content);
const el = document.createElement('a');
el.href = url;
el.download =`${resultData.name}.json`;
el.click();
urlObject.revokeObjectURL(url);
},
//
async handleExportMapSame(index, row) {
const res = await getPublishMapExport(row.id);
const resultData = res.data;
if (resultData === false) {
return;
}
const self = this;
import('@/utils/Export2Excel').then(excel => {
self.queryExportDataSame(resultData).then(data => {
excel.export_json_excel(data, resultData.name);
}).catch(error => {
self.$message.error(`${this.$t('error.exportException')}:${error.message}`);
});
});
},
formatJson(filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => v[j]));
},
//
queryExportData(data) {
return new Promise((resolve, reject) => {
const result = {
base: []
};
const obj = {};
const list = ['graphData', 'logicData'];
for (const i in data) {
if (list.includes(i)) {
for (const v in data[i]) {
if (data[i][v].length) {
result[v] = [...data[i][v]];
} else if (v == 'skinVO') {
result[v] = [data[i][v]];
}
}
} else if (data[i] instanceof Object || typeof data[i] != 'object') {
obj[i] = data[i];
} else if (data[i] instanceof Array) {
if (data[i].length) {
obj[i] = [...data[i]];
}
}
}
result.base.push(obj);
resolve(result);
});
},
//
queryExportDataSame(data) {
const mapProps = {};
mapProps['stationStandList'] = {
filter: item => { return true; },
propList: {
'direction': item => {
return item.direction;
},
'name': (item, devices) =>{
let name = '';
if (item.stationCode) {
const stationList = devices['stationList'];
const station = stationList.find(elem => { return item.stationCode == elem.code; });
if (station) {
name = station.name;
}
}
return name;
},
'code': item => {
return item.code;
}
}
};
mapProps['switchList'] = {
filter: item => { return true; },
propList: {
'name': item =>{
return item.name;
},
'code': item => {
return item.code;
}
}
};
mapProps['signalList'] = {
filter: item => { return true; },
propList: {
'name': item =>{
return item.name;
},
'code': item => {
return item.code;
}
}
};
mapProps['sectionList'] = {
filter: item => { return item.type == '01'; },
propList: {
'name': (item, devices) =>{
let name = item.name;
if (item.isSwitchSection) {
const swchList = devices['switchList'];
const swch = swchList.find(elem => { return item.relSwitchCode == elem.code; });
if (swch) {
if (item.code == swch.sectionACode) {
name = `${name} (${swch.name}-A)`;
} else if (item.code == swch.sectionBCode) {
name = `${name} (${swch.name}-B)`;
} else if (item.code == swch.sectionCCode) {
name = `${name} (${swch.name}-C)`;
}
}
}
return name;
},
'code': item => {
return item.code;
}
}
};
return new Promise((resolve, reject) => {
const result = {
base: []
};
const obj = {};
const list = ['graphData', 'logicData'];
for (const i in data) {
if (list.includes(i)) {
for (const v in data[i]) {
if (data[i][v].length) {
if (mapProps[v]) {
const list = [];
data[i][v].forEach(device => {
if (mapProps[v].filter(device)) {
const obj = {};
Object.keys(mapProps[v].propList || []).forEach(key => {
obj[key] = mapProps[v].propList[key](device, data[i]);
});
list.push(obj);
}
});
result[v] = list;
}
} else if (v == 'skinVO') {
result[v] = [data[i][v]];
}
}
} else if (data[i] instanceof Object || typeof data[i] != 'object') {
obj[i] = data[i];
} else if (data[i] instanceof Array) {
if (data[i].length) {
obj[i] = [...data[i]];
}
}
}
result.base.push(obj);
resolve(result);
});
}
}
};