Merge remote-tracking branch 'origin/dev' into test

This commit is contained in:
fan 2019-09-12 09:26:13 +08:00
commit 63fb67b4cc
59 changed files with 610 additions and 264 deletions

View File

@ -18,5 +18,16 @@ export default {
residualPermissionDistributionMap: 'Residual permission distribution map',
totalPermissions: 'total permissions',
noMapLineDataYetAvailable: 'No map line data yet available',
individual: 'individual'
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,79 @@
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: 'Dispatching 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'
}
};

View File

@ -64,5 +64,24 @@ export default {
obtainCourseInformationFailed: 'Failed to obtain course information',
obtainStepDataFailed: 'Failed to obtain step data',
submitExamFailed: 'Automatic submission of test results failed',
getTestInformationFailed: 'Failed to get test information'
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',
};

View File

@ -35,5 +35,6 @@ export default {
maximumTimeToCompleteThisQuestion: 'Maximum time to complete this question',
theBestTimeToCompleteTheQuestion: 'The best time to complete the question',
trainingNotes: 'Training notes',
giveUpTheExam: 'Give up the exam'
giveUpTheExam: 'Give up the exam',
nameOfTestPaper: 'Test name'
};

View File

@ -83,7 +83,40 @@ export default {
trainingNotStart: "{name}'s room hasn't started yet",
inputRoomNumber: 'Please enter the room number.',
chooseRoom: 'Choose Room',
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: ',
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',
putaway: 'Putaway',
soldOut: 'Sold out',
exportMap: 'Export Map',
@ -109,5 +142,7 @@ export default {
release: 'Release',
temporarilyNoData: 'Temporarily no data',
second: 'Second',
amount: 'Amount'
amount: 'Amount',
yes: 'yes',
no: 'no'
};

View File

@ -18,6 +18,8 @@ import screenMonitor from './screenMonitor';
import demonstration from './demonstration';
import exam from './exam';
import dashboard from './dashboard';
import jlmap3d from './jlmap3d';
import display from './display';
export default {
...enLocale,
@ -39,5 +41,7 @@ export default {
screenMonitor,
demonstration,
exam,
dashboard
dashboard,
jlmap3d,
display
};

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,14 @@ export default {
deleteTraining: 'Delete training',
automaticGenerationOfTraining: 'Automatic generation of training',
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'
};

View File

@ -86,5 +86,7 @@ export default {
orderCreation: 'Order creation',
chooseGoods: 'Choose goods',
permissionName: 'Permission Name',
receivingPermission: 'Receiving permission'
receivingPermission: 'Receiving permission',
isPackage: 'Whether package permissions',
modifyPermissionContent: 'Modify permission content'
};

View File

@ -246,6 +246,9 @@ export default {
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.'
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'
};

View File

@ -22,9 +22,6 @@ export default {
modifyScriptSuccess: 'Modify script success',
modifyScriptFail: 'Modify script failure',
deleteScriptTip: 'This action will delete this script, whether to continue?',
operateTip: 'Prompt',
confirmButtonText: 'Submit',
cancelButtonText: 'Cancle',
deleteScriptSucess: 'delete script sucess',
deleteScriptFail: 'delete script failure',
scriptRecordTitle: 'Script Record',
@ -82,21 +79,4 @@ export default {
modifyConversitionButton: 'modify',
drivingByPlan: 'Driving By Plan',
scriptBack: 'Back'
// roleManage: 'Role Manage',
// targetCondition: 'Task Target',
// taskScript: 'Task Script',
// roleName: 'Role Name',
// roleType: 'Role Type',
// deviceCode: 'Device Code',
// roleList: 'Role List',
// operation: 'Operation',
// roleAdd: 'Add',
// delete: 'Delete',
// behaviorOperate: 'Behavior Operate',
// conditionTitle: 'Target condition',
// deviceType: 'Device Type',
// deviceCondition: 'Device Condition',
// paramDeviceType: 'Param DeviceType',
// paramDeviceCode: 'Param DeviceCode'
};

View File

@ -46,6 +46,7 @@ export default {
selectTraining: 'Selection Training',
createUserTraining: 'Creating User Training',
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:',
trainingMaximum: 'Maximum time to complete the training:',
trainingInstructions: 'Training instructions:',
startTraining: 'Began to practice',
startTraining: 'Start training',
courseName: 'Course name',
courseDescription: 'Course description',

View File

@ -129,5 +129,11 @@ export default {
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'
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!'
};

View File

@ -19,5 +19,16 @@ export default {
residualPermissionDistributionMap: '剩余权限分布图',
totalPermissions: '权限总计',
noMapLineDataYetAvailable: '暂无地图线路数据',
individual: '个'
individual: '个',
permissionMap: {
'ATS现地工作站-课程权限': 0,
'ATS行调工作站-课程权限': 0,
'ATS现地工作站-考试权限': 0,
'ATS行调工作站-考试权限': 0,
'ATS现地工作站-仿真权限': 0,
'ATS行调工作站-仿真权限': 0,
'综合演练云平台-仿真权限': 0,
'司机模拟驾驶系统-仿真权限': 0,
'大屏系统权限': 0
}
};

View File

@ -0,0 +1,81 @@
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: '结束计划失败,请返回'
}
};

View File

@ -64,5 +64,24 @@ export default {
obtainCourseInformationFailed: '获取课程信息失败',
obtainStepDataFailed: '获取步骤数据失败',
submitExamFailed: '自动提交考试结果失败',
getTestInformationFailed: '获取试题息失败'
getTestInformationFailed: '获取试题息失败',
gifSource: 'gif来源',
page: '页面',
noPermissionToGoToThisPage: '你没有权限去该页面',
dissatisfied: '如有不满请联系你领导',
orYouCanGo: '或者你可以去:',
backToHome: '回首页',
justLookingAround: '随便看看',
pointMeToSeeThePicture: '点我看图',
casualLook: '随便看',
problemWithAudioQuality: '音频质量有问题',
audioIsTooLong: '音频过长,建议60s以下',
audioIsTooShort: '音频太短,建议重录',
networkProblem: '网络问题,请重试',
initializationFailed: '初始化失败:',
getMapDataFailed: '获取地图数据失败',
ibpNoDraw: '未绑定车站或该车站IBP盘暂未绘制',
startSimulationFailed: '开始仿真失败,请返回重试',
endSimulationFailed: '结束仿真失败,请返回',
runGraphIsNotLoaded: '今日运行图未加载',
};

View File

@ -148,5 +148,7 @@ export default {
release: '发布',
temporarilyNoData: '暂无数据',
second: '秒',
amount: '总数量'
amount: '总数量',
yes: '是',
no: '否'
};

View File

@ -18,6 +18,8 @@ import screenMonitor from './screenMonitor';
import demonstration from './demonstration';
import exam from './exam';
import dashboard from './dashboard';
import jlmap3d from './jlmap3d';
import display from './display';
export default {
...cnLocale,
@ -39,5 +41,7 @@ export default {
screenMonitor,
demonstration,
exam,
dashboard
dashboard,
jlmap3d,
display
};

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: '删除实训',
automaticGenerationOfTraining: '自动生成实训',
modifyTrainingByCategory: '按类别修改实训',
deleteAutoGeneratedTraining: '删除自动生成实训'
deleteAutoGeneratedTraining: '删除自动生成实训',
menu: '菜单',
turnout: '道岔',
section: '区段',
signaler: '信号机',
controlMode: '控制模式',
platform: '站台',
train: '列车',
station: '车站',
trainWindow: '车次窗'
};

View File

@ -86,5 +86,7 @@ export default {
select: '选择',
chooseGoods: '选择商品',
permissionName: '权限名称',
receivingPermission: '领取权限'
receivingPermission: '领取权限',
isPackage: '是否包权限',
modifyPermissionContent: '修改权限内容'
};

View File

@ -256,6 +256,9 @@ export default {
pleaseSelectButtonContent: '请输入内容',
endTimeRules: '结束时间必须大于开始时间',
selectCourses: '请选择课程',
selectTheMapRoute: '请选择地图线路'
selectTheMapRoute: '请选择地图线路',
enterKeyword: '请输入关键词',
successfullyModified: '修改成功',
modifyTheFailure: '修改失败',
selectTheCourseNameFirst: '请先选择课程名称'
};

View File

@ -83,21 +83,4 @@ export default {
drivingByPlan: '按计划行车',
scriptBack: '返回'
// roleManage: '角色管理',
// targetCondition: '任务目标',
// taskScript: '任务剧本',
// roleName: '角色名称',
// roleType: '角色类型',
// deviceCode: '设备编码',
// roleList: '角色列表',
// operation: '操作',
// roleAdd: '添加',
// delete: '删除',
// behaviorOperate: '行为操作',
// conditionTitle: '目标条件',
// deviceType: '设备类型',
// deviceCondition: '设备条件',
// paramDeviceType: '参数设备类型',
// paramDeviceCode: '参数设备编号'
};

View File

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

View File

@ -133,5 +133,11 @@ export default {
noCourseAuthority: '无此课程的考试权限,请前往购买!',
notWithinTheScopeOfTheExamination: '不在考试范围之内',
giveUpTheExamTip: '此操作将放弃本次考试, 是否继续?',
theNumberOfPermissionsAvailableIsZero: '可用的权限数量为0'
theNumberOfPermissionsAvailableIsZero: '可用的权限数量为0',
userRightsHaveBeenReclaimed: '用户权限已被收回',
beKickedOut: '您被管理员踢出房间',
deleteListHint: '此操作将删除该列表, 是否继续?',
setUpASubscriptionMapSuccessfully: '设置订阅地图成功!',
setUpASubscriptionMapFailed: '设置订阅地图失败!',
getMapStateDataException: '获取地图状态数据异常,请刷新页面重新加载。若多次遇到此类问题,请急时联系开发团队处理!'
};

View File

@ -2,21 +2,21 @@
<div>
<div class="display-card" :style="{top: offset+'px'}">
<el-row>
<span v-if="countTime" class="display-score">试用时间{{ countTime }}</span>
<span v-if="countTime" class="display-score">{{$t('display.demon.trialTime')}} {{ countTime }}</span>
</el-row>
</div>
<div class="display-draft">
<el-button-group>
<el-button v-if="isShowScheduling" type="primary" @click="jumpScheduling">派班计划</el-button>
<el-button v-if="isShowScheduling" type="primary" @click="jumpScheduling">{{$t('display.demon.dispatchingPlan')}}</el-button>
<el-button type="jumpjlmap3d" @click="jumpjlmap3d">{{ jl3dname }}</el-button>
<template v-if="isShowQuest">
<el-button type="danger" @click="handleQuitQuest">退出剧本</el-button>
<el-button type="danger" @click="handleQuitQuest">{{$t('display.demon.exitScript')}}</el-button>
</template>
<template v-else>
<el-button type="success" :disabled="isDisable" @click="selectBeginTime">按计划行车</el-button>
<el-button type="danger" :disabled="!isDisable" @click="end">退出计划</el-button>
<el-button type="success" :disabled="isDisable" @click="selectBeginTime">{{$t('display.demon.drivingByPlan')}}</el-button>
<el-button type="danger" :disabled="!isDisable" @click="end">{{$t('display.demon.exitPlan')}}</el-button>
</template>
<el-button type="primary" @click="back">返回</el-button>
<el-button type="primary" @click="back">{{$t('display.demon.back')}}</el-button>
</el-button-group>
</div>
<set-time ref="setTime" @ConfirmSelectBeginTime="start" />
@ -72,7 +72,7 @@ export default {
name: '',
remarks: ''
},
jl3dname: '三维视图'
jl3dname: this.$t('display.demon.threeDimensionalView')
};
},
computed: {
@ -88,8 +88,8 @@ export default {
this.group && this.initLoadPage();
},
'$store.state.socket.tipOperateCount': function (val) {
this.$alert('任务操作成功!', '提示', {
confirmButtonText: '确定',
this.$alert(this.$t('display.demon.taskOperateSuccess') , this.$t('global.tips'), {
confirmButtonText: this.$t('global.confirm'),
callback: action => {
}
});
@ -142,7 +142,7 @@ export default {
}, 1000);
}
}).catch(() => {
this.$messageBox(`获取时间失败`);
this.$messageBox(this.$t('display.demon.getTimeFail'));
});
},
selectBeginTime() {
@ -156,7 +156,7 @@ export default {
});
}).catch(() => {
this.isDisable = false;
this.$messageBox('开始仿真失败,请返回重试');
this.$messageBox(this.$t('display.demon.startSimulationFail'));
});
},
end() {
@ -170,14 +170,14 @@ export default {
});
}).catch(() => {
this.isDisable = true;
this.$messageBox('结束仿真失败,请返回');
this.$messageBox(this.$t('display.demon.endSimulationFail'));
});
},
handleQuitQuest() {
quitScript(this.group).then(resp => {
this.$emit('quitQuest');
}).catch(() => {
this.$messageBox('退出任务失败');
this.$messageBox(this.$t('display.demon.exitTaskFail'));
});
},
back() {
@ -208,9 +208,9 @@ export default {
},
change3dname() {
if (this.$route.query.prdType == '04') {
this.jl3dname = '司机视角';
this.jl3dname = this.$t('display.demon.driverPerspective');
} else {
this.jl3dname = '三维视图';
this.jl3dname = this.$t('display.demon.threeDimensionalView');
}
}
}

View File

@ -7,9 +7,9 @@
</div>
<div class="display-draft">
<el-button-group>
<el-button type="success" :disabled="isDisable" :loading="startLoading" @click="start">开始</el-button>
<el-button type="danger" :disabled="!isDisable" @click="end">结束</el-button>
<el-button type="primary" class="back" @click="back">返回</el-button>
<el-button type="success" :disabled="isDisable" :loading="startLoading" @click="start">{{$t('display.startBtn')}}</el-button>
<el-button type="danger" :disabled="!isDisable" @click="end">{{$t('display.endBtn')}}</el-button>
<el-button type="primary" class="back" @click="back">{{$t('display.backBtn')}}</el-button>
</el-button-group>
</div>
<tip-exam-list @refresh="refresh" />
@ -71,7 +71,7 @@ export default {
const h = this.$createElement;
this.$notify({
title: this.$t('global.tips'),
message: h('i', { style: 'color:' + opt.color }, '请点击开始考试操作')
message: h('i', { style: 'color:' + opt.color }, this.$t('display.exam.startTestOperateTip'))
});
}
},
@ -94,7 +94,7 @@ export default {
});
} else {
this.startLoading = true;
this.$messageBox(`请选择试题`);
this.$messageBox(this.$t('display.exam.selectTest'));
}
},
end() {
@ -113,18 +113,18 @@ export default {
this.init();
}).catch(() => {
this.$store.dispatch('training/emitTipFresh');
this.$messageBox(`结束实训错误`);
this.$messageBox(this.$t('display.exam.endTrainingError'));
});
} else {
this.isDisable = true;
this.$messageBox(`请先开始考试`);
this.$messageBox(this.$t('display.exam.startTestTip'));
}
}
},
back() {
this.$confirm('是否放弃本次考试?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
this.$confirm(this.$t('display.exam.endTestTip'), this.$t('global.tips'), {
confirmButtonText: this.$t('global.confirm'),
cancelButtonText: this.$t('global.cancel'),
type: 'warning'
}).then(() => {
this.$emit('quit');
@ -147,7 +147,7 @@ export default {
if (error.code === 500009) {
this.$router.replace({ path: `/exam/result/${this.$route.params.userExamId}` });
} else {
this.$messageBox(`刷新列表失败`);
this.$messageBox(this.$t('display.exam.refreshListError'));
}
});
},

View File

@ -3,19 +3,19 @@
<div class="display-card" :style="{top: offset + 'px'}">
<el-row>
<el-radio-group v-model="demoMode" class="mode" size="small">
<el-radio-button :label="TrainingMode.TEACH">教学模式</el-radio-button>
<el-radio-button :label="TrainingMode.PRACTICE">练习模式</el-radio-button>
<el-radio-button :label="TrainingMode.TEST">测验模式</el-radio-button>
<el-radio-button :label="TrainingMode.TEACH">{{ $t('display.lesson.teachingMode')}}</el-radio-button>
<el-radio-button :label="TrainingMode.PRACTICE">{{ $t('display.lesson.practiceMode')}}</el-radio-button>
<el-radio-button :label="TrainingMode.TEST">{{ $t('display.lesson.testMode')}}</el-radio-button>
</el-radio-group>
<span class="display-time">{{ formatUsedTime }}</span>
<span v-if="demoMode === TrainingMode.TEST" class="display-score">得分{{ formatScore }}</span>
<span v-if="demoMode === TrainingMode.TEST" class="display-score">{{ $t('display.lesson.score')}}{{ formatScore }}</span>
</el-row>
</div>
<div class="display-draft">
<el-button-group>
<el-button type="success" :disabled="isDisable" :loading="startLoading" @click="start">开始</el-button>
<el-button type="danger" class="end" :disabled="!isDisable" @click="end">结束</el-button>
<el-button type="primary" :disabled="backDisable" class="back" @click="back">返回</el-button>
<el-button type="success" :disabled="isDisable" :loading="startLoading" @click="start">{{ $t('display.startBtn')}}</el-button>
<el-button type="danger" class="end" :disabled="!isDisable" @click="end">{{ $t('display.endBtn')}}</el-button>
<el-button type="primary" :disabled="backDisable" class="back" @click="back">{{ $t('display.backBtn')}}</el-button>
</el-button-group>
</div>
<tip-training-detail :training-obj="trainingObj" />
@ -99,7 +99,8 @@ export default {
if (opt && opt.hasOwnProperty('color') && opt.hasOwnProperty('message')) {
const h = this.$createElement;
this.$notify({
title: '提示',
title: this.$t('global.tips'),
message: h('i', { style: 'color:' + opt.color }, opt.message)
});
}
@ -125,7 +126,7 @@ export default {
});
} else {
this.startLoading = false;
this.$messageBox(`请选择实训`);
this.$messageBox(this.$t('display.lesson.selectTraining'));
}
},
endCommit() {
@ -143,7 +144,7 @@ export default {
this.$store.dispatch('training/emitTipFresh');
});
}).catch(() => {
this.$messageBox(`结束实训错误`);
this.$messageBox(this.$t('display.lesson.endTrainingError'));
});
},
end() {
@ -156,9 +157,9 @@ export default {
this.endCommit();
} else {
this.backDisable = true;
this.$confirm('操作未完成,是否确认结束?', '提示', {
cancelButtonText: '取消',
confirmButtonText: '确定',
this.$confirm(this.$t('display.lesson.endTrainingTip'), this.$t('global.tips'), {
cancelButtonText: this.$t('global.cancel'),
confirmButtonText: this.$t('global.confirm'),
type: 'warning',
center: true,
zIndex: 9999
@ -174,7 +175,7 @@ export default {
}
});
} else {
this.$messageBox(`请先开始实训`);
this.$messageBox(this.$t('display.lesson.startTrainingTip'));
}
}
},
@ -188,7 +189,7 @@ export default {
trainingNotify({ trainingId: this.$route.query.trainingId }).then(resp => {
this.$router.push({ path: `${UrlConfig.lesson.record}/${this.$route.query.trainingId}/${this.$route.query.trainingName}`, query: { group: resp.data } });
}).catch(error => {
this.$messageBox(`创建仿真失败: ${error.message}`);
this.$messageBox(`${this.$t('display.lesson.createSimulationError')}: ${error.message}`);
});
} else {
history.go(-1);

View File

@ -1,9 +1,9 @@
<template>
<div class="display-draft">
<el-button-group>
<el-button type="success" :disabled="isDisable" @click="selectBeginTime">按计划行车</el-button>
<el-button type="danger" :disabled="!isDisable" @click="end">退出计划</el-button>
<el-button type="primary" @click="back">返回</el-button>
<el-button type="success" :disabled="isDisable" @click="selectBeginTime">{{$t('display.plan.drivingByPlan')}}</el-button>
<el-button type="danger" :disabled="!isDisable" @click="end">{{$t('display.plan.exitPlan')}}</el-button>
<el-button type="primary" @click="back">{{$t('display.plan.back')}}</el-button>
</el-button-group>
<set-time ref="setTime" @ConfirmSelectBeginTime="start" />
</div>
@ -74,7 +74,7 @@ export default {
});
}).catch(() => {
this.isDisable = false;
this.$messageBox('开始计划失败,请返回重试');
this.$messageBox(this.$t('display.plan.startPlanFail'));
});
},
end() {
@ -88,7 +88,7 @@ export default {
});
}).catch(() => {
this.isDisable = true;
this.$messageBox('结束计划失败,请返回');
this.$messageBox(this.$t('display.plan.endPlanFail'));
});
},
async back() {

View File

@ -7,7 +7,7 @@
<div class="draft-menu">
<el-row>
<el-col :span="4">
<el-select v-model="speed" placeholder="请选择" @change="changeSpeed">
<el-select v-model="speed" :placeholder="$t('display.replay.pleaseSelect')" @change="changeSpeed">
<el-option
v-for="item in optionsList"
:key="item.value"
@ -24,7 +24,7 @@
<el-progress class="progress" :percentage="progress" style="width: 100%" :show-text="false" />
</el-col>
<el-col :span="2">
<el-button type="primary" class="back" @click="back">返回</el-button>
<el-button type="primary" class="back" @click="back">{{$t('display.replay.back')}}</el-button>
</el-col>
</el-row>
</div>
@ -92,7 +92,7 @@ export default {
'mapDeviceStatus'
]),
playName() {
return this.isPlay ? '暂停' : '播放';
return this.isPlay ? this.$t('display.replay.pause') : this.$t('display.replay.play');
}
},
watch: {

View File

@ -2,12 +2,11 @@
<div>
<div class="display-card" :style="{top: offset+'px'}">
<el-row>
<span v-if="countTime" class="display-score">试用时间{{ countTime }}</span>
<span v-if="countTime" class="display-score">{{$t('display.screen.trialTime')}} {{ countTime }}</span>
</el-row>
</div>
</div>
</template>
<script>
import { getGoodsTryUse } from '@/api/management/goods';
import { PermissionType } from '@/scripts/ConstDic';
@ -77,7 +76,7 @@ export default {
}, 1000);
}
} else {
this.$messageBox(`获取时间失败`);
this.$messageBox(this.$t('display.screen.getTimeFail'));
}
}

View File

@ -1,7 +1,7 @@
<template>
<div v-if="isShowSystemTime" class="display-card" :style="{top: offset+'px', right: right+'px'}">
<template v-if="pause">
<span class="display-pause">暂停中</span>
<span class="display-pause">{{$t('display.systemTime.timePause')}}</span>
</template>
<template v-else>
<system-time

View File

@ -5,7 +5,8 @@
<i v-show="isShrink" class="icon el-icon-minus" @click="shrink" />
<i v-show="!isShrink" class="icon el-icon-plus" @click="shrink" />
<p v-if="!isShrink" style="color: #fff;">
<span class="time-label">考试计时</span>
<span class="time-label">{{$t('display.exam.examTime')}}</span>
<span class="time-elem">{{ formatRemainTime }}</span>
</p>
<p v-if="isShrink" style="color: #fff;">
@ -33,35 +34,35 @@
<div v-show="!detailShow" class="tip-body">
<el-scrollbar wrap-class="scrollbar-wrapper">
<p class="list-item">
<span class="list-label">本题名称</span>
<span class="list-label">{{$t('display.exam.questionTitle')}}</span>
<span class="list-elem">{{ courseModel.name }}</span>
</p>
<p class="list-item">
<span class="list-label">最佳用时</span>
<span class="list-elem">{{ courseModel.minDuration }} </span>
<span class="list-label">{{$t('display.exam.bestTime')}}</span>
<span class="list-elem">{{ courseModel.minDuration }} {{$t('display.seconds')}} </span>
</p>
<p class="list-item">
<span class="list-label">最大用时</span>
<span class="list-elem">{{ courseModel.maxDuration }} </span>
<span class="list-label">{{$t('display.exam.maximumTime')}}</span>
<span class="list-elem">{{ courseModel.maxDuration }} {{$t('display.seconds')}} </span>
</p>
<p class="list-item">
<span class="list-label"> 实训说明</span>
<span class="list-label"> {{$t('display.exam.trainingInstructions')}}</span>
<span class="list-elem">{{ courseModel.remarks }}</span>
</p>
</el-scrollbar>
</div>
<div class="tip-foot">
<div v-show="!detailShow" class="foot-detail">
<el-button class="btn" @click="backList">查看试题</el-button>
<el-button v-if="!isFirst" class="btn" type="primary" @click="lastExam">上一题</el-button>
<el-button v-if="!isLast" class="btn" type="primary" @click="nextExam">下一题</el-button>
<el-button v-if="isLast" class="btn" type="primary" @click="overExam">提交试卷</el-button>
<el-button class="btn" @click="backList">{{$t('display.exam.viewQuestions')}}</el-button>
<el-button v-if="!isFirst" class="btn" type="primary" @click="lastExam">{{$t('display.exam.prev')}}</el-button>
<el-button v-if="!isLast" class="btn" type="primary" @click="nextExam">{{$t('display.exam.next')}}</el-button>
<el-button v-if="isLast" class="btn" type="primary" @click="overExam">{{$t('display.exam.submitExaminationPaper')}}</el-button>
</div>
<div v-show="detailShow" class="foot-submit">
<el-button class="btn" type="primary" @click="overExam">提交试卷</el-button>
<el-button class="btn" type="primary" @click="overExam">{{$t('display.exam.submitExaminationPaper')}}</el-button>
</div>
<p style="color: #000; float: left;">
<span class="time-label">考试计时</span>
<span class="time-label">{{$t('display.exam.examTime')}}</span>
<span class="time-elem">{{ formatRemainTime }}</span>
</p>
</div>
@ -115,7 +116,7 @@ export default {
},
formatRemainTime() {
if (this.remainTime < 0) {
this.$message.success('考试结束自动提交');
this.$message.success(this.$t('display.exam.autoSubmit'));
this.submit();
}
@ -157,7 +158,7 @@ export default {
updateTime: res.data.updateTime
};
}).catch(error => {
this.$message.error('获取试题息失败:' + error.message);
this.$message.error(this.$t('display.exam.getTestInformation')+':' + error.message);
});
}
@ -192,7 +193,8 @@ export default {
if (error.code === 500009) {
this.$router.replace({ path: `/exam/result/${this.$route.params.userExamId}` });
} else {
this.$messageBox(`刷新列表失败`);
this.$messageBox(this.$t('display.exam.refreshListError'));
}
});
@ -242,9 +244,9 @@ export default {
if (isOver) {
this.submit();
} else {
this.$confirm('考试未完成,是否确认退出?', '提示', {
cancelButtonText: '取消',
confirmButtonText: '确定',
this.$confirm(this.$t('display.exam.cancleExam'), this.$t('global.tips'), {
cancelButtonText: this.$t('global.cancel'),
confirmButtonText: this.$t('global.confirm'),
type: 'warning',
center: true
}).then(() => {

View File

@ -12,19 +12,19 @@
<div class="tip-body">
<el-scrollbar wrap-class="scrollbar-wrapper">
<p class="list-item">
<span class="list-label">实训名称</span>
<span class="list-label">{{$t('display.training.trainingName')}}</span>
<span class="list-elem">{{ courseModel.name }}</span>
</p>
<p class="list-item">
<span class="list-label">最佳用时</span>
<span class="list-elem">{{ courseModel.minDuration }} </span>
<span class="list-label">{{$t('display.training.bestTime')}}</span>
<span class="list-elem">{{ courseModel.minDuration }} {{$t('display.seconds')}} </span>
</p>
<p class="list-item">
<span class="list-label">最大用时</span>
<span class="list-elem">{{ courseModel.maxDuration }} </span>
<span class="list-label">{{$t('display.training.maximumTime')}}</span>
<span class="list-elem">{{ courseModel.maxDuration }} {{$t('display.seconds')}} </span>
</p>
<p class="list-item">
<span class="list-label"> 实训说明</span>
<span class="list-label"> {{$t('display.training.trainingInstructions')}}</span>
<span class="list-elem">{{ courseModel.remarks }}</span>
</p>
</el-scrollbar>
@ -115,7 +115,7 @@ export default {
getPublishLessonDetail({ id: obj.lessonId }).then(response => {
this.lessonName = response.data.name;
}).catch(error => {
this.$message.error('获取课程信息失败:' + error.message);
this.$message.error(this.$t('display.training.getCourseInformationFail')+':' + error.message);
});
}

View File

@ -1,34 +1,34 @@
<template>
<div class="errPage-container">
<el-button icon="arrow-left" class="pan-back-btn" @click="back">
返回
{{$t('global.back')}}
</el-button>
<el-row>
<el-col :span="12">
<h1 class="text-jumbo text-ginormous">
Oops!
</h1>
gif来源<a href="https://zh.airbnb.com/" target="_blank">airbnb</a> 页面
<h2>你没有权限去该页面</h2>
<h6>如有不满请联系你领导</h6>
{{$t('error.gifSource')}}<a href="https://zh.airbnb.com/" target="_blank">airbnb</a> {{$t('error.page')}}
<h2>{{$t('error.noPermissionToGoToThisPage')}}</h2>
<h6>{{$t('error.dissatisfied')}}</h6>
<ul class="list-unstyled">
<li>或者你可以去:</li>
<li>{{$t('error.orYouCanGo')}}</li>
<li class="link-type">
<router-link to="/dashboard">
回首页
{{$t('error.backToHome')}}
</router-link>
</li>
<li class="link-type">
<a href="https://www.taobao.com/">随便看看</a>
<a href="https://www.taobao.com/">{{$t('error.justLookingAround')}}</a>
</li>
<li><a href="#" @click.prevent="dialogVisible=true">点我看图</a></li>
<li><a href="#" @click.prevent="dialogVisible=true">{{$t('error.pointMeToSeeThePicture')}}</a></li>
</ul>
</el-col>
<el-col :span="12">
<img :src="errGif" width="313" height="428" alt="Girl has dropped her ice cream.">
</el-col>
</el-row>
<el-dialog :visible.sync="dialogVisible" title="随便看">
<el-dialog :visible.sync="dialogVisible" :title="this.$t('error.casualLook')">
<img :src="ewizardClap" class="pan-img">
</el-dialog>
</div>

View File

@ -3,14 +3,14 @@
<div class="jalmap3ddiv">
<div class="trainstatus">
车组号:{{ trainnum }} {{ stoptimes }}
{{$t('jlmap3d.trainGroupNumber')}}{{ trainnum }} {{ stoptimes }}
</div>
<div class="display-draft">
<el-button-group>
<!-- <el-button type="primary" @click="raystand">站台选择</el-button> -->
<el-button type="primary" @click="cctvplane">{{ cctvbuttonmsg }}</el-button>
<el-button type="primary" @click="showplane">{{ showbuttonmsg }}</el-button>
<el-button type="primary" @click="back">返回</el-button>
<el-button type="primary" @click="back">{{$t('global.back')}}</el-button>
</el-button-group>
</div>
@ -72,9 +72,9 @@ export default {
jlmap3d: null,
selectmodel: null,
cctvshow:true,
cctvbuttonmsg: '车内监控——隐藏',
cctvbuttonmsg: this.$t('jlmap3d.surveillanceHidden'),
mmishow: false,
showbuttonmsg: '列车仪表——显示',
showbuttonmsg: this.$t('jlmap3d.trainInstrumentationDisplay'),
trainnum: '',
stoptimes: ''
};
@ -210,21 +210,21 @@ export default {
},
showplane() {
if (this.mmishow == true) {
this.showbuttonmsg = '列车仪表——隐藏';
this.showbuttonmsg = this.$t('jlmap3d.trainInstrumentationHidden');
this.mmishow = false;
} else {
this.showbuttonmsg = '列车仪表——显示';
this.showbuttonmsg = this.$t('jlmap3d.trainInstrumentationDisplay');
this.mmishow = true;
}
},
cctvplane() {
if (this.cctvshow == true) {
this.cctvbuttonmsg = '车内监控——隐藏';
this.cctvbuttonmsg = this.$t('jlmap3d.surveillanceHidden');
this.cctvshow = false;
this.jlmap3d.cctvoff();
} else {
this.cctvbuttonmsg = '车内监控——显示';
this.cctvbuttonmsg = this.$t('jlmap3d.surveillanceDisplay');
this.cctvshow = true;
this.jlmap3d.cctvon();
}

View File

@ -10,11 +10,11 @@
</div>
<div class="toptext" style="left:16%;top:15px;">
终点站:
{{$t('jlmap3d.terminal')}}
</div>
<div class="toptext" style="left:46%;top:15px;">
下一站:
{{$t('jlmap3d.nextStation')}}
</div>
<div class="toptext" style="left:76%;top:15px;">
@ -58,7 +58,7 @@
</div>
<div class = "righttext" style="left:0px;bottom:0;">
请确认前方信号开放
{{$t('jlmap3d.confirmSignalOpen')}}
</div>
</div>
@ -75,7 +75,7 @@
</div>
<div class="errortext">
故障信息:
{{$t('jlmap3d.faultInformation')}}
</div>
<div id="time" class="timetext">
@ -186,7 +186,7 @@ export default {
},
time(){
let vWeek,vWeek_s,vDay;
vWeek = ["星期天","星期一","星期二","星期三","星期四","星期五","星期六"];
vWeek = this.$t('jlmap3d.vWeek');
let date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;

View File

@ -66,42 +66,42 @@ export default {
treeData: [ //
{
children: [],
name: '管理员',
name: this.$t('joinTraining.admin'),
nodeId: 'admin01',
type: 'select',
show: false
},
{
children: [],
name: '教员',
name: this.$t('joinTraining.teacher'),
nodeId: 'admin02',
type: 'select',
show: false
},
{
children: [],
name: '调度员',
name: this.$t('joinTraining.dispatcher'),
nodeId: 'admin03',
type: 'select',
show: false
},
{
children: [],
name: '车站值班员',
name: this.$t('joinTraining.stationAttendant'),
nodeId: 'admin04',
type: 'select',
show: false
},
{
children: [],
name: '列车',
name: this.$t('joinTraining.driver'),
nodeId: 'admin05',
type: 'select',
show: false
},
{
children: [],
name: '通号',
name: this.$t('joinTraining.universalAccount'),
nodeId: 'admin06',
type: 'select',
show: false

View File

@ -43,10 +43,10 @@
@mousedown="startRecording()"
@mouseup="stopRecording()"
>{{ speak }}</div>
<div v-show="sending" class="sendBtn zIndex2" :style="{background: background}">发送中...</div>
<div v-show="sending" class="sendBtn zIndex2" :style="{background: background}">{{$t('joinTraining.sending')}}</div>
</div>
<div v-if="isShowAuto" class="switch-box">
<span style="font-size: 12px;">自动播放</span>
<span style="font-size: 12px;">{{$t('joinTraining.autoplay')}}</span>
<el-switch v-model="isAutoPlay" active-color="#13ce66" inactive-color="#d6d6d6" />
</div>
</div>
@ -97,7 +97,7 @@ export default {
label: '',
message: {},
sending: false,
speak: '按住说话',
speak: this.$t('joinTraining.holdAndTalk'),
targetId: '',
conversationId: '',
allConversationId: '', // id
@ -183,7 +183,7 @@ export default {
startRecording() {
if (this.speaking && this.conversationId) {
this.background = '#ccc';
this.speak = '录音中...';
this.speak = this.$t('joinTraining.recording');
this.sending = false;
this.speakOf = true;
HZRecorder.init.get(rec => {
@ -192,7 +192,7 @@ export default {
this.recorders.start();
} else {
this.background = '';
this.speak = '按住说话';
this.speak = this.$t('joinTraining.holdAndTalk');
}
});
}
@ -201,7 +201,7 @@ export default {
async stopRecording() {
if (this.speaking && this.conversationId) {
this.background = '';
this.speak = '按住说话';
this.speak = this.$t('joinTraining.holdAndTalk');
this.sending = true;
if (this.recorders) {
this.recorders.stop();
@ -220,25 +220,25 @@ export default {
if (message.err_no == 3301) {
this.$message({
showClose: true,
message: '音频质量有问题',
message: this.$t('error.problemWithAudioQuality'),
type: 'error'
});
} else if (message.err_no == 3308) {
this.$message({
showClose: true,
message: '音频过长,建议60s以下',
message: this.$t('error.audioIsTooLong'),
type: 'error'
});
} else if (message.err_no == 3314) {
this.$message({
showClose: true,
message: '音频太短,建议重录',
message: this.$t('error.audioIsTooShort'),
type: 'error'
});
} else {
this.$message({
showClose: true,
message: '网络问题,请重试',
message: this.$t('error.networkProblem'),
type: 'error'
});
}
@ -249,7 +249,7 @@ export default {
this.speakOf = false;
this.$message({
showClose: true,
message: '音频太短,建议重录',
message: this.$t('error.audioIsTooShort'),
type: 'error'
});
}

View File

@ -16,7 +16,6 @@
@runPlanViewShow="runPlanViewShow"
@faultChooseShow="faultChooseShow"
/>
IBP
<join-fault-choose ref="faultChoose" :group="group" />
<join-run-plan-Load ref="runPlanLoad" :group="group" />
<join-run-plan-view ref="runPlanView" :group="group" />
@ -114,8 +113,8 @@ export default {
this.mapBox = document.getElementsByTagName('canvas');
},
'$store.state.socket.permissionOver': function () {
this.$alert('用户权限已被收回', '提示', {
confirmButtonText: '确定',
this.$alert(this.$t('tip.userRightsHaveBeenReclaimed'), this.$t('tip.hint'), {
confirmButtonText: this.$t('global.confirm'),
showClose: false,
callback: async (action) => {
await this.$store.dispatch('training/over');
@ -133,7 +132,7 @@ export default {
'$store.state.socket.chatContentList': function (val) { //
if (val.type === 'userRoomKickOut'&&val.oneself) {
this.$router.push({ path: `/` });
this.messageInfo('您被管理员踢出房间。', 'warning');
this.messageInfo(this.$t('tip.beKickedOut'), 'warning');
}
},
'$store.state.app.windowSizeCount': function() {
@ -266,7 +265,7 @@ export default {
this.checkLoginLineTimer();
this.checkMouseStatusTimer();
} catch (error) {
this.$messageBox(`初始化失败: ${error.message}`);
this.$messageBox( this.$t('error.initializationFailed') + error.message);
this.endViewLoading();
}
},
@ -316,7 +315,7 @@ export default {
await loadMapData(skinCode);
await this.$store.dispatch('training/setMapDefaultState');
} catch (error) {
this.$messageBox(`获取地图数据失败`);
this.$messageBox(this.$t('error.getMapDataFailed'));
this.endViewLoading();
}
},
@ -339,7 +338,7 @@ export default {
},
showIbp(deviceCode) {
if (!deviceCode || !ibpData[deviceCode]){
this.$messageBox(`未绑定车站或该车站IBP盘暂未绘制`);
this.$messageBox(this.$t('error.ibpNoDraw'));
return;
}
this.drivingShow = false;

View File

@ -2,13 +2,13 @@
<div>
<div class="display-draft">
<el-button-group>
<el-button v-if="isIBP" type="warning" @click="jumpIbp">IBP盘</el-button>
<el-button v-if="isDriver" type="jumpjlmap3d" @click="jumpjlmap3d">司机视角</el-button>
<el-button v-if="isIBP" type="warning" @click="jumpIbp">{{$t('joinTraining.iBPDisk')}}</el-button>
<el-button v-if="isDriver" type="jumpjlmap3d" @click="jumpjlmap3d">{{$t('joinTraining.driverPerspective')}}</el-button>
<template v-if="isAdmin">
<el-button type="success" :disabled="isDisable" @click="selectBeginTime">按计划行车</el-button>
<el-button type="danger" :disabled="!isDisable" @click="end">退出计划</el-button>
<el-button type="success" :disabled="isDisable" @click="selectBeginTime">{{$t('joinTraining.drivingByPlan')}}</el-button>
<el-button type="danger" :disabled="!isDisable" @click="end">{{$t('joinTraining.exitPlan')}}</el-button>
</template>
<el-button v-if="!isBigScreen" type="primary" @click="back">返回</el-button>
<el-button v-if="!isBigScreen" type="primary" @click="back">{{$t('global.back')}}</el-button>
</el-button-group>
</div>
<qr-code ref="qrCode" />
@ -286,7 +286,7 @@ export default {
});
}).catch(() => {
this.isDisable = false;
this.$messageBox('开始仿真失败,请返回重试');
this.$messageBox(this.$t('error.startSimulationFailed'));
});
},
end() {
@ -295,7 +295,7 @@ export default {
runDiagramOver(this.group).catch(() => {
this.$store.dispatch('training/over').then(() => {
this.isDisable = true;
this.$messageBox('结束仿真失败,请返回');
this.$messageBox(this.$t('error.endSimulationFailed'));
});
});
},

View File

@ -16,10 +16,10 @@
<el-radio v-model="selected" :label="item"><span>{{ item.name }}</span></el-radio>
</li>
</ul>
<span v-else class="tipLable"> 暂无数据 </span>
<span v-else class="tipLable"> {{$t('global.temporarilyNoData')}} </span>
<span slot="footer" class="dialog-footer">
<el-button @click="doClose"> </el-button>
<el-button type="primary" :loading="loading" @click="commit"> </el-button>
<el-button @click="doClose">{{$t('global.cancel')}}</el-button>
<el-button type="primary" :loading="loading" @click="commit">{{$t('global.confirm')}}</el-button>
</span>
</el-dialog>
</template>

View File

@ -44,11 +44,11 @@ export default {
menuShow: false,
menu: [
{
label: '设置司机',
label: this.$t('joinTraining.chooseDriver'),
handler: this.chooseDriver
},
{
label: '取消司机',
label: this.$t('joinTraining.cancelDriver'),
handler: this.cancelDriver
}
]
@ -98,7 +98,7 @@ export default {
return ret;
});
this.$refs.chooseRole.doShow({ title: '设置列车', list: list });
this.$refs.chooseRole.doShow({ title: this.$t('joinTraining.chooseDriver'), list: list });
},
async setDriver(obj) {
if (obj && this.selected) {

View File

@ -4,7 +4,7 @@
v-if="userRole == 'Instructor' || userRole == 'Admin'"
v-model="swch"
size="small"
placeholder="请选择产品类型"
:placeholder="this.$t('rules.productTypeInput')"
@change="switchMode"
>
<el-option v-for="item in swchList" :key="item.value" :label="item.name" :value="item.value" />
@ -12,14 +12,14 @@
<el-button-group>
<template>
<el-button v-if="runing" size="small" :disabled="viewDisabled" @click="viewRunPlan">运行图预览</el-button>
<el-button v-if="runing" size="small" :disabled="viewDisabled" @click="viewRunPlan">{{$t('joinTraining.runGraphPreview')}}</el-button>
</template>
<template v-if="userRole == 'Admin'">
<el-button v-if="!runing" size="small" type="warning" :disabled="viewDisabled" @click="loadRunPlan">
运行图加载</el-button>
{{$t('joinTraining.runGraphLoading')}}</el-button>
</template>
<template v-if="userRole == 'Instructor' || userRole == 'Admin'">
<el-button v-if="mode==OperateMode.FAULT" size="small" type="danger" @click="setFault">故障设置</el-button>
<el-button v-if="mode==OperateMode.FAULT" size="small" type="danger" @click="setFault">{{$t('joinTraining.faultSetting')}}</el-button>
</template>
</el-button-group>
@ -29,8 +29,8 @@
size="small"
@change="changeOperateMode(mode)"
>
<el-radio-button class="mode" :label="OperateMode.NORMAL">正常操作</el-radio-button>
<el-radio-button class="mode" :label="OperateMode.FAULT">故障操作</el-radio-button>
<el-radio-button class="mode" :label="OperateMode.NORMAL">{{$t('joinTraining.normalOperation')}}</el-radio-button>
<el-radio-button class="mode" :label="OperateMode.FAULT">{{$t('joinTraining.faultOperation')}}</el-radio-button>
</el-radio-group>
</div>
</template>
@ -67,8 +67,8 @@ export default {
runPlanData: {},
swch: '02',
swchList: [
{ value: '01', name: '现地' },
{ value: '02', name: '行调' }
{ value: '01', name: this.$t('joinTraining.local') },
{ value: '02', name: this.$t('joinTraining.lineAdjustment') }
],
runing: false,
userId: ''
@ -113,14 +113,14 @@ export default {
}).catch(error => {
this.$store.dispatch('runPlan/setPlanData', []);
if (error.code == 30001) {
this.$messageBox(`今日运行图未加载`);
this.$messageBox(this.$t('error.runGraphIsNotLoaded'));
} else {
this.$messageBox(`获取运行图数据失败`);
this.$messageBox(this.$t('error.obtainOperationGraphFailed'));
}
});
});
}).catch(() => {
this.$messageBox(`获取车站列表失败`);
this.$messageBox(this.$t('error.obtainStationListFailed'));
});
}
});

View File

@ -27,15 +27,15 @@
dicId: '',
dic: {},
deviceList: [
{ label: '菜单', value: 'bar' },
{ label: '道岔', value: '02' },
{ label: '区段', value: '03' },
{ label: '信号机', value: '04' },
{ label: '控制模式', value: '05' },
{ label: '站台', value: '06' },
{ label: '列车', value: '07' },
{ label: '车站', value: '08' },
{ label: '车次窗', value: '09' }
{ label: this.$t('lesson.menu'), value: 'bar' },
{ label: this.$t('lesson.turnout'), value: '02' },
{ label: this.$t('lesson.section'), value: '03' },
{ label: this.$t('lesson.signaler'), value: '04' },
{ label: this.$t('lesson.controlMode'), value: '05' },
{ label: this.$t('lesson.platform'), value: '06' },
{ label: this.$t('lesson.train'), value: '07' },
{ label: this.$t('lesson.station'), value: '08' },
{ label: this.$t('lesson.trainWindow'), value: '09' }
],
pagerConfig: {
pageSize: 'pageSize',

View File

@ -43,7 +43,7 @@ export default {
width: '250',
buttons: [
{
name: '删除',
name: this.$t('global.delete'),
handleClick: this.handledelete,
type: 'danger'
}
@ -59,16 +59,16 @@ export default {
methods: {
//
handledelete(index, row) {
this.$confirm('此操作将删除该列表, 是否继续?', this.$t('global.tips'), {
this.$confirm( this.$t('tip.deleteListHint'), this.$t('global.tips'), {
confirmButtonText: this.$t('global.confirm'),
cancelButtonText: this.$t('global.cancel'),
type: 'warning'
}).then(() => {
delCacheList(row.key).then(response => {
this.$message.success('删除成功');
this.$message.success(this.$t('tip.successfullyDelete'));
this.reloadTable();
}).catch(() => {
this.$messageBox('删除失败');
this.$messageBox(this.$t('tip.failDelete'));
});
});
},

View File

@ -1,15 +1,15 @@
<template>
<el-dialog :title="'订阅地图'" :visible.sync="dialogVisible" width="30%" :before-close="doClose" center :close-on-click-modal="false">
<el-dialog :title="this.$t('system.subscribeMap')" :visible.sync="dialogVisible" width="30%" :before-close="doClose" center :close-on-click-modal="false">
<el-form ref="form" v-model="formModel" label-width="120px">
<el-form-item label="订阅地图列表:" prop="mapIdList">
<el-select v-model="formModel.mapIdList" clearable multiple placeholder="请输入关键词" style="width: 80%">
<el-form-item :label="this.$t('system.subscribeToTheMapList')" prop="mapIdList">
<el-select v-model="formModel.mapIdList" clearable multiple :placeholder="this.$t('rules.enterKeyword')" style="width: 80%">
<el-option v-for="item in mapList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleCorrelation"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="handleCorrelation">{{$t('global.confirm')}}</el-button>
<el-button @click="dialogVisible = false">{{$t('global.cancel')}}</el-button>
</span>
</el-dialog>
</template>
@ -72,10 +72,10 @@ export default {
});
}
saveUserSubscribe(model).then(response => {
this.$message.success('设置订阅地图成功!');
this.$message.success(this.$t('tip.setUpASubscriptionMapSuccessfully'));
this.doClose();
}).catch(() => {
this.$message.success('设置订阅地图失败!');
this.$message.success(this.$t('tip.setUpASubscriptionMapFailed'));
this.doClose();
});
}

View File

@ -2,8 +2,8 @@
<el-dialog :title="title" :visible.sync="dialogVisible" width="30%" :before-close="handleClose" center :close-on-click-modal="false">
<data-form ref="dataform" :form="form" :form-model="formModel" :rules="rules" />
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="doSave"> </el-button>
<el-button @click="handleClose"> </el-button>
<el-button type="primary" @click="doSave">{{$t('global.confirm')}}</el-button>
<el-button @click="handleClose">{{$t('global.cancel')}}</el-button>
</span>
</el-dialog>
</template>
@ -37,10 +37,10 @@ export default {
const form = {
labelWidth: '100px',
items: [
{ prop: 'mapName', label: '地图名称', type: 'text', required: false, disabled: true },
{ prop: 'mapPrdName', label: '产品名称', type: 'text', required: false, disabled: true },
{ prop: 'userName', label: '用户名称', type: 'text', required: false, disabled: true },
{ prop: 'duration', label: '实训时长', type: 'text', rightWidth: true, required: true, message: 's' }
{ prop: 'mapName', label: this.$t('system.mapName'), type: 'text', required: false, disabled: true },
{ prop: 'mapPrdName', label: this.$t('system.productName'), type: 'text', required: false, disabled: true },
{ prop: 'userName', label: this.$t('system.userName'), type: 'text', required: false, disabled: true },
{ prop: 'duration', label: this.$t('system.trainingTime'), type: 'text', rightWidth: true, required: true, message: 's' }
]
};
return form;
@ -48,13 +48,13 @@ export default {
rules() {
const crules = {
period: [
{ required: true, message: '请输入时长', trigger: 'blur' }
{ required: true, message: this.$t('rules.timeInput'), trigger: 'blur' }
]
};
return crules;
},
title() {
return '编辑仿真详情';
return this.$t('system.editSimulationDetails');
}
},
methods: {
@ -84,11 +84,11 @@ export default {
duration: this.formModel.duration
};
putSimulationStats(parma).then(response => {
self.$message.success('修改成功!');
self.$message.success(this.$t('rules.successfullyModified'));
self.handleClose();
self.$emit('reloadTable');
}).catch(error => {
self.$message.error('修改失败!' + error.message);
self.$message.error(this.$t('rules.modifyTheFailure') + error.message);
});
},
handleClose(done) {

View File

@ -134,7 +134,7 @@ export default {
if (this.formModel.lessonId) {
this.$refs.addTraining.show(this.formModel.lessonId);
} else {
this.$message.error('请先选择课程名称');
this.$message.error(this.$t('rules.selectTheCourseNameFirst'));
}
},
show(data) {

View File

@ -82,8 +82,8 @@ export default {
await this.$store.dispatch('socket/setSimulationError');
await this.$store.dispatch('training/setMapDefaultState');
this.clearSubscribe();
this.$confirm('获取地图状态数据异常,请刷新页面重新加载。若多次遇到此类问题,请急时联系开发团队处理!', '提示', {
confirmButtonText: '确定',
this.$confirm(this.$t('tip.getMapStateDataException'), this.$t('tip.hint'), {
confirmButtonText: this.$t('global.confirm'),
showCancelButton: false,
type: 'warning'
}).then(() => {

View File

@ -42,8 +42,8 @@ export default {
mapId: '',
PermissionTypeList: [],
ruleLists: [
{ value: true, label: '是' },
{ value: false, label: '否' }
{ value: true, label: this.$t('global.yes') },
{ value: false, label: this.$t('global.no') }
],
show: false,
param: '',
@ -57,7 +57,7 @@ export default {
queryObject: {
'name': {
type: 'text',
label: '权限名称'
label: this.$t('orderAuthor.permissionName')
},
'type': {
type: 'select',
@ -74,11 +74,11 @@ export default {
indexShow: true,
columns: [
{
title: '权限名称',
title: this.$t('orderAuthor.permissionName'),
prop: 'name'
},
{
title: '是否包权限',
title: this.$t('orderAuthor.isPackage'),
prop: 'isPackage',
type: 'tag',
columnValue: (row) => { return this.$convertField(row.isPackage, this.ruleLists, ['value', 'label']); },
@ -92,11 +92,11 @@ export default {
tagType: (row) => { return ''; }
},
{
title: '创建时间',
title: this.$t('orderAuthor.creationTime'),
prop: 'createTime'
},
{
title: '创建者',
title: this.$t('orderAuthor.founder'),
prop: 'creatorUserName'
},
{

View File

@ -1,6 +1,6 @@
<template>
<div>
<el-dialog title="修改权限内容" :visible.sync="dialogShow" width="30%" :before-close="handleClose" :z-index="2000">
<el-dialog :title="this.$t('orderAuthor.modifyPermissionContent')" :visible.sync="dialogShow" width="30%" :before-close="handleClose" :z-index="2000">
<div>
<el-form
ref="form"
@ -14,7 +14,7 @@
<el-form-item :label="$t('map.mapName')" prop="name">
<el-input v-model="editModel.name" />
</el-form-item>
<el-form-item label="描述" prop="remarks">
<el-form-item :label="this.$t('orderAuthor.describtion')" prop="remarks">
<el-input
v-model="editModel.remarks"
type="textarea"

View File

@ -48,9 +48,9 @@ export default {
labelWidth: '100px',
reset: true,
queryObject: {
'permissionType': {
type: 'select',
label: this.$t('orderAuthor.permissionType'),
'permissionName': {
type: 'text',
label: this.$t('orderAuthor.permissionName'),
config: {
data: []
}

View File

@ -175,7 +175,7 @@ export default {
name: this.$t('orderAuthor.recovery'),
handleClick: this.handleRestore,
type: 'danger',
showControl: (row) => { return row.status == '1' && row.source == '03' || row.source == '04' || row.source =='05'; }
showControl: (row) => { return row.status == '1' && (row.source == '03' || row.source == '04' || row.source =='05'); }
}
]
}

View File

@ -28,7 +28,7 @@
</el-table-column>
<el-table-column prop="mapProductCode" :label="$t('permission.mapProductName')" width="100">
<template slot-scope="scope">
{{ computedName(mapProductList, scope.row.mapProductCode) }}
{{ computedName(mapProductList, scope.row.prdCode) }}
</template>
</el-table-column>
<el-table-column prop="lessonId" :label="$t('permission.lessonName')">
@ -203,7 +203,7 @@ export default {
const index = this.ruleList.findIndex(elem => {
return item.mapId == elem.mapId &&
item.lessonId == elem.lessonId &&
item.mapProductCode == elem.mapProductCode &&
item.prdCode == elem.prdCode &&
item.permissionType == elem.permissionType;
});
getPublishMapInfo(item.mapId).then(resp => {

View File

@ -148,9 +148,9 @@ export default {
dumpScenesData() {
this.clearAutoSave();
const group=this.group;
this.$confirm(this.$t('scriptRecord.clearDataTip'), this.$t('scriptRecord.operateTip'), {
confirmButtonText: this.$t('scriptRecord.confirmButtonText'),
cancelButtonText: this.$t('scriptRecord.cancelButtonText'),
this.$confirm(this.$t('scriptRecord.clearDataTip'), this.$t('global.tips'), {
confirmButtonText: this.$t('global.confirm'),
cancelButtonText: this.$t('global.cancel'),
type: 'warning'
}).then(() => {
dumpScriptData(group).then(resp => {