This commit is contained in:
sunzhenyu 2019-09-19 09:25:04 +08:00
parent b2f1bfae58
commit 71a33b5042
289 changed files with 7343 additions and 5139 deletions

View File

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

View File

@ -103,3 +103,23 @@ export function cancalOrder(orderId) {
method: 'put' method: 'put'
}); });
} }
// 快速创建权限
export function createPermission(data) {
return request({
url: `/api/order/quicklyGenerateOrder`,
method: 'post',
data: data
});
}
// 校验是否存在所选择权限对应的权限包
export function postFindPermission(ids) {
return request({
url: `/api/permission/findPermission`,
method: 'post',
data: {
relPermissions: ids
}
});
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 120 KiB

View File

@ -107,13 +107,19 @@ export default {
}, },
computed: { computed: {
width() { width() {
let fontNum = 0; let fontNum = 0;
let newLabel="";
this.menu.forEach(elem => { this.menu.forEach(elem => {
if (elem.label && elem.label.length > fontNum) { newLabel=elem.label.replace(/[^\u0000-\u00ff]/g,"aa");
fontNum = elem.label.length; if (elem.label && newLabel.length > fontNum) {
fontNum=newLabel.length;
// fontNum = elem.label.length;
} }
}); });
var width = fontNum * this.defaultFontSize + 40 + 'px'; var width = fontNum/2 * this.defaultFontSize + 60 + 'px';
// if(this.$t('global.lanuage')==='en'){
// width = fontNum/2 * this.defaultFontSize + 40 + 'px';
// }
return width; return width;
} }
}, },
@ -187,6 +193,7 @@ export default {
} }
}, },
calculateSubWidth(item) { calculateSubWidth(item) {
// debugger;
const children = item.children; const children = item.children;
let width = 0; let width = 0;
let fontNum = 0; let fontNum = 0;
@ -197,7 +204,7 @@ export default {
}); });
width = fontNum * this.defaultFontSize + 20 + 'px'; width = fontNum * this.defaultFontSize + 20 + 'px';
return width; return width;
}, },
openLoadFile(item) { openLoadFile(item) {
const obj = this.$refs[item.label][0]; const obj = this.$refs[item.label][0];
if (obj.files) { if (obj.files) {

View File

@ -0,0 +1,34 @@
export default {
testStatistics: 'Test statistics',
simulationStatistics: 'simulationStatistics',
comprehensiveExerciseCloudPlatform: 'Comprehensive exercise cloud platform',
driverSimulatedDrivingSystem: 'Driver simulated driving system',
ATSLineAdjustmentWorkstation: 'ATS line adjustment workstation',
ATSLocalWorkstation: 'ATS local workstation',
courseStatistics: 'Course Statistics',
signalTraining: 'Signal Training',
turnoutTraining: 'Turnout Training',
sectionTraining: 'Section Training',
stationTraining: 'Station Training',
permissions: 'Permissions (individual)',
largeScreenSystemPermissions: 'Large screen system permissions',
courseAuthority: 'Course authority',
examinationAuthority: 'Examination authority',
simulationPermission: 'Simulation Permission',
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,
'ATS line adjustment workstation - Course authority': 0,
'ATS local workstation - Examination authority': 0,
'ATS line adjustment workstation - Examination authority': 0,
'ATS local workstation - Simulation authority': 0,
'ATS line adjustment workstation - Simulation authority': 0,
'Comprehensive exercise cloud platform - Simulation authority': 0,
'Driver simulated driving system - Simulation authority': 0,
'Large screen system permissions': 0
}
};

View File

@ -0,0 +1,176 @@
export default {
startBtn: 'Start',
endBtn: 'End',
backBtn: 'Back',
seconds: 'seconds',
lesson: {
teachingMode: 'Teaching Mode',
practiceMode: 'Practice Mode',
testMode: 'Test Mode',
score: 'Score: ',
selectTraining: 'Please select training',
endTrainingError: 'Ending training error',
endTrainingTip: 'The operation is not completed, confirm the end?',
startTrainingTip: 'Please start training',
createSimulationError: 'create simulation error'
},
exam: {
startTestOperateTip: 'Please click to start the exam',
selectTest: 'Please select a question',
endTrainingError: 'Ending training error',
startTestTip: 'Please start the exam first',
endTestTip: 'Do you give up this exam? ',
refreshListError: 'Refresh List Error',
examTime: 'Exam timing: ',
questionTitle: 'Question title: ',
bestTime: 'Best time: ',
maximumTime: 'Maximum time: ',
trainingInstructions: 'Training instructions: ',
viewQuestions: 'View questions',
prev: 'prev',
next: 'next',
submitExaminationPaper: 'Submit Exam',
autoSubmit: 'Automatic submission at the end of the exam',
getTestInformation: 'Failed to get test information',
cancleExam: 'The exam is not completed,confirm to exit?'
},
training: {
trainingName: 'Training name: ',
bestTime: 'Best time: ',
maximumTime: 'Maximum time: ',
trainingInstructions: 'Training instructions: ',
getCourseInformationFail: 'Failed to get course information'
},
demon: {
trialTime: 'Trial time: ',
dispatchingPlan: 'Schedule Plan',
exitScript: 'Exit Script',
drivingByPlan: 'Driving By Plan',
exitPlan: 'Exit Plan',
back: 'Back',
threeDimensionalView: 'Three-Dimensional View',
taskOperateSuccess: 'Task Operate success',
getTimeFail: 'Failed to get time',
startSimulationFail: 'Start simulation failed, please go back and try again',
endSimulationFail: 'End simulation failed, please go back',
exitTaskFail: 'Failed to Exit task',
driverPerspective: 'Driver Perspective'
},
systemTime: {
timePause: 'Pausing'
},
screen: {
trialTime: 'Trial time: ',
getTimeFail: 'Failed to get time'
},
replay: {
pleaseSelect: 'Please select',
back: 'Back',
pause: 'Pause',
play: 'Play'
},
plan: {
drivingByPlan: 'Driving By Plan',
exitPlan: 'Exit Plan',
back: 'Back',
startPlanFail: 'Start planning failed, please go back and try again',
endPlanFail: 'End plan failed, please go back'
},
schema: {
selectProduct: 'Please select product type',
loadScript: 'Load Script',
previewRunDiagram: 'Preview Run Diagram',
loadRunDiagram: 'Load Run Diagram',
faultSetting: 'Fault Setting',
normalOperation: 'Normal Operation',
faultOperation: 'Fault Operation',
getRunDiagramFail: 'Failed to get run diagram data',
todayRunDiagramNoLoad: 'Today\'s run diagram is not loaded',
getStationListFail: 'Failed to get station list'
},
faultChoose: {
manual: 'Manual',
automatic: 'Automatic',
settingCondition: 'Setting Condition',
triggerTarget: 'Trigger Target',
selectFault: 'Select Fault',
selectRules: 'Please select rules',
setFaultSuccess: 'Set fault success',
setFaultFail: 'Set fault failed'
},
setTime: {
systemTime: 'System Time',
anyTime: 'Any Time',
loadTrainNum: 'Number of trains loaded',
selectLoadTrainNum: 'Please select the number of trains that can be loaded',
maxTrainNum: 'maximum number of trains that can be loaded',
setSimulationSystemTime: 'Set simulation system time',
selectSystemTime: 'Please select system time',
selectValidStartTime: 'Please select valid start time',
selectTrainNum: 'Please select number of trains'
},
script: {
scriptList: 'Script List',
roleSelect: 'Role Select',
role: 'Role',
pleaseSelect: 'Please select',
scriptName: 'Script Name',
createTime: 'Create Time',
operate: 'Operate',
loadScript: 'Load Script',
admin: 'Administrator',
instructor: 'Instructor',
dispatcher: 'Dispatcher',
attendant: 'Station',
audience: 'Audience',
driver: 'Train',
none: 'None'
},
schedule: {
scheduleSelect: 'Schedule Select: ',
runDiagramName: 'Run Diagram Name:',
scheduleMode: 'Schedule Mode:',
check: 'Check',
save: 'Save',
driverNumber: 'Driver Number',
trainNumber: 'Train Number',
onlineSection: 'Online Section',
onlineServerNumber: 'Online Server Number',
onlineTargetNumber: 'Online Target Number',
onlineTime: 'Online Time',
onlineTripNumber: 'Online Trip Number',
outDepot: 'Out Depot',
outDepotStatus: 'Out Depot Status',
offlineSection: 'Offline Section',
offlineServerNumber: 'Offline Server Number',
offlineTargetNumber: 'Offline Target Number',
offlineTime: 'Offline Time',
offlineTripNumber: 'Offline Trip Number',
inDepot: 'In Depot',
inDepotStatus: 'InDepot Status',
schedulePlan: 'Schedule Plan',
noSchedulePlan: 'No schedule plan,whether to create?',
loadData: 'Load Data',
schedulePlanSuccess: 'Schedule plan success',
createSchedulePlanSuccess: 'Create schedule plan success',
regenerateSchedulePlanSuccess: 'Regenerate schedule plan success',
checkPassed: 'Check passed',
checkFailed: 'Check failed',
checkSchedulePlanFailed: 'Check schedule plan failed',
saveSchedulePlanSuccess: 'Save schedule plan success',
saveSchedulePlanFail: 'Save schedule plan fail',
selectSchedulePlan: 'Please select schedule plan'
},
runPlan: {
runDiagramPlanTool: 'Run Diagram Plan Tool',
previewRunDiagram: 'Preview Run Diagram',
stationName: 'Station Name',
stationMark: 'Station kilometer Mark',
arrivalTime: 'ArrivalTime'
},
chatBox: {
chatWindow: 'Chat Window',
autoplay: 'Autoplay',
holdAndTalk: 'Hold And Talk'
}
};

View File

@ -62,6 +62,34 @@ export default {
obtainChapterDataFailed: 'Failed to obtain chapter data', obtainChapterDataFailed: 'Failed to obtain chapter data',
obtainCourseDetailsFailed: 'Failed to obtain course details', obtainCourseDetailsFailed: 'Failed to obtain course details',
obtainCourseInformationFailed: 'Failed to obtain course information', obtainCourseInformationFailed: 'Failed to obtain course information',
obtainStepDataFailed: 'Failed to obtain step data' obtainStepDataFailed: 'Failed to obtain step data',
submitExamFailed: 'Automatic submission of test results failed',
getTestInformationFailed: 'Failed to get test information',
gifSource: 'gif source',
page: 'page',
noPermissionToGoToThisPage: 'You don\'t have permission to go to this page',
dissatisfied: 'If you are dissatisfied, please contact your leader.',
orYouCanGo: 'Or you can go:',
backToHome: 'Back to home',
justLookingAround: 'Just looking around',
pointMeToSeeThePicture: 'Point me to see the picture',
casualLook: 'Casual look',
problemWithAudioQuality: 'There is a problem with audio quality',
audioIsTooLong: 'The audio is too long, it is recommended to be below 60s',
audioIsTooShort: 'The audio is too short, it is recommended to re-record',
networkProblem: 'Network problem, please try again',
initializationFailed: 'Initialization failed:',
getMapDataFailed: 'Failed to get map data',
ibpNoDraw: 'Unbound station or the station IBP disk is not drawn yet',
startSimulationFailed: 'Start simulation failed, please go back and try again',
endSimulationFailed: 'End simulation failed, please return',
runGraphIsNotLoaded: 'Today\'s run graph is not loaded',
startedComprehensiveDrillFailure: 'Started a comprehensive drill failure.',
stationAttendantStationCannotBeEmpty: 'Station attendant station cannot be empty',
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',
obtainTrainGroupNumberFailed: 'Failed to obtain train group number',
getTrainListFailed: 'Failed to get train list'
}; };

View File

@ -1,16 +1,40 @@
export default { export default {
testSystem: '城市轨道交通考试系统', testSystem: 'Urban rail transit examination system',
testSystemDescription: ' 该系统具有自定义考试规则、自动生成考卷、学员成绩统计、数据曲线分析及题库管理等功能,从实战操作、业务流程、故障模拟及考试规则等多角度出发,力求打造最符合用户需求的城市轨道交通在线交互实操类考试系统', testSystemDescription: 'The system has the functions of self-defined examination rules, automatic generation of examination papers, statistics of students\' scores, data curve analysis and question bank management, etc. From the perspectives of practical operation, business process, fault simulation and examination rules, it strives to build the online interactive practical operation examination system of urban rail transit that best meets users\' needs',
examResultsDetails: '考试结果详情', examResultsDetails: 'Details of examination results',
testQuestionsName: '试题名称', testQuestionsName: 'Item name',
testScores: '考试得分', testScores: 'Test scores',
points: '分', points: 'Point',
whetherThrough: '是否通过', whetherThrough: 'Whether through',
didNotCalculate: '未计算', didNotCalculate: 'Did not calculate',
pass: '通过', pass: 'pass',
notPass: '未通过', notPass: 'Not pass',
examTime: '考试用时', examTime: 'Exam time',
trainingName: '实训名称', trainingName: 'Training name',
trainingScore: '实训得分', trainingScore: 'Training score',
returnToExamList: '返回考试列表' returnToExamList: 'Return to the exam list',
totalScore: 'Total score',
itemList: 'Item list',
courseName: 'Course name',
permissionsDetails: 'Permissions for details',
buy: 'buy',
distributePermission: 'Permission distribution (examination)',
viewCoursePapers: 'View course papers',
examStartTime: 'Exam start time',
theExamIsReadyAnyTime: 'The exam is ready any time',
testExplanation: 'Test Explanation',
examTimeAvailable: 'Exam time available',
fullMarksInTheExam: 'Full marks in the exam',
passMarkTheExam: 'Pass mark the exam',
examinationRules: 'Examination rules',
trainingType: 'Training type',
numberOfQuestions: 'Number of questions',
score: 'Score',
startTheExam: 'Start the exam',
examinationTiming: 'Examination timing',
maximumTimeToCompleteThisQuestion: 'Maximum time to complete this question',
theBestTimeToCompleteTheQuestion: 'The best time to complete the question',
trainingNotes: 'Training notes',
giveUpTheExam: 'Give up the exam',
nameOfTestPaper: 'Test name'
}; };

View File

@ -1,4 +1,5 @@
export default { export default {
// lanuage: 'en',
offset: 'Offset', offset: 'Offset',
zoom: 'Zoom', zoom: 'Zoom',
tips: 'Tips', tips: 'Tips',
@ -83,7 +84,46 @@ export default {
trainingNotStart: "{name}'s room hasn't started yet", trainingNotStart: "{name}'s room hasn't started yet",
inputRoomNumber: 'Please enter the room number.', inputRoomNumber: 'Please enter the room number.',
chooseRoom: 'Choose Room', chooseRoom: 'Choose Room',
month: 'month',
month: ' month',
indexA: ' piece',
purchasePrice: 'Total Price: ',
permissionNum: 'Permission Num: ',
submitOrders: 'Submit orders',
completePayment: 'Complete payment',
weChatPay: 'WeChat Pay',
alipayPayment: 'AliPay',
clickRefresh: 'Please click to refresh',
checkstand: 'Checkstand',
permissionType: 'Permission Type: ',
productName: 'Product Name',
simulationPrice: 'Simulation Unit Price',
yuanMonth: 'yuan/month',
permissions: ' permissions',
purchaseDuration: 'Purchase Duration: ',
custom: 'custom',
january: 'One month',
march: 'Three months',
year: 'One year',
twoYears: 'Two years',
fiveYears: 'Five years',
tenYears: 'Ten years',
orderCode: 'Order Code: ',
creationTime: 'Create Time: ',
amountPayable: 'Amounts Payable: ',
screenName: 'Screen Name',
courseName: 'Course Name',
timeUnitPrice: 'Screen Unit Price',
coursePrice: 'Course Unit Price',
testPrice: 'Test 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.',
paymentSuccessful: 'Payment successful,click to return',
cancelSuccessfully: 'Cancel success,click to return',
paymentFailed: 'Payment failed,click to return',
previousStep: 'Previous step',
putaway: 'Putaway', putaway: 'Putaway',
soldOut: 'Sold out', soldOut: 'Sold out',
exportMap: 'Export Map', exportMap: 'Export Map',
@ -104,7 +144,15 @@ export default {
updateTime: 'Update time:', updateTime: 'Update time:',
line: 'Line:', line: 'Line:',
permissionList: 'Permissions list:', permissionList: 'Permissions list:',
remove: 'remove', remove: 'Remove',
append: 'append', append: 'Append',
release: 'release' release: 'Release',
temporarilyNoData: 'Temporarily no data',
second: 'Seconds',
amount: 'Amount',
yes: 'Yes',
no: 'No',
details: 'Details',
enterNameToFilter: 'Enter a name to filter',
colon: ':'
}; };

View File

@ -17,6 +17,12 @@ import planMonitor from './planMonitor';
import screenMonitor from './screenMonitor'; import screenMonitor from './screenMonitor';
import demonstration from './demonstration'; import demonstration from './demonstration';
import exam from './exam'; import exam from './exam';
import dashboard from './dashboard';
import jlmap3d from './jlmap3d';
import display from './display';
import joinTraining from './joinTraining';
import trainRoom from './trainRoom';
import menu from './menu';
export default { export default {
...enLocale, ...enLocale,
@ -37,5 +43,11 @@ export default {
planMonitor, planMonitor,
screenMonitor, screenMonitor,
demonstration, demonstration,
exam exam,
dashboard,
jlmap3d,
display,
joinTraining,
trainRoom,
menu
}; };

View File

@ -0,0 +1,12 @@
export default {
trainGroupNumber: 'Train group number:',
surveillanceHidden: 'In-vehicle surveillance - hidden',
surveillanceDisplay: 'In-vehicle surveillance - display',
trainInstrumentationDisplay: 'Train instrumentation - display',
trainInstrumentationHidden: 'Train instrumentation - hidden',
terminal: 'terminal:',
nextStation: 'Next station:',
confirmSignalOpen: 'Please confirm that the signal ahead is open',
faultInformation: 'Fault information:',
vWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
};

View File

@ -0,0 +1,25 @@
export default {
chooseDriver: 'Choose driver',
cancelDriver: 'Cancel driver',
admin: 'Admin',
teacher: 'Teacher',
dispatcher: 'Dispatcher',
stationAttendant: 'Station attendant',
driver: 'Driver',
universalAccount: 'Universal account',
sending: 'sending...',
autoplay: 'Autoplay',
holdAndTalk: 'Hold and talk',
recording: 'recording...',
iBPDisk: 'IBP disk',
driverPerspective: 'Driver perspective',
drivingByPlan: 'Driving by plan',
exitPlan: 'Exit plan',
runGraphPreview: 'Run graph preview',
runGraphLoading: 'Run graph loading',
faultSetting: 'Fault setting',
normalOperation: 'Normal operation',
faultOperation: 'Fault operation',
local: 'Local',
lineAdjustment: 'Driving schedule'
};

View File

@ -87,5 +87,15 @@ export default {
deleteTraining: 'Delete training', deleteTraining: 'Delete training',
automaticGenerationOfTraining: 'Automatic generation of training', automaticGenerationOfTraining: 'Automatic generation of training',
modifyTrainingByCategory: 'Modify training by category', modifyTrainingByCategory: 'Modify training by category',
deleteAutoGeneratedTraining: 'Delete auto-generated training' deleteAutoGeneratedTraining: 'Delete auto-generated training',
menu: 'Menu',
turnout: 'Turnout',
section: 'Section',
signaler: 'Signaler',
controlMode: 'Control mode',
platform: 'Platform',
train: 'Train',
station: 'Station',
trainWindow: 'Train window',
editStepInfo: 'Edit step information'
}; };

View File

@ -2,6 +2,7 @@ export default {
drawData: 'The drawing data', drawData: 'The drawing data',
mapData: 'Map data', mapData: 'Map data',
pleaseSelect: 'please choose', pleaseSelect: 'please choose',
pleaseEnter: 'please input',
sketchMap: 'Draft map list', sketchMap: 'Draft map list',
newConstruction: 'create', newConstruction: 'create',
importMap: 'Import the map', importMap: 'Import the map',
@ -25,6 +26,35 @@ export default {
contentShows: 'content show', contentShows: 'content show',
createBatch: 'Create a batch', 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: 'One-click generation section',
createSwitch: 'One-click generation turnout',
clearHint: 'Clear hint',
batchOperation: 'Batch operation',
breakUpNumber: 'Split quantity',
// physicalSegmentName: '物理区段:',
save: 'save', save: 'save',
updata: 'update', updata: 'update',
updateObj: 'modification', updateObj: 'modification',
@ -146,14 +176,14 @@ export default {
code: 'code:', code: 'code:',
imageName: 'Image name:', imageName: 'Image name:',
imageWidth: 'Image width:', imageWidth: 'Image width:',
imageHeight: 'Picture height:', imageHeight: 'Image height:',
imagePoint: 'Image coordinates:', imagePoint: 'Image coordinates:',
imageZindex: 'Image level:', imageZindex: 'Image level:',
imageSelect: 'Pictures to choose:', imageSelect: 'Image to choose:',
rotateAngle: 'Rotation Angle:', rotateAngle: 'Rotation Angle:',
areaSolution: 'Area so the solution', areaSolution: 'Zone failure unlock',
alwaysSolution: 'People always solution', alwaysSolution: 'Total manual unlock',
pleaseSelectMap: 'Please select map', pleaseSelectMap: 'Please select map',
selectCounterType: 'Select the counter type', selectCounterType: 'Select the counter type',
@ -174,8 +204,9 @@ export default {
font: 'font:', font: 'font:',
color: 'color:', color: 'color:',
upside: 'In the upper', upside: 'Upper section',
hypomere: 'The period of', hypomere: 'Bottom section',
returnByGraph: 'Return by graph',
linkType: 'The Link type', linkType: 'The Link type',
linkCode: 'The Link code:', linkCode: 'The Link code:',
@ -266,6 +297,7 @@ export default {
signalUseType: 'Use the type:', signalUseType: 'Use the type:',
potLampType: 'Light type:', potLampType: 'Light type:',
signalDirectionType: 'The direction of the type:', signalDirectionType: 'The direction of the type:',
signalDirectionTypeX: 'The direction of the type:',
signalPositionType: 'Signal position type:', signalPositionType: 'Signal position type:',
signalOffset: 'The offset:', signalOffset: 'The offset:',
signalPositionX: 'Signal x:', signalPositionX: 'Signal x:',
@ -294,6 +326,7 @@ export default {
stationKmPostFontColor: 'Font color of kilometer mark:', stationKmPostFontColor: 'Font color of kilometer mark:',
stationPositionX: 'X coordinate:', stationPositionX: 'X coordinate:',
stationPositionY: 'Y coordinate:', stationPositionY: 'Y coordinate:',
stationPosition: 'Station position:',
stationControlCode: 'Control mode coding:', stationControlCode: 'Control mode coding:',
stationControlName: 'Control mode name:', stationControlName: 'Control mode name:',
@ -374,6 +407,7 @@ export default {
switchShowName: 'Whether the switch name is displayed:', switchShowName: 'Whether the switch name is displayed:',
switchPositionX: 'Switch name x offset:', switchPositionX: 'Switch name x offset:',
switchPositionY: 'Switch name y offset:', switchPositionY: 'Switch name y offset:',
switchPosition: 'Switch name offset:',
turnTime: 'The switch changes time:', turnTime: 'The switch changes time:',
timeoutShow: 'Whether to display switch countdown time:', timeoutShow: 'Whether to display switch countdown time:',
sectionACode: 'Associated with A Section Code:', sectionACode: 'Associated with A Section Code:',
@ -412,6 +446,8 @@ export default {
createTrainWindow: 'Create a train window with one click', createTrainWindow: 'Create a train window with one click',
showZc: 'Whether or not visible:', showZc: 'Whether or not visible:',
interconnected: 'Interlock control name',
stationControlPosition: 'Control mode coordinates:',
pathUnitList: 'Path unit list', pathUnitList: 'Path unit list',
startSectionCode: 'Starting stop', startSectionCode: 'Starting stop',
@ -501,5 +537,9 @@ export default {
switchBCodeNum: 'Switch ID 2:', switchBCodeNum: 'Switch ID 2:',
wellDelTrianModel: 'Deleting the train model will delete the associated class cars together, please confirm whether to continue?', wellDelTrianModel: 'Deleting the train model will delete the associated class cars together, please confirm whether to continue?',
clear: 'Clear' clear: 'Clear',
horizontal: 'Horizontal',
vertical: 'Vertical',
piece: 'piece'
}; };

493
src/i18n/langs/en/menu.js Normal file
View File

@ -0,0 +1,493 @@
export default {
menuBar: {
system: 'System',
view: 'View',
refresh: 'Refresh',
display: 'Display',
setTrainIdDisplay: 'Set TrainId Display',
setNameDisplay: 'Set Name Display',
setDeviceDisplay: 'Set Device Display',
stationMapSwitch: 'StationMapSwitch',
controlModeSwitch: 'ControlModeSwitch',
toStationControl: 'Switch Station Control',
forcedStationControl: 'Forced Station Control',
toCentralControl: 'Switch Central Control',
requestOperationArea: 'RequestOperationArea',
historyQuery: 'HistoryQuery',
userManage: 'UserManage',
help: 'Help',
about: 'ControlMonitor(A)',
planCarOperation: 'PlanCarOperation',
addPlanCar: 'Add Plan Car',
panPlanCar: 'Pan Plan Car',
deletePlanCar: 'Delete Plan Car',
trainNumberMaintenance: 'TrainNumberMaintenance',
schedulingLog: 'SchedulingLog',
systemAnalysis: 'SystemAnalysis',
implemented: 'implementing......'
},
menuCancle: {
zoomIn: 'Zoom In',
zoomOut: 'Zoom Out',
back: 'Back'
},
menuSection: {
sectionFaultUnlock: 'Section Fault Unlock',
sectionResection: 'Section Resection',
sectionActive: 'Section Active',
sectionAxisPreReset: 'Section Axis PreReset',
sectionBlockade: 'Section Blockade',
sectionUnblock: 'Section Unblock',
sectionSetSpeedLimit: 'Section Set Speed Limit',
sectionCancelSpeedLimit: 'Section Cancel Speed Limit',
axisPreReset: 'Axis PreReset',
createTrain: 'Create Train',
setFault: 'Set Fault',
cancelFault: 'Cancel Fault',
orbitalSectionActive: 'Orbital section active',
orbitalSectionResection: 'Orbital section resection'
},
menuSignal: {
routeSelect: 'Route Select',
routeCancel: 'Route Cancel',
signalBlock: 'Signal Block',
signalDeblock: 'Signal Deblock',
signalReopen: 'Signal Reopen',
guideRouteHandle: 'Guide Route Handle',
setInterlockAutoRoute: 'Set Interlock Auto Route',
cancelInterlockAutoRoute: 'Cancel Interlock Auto Route',
setInterlockAutoTrigger: 'Set Interlock Auto Trigger',
cancelInterlockAutoTrigger: 'Cancel Interlock Auto Trigger',
signalOff: 'Signal Off',
routeGuide: 'Route Guide',
humanControl: 'Human Control',
atsAutoControl: 'ATS Auto Control',
queryRouteControlMode: 'Query Route Control Mode',
setFault: 'Set Fault',
cancelFault: 'Cancel Fault',
cancelTheTrainApproach: 'Cancel the train approach',
reopenTrainSignal: 'Re-open train signal'
},
menuStation: {
fullSiteSetInterlockAutoTrigger: 'Full Site Set Interlock Auto Trigger',
fullSiteCancelInterlockAutoTrigger: 'Full Site Cancel Interlock Auto Trigger',
powerUnLock: 'Power UnLock',
execKeyOperationTest: 'Execute Key Operation Test',
allHumanControl: 'All Human Control',
allATSAutoControl: 'All ATS Auto Control',
setStoppage: 'set ZC Fault',
cancelStoppage: 'Cancel ZC Fault'
},
menuStationControl: {
},
menuStationStand: {
detainTrain: 'Detain Train',
cancelDetainTrain: 'Cancel Detain Train',
cancelDetainTrainForce: 'Cancel Detain Train Force',
jumpStop: 'Jump Stop',
cancelJumpStop: 'Cancel Jump Stop',
setRunLevel: 'Set Run Level',
setEarlyDeparture: 'Set Early Departure',
setBackStrategy: 'Set Back Strategy',
getStationStandStatus: 'Get Station Stand Status',
setStopTime: 'Set Stop Time',
setFault: 'Set Fault',
cancelFault: 'Cancel Fault',
cancelDetainTrainAll: 'All Cancel Detain Train',
cancelJumpStopAll: 'All Cancel Jump Stop',
earlyDeparture: 'Early departure',
setJumpStop: 'Set jump stop'
},
menuSwitch: {
switchLock: 'Switch Lock',
switchUnlock: 'Switch Unlock',
switchSectionBlockade: 'Switch Section Blockade',
switchSectionUnblock: 'Switch Section Unblock',
switchTurnout: 'Switch Turnout',
switchSectionFaultUnlock: 'Switch Section Fault Unlock',
switchSectionAxisPreReset: 'Switch Section Axis Pre Reset',
sectionResection: 'Section Resection',
sectionActive: 'Section Active',
switchSectionSetSpeedLimit: 'Switch Section Set Speed Limit',
switchSectionCancelSpeedLimit: 'Switch Section Cancel Speed Limit',
setFault: 'Set Fault',
cancelFault: 'Cancel Fault',
switchMalfunctionUnlock: 'Switch Malfunction Unlock',
switchBlockade: 'Switch Blockade',
switchForcedPull: 'Switch Forced Pull'
},
menuTrain: {
addTrainId: 'Add Train Identifier',
deleteTrainId: 'Delete Train Identifier',
editTrainId: 'Edit Train Identifier',
editTrainNo: 'Edit Train Number',
moveTrainId: 'Move Train Identifier',
switchTrainId: 'Switch Train Identifier',
setCommunicationFault: 'Set Communication Fault',
cancelCommunicationFault: 'Cancel Communication Fault',
confirmRunToFrontStation: 'Confirm Run To Front Station'
},
passiveDialog: {
alarmDetailInformation: 'level alarm details',
lineName: 'Line Name',
unitName: 'Unit Name',
moduleName: 'Module Name',
alarmDate: 'Alarm Date',
level: 'level',
selectDate: 'Please select date',
confirmStatus: 'Confirm',
type: 'Type',
childType: 'Child Type',
timeSummary: 'Time Summary',
recommendedOperation: 'Recommend Operation',
alarmDetailedDescription: 'Alarm Detail Description',
inputContent: 'Please input content',
confirm: 'Confirm',
unconfirmedMessageOne: 'number of level',
unconfirmedMessageTwo: ' alarm is not confirmed:1',
centralControl: 'Central Control',
// stationControl: 'Station Control',
cmmControlModeConversionMode: 'CMM Control Mode Transfer Mode',
zeroLevelAlarm: 'Level 0 alarm',
systemEvent: 'System Event',
childTypeTips: 'Set the control mode according to the signal device operation command',
controlModeSummary: 'Control Mode Summary',
controlModeTransfer: 'Control Mode Transfer: ',
alarmDetailOne: 'changed ',
stationToCentral: 'from station control to central control mode',
centralToStation: 'from central control to station control mode',
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: 'Central 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) '
},
confirm: 'Confirm',
cancel: 'Cancel',
platform: 'Platform',
arrivalTime: 'Arrival time',
stopTime: 'Stop time',
departureTime: 'Departure time',
runLevel: 'Run level',
serviceNumber: 'Service number',
tripNumber: 'Trip number',
stationName: 'Station name:',
stationKilometerMark: 'Station kilometer mark:',
arrivalTime2: 'Arrival time:',
file: 'File(F)',
view: 'View(V)',
edit: 'Edit(E)',
tool: 'Tool(T)',
help: 'help(H)',
viewPlanList: 'View plan list',
createAWeekPlan: 'Create a week plan',
loadTheDayPlan: 'Load the day plan',
achieving: 'Achieving......',
addToTheFront: 'Add to the front',
addToTheEnd: 'Add to the end',
crossing: 'Crossing',
date: 'Date',
name: 'Name',
address: 'Address',
displaysDefaultStopTimesAndRunLevels: 'Displays default stop times and run levels',
addTask: 'Add task',
runGraphName: 'Run graph name',
skinType: 'Skin type',
selectTemplateRunGraph: 'Select template run graph',
load: 'load',
plannedDateRange: 'Planned date range',
deleteAllPreviousTasks: 'Delete all previous tasks (including this task)',
deleteAllSubsequentTasks: 'Delete all subsequent tasks (including this task)',
deleteTask: 'Delete task',
deleteTheDayPlan: 'Delete the day plan',
mapName: 'Map name',
loadDate: 'Load date',
operationChartSchedule: 'Operation chart schedule',
trainLine: 'Train line',
startStation: 'Start station',
startPlatform: 'Start platform',
terminal: 'Terminal',
endPlatform: 'End platform',
addTask2: 'Add task',
deleteTask2: 'Delete task',
replace: 'replace',
inTheLibrary: 'In the library',
outOfTheLibrary: 'Out of the library',
changeTripNumber: 'Change trip number',
lineStartTime: 'Line start time',
lineEndTime: 'Line end time',
lineDetails: 'Line details',
station: 'Station',
affectSubsequentTasks: 'Affect subsequent tasks',
manual: 'manual',
defaultStopTime: 'Default stop time',
clearGuest: 'Clear guest',
continuationPlan: 'Continuation plan',
firstTrain: 'First train',
serialNumber: 'Serial number',
defaultRunLevel: 'Default run level',
lastTrain: 'Last train',
description: 'Description',
modifyTask: 'Modify task',
accessSetting: 'Access setting',
cancelTheWay: 'Cancel the way',
approachManualControl: 'Approach manual control',
accessToATSAutomaticControl: 'Access to ATS automatic control',
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?',
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

@ -84,5 +84,27 @@ export default {
sourcesOfInformation: 'Sources of information', sourcesOfInformation: 'Sources of information',
distributePermission: 'Distribute permission', distributePermission: 'Distribute permission',
orderCreation: 'Order creation', orderCreation: 'Order creation',
chooseGoods: 'Choose goods' chooseGoods: 'Choose goods',
permissionName: 'Permission Name',
receivingPermission: 'Receiving permission',
isPackage: 'Whether the permission package',
modifyPermissionContent: 'Modify permission content',
addPermissions: 'Add permissions',
modifyPermissions: 'Modify permissions',
createPermission: 'Create permission',
oneClickGenerationPermission: 'One-click generation permission',
packingDetails: 'Packing details',
belongsToMap: 'Belongs to map',
oneClickGeneration: 'One-click generation',
selectPermission: 'Select Permission',
permission: 'Permission',
orderSelectionItem: 'Order selection item',
orderDetails: 'Order details',
statusType: 'Status type',
private: 'Private',
public: 'Public',
pleaseEnterContent: 'Please enter content',
selectGoods: 'Select Goods',
month: ' month',
yuan: ' yuan'
}; };

View File

@ -26,6 +26,10 @@ export default {
addPermissionPackageRule: 'Add authority packaging rules', addPermissionPackageRule: 'Add authority packaging rules',
editPermissionPackageRule: 'edit authority packaging rule', editPermissionPackageRule: 'edit authority packaging rule',
restPermissionMaxNumber: '(maximum number of remaining permissions: {0})', restPermissionMaxNumber: '(maximum number of remaining permissions: {0})',
pleaseSelectTransferPermission: 'Select transfer permissions' pleaseSelectTransferPermission: 'Select transfer permissions',
permissionName: 'Permission Name',
private: 'Private',
public: 'Public',
userName: 'User Name',
statusType: 'Status Type'
}; };

View File

@ -26,7 +26,7 @@ export default {
taskName: 'Task Name', taskName: 'Task Name',
createTime: 'Creation Time', createTime: 'Creation Time',
detail: 'Detail', detail: 'Detail',
generateRunPlan: 'Generate Daily Paln', generateRunPlan: 'Generate Daily Plan',
selectTemplateRunPlan: 'Select Template Run Plan', selectTemplateRunPlan: 'Select Template Run Plan',
pleaseSelectTemplate: 'Please Select Template Run Plan', pleaseSelectTemplate: 'Please Select Template Run Plan',
selectMap: 'Select Map', selectMap: 'Select Map',
@ -42,6 +42,67 @@ export default {
setSuccess: 'Set successfully', setSuccess: 'Set successfully',
wellPutawayPaper: 'This operation puts the paper on the shelf. Do you want to continue?', wellPutawayPaper: 'This operation puts the paper on the shelf. Do you want to continue?',
wellSoldOutPaper: 'This operation removes the paper from the shelf. Do you want to continue?', wellSoldOutPaper: 'This operation removes the paper from the shelf. Do you want to continue?',
wellDelPaper: 'This operation will delete the paper. Do you want to continue?' wellDelPaper: 'This operation will delete the paper. Do you want to continue?',
publishHistory: 'Publish history',
deleteGenerateEveryRunPlan: 'This operation will delete the daily running diagram. Do you want to continue?',
deleteGenerateRunPlanSuccess: 'Delete load plan successfully!',
addEveryRunPlanSuccess: 'Load plan create daily plan successfully!',
publisherId: 'Publisher Id',
publishTime: 'Time',
publishVersion: 'Version',
lessonDeleteBtn: 'Delete',
durationMinutes: ' minutes',
testDefinitionMaking: 'Test Definition Making',
examRuleMaking: 'Exam Rule Making',
testName: 'Test name',
inputTestName: 'Please input test name',
testScope: 'Test scope',
selectTestScope: 'Please select test scope',
testDuration: 'duration',
testDate: 'Test time',
startTestTime: 'Start test time',
endTestTime: 'End test time',
fullScore: 'Full score',
passingScore: 'Passing score',
whetherToTry: 'Whether to try',
trialNo: 'No',
trialYes: 'Yes',
testDescription: 'Test description',
inputTestDescription: 'Please input test description',
inputFullScore: 'Please input full score',
inputNumericType: 'Please input numeric type',
inputPassingScore: 'Please input passing score',
inputScoreError: 'The value entered is greater than full score',
inputTestDuration: 'Please input duration',
selectWetherTrial: 'Please select whether to try',
updateExamRuleSuccess: 'Update exam rule success',
updateExamRuleFailed: 'Update exam rule failed',
refreshFailed: 'Refresh failed',
fullScoreTips: 'Full score is',
scorePoints: 'points',
addRules: 'Add Rules',
trainingType: 'Training type',
questionsNumber: 'Questions number',
eachScore: 'Score/Question',
totalScore: 'Total score',
addExamRluesError: 'Add rule does not match full score',
addExamRules: 'Please add exam rules!',
saveRuleFailed: 'Save rules failed: ',
selectTypeScope: 'Please select type scope',
operationType: 'Operation type',
selectScope: 'Please select scope',
questionNumbers: 'Question number',
allNumberTipOne: '',
allNumberTipTwo: 'questions in this type.',
scorePerQuestion: 'Score/Question',
inputQuestionNumber: 'Please input question number',
inputQuestionNumberError: 'The number of questions entered must be greater than 0',
inputValidNumber: 'Please input valid number',
inputNumberError: 'The input value must be greater than the number of questions',
inputScorePerQuestion: 'Please input score per question',
selectTestType: 'Please select test type',
modifyRules: 'Modify Rules'
}; };

View File

@ -53,6 +53,7 @@ export default {
dataDictionary: 'Data dictionary', dataDictionary: 'Data dictionary',
dataDictionaryDetails: 'Data dictionary details', dataDictionaryDetails: 'Data dictionary details',
userManage: 'user management', userManage: 'user management',
cacheManage: 'cache management',
userTrainingManage: 'User training management', userTrainingManage: 'User training management',
userExamManage: 'User examination management', userExamManage: 'User examination management',
userSimulationManage: 'User simulation management', userSimulationManage: 'User simulation management',

View File

@ -214,7 +214,7 @@ export default {
sectionWidthInputPrompt: 'Please enter a valid segment width', sectionWidthInputPrompt: 'Please enter a valid segment width',
selectShowWatermark: 'Select whether or not to watermark', selectShowWatermark: 'Select whether or not to watermark',
pleaseInputMapName: 'Please enter a new name for the map', pleaseInputMapName: 'Please enter a new name for the map',
inputTemplateRunPlan: 'Please select the template run diagram', inputTemplateRunPlan: 'Please select the template run plan',
inputSkinType: 'Please select skin type', inputSkinType: 'Please select skin type',
inputOperateCode: 'Please enter the step code', inputOperateCode: 'Please enter the step code',
inputStepNo: 'Please enter the step number', inputStepNo: 'Please enter the step number',
@ -238,5 +238,42 @@ export default {
selectTrainingType: 'Please select training type', selectTrainingType: 'Please select training type',
selectOneTrainingType: 'Only one training type can be selected', selectOneTrainingType: 'Only one training type can be selected',
enterProductType: 'Please enter product type', enterProductType: 'Please enter product type',
selectAssociatedStation: 'Please select the associated station' selectAssociatedStation: 'Please select the associated station',
pleaseSelectTrainDir: '请选择列车所在方向',
pleaseEnterSplit: '请输入拆分数量',
pleaseEnterSplitNumber: '请输入合理的拆分数量',
enterScale: 'Please enter the zoom ratio',
enterXOffset: 'Please enter X offset',
enterYOffset: 'Please enter Y offset',
pleaseSelectButtonType: 'Please select the button type',
pleaseSelectButtonContent: 'Please enter the content',
endTimeRules: 'The end time must be greater than the start time.',
selectCourses: 'Please select courses',
selectTheMapRoute: 'Please select the map route.',
enterKeyword: 'Please enter a keyword',
successfullyModified: 'Successfully modified',
modifyTheFailure: 'Modify the failure',
selectTheCourseNameFirst: 'Please select the course name first',
selectMultiplePermissions: 'Please select multiple permissions',
enterPermissionName: 'Please enter a permission name',
pleaseSelectPermission: 'Please select permission',
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',
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',
inputTrainingName: 'Please input training name',
inputTrainingRemark: 'Please input training remark',
inputTrainingType: 'Please input training type',
inputOperationType: 'Please input operation type',
inputMinDuration: 'Please input best duration',
inputMaxDuration: 'Please input max duration',
accessNumber: 'Please input the number of permissions',
courseNameEmpty: 'Course name cannot be empty',
purchaseMonth: 'Please input the number of months to buy'
}; };

View File

@ -1,22 +1,82 @@
export default { export default {
scriptTitle: 'Task Recording', scriptTitle: 'Task Recording',
saveMaplocation: 'Update Location',
saveBackground: 'Save Background', saveBackground: 'Save Background',
saveData: 'Save Data', saveData: 'Save Data',
roleManage: 'Role Manage', mapList: 'Map List',
targetCondition: 'Task Target', createScript: 'Create Script',
taskScript: 'Task Script', scriptName: 'Script Name',
roleName: 'Role Name', addScript: 'Add Script',
roleType: 'Role Type', map: 'Map',
deviceCode: 'Device Code', scriptDescription: 'Script Description',
roleList: 'Role List', submit: 'submit',
operation: 'Operation', scriptNameRule: 'Please input script name',
roleAdd: 'Add', scriptDescriptionRule: 'Please input script description',
delete: 'Delete', createScriptSuccess: 'Create script success',
behaviorOperate: 'Behavior Operate', createScriptFail: 'Create script failure',
conditionTitle: 'Target condition', scriptDetail: 'Script Detail',
deviceType: 'Device Type', scriptRecord: 'Record',
deviceCondition: 'Device Condition', scriptModify: 'Modify',
paramDeviceType: 'Param DeviceType', scriptDelete: 'Delete',
paramDeviceCode: 'Param DeviceCode' getScriptFail: 'Get script information failure',
createSimulationFail: 'Create simulation failure',
modifyScriptSuccess: 'Modify script success',
modifyScriptFail: 'Modify script failure',
deleteScriptTip: 'This action will delete this script, whether to continue?',
deleteScriptSucess: 'delete script sucess',
deleteScriptFail: 'delete script failure',
scriptRecordTitle: 'Script Record',
drivingPause: 'Pause',
recoverAndExecute: 'Recover And Execute',
resetScript: 'Reset Script',
pauseFail: 'Pause failure',
recoverFail: 'Recover failure',
saveBackgroundSuceess: 'Save background suceess',
updateLocationFail: 'update location failure',
saveBackgroundFail: 'Save background failure',
saveDataSucess: 'Save data sucess',
saveDataFail: 'Save data failure',
clearDataTip: 'This action will clear the saved script data, whether to continue?',
resetDataSuccess: 'Reset script success',
resetDataFail: 'Reset script failure',
allRoles: 'All Roles',
actors: 'Actors',
roleSexMale: 'Male',
roleSexFemale: 'Female',
selectScriptActorSuccess: 'Select script actor success',
selectScriptActorFail: 'Select script actor failure',
cancleScriptActorSuccess: 'Cancle script actor success',
cancleScriptActorFail: 'Cancle script actor failure',
modifyScriptActorSexSuccess: 'Modify script actor sex success',
modifyScriptActorSexFail: 'Modify script actor sex failure',
addConversition: 'Add Conversition',
narrator: 'Narrator',
narratorRules: 'Please select narrator',
receiver: 'Receiver',
receiverRules: 'Please select receiver',
conversitionContent: 'Content',
addCommand: 'Add Command',
executor: 'Executor',
executorRules: 'Please select executor',
executeCommand: 'Command',
executeCommandRules: 'Please select execute command',
startStation: 'Start Station',
startStationRules: 'Please select start station ',
endStation: 'End Station',
endStationRules: 'Please select end station',
addCommandButton: 'Add Command',
addConversitionButton: 'Add Conversition',
conversitionContentRules: 'Please input content',
addCommandSucess: 'Add command sucess',
addCommandFail: 'Add command failure',
addConversitionSuccess: 'Add conversition success',
addConversitionFail: 'Add conversition failure',
modifyConversitionSuccess: 'Modify conversition success',
modifyConversitionFail: 'Modify conversition failure',
modifyConversition: 'Modify Conversition',
modifyConversitionButton: 'modify',
drivingByPlan: 'Driving By Plan',
scriptBack: 'Back'
}; };

View File

@ -46,6 +46,7 @@ export default {
selectTraining: 'Selection Training', selectTraining: 'Selection Training',
createUserTraining: 'Creating User Training', createUserTraining: 'Creating User Training',
editTrainingDetail: 'Editor Training Details', editTrainingDetail: 'Editor Training Details',
trainingTime: 'Training duration' trainingTime: 'Training duration',
subscribeToTheMapList: 'Subscribe to the map list:',
editSimulationDetails: 'Edit simulation details'
}; };

View File

@ -5,7 +5,7 @@ export default {
trainingTime: 'Best time to complete the training:', trainingTime: 'Best time to complete the training:',
trainingMaximum: 'Maximum time to complete the training:', trainingMaximum: 'Maximum time to complete the training:',
trainingInstructions: 'Training instructions:', trainingInstructions: 'Training instructions:',
startTraining: 'Began to practice', startTraining: 'Start training',
courseName: 'Course name', courseName: 'Course name',
courseDescription: 'Course description', courseDescription: 'Course description',
@ -15,5 +15,6 @@ export default {
buy: 'buy', buy: 'buy',
permissionDistribute: 'Permission distribution (class)', permissionDistribute: 'Permission distribution (class)',
authorityTransferred: 'Authority transferred', authorityTransferred: 'Authority transferred',
courseList: 'Course list' courseList: 'Course list',
seconds: 'seconds'
}; };

View File

@ -20,6 +20,11 @@ export default {
operationAbnormal: 'Abnormal operation', operationAbnormal: 'Abnormal operation',
createSuccess: 'Creating a successful', createSuccess: 'Creating a successful',
linkCheckList: '有 link 绘图不规范, 未生成区段',
allLinkCreate: '所有link都有相关区段所以未生成任何区段',
incidenceRelation: '可能是多余的,请检查关联关系',
linkNoneSplit: '有问题,没有进行拆分',
cannotCoincide: 'The starting and ending coordinates cannot coincide', cannotCoincide: 'The starting and ending coordinates cannot coincide',
cannotMerged: 'Non-physical extents exist and cannot be merged', cannotMerged: 'Non-physical extents exist and cannot be merged',
linkCannotMerged: 'Physical extents that are not on the same Link cannot be merged', linkCannotMerged: 'Physical extents that are not on the same Link cannot be merged',
@ -109,6 +114,10 @@ export default {
createRoomFailedHint: 'Each user can only create one comprehensive drill room. Do you want to enter the room?', createRoomFailedHint: 'Each user can only create one comprehensive drill room. Do you want to enter the room?',
noPermissionHint: 'You do not have permission, please go to purchase products', noPermissionHint: 'You do not have permission, please go to purchase products',
trainModelNameRepeat: 'Train model data duplication', trainModelNameRepeat: 'Train model data duplication',
totalAmount: 'Failed to get the total amount',
wxCodePayFailde: 'Failed to get WeChat Pay payment QR code',
aliCodePayFailde: 'Failed to get Alipay payment QR code',
cancelOrderFailed: 'Cancel order failed',
coursePublishSuccessful: 'Successful course release', coursePublishSuccessful: 'Successful course release',
coursePublishFailed: 'Course launch failed', coursePublishFailed: 'Course launch failed',
@ -125,6 +134,41 @@ export default {
updateTrainingSuccessfully: 'Update training successfully!', updateTrainingSuccessfully: 'Update training successfully!',
updateTrainingFailed: 'Failed to update training', updateTrainingFailed: 'Failed to update training',
savedStepDataSuccessfully: 'Saved step data successfully', savedStepDataSuccessfully: 'Saved step data successfully',
savedStepDataFailed: 'Failed to save step data' savedStepDataFailed: 'Failed to save step data',
noCourseAuthority: 'No examination permission for this course, please go to purchase!',
notWithinTheScopeOfTheExamination: 'Not within the scope of the examination',
giveUpTheExamTip: 'This operation will give up the examination. Will it continue?',
theNumberOfPermissionsAvailableIsZero: 'The number of permissions available is 0',
userRightsHaveBeenReclaimed: 'User rights have been reclaimed',
beKickedOut: 'You are kicked out of the room by the administrator',
deleteListHint: 'This will delete the list, will it continue?',
setUpASubscriptionMapSuccessfully: 'Setting up a subscription map successfully!',
setUpASubscriptionMapFailed: 'Setting up a subscription map failed!',
getMapStateDataException: 'Get map state data exception, please refresh the page to reload. If you encounter such problems many times, please contact the development team in an emergency!',
packagedSuccessfully: 'Packaged successfully',
oneKeyGeneratedSuccessfully: 'One key generated successfully!',
obtainedPermissionSuccessfully: 'Successfully obtained permission',
modifyTheUserPermissionStatus: 'Will this action modify the user permission status?',
destroyRoomHint: 'You will destroy the room, are you sure you want to do this?',
contentIsEmptyAndCannotBeSent: 'The content is empty and cannot be sent!',
generateUserDailyRunGraphSuccessfully: 'Generate user daily run graph successfully',
generateUserDailyRunGraphFailed: 'Generate user daily run graph failed',
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',
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

@ -0,0 +1,29 @@
export default {
comprehensiveTrainingManager: 'Comprehensive training manager:',
comprehensiveDrillRoom: 'Comprehensive drill room',
numberOfAssignableRoles: 'Number of assignable roles:',
dispatcher: 'Dispatcher',
increaseDispatchers: 'Increase dispatchers',
stationAttendant: 'Station attendant',
increaseStationAttendant: 'Increase station attendant',
teacher: 'Teacher',
increaseTeacher: 'Increase teacher',
universalAccount: 'Universal Account',
increaseUniversalAccount: 'Increase universal account',
driver: 'Driver',
increaseDriver: 'Increase driver',
bigScreen: 'Big screen',
increaseBigScreen: 'Increase big screen',
destroyRoom: 'Destroy room',
generatingQRCode: 'Generating QRCode',
startSimulation: 'Start simulation',
enterSimulation: 'Enter simulation',
endSimulation: 'End Simulation',
distributeTheRoomQRCode: 'Distribute the room QR code',
increaseIbp: 'increase IBP',
kickOutTheRoom: 'Kick out the room',
sending: 'sending...',
holdAndTalk: 'Hold and talk',
recording: 'recording...',
sendText: 'Send text'
};

View File

@ -0,0 +1,35 @@
export default {
testStatistics: '考试统计',
simulationStatistics: '仿真统计',
comprehensiveExerciseCloudPlatform: '综合演练云平台',
driverSimulatedDrivingSystem: '司机模拟驾驶系统',
ATSLineAdjustmentWorkstation: 'ATS行调工作站',
ATSLocalWorkstation: 'ATS现地工作站',
courseStatistics: '课程统计',
controlRightsTraining: '控制权实训',
signalTraining: '信号机实训',
turnoutTraining: '道岔实训',
sectionTraining: '区段实训',
stationTraining: '车站培训',
permissions: '权限(个)',
largeScreenSystemPermissions: '大屏系统权限',
courseAuthority: '课程权限',
examinationAuthority: '考试权限',
simulationPermission: '仿真权限',
residualPermissionDistributionMap: '剩余权限分布图',
totalPermissions: '权限总计',
noMapLineDataYetAvailable: '暂无地图线路数据',
selectTheMapRoute: '请选择地图线路',
individual: '个',
permissionMap: {
'ATS现地工作站-课程权限': 0,
'ATS行调工作站-课程权限': 0,
'ATS现地工作站-考试权限': 0,
'ATS行调工作站-考试权限': 0,
'ATS现地工作站-仿真权限': 0,
'ATS行调工作站-仿真权限': 0,
'综合演练云平台-仿真权限': 0,
'司机模拟驾驶系统-仿真权限': 0,
'大屏系统权限': 0
}
};

View File

@ -0,0 +1,178 @@
export default {
startBtn: '开始',
endBtn: '结束',
backBtn: '返回',
seconds: '秒',
lesson: {
teachingMode: '教学模式',
practiceMode: '练习模式',
testMode: '测验模式',
score: '得分:',
selectTraining: '请选择实训',
endTrainingError: '结束实训错误',
endTrainingTip: '操作未完成,是否确认结束?',
startTrainingTip: '请先开始实训',
createSimulationError: '创建仿真失败'
},
exam: {
startTestOperateTip: '请点击开始考试操作',
selectTest: '请选择试题',
endTrainingError: '结束实训错误',
startTestTip: '请先开始考试',
endTestTip: '是否放弃本次考试?',
refreshListError: '刷新列表失败',
examTime: '考试计时:',
questionTitle: '本题名称:',
bestTime: '最佳用时:',
maximumTime: '最大用时:',
trainingInstructions: '实训说明:',
viewQuestions: '查看试题',
prev: '上一题',
next: '下一题',
submitExaminationPaper: '提交试卷',
autoSubmit: '考试结束自动提交',
getTestInformation: '获取试题信息失败',
cancleExam: '考试未完成,是否确认退出?'
},
training: {
trainingName: '实训名称:',
bestTime: '最佳用时:',
maximumTime: '最大用时:',
trainingInstructions: '实训说明:',
getCourseInformationFail: '获取课程信息失败'
},
demon: {
trialTime: '试用时间:',
dispatchingPlan: '派班计划',
exitScript: '退出剧本',
drivingByPlan: '按计划行车',
exitPlan: '退出计划',
back: '返回',
threeDimensionalView: '三维视图',
taskOperateSuccess: '任务操作成功',
getTimeFail: '获取时间失败',
startSimulationFail: '开始仿真失败,请返回重试',
endSimulationFail: '结束仿真失败,请返回',
exitTaskFail: '退出任务失败',
driverPerspective: '司机视角'
},
systemTime: {
timePause: '暂停中'
},
screen: {
trialTime: '试用时间:',
getTimeFail: '获取时间失败'
},
replay: {
pleaseSelect: '请选择',
back: '返回',
pause: '暂停',
play: '播放'
},
plan: {
drivingByPlan: '按计划行车',
exitPlan: '退出计划',
back: '返回',
startPlanFail: '开始计划失败,请返回重试',
endPlanFail: '结束计划失败,请返回'
},
schema: {
selectProduct: '请选择产品类型',
loadScript: '加载剧本',
previewRunDiagram: '运行图预览',
loadRunDiagram: '运行图加载',
faultSetting: '故障设置',
normalOperation: '正常操作',
faultOperation: '故障操作',
getRunDiagramFail: '获取运行图数据失败',
todayRunDiagramNoLoad: '今日运行图未加载',
getStationListFail: '获取车站列表失败'
},
faultChoose: {
manual: '手动',
automatic: '自动',
settingCondition: '设置条件',
triggerTarget: '触发目标',
selectFault: '选择故障',
selectRules: '请选择规则',
setFaultSuccess: '设置故障成功',
setFaultFail: '设置故障失败'
},
setTime: {
systemTime: '系统时间',
anyTime: '任意时间点',
loadTrainNum: '加载列车数',
selectLoadTrainNum: '请选择可加载列车个数',
maxTrainNum: '可加载的最大车辆个数',
setSimulationSystemTime: '设置仿真系统时间',
selectSystemTime: '请选择系统时间',
selectValidStartTime: '请选择有效的开始时间',
selectTrainNum: '请选择车辆个数'
},
script: {
scriptList: '剧本列表',
roleSelect: '角色选择',
role: '角色',
pleaseSelect: '请选择',
scriptName: '剧本名称',
createTime: '创建时间',
operate: '操作',
loadScript: '加载剧本',
admin: '管理员',
instructor: '教员',
dispatcher: '行调',
attendant: '车站',
audience: '观众',
driver: '列车',
none: '无'
},
schedule: {
scheduleSelect: '派班选择:',
runDiagramName: '运行图名称:',
scheduleMode: '派班模式:',
check: '检查',
save: '保存',
driverNumber: '司机号',
trainNumber: '车组号',
onlineSection: '上线轨',
onlineServerNumber: '上线服务号',
onlineTargetNumber: '上线目的地',
onlineTime: '上线时间',
onlineTripNumber: '上线车次号',
outDepot: '出库段',
outDepotStatus: '出库状态',
offlineSection: '下线轨',
offlineServerNumber: '下线服务号',
offlineTargetNumber: '下线目的地',
offlineTime: '下线时间',
offlineTripNumber: '下线车次号',
inDepot: '回库段',
inDepotStatus: '回库状态',
schedulePlan: '派班计划',
noSchedulePlan: '无派班计划,是否创建?',
loadData: '加载数据',
schedulePlanSuccess: '派班计划成功!',
createSchedulePlanSuccess: '创建派班计划成功',
regenerateSchedulePlanSuccess: '重新生成派班计划成功',
checkPassed: '检查通过',
checkFailed: '检查不通过',
checkSchedulePlanFailed: '检查派班计划失败',
saveSchedulePlanSuccess: '保存派班计划成功',
saveSchedulePlanFail: '保存派班失败',
selectSchedulePlan: '请先选择派班计划'
},
runPlan: {
runDiagramPlanTool: '运行图计划工具',
previewRunDiagram: '运行图预览',
stationName: '车站名称',
stationMark: '车站公里标',
arrivalTime: '到站时间'
},
chatBox: {
chatWindow: '聊天窗口',
autoplay: '自动播放',
holdAndTalk: '按住说话'
}
};

View File

@ -62,5 +62,34 @@ export default {
obtainChapterDataFailed: '获取章节数据失败', obtainChapterDataFailed: '获取章节数据失败',
obtainCourseDetailsFailed: '获取课程详情失败', obtainCourseDetailsFailed: '获取课程详情失败',
obtainCourseInformationFailed: '获取课程信息失败', obtainCourseInformationFailed: '获取课程信息失败',
obtainStepDataFailed: '获取步骤数据失败' obtainStepDataFailed: '获取步骤数据失败',
submitExamFailed: '自动提交考试结果失败',
getTestInformationFailed: '获取试题息失败',
gifSource: 'gif来源',
page: '页面',
noPermissionToGoToThisPage: '你没有权限去该页面',
dissatisfied: '如有不满请联系你领导',
orYouCanGo: '或者你可以去:',
backToHome: '回首页',
justLookingAround: '随便看看',
pointMeToSeeThePicture: '点我看图',
casualLook: '随便看',
problemWithAudioQuality: '音频质量有问题',
audioIsTooLong: '音频过长,建议60s以下',
audioIsTooShort: '音频太短,建议重录',
networkProblem: '网络问题,请重试',
initializationFailed: '初始化失败:',
getMapDataFailed: '获取地图数据失败',
ibpNoDraw: '未绑定车站或该车站IBP盘暂未绘制',
startSimulationFailed: '开始仿真失败,请返回重试',
endSimulationFailed: '结束仿真失败,请返回',
runGraphIsNotLoaded: '今日运行图未加载',
startedComprehensiveDrillFailure: '开始综合演练失败。',
stationAttendantStationCannotBeEmpty: '值班员所属车站不能为空',
destroyedRoomFailed: '销毁房间失败!',
exceededTheTotalNumberOfAssignableRoles: '分配角色数量已超过可分配角色总数!',
getRunGraphDataFailed: '获取运行图数据失败',
getStationListFail: '获取车站列表失败',
obtainTrainGroupNumberFailed: '获取列车车组号失败',
getTrainListFailed: '获取列车列表失败'
}; };

View File

@ -12,5 +12,29 @@ export default {
examTime: '考试用时', examTime: '考试用时',
trainingName: '实训名称', trainingName: '实训名称',
trainingScore: '实训得分', trainingScore: '实训得分',
returnToExamList: '返回考试列表' returnToExamList: '返回考试列表',
totalScore: '总分',
itemList: '试题列表',
courseName: '课程名称',
permissionsDetails: '权限详情',
buy: '购买',
distributePermission: '权限分发(考试)',
viewCoursePapers: '查看课程试卷',
nameOfTestPaper: '试卷名称',
examStartTime: '考试时间',
theExamIsReadyAnyTime: '随时都可以考试',
testExplanation: '考试说明',
examTimeAvailable: '考试时长',
fullMarksInTheExam: '考试满分',
passMarkTheExam: '考试及格分',
examinationRules: '考试规则',
trainingType: '实训类型',
numberOfQuestions: '题数',
score: '分值',
startTheExam: '开始考试',
examinationTiming: '考试计时',
maximumTimeToCompleteThisQuestion: '完成本题最大用时',
theBestTimeToCompleteTheQuestion: '完成本题最佳用时',
trainingNotes: '实训说明',
giveUpTheExam: '放弃考试'
}; };

View File

@ -1,4 +1,5 @@
export default { export default {
// lanuage: 'zh',
offset: '偏 移', offset: '偏 移',
zoom: '缩 放', zoom: '缩 放',
tips: '提 示', tips: '提 示',
@ -18,7 +19,7 @@ export default {
chooseDate: '请选择日期', chooseDate: '请选择日期',
chooseTime: '请选择时间', chooseTime: '请选择时间',
chooseDateTime: '请选择日期时间', chooseDateTime: '请选择日期时间',
choosh: '请选择', choose: '请选择',
select: '选 择', select: '选 择',
selectAdd: '选中添加', selectAdd: '选中添加',
export: '导 出', export: '导 出',
@ -65,7 +66,6 @@ export default {
update: '更 新', update: '更 新',
return: '返 回', return: '返 回',
toBeDeveloped: '功能待开发', toBeDeveloped: '功能待开发',
choose: '选 择',
yuan: '元', yuan: '元',
filteringKeywords: '输入关键字进行过滤', filteringKeywords: '输入关键字进行过滤',
lastStep: '上一步', lastStep: '上一步',
@ -85,6 +85,7 @@ export default {
inputRoomNumber: '请输入房间号', inputRoomNumber: '请输入房间号',
chooseRoom: '选择房间', chooseRoom: '选择房间',
month: '月', month: '月',
previousStep: '上一步',
permissions: '权限', permissions: '权限',
yuanMonth: '元/月', yuanMonth: '元/月',
@ -145,5 +146,13 @@ export default {
permissionList: '权限列表:', permissionList: '权限列表:',
remove: '移除', remove: '移除',
append: '添 加', append: '添 加',
release: '发布' release: '发布',
temporarilyNoData: '暂无数据',
second: '秒',
amount: '总数量',
yes: '是',
no: '否',
details: '详情',
enterNameToFilter: '输入名称进行过滤',
colon: ''
}; };

View File

@ -17,6 +17,12 @@ import planMonitor from './planMonitor';
import screenMonitor from './screenMonitor'; import screenMonitor from './screenMonitor';
import demonstration from './demonstration'; import demonstration from './demonstration';
import exam from './exam'; import exam from './exam';
import dashboard from './dashboard';
import jlmap3d from './jlmap3d';
import display from './display';
import joinTraining from './joinTraining';
import trainRoom from './trainRoom';
import menu from './menu';
export default { export default {
...cnLocale, ...cnLocale,
@ -37,5 +43,11 @@ export default {
planMonitor, planMonitor,
screenMonitor, screenMonitor,
demonstration, demonstration,
exam exam,
dashboard,
jlmap3d,
display,
joinTraining,
trainRoom,
menu
}; };

View File

@ -0,0 +1,12 @@
export default {
trainGroupNumber: '车组号:',
surveillanceHidden: '车内监控——隐藏',
surveillanceDisplay: '车内监控——显示',
trainInstrumentationDisplay: '列车仪表——显示',
trainInstrumentationHidden: '列车仪表——隐藏',
terminal: '终点站:',
nextStation: '下一站:',
confirmSignalOpen: '请确认前方信号开放',
faultInformation: '故障信息:',
vWeek: ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
};

View File

@ -0,0 +1,25 @@
export default {
chooseDriver: '设置司机',
cancelDriver: '取消司机',
admin: '管理员',
teacher: '教员',
dispatcher: '调度员',
stationAttendant: '车站值班员',
driver: '列车',
universalAccount: '通号',
sending: '发送中...',
autoplay: '自动播放',
holdAndTalk: '按住说话',
recording: '录音中...',
iBPDisk: 'IBP盘',
driverPerspective: '司机视角',
drivingByPlan: '按计划行车',
exitPlan: '退出计划',
runGraphPreview: '运行图预览',
runGraphLoading: '运行图加载',
faultSetting: '故障设置',
normalOperation: '正常操作',
faultOperation: '故障操作',
local: '现地',
lineAdjustment: '行调'
};

View File

@ -87,6 +87,15 @@ export default {
deleteTraining: '删除实训', deleteTraining: '删除实训',
automaticGenerationOfTraining: '自动生成实训', automaticGenerationOfTraining: '自动生成实训',
modifyTrainingByCategory: '按类别修改实训', modifyTrainingByCategory: '按类别修改实训',
deleteAutoGeneratedTraining: '删除自动生成实训' deleteAutoGeneratedTraining: '删除自动生成实训',
menu: '菜单',
turnout: '道岔',
section: '区段',
signaler: '信号机',
controlMode: '控制模式',
platform: '站台',
train: '列车',
station: '车站',
trainWindow: '车次窗'
}; };

View File

@ -80,6 +80,11 @@ export default {
lineWidth: '线条宽度:', lineWidth: '线条宽度:',
linePoint: '坐标:', linePoint: '坐标:',
segmentCoordinates: '区段显示坐标:', segmentCoordinates: '区段显示坐标:',
createSection: '一键生成区段',
createSwitch: '一键生成道岔',
clearHint: '清除提示',
batchOperation: '批量操作',
breakUpNumber: '拆分数量',
publishMapCreation: '从发布地图创建', publishMapCreation: '从发布地图创建',
@ -185,6 +190,7 @@ export default {
upside: '上段', upside: '上段',
hypomere: '下段', hypomere: '下段',
returnByGraph: '按图折返',
linkType: 'Link类型', linkType: 'Link类型',
linkCode: 'Link编码:', linkCode: 'Link编码:',
@ -257,7 +263,7 @@ export default {
isSegmentation: '是否分割:', isSegmentation: '是否分割:',
segmentationPosition: '分割坐标:', segmentationPosition: '分割坐标:',
isCurve: '是否曲线:', isCurve: '是否曲线:',
physicalSegmentName: '物理区段名称:', physicalSegmentName: '物理区段:',
directionType: '行驶方向:', directionType: '行驶方向:',
leftOrRight: '左右位置:', leftOrRight: '左右位置:',
@ -272,7 +278,8 @@ export default {
lampPositionType: '灯位类型:', lampPositionType: '灯位类型:',
signalUseType: '用途类型:', signalUseType: '用途类型:',
potLampType: '点灯类型:', potLampType: '点灯类型:',
signalDirectionType: '方向类型:', signalDirectionType: '行驶方向:',
signalDirectionTypeX: '显示方向:',
signalPositionType: '信号机位置类型:', signalPositionType: '信号机位置类型:',
signalOffset: '所属link偏移量:', signalOffset: '所属link偏移量:',
signalLinkCode: '所属link', signalLinkCode: '所属link',
@ -524,6 +531,10 @@ export default {
switchBCodeNum: '道岔ID 2:', switchBCodeNum: '道岔ID 2:',
wellDelTrianModel: '删除车模型会将关联的类车一起删除,请确认是否继续?', wellDelTrianModel: '删除车模型会将关联的类车一起删除,请确认是否继续?',
clear: '清空' clear: '清空',
horizontal: '水平',
vertical: '垂直',
piece: 'piece'
}; };

491
src/i18n/langs/zh/menu.js Normal file
View File

@ -0,0 +1,491 @@
export default {
menuBar: {
system: '系统',
view: '查看',
refresh: '刷新',
display: '显示',
setTrainIdDisplay: '设置列车识别号显示',
setNameDisplay: '设置名称显示',
setDeviceDisplay: '设置设备显示',
stationMapSwitch: '站场图切换',
controlModeSwitch: '控制模式转换',
toStationControl: '转为站控',
forcedStationControl: '强制站控',
toCentralControl: '转为中控',
requestOperationArea: '请求操作区域',
historyQuery: '历史查询',
userManage: '用户管理',
help: '帮助',
about: '关于ControlMonitor(A)',
planCarOperation: '计划车操作',
addPlanCar: '添加计划车',
panPlanCar: '平移计划车',
deletePlanCar: '删除计划车',
trainNumberMaintenance: '车次号维护',
schedulingLog: '调度日志',
systemAnalysis: '系统分析',
implemented: '实现中......'
},
menuCancle: {
zoomIn: '放大地图',
zoomOut: '缩小地图',
back: '返回'
},
menuSection: {
sectionFaultUnlock: '区段故障解锁',
sectionResection: '区段切除',
sectionActive: '区段激活',
sectionAxisPreReset: '区段计轴预复位',
sectionBlockade: '区段封锁',
sectionUnblock: '区段解封',
sectionSetSpeedLimit: '区段设置限速',
sectionCancelSpeedLimit: '区段取消限速',
axisPreReset: '计轴预复位',
createTrain: '新建列车',
setFault: '设置故障',
cancelFault: '取消故障',
orbitalSectionActive: '轨道区段激活',
orbitalSectionResection: '轨道区段切除'
},
menuSignal: {
routeSelect: '进路选排',
routeCancel: '进路取消',
signalBlock: '信号封闭',
signalDeblock: '信号解封',
signalReopen: '信号重开',
guideRouteHandle: '引导进路办理',
setInterlockAutoRoute: '设置联锁自动进路',
cancelInterlockAutoRoute: '取消联锁自动进路',
setInterlockAutoTrigger: '设置联锁自动触发',
cancelInterlockAutoTrigger: '取消联锁自动触发',
signalOff: '信号关灯',
routeGuide: '进路引导',
humanControl: '自排关',
atsAutoControl: '自排开',
queryRouteControlMode: '查询进路控制模式',
setFault: '设置故障',
cancelFault: '取消故障',
cancelTheTrainApproach: '取消列车进路',
reopenTrainSignal: '重开列车信号'
},
menuStation: {
fullSiteSetInterlockAutoTrigger: '全站设置联锁自动触发',
fullSiteCancelInterlockAutoTrigger: '全站取消联锁自动触发',
powerUnLock: '上电解锁',
execKeyOperationTest: '执行关键操作测试',
allHumanControl: '所有进路自排关',
allATSAutoControl: '所有进路自排开',
setStoppage: '设置ZC故障',
cancelStoppage: '取消ZC故障'
},
menuStationStand: {
detainTrain: '扣车',
cancelDetainTrain: '取消扣车',
cancelDetainTrainForce: '强制取消扣车',
jumpStop: '跳停',
cancelJumpStop: '取消跳停',
setRunLevel: '设置运行等级',
setEarlyDeparture: '设置提前发车',
setBackStrategy: '人工折返策略设置',
getStationStandStatus: '查询站台状态',
setStopTime: '设置停站时间',
setFault: '设置故障',
cancelFault: '取消故障',
cancelDetainTrainAll: '全线取消扣车',
cancelJumpStopAll: '全线取消跳停',
earlyDeparture: '提前发车',
setJumpStop: '设置跳停'
},
menuSwitch: {
switchLock: '道岔单锁',
switchUnlock: '道岔单解',
switchSectionBlockade: '道岔区段封闭',
switchSectionUnblock: '道岔区段解封',
switchTurnout: '道岔转动',
switchSectionFaultUnlock: '道岔区段故障解锁',
switchSectionAxisPreReset: '道岔区段计轴预复位',
sectionResection: '区段切除',
sectionActive: '区段激活',
switchSectionSetSpeedLimit: '道岔区段设置限速',
switchSectionCancelSpeedLimit: '道岔区段取消限速',
setFault: '设置故障',
cancelFault: '取消故障',
switchMalfunctionUnlock: '道岔故障解锁',
switchBlockade: '道岔封锁',
switchForcedPull: '道岔强扳'
},
menuTrain: {
addTrainId: '添加列车识别号',
deleteTrainId: '删除列车识别号',
editTrainId: '修改列车识别号',
editTrainNo: '修改车组号',
moveTrainId: '移动列车识别号',
switchTrainId: '交换列车识别号',
setCommunicationFault: '设置通信故障',
cancelCommunicationFault: '取消通信故障',
confirmRunToFrontStation: '确认运行至前方站'
},
passiveDialog: {
alarmDetailInformation: '级告警详细信息',
lineName: '线路名称',
unitName: '单位名称',
moduleName: '模块名称',
alarmDate: '报警时间',
level: '等 级',
selectDate: '选择日期时间',
confirmStatus: '确认状态',
type: '类 型',
childType: '子类型',
timeSummary: '时间摘要',
recommendedOperation: '推荐操作',
alarmDetailedDescription: '报警详细描述',
inputContent: '请输入内容',
confirm: '确 定',
unconfirmedMessageOne: '未确认',
unconfirmedMessageTwo: '级报警数目1',
centralControl: '中控',
// stationControl: '站控',
cmmControlModeConversionMode: 'CMM控制模式转换模式',
zeroLevelAlarm: '0级告警',
systemEvent: '系统事件',
childTypeTips: '依据信号设备操作命令设置控制模式',
controlModeSummary: '控制模式摘要',
controlModeTransfer: '控制模式转换:',
alarmDetailOne: '由',
stationToCentral: '站控转为中控模式',
centralToStation: '中控转为站控模式',
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'
},
confirm: '确定',
cancel: '取消',
platform: '站台',
arrivalTime: '到点',
stopTime: '停站时间',
departureTime: '发点',
runLevel: '运行等级',
serviceNumber: '表号',
tripNumber: '车次号',
stationName: '车站名称:',
stationKilometerMark: '车站公里标:',
arrivalTime2: '到站时间:',
file: '文件F',
view: '显示V',
edit: '编辑E',
tool: '工具T',
help: '帮助H',
viewPlanList: '查看计划列表',
createAWeekPlan: '创建一周计划',
loadTheDayPlan: '加载当天计划',
achieving: '实现中......',
addToTheFront: '加在前面',
addToTheEnd: '加在最后',
crossing: '交路',
date: '日期',
name: '姓名',
address: '地址',
displaysDefaultStopTimesAndRunLevels: '显示默认停站时间和运行等级',
addTask: '添加任务',
runGraphName: '运行图名称',
skinType: '皮肤类型',
selectTemplateRunGraph: '选择模板运行图',
load: '加载',
plannedDateRange: '计划日期范围',
deleteAllPreviousTasks: '删除以前所有任务(包含本任务)',
deleteAllSubsequentTasks: '删除以后所有任务(包含本任务)',
deleteTask: '删除任务',
deleteTheDayPlan: '删除当天计划',
mapName: '地图名称',
loadDate: '加载日期',
operationChartSchedule: '运行图计划表',
trainLine: '列车线路',
startStation: '起点站',
startPlatform: '起点站台',
terminal: '终点站',
endPlatform: '终点站台',
addTask2: '加任务',
deleteTask2: '删任务',
replace: '替  换',
inTheLibrary: '进库',
outOfTheLibrary: '出库',
changeTripNumber: '改车次号',
lineStartTime: '线路开始时间',
lineEndTime: '线路结束时间',
lineDetails: '线路详细信息',
station: '车站',
affectSubsequentTasks: '影响后续任务',
manual: '手工',
defaultStopTime: '缺省停站时间',
clearGuest: '清客',
continuationPlan: '延续计划',
firstTrain: '首班车',
serialNumber: '序列号',
defaultRunLevel: '缺省运行等级',
lastTrain: '模板车',
description: '描述',
modifyTask: '修改任务',
accessSetting: '进路设置',
cancelTheWay: '取消进路',
approachManualControl: '进路交人工控',
accessToATSAutomaticControl: '进路交ATS自动控',
turnoutSettingSpeedLimit: '道岔设置限速',
turnoutCancelsSpeedLimit: '道岔取消限速',
signalDeblocking: '信号解封',
in: '在',
signalConfirmed: '信号机,信号解锁,确认下达吗?',
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

@ -84,5 +84,29 @@ export default {
distributePermission: '权限分发', distributePermission: '权限分发',
orderCreation: '订单创建', orderCreation: '订单创建',
select: '选择', select: '选择',
chooseGoods: '选择商品' chooseGoods: '选择商品',
permissionName: '权限名称',
permissionGoodName: '权限商品名称',
receivingPermission: '领取权限',
isPackage: '是否权限包',
modifyPermissionContent: '修改权限内容',
addPermissions: '添加权限',
modifyPermissions: '修改权限',
createPermission: '新建权限',
oneClickGenerationPermission: '一键生成权限',
packingDetails: '打包详情',
belongsToMap: '所属地图',
oneClickGeneration: '一键生成',
selectPermission: '选择权限',
permission: '权限',
orderSelectionItem: '订单选择商品',
orderDetails: '订单详情',
statusType: '状态类型',
createPackage: '创建权限',
package: '权限包',
basePackage: '基础权限',
pleaseEnterContent: '请输入内容',
selectGoods: '选择商品',
month: '月',
yuan: '元'
}; };

View File

@ -26,6 +26,17 @@ export default {
addPermissionPackageRule: '增加权限打包规则', addPermissionPackageRule: '增加权限打包规则',
editPermissionPackageRule: '编辑权限打包规则', editPermissionPackageRule: '编辑权限打包规则',
restPermissionMaxNumber: '(剩余最大权限个数:{0}', restPermissionMaxNumber: '(剩余最大权限个数:{0}',
pleaseSelectTransferPermission: '选择转赠权限' pleaseSelectTransferPermission: '选择转赠权限',
permissionName: '权限名称',
private: '专用',
public: '公用',
selectPermission: '选择权限',
createOrder: '创建订单',
checkCode: '查看二维码',
goodsName: '商品名称',
price: '价格',
permissionList: '查看权限列表',
lastShep: '上一步',
userName: '用户名称',
statusType: '状态类型'
}; };

View File

@ -42,6 +42,70 @@ export default {
setSuccess: '设置成功', setSuccess: '设置成功',
wellPutawayPaper: '此操作将此试卷上架, 是否继续?', wellPutawayPaper: '此操作将此试卷上架, 是否继续?',
wellSoldOutPaper: '此操作将此试卷下架, 是否继续?', wellSoldOutPaper: '此操作将此试卷下架, 是否继续?',
wellDelPaper: '此操作将删除该试卷, 是否继续?' wellDelPaper: '此操作将删除该试卷, 是否继续?',
publishHistory: '发布历史',
deleteGenerateEveryRunPlan: '此操作将删除此运行图, 是否继续?',
deleteGenerateRunPlanSuccess: '删除加载计划成功!',
addEveryRunPlanSuccess: '加载计划创建每日计划成功!',
publisherId: '发布人id',
publishTime: '时间',
publishVersion: '版本',
lessonDeleteBtn: '删除',
durationMinutes: '分钟',
testDefinitionMaking: '试题定义制定',
examRuleMaking: '考试规则制定',
testName: '试题名称',
inputTestName: '请填写试题名称',
testScope: '试题范围',
selectTestScope: '请选择试题范围',
testDuration: '时长',
testDate: '考试时间',
startTestTime: '开始考试时间',
endTestTime: '结束考试时间',
fullScore: '满分',
passingScore: '及格分',
whetherToTry: '是否试用',
trialNo: '否',
trialYes: '是',
testDescription: '试题描述',
inputTestDescription: '请填写试题描述',
inputFullScore: '请输入满分',
inputNumericType: '请输入数字类型',
inputPassingScore: '请输入及格分',
inputScoreError: '输入的值大于满分',
inputTestDuration: '请输入时长',
selectWetherTrial: '请选择是否试用',
updateExamRuleSuccess: '更新考试规则成功',
updateExamRuleFailed: '更新考试规则失败',
refreshFailed: '刷新失败',
fullScoreTips: '满分为',
scorePoints: '分',
addRules: '添加规则',
trainingType: '实训类型',
questionsNumber: '题数',
eachScore: '每题分值',
totalScore: '总分',
addExamRluesError: '添加规则不匹配满分',
addExamRules: '请添加考试规则!',
saveRuleFailed: '保存规则失败: ',
selectTypeScope: '请选择类型范围',
operationType: '操作类型',
selectScope: '请选择范围',
questionNumbers: '题数',
allNumberTipOne: '此类型有',
allNumberTipTwo: '道题',
scorePerQuestion: '每题分值',
inputQuestionNumber: '请输入题数',
inputQuestionNumberError: '输入的题数大于0',
inputValidNumber: '请输入有效数字',
inputNumberError: '输入值必须大于题数',
inputScorePerQuestion: '请输入每题分值',
// inputNumericType 请输入数字值
// addRules 添加规则
selectTestType: '请选择试题类型',
modifyRules: '修改规则'
// refreshFailed 刷新失败
}; };

View File

@ -249,12 +249,33 @@ export default {
selectOneTrainingType: '只能选择一个实训类型', selectOneTrainingType: '只能选择一个实训类型',
enterProductType: '请输入产品类型', enterProductType: '请输入产品类型',
selectAssociatedStation: '请选择关联的车站', selectAssociatedStation: '请选择关联的车站',
enterScale: '请输入缩放比例', enterScale: '请输入缩放比例',
enterXOffset: '请输入X偏移', enterXOffset: '请输入X偏移',
enterYOffset: '请输入Y偏移', enterYOffset: '请输入Y偏移',
pleaseSelectButtonType: '请选择按钮类型', pleaseSelectButtonType: '请选择按钮类型',
pleaseSelectButtonContent: '请输入内容' pleaseSelectButtonContent: '请输入内容',
pleaseSelectTrainDir: '请选择列车所在方向',
pleaseEnterSplit: '请输入拆分数量',
pleaseEnterSplitNumber: '请输入合理的拆分数量',
endTimeRules: '结束时间必须大于开始时间',
selectCourses: '请选择课程',
selectTheMapRoute: '请选择地图线路',
enterKeyword: '请输入关键词',
successfullyModified: '修改成功',
modifyTheFailure: '修改失败',
selectTheCourseNameFirst: '请先选择课程名称',
selectMultiplePermissions: '请选择多个权限',
enterPermissionName: '请输入权限名称',
pleaseSelectPermission: '请选择权限',
pleaseSelectTemplateRunGraph: '请选择模板运行图',
selectTheRunningDiagramToBeLoaded: '请选择需要加载的运行图',
selectOneOrMoreDates: '选择一个或多个日期',
selectAPlannedDateRange: '请选择计划日期范围',
selectGroupNumber: '请选择车组号',
selectATrainType: '请选择一个列车类型',
enterTheServiceNumber: '请输入表号',
enterTheTripNumber: '请输入车次号',
enterTheTargetCode: '请输入目的地号',
selectStation: '请选择车站'
}; };

View File

@ -1,26 +1,83 @@
export default { export default {
scriptTitle: '剧本录制', scriptTitle: '剧本录制',
// saveMaplocation: '更新定位',
saveBackground: '保存背景', saveBackground: '保存背景',
saveData: '保存数据', saveData: '保存数据',
mapList: '地图列表', mapList: '地图列表',
createScript: '创建剧本', createScript: '创建剧本',
scriptName: '剧本名称', scriptName: '剧本名称',
addScript: '添加剧本',
// roleManage: '角色管理', map: '所属地图',
// targetCondition: '任务目标', scriptDescription: '剧本描述',
// taskScript: '任务剧本', submit: '确定',
// roleName: '角色名称', scriptNameRule: '请输入剧本名称',
// roleType: '角色类型', scriptDescriptionRule: '请输入剧本描述',
// deviceCode: '设备编码', createScriptSuccess: '创建剧本成功',
// roleList: '角色列表', createScriptFail: '创建剧本失败',
// operation: '操作', scriptDetail: '剧本详情',
// roleAdd: '添加', scriptRecord: '编制',
// delete: '删除', scriptModify: '修改',
// behaviorOperate: '行为操作', scriptDelete: '删除',
// conditionTitle: '目标条件', getScriptFail: '获取剧本信息失败',
// deviceType: '设备类型', createSimulationFail: '创建仿真失败',
// deviceCondition: '设备条件', modifyScriptSuccess: '修改剧本成功',
// paramDeviceType: '参数设备类型', modifyScriptFail: '修改剧本失败',
// paramDeviceCode: '参数设备编号' deleteScriptTip: '此操作将删除此剧本, 是否继续?',
deleteScriptSucess: '删除成功',
deleteScriptFail: '删除失败',
scriptRecordTitle: '剧本编制',
drivingPause: '暂停',
recoverAndExecute: '恢复并执行',
resetScript: '重置剧本',
pauseFail: '暂停失败',
recoverFail: '恢复失败',
saveBackgroundSuceess: '保存背景成功',
updateLocationFail: '更新定位失败',
saveBackgroundFail: '保存背景失败',
saveDataSucess: '保存数据成功',
saveDataFail: '保存数据失败',
clearDataTip: '此操作将会清除已保存的编制数据, 是否继续?',
resetDataSuccess: '重置剧本成功',
resetDataFail: '重置剧本失败',
allRoles: '所有角色',
actors: '演员角色',
roleSexMale: '男',
roleSexFemale: '女',
selectScriptActorSuccess: '选择剧本角色成功',
selectScriptActorFail: '选择剧本角色失败',
cancleScriptActorSuccess: '取消剧本角色成功',
cancleScriptActorFail: '取消剧本角色失败',
modifyScriptActorSexSuccess: '修改剧本成员性别成功',
modifyScriptActorSexFail: '修改剧本成员性别失败',
addConversition: '添加对话',
narrator: '讲述者',
narratorRules: '请选择讲述者',
receiver: '接收者',
receiverRules: '请选择接收者',
conversitionContent: '内容',
addCommand: '添加指令',
executor: '执行者',
executorRules: '请选择执行者',
executeCommand: '执行指令',
executeCommandRules: '请选择执行指令',
startStation: '起始站台',
startStationRules: '请选择起始站台',
endStation: '终点站台',
endStationRules: '请选择终点站台',
addCommandButton: '添加指令',
addConversitionButton: '添加对话',
conversitionContentRules: '请输入内容',
addCommandSucess: '添加指令成功',
addCommandFail: '添加指令失败',
addConversitionSuccess: '添加对话成功',
addConversitionFail: '添加对话失败',
modifyConversitionSuccess: '修改对话成功',
modifyConversitionFail: '修改对话失败',
modifyConversition: '修改对话',
modifyConversitionButton: '修改',
drivingByPlan: '按计划行车',
scriptBack: '返回'
}; };

View File

@ -46,6 +46,7 @@ export default {
selectTraining: '选择实训', selectTraining: '选择实训',
createUserTraining: '创建用户实训', createUserTraining: '创建用户实训',
editTrainingDetail: '编辑实训详情', editTrainingDetail: '编辑实训详情',
trainingTime: '实训时长' trainingTime: '实训时长',
subscribeToTheMapList: '订阅地图列表:',
editSimulationDetails: '编辑仿真详情'
}; };

View File

@ -15,5 +15,6 @@ export default {
buy: '购买', buy: '购买',
permissionDistribute: '权限分发(上课)', permissionDistribute: '权限分发(上课)',
authorityTransferred: '权限转赠', authorityTransferred: '权限转赠',
courseList: '课程列表' courseList: '课程列表',
seconds: '秒'
}; };

View File

@ -77,6 +77,11 @@ export default {
dataValidationFailed: '数据校验不通过', dataValidationFailed: '数据校验不通过',
dataValidationSuccess: '数据校验通过!', dataValidationSuccess: '数据校验通过!',
linkCheckList: '有 link 绘图不规范, 未生成区段',
allLinkCreate: '所有link都有相关区段所以未生成任何区段',
incidenceRelation: '可能是多余的,请检查关联关系',
linkNoneSplit: '有问题,没有进行拆分',
requestFailed: '请求失败', requestFailed: '请求失败',
dataQuestion: '有问题数据', dataQuestion: '有问题数据',
@ -129,5 +134,41 @@ export default {
updateTrainingSuccessfully: '更新实训成功!', updateTrainingSuccessfully: '更新实训成功!',
updateTrainingFailed: '更新实训失败', updateTrainingFailed: '更新实训失败',
savedStepDataSuccessfully: '保存步骤数据成功', savedStepDataSuccessfully: '保存步骤数据成功',
savedStepDataFailed: '保存步骤数据失败' savedStepDataFailed: '保存步骤数据失败',
noCourseAuthority: '无此课程的考试权限,请前往购买!',
notWithinTheScopeOfTheExamination: '不在考试范围之内',
giveUpTheExamTip: '此操作将放弃本次考试, 是否继续?',
theNumberOfPermissionsAvailableIsZero: '可用的权限数量为0',
userRightsHaveBeenReclaimed: '用户权限已被收回',
beKickedOut: '您被管理员踢出房间',
deleteListHint: '此操作将删除该列表, 是否继续?',
setUpASubscriptionMapSuccessfully: '设置订阅地图成功!',
setUpASubscriptionMapFailed: '设置订阅地图失败!',
getMapStateDataException: '获取地图状态数据异常,请刷新页面重新加载。若多次遇到此类问题,请急时联系开发团队处理!',
packagedSuccessfully: '打包成功',
oneKeyGeneratedSuccessfully: '一键生成成功!',
obtainedPermissionSuccessfully: '领取权限成功',
modifyTheUserPermissionStatus: '此操作将修改用户权限状态?',
destroyRoomHint: '您将销毁房间,是否确定执行此操作',
contentIsEmptyAndCannotBeSent: '内容为空,不可发送!',
generateUserDailyRunGraphSuccessfully: '生成用户每日运行图成功',
generateUserDailyRunGraphFailed: '生成用户每日运行图成失败',
createRunChartPlanSuccessfully: '创建运行图计划成功',
createRunChartPlanFailed: '创建运行图计划失败',
deleteTheRunningGraphLoadedTheNextDay: '此操作将删除次日加载的运行图, 是否继续?',
commandFailed: '命令下达失败',
releaseTip: '请点击“下达”按钮,下达命令!',
firstConfirmTip: '请点击“确认1”按钮确认命令',
executionSucceed: '执行成功',
executionFailed: '执行失败',
executionException: '执行异常',
secondConfirmTip: '请点击“确认2”按钮确认命令',
confirmedSuccess: '确认成功',
cancelSuccess: '取消成功',
signalModeToManualModeTipPrefix: '取消以信号机',
signalModeToManualModeTipSuffix: '为始端的进路,该进路即将由自动信号模式转为人工模式!',
selectAPieceOfData: '请选择一条数据',
selectSpeedLimitValueTip: '请选择限速值后,点击“下达”按钮,下达命令!',
addTrainIdTip: '添加列车识别号:成功',
editTrainIdTip: '修改列车识别号:成功'
}; };

View File

@ -0,0 +1,29 @@
export default {
comprehensiveTrainingManager: '综合实训管理者:',
comprehensiveDrillRoom: '综合演练室',
numberOfAssignableRoles: '可分配角色数量:',
dispatcher: '调度员',
increaseDispatchers: '增加调度人员',
stationAttendant: '车站值班员',
increaseStationAttendant: '增加车站值班员',
teacher: '教员',
increaseTeacher: '增加教员',
universalAccount: '通号',
increaseUniversalAccount: '增加通号',
driver: '司机',
increaseDriver: '增加司机',
bigScreen: '大屏',
increaseBigScreen: '增加大屏',
destroyRoom: '销毁房间',
generatingQRCode: '生成二维码',
startSimulation: '开始仿真',
enterSimulation: '进入仿真',
endSimulation: '结束仿真',
distributeTheRoomQRCode: '分发房间二维码',
increaseIbp: '增加IBP',
kickOutTheRoom: '提出房间',
sending: '发送中...',
holdAndTalk: '按住说话',
recording: '录音中...',
sendText: '发送文字'
};

View File

@ -30,13 +30,6 @@ deviceRender[deviceType.Arrow] = {
z: 2 z: 2
}; };
/** RotatingButton渲染配置*/
deviceRender[deviceType.RotatingButton] = {
_type: deviceType.RotatingButton,
zlevel: 1,
z: 3
};
/** TipBox渲染配置*/ /** TipBox渲染配置*/
deviceRender[deviceType.TipBox] = { deviceRender[deviceType.TipBox] = {
_type: deviceType.TipBox, _type: deviceType.TipBox,

View File

@ -2,7 +2,6 @@ const deviceType = {
IbpText: 'IbpText', IbpText: 'IbpText',
SquareButton: 'SquareButton', SquareButton: 'SquareButton',
Arrow: 'Arrow', Arrow: 'Arrow',
RotatingButton: 'RotatingButton',
TipBox: 'TipBox', TipBox: 'TipBox',
Background: 'Background', Background: 'Background',
CircularLamp: 'CircularLamp', CircularLamp: 'CircularLamp',

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,6 @@ import localStore from 'storejs';
import Options from './options'; import Options from './options';
import MouseController from './mouseController'; import MouseController from './mouseController';
import Painter from './painter'; import Painter from './painter';
import deviceState from '../jmap/constant/deviceState';
import deviceType from './constant/deviceType'; import deviceType from './constant/deviceType';
import {calculateDCenter, createBoundingRect, deviceFactory} from './utils/parser'; import {calculateDCenter, createBoundingRect, deviceFactory} from './utils/parser';
import { updateIbpData } from './utils/parser'; import { updateIbpData } from './utils/parser';
@ -17,10 +16,7 @@ class IbpPan {
this.methods = opts.methods; this.methods = opts.methods;
// 鼠标事件 // 鼠标事件
this.events = { __Pan: 'pan', __Zoom: 'zoom', Selected: 'selected', Contextmenu: 'contextmenu', DataZoom: 'dataZoom'}; this.events = { __Pan: 'pan', Contextmenu: 'contextmenu'};
// 皮肤参数
// this.skinCode = '';
// 设备数据 // 设备数据
this.ibpDevice = {}; this.ibpDevice = {};
@ -28,9 +24,6 @@ class IbpPan {
// 展示的画布大小 // 展示的画布大小
this.canvasSize = {}; this.canvasSize = {};
// 默认状态
this.defaultStateDict = this.loadDefaultState();
this.initIbpPage(opts); this.initIbpPage(opts);
} }
initIbpPage(opts) { initIbpPage(opts) {
@ -38,7 +31,7 @@ class IbpPan {
const height = opts.config.height; const height = opts.config.height;
this.isAllowDragging=false; this.isAllowDragging=false;
this.$ibpZr = zrender.init(opts.dom, Object.assign({ renderer, devicePixelRatio, width, height }, opts.config)); this.$ibpZr = zrender.init(opts.dom, Object.assign({ renderer, devicePixelRatio, width, height }, opts.config));
this.$options = new Options(Object.assign({ scaleRate: 1, offsetX: 0, offsetY: 0 }, opts.options || {}), (dataZoom) => { this.$mouseController.trigger(this.events.DataZoom, dataZoom); }); // 缩放 this.$options = new Options(Object.assign({ scaleRate: 1, offsetX: 0, offsetY: 0 }, opts.options || {})); // 缩放
this.$mouseController = new MouseController(this); this.$mouseController = new MouseController(this);
this.$mouseController.enable(); this.$mouseController.enable();
@ -50,21 +43,8 @@ class IbpPan {
this.optionsHandler = this.setOptions.bind(this); this.optionsHandler = this.setOptions.bind(this);
this.$mouseController.on(this.events.__Pan, this.optionsHandler); this.$mouseController.on(this.events.__Pan, this.optionsHandler);
this.$mouseController.on(this.events.__Zoom, this.optionsHandler);
} }
loadDefaultState() {
const defaultStateDict = {};
zrUtil.each(Object.keys(deviceState), (type) => {
defaultStateDict[type] = {};
zrUtil.each(Object.keys(deviceState[type] || {}), (state) => {
defaultStateDict[type][state] = deviceState[type][state].Default;
}, this);
}, this);
return defaultStateDict;
}
setMap(config, ibpDevice) { setMap(config, ibpDevice) {
// 保存平移缩放数据 // 保存平移缩放数据
if (config.config) { if (config.config) {
@ -84,7 +64,7 @@ class IbpPan {
height: config.background.height height: config.background.height
}; };
// 解析地图数据 // 地图数据
this.ibpDevice = ibpDevice; this.ibpDevice = ibpDevice;
// 数据加载完成 回调 // 数据加载完成 回调
@ -235,13 +215,6 @@ class IbpPan {
return this.ibpDevice[code]; return this.ibpDevice[code];
} }
getShapeTipPoint(opts) {
const device = this.ibpDevice[opts.code];
if (device) {
return this.$painter.getShapeTipPoint(device.instance, opts);
}
}
resize(opt) { resize(opt) {
this.$ibpZr.resize(opt); this.$ibpZr.resize(opt);
this.$painter.updateZrSize(opt); this.$painter.updateZrSize(opt);

View File

@ -34,14 +34,12 @@ class MouseController extends Eventful {
initHandler(zr) { initHandler(zr) {
if (zr) { if (zr) {
zr.on('click', this.click, this);
zr.on('contextmenu', this.contextmenu, this); zr.on('contextmenu', this.contextmenu, this);
zr.on('mousemove', this.moveEvent, this); zr.on('mousemove', this.moveEvent, this);
this.enable = function (opts) { this.enable = function (opts) {
opts = opts || {}; opts = opts || {};
this._moveOnMouseMove = opts.moveOnMouseMove || true; this._moveOnMouseMove = opts.moveOnMouseMove || true;
this._zoomOnMouseWheel = opts.zoomOnMouseWheel || false;
this._preventDefaultMouseMove = opts.preventDefaultMouseMove || true; this._preventDefaultMouseMove = opts.preventDefaultMouseMove || true;
this.disable(); this.disable();
@ -52,30 +50,20 @@ class MouseController extends Eventful {
zr.on('touchstart', this.mousedown, this); zr.on('touchstart', this.mousedown, this);
zr.on('touchmove', this.mousemove, this); zr.on('touchmove', this.mousemove, this);
zr.on('touchend', this.mouseup, this); zr.on('touchend', this.mouseup, this);
zr.on('mousewheel', this.mousewheel, this);
}; };
this.disable = function () { this.disable = function () {
zr.off('mousedown', this.mousedown); zr.off('mousedown', this.mousedown);
zr.off('mousemove', this.mousemove); zr.off('mousemove', this.mousemove);
zr.off('mouseup', this.mouseup); zr.off('mouseup', this.mouseup);
zr.off('touchstart', this.mousedown); zr.off('touchstart', this.mousedown);
zr.off('touchmove', this.mousemove); zr.off('touchmove', this.mousemove);
zr.off('touchend', this.mouseup); zr.off('touchend', this.mouseup);
zr.off('mousewheel', this.mousewheel);
}; };
this.dispose = function () { this.dispose = function () {
zr.off('click', this.click);
zr.off('contextmenu', this.contextmenu); zr.off('contextmenu', this.contextmenu);
zr.off('mousemove', this.moveEvent); zr.off('mousemove', this.moveEvent);
zr.off('touchstart', this.mousedown);
zr.off('touchmove', this.mousemove);
zr.off('touchend', this.mouseup);
this.disable(); this.disable();
}; };
@ -134,45 +122,20 @@ class MouseController extends Eventful {
} }
mouseup(e) { mouseup(e) {
console.log('-------', this.eventTarget._type===deviceType.Background);
if (!eventTool.notLeftMouse(e)&&this.isAllowDragging && this.eventTarget) { if (!eventTool.notLeftMouse(e)&&this.isAllowDragging && this.eventTarget) {
this.eventTarget.setModel(e.offsetX - this._offsetX, e.offsetY - this._offsetY); this.eventTarget.setModel(e.offsetX - this._offsetX, e.offsetY - this._offsetY);
this.eventTarget.dirty(); this.eventTarget.dirty();
this.eventTarget = '';
} }
// debugger;
if (this.eventTarget && this.eventTarget._type === deviceType.Background) { if (this.eventTarget && this.eventTarget._type === deviceType.Background) {
// console.log('111-------');
this.eventTarget.setCursor('default'); this.eventTarget.setCursor('default');
} }
this.eventTarget = '';
this._dragging = false; this._dragging = false;
} }
mousewheel(e) {
const shouldZoom = this._zoomOnMouseWheel;
const wheelDelta = e.wheelDelta;
const originX = e.offsetX;
const originY = e.offsetY;
if (wheelDelta === 0 || !shouldZoom) {
return;
}
if (shouldZoom) {
eventTool.stop(e.event);
let scale = 1;
if (wheelDelta > 0) {
scale = 1;
} else if (wheelDelta < 0) {
scale = -1;
}
this.trigger(this.events.__Zoom, {type: this.events.__Zoom, scale, originX, originY });
}
}
click(e) {
var em = this.checkEvent(e);
this.trigger(this.events.Selected, em);
}
contextmenu(e) { contextmenu(e) {
var em = this.checkEvent(e); var em = this.checkEvent(e);
this.trigger(this.events.Contextmenu, em); this.trigger(this.events.Contextmenu, em);

View File

@ -117,25 +117,6 @@ class Painter {
} }
/** /**
* 过去坐标提示位置
* @param {*} opts
*/
getShapeTipPoint(instance, opts) {
if (instance) {
var point = instance.getShapeTipPoint(opts);
if (point) {
// 矩阵变换
var transform = this.$transformHandle.transform;
var transPoint = vector.applyTransform([], [point.x, point.y], transform);
return {
x: transPoint[0],
y: transPoint[1]
};
}
}
}
/**
* 初始化电子时钟时间 * 初始化电子时钟时间
*/ */
initClockTime(device, initTime) { initClockTime(device, initTime) {

View File

@ -1,6 +1,6 @@
import Group from 'zrender/src/container/Group'; import Group from 'zrender/src/container/Group';
import Image from 'zrender/src/graphic/Image'; import Sector from 'zrender/src/graphic/shape/Sector';
import AppendageBoxImage from '@/assets/ibp_images/appendage_box.png'; import Rect from 'zrender/src/graphic/shape/Rect';
export default class AppendageBox extends Group { export default class AppendageBox extends Group {
constructor(device) { constructor(device) {
@ -18,19 +18,108 @@ export default class AppendageBox extends Group {
id: this.model.code, id: this.model.code,
position: [this.model.point.x, this.model.point.y] position: [this.model.point.x, this.model.point.y]
}); });
this.appendageBox = new Image({ const spaceHeight = (this.model.height-this.model.borderWidth*3)/2;
this.rect1 = new Rect({
zlevel: this.zlevel, zlevel: this.zlevel,
z: this.z, z: this.z,
draggable: false, shape: {
style: {
image: AppendageBoxImage,
x: 0, x: 0,
y: 0, y: 0,
width: this.model.width, width: this.model.width - this.model.borderWidth,
height: this.model.height height: this.model.borderWidth
},
style: {
fill: '#34383A'
} }
}); });
this.grouper.add(this.appendageBox); this.rect2 = new Rect({
zlevel: this.zlevel,
z: this.z,
shape: {
x: 0,
y: this.model.borderWidth + spaceHeight,
width: this.model.width - this.model.borderWidth,
height: this.model.borderWidth
},
style: {
fill: '#34383A'
}
});
this.rect3 = new Rect({
zlevel: this.zlevel,
z: this.z,
shape: {
x: 0,
y: 2*this.model.borderWidth + 2*spaceHeight,
width: this.model.width - this.model.borderWidth,
height: this.model.borderWidth
},
style: {
fill: '#34383A'
}
});
this.rect4 = new Rect({
zlevel: this.zlevel,
z: this.z,
shape: {
x: 0,
y: 0,
width: this.model.borderWidth,
height: this.model.height
},
style: {
fill: '#34383A'
}
});
this.sector1 = new Sector({
zlevel: this.zlevel,
z: this.z,
shape: {
cx: this.model.width - this.model.borderWidth,
cy: this.model.borderWidth,
r: this.model.borderWidth,
startAngle: 1.5*Math.PI,
endAngle: 2*Math.PI
},
style: {
fill: '#34383A'
}
});
this.sector2 = new Sector({
zlevel: this.zlevel,
z: this.z,
shape: {
cx: this.model.width - this.model.borderWidth,
cy: 2*this.model.borderWidth + spaceHeight,
r: this.model.borderWidth,
startAngle: 1.5*Math.PI,
endAngle: 2*Math.PI
},
style: {
fill: '#34383A'
}
});
this.sector3 = new Sector({
zlevel: this.zlevel,
z: this.z,
shape: {
cx: this.model.width - this.model.borderWidth,
cy: 3*this.model.borderWidth + 2*spaceHeight,
r: this.model.borderWidth,
startAngle: 1.5*Math.PI,
endAngle: 2*Math.PI
},
style: {
fill: '#34383A'
}
});
this.grouper.add(this.rect1);
this.grouper.add(this.rect2);
this.grouper.add(this.rect3);
this.grouper.add(this.rect4);
this.grouper.add(this.sector1);
this.grouper.add(this.sector2);
this.grouper.add(this.sector3);
this.add(this.grouper); this.add(this.grouper);
} }
setModel(dx, dy) { setModel(dx, dy) {

View File

@ -16,24 +16,27 @@ export default class background extends Group {
create() { create() {
const image = new Image(25, 25); const image = new Image(25, 25);
image.src = ibpBg; image.src = ibpBg;
image.onload = (e) => { image.decode()
const pattern = new Pattern(image, 'repeat'); .then(() => {
this.imageBg = new Rect({ const pattern = new Pattern(image, 'repeat');
zlevel: this.zlevel, this.imageBg = new Rect({
z: this.z, zlevel: this.zlevel,
cursor: 'default', z: this.z,
shape: { cursor: 'default',
x: 0, shape: {
y: 0, x: 0,
width: this.model.width, y: 0,
height: this.model.height width: this.model.width,
}, height: this.model.height
style: { },
fill: pattern style: {
} fill: pattern
}
});
this.add(this.imageBg);
}).catch((encodingError) => {
// Do something with the error.
}); });
this.add(this.imageBg);
};
} }
setModel(dx, dy) { setModel(dx, dy) {
} }

View File

@ -8,7 +8,6 @@ import IbpLine from './ibpLine';
import Button from './button'; import Button from './button';
import TipBox from './ibpTipBox'; import TipBox from './ibpTipBox';
import AppendageBox from './appendageBox'; import AppendageBox from './appendageBox';
import RotatingButton from './rotatingButton';
import Elevator from './elevator'; import Elevator from './elevator';
import Key from './key'; import Key from './key';
import TeleTerminal from './teleTerminal'; import TeleTerminal from './teleTerminal';
@ -25,7 +24,6 @@ ibpShape[deviceType.IbpLine] = IbpLine;
ibpShape[deviceType.SquareButton] = Button; ibpShape[deviceType.SquareButton] = Button;
ibpShape[deviceType.TipBox] = TipBox; ibpShape[deviceType.TipBox] = TipBox;
ibpShape[deviceType.AppendageBox] = AppendageBox; ibpShape[deviceType.AppendageBox] = AppendageBox;
ibpShape[deviceType.RotatingButton] = RotatingButton;
ibpShape[deviceType.Elevator] = Elevator; ibpShape[deviceType.Elevator] = Elevator;
ibpShape[deviceType.Key] = Key; ibpShape[deviceType.Key] = Key;
ibpShape[deviceType.TeleTerminal] = TeleTerminal; ibpShape[deviceType.TeleTerminal] = TeleTerminal;

View File

@ -28,7 +28,9 @@ export default class ibpTipBox extends Group {
height: this.model.height height: this.model.height
}, },
style: { style: {
fill: this.model.fillColor fill: this.model.opacity ? 'rgb(0,0,0,0)':this.model.fillColor,
lineWidth: this.model.lineWidth,
stroke: this.model.stroke
} }
}); });
this.grouper.add(this.tipBox); this.grouper.add(this.tipBox);

View File

@ -1,7 +1,10 @@
import Group from 'zrender/src/container/Group'; import Group from 'zrender/src/container/Group';
import Image from 'zrender/src/graphic/Image'; import Image from 'zrender/src/graphic/Image';
import Line from 'zrender/src/graphic/shape/Line';
import Text from 'zrender/src/graphic/Text';
import keyPic from '@/assets/ibp_images/key.png'; import keyPic from '@/assets/ibp_images/key.png';
import keyPicOn from '@/assets/ibp_images/key_on.png'; import keyPicOn from '@/assets/ibp_images/key_on.png';
import Keyhole from '@/assets/ibp_images/keyhole.png';
export default class key extends Group { export default class key extends Group {
@ -20,28 +23,113 @@ export default class key extends Group {
id: model.code, id: model.code,
position: [model.point.x, model.point.y] position: [model.point.x, model.point.y]
}); });
this.keyImage = new Image({ this.keyImage = new Image({
zlevel: this.zlevel, zlevel: this.zlevel,
z: model.z, z: model.z+1,
draggable: false,
style: { style: {
image: this.getRotateColor(), image: this.getRotateColor(),
x: 0, x: 0,
y: 0, y: 0,
width: 314, width: model.width,
height: 932 height: model.width/314*932
} }
}); });
this.rotatingButton = new Image({
zlevel: this.zlevel,
z: model.z,
style: {
image: Keyhole,
x: 0,
y: 0,
width: model.width,
height: model.width/361*336
}
});
this.ibpLine1 = new Line({
zlevel: model.zlevel,
z: model.z,
shape: {
x1: model.width+2,
y1: model.width/361*336/2,
x2: model.width+12,
y2: model.width/361*336/2
},
style: {
lineWidth: 3,
stroke: '#000'
}
});
this.ibpLine2 = new Line({
zlevel: model.zlevel,
z: model.z,
draggable: false,
shape: {
y1: model.width/361*336+2,
x1: model.width/2,
y2: model.width/361*336+12,
x2: model.width/2
},
style: {
lineWidth: 3,
stroke: '#000'
}
});
this.bottomText = new Text({
zlevel: model.zlevel,
z: model.z,
style: {
x: model.width/2,
y: model.width/361*336+12,
fontWeight: 600,
fontSize: 10,
fontFamily: model.fontFamily,
text: model.bottomText,
textStrokeWidth: 0,
textFill: '#000',
textAlign: 'center',
textPosition: model.textPosition || 'inside',
textLineHeight: 10
}
});
this.topText= new Text({
zlevel: model.zlevel,
z: model.z,
style: {
x: model.width+14,
y: model.width/361*336/2-4,
fontWeight: 600,
fontSize: 10,
fontFamily: model.fontFamily,
text: model.topText,
textStrokeWidth: 0,
textFill: '#000',
textAlign: 'left',
textPosition: model.textPosition || 'inside',
textLineHeight: 10
}
});
this.grouper.add(this.bottomText);
this.grouper.add(this.topText);
this.grouper.add(this.ibpLine1);
this.grouper.add(this.ibpLine2);
this.grouper.add(this.rotatingButton);
this.grouper.add(this.keyImage); this.grouper.add(this.keyImage);
this.add(this.grouper); this.add(this.grouper);
this.transformScale(); // this.transformScale();
} }
/** 缩放按钮 */ /** 缩放按钮 */
transformScale() { transformScale() {
this.keyImage.origin = [0, 0]; // this.keyImage.origin = [0, 0];
this.keyImage.scale =[this.model.width/314, this.model.width/314]; // this.rotatingButton.origin = [0, 0];
this.keyImage.dirty(); // this.keyImage.scale =[this.model.width/314, this.model.width/314];
// this.rotatingButton.scale =[this.model.width/361, this.model.width/336];
// this.keyImage.dirty();
// this.rotatingButton.dirty();
} }
getRotateColor() { getRotateColor() {
@ -94,4 +182,5 @@ export default class key extends Group {
this.model.point.x+=dx; this.model.point.x+=dx;
this.model.point.y+=dy; this.model.point.y+=dy;
} }
} }

View File

@ -2,6 +2,7 @@ import Group from 'zrender/src/container/Group';
import Image from 'zrender/src/graphic/Image'; import Image from 'zrender/src/graphic/Image';
import rotateBlack from '@/assets/ibp_images/rotate_black.png'; import rotateBlack from '@/assets/ibp_images/rotate_black.png';
import rotateRed from '@/assets/ibp_images/rotate_red.png'; import rotateRed from '@/assets/ibp_images/rotate_red.png';
import Rect from 'zrender/src/graphic/shape/Rect';
export default class rotateTip extends Group { export default class rotateTip extends Group {
@ -21,7 +22,7 @@ export default class rotateTip extends Group {
id: model.code, id: model.code,
position: [model.point.x, model.point.y] position: [model.point.x, model.point.y]
}); });
this.imageBg = new Image({ this.tip = new Image({
zlevel: this.zlevel, zlevel: this.zlevel,
z: this.z, z: this.z,
draggable: false, draggable: false,
@ -29,20 +30,28 @@ export default class rotateTip extends Group {
image: this.getRotateColor(), image: this.getRotateColor(),
x: 0, x: 0,
y: 0, y: 0,
width: 68, width: this.model.width,
height: 60 height: this.model.width
} }
}); });
this.grouper.add(this.imageBg); const tipRect = this.tip.getBoundingRect();
this.tipBg = new Rect({
zlevel: model.zlevel,
z: model.z-1,
draggable: false,
shape: {
x: 0,
y: 0,
width: tipRect.width,
height: tipRect.height
},
style: {
fill: '#CE950F'
}
});
this.grouper.add(this.tip);
this.grouper.add(this.tipBg);
this.add(this.grouper); this.add(this.grouper);
this.transformScale();
}
/** 缩放按钮 */
transformScale() {
this.imageBg.origin = [0, 0];
this.imageBg.scale =[this.model.width/68, this.model.width/68];
this.imageBg.dirty();
} }
getRotateColor() { getRotateColor() {

View File

@ -59,10 +59,6 @@ export function parser(data) {
ibpDevice[elem.code] = deviceFactory(deviceType.Arrow, elem); ibpDevice[elem.code] = deviceFactory(deviceType.Arrow, elem);
}, this); }, this);
zrUtil.each(data.rotatingButtonList || [], elem => {
ibpDevice[elem.code] = deviceFactory(deviceType.RotatingButton, elem);
}, this);
zrUtil.each(data.tipBoxList || [], elem => { zrUtil.each(data.tipBoxList || [], elem => {
ibpDevice[elem.code] = deviceFactory(deviceType.TipBox, elem); ibpDevice[elem.code] = deviceFactory(deviceType.TipBox, elem);
}, this); }, this);
@ -104,7 +100,7 @@ function updateIbpListByDevice(ibp, name, device) {
if (list) { if (list) {
const index = list.findIndex(elem => { return elem.code == device.code; }); const index = list.findIndex(elem => { return elem.code == device.code; });
if (index >= 0) { if (index >= 0) {
list[index].dispose ? list.splice(index, 1) : list[index] = device; device._dispose ? list.splice(index, 1) : list[index] = device;
} else { } else {
list.push(device); list.push(device);
} }
@ -130,9 +126,6 @@ export function updateIbpData(device) {
case deviceType.Arrow : case deviceType.Arrow :
updateIbpListByDevice(ibpData, 'arrowList', device); updateIbpListByDevice(ibpData, 'arrowList', device);
break; break;
case deviceType.RotatingButton :
updateIbpListByDevice(ibpData, 'rotatingButtonList', device);
break;
case deviceType.TipBox : case deviceType.TipBox :
updateIbpListByDevice(ibpData, 'tipBoxList', device); updateIbpListByDevice(ibpData, 'tipBoxList', device);
break; break;

View File

@ -103,6 +103,22 @@ export function JLmapDriving(dom, data, skinCode) {
camera.aspect = window.innerWidth / window.innerHeight; camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix(); camera.updateProjectionMatrix();
let listener = new THREE.AudioListener();
listener.position.y = -2;
camera.add( listener );
let sound = new THREE.Audio( listener );
// load a sound and set it as the Audio object's buffer
let audioLoader = new THREE.AudioLoader();
audioLoader.load( '../../static/audio/trainmove.ogg', function( buffer ) {
sound.setBuffer( buffer );
sound.setLoop( true );
sound.setVolume( 0 );
sound.volswitch = false;
sound.play();
});
const controls3 = new MouseControls(camera, 1.6); const controls3 = new MouseControls(camera, 1.6);
controls3.enabled = true; controls3.enabled = true;
scene.add(controls3.getObject()); scene.add(controls3.getObject());
@ -113,10 +129,19 @@ export function JLmapDriving(dom, data, skinCode) {
cameracctv.rotation.y = Math.PI/5*3; cameracctv.rotation.y = Math.PI/5*3;
camera.add(cameracctv); camera.add(cameracctv);
// 订阅仿真socket // 订阅仿真socket
this.Subscribe = new Jl3dDriving(updatemmi); this.Subscribe = new Jl3dDriving(updatemmi,sound);
this.Subscribe.socketon(scope.Subscribe.topic); this.Subscribe.socketon(scope.Subscribe.topic);
var timer = setInterval(function() {
if(mapdata.trainlisttest.group){
if(mapdata.trainlisttest.group.children[0]){
updatemmi.updatedrivingcode(mapdata.trainlisttest.group.children[0].name);
scope.Subscribe.initdrivercode(mapdata.trainlisttest.group.children[0].name);
clearInterval(timer);
}
}
}, 1000);
// 初始化加载数据和模型 // 初始化加载数据和模型
getPublish3dMapDetail(skinCode).then(netdata => { getPublish3dMapDetail(skinCode).then(netdata => {
ModelLoad(data, scope, netdata.data, mapdata, camera, controls3, scene,mixers); ModelLoad(data, scope, netdata.data, mapdata, camera, controls3, scene,mixers);
@ -227,6 +252,7 @@ export function JLmapDriving(dom, data, skinCode) {
mixers = null; mixers = null;
scope.actions = null; scope.actions = null;
scope.Subscribe = null; scope.Subscribe = null;
sound.stop();
// console.log(scope); // console.log(scope);
// scope = null; // scope = null;
}; };
@ -295,6 +321,7 @@ export function JLmapDriving(dom, data, skinCode) {
// 窗口自适应 // 窗口自适应
window.addEventListener( 'resize', onWindowResized, false ); window.addEventListener( 'resize', onWindowResized, false );
sound.volswitch = true;
// controls.update(); // controls.update();
}; };
@ -304,6 +331,9 @@ export function JLmapDriving(dom, data, skinCode) {
document.getElementById('jlsimulation').removeEventListener( 'mousedown', onselect, false ); document.getElementById('jlsimulation').removeEventListener( 'mousedown', onselect, false );
// 窗口自适应 // 窗口自适应
window.removeEventListener( 'resize', onWindowResized, false ); window.removeEventListener( 'resize', onWindowResized, false );
sound.volswitch = false;
sound.setVolume( 0 );
}; };
this.updatecamera = function(mesh, type) { this.updatecamera = function(mesh, type) {

View File

@ -7,7 +7,7 @@ import { handleToken } from '@/utils/auth';
import router from '@/router'; import router from '@/router';
// 定于仿真socket接口 // 定于仿真socket接口
export function Jl3dDriving(updatemmi) { export function Jl3dDriving(updatemmi,sound) {
let scope = this; let scope = this;
this.map = null; this.map = null;
@ -55,6 +55,10 @@ export function Jl3dDriving(updatemmi) {
}; };
this.initdrivercode = function(code) {
drivingcode = code;
};
this.socketon = function(topic) { this.socketon = function(topic) {
try { try {
// console.log("teststomp"); // console.log("teststomp");
@ -102,6 +106,7 @@ export function Jl3dDriving(updatemmi) {
break; break;
case 'Simulation_Driver_Change': case 'Simulation_Driver_Change':
drivingcode = data.body.code; drivingcode = data.body.code;
sound.volswitch = true;
updatemmi.updatedrivingcode( data.body.code); updatemmi.updatedrivingcode( data.body.code);
break; break;
case 'SJL3D_TrainStatus': case 'SJL3D_TrainStatus':
@ -138,6 +143,7 @@ export function Jl3dDriving(updatemmi) {
} }
function trainspeed(data){ function trainspeed(data){
if (trainlisttest) { if (trainlisttest) {
for (let tl = 0; tl<data.body.length; tl++) { for (let tl = 0; tl<data.body.length; tl++) {
code = data.body[tl].id; code = data.body[tl].id;
@ -160,7 +166,8 @@ export function Jl3dDriving(updatemmi) {
// if (data.body[tl].v >0) { // if (data.body[tl].v >0) {
// updatemmi.updatenowspeed(data.body[tl].v); // updatemmi.updatenowspeed(data.body[tl].v);
// } else { // } else {
updatemmi.updatenowspeed(Math.abs(data.body[tl].v));
updatemmi.updatenowspeed(Math.abs(data.body[tl].v));
// } // }
} }
} }
@ -168,6 +175,10 @@ export function Jl3dDriving(updatemmi) {
if (code == drivingcode) { if (code == drivingcode) {
if(sound.volswitch == true){
sound.setVolume( data.body[tl].v/100 );
}
if (data.body[tl].atpv) { if (data.body[tl].atpv) {
updatemmi.updateatpspeed(data.body[tl].atpv); updatemmi.updateatpspeed(data.body[tl].atpv);
} else { } else {
@ -210,14 +221,14 @@ export function Jl3dDriving(updatemmi) {
} else { } else {
syncdata.percent = sectionlist.sections.datalist[data.body[i].sectionCode].lstop/trainlisttest.list[code].len; syncdata.percent = sectionlist.sections.datalist[data.body[i].sectionCode].lstop/trainlisttest.list[code].len;
} }
//scope.teststomp.send('/app/topic/simulation/wgu3d', syncdata); //scope.teststomp.send('/app/topic/simulation/client/drive', syncdata);
} else { } else {
if (data.body[i].directionType == '02') { if (data.body[i].directionType == '02') {
syncdata.percent = trainlisttest.list[code].progress; syncdata.percent = trainlisttest.list[code].progress;
} else { } else {
syncdata.percent = 1 - trainlisttest.list[code].progress; syncdata.percent = 1 - trainlisttest.list[code].progress;
} }
//scope.teststomp.send('/app/topic/simulation/wgu3d', syncdata); //scope.teststomp.send('/app/topic/simulation/client/drive', syncdata);
} }
if (data.body[i].parkRemainTime>0) { if (data.body[i].parkRemainTime>0) {
@ -326,25 +337,18 @@ export function Jl3dDriving(updatemmi) {
} }
if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x>sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) { if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x>sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) {
vexlist.push(new THREE.Vector3(rotaposx, 0, rotaposz));
for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) { for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) {
if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x>rotaposx) { vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
}
} }
} else { } else {
vexlist.push(new THREE.Vector3(rotaposx, 0, rotaposz));
for (let m=0; m<sectionlist.sections.datalist[data.body[i].sectionCode].rail.length; m++) { for (let m=0; m<sectionlist.sections.datalist[data.body[i].sectionCode].rail.length; m++) {
if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x>rotaposx) { vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
}
} }
} }
trainlisttest.list[code].status = '02'; trainlisttest.list[code].status = '02';
trainlisttest.list[code].progress = data.body[i].sectionOffsetPercent;
} else if (data.body[i].directionType == '03') { // 向左 } else if (data.body[i].directionType == '03') { // 向左
trainlisttest.list[code].dispose = false; trainlisttest.list[code].dispose = false;
trainlisttest.group.add(trainlisttest.list[code]); trainlisttest.group.add(trainlisttest.list[code]);
let offset = null; let offset = null;
@ -369,26 +373,21 @@ export function Jl3dDriving(updatemmi) {
trainlisttest.list[code].children[tl].position.z = -rotaposz; trainlisttest.list[code].children[tl].position.z = -rotaposz;
} }
if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x<sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) { if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x<sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) {
vexlist.push(new THREE.Vector3(rotaposx, 0, rotaposz));
for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) { for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) {
if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x<rotaposx) { vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
}
} }
} else { } else {
vexlist.push(new THREE.Vector3(rotaposx, 0, rotaposz));
for (let m=0; m<sectionlist.sections.datalist[data.body[i].sectionCode].rail.length; m++) { for (let m=0; m<sectionlist.sections.datalist[data.body[i].sectionCode].rail.length; m++) {
if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x<rotaposx) { vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
}
} }
} }
trainlisttest.list[code].status = '03'; trainlisttest.list[code].status = '03';
trainlisttest.list[code].progress = 1-data.body[i].sectionOffsetPercent;
} }
trainlisttest.list[code].curve = new THREE.CatmullRomCurve3(vexlist); trainlisttest.list[code].curve = new THREE.CatmullRomCurve3(vexlist);
trainlisttest.list[code].isStandTrack = sectionlist.sections.datalist[data.body[i].sectionCode].isStandTrack; trainlisttest.list[code].isStandTrack = sectionlist.sections.datalist[data.body[i].sectionCode].isStandTrack;
trainlisttest.list[code].progress = 0;
trainlisttest.list[code].len = sectionlist.sections.datalist[data.body[i].sectionCode].distance; trainlisttest.list[code].len = sectionlist.sections.datalist[data.body[i].sectionCode].distance;
@ -418,23 +417,24 @@ export function Jl3dDriving(updatemmi) {
if (sectionlist.sections.datalist[data.body[i].sectionCode].code) { if (sectionlist.sections.datalist[data.body[i].sectionCode].code) {
if (driverswitch == '02' && code == drivingcode) { if (driverswitch == '02' && code == drivingcode) {
// updatemmi.updatenowspeed(data.body[i].speed); updatemmi.updatenowspeed(data.body[i].speed);
// if (data.body[i].atpSpeed) { if (data.body[i].atpSpeed) {
// updatemmi.updateatpspeed(data.body[i].atpSpeed); updatemmi.updateatpspeed(data.body[i].atpSpeed);
// } else { } else {
// updatemmi.updateatpspeed(-1); updatemmi.updateatpspeed(-1);
// } }
// if (data.body[i].targetSpeed) { if (data.body[i].targetSpeed) {
// updatemmi.updateatospeed(data.body[i].targetSpeed); updatemmi.updateatospeed(data.body[i].targetSpeed);
// } else { } else {
// updatemmi.updateatospeed(-1); updatemmi.updateatospeed(-1);
// } }
if (data.body[i].maLen) { if (data.body[i].maLen) {
updatemmi.updatenowlen(data.body[i].maLen); updatemmi.updatenowlen(data.body[i].maLen);
} else { } else {
updatemmi.updatenowlen(0); updatemmi.updatenowlen(0);
} }
} }
if (driverswitch == '05' && code == drivingcode) { if (driverswitch == '05' && code == drivingcode) {
if (data.body[i].maLen) { if (data.body[i].maLen) {
updatemmi.updatenowlen(data.body[i].maLen); updatemmi.updatenowlen(data.body[i].maLen);
@ -443,16 +443,16 @@ export function Jl3dDriving(updatemmi) {
} }
} }
if (trainlisttest.list[code].nowcode != data.body[i].sectionCode || trainlisttest.list[code].nextcode != data.body[i].nextSectionCode) {
if (trainlisttest.list[code].nowcode != data.body[i].sectionCode) {
trainlisttest.list[code].nowcode = data.body[i].sectionCode; trainlisttest.list[code].nowcode = data.body[i].sectionCode;
trainlisttest.list[code].nextcode = data.body[i].nextSectionCode; trainlisttest.list[code].nextcode = data.body[i].nextSectionCode;
let vexlist = []; const vexlist = [];
let endrotation = null; const endrotation = null;
if (data.body[i].directionType == '02') { // 向右 if (data.body[i].directionType == '02') { // 向右
//转向
if (trainlisttest.list[code].status != data.body[i].directionType) { if (trainlisttest.list[code].status != data.body[i].directionType) {
let rotaposx = trainlisttest.list[code].children[5].matrixWorld.elements[12]; const rotaposx = trainlisttest.list[code].children[5].matrixWorld.elements[12];
let rotaposz = trainlisttest.list[code].children[0].matrixWorld.elements[14]; const rotaposz = trainlisttest.list[code].children[0].matrixWorld.elements[14];
trainlisttest.list[code].rotation.y = 0; trainlisttest.list[code].rotation.y = 0;
trainlisttest.list[code].position.x = rotaposx; trainlisttest.list[code].position.x = rotaposx;
for (let tl=0; tl<6; tl++) { for (let tl=0; tl<6; tl++) {
@ -474,23 +474,42 @@ export function Jl3dDriving(updatemmi) {
} }
} }
} else { } else {
if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x>sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) { if(data.body[i].speed > 0){
for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) { if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x>sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) {
vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) {
vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
}
} else {
for (let m=0; m<sectionlist.sections.datalist[data.body[i].sectionCode].rail.length; m++) {
vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
}
} }
} else { }else if(data.body[i].speed < 0){
for (let m=0; m<sectionlist.sections.datalist[data.body[i].sectionCode].rail.length; m++) { if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x<sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) {
vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); for (let m=0; m<sectionlist.sections.datalist[data.body[i].sectionCode].rail.length; m++) {
if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x<trainlisttest.list[code].position.x) {
vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
}
}
vexlist.push(new THREE.Vector3(trainlisttest.list[code].position.x, 0, trainlisttest.list[code].children[0].matrixWorld.elements[14]));
} else {
for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) {
if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x<trainlisttest.list[code].position.x) {
vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
}
}
vexlist.push(new THREE.Vector3(trainlisttest.list[code].position.x, 0, trainlisttest.list[code].children[0].matrixWorld.elements[14]));
} }
} }
trainlisttest.list[code].rotation.y = 0; trainlisttest.list[code].rotation.y = 0;
} }
trainlisttest.list[code].status = '02'; trainlisttest.list[code].status = '02';
} else if (data.body[i].directionType == '03') { // 向左 } else if (data.body[i].directionType == '03') { // 向左
//转向
if (trainlisttest.list[code].status != data.body[i].directionType) { if (trainlisttest.list[code].status != data.body[i].directionType) {
let rotaposx = trainlisttest.list[code].children[5].matrixWorld.elements[12]; const rotaposx = trainlisttest.list[code].children[5].matrixWorld.elements[12];
let rotaposz = Math.abs(trainlisttest.list[code].children[0].matrixWorld.elements[14]); const rotaposz = Math.abs(trainlisttest.list[code].children[0].matrixWorld.elements[14]);
trainlisttest.list[code].rotation.y = Math.PI; trainlisttest.list[code].rotation.y = Math.PI;
trainlisttest.list[code].position.x = rotaposx; trainlisttest.list[code].position.x = rotaposx;
for (let tl=0; tl<6; tl++) { for (let tl=0; tl<6; tl++) {
@ -512,16 +531,36 @@ export function Jl3dDriving(updatemmi) {
} }
} }
} else { } else {
if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x<sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) { if(data.body[i].speed > 0){
for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) { if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x<sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) {
vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) {
} vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
}
} else { } else {
for (let m=0; m<sectionlist.sections.datalist[data.body[i].sectionCode].rail.length; m++) { for (let m=0; m<sectionlist.sections.datalist[data.body[i].sectionCode].rail.length; m++) {
vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]); vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
}
}
}else if(data.body[i].speed < 0){
if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[0].x<sectionlist.sections.datalist[data.body[i].sectionCode].rail[1].x) {
for (let m=sectionlist.sections.datalist[data.body[i].sectionCode].rail.length-1; m>=0; m--) {
if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x>trainlisttest.list[code].position.x) {
vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
}
}
vexlist.push(new THREE.Vector3(trainlisttest.list[code].position.x, 0, trainlisttest.list[code].children[0].matrixWorld.elements[14]));
} else {
for (let m=0; m<sectionlist.sections.datalist[data.body[i].sectionCode].rail.length; m++) {
if (sectionlist.sections.datalist[data.body[i].sectionCode].rail[m].x>trainlisttest.list[code].position.x) {
vexlist.push(sectionlist.sections.datalist[data.body[i].sectionCode].rail[m]);
}
}
vexlist.push(new THREE.Vector3(trainlisttest.list[code].position.x, 0, trainlisttest.list[code].children[0].matrixWorld.elements[14]));
} }
} }
trainlisttest.list[code].rotation.y = Math.PI; trainlisttest.list[code].rotation.y = Math.PI;
} }
trainlisttest.list[code].status = '03'; trainlisttest.list[code].status = '03';
@ -529,8 +568,13 @@ export function Jl3dDriving(updatemmi) {
trainlisttest.list[code].curve = new THREE.CatmullRomCurve3(vexlist); trainlisttest.list[code].curve = new THREE.CatmullRomCurve3(vexlist);
trainlisttest.list[code].isStandTrack = sectionlist.sections.datalist[data.body[i].sectionCode].isStandTrack; trainlisttest.list[code].isStandTrack = sectionlist.sections.datalist[data.body[i].sectionCode].isStandTrack;
trainlisttest.list[code].len = sectionlist.sections.datalist[data.body[i].sectionCode].distance; trainlisttest.list[code].len = sectionlist.sections.datalist[data.body[i].sectionCode].distance;
trainlisttest.list[code].progress = 0;
trainlisttest.list[code].speed = data.body[i].speed; trainlisttest.list[code].speed = data.body[i].speed;
if(data.body[i].speed>0){
trainlisttest.list[code].progress = 0;
}else if(data.body[i].speed<0){
trainlisttest.list[code].progress = 0.999;
}
trainlisttest.list[code].speeds = parseFloat(data.body[i].speed*10/36/20/trainlisttest.list[code].len); trainlisttest.list[code].speeds = parseFloat(data.body[i].speed*10/36/20/trainlisttest.list[code].len);
} }

View File

@ -165,14 +165,14 @@ export function Jlmap3dSubscribe(jlmap3d) {
} else { } else {
syncdata.percent = sectionlist.sections.datalist[data.body[i].sectionCode].lstop/trainlisttest.list[code].len; syncdata.percent = sectionlist.sections.datalist[data.body[i].sectionCode].lstop/trainlisttest.list[code].len;
} }
scope.teststomp.send('/app/topic/simulation/wgu3d', syncdata); scope.teststomp.send('/app/topic/simulation/client/drive', syncdata);
} else { } else {
if (data.body[i].directionType == '02') { if (data.body[i].directionType == '02') {
syncdata.percent = trainlisttest.list[code].progress; syncdata.percent = trainlisttest.list[code].progress;
} else { } else {
syncdata.percent = 1 - trainlisttest.list[code].progress; syncdata.percent = 1 - trainlisttest.list[code].progress;
} }
scope.teststomp.send('/app/topic/simulation/wgu3d', syncdata); scope.teststomp.send('/app/topic/simulation/client/drive', syncdata);
} }
if (data.body[i].parkRemainTime>0) { if (data.body[i].parkRemainTime>0) {

View File

@ -28,7 +28,7 @@ class SkinCode extends defaultStyle {
}, },
logicText: { // 逻辑区段名称 logicText: { // 逻辑区段名称
show: false, // 逻辑区段名称显示 show: false, // 逻辑区段名称显示
position: -1, // 区段名称位置 1 上面 -1 下面 0 对称 position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
distance: 11, // 文字离区段距离 distance: 11, // 文字离区段距离
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细 fontWeight: 'normal', // 字体粗细
@ -40,7 +40,7 @@ class SkinCode extends defaultStyle {
standText: { // 站台轨名称 standText: { // 站台轨名称
show: true, // 站台轨名称显示 show: true, // 站台轨名称显示
opposite: true, // 对称相反 opposite: true, // 对称相反
position: 1, // 区段名称位置 1 上面 -1 下面 0 对称 position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
distance: 11, // 文字离区段距离 distance: 11, // 文字离区段距离
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细 fontWeight: 'normal', // 字体粗细
@ -52,7 +52,7 @@ class SkinCode extends defaultStyle {
reentryText: { // 折返轨名称 reentryText: { // 折返轨名称
show: true, // 折返轨名称显示 show: true, // 折返轨名称显示
opposite: true, // 对称相反 opposite: true, // 对称相反
position: 1, // 区段名称位置 1 上面 -1 下面 0 对称 position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
distance: 11, // 文字离区段距离 distance: 11, // 文字离区段距离
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细 fontWeight: 'normal', // 字体粗细
@ -64,7 +64,7 @@ class SkinCode extends defaultStyle {
transferText: { // 转换轨名称 transferText: { // 转换轨名称
show: true, // 转换轨名称显示 show: true, // 转换轨名称显示
opposite: true, // 对称相反 opposite: true, // 对称相反
position: 1, // 区段名称位置 1 上面 -1 下面 0 对称 position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
distance: 11, // 文字离区段距离 distance: 11, // 文字离区段距离
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'normal', // 字体粗细 fontWeight: 'normal', // 字体粗细
@ -75,7 +75,7 @@ class SkinCode extends defaultStyle {
}, },
destinationText: { // 目的码名称 destinationText: { // 目的码名称
show: true, // 目的码名称显示 show: true, // 目的码名称显示
position: 1, // 区段名称位置 1 上面 -1 下面 0 对称 position: 0, // 区段名称位置 1 上面 -1 下面 0 对称
distance: 11, // 文字离区段距离 distance: 11, // 文字离区段距离
fontSize: 11, // 字体大小 fontSize: 11, // 字体大小
fontWeight: 'bold', // 字体粗细 fontWeight: 'bold', // 字体粗细

View File

@ -85,10 +85,13 @@ deviceState[deviceType.Signal] = {
status: { status: {
Default: '01', /** 关闭(缺省值)*/ Default: '01', /** 关闭(缺省值)*/
State01: '01', /** 关闭 */ State01: '01', /** 关闭 */
State02: '02', /** 开放 */ State02: '02', /** 开放正向 */
State03: '03', /** 引导 */ State03: '03', /** 开放侧向 */
State04: '04', /** 封锁 */ State04: '04', /** 引导 */
State05: '05' /** 故障 */ State05: '05', /** 封锁 */
State06: '06', /** 故障 */
State07: '07', /** 功能封锁 */
State08: '08' /** 信号保护区段监视 */
}, },
/** 信号机状态类型 */ /** 信号机状态类型 */
lightType: { lightType: {

View File

@ -8,6 +8,7 @@ import deviceState from './constant/deviceState';
import deviceType from './constant/deviceType'; import deviceType from './constant/deviceType';
import { selectSkinCode } from './config/deviceStyle'; import { selectSkinCode } from './config/deviceStyle';
import { deviceFactory, createBoundingRect, calculateDCenter } from './utils/parser'; import { deviceFactory, createBoundingRect, calculateDCenter } from './utils/parser';
import { deepAssign } from '@/utils/index';
const renderer = 'canvas'; const renderer = 'canvas';
const devicePixelRatio = 1; const devicePixelRatio = 1;
@ -40,9 +41,9 @@ class Jlmap {
const width = opts.dom.clientWidth; const width = opts.dom.clientWidth;
const height = opts.dom.clientHeight; const height = opts.dom.clientHeight;
this.$zr = zrender.init(opts.dom, Object.assign({ renderer, devicePixelRatio, width, height }, opts.config)); this.$zr = zrender.init(opts.dom, deepAssign({ renderer, devicePixelRatio, width, height }, opts.config));
this.$options = new Options(Object.assign({ scaleRate: 1, offsetX: 0, offsetY: 0 }, opts.options || {}), (dataZoom) => { this.$mouseController.trigger(this.events.DataZoom, dataZoom); }); // 缩放 this.$options = new Options(deepAssign({ scaleRate: 1, offsetX: 0, offsetY: 0 }, opts.options || {}), (dataZoom) => { this.$mouseController.trigger(this.events.DataZoom, dataZoom); }); // 缩放
this.$painter = new Painter(this); this.$painter = new Painter(this);
this.$painter.updateZrSize({width: this.$zr.getWidth(), height: this.$zr.getHeight()}); this.$painter.updateZrSize({width: this.$zr.getWidth(), height: this.$zr.getHeight()});
this.$painter.updateTransform(this.$options); this.$painter.updateTransform(this.$options);
@ -152,7 +153,7 @@ class Jlmap {
const code = elem.code; const code = elem.code;
const type = elem._type; const type = elem._type;
const oDevice = this.mapDevice[code] || deviceFactory(type, elem); const oDevice = this.mapDevice[code] || deviceFactory(type, elem);
const nDevice = Object.assign(oDevice || {}, elem); const nDevice = deepAssign(oDevice || {}, elem);
this.$painter.delete(oDevice); this.$painter.delete(oDevice);
delete this.mapDevice[code]; delete this.mapDevice[code];
if (!elem._dispose) { if (!elem._dispose) {
@ -180,7 +181,7 @@ class Jlmap {
for (var prop in elem) { for (var prop in elem) {
if (elem[prop] != oDevice[prop]) { if (elem[prop] != oDevice[prop]) {
Object.assign(oDevice, elem); deepAssign(oDevice, elem);
return true; return true;
} }
} }

View File

@ -33,7 +33,7 @@ class Signal extends Group {
create() { create() {
const model = this.model; const model = this.model;
const style = this.style; 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; // 位置 上:下 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 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 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'; const textVerticalAlign = posit == 1 ? 'top' : 'bottom';
this.sigName = new ESigName({ this.sigName = new ESigName({
zlevel: this.zlevel, zlevel: this.zlevel,
@ -230,9 +230,9 @@ class Signal extends Group {
} }
} }
// 开放 /* count 1单灯 2双灯 lightType 01物理点灯 02逻辑点灯*/
open() { openPositive() {
if (this.count == 2 && this.model.lightType == '01' && this.model.switchLocateType == '01') { // 双灯 物理点灯 道岔定位 if (this.count == 2 && this.model.lightType == '01') {
if (this.lamps[0]) { if (this.lamps[0]) {
this.lamps[0].setStop(false); this.lamps[0].setStop(false);
this.lamps[0].setColor(this.style.Signal.lamp.greenColor); this.lamps[0].setColor(this.style.Signal.lamp.greenColor);
@ -241,7 +241,7 @@ class Signal extends Group {
this.lamps[1].setStop(false); this.lamps[1].setStop(false);
this.lamps[1].setColor(this.style.backgroundColor); this.lamps[1].setColor(this.style.backgroundColor);
} }
} else if (this.count == 2 && this.model.lightType == '02' && this.model.switchLocateType == '01') { // 双灯 逻辑点灯 道岔定位 } else if (this.count == 2 && this.model.lightType == '02') {
if (this.lamps[0]) { if (this.lamps[0]) {
this.lamps[0].setStop(true); this.lamps[0].setStop(true);
this.lamps[0].setColor(this.style.Signal.lamp.greenColor); this.lamps[0].setColor(this.style.Signal.lamp.greenColor);
@ -250,7 +250,21 @@ class Signal extends Group {
this.lamps[1].setStop(true); this.lamps[1].setStop(true);
this.lamps[1].setColor(this.style.backgroundColor); this.lamps[1].setColor(this.style.backgroundColor);
} }
} else if (this.count == 2 && this.model.lightType == '01' && this.model.switchLocateType == '02') { // 双灯 物理点灯 道岔反位 } else if (this.count == 1 && this.model.lightType == '01') {
if (this.lamps[0]) {
this.lamps[0].setStop(false);
this.lamps[0].setColor(this.style.Signal.lamp.greenColor);
}
} else if (this.count == 1 && this.model.lightType == '02') {
if (this.lamps[0]) {
this.lamps[0].setStop(true);
this.lamps[0].setColor(this.style.Signal.lamp.greenColor);
}
}
}
/* count 1单灯 2双灯 lightType 01物理点灯 02逻辑点灯*/
openLateral() {
if (this.count == 2 && this.model.lightType == '01') {
if (this.lamps[0]) { if (this.lamps[0]) {
this.lamps[0].setStop(false); this.lamps[0].setStop(false);
this.lamps[0].setColor(this.style.backgroundColor); this.lamps[0].setColor(this.style.backgroundColor);
@ -259,7 +273,7 @@ class Signal extends Group {
this.lamps[1].setStop(false); this.lamps[1].setStop(false);
this.lamps[1].setColor(this.style.Signal.lamp.yellowColor); this.lamps[1].setColor(this.style.Signal.lamp.yellowColor);
} }
} else if (this.count == 2 && this.model.lightType == '02' && this.model.switchLocateType == '02') { // 双灯 逻辑点灯 道岔反位 } else if (this.count == 2 && this.model.lightType == '02') {
if (this.lamps[0]) { if (this.lamps[0]) {
this.lamps[0].setStop(true); this.lamps[0].setStop(true);
this.lamps[0].setColor(this.style.backgroundColor); this.lamps[0].setColor(this.style.backgroundColor);
@ -268,7 +282,7 @@ class Signal extends Group {
this.lamps[1].setStop(true); this.lamps[1].setStop(true);
this.lamps[1].setColor(this.style.Signal.lamp.yellowColor); this.lamps[1].setColor(this.style.Signal.lamp.yellowColor);
} }
} else if (this.count == 1 && this.model.lightType == '01' && this.model.switchLocateType == '02') { // 单灯 物理点灯 允许调车 } else if (this.count == 1 && this.model.lightType == '01') {
if (this.lamps[0]) { if (this.lamps[0]) {
this.lamps[0].setStop(false); this.lamps[0].setStop(false);
// 出站信号机/阻隔信号机 // 出站信号机/阻隔信号机
@ -278,24 +292,13 @@ class Signal extends Group {
this.lamps[0].setColor(this.style.Signal.lamp.whiteColor); this.lamps[0].setColor(this.style.Signal.lamp.whiteColor);
} }
} }
} else if (this.count == 1 && this.model.lightType == '01' && this.model.switchLocateType == '01') { } else if (this.count == 1 && this.model.lightType == '02') {
if (this.lamps[0]) {
this.lamps[0].setStop(false);
this.lamps[0].setColor(this.style.Signal.lamp.greenColor);
}
} else if (this.count == 1 && this.model.lightType == '02' && this.model.switchLocateType == '02') {
if (this.lamps[0]) {
this.lamps[0].setStop(true);
this.lamps[0].setColor(this.style.Signal.lamp.greenColor);
}
} else if (this.count == 1 && this.model.lightType == '02' && this.model.switchLocateType == '01' ) {
if (this.lamps[0]) { if (this.lamps[0]) {
this.lamps[0].setStop(true); this.lamps[0].setStop(true);
this.lamps[0].setColor(this.style.Signal.lamp.greenColor); this.lamps[0].setColor(this.style.Signal.lamp.greenColor);
} }
} }
} }
// 列车进路 // 列车进路
trainRoute() { trainRoute() {
if (this.count == 1) { if (this.count == 1) {
@ -437,12 +440,13 @@ class Signal extends Group {
/** 设置状态 (点灯类型)*/ /** 设置状态 (点灯类型)*/
switch (model.status) { switch (model.status) {
case '01': this.close(); break; // 关闭 case '01': this.close(); break; // 关闭
case '02': this.open(); break; // 开放 case '02': this.openPositive(); break; // 开放正向
case '03': this.guid(); break; // 引导 case '03': this.openLateral(); break; // 开放侧向
case '04': this.block(); break; // 封锁 case '04': this.guid(); break; // 引导
case '05': this.fault(); break; // 故障 case '05': this.block(); break; // 封锁
case '06': this.block(); break; // 功能封锁 case '06': this.fault(); break; // 故障
case '07': this.signalCheck(); break; // 信号保护区段检测 case '07': this.block(); break; // 功能封锁
case '08': this.signalCheck(); break; // 信号保护区段检测
} }
/** 进路性质类型*/ /** 进路性质类型*/
@ -488,7 +492,7 @@ class Signal extends Group {
getShapeTipPoint(opts) { getShapeTipPoint(opts) {
var rect = new BoundingRect(0, 0, 0, 0); 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; // 位置 上:下 var offsetY = this.model.positionType == '01' ? this.style.Signal.text.fontSize : 0; // 位置 上:下
if (opts.val == '1' || opts.val == '2') { if (opts.val == '1' || opts.val == '2') {
rect = this.sigButton.getBoundingRect(); rect = this.sigButton.getBoundingRect();

View File

@ -55,8 +55,8 @@ export default {
watch: { watch: {
'$store.state.menuOperation.buttonOperation': function (val, old) { '$store.state.menuOperation.buttonOperation': function (val, old) {
if (!this.isScreen && this.menu && this.menu.length > 1) { if (!this.isScreen && this.menu && this.menu.length > 1) {
// this.menu[0].disabled = (this.menu[0] && val) ? true : true; this.menu[0].disabled = true;
// this.menu[1].disabled = !((this.menu[1] && val)); this.menu[1].disabled = !((this.menu[1] && val));
} }
}, },
'$store.state.menuOperation.menuCount': function (val) { '$store.state.menuOperation.menuCount': function (val) {
@ -76,39 +76,40 @@ export default {
}, },
initMenu() { initMenu() {
this.menuNormal = []; this.menuNormal = [];
this.stationList.forEach(station => { // this.stationList.forEach(station => {
if (station.centralized) { // if (station.code === station.concentrateStationCode) {
const node = { // let node = {
label: station.name, // label: station.name,
children: [] // children: []
}; // }
//
this.stationList.forEach(elem => { // this.stationList.forEach(elem => {
if (elem.visible) { // if (elem.visible) {
let next = elem; // let next = elem;
while (!next.centralized) { // while (next.code != next.concentrateStationCode || !next.concentrateStationCode) {
next = this.$store.getters['map/getDeviceByCode'](next.concentrateStationCode); // next = this.$store.getters['map/getDeviceByCode'](next.concentrateStationCode);
} // }
//
if (station.code == next.code) { // if (station.code == next.code) {
node.children.push({ // node.children.push({
code: elem.code, // code: elem.code,
label: elem.name, // label: elem.name,
handler: this.mapLocation // handler: this.mapLocation,
}); // });
} // }
} // }
}); // })
//
this.menuNormal.push(node); // this.menuNormal.push(node);
} // }
}); // });
if (this.isScreen) { if (this.isScreen) {
this.menu = [...this.menuScreen]; this.menu = [...this.menuScreen];
} else {
this.menu = [...this.menuNormal];
} }
// else {
// this.menu = [...this.menuNormal];
// }
}, },
doShow(point) { doShow(point) {
this.clickEvent(); this.clickEvent();

View File

@ -98,14 +98,14 @@ export const MenuDisabledState = {
// 信号封闭 // 信号封闭
lock() { lock() {
const device = getCurrentStateObject(); const device = getCurrentStateObject();
if (device && device.status == deviceState.Signal.status.State04) { if (device && device.status == deviceState.Signal.status.State05) {
return true; return true;
} }
}, },
// 信号解封 // 信号解封
unlock() { unlock() {
const device = getCurrentStateObject(); const device = getCurrentStateObject();
if (device && device.status != deviceState.Signal.status.State04) { if (device && device.status != deviceState.Signal.status.State05) {
return true; return true;
} }
}, },

View File

@ -90,14 +90,14 @@ export const MenuDisabledState = {
// 信号封闭 // 信号封闭
lock() { lock() {
const device = getCurrentStateObject(); const device = getCurrentStateObject();
if (device && device.status == deviceState.Signal.status.State04) { if (device && device.status == deviceState.Signal.status.State05) {
return true; return true;
} }
}, },
// 信号解封 // 信号解封
unlock() { unlock() {
const device = getCurrentStateObject(); const device = getCurrentStateObject();
if (device && device.status != deviceState.Signal.status.State04) { if (device && device.status != deviceState.Signal.status.State05) {
return true; return true;
} }
}, },

View File

@ -90,14 +90,14 @@ export const MenuDisabledState = {
// 信号封闭 // 信号封闭
lock() { lock() {
const device = getCurrentStateObject(); const device = getCurrentStateObject();
if (device && device.status == deviceState.Signal.status.State04) { if (device && device.status == deviceState.Signal.status.State05) {
return true; return true;
} }
}, },
// 信号解封 // 信号解封
unlock() { unlock() {
const device = getCurrentStateObject(); const device = getCurrentStateObject();
if (device && device.status != deviceState.Signal.status.State04) { if (device && device.status != deviceState.Signal.status.State05) {
return true; return true;
} }
}, },

View File

@ -90,14 +90,14 @@ export const MenuDisabledState = {
// 信号封闭 // 信号封闭
lock() { lock() {
const device = getCurrentStateObject(); const device = getCurrentStateObject();
if (device && device.status == deviceState.Signal.status.State04) { if (device && device.status == deviceState.Signal.status.State05) {
return true; return true;
} }
}, },
// 信号解封 // 信号解封
unlock() { unlock() {
const device = getCurrentStateObject(); const device = getCurrentStateObject();
if (device && device.status != deviceState.Signal.status.State04) { if (device && device.status != deviceState.Signal.status.State05) {
return true; return true;
} }
}, },

View File

@ -8,7 +8,7 @@
</div> </div>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="8"> <el-col :span="10" :offset="8">
<el-button :id="domIdSure" type="primary" @click="commit">确定</el-button> <el-button :id="domIdSure" type="primary" @click="commit">{{$t('global.confirm')}}</el-button>
</el-col> </el-col>
</el-row> </el-row>
</span> </span>
@ -23,7 +23,7 @@
data() { data() {
return { return {
dialogShow: false, dialogShow: false,
messages: ['命令下达失败'], messages: [this.$t('tip.commandFailed')],
operate: null operate: null
} }
}, },
@ -32,7 +32,7 @@
return this.dialogShow && !this.$store.state.menuOperation.break; return this.dialogShow && !this.$store.state.menuOperation.break;
}, },
title() { title() {
return '提示'; return this.$t('tip.hint');
}, },
domIdSure() { domIdSure() {
return this.dialogShow ? OperationEvent.Command.close.notice.domId : ''; return this.dialogShow ? OperationEvent.Command.close.notice.domId : '';
@ -47,7 +47,7 @@
doShow(operate, messages) { doShow(operate, messages) {
this.operate = operate || {}; this.operate = operate || {};
this.dialogShow = true; this.dialogShow = true;
this.messages = ['命令下达失败']; this.messages = [this.$t('tip.commandFailed')];
if (messages) { if (messages) {
this.messages = messages; this.messages = messages;
} }
@ -74,4 +74,4 @@
padding-bottom: 40px !important; padding-bottom: 40px !important;
border: 1px solid lightgray; border: 1px solid lightgray;
} }
</style> </style>

View File

@ -8,10 +8,10 @@
</div> </div>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <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>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
<notice-info ref="noticeInfo"></notice-info> <notice-info ref="noticeInfo"></notice-info>
@ -42,23 +42,23 @@
}, },
title() { title() {
if (this.operation === OperationEvent.Signal.arrangementRoute.menu.operation) { if (this.operation === OperationEvent.Signal.arrangementRoute.menu.operation) {
return '进路设置'; return this.$t('menu.accessSetting');
} else if (this.operation === OperationEvent.Signal.signalClose.menu.operation) { } 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) { } else if (this.operation === OperationEvent.Signal.reopenSignal.menu.operation) {
return '信号重开'; return this.$t('menu.menuSignal.signalReopen');
} else if (this.operation === OperationEvent.Signal.cancelTrainRoute.menu.operation) { } else if (this.operation === OperationEvent.Signal.cancelTrainRoute.menu.operation) {
return '取消进路'; return this.$t('menu.cancelTheWay');
} else if (this.operation === OperationEvent.Signal.humanControl.menu.operation) { } else if (this.operation === OperationEvent.Signal.humanControl.menu.operation) {
return '进路交人工控'; return this.$t('menu.approachManualControl');
} else if (this.operation === OperationEvent.Signal.atsAutoControl.menu.operation) { } else if (this.operation === OperationEvent.Signal.atsAutoControl.menu.operation) {
return '进路交ATS自动控' return this.$t('menu.accessToATSAutomaticControl');
} else if (this.operation === OperationEvent.StationStand.setRunLevel.menu.operation) { } else if (this.operation === OperationEvent.StationStand.setRunLevel.menu.operation) {
return '设置运行等级'; return this.$t('menu.menuStationStand.setRunLevel');
} else if (this.operation === OperationEvent.StationStand.setStopTime.menu.operation) { } else if (this.operation === OperationEvent.StationStand.setStopTime.menu.operation) {
return '停站时间'; return this.$t('menu.stopTime');
} else if (this.operation === OperationEvent.StationStand.setBackStrategy.menu.operation) { } else if (this.operation === OperationEvent.StationStand.setBackStrategy.menu.operation) {
return '设置折返策略'; return this.$t('menu.setSwitchbackStrategy');
} }
}, },
domIdCancel() { domIdCancel() {
@ -357,4 +357,4 @@
padding-bottom: 40px !important; padding-bottom: 40px !important;
border: 1px solid lightgray; border: 1px solid lightgray;
} }
</style> </style>

View File

@ -6,10 +6,10 @@
</div> </div>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="6" :offset="6"> <el-col :span="6" :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('global.confirm')}}</el-button>
</el-col> </el-col>
<el-col :span="10" :offset="2"> <el-col :span="10" :offset="2">
<el-button :id="domIdCancel" @click="cancel"> </el-button> <el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-dialog> </el-dialog>
@ -36,13 +36,13 @@
title() { title() {
if (this.dialogShow) { if (this.dialogShow) {
if (this.operation === OperationEvent.Section.setSpeed.order.operation) { if (this.operation === OperationEvent.Section.setSpeed.order.operation) {
return "区段设置限速"; return this.$t('menu.menuSection.sectionSetSpeedLimit');
} else if (this.operation === OperationEvent.Section.cancelSpeed.order.operation) { } else if (this.operation === OperationEvent.Section.cancelSpeed.order.operation) {
return "区段取消限速"; return this.$t('menu.menuSection.sectionCancelSpeedLimit');
} else if (this.operation === OperationEvent.Switch.setSpeed.order.operation) { } else if (this.operation === OperationEvent.Switch.setSpeed.order.operation) {
return "道岔设置限速"; return this.$t('menu.switchSettingSpeedLimit');
} else if (this.operation === OperationEvent.Switch.cancelSpeed.order.operation) { } else if (this.operation === OperationEvent.Switch.cancelSpeed.order.operation) {
return "道岔取消限速"; return this.$t('menu.menuSection.sectionCancelSpeedLimit');
} }
} }
}, },
@ -150,4 +150,4 @@
padding-bottom: 40px !important; padding-bottom: 40px !important;
border: 1px solid lightgray; border: 1px solid lightgray;
} }
</style> </style>

View File

@ -2,14 +2,14 @@
<el-dialog class="fuzhou-01__systerm route-unlock-confirm" :title="title" :visible.sync="show" width="500px" <el-dialog class="fuzhou-01__systerm route-unlock-confirm" :title="title" :visible.sync="show" width="500px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag> :before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag>
<div style="height: 60px; padding-left: 20px"> <div style="height: 60px; padding-left: 20px">
<span>{{stationName}}{{signalName}}信号机信号解锁确认下达吗</span> <span>{{$t('menu.in')}}{{stationName}}{{signalName}}{{$t('menu.signalConfirmed')}}</span>
</div> </div>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="6" :offset="6"> <el-col :span="6" :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('global.confirm')}}</el-button>
</el-col> </el-col>
<el-col :span="10" :offset="2"> <el-col :span="10" :offset="2">
<el-button :id="domIdCancel" @click="cancel"> </el-button> <el-button :id="domIdCancel" @click="cancel">{{$t('global.cancel')}}</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-dialog> </el-dialog>
@ -33,7 +33,7 @@
return this.dialogShow && !this.$store.state.menuOperation.break; return this.dialogShow && !this.$store.state.menuOperation.break;
}, },
title() { title() {
return '信号解封' return this.$t('menu.signalDeblocking')
}, },
domIdCancel() { domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : ''; return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
@ -115,4 +115,4 @@
padding-bottom: 40px !important; padding-bottom: 40px !important;
border: 1px solid lightgray; border: 1px solid lightgray;
} }
</style> </style>

View File

@ -8,10 +8,10 @@
</div> </div>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <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>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
<notice-info ref="noticeInfo"></notice-info> <notice-info ref="noticeInfo"></notice-info>
@ -42,17 +42,17 @@
}, },
title() { title() {
if (this.operation === OperationEvent.Train.addTrainId.menu.operation) { if (this.operation === OperationEvent.Train.addTrainId.menu.operation) {
return '添加列车识别号'; return this.$t('menu.menuTrain.addTrainId');
} else if (this.operation === OperationEvent.Train.editTrainId.menu.operation) { } else if (this.operation === OperationEvent.Train.editTrainId.menu.operation) {
return '修改列车识别号'; return this.$t('menu.menuTrain.editTrainId');
} else if (this.operation === OperationEvent.Train.delTrainId.menu.operation) { } else if (this.operation === OperationEvent.Train.delTrainId.menu.operation) {
return '删除列车识别号'; return this.$t('menu.menuTrain.deleteTrainId');
} else if (this.operation === OperationEvent.Train.moveTrainId.menu.operation) { } else if (this.operation === OperationEvent.Train.moveTrainId.menu.operation) {
return '移动列车识别号'; return this.$t('menu.menuTrain.moveTrainId');
} else if (this.operation === OperationEvent.Train.switchTrainId.menu.operation) { } else if (this.operation === OperationEvent.Train.switchTrainId.menu.operation) {
return '交换列车识别号'; return this.$t('menu.menuTrain.switchTrainId');
} else if (this.operation === OperationEvent.Train.editTrainNo.menu.operation) { } else if (this.operation === OperationEvent.Train.editTrainNo.menu.operation) {
return '修改车组号' return this.$t('menu.menuTrain.editTrainNo');
} }
}, },
domIdCancel() { domIdCancel() {
@ -165,4 +165,4 @@
padding-bottom: 40px !important; padding-bottom: 40px !important;
border: 1px solid lightgray; border: 1px solid lightgray;
} }
</style> </style>

View File

@ -1,13 +1,13 @@
<template> <template>
<div> <div>
<el-dialog class="fuzhou-01__systerm route-cmd-control" :title="title" :visible.sync="show" width="800px" <el-dialog class="fuzhou-01__systerm route-cmd-control" :title="title" :visible.sync="show" width="840px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag> :before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<div style="padding: 10px 20px; border: 1px solid lightgray;"> <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-form label-position="center" size="mini">
<el-row> <el-row>
<el-col :span="8"> <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-select v-model="operation" size="small" disabled>
<el-option v-for="option in typeList" :key="option.code" :label="option.name" <el-option v-for="option in typeList" :key="option.code" :label="option.name"
:value="option.code"> :value="option.code">
@ -16,12 +16,12 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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-input v-model="stationName" size="small" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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-input v-model="signalName" size="small" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -30,34 +30,34 @@
</div> </div>
<el-table class="table" ref="tempData" :data="tempData" border style="width: 100%" size="mini" <el-table class="table" ref="tempData" :data="tempData" border style="width: 100%" size="mini"
highlight-current-row height="200"> highlight-current-row height="200">
<el-table-column prop="order" :width="50" label="序号"> <el-table-column prop="order" :width="110" :label="this.$t('menu.serialNumber2')">
</el-table-column> </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>
<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>
<el-table-column prop="result" label="执行结果"> <el-table-column prop="result" :label="this.$t('menu.executionResult')">
</el-table-column> </el-table-column>
</el-table> </el-table>
<span class="notice">{{message}}</span> <span class="notice">{{message}}</span>
<el-row class="button-group"> <el-row class="button-group">
<el-col :span="2" :offset="2"> <el-col :span="2" :offset="3">
<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> v-show="timeCountCommand>0">({{timeCountCommand}})</span></el-button>
</el-col> </el-col>
<el-col :span="2" :offset="2"> <el-col :span="2" :offset="1">
<el-button :id="domIdConfirm1" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">确认1 <el-button :id="domIdConfirm1" style="width:120px;" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">{{$t('menu.firstConfirm')}}
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="2" :offset="2"> <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" style="width:120px;" :disabled="cmdDisabled[2]" @click="confirm2">{{$t('menu.secondConfirm')}}<span
v-show="timeCountConfirm>0">({{timeCountConfirm}})</span></el-button> v-show="timeCountConfirm>0">({{timeCountConfirm}})</span></el-button>
</el-col> </el-col>
<el-col :span="2" :offset="2"> <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>
<el-col :span="2" :offset="2"> <el-col :span="2" :offset="1">
<el-button :id="domIdClose" @click="close">关闭</el-button> <el-button :id="domIdClose" @click="close">{{$t('global.close')}}</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-dialog> </el-dialog>
@ -96,8 +96,8 @@
computed: { computed: {
typeList() { typeList() {
return [ return [
{ code: OperationEvent.Signal.unlock.menu.operation, name: '信号解封' }, { code: OperationEvent.Signal.unlock.menu.operation, name: this.$t('menu.menuSignal.signalDeblock') },
{ code: OperationEvent.Signal.guide.menu.operation, name: '办理引导进路' } { code: OperationEvent.Signal.guide.menu.operation, name: this.$t('menu.menuSignal.guideRouteHandle') }
] ]
}, },
show() { show() {
@ -225,7 +225,7 @@
} }
this.dialogShow = true; this.dialogShow = true;
this.stpDisabled = true; this.stpDisabled = true;
this.setMessage('请点击“下达”按钮,下达命令!'); this.setMessage(this.$t('tip.releaseTip'));
this.$nextTick(function () { this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
}); });
@ -253,8 +253,8 @@
operate.operation = OperationEvent.Signal.unlock.order.operation operate.operation = OperationEvent.Signal.unlock.order.operation
} }
this.setMessage('请点击“确认1”按钮确认命令'); this.setMessage(this.$t('tip.firstConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: '点击下达命令', result: '' }); this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
@ -274,18 +274,18 @@
operate.operation = OperationEvent.Signal.guide.order.operation operate.operation = OperationEvent.Signal.guide.order.operation
} }
this.setMessage('请点击“确认1”按钮确认命令'); this.setMessage(this.$t('tip.firstConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: '点击下达命令', result: '' }); this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 1 }); 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 { } 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(() => { }).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() { confirm1() {
@ -301,20 +301,20 @@
operate.operation = OperationEvent.Signal.guide.confirm1.operation; operate.operation = OperationEvent.Signal.guide.confirm1.operation;
} }
this.setMessage('请点击“确认2”按钮确认命令'); this.setMessage(this.$t('tip.secondConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: '点击确认1', result: '' }); this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.timeCountCommand = -1; this.timeCountCommand = -1;
this.timeCountConfirm = 10; this.timeCountConfirm = 10;
this.setButtonEnable({ step: 2 }); 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 { } 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(() => { }).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() { confirm2() {
@ -331,22 +331,22 @@
operate.operation = OperationEvent.Signal.guide.confirm2.operation; operate.operation = OperationEvent.Signal.guide.confirm2.operation;
} }
this.setMessage(''); 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.$store.dispatch('training/next', operate).then(({ valid }) => {
this.timeCountCommand = -1; this.timeCountCommand = -1;
this.timeCountConfirm = -1; this.timeCountConfirm = -1;
this.setButtonEnable({ step: -1 }); this.setButtonEnable({ step: -1 });
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); 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 { } 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(() => { }).catch(() => {
this.timeCountCommand = -1; this.timeCountCommand = -1;
this.timeCountConfirm = -1; this.timeCountConfirm = -1;
this.setButtonEnable({ step: -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() { 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 }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 0 }); 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 { } 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 => { }).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() { close() {
@ -398,9 +398,9 @@
this.setButtonEnable(operate); this.setButtonEnable(operate);
if (operate.success) { if (operate.success) {
this.timeCountCommand = 30; 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 { } 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') });
} }
} }
}, },
@ -427,4 +427,4 @@
} }
} }
} }
</script> </script>

View File

@ -2,8 +2,8 @@
<el-dialog class="fuzhou-01__systerm signal-control" :title="title" :visible.sync="show" width="300px" <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> :before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header"> <el-row class="header">
<el-col :span="11"><span>车站名称</span></el-col> <el-col :span="11"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="11" :offset="2"><span>信号机</span></el-col> <el-col :span="11" :offset="2"><span>{{$t('menu.signal')}}</span></el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="11"> <el-col :span="11">
@ -15,10 +15,10 @@
</el-row> </el-row>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <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>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
<confirm-control ref="confirmControl"></confirm-control> <confirm-control ref="confirmControl"></confirm-control>
@ -60,19 +60,19 @@
}, },
title() { title() {
if (this.operation == OperationEvent.Signal.cancelTrainRoute.menu.operation) { if (this.operation == OperationEvent.Signal.cancelTrainRoute.menu.operation) {
return '取消列车进路'; return this.$t('menu.menuSignal.cancelTheTrainApproach');
} else if (this.operation == OperationEvent.Signal.signalClose.menu.operation) { } 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) { } 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) { } 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) { } 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) { } 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) { } else if (this.operation == OperationEvent.Signal.cancelAutoTrigger.menu.operation) {
return '取消联锁自动触发'; return this.$t('menu.menuSignal.cancelInterlockAutoTrigger');
} }
} }
}, },
@ -165,7 +165,7 @@
let operate = { let operate = {
type: MapDeviceType.Signal.type, type: MapDeviceType.Signal.type,
operation: OperationEvent.Signal.cancelTrainRoute.menu.operation, operation: OperationEvent.Signal.cancelTrainRoute.menu.operation,
messages: [`取消以信号机${this.signalName}为始端的进路,该进路即将由自动信号模式转为人工模式!`] messages: [this.$t('tip.signalModeToManualModeTipPrefix') + this.signalName + this.$t('tip.signalModeToManualModeTipSuffix')]
} }
this.loading = true; this.loading = true;
@ -185,7 +185,7 @@
let operate = { let operate = {
type: MapDeviceType.Signal.type, type: MapDeviceType.Signal.type,
operation: OperationEvent.Signal.signalClose.menu.operation, operation: OperationEvent.Signal.signalClose.menu.operation,
messages: [`信号关灯: ${this.signalName}`], messages: [this.$t('menu.menuSignal.signalOff') + this.$t('global.colon') + this.signalName],
} }
this.loading = true; this.loading = true;
@ -205,7 +205,7 @@
let operate = { let operate = {
type: MapDeviceType.Signal.type, type: MapDeviceType.Signal.type,
operation: OperationEvent.Signal.reopenSignal.menu.operation, operation: OperationEvent.Signal.reopenSignal.menu.operation,
messages: [`信号重开: ${this.signalName}`], messages: [this.$t('menu.menuSignal.signalReopen') + this.$t('global.colon') + this.signalName],
} }
this.loading = true; 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" <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> :before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header"> <el-row class="header">
<el-col :span="10"><span>车站名称</span></el-col> <el-col :span="10"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="10" :offset="2"><span>始端信号机</span></el-col> <el-col :span="10" :offset="2"><span>{{$t('menu.startSignal')}}</span></el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="10"> <el-col :span="10">
@ -15,28 +15,28 @@
</el-col> </el-col>
</el-row> </el-row>
<div class="table"> <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 <el-table ref="tempTable" :data="tempData" border style="width: 100%" size="mini" highlight-current-row
:height="140"> :height="140">
<el-table-column label="进路"> <el-table-column :label="this.$t('menu.route')">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.name}}</span> <span>{{scope.row.name}}</span>
</template> </template>
</el-table-column> </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"> <template slot-scope="scope">
<span v-if="scope.row.controlType == '01'">自动不进行冲突检测</span> <span v-if="scope.row.controlType == '01'">{{$t('menu.automatic')}}</span>
<span v-else>人工</span> <span v-else>{{$t('menu.artificial')}}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <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>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
<notice-info ref="noticeInfo"></notice-info> <notice-info ref="noticeInfo"></notice-info>
@ -77,7 +77,7 @@
return this.dialogShow ? OperationEvent.Signal.detail.menu.domId : ''; return this.dialogShow ? OperationEvent.Signal.detail.menu.domId : '';
}, },
title() { title() {
return '查询进路控制模式' return this.$t('menu.queryAccessControlMode');
} }
}, },
mounted() { 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" <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> :before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header"> <el-row class="header">
<el-col :span="10"><span>车站名称</span></el-col> <el-col :span="10"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="10" :offset="2"><span>始端信号机</span></el-col> <el-col :span="10" :offset="2"><span>{{$t('menu.startSignal')}}</span></el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="10"> <el-col :span="10">
@ -15,24 +15,24 @@
</el-col> </el-col>
</el-row> </el-row>
<div class="table"> <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 <el-table ref="tempTable" :data="tempData" border style="width: 100%" size="mini" highlight-current-row
:height="140"> :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"> <template slot-scope="scope">
<el-checkbox v-model="scope.row.check" :disabled="scope.row.disabled"> </el-checkbox> <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> <span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{scope.row.name}}</span>
</template> </template>
</el-table-column> </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"> <template slot-scope="scope">
<span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}"> <span :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">
<span v-if="scope.row.controlType == '01'">自动</span> <span v-if="scope.row.controlType == '01'">{{$t('menu.automatic2')}}</span>
<span v-else>人工</span> <span v-else>{{$t('menu.artificial')}}</span>
</span> </span>
</template> </template>
</el-table-column> </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"> <template slot-scope="scope">
<span <span
:style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{scope.row.conflictCheck}}</span> :style="{color: scope.row.disabled ? '#CBCBCB':'unset'}">{{scope.row.conflictCheck}}</span>
@ -43,10 +43,10 @@
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :disabled="commitDisabled" :loading="loading" <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>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
<confirm-control ref="confirmControl"></confirm-control> <confirm-control ref="confirmControl"></confirm-control>
@ -102,9 +102,9 @@
}, },
title() { title() {
if (this.operation == OperationEvent.Signal.humanControl.menu.operation) { if (this.operation == OperationEvent.Signal.humanControl.menu.operation) {
return '自排关'; return this.$t('menu.menuSignal.humanControl');
} else if (this.operation == OperationEvent.Signal.atsAutoControl.menu.operation) { } else if (this.operation == OperationEvent.Signal.atsAutoControl.menu.operation) {
return '自排开'; return this.$t('menu.menuSignal.atsAutoControl');
} }
}, },
commitDisabled() { commitDisabled() {
@ -222,7 +222,7 @@
} }
}) })
} else if (!selection) { } else if (!selection) {
this.$messageBox(`请选择一条数据`); this.$messageBox(this.$t('tip.selectAPieceOfData'));
} }
}, },
commit() { commit() {
@ -290,4 +290,4 @@
} }
} }
} }
</script> </script>

View File

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

View File

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

View File

@ -1,13 +1,13 @@
<template> <template>
<div> <div>
<el-dialog class="fuzhou-01__systerm section-cmd-control" :title="title" :visible.sync="show" width="800px" <el-dialog class="fuzhou-01__systerm section-cmd-control" :title="title" :visible.sync="show" width="840px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag> :before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<div style="padding: 10px 20px; border: 1px solid lightgray;"> <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-form label-position="center" size="mini">
<el-row> <el-row>
<el-col :span="8"> <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-select v-model="operation" size="small" disabled>
<el-option v-for="option in typeList" :key="option.code" :label="option.name" <el-option v-for="option in typeList" :key="option.code" :label="option.name"
:value="option.code"> :value="option.code">
@ -16,12 +16,12 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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-input v-model="stationName" size="small" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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-input v-model="sectionName" size="small" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -30,34 +30,34 @@
</div> </div>
<el-table class="table" ref="tempData" :data="tempData" border style="width: 100%" size="mini" <el-table class="table" ref="tempData" :data="tempData" border style="width: 100%" size="mini"
highlight-current-row height="200"> highlight-current-row height="200">
<el-table-column prop="order" :width="50" label="序号"> <el-table-column prop="order" :width="110" :label="this.$t('menu.serialNumber2')">
</el-table-column> </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>
<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>
<el-table-column prop="result" label="执行结果"> <el-table-column prop="result" :label="this.$t('menu.executionResult')">
</el-table-column> </el-table-column>
</el-table> </el-table>
<span class="notice">{{message}}</span> <span class="notice">{{message}}</span>
<el-row class="button-group"> <el-row class="button-group">
<el-col :span="2" :offset="2"> <el-col :span="2" :offset="3">
<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> v-show="timeCountCommand>0">({{timeCountCommand}})</span></el-button>
</el-col> </el-col>
<el-col :span="2" :offset="2"> <el-col :span="2" :offset="1">
<el-button :id="domIdConfirm1" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">确认1 <el-button :id="domIdConfirm1" type="primary" style="width:120px;" :disabled="cmdDisabled[1]" @click="confirm1">{{$t('menu.firstConfirm')}}
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="2" :offset="2"> <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" style="width:120px;" :disabled="cmdDisabled[2]" @click="confirm2">{{$t('menu.secondConfirm')}}<span
v-show="timeCountConfirm>0">({{timeCountConfirm}})</span></el-button> v-show="timeCountConfirm>0">({{timeCountConfirm}})</span></el-button>
</el-col> </el-col>
<el-col :span="2" :offset="2"> <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>
<el-col :span="2" :offset="2"> <el-col :span="2" :offset="1">
<el-button :id="domIdClose" @click="close">关闭</el-button> <el-button :id="domIdClose" @click="close">{{$t('global.close')}}</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-dialog> </el-dialog>
@ -91,9 +91,9 @@
computed: { computed: {
typeList() { typeList() {
return [ return [
{ code: OperationEvent.Section.unlock.menu.operation, name: '区段解封' }, { code: OperationEvent.Section.unlock.menu.operation, name: this.$t('menu.menuSection.sectionUnblock') },
{ code: OperationEvent.Section.fault.menu.operation, name: '区段故障解锁' }, { code: OperationEvent.Section.fault.menu.operation, name: this.$t('menu.menuSection.sectionFaultUnlock') },
{ code: OperationEvent.Section.axlePreReset.menu.operation, name: '区段计轴预复位' }, { code: OperationEvent.Section.axlePreReset.menu.operation, name: this.$t('menu.menuSection.sectionAxisPreReset') },
] ]
}, },
show() { show() {
@ -163,11 +163,11 @@
title() { title() {
if (this.dialogShow) { if (this.dialogShow) {
if (this.operation == OperationEvent.Section.unlock.menu.operation) { if (this.operation == OperationEvent.Section.unlock.menu.operation) {
return '区段解封'; return this.$t('menu.menuSection.sectionUnblock');
} else if (this.operation == OperationEvent.Section.fault.menu.operation) { } 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) { } 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.cmdDisabled = [false, true, true];
} }
this.stpDisabled = true; this.stpDisabled = true;
this.setMessage('请点击“下达”按钮,下达命令!'); this.setMessage(this.$t('tip.releaseTip'));
this.$nextTick(function () { this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
}); });
@ -280,18 +280,18 @@
operate.operation = OperationEvent.Section.axlePreReset.order.operation operate.operation = OperationEvent.Section.axlePreReset.order.operation
} }
this.setMessage('请点击“确认1”按钮确认命令'); this.setMessage(this.$t('tip.firstConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: '点击下达命令', result: '' }); this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 1 }); 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 { } 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(() => { }).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() { confirm1() {
@ -310,20 +310,20 @@
operate.operation = OperationEvent.Section.axlePreReset.confirm1.operation; operate.operation = OperationEvent.Section.axlePreReset.confirm1.operation;
} }
this.setMessage('请点击“确认2”按钮确认命令'); this.setMessage(this.$t('tip.secondConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: '点击确认1', result: '' }); this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.timeCountCommand = -1; this.timeCountCommand = -1;
this.timeCountConfirm = 10; this.timeCountConfirm = 10;
this.setButtonEnable({ step: 2 }); 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 { } 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(() => { }).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() { confirm2() {
@ -343,22 +343,22 @@
operate.operation = OperationEvent.Section.axlePreReset.confirm2.operation; operate.operation = OperationEvent.Section.axlePreReset.confirm2.operation;
} }
this.setMessage(''); 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.$store.dispatch('training/next', operate).then(({ valid }) => {
this.timeCountCommand = -1; this.timeCountCommand = -1;
this.timeCountConfirm = -1; this.timeCountConfirm = -1;
this.setButtonEnable({ step: -1 }); this.setButtonEnable({ step: -1 });
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); 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 { } 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(() => { }).catch(() => {
this.timeCountCommand = -1; this.timeCountCommand = -1;
this.timeCountConfirm = -1; this.timeCountConfirm = -1;
this.setButtonEnable({ step: -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() { stop() {
@ -377,17 +377,17 @@
operate.operation = OperationEvent.Section.axlePreReset.stop.operation; 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 }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 0 }); 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 { } 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 => { }).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() { 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" <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> :before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header"> <el-row class="header">
<el-col :span="11"><span>车站名称</span></el-col> <el-col :span="11"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="11" :offset="2"><span>区段</span></el-col> <el-col :span="11" :offset="2"><span>{{$t('menu.section')}}</span></el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="11"> <el-col :span="11">
@ -15,10 +15,10 @@
</el-row> </el-row>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <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>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
<notice-info ref="noticeInfo"></notice-info> <notice-info ref="noticeInfo"></notice-info>
@ -55,11 +55,11 @@
}, },
title() { title() {
if (this.operation == OperationEvent.Section.lock.menu.operation) { if (this.operation == OperationEvent.Section.lock.menu.operation) {
return '区段封锁'; return this.$t('menu.menuSection.sectionBlockade');
} else if (this.operation == OperationEvent.Section.split.menu.operation) { } 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) { } else if (this.operation == OperationEvent.Section.active.menu.operation) {
return '轨道区段激活'; return this.$t('menu.menuSection.orbitalSectionActive');
} }
} }
}, },
@ -187,4 +187,4 @@
} }
} }
} }
</script> </script>

View File

@ -5,18 +5,18 @@
class="fuzhou-01__systerm section-cmd-speed" class="fuzhou-01__systerm section-cmd-speed"
:title="title" :title="title"
:visible.sync="show" :visible.sync="show"
width="800px" width="840px"
:before-close="doClose" :before-close="doClose"
:z-index="2000" :z-index="2000"
:modal="false" :modal="false"
:close-on-click-modal="false" :close-on-click-modal="false"
> >
<div style="padding: 10px 20px; border: 1px solid lightgray;"> <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-form label-position="center" size="mini">
<el-row> <el-row>
<el-col :span="6"> <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-select v-model="operation" size="small" disabled>
<el-option <el-option
v-for="option in typeList" v-for="option in typeList"
@ -28,7 +28,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <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-input v-model="stationName" size="small" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -38,7 +38,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="限速值" label-width="80px"> <el-form-item :label="this.$t('menu.speedLimitValue')" label-width="80px">
<el-select <el-select
:id="domIdChoose" :id="domIdChoose"
v-model="speed" v-model="speed"
@ -63,32 +63,32 @@
highlight-current-row highlight-current-row
height="200" height="200"
> >
<el-table-column prop="order" :width="50" label="序号" /> <el-table-column prop="order" :width="110" :label="this.$t('menu.serialNumber2')" />
<el-table-column prop="date" :width="160" label="时间" /> <el-table-column prop="date" :width="160" :label="this.$t('menu.time')" />
<el-table-column prop="context" :width="180" label="执行过程" /> <el-table-column prop="context" :width="180" :label="this.$t('menu.implementationProcess')" />
<el-table-column prop="result" label="执行结果" /> <el-table-column prop="result" :label="this.$t('menu.executionResult')" />
</el-table> </el-table>
<span class="notice">{{ message }}</span> <span class="notice">{{ message }}</span>
<el-row class="button-group"> <el-row class="button-group">
<el-col :span="2" :offset="2"> <el-col :span="2" :offset="3">
<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" v-show="timeCountCommand>0"
>({{ timeCountCommand }})</span></el-button> >({{ timeCountCommand }})</span></el-button>
</el-col> </el-col>
<el-col :span="2" :offset="2"> <el-col :span="2" :offset="1">
<el-button :id="domIdConfirm1" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">确认1 <el-button :id="domIdConfirm1" type="primary" style="width:120px;" :disabled="cmdDisabled[1]" @click="confirm1">{{$t('menu.firstConfirm')}}
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="2" :offset="2"> <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" style="width:120px;" :disabled="cmdDisabled[2]" @click="confirm2">{{$t('menu.secondConfirm')}}<span
v-show="timeCountConfirm>0" v-show="timeCountConfirm>0"
>({{ timeCountConfirm }})</span></el-button> >({{ timeCountConfirm }})</span></el-button>
</el-col> </el-col>
<el-col :span="2" :offset="2"> <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>
<el-col :span="2" :offset="2"> <el-col :span="2" :offset="1">
<el-button :id="domIdClose" @click="close">关闭</el-button> <el-button :id="domIdClose" @click="close">{{$t('global.close')}}</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-dialog> </el-dialog>
@ -133,10 +133,10 @@ export default {
nameLabel() { nameLabel() {
if (this.operation == OperationEvent.Section.setSpeed.menu.operation || if (this.operation == OperationEvent.Section.setSpeed.menu.operation ||
this.operation == OperationEvent.Section.cancelSpeed.menu.operation) { this.operation == OperationEvent.Section.cancelSpeed.menu.operation) {
return '区段名称'; return this.$t('menu.sectionName');
} else if (this.operation == OperationEvent.Switch.setSpeed.menu.operation || } else if (this.operation == OperationEvent.Switch.setSpeed.menu.operation ||
this.operation == OperationEvent.Switch.cancelSpeed.menu.operation) { this.operation == OperationEvent.Switch.cancelSpeed.menu.operation) {
return '道岔名称'; return this.$t('menu.switchName');
} }
return null; return null;
}, },
@ -149,22 +149,22 @@ export default {
}, },
typeList() { typeList() {
return [ return [
{ code: OperationEvent.Section.setSpeed.menu.operation, name: '区段设置限速' }, { code: OperationEvent.Section.setSpeed.menu.operation, name: this.$t('menu.menuSection.sectionSetSpeedLimit') },
{ code: OperationEvent.Section.cancelSpeed.menu.operation, name: '区段取消限速' }, { code: OperationEvent.Section.cancelSpeed.menu.operation, name: this.$t('menu.menuSection.sectionCancelSpeedLimit') },
{ code: OperationEvent.Switch.setSpeed.menu.operation, name: '道岔设置限速' }, { code: OperationEvent.Switch.setSpeed.menu.operation, name: this.$t('menu.turnoutSettingSpeedLimit') },
{ code: OperationEvent.Switch.cancelSpeed.menu.operation, name: '道岔取消限速' } { code: OperationEvent.Switch.cancelSpeed.menu.operation, name: this.$t('menu.turnoutCancelsSpeedLimit') }
]; ];
}, },
title() { title() {
if (this.dialogShow) { if (this.dialogShow) {
if (this.operation == OperationEvent.Section.setSpeed.menu.operation) { if (this.operation == OperationEvent.Section.setSpeed.menu.operation) {
return '区段设置限速'; return this.$t('menu.menuSection.sectionSetSpeedLimit');
} else if (this.operation == OperationEvent.Section.cancelSpeed.menu.operation) { } 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) { } else if (this.operation == OperationEvent.Switch.setSpeed.menu.operation) {
return '道岔设置限速'; return this.$t('menu.turnoutSettingSpeedLimit');
} else if (this.operation == OperationEvent.Switch.cancelSpeed.menu.operation) { } else if (this.operation == OperationEvent.Switch.cancelSpeed.menu.operation) {
return '道岔取消限速'; return this.$t('menu.turnoutCancelsSpeedLimit');
} }
} }
return null; return null;
@ -354,7 +354,7 @@ export default {
this.order = 0; this.order = 0;
this.type = operate.type; this.type = operate.type;
this.operation = operate.operation; this.operation = operate.operation;
this.setMessage('请选择限速值后,点击“下达”按钮,下达命令!'); this.setMessage(this.$t('tip.selectSpeedLimitValueTip'));
if (this.isCancelSpeed) { if (this.isCancelSpeed) {
this.speed = `${tempData}`; this.speed = `${tempData}`;
this.spdDisabled = true; this.spdDisabled = true;
@ -386,7 +386,7 @@ export default {
operate.operation = OperationEvent.Switch.setSpeed.choose.operation; operate.operation = OperationEvent.Switch.setSpeed.choose.operation;
} }
this.setMessage('请点击“下达”按钮,下达命令!'); this.setMessage(this.$t('tip.releaseTip'));
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
@ -402,33 +402,33 @@ export default {
if (this.operation == OperationEvent.Section.setSpeed.menu.operation) { if (this.operation == OperationEvent.Section.setSpeed.menu.operation) {
/** 区段设置限速*/ /** 区段设置限速*/
operate.operation = OperationEvent.Section.setSpeed.order.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) { } else if (this.operation == OperationEvent.Section.cancelSpeed.menu.operation) {
/** 区段取消限速*/ /** 区段取消限速*/
operate.operation = OperationEvent.Section.cancelSpeed.order.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) { } else if (this.operation == OperationEvent.Switch.setSpeed.menu.operation) {
/** 道岔设置限速*/ /** 道岔设置限速*/
operate.operation = OperationEvent.Switch.setSpeed.order.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) { } else if (this.operation == OperationEvent.Switch.cancelSpeed.menu.operation) {
/** 道岔取消限速*/ /** 道岔取消限速*/
operate.operation = OperationEvent.Switch.cancelSpeed.order.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.setMessage(this.$t('tip.firstConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: '点击下达命令', result: '' }); this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); 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); this.$refs.confirmControlSpeed.doShow(operate, this.selected);
} else { } 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(() => { }).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() { confirm1() {
@ -450,20 +450,20 @@ export default {
operate.operation = OperationEvent.Switch.cancelSpeed.confirm1.operation; operate.operation = OperationEvent.Switch.cancelSpeed.confirm1.operation;
} }
this.setMessage('请点击“确认2”按钮确认命令'); this.setMessage(this.$t('tip.secondConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: '点击确认1', result: '' }); this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.timeCountCommand = -1; this.timeCountCommand = -1;
this.timeCountConfirm = 10; this.timeCountConfirm = 10;
this.setButtonEnable({ step: 2 }); 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 { } 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(() => { }).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() { confirm2() {
@ -488,22 +488,22 @@ export default {
} }
this.setMessage(''); 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.$store.dispatch('training/next', operate).then(({ valid }) => {
this.timeCountCommand = -1; this.timeCountCommand = -1;
this.timeCountConfirm = -1; this.timeCountConfirm = -1;
this.setButtonEnable({ step: -1 }); this.setButtonEnable({ step: -1 });
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); 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 { } 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(() => { }).catch(() => {
this.timeCountCommand = -1; this.timeCountCommand = -1;
this.timeCountConfirm = -1; this.timeCountConfirm = -1;
this.setButtonEnable({ step: -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() { stop() {
@ -525,17 +525,17 @@ export default {
operate.operation = OperationEvent.Switch.cancelSpeed.stop.operation; 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 }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 0 }); 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 { } 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(() => { }).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() { close() {
@ -543,7 +543,7 @@ export default {
type: this.type, type: this.type,
operation: OperationEvent.Command.close.menu.operation 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 }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.doClose(); this.doClose();

View File

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

View File

@ -6,10 +6,10 @@
</div> </div>
<el-row class="button-group"> <el-row class="button-group">
<el-col :span="10" :offset="2"> <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>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
<notice-info ref="noticeInfo"></notice-info> <notice-info ref="noticeInfo"></notice-info>
@ -46,17 +46,17 @@
}, },
title() { title() {
if (this.operation == OperationEvent.StationStand.setDetainTrain.menu.operation) { if (this.operation == OperationEvent.StationStand.setDetainTrain.menu.operation) {
return '扣车'; return this.$t('menu.menuStationStand.detainTrain');
} else if (this.operation == OperationEvent.StationStand.cancelDetainTrain.menu.operation) { } 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) { } 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) { } 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) { } 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) { } else if (this.operation == OperationEvent.StationStand.cancelJumpStop.menu.operation) {
return '取消跳停' return this.$t('menu.menuStationStand.cancelJumpStop');
} }
}, },
preContext() { preContext() {
@ -257,4 +257,4 @@
.stand-detain-train .context { .stand-detain-train .context {
height: 80px !important; 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" <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> :before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header"> <el-row class="header">
<el-col :span="10"><span>车站名称</span></el-col> <el-col :span="10"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="10" :offset="2"><span>站台</span></el-col> <el-col :span="10" :offset="2"><span>{{$t('menu.platform')}}</span></el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="10"> <el-col :span="10">
@ -14,20 +14,20 @@
</el-col> </el-col>
</el-row> </el-row>
<div class="table"> <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 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>
<el-table-column prop="status" label="状态"> <el-table-column prop="status" :label="this.$t('global.status')">
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <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>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
<notice-info ref="noticeInfo"></notice-info> <notice-info ref="noticeInfo"></notice-info>
@ -52,10 +52,10 @@
stationName: '', stationName: '',
standName: '', standName: '',
strategyMap: { strategyMap: {
'01': '无折返', '01': this.$t('menu.noSwitchback'),
'02': '无人折返', '02': this.$t('menu.noOneSwitchback'),
'03': '自动换端', '03': this.$t('menu.automaticChange'),
'04': '默认' '04': this.$t('menu.default')
} }
} }
}, },
@ -73,7 +73,7 @@
return this.dialogShow ? OperationEvent.Command.close.confirm.domId : ''; return this.dialogShow ? OperationEvent.Command.close.confirm.domId : '';
}, },
title() { title() {
return '查询站台状态'; return this.$t('menu.menuStationStand.getStationStandStatus');
} }
}, },
mounted() { mounted() {
@ -103,16 +103,16 @@
} }
/** 01: 未设置扣车 02: 车站扣车 03: 中心扣车 04: 中心+车站扣车*/ /** 01: 未设置扣车 02: 车站扣车 03: 中心扣车 04: 中心+车站扣车*/
this.tempData.push({ item: '车站扣车', status: opts.holdStatus == '02' || opts.holdStatus == '04' ? '已设置' : '未设置' }); 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: '中心扣车', status: opts.holdStatus == '03' || opts.holdStatus == '04' ? '已设置' : '未设置' }); 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: '停站时间', status: opts.parkingTime != -1 ? opts.parkingTime : '自动' }); this.tempData.push({ item: this.$t('menu.stopTime'), status: opts.parkingTime != -1 ? opts.parkingTime : this.$t('menu.automatic2') });
if (!stationStand || !station) { if (!stationStand || !station) {
this.tempData.push({ item: '运行等级', status: `自动` }); this.tempData.push({ item: this.$t('menu.runLevel'), status: this.$t('menu.automatic2') });
} else { } 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: this.$t('menu.jumpStop'), status: opts.jumpStopStatus != '01' ? this.$t('menu.hasBeenSet') : this.$t('menu.notSet') });
this.tempData.push({ item: '下行折返策略', status: this.strategyMap[opts.reentryStrategy] ? this.strategyMap[opts.reentryStrategy] : '默认' }); 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) { doShow(operate, selected, opts) {
if (!this.dialogShow) { if (!this.dialogShow) {
@ -170,4 +170,4 @@
} }
} }
} }
</script> </script>

View File

@ -4,49 +4,49 @@
class="fuzhou-01__systerm stand-detain-train-all" class="fuzhou-01__systerm stand-detain-train-all"
:title="title" :title="title"
:visible.sync="show" :visible.sync="show"
width="340px" width="390px"
:before-close="doClose" :before-close="doClose"
:z-index="2000" :z-index="2000"
:modal="false" :modal="false"
:close-on-click-modal="false" :close-on-click-modal="false"
> >
<el-radio-group style="padding: 10px 20px; border: 1px double lightgray; "> <el-radio-group style="padding: 10px 20px; border: 1px double lightgray;width:100%;">
<span class="base-label">范围</span> <span class="base-label" style="font-size:14px;">{{$t('menu.range')}}</span>
<el-row> <el-row>
<el-radio-group v-model="upDown" @change="choose"> <el-radio-group v-model="upDown" @change="choose" style="width:100%;">
<el-col :span="10"> <el-col :span="11">
<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>
<el-col :span="6" :offset="8"> <el-col :span="11" :offset="1">
<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-col>
</el-radio-group> </el-radio-group>
</el-row> </el-row>
</el-radio-group> </el-radio-group>
<div class="table"> <div class="table">
<span>扣车站台列表中心设置</span> <span>{{$t('menu.detainTrainStationList')}}</span>
<el-table <el-table
ref="tempData" ref="tempData"
:data="tempData" :data="tempData"
border border
style="width: 100%" style="width: 100%"
size="mini" size="mini"
empty-text="所有站台都无扣车状态!" :empty-text="this.$t('menu.allStationsHaveNoDetainTrainStatus')"
height="160" height="160"
highlight-current-row highlight-current-row
> >
<el-table-column prop="stationName" label="车站名称" /> <el-table-column prop="stationName" :label="this.$t('menu.stationName')" />
<el-table-column prop="standName" :width="140" label="扣车站台" /> <el-table-column prop="standName" :width="140" :label="this.$t('menu.detainTrainStation')" />
</el-table> </el-table>
</div> </div>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <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-button>
</el-col> </el-col>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
<notice-info ref="noticeInfo" /> <notice-info ref="noticeInfo" />
@ -91,9 +91,9 @@ export default {
}, },
title() { title() {
if (this.operation == OperationEvent.StationStand.cancelDetainTrainAll.menu.operation) { if (this.operation == OperationEvent.StationStand.cancelDetainTrainAll.menu.operation) {
return '全线取消扣车'; return this.$t('menu.menuStationStand.cancelDetainTrainAll');
} else { } 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" <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> :before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header"> <el-row class="header">
<el-col :span="10"><span>车站名称</span></el-col> <el-col :span="10"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="10" :offset="2"><span>站台</span></el-col> <el-col :span="10" :offset="2"><span>{{$t('menu.platform')}}</span></el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="10"> <el-col :span="10">
@ -14,11 +14,11 @@
</el-col> </el-col>
</el-row> </el-row>
<div class="table"> <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 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>
<el-table-column prop="time" label="区间运行时间"> <el-table-column prop="time" :label="this.$t('menu.intervalRunningTime')">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.time" size="mini" @change="timeSelectChange" :id='domIdChoose'> <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" <el-option v-for="item in timeList" :key="item.value" :label="item.label"
@ -27,7 +27,7 @@
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="check" label="一直有效"> <el-table-column prop="check" :label="this.$t('menu.alwaysEffective')">
<template slot-scope="scope"> <template slot-scope="scope">
<el-checkbox ref="check" v-model="scope.row.check" @change="checkChange" :id='domIdCheck'> <el-checkbox ref="check" v-model="scope.row.check" @change="checkChange" :id='domIdCheck'>
</el-checkbox> </el-checkbox>
@ -36,16 +36,16 @@
</el-table> </el-table>
</div> </div>
<el-row class="button-group"> <el-row class="button-group">
<span v-if="isSelect && tempData.length">提示: 未选中要设置运行等级的下一站台</span> <span v-if="isSelect && tempData.length">{{ $t('menu.setRunLevelTip') }}</span>
<span v-if="isConfirm && tempData.length">提示: 选中要设置运行等级的下一站台为{{tempData[0].name}}</span> <span v-if="isConfirm && tempData.length">{{ $t('menu.setRunLevelStationTip') + tempData[0].name}}</span>
</el-row> </el-row>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <el-col :span="10" :offset="2">
<el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!isConfirm" @click="commit"> <el-button :id="domIdConfirm" type="primary" :loading="loading" :disabled="!isConfirm" @click="commit">
确定</el-button> {{$t('global.confirm')}}</el-button>
</el-col> </el-col>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
<confirm-control ref="confirmControl"></confirm-control> <confirm-control ref="confirmControl"></confirm-control>
@ -106,11 +106,11 @@
return this.dialogShow ? OperationEvent.StationStand.setRunLevel.check.domId : ''; return this.dialogShow ? OperationEvent.StationStand.setRunLevel.check.domId : '';
}, },
title() { title() {
return '设置运行等级'; return this.$t('menu.menuStationStand.setRunLevel');
}, },
timeList() { timeList() {
let list = [ let list = [
{ value: 0, label: '自动' }, { value: 0, label: this.$t('menu.automatic2') },
{ value: 1, label: '1' } { value: 1, label: '1' }
]; ];
for (var i = 60; i <= this.maxRunLevel; i++) { for (var i = 60; i <= this.maxRunLevel; i++) {
@ -221,7 +221,7 @@
let operate = { let operate = {
type: MapDeviceType.StationStand.type, type: MapDeviceType.StationStand.type,
operation: OperationEvent.StationStand.setRunLevel.menu.operation, 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('::'), val: [this.time, forver].join('::'),
} }
@ -257,4 +257,4 @@
} }
} }
} }
</script> </script>

View File

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

View File

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

View File

@ -1,15 +1,15 @@
<template> <template>
<el-dialog class="fuzhou-01__systerm station-human-control-all" :title="title" :visible.sync="show" width="360px" <el-dialog class="fuzhou-01__systerm station-human-control-all" :title="title" :visible.sync="show" width="430px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag> :before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body v-dialogDrag>
<div class="context"> <div class="context">
<span>{{title}}</span> <span>{{title}}</span>
</div> </div>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <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>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
<notice-info ref="noticeInfo"></notice-info> <notice-info ref="noticeInfo"></notice-info>
@ -37,7 +37,7 @@
return this.dialogShow && !this.$store.state.menuOperation.break; return this.dialogShow && !this.$store.state.menuOperation.break;
}, },
title() { title() {
return '全集中站进路交人工控'; return this.$t('menu.fullConcentrationStationAccessManualControl');
}, },
domIdCancel() { domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : ''; return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
@ -111,4 +111,4 @@
padding-bottom: 40px !important; padding-bottom: 40px !important;
border: 1px solid lightgray; border: 1px solid lightgray;
} }
</style> </style>

View File

@ -1,28 +1,28 @@
<template> <template>
<el-dialog class="fuzhou-01__systerm station-set-route-control-all" :title="title" :visible.sync="show" <el-dialog class="fuzhou-01__systerm station-set-route-control-all" :title="title" :visible.sync="show"
width="320px" :before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body width="450px" :before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" append-to-body
v-dialogDrag> v-dialogDrag>
<div style="padding: 0px 10px"> <div style="padding: 0px 10px">
<el-form size="small" label-width="90px" label-position="left" ref="form"> <el-form size="small" label-width="110px" 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-input v-model="stationName" size="small" disabled></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-radio-group v-model="mode"> <el-radio-group v-model="mode">
<el-row> <el-row>
<el-radio :label="true">检查冲突</el-radio> <el-radio :label="true">{{$t('menu.checkConflict')}}</el-radio>
</el-row> </el-row>
<el-row style="margin-top: 20px"> <el-row style="margin-top: 20px">
<el-radio :label="false">不检查冲突</el-radio> <el-radio :label="false">{{$t('menu.notCheckConflict')}}</el-radio>
</el-row> </el-row>
</el-radio-group> </el-radio-group>
</div> </div>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <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>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
<notice-info ref="noticeInfo"></notice-info> <notice-info ref="noticeInfo"></notice-info>
@ -52,7 +52,7 @@
return this.dialogShow && !this.$store.state.menuOperation.break; return this.dialogShow && !this.$store.state.menuOperation.break;
}, },
title() { title() {
return '全集中站设置进路控制模式'; return this.$t('menu.fullConcentrationStationSettingAccessControlMode');
}, },
domIdCancel() { domIdCancel() {
return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : ''; return this.dialogShow ? OperationEvent.Command.cancel.menu.domId : '';
@ -131,4 +131,4 @@
padding-bottom: 40px !important; padding-bottom: 40px !important;
border: 1px solid lightgray; border: 1px solid lightgray;
} }
</style> </style>

View File

@ -1,13 +1,13 @@
<template> <template>
<div> <div>
<el-dialog class="fuzhou-01__systerm switch-cmd-control" :title="title" :visible.sync="show" width="800px" <el-dialog class="fuzhou-01__systerm switch-cmd-control" :title="title" :visible.sync="show" width="840px"
:before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag> :before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<div style="padding: 10px 20px; border: 1px solid lightgray;"> <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-form label-position="center" size="mini">
<el-row> <el-row>
<el-col :span="8"> <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-select v-model="operation" size="small" disabled>
<el-option v-for="option in typeList" :key="option.code" :label="option.name" <el-option v-for="option in typeList" :key="option.code" :label="option.name"
:value="option.code"> :value="option.code">
@ -16,12 +16,12 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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-input v-model="stationName" size="small" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <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-input v-model="switchName" size="small" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -30,34 +30,34 @@
</div> </div>
<el-table class="table" ref="tempData" :data="tempData" border style="width: 100%" size="mini" <el-table class="table" ref="tempData" :data="tempData" border style="width: 100%" size="mini"
highlight-current-row height="200"> highlight-current-row height="200">
<el-table-column prop="order" :width="50" label="序号"> <el-table-column prop="order" :width="110" :label="this.$t('menu.serialNumber2')">
</el-table-column> </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>
<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>
<el-table-column prop="result" label="执行结果"> <el-table-column prop="result" :label="this.$t('menu.executionResult')">
</el-table-column> </el-table-column>
</el-table> </el-table>
<span class="notice">{{message}}</span> <span class="notice">{{message}}</span>
<el-row class="button-group"> <el-row class="button-group">
<el-col :span="2" :offset="2"> <el-col :span="2" :offset="3">
<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> v-show="timeCountCommand>0">({{timeCountCommand}})</span></el-button>
</el-col> </el-col>
<el-col :span="2" :offset="2"> <el-col :span="2" :offset="1">
<el-button :id="domIdConfirm1" type="primary" :disabled="cmdDisabled[1]" @click="confirm1">确认1 <el-button :id="domIdConfirm1" type="primary" style="width:120px;" :disabled="cmdDisabled[1]" @click="confirm1">{{$t('menu.firstConfirm')}}
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="2" :offset="2"> <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" style="width:120px;" :disabled="cmdDisabled[2]" @click="confirm2">{{$t('menu.secondConfirm')}}<span
v-show="timeCountConfirm>0">({{timeCountConfirm}})</span></el-button> v-show="timeCountConfirm>0">({{timeCountConfirm}})</span></el-button>
</el-col> </el-col>
<el-col :span="2" :offset="2"> <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>
<el-col :span="2" :offset="2"> <el-col :span="2" :offset="1">
<el-button :id="domIdClose" @click="close">关闭</el-button> <el-button :id="domIdClose" @click="close">{{$t('global.close')}}</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-dialog> </el-dialog>
@ -91,10 +91,10 @@
computed: { computed: {
typeList() { typeList() {
return [ return [
{ code: OperationEvent.Switch.unlock.menu.operation, name: '道岔单解' }, { code: OperationEvent.Switch.unlock.menu.operation, name: this.$t('menu.menuSwitch.switchUnlock') },
{ code: OperationEvent.Switch.unblock.menu.operation, name: '道岔解封' }, { code: OperationEvent.Switch.unblock.menu.operation, name: this.$t('menu.menuSwitch.switchSectionUnblock') },
{ code: OperationEvent.Switch.fault.menu.operation, name: '道岔故障解锁' }, { code: OperationEvent.Switch.fault.menu.operation, name: this.$t('menu.menuSwitch.switchMalfunctionUnlock') },
{ code: OperationEvent.Switch.axlePreReset.menu.operation, name: '道岔计轴预复位' }, { code: OperationEvent.Switch.axlePreReset.menu.operation, name: this.$t('menu.menuSwitch.switchSectionAxisPreReset') },
] ]
}, },
show() { show() {
@ -249,7 +249,7 @@
this.cmdDisabled = [false, true, true]; this.cmdDisabled = [false, true, true];
} }
this.stpDisabled = true; this.stpDisabled = true;
this.setMessage('请点击“下达”按钮,下达命令!'); this.setMessage(this.$t('tip.releaseTip'));
this.$nextTick(function () { this.$nextTick(function () {
this.$store.dispatch('training/emitTipFresh'); this.$store.dispatch('training/emitTipFresh');
}); });
@ -294,18 +294,18 @@
operate.operation = OperationEvent.Switch.axlePreReset.order.operation; operate.operation = OperationEvent.Switch.axlePreReset.order.operation;
} }
this.setMessage('请点击“确认1”按钮确认命令'); this.setMessage(this.$t('tip.firstConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: '点击下达命令', result: '' }); this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickReleaseCommand'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 1 }); 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 { } 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(() => { }).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() { confirm1() {
@ -327,20 +327,20 @@
operate.operation = OperationEvent.Switch.axlePreReset.confirm1.operation; operate.operation = OperationEvent.Switch.axlePreReset.confirm1.operation;
} }
this.setMessage('请点击“确认2”按钮确认命令'); this.setMessage(this.$t('tip.secondConfirmTip'));
this.writeRecord({ order: ++this.order, date: now(), context: '点击确认1', result: '' }); this.writeRecord({ order: ++this.order, date: now(), context: this.$t('menu.clickFirstConfirm'), result: '' });
this.$store.dispatch('training/next', operate).then(({ valid }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.timeCountCommand = -1; this.timeCountCommand = -1;
this.timeCountConfirm = 10; this.timeCountConfirm = 10;
this.setButtonEnable({ step: 2 }); 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 { } 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(() => { }).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() { confirm2() {
@ -364,22 +364,22 @@
} }
this.setMessage(''); 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.$store.dispatch('training/next', operate).then(({ valid }) => {
this.timeCountCommand = -1; this.timeCountCommand = -1;
this.timeCountConfirm = -1; this.timeCountConfirm = -1;
this.setButtonEnable({ step: -1 }); this.setButtonEnable({ step: -1 });
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); 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 { } 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(() => { }).catch(() => {
this.timeCountCommand = -1; this.timeCountCommand = -1;
this.timeCountConfirm = -1; this.timeCountConfirm = -1;
this.setButtonEnable({ step: -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() { stop() {
@ -401,17 +401,17 @@
operate.operation = OperationEvent.Switch.axlePreReset.stop.operation; 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 }) => { this.$store.dispatch('training/next', operate).then(({ valid }) => {
if (valid) { if (valid) {
this.$store.dispatch('menuOperation/handleBreakFlag', { break: true }); this.$store.dispatch('menuOperation/handleBreakFlag', { break: true });
this.setButtonEnable({ step: 0 }); 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 { } 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 => { }).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() { 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" <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> :before-close="doClose" :zIndex="2000" :modal="false" :close-on-click-modal="false" v-dialogDrag>
<el-row class="header"> <el-row class="header">
<el-col :span="11"><span>车站名称</span></el-col> <el-col :span="11"><span>{{$t('menu.stationName')}}</span></el-col>
<el-col :span="11" :offset="2"><span>道岔</span></el-col> <el-col :span="11" :offset="2"><span>{{$t('menu.switch')}}</span></el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="11"> <el-col :span="11">
@ -16,19 +16,19 @@
<el-row style="margin-top: 10px;" v-if="activeShow"> <el-row style="margin-top: 10px;" v-if="activeShow">
<el-col :span="11"> <el-col :span="11">
<el-radio v-model="radio" label="1" :disabled="radio == 2" style="display: block; text-align: center;"> <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>
<el-col :span="11" :offset="2"> <el-col :span="11" :offset="2">
<el-radio v-model="radio" label="2" :disabled="radio == 1" style="display: block; text-align: center;"> <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-col>
</el-row> </el-row>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <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>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
<notice-info ref="noticeInfo"></notice-info> <notice-info ref="noticeInfo"></notice-info>
@ -67,21 +67,21 @@
}, },
title() { title() {
if (this.operation == OperationEvent.Switch.lock.menu.operation) { if (this.operation == OperationEvent.Switch.lock.menu.operation) {
return '道岔单锁'; return this.$t('menu.menuSwitch.switchLock');
} else if (this.operation == OperationEvent.Switch.block.menu.operation) { } 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) { } 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) { } 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) { } else if (this.operation == OperationEvent.Switch.split.menu.operation) {
this.activeShow = true; this.activeShow = true;
this.radio = '2'; this.radio = '2';
return '区段切除' return this.$t('menu.menuSwitch.sectionResection');
} else if (this.operation == OperationEvent.Switch.active.menu.operation) { } else if (this.operation == OperationEvent.Switch.active.menu.operation) {
this.activeShow = true; this.activeShow = true;
this.radio = '1'; this.radio = '1';
return '区段激活' return this.$t('menu.menuSwitch.sectionActive');
} }
} }
}, },
@ -268,4 +268,4 @@
} }
} }
} }
</script> </script>

View File

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

View File

@ -4,8 +4,8 @@
v-dialogDrag> v-dialogDrag>
<div style="padding: 10px 20px; border: 1px solid lightgray;"> <div style="padding: 10px 20px; border: 1px solid lightgray;">
<el-form size="small" label-width="100px"> <el-form size="small" label-width="100px">
<el-form-item label="列车:" prop="trainCode"> <el-form-item :label="this.$t('menu.train')+this.$t('global.colon')" prop="trainCode">
<el-select v-model="trainCode" filterable placeholder="列车"> <el-select v-model="trainCode" filterable :placeholder="this.$t('menu.train')">
<el-option v-for="item in trainList" :key="item.code" :label="item.groupNumber" <el-option v-for="item in trainList" :key="item.code" :label="item.groupNumber"
:value="item.code"></el-option> :value="item.code"></el-option>
</el-select> </el-select>
@ -16,8 +16,8 @@
</el-select> </el-select>
<div style="font-size: 12px;">(上行路线车次号选择偶数下行路线车次号选择基数)</div> <div style="font-size: 12px;">(上行路线车次号选择偶数下行路线车次号选择基数)</div>
</el-form-item> --> </el-form-item> -->
<el-form-item label="列车方向:" prop="direction"> <el-form-item :label="this.$t('menu.trainDirection')+this.$t('global.colon')" prop="direction">
<el-select v-model="direction" filterable placeholder="列车方向"> <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 v-for="no in directionList" :key="no.value" :label="no.label" :value="no.value">
</el-option> </el-option>
</el-select> </el-select>
@ -26,8 +26,8 @@
</el-form> </el-form>
<el-row> <el-row>
<el-col style="text-align: right;"> <el-col style="text-align: right;">
<el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">确定</el-button> <el-button :id="domIdConfirm" type="primary" :loading="loading" @click="commit">{{this.$t('global.confirm')}}</el-button>
<el-button :id="domIdCancel" @click="cancel"> </el-button> <el-button :id="domIdCancel" @click="cancel">{{this.$t('global.cancel')}}</el-button>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
@ -55,11 +55,11 @@
directionList: [ directionList: [
{ {
value: '2', value: '2',
label: '上行' label: this.$t('menu.up')
}, },
{ {
value: '1', value: '1',
label: '下行' label: this.$t('menu.down')
} }
], ],
trainCode: '', trainCode: '',
@ -82,7 +82,7 @@
return OperationEvent.Section.newtrain.menu.domId; return OperationEvent.Section.newtrain.menu.domId;
}, },
title() { title() {
return '设置列车'; return this.$t('menu.settingTrain');
} }
}, },
mounted() { mounted() {
@ -96,7 +96,7 @@
getPublishTrainList(map.skinCode).then(response => { getPublishTrainList(map.skinCode).then(response => {
this.trainList = response.data; this.trainList = response.data;
}).catch(error => { }).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" :close-on-click-modal="false"
> >
<el-form ref="form" size="small" label-width="90px" :model="formModel" :rules="rules"> <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-input :id="domIdTrainNumber" v-model="formModel.groupNumber" @change="trainNumberChange" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <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>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
<confirm-control ref="confirmControl" /> <confirm-control ref="confirmControl" />
@ -50,7 +50,7 @@ export default {
rules: { rules: {
groupNumber: [ groupNumber: [
{ required: true, message: '请输入车组号', trigger: 'blur' } { required: true, message: this.$t('rules.selectGroupNumber'), trigger: 'blur' }
] ]
}, },
operation: null, operation: null,
@ -75,7 +75,7 @@ export default {
return this.dialogShow ? OperationEvent.Train.delTrainId.trainNumberChange.domId : ''; return this.dialogShow ? OperationEvent.Train.delTrainId.trainNumberChange.domId : '';
}, },
title() { title() {
return '删除列车识别号'; return this.$t('menu.menuTrain.deleteTrainId');
} }
}, },
mounted() { mounted() {

View File

@ -1,17 +1,17 @@
<template> <template>
<el-dialog class="fuzhou-01__systerm stand-stop-time" :title="title" :visible.sync="show" width="320px" <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> :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 size="small" label-width="120px" :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="120px" prop="tripNumber">
<el-input v-model="addModel.tripNumber"></el-input> <el-input v-model="addModel.tripNumber"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <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>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
</el-dialog> </el-dialog>
@ -34,7 +34,7 @@
rules: { rules: {
tripNumber: [ tripNumber: [
{ required: true, message: '请输入车组号', trigger: 'blur' } { required: true, message: this.$t('rules.selectGroupNumber'), trigger: 'blur' }
], ],
}, },
dialogShow: false, dialogShow: false,
@ -55,7 +55,7 @@
return this.dialogShow ? OperationEvent.Train.editTrainNo.menu.domId : ''; return this.dialogShow ? OperationEvent.Train.editTrainNo.menu.domId : '';
}, },
title() { title() {
return '修改车组号' return this.$t('menu.menuTrain.editTrainNo')
} }
}, },
mounted() { mounted() {
@ -128,4 +128,4 @@
padding: 0 5px; padding: 0 5px;
background-color: #F0F0F0; 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> :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 size="small" label-width="80px" :model="addModel" :rules="rules" ref="form">
<div style="width: 46%;"> <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-input v-model="addModel.tripNumber" disabled></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div style="overflow: hidden;"> <div style="overflow: hidden;">
<div <div
style="width: 48%; float: left; padding: 10px 15px; border: 1px double lightgray; margin: 20px 0px; height: 120px; margin-right: 4%;"> 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;"> <div style="position: relative; top:-10px;">
<el-form-item prop="stationStandSource"> <el-form-item prop="stationStandSource">
<span slot="label">&emsp; :</span> <span slot="label">{{$t('menu.station') + $t('global.colon')}}</span>
<el-select v-model="addModel.stationStandSource" filterable placeholder="请选择"> <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" <el-option v-for="item in stationStandList" :key="item.code" :label="item.name"
:value="item.code"> :value="item.code">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </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-input v-model="addModel.trainSource"></el-input>
</el-form-item> </el-form-item>
</div> </div>
</div> </div>
<div <div
style="width: 48%; float: left; padding: 10px 15px; border: 1px double lightgray; margin: 20px 0px; height: 120px;"> 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;"> <div style="position: relative; top:-10px;">
<el-form-item prop="stationStandGoal"> <el-form-item prop="stationStandGoal">
<span slot="label">&emsp; :</span> <span slot="label">{{$t('menu.station') + $t('global.colon')}}</span>
<el-select v-model="addModel.stationStandGoal" filterable placeholder="请选择"> <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" <el-option v-for="item in stationStandList" :key="item.code" :label="item.name"
:value="item.code"> :value="item.code">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </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-input v-model="addModel.trainGoal"></el-input>
</el-form-item> </el-form-item>
</div> </div>
@ -46,10 +46,10 @@
</el-form> </el-form>
<el-row justify="center" class="button-group"> <el-row justify="center" class="button-group">
<el-col :span="10" :offset="2"> <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>
<el-col :span="8" :offset="4"> <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-col>
</el-row> </el-row>
</el-dialog> </el-dialog>
@ -76,19 +76,19 @@
rules: { rules: {
tripNumber: [ tripNumber: [
{ required: true, message: '请输入车组号', trigger: 'blur' } { required: true, message: this.$t('rules.selectGroupNumber'), trigger: 'blur' }
], ],
trainSource: [ trainSource: [
{ required: true, message: '请输入车次号', trigger: 'blur' } { required: true, message: this.$t('rules.enterTheTripNumber'), trigger: 'blur' }
], ],
stationStandSource: [ stationStandSource: [
{ required: true, message: '请选择车站', trigger: 'change' } { required: true, message: this.$t('rules.selectStation'), trigger: 'change' }
], ],
trainGoal: [ trainGoal: [
{ required: true, message: '请输入车次号', trigger: 'blur' } { required: true, message: this.$t('rules.enterTheTripNumber'), trigger: 'blur' }
], ],
stationStandGoal: [ stationStandGoal: [
{ required: true, message: '请选择车站', trigger: 'change' } { required: true, message: this.$t('rules.selectStation'), trigger: 'change' }
], ],
}, },
dialogShow: false, dialogShow: false,
@ -109,7 +109,7 @@
return this.dialogShow ? OperationEvent.Train.moveTrainId.menu.domId : ''; return this.dialogShow ? OperationEvent.Train.moveTrainId.menu.domId : '';
}, },
title() { title() {
return '移动列车识别号' return this.$t('menu.menuTrain.moveTrainId');
} }
}, },
mounted() { mounted() {
@ -183,4 +183,4 @@
padding: 0 5px; padding: 0 5px;
background-color: #F0F0F0; background-color: #F0F0F0;
} }
</style> </style>

Some files were not shown because too many files have changed in this diff Show More