代码提交

This commit is contained in:
fan 2023-02-02 18:01:27 +08:00
parent 1fe0f491f8
commit 03c97957f3
35 changed files with 656 additions and 620 deletions

View File

@ -4,10 +4,10 @@
<qrcode-vue v-loading="loading" :value="url" :size="400" />
</div>
<div v-if="group" class="qrcodeGroup">
<span>{{ $t('global.roomId')+group }}</span>
<span>{{ 'Simulation number:'+group }}</span>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="doClose">{{ $t('global.close') }}</el-button>
<el-button @click="doClose">Close</el-button>
</span>
</el-dialog>
</template>

View File

@ -69,8 +69,8 @@
<div class="middle-right">
<div class="middle-right-top">
<el-table :data="getTableData" border style="width: 100%" height="190">
<el-table-column type="index" label="Index" width="50" />
<el-table-column prop="name" label="Ordered unit" />
<el-table-column type="index" label="Index" width="53" />
<el-table-column prop="name" label="Ordered unit" width="105" />
<el-table-column prop="copyers" label="Place of receipt" />
</el-table>
</div>
@ -81,7 +81,7 @@
</div>
<div class="middle-right-bottom">
<el-table :data="readList" border style="width: 100%" height="200">
<el-table-column type="index" label="Index" width="50" />
<el-table-column type="index" label="Index" width="53" />
<el-table-column prop="reader" label="Read by" />
<el-table-column prop="readTime" label="Reading time" />
</el-table>

View File

@ -1,6 +1,6 @@
<template>
<div class="menus" :style="{width: width + 'px'}">
<div class="title">{{ `CTC3.0(车务终端A机)--王岗:${dateString}第一班 18:00 管理员代--` }}</div>
<div class="title">{{ `CTC3.0(Train Service Terminal)${dateString}` }}</div>
<menu-bar ref="menuBar" :selected="selected" />
<div style="position: absolute; top: 64px;z-index: 10;background: #F0F0F0;padding: 2px;height: 65px;width: 100%;">
<div style="display: flex;">
@ -24,13 +24,13 @@
<img :src="ctcBarIcon18" class="img-box" @click="handleRunplan">
</div>
<div style="display: flex;padding: 2px;border-top: 2px solid #D1D1D1;margin-top: 3px">
<div class="img-box" :class="{flicker: hasCommandMsg, redFlick: hasCommandMsg}" style="width: 100px;height: 25px;line-height: 21px;text-align: center;" @click="showCmdManage">Scheduling order</div>
<div class="img-box" :class="{flicker: hasCommandMsg, redFlick: hasCommandMsg}" style="width: 125px;height: 25px;line-height: 21px;text-align: center;" @click="showCmdManage">Scheduling order</div>
<div style="width: 200px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;" />
<div id="stageRunplanOut" class="img-box" @click="stageRunplan">Phase plan</div>
<div class="img-box" style="width: 100px;height: 25px;line-height: 21px;text-align: center;margin-left: 5px;">Stage chronicle</div>
<div class="img-box" style="width: 125px;height: 25px;line-height: 21px;text-align: center;margin-left: 5px;">Stage chronicle</div>
<div style="width: 200px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;">{{ dateString1 + ' ' + time }}</div>
<div style="width: 200px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;">Synchronous station machine communication interrupted</div>
<div style="width: 200px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;">Communication with the centre is normal</div>
<div style="width: 420px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;">Synchronous station machine communication interrupted</div>
<div style="width: 305px;height: 25px;border: 2px #D1D1D1 inset;line-height: 21px;text-align: center;margin-left: 5px;">Communication with the centre is normal</div>
</div>
</div>
<menu-button-ctc ref="menuButtonCtc" :selected="selected" />

View File

@ -15,12 +15,12 @@ export default {
return {
menuNormal: [
{
title: '登录(L)',
title: 'Login(L)',
operate: '',
children: []
},
{
title: '应用程序(T)',
title: 'Application program(T)',
operate: '',
children: []
}

View File

@ -1,5 +1,5 @@
<template>
<div id="menuButtons_box" class="menu menuButton" style="height:40px;" :style="{left: point.x+'px', bottom: point.y+'px' }">
<div id="menuButtons_box" class="menu menuButton" style="height:48px;" :style="{left: point.x+'px', bottom: point.y+'px' }">
<!-- backgroundColor: xGuideMasterLock? guideColorDown: guideColorUp -->
<button :id="Station.stationMasterLock.rightButton.domId" class="button_box" :style="{width: width+'px', backgroundColor:buttonUpColor}" @click="guideLockRightButtonDown()">
<span style="color: #800000">
@ -968,8 +968,8 @@ export default {
.button_box{
display: block;
float: left;
font-size: 13px;
height: 35px;
font-size: 11px;
height: 45px;
cursor: pointer;
border-bottom-width: 1px;
border-top-width: 1px;

View File

@ -1,108 +1,108 @@
<template>
<div id="menuButtons_box" class="menu menuButton" style="height: 35px;" :style="{left: point.x+'px', bottom: point.y+'px' }">
<button :id="Signal.arrangementRoute.button.domId" class="button_box" @click="buttonDown(Signal.arrangementRoute.button.operation, ['Signal','SignalButton'])">
<button :id="Signal.arrangementRoute.button.domId" class="button_box" style="width: 100px;" @click="buttonDown(Signal.arrangementRoute.button.operation, ['Signal','SignalButton'])">
<span :style="{ color: operation === Signal.arrangementRoute.button.operation ? '#ccc':'black'}">
<center><b>Approach</b></center>
<center><b>establishment</b></center>
</span>
</button>
<button :id="MixinCommand.totalCancel.button.domId" class="button_box" @click="buttonDown(MixinCommand.totalCancel.button.operation, ['Signal','SignalButton'])">
<button :id="MixinCommand.totalCancel.button.domId" class="button_box" style="width: 85px;" @click="buttonDown(MixinCommand.totalCancel.button.operation, ['Signal','SignalButton'])">
<span :style="{color: operation === MixinCommand.totalCancel.button.operation ? '#ccc': 'black'}">
<center><b>Total </b></center>
<center><b>cancellation</b></center>
</span>
</button>
<button :id="Signal.reopenSignal.button.domId" class="button_box" @click="buttonDown(Signal.reopenSignal.button.operation, ['Signal','SignalButton'])">
<button :id="Signal.reopenSignal.button.domId" class="button_box" style="width: 85px;" @click="buttonDown(Signal.reopenSignal.button.operation, ['Signal','SignalButton'])">
<span :style="{color: operation === Signal.reopenSignal.button.operation ? '#ccc': 'black'}">
<center><b>Signal</b></center>
<center><b>re-opening</b></center>
</span>
</button>
<button :id="Signal.guide.button.domId" class="button_box" @click="buttonDown(Signal.guide.button.operation, ['SignalButton'])">
<button :id="Signal.guide.button.domId" class="button_box" style="width: 60px;" @click="buttonDown(Signal.guide.button.operation, ['SignalButton'])">
<span :style="{color: operation === Signal.guide.button.operation? '#ccc':'#800000'}">
<center><b>Guide</b></center>
<center><b>buttons</b></center>
</span>
</button>
<button :id="Station.guideLock.button.domId" :disabled="true" class="button_box" @click="buttonDown(Station.guideLock.button.operation, ['Button'])">
<button :id="Station.guideLock.button.domId" :disabled="true" class="button_box" style="width: 85px;" @click="buttonDown(Station.guideLock.button.operation, ['Button'])">
<span :style="{color: operation === Station.guideLock.button.operation?'#ccc':'#800000'}">
<center><b>Guided</b></center>
<center><b>Master</b><b>Lock</b></center>
</span>
</button>
<button :id="Signal.humanTrainRoute.button.domId" class="button_box" @click="buttonDown(Signal.humanTrainRoute.button.operation, ['Signal','SignalButton'])">
<button :id="Signal.humanTrainRoute.button.domId" class="button_box" style="width: 85px;" @click="buttonDown(Signal.humanTrainRoute.button.operation, ['Signal','SignalButton'])">
<span :style="{color: operation === Signal.humanTrainRoute.button.operation ? '#ccc':'#800000'}">
<center><b>Total</b></center>
<center><b>man</b><b>unlock</b></center>
</span>
</button>
<button :id="Switch.locate.button.domId" class="button_box" @click="buttonDown(Switch.locate.button.operation, ['Switch'])">
<button :id="Switch.locate.button.domId" class="button_box" style="width: 85px;" @click="buttonDown(Switch.locate.button.operation, ['Switch'])">
<span :style="{color: operation === Switch.locate.button.operation? '#ccc':'black'}">
<center><b>Turnout</b></center>
<center><b>total</b><b>setting</b></center>
</span>
</button>
<button :id="Switch.reverse.button.domId" class="button_box" @click="buttonDown(Switch.reverse.button.operation, ['Switch'])">
<button :id="Switch.reverse.button.domId" class="button_box" style="width: 70px;" @click="buttonDown(Switch.reverse.button.operation, ['Switch'])">
<span :style="{color: operation === Switch.reverse.button.operation? '#ccc':'black'}">
<center><b>Turnout</b></center>
<center><b>reversal</b></center>
</span>
</button>
<button :id="Switch.lock.button.domId" class="button_box" @click="buttonDown(Switch.lock.button.operation, ['Switch'])">
<button :id="Switch.lock.button.domId" class="button_box" style="width: 125px;" @click="buttonDown(Switch.lock.button.operation, ['Switch'])">
<span :style="{color: operation === Switch.lock.button.operation ? '#ccc':'black'}">
<center><b>Turnout</b></center>
<center><b>individually</b><b>locked</b></center>
</span>
</button>
<button :id="Switch.unlock.button.domId" class="button_box" @click="buttonDown(Switch.unlock.button.operation, ['Switch'])">
<button :id="Switch.unlock.button.domId" class="button_box" style="width: 140px;" @click="buttonDown(Switch.unlock.button.operation, ['Switch'])">
<span :style="{color: operation === Switch.unlock.button.operation ? '#ccc':'black'}">
<center><b>Turnout</b></center>
<center><b>individually</b><b>unlocked</b></center>
</span>
</button>
<button :id="MixinCommand.block.button.domId" class="button_box" @click="buttonDown(MixinCommand.block.button.operation, ['Switch', 'Signal'])">
<button :id="MixinCommand.block.button.domId" class="button_box" style="width: 70px;" @click="buttonDown(MixinCommand.block.button.operation, ['Switch', 'Signal'])">
<span :style="{color: operation === MixinCommand.block.button.operation ? '#ccc':'black'}">
<center><b>Blocking</b></center>
<center><b>buttons</b></center>
</span>
</button>
<button :id="MixinCommand.functionButton.button.domId" class="button_box" @click="buttonDown(MixinCommand.functionButton.button.operation, ['StationStand', 'Station','SignalButton'])">
<button :id="MixinCommand.functionButton.button.domId" class="button_box" style="width: 70px;" @click="buttonDown(MixinCommand.functionButton.button.operation, ['StationStand', 'Station','SignalButton'])">
<span :style="{color: operation === MixinCommand.functionButton.button.operation ? '#ccc':'black'}">
<center><b>Function</b></center>
<center><b>buttons</b></center>
</span>
</button>
<button :id="111" class="button_box" @click="buttonDown()">
<button :id="111" class="button_box" style="width: 70px;" @click="buttonDown()">
<span style="color: black;">
<center><b>Ramp</b></center>
<center><b>unlocking</b></center>
</span>
</button>
<button :id="222" :disabled="true" class="button_box" @click="buttonDown()">
<button :id="222" :disabled="true" class="button_box" style="width: 50px;" @click="buttonDown()">
<span style="color: black;">
<center><b>Bad</b></center>
<center><b>split</b></center>
</span>
</button>
<button :id="Command.cancel.clearMbm.domId" class="button_box" @click="commandClear">
<button :id="Command.cancel.clearMbm.domId" class="button_box" style="width: 75px;" @click="commandClear">
<span style="color: black;">
<center><b>Command</b></center>
<center><b>clear</b></center>
</span>
</button>
<button :id="333" class="button_box" @click="commandOrders">
<button :id="333" class="button_box" style="width: 75px;" @click="commandOrders">
<span style="color: black;">
<center><b>Command</b></center>
<center><b>given</b></center>
</span>
</button>
<button :id="444" class="button_box" @click="buttonDown()">
<button :id="444" class="button_box" style="width: 70px;" @click="buttonDown()">
<span style="color: black;">
<center><b>Status</b></center>
<center><b>selection</b></center>
</span>
</button>
<button :id="555" class="button_box" @click="buttonDown()">
<button :id="555" class="button_box" style="width: 55px;" @click="buttonDown()">
<span style="color: black;">
<center><b>Mode</b></center>
<center><b>change</b></center>
@ -918,9 +918,9 @@ export default {
.button_box{
display: block;
float: left;
font-size: 13px;
font-size: 11px;
height: 35px;
width: 45px;
width: 90px;
background: #F0F0F0;
}
.menu {

View File

@ -78,7 +78,7 @@
ref="runplanContentTable"
:data="tableData"
border
height="695"
height="540"
highlight-current-row
:row-class-name="judgeColor"
style="width: 100%;border:1px #ccc solid"
@ -267,7 +267,7 @@
<el-table-column width="70">
<template slot="header">
<div class="runplanTableTname runplanThreeLevel">
<div style="width:16px;float:left;line-height: 13px;margin-left: 13px;margin-top: 3px;">Tracking and shunting</div>
<div style="width:50px;float:left;line-height: 13px;margin-left: 13px;margin-top: 3px;">Tracking and shunting</div>
<!-- <div style="width: 16px;display:inline-block;line-height:20px;"><br><br><br></div>-->
</div>
<div class="runplanTableNo">17</div>
@ -276,7 +276,7 @@
<el-table-column width="70">
<template slot="header">
<div class="runplanTableTname runplanThreeLevel">
<div style="width:16px;float:left;line-height: 13px;margin-left: 13px;margin-top: 3px;">Battle tracking completed</div>
<div style="width:50px;float:left;line-height: 13px;margin-left: 13px;margin-top: 3px;">Battle tracking completed</div>
<!-- <div style="width: 16px;display:inline-block;line-height:20px;">调车完毕</div>-->
</div>
<div class="runplanTableNo">18</div>
@ -337,7 +337,7 @@
<div v-if="scope.row.departRunPlan" class="noChange" :title="mapStationDirectionData[scope.row.departRunPlan.accessName].name">{{ mapStationDirectionData[scope.row.departRunPlan.accessName].name }}</div>
</template>
</el-table-column>
<el-table-column label="时 分">
<el-table-column label="Time">
<el-table-column width="70" prop="departRunPlan.adjacentMessage">
<template slot="header">
<div class="runplanTableTname">
@ -1296,13 +1296,13 @@ export default {
align-items: flex-start;
}
.runplanContent{
height: 695px;
height: 540px;
width: 100%;
display: flex;
flex-direction: row;
}
.runplanContentL{
width:62px;
width:85px;
height:100%;
background: #f0f0f0;
border-bottom: 1px #afafaf solid;

View File

@ -1521,6 +1521,7 @@ export const asyncRouter = [
{ // 新路由-教学管理菜单
path: '/teaching',
component: Layout,
hidden: true,
companyAdmin: true,
meta: {
i18n: 'newRouter.teachingManagement',
@ -1688,6 +1689,7 @@ export const asyncRouter = [
},
{ // 新路由-线路设计
path: '/lineDesign',
hidden: true,
component: Layout,
meta: {
i18n: 'newRouter.lineDesign',
@ -1723,42 +1725,44 @@ export const asyncRouter = [
}
]
},
{ // 新路由-案例
path: '/case',
component: Layout,
meta: {
i18n: 'newRouter.case',
roles: [admin, user]
},
children: [
{
path: 'XRVTI',
target: 'https://joylink.club/oss/portal/cases/西安铁路职业技术学院.pdf',
// component: Case,
meta: {
i18n: 'newRouter.XRVTI'
}
},
{
path: 'GEMVC',
target: 'https://joylink.club/oss/portal/cases/贵州装备制造职业学院机电技术专业实训室建设.pdf',
// component: Case,
meta: {
i18n: 'newRouter.GEMVC'
}
},
{
path: 'JVCOEAI',
target: 'https://joylink.club/oss/portal/cases/江苏电子信息职业学院-城市轨道交通行车组织综合实训室.pdf',
// component: Case,
meta: {
i18n: 'newRouter.JVCOEAI'
}
}
]
},
// { // 新路由-案例
// path: '/case',
// component: Layout,
// hidden: true,
// meta: {
// i18n: 'newRouter.case',
// roles: [admin, user]
// },
// children: [
// {
// path: 'XRVTI',
// target: 'https://joylink.club/oss/portal/cases/西安铁路职业技术学院.pdf',
// // component: Case,
// meta: {
// i18n: 'newRouter.XRVTI'
// }
// },
// {
// path: 'GEMVC',
// target: 'https://joylink.club/oss/portal/cases/贵州装备制造职业学院机电技术专业实训室建设.pdf',
// // component: Case,
// meta: {
// i18n: 'newRouter.GEMVC'
// }
// },
// {
// path: 'JVCOEAI',
// target: 'https://joylink.club/oss/portal/cases/江苏电子信息职业学院-城市轨道交通行车组织综合实训室.pdf',
// // component: Case,
// meta: {
// i18n: 'newRouter.JVCOEAI'
// }
// }
// ]
// },
{ // 新路由-系统管理
path: '/systemManagement',
hidden: true,
component: Layout,
meta: {
i18n: 'newRouter.SystemManagement',

View File

@ -12,7 +12,7 @@
>
<div class="DpRunplanPane">
<el-form ref="form" :model="addModel" label-width="80px" :rules="rules">
<el-form-item label="车站:" prop="stationCode">
<el-form-item label="Station:" prop="stationCode">
<el-select v-model="addModel.stationCode" placeholder="" style="width:145px" disabled>
<el-option
v-for="item in stationList"
@ -22,7 +22,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="股道:" prop="masterCode">
<el-form-item label="Track:" prop="masterCode">
<el-select v-model="addModel.masterCode" placeholder="" style="width:145px">
<el-option
v-for="item in filterSectionList"
@ -32,19 +32,19 @@
/>
</el-select>
</el-form-item>
<el-form-item label="到达车次:" prop="arriveTipNum">
<el-form-item label="Arrive train number:" prop="arriveTipNum">
<el-input v-model="addModel.arriveTipNum" style="width:145px" />
</el-form-item>
<el-form-item label="到达时间:" prop="arriveTime">
<el-form-item label="Arrive time:" prop="arriveTime">
<el-time-picker v-model="addModel.arriveTime" value-format="HH:mm" format="HH:mm" style="width:145px" />
</el-form-item>
<el-form-item label="出发车次:" prop="leaveTipNum">
<el-form-item label="Depart train number:" prop="leaveTipNum">
<el-input v-model="addModel.leaveTipNum" style="width:145px" />
</el-form-item>
<el-form-item label="出发时间:" prop="leaveTime">
<el-form-item label="Depart time:" prop="leaveTime">
<el-time-picker v-model="addModel.leaveTime" value-format="HH:mm" format="HH:mm" style="width:145px" />
</el-form-item>
<el-form-item label="入口:" prop="enterDirCode">
<el-form-item label="Entrance:" prop="enterDirCode">
<el-select v-model="addModel.enterDirCode" placeholder="" style="width:145px" @change="changeEnterDirCode">
<el-option
v-for="item in enterDirList"
@ -54,7 +54,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="后方车站:" prop="backStationCode">
<el-form-item label="Rear stations:" prop="backStationCode">
<el-select v-model="addModel.backStationCode" placeholder="" style="width:145px" disabled>
<el-option
v-for="item in stationList"
@ -64,7 +64,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="出口:" prop="outDirCode">
<el-form-item label="Exit:" prop="outDirCode">
<el-select v-model="addModel.outDirCode" placeholder="" style="width:145px" @change="changeOutDirCode">
<el-option
v-for="item in outDirList"
@ -74,7 +74,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="前方车站:" prop="fontStationCode">
<el-form-item label="Front stations:" prop="fontStationCode">
<el-select v-model="addModel.fontStationCode" placeholder="" style="width:145px" disabled>
<el-option
v-for="item in stationList"
@ -85,32 +85,32 @@
</el-select>
</el-form-item>
<el-form-item label="" prop="appendData" style="width:100%">
<el-checkbox v-model="addModel.appendData.JISHU_STOP" class="eachAppendData" style="margin-right:34px">技术停点</el-checkbox>
<el-checkbox v-model="addModel.appendData.JIAO_LING" class="eachAppendData" style="margin-right:35px">交令</el-checkbox>
<el-checkbox v-model="addModel.appendData.JICHE" class="eachAppendData" style="margin-right:3px">机车</el-checkbox>
<el-checkbox v-model="addModel.appendData.HUOJIAN" class="eachAppendData" style="margin-right:3px">货检</el-checkbox>
<el-checkbox v-model="addModel.appendData.CHENGJIANG" class="eachAppendData">乘降</el-checkbox>
<el-checkbox v-model="addModel.appendData.ZHAIGUA" class="eachAppendData" style="margin-right:3px">摘挂</el-checkbox>
<el-checkbox v-model="addModel.appendData.HUANCHENG" class="eachAppendData" style="margin-right:3px">换乘</el-checkbox>
<el-checkbox v-model="addModel.appendData.ZHUANGXIE" class="eachAppendData" style="margin-right: 35px;">装卸</el-checkbox>
<el-checkbox v-model="addModel.appendData.XIWU" class="eachAppendData" style="margin-right:3px">吸污</el-checkbox>
<el-checkbox v-model="addModel.appendData.DAOKOU" class="eachAppendData" style="margin-right:3px">道口</el-checkbox>
<el-checkbox v-model="addModel.appendData.CHEHAO" class="eachAppendData">车号</el-checkbox>
<el-checkbox v-model="addModel.appendData.SHANGSHUI" class="eachAppendData" style="margin-right:3px">上水</el-checkbox>
<el-checkbox v-model="addModel.appendData.LIEJIAN" class="eachAppendData" style="margin-right:3px">列检</el-checkbox>
<el-checkbox v-model="addModel.appendData.ZONGKONG" class="eachAppendData" style="margin-right: 35px;">综控</el-checkbox>
<el-checkbox v-model="addModel.appendData.ZHANWU" class="eachAppendData" style="margin-right:3px">站务</el-checkbox>
<el-checkbox v-model="addModel.appendData.JIAOPIAO" class="eachAppendData" style="margin-right:3px">交票</el-checkbox>
<el-checkbox v-model="addModel.appendData.LIEWEI" class="eachAppendData">列尾</el-checkbox>
<el-checkbox v-model="addModel.appendData.JISHU_STOP" class="eachAppendData" style="margin-right:34px">Technical stops</el-checkbox>
<el-checkbox v-model="addModel.appendData.JIAO_LING" class="eachAppendData" style="margin-right:35px">Surrender order</el-checkbox>
<el-checkbox v-model="addModel.appendData.JICHE" class="eachAppendData" style="margin-right:3px">Locomotive</el-checkbox>
<el-checkbox v-model="addModel.appendData.HUOJIAN" class="eachAppendData" style="margin-right:3px">Goods inspection</el-checkbox>
<el-checkbox v-model="addModel.appendData.CHENGJIANG" class="eachAppendData">Landing</el-checkbox>
<el-checkbox v-model="addModel.appendData.ZHAIGUA" class="eachAppendData" style="margin-right:3px">Picking</el-checkbox>
<el-checkbox v-model="addModel.appendData.HUANCHENG" class="eachAppendData" style="margin-right:3px">Change of train</el-checkbox>
<el-checkbox v-model="addModel.appendData.ZHUANGXIE" class="eachAppendData" style="margin-right: 35px;">loading and unloading</el-checkbox>
<el-checkbox v-model="addModel.appendData.XIWU" class="eachAppendData" style="margin-right:3px">Suction</el-checkbox>
<el-checkbox v-model="addModel.appendData.DAOKOU" class="eachAppendData" style="margin-right:3px">Crossing</el-checkbox>
<el-checkbox v-model="addModel.appendData.CHEHAO" class="eachAppendData">Train number</el-checkbox>
<el-checkbox v-model="addModel.appendData.SHANGSHUI" class="eachAppendData" style="margin-right:3px">Watering</el-checkbox>
<el-checkbox v-model="addModel.appendData.LIEJIAN" class="eachAppendData" style="margin-right:3px">Train inspection</el-checkbox>
<el-checkbox v-model="addModel.appendData.ZONGKONG" class="eachAppendData" style="margin-right: 35px;">Integrated control</el-checkbox>
<el-checkbox v-model="addModel.appendData.ZHANWU" class="eachAppendData" style="margin-right:3px">Station service</el-checkbox>
<el-checkbox v-model="addModel.appendData.JIAOPIAO" class="eachAppendData" style="margin-right:3px">Ticket delivery</el-checkbox>
<el-checkbox v-model="addModel.appendData.LIEWEI" class="eachAppendData">End of train</el-checkbox>
</el-form-item>
</el-form>
</div>
<el-row justify="center" class="button-group">
<el-col :span="6" :offset="7">
<el-button :id="domIdCancel" @click="cancel">取消</el-button>
<el-button :id="domIdCancel" @click="cancel">Cancel</el-button>
</el-col>
<el-col :span="8" :offset="0">
<el-button :id="domIdConfirm " type="primary" :loading="loading" @click="commit">确定 </el-button>
<el-button :id="domIdConfirm " type="primary" :loading="loading" @click="commit">Confirm</el-button>
</el-col>
</el-row>
</el-dialog>
@ -127,12 +127,12 @@ export default {
const judge = /^[a-zA-Z0-9]*[\d]$/.test(value);
if (judge) {
if (value.toString().length > 6 || value.toString().length < 2) {
callback('车次长度2-6位');
callback('Train number lengths of 2-6 seats');
} else {
callback();
}
} else {
callback('字母+数字,最后一位数字');
callback('Letters + numbers. The last digit is a number');
}
} else {
// callback('');
@ -257,10 +257,10 @@ export default {
});
if (row) {
this.addModel = Object.assign({}, row);
this.title = '修改列车固定径路';
this.title = 'Modify fixed train routes';
this.isAdd = false;
} else {
this.title = '增加列车固定径路';
this.title = 'Add fixed train routes';
this.isAdd = true;
this.addModel.stationCode = stationCode;
}

View File

@ -12,10 +12,10 @@
>
<div class="DirectionInformation">
<el-form ref="form" :model="model" label-width="125px">
<el-form-item label="出入口名称:" prop="ioName">
<el-form-item label="Import and export name:" prop="ioName">
<el-input v-model="model.ioName" style="width:185px" disabled />
</el-form-item>
<el-form-item label="出入口方向:" prop="ioDirection">
<el-form-item label="Entrance and exit direction:" prop="ioDirection">
<el-select v-model="model.ioDirection" placeholder="" style="width:145px" disabled>
<el-option
v-for="item in ioDirectionList"
@ -25,7 +25,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="允许超限列车:" prop="allowOverrun">
<el-form-item label="Overtrain is allowed:" prop="allowOverrun">
<el-select v-model="model.allowOverrun" placeholder="" style="width:145px">
<el-option
v-for="item in selectList"
@ -35,7 +35,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="允许旅客列车:" prop="travelTrain">
<el-form-item label="Permitted passenger train:" prop="travelTrain">
<el-select v-model="model.travelTrain" placeholder="" style="width:145px">
<el-option
v-for="item in selectList"
@ -45,7 +45,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="允许货物列车:" prop="goodsTrain">
<el-form-item label="Permitted freight train:" prop="goodsTrain">
<el-select v-model="model.goodsTrain" placeholder="" style="width:145px">
<el-option
v-for="item in selectList"
@ -59,10 +59,10 @@
</div>
<div style="text-align:right;display:inline-block;width:100%;">
<div class="directionBtn">
<el-button :id="domIdCancel" @click="cancel">取消</el-button>
<el-button :id="domIdCancel" @click="cancel">Cancel</el-button>
</div>
<div class="directionBtn">
<el-button :id="domIdConfirm " type="primary" :loading="loading" @click="commit">确定 </el-button>
<el-button :id="domIdConfirm " type="primary" :loading="loading" @click="commit">Confirm</el-button>
</div>
</div>
</el-dialog>
@ -79,15 +79,15 @@ export default {
loading: false,
stationCode:'', // code
ioDirectionList:[
{label:'下行进站', value:'DOWN_IN_STATION'},
{label:'上行进站', value:'UP_IN_STATION'},
{label:'下行出站', value:'DOWN_OUT_STATION'},
{label:'上行出站', value:'UP_OUT_STATION'},
{label:'双向', value:'BOTH_WAY_STATION'}
{label:'Descending station', value:'DOWN_IN_STATION'},
{label:'Ascending station', value:'UP_IN_STATION'},
{label:'Descending outbound', value:'DOWN_OUT_STATION'},
{label:'Ascending outbound', value:'UP_OUT_STATION'},
{label:'Bidirectional', value:'BOTH_WAY_STATION'}
],
selectList:[
{label:'', value:true},
{label:'', value:false}
{label:'True', value:true},
{label:'False', value:false}
],
model:{
code:'', // code
@ -110,7 +110,7 @@ export default {
return this.dialogShow ? OperationEvent.CTCCommand.modifyStationDirection.menu.domId : '';
},
title() {
return '出入口信息';
return 'Entry and exit information';
}
},
methods:{
@ -133,7 +133,7 @@ export default {
delete param.ioDirection;
commitOperate(menuOperate.CTC.modifyStationDirection, param, 3).then(({valid})=>{
if (valid) {
this.$message.success('更新成功!');
this.$message.success('Update successfully!');
this.$emit('refresh');
this.doClose();
}

View File

@ -39,7 +39,7 @@ import StationTrack from './stationTrack';
import TrainFixedPath from './trainFixedPath';
import StationDirection from './stationDirection';
import { loadMapDataById } from '@/utils/loaddata';
import { creatSubscribe, clearSubscribe, getTopic, displayTopic } from '@/utils/stomp';
import { creatSubscribe, clearSubscribe, getTopic } from '@/utils/stomp';
import NoticeInfo from '@/jmapNew/theme/components/menus/childDialog/noticeInfo';
export default {
name:'BigTrainRunplanManage',
@ -74,7 +74,6 @@ export default {
this.clearSubscribe();
},
async mounted() {
this.$store.dispatch('training/setPrdType', this.$route.query.prdType);
this.groupModel = this.$route.query.group;
this.stationCode = this.$route.query.stationCode;
this.initLoadData();
@ -215,7 +214,7 @@ border-left: 1px #94b6f0 solid;border-right: 1px #c9d3e0 solid;}
.datie-02__systerm .el-dialog .el-dialog__body {
padding: 15px 5px;
margin: 0px 0px 1px 1px;
margin: 0 0 1px 1px;
border: 1px solid rgba(120, 121, 123, 0.5);
box-shadow: 1px hsla(240, 0%, 100%, 0.5) inset;
background: #eeeeee;

View File

@ -8,14 +8,14 @@
<div class="stationDirectionRMenu">
<div class="stationDirectionRMenuL">
<!-- :id="domIdConfirm" :loading="loading" @click="commit"-->
<el-button class="stationDirectionButton" size="small" @click="modifyDirection">修改</el-button>
<el-button class="stationDirectionButton" size="small" @click="modifyDirection">Modify</el-button>
</div>
<div class="stationDirectionRMenuR">
<span class="stationDirectionRVer">版本号</span>
<el-button class="stationDirectionButton" size="small">备份</el-button>
<el-button class="stationDirectionButton" size="small" @click="releaseStationDirection">更新至生效区</el-button>
<el-button class="stationDirectionButton" size="small">导入</el-button>
<el-button class="stationDirectionButton" size="small">比较</el-button>
<span class="stationDirectionRVer">Version number</span>
<el-button class="stationDirectionButton" size="small">Backup</el-button>
<el-button class="stationDirectionButton" size="small" @click="releaseStationDirection">Update to the effect zone</el-button>
<el-button class="stationDirectionButton" size="small">Import</el-button>
<el-button class="stationDirectionButton" size="small">Compare</el-button>
</div>
</div>
<div class="stationDirectionRTable" :style="{ height: (height-40)+'px' }">
@ -32,12 +32,12 @@
>
<el-table-column
prop="ioName"
label="出入口名称"
label="Import and export name"
width="300"
/>
<el-table-column
prop="ioDirection"
label="方向"
label="Direction"
width="200"
>
<template slot-scope="scope">
@ -46,7 +46,7 @@
</el-table-column>
<el-table-column
prop="allowOverrun"
label="允许超限列车"
label="Overtrain is allowed"
width="200"
>
<template slot-scope="scope">
@ -55,7 +55,7 @@
</el-table-column>
<el-table-column
prop="travelTrain"
label="允许旅客列车"
label="Permitted passenger train"
width="200"
>
<template slot-scope="scope">
@ -64,7 +64,7 @@
</el-table-column>
<el-table-column
prop="goodsTrain"
label="允许货车"
label="Permitted truck"
width="200"
>
<template slot-scope="scope">
@ -94,23 +94,23 @@ export default {
currentRow:null,
tableData:[],
ioDirectionMap:{
'DOWN_IN_STATION':'下行进站',
'UP_IN_STATION':'上行进站',
'DOWN_OUT_STATION':'下行出站',
'UP_OUT_STATION':'上行出站',
'BOTH_WAY_STATION':'双向'
'DOWN_IN_STATION':'Descending station',
'UP_IN_STATION':'Ascending station',
'DOWN_OUT_STATION':'Descending outbound',
'UP_OUT_STATION':'Ascending outbound',
'BOTH_WAY_STATION':'Bidirectional'
},
travelTrainMap:{
true:'',
false:''
true:'True',
false:'False'
},
allowOverrunMap:{
true:'',
false:''
true:'True',
false:'False'
},
goodsTrainMap:{
true:'',
false:''
true:'True',
false:'False'
}
};
},
@ -153,10 +153,10 @@ export default {
const that = this;
commitOperate(menuOperate.CTC.releaseStationDirection, { stationCode:this.currentStationCode}, 3).then(({valid})=>{
if (valid) {
that.$message.success('发布成功!');
that.$message.success('Successful release!');
}
}).catch(() => {
that.$message.error('发布失败');
that.$message.error('Publishing failure!');
});
}
}

View File

@ -26,7 +26,7 @@
border
height="600px"
highlight-current-row
style="border:1px #ccc solid;width:1103px"
style="border:1px #ccc solid;width:1303px"
@row-click="selectedSection"
@row-dblclick="rowDbClick"
>
@ -35,7 +35,7 @@
<el-table-column
type="index"
label="Index"
width="100"
width="55"
/>
<!-- code: "T97"
military: false
@ -58,7 +58,7 @@ waterSupply: false -->
<el-table-column
prop="trackNature"
label="Station Units"
width="100"
width="110"
>
<template slot-scope="scope">
{{ lineTypeMap[scope.row.trackNature] }}
@ -77,7 +77,7 @@ waterSupply: false -->
<el-table-column
prop="trainType"
label="Type of train"
width="100"
width="110"
>
<template slot-scope="scope">
{{ typeMap[scope.row.trainType] }}
@ -87,7 +87,7 @@ waterSupply: false -->
<el-table-column
prop="transfinite"
label="Type of overrun"
width="100"
width="130"
>
<template slot-scope="scope">
{{ transfiniteTypeMap[scope.row.transfinite] }}
@ -96,7 +96,7 @@ waterSupply: false -->
<el-table-column
prop="standType"
label="Stand"
width="100"
width="65"
>
<template slot-scope="scope">
{{ standTypeMap[scope.row.standType] }}
@ -106,7 +106,7 @@ waterSupply: false -->
<el-table-column
prop="motorCar"
label="Permission to move trains"
width="100"
width="200"
>
<template slot-scope="scope">
{{ allowEmuMap[scope.row.motorCar] }}
@ -116,7 +116,7 @@ waterSupply: false -->
<el-table-column
prop="waterSupply"
label="Watering equipment"
width="100"
width="160"
>
<template slot-scope="scope">
{{ addWaterEquMap[scope.row.waterSupply] }}
@ -126,7 +126,7 @@ waterSupply: false -->
<el-table-column
prop="sewageAbsorption"
label="Sewerage equipment"
width="100"
width="170"
>
<template slot-scope="scope">
{{ sewageEquMap[scope.row.sewageAbsorption] }}
@ -135,7 +135,7 @@ waterSupply: false -->
<el-table-column
prop="military"
label="Military"
width="100"
width="80"
>
<template slot-scope="scope">
{{ militaryMap[scope.row.military] }}

View File

@ -1,8 +1,8 @@
<template>
<div class="terminalStationList">
<div class="terminalStationListT">
<span class="terminalStationListTName">区段:</span>
<el-select v-model="section" disabled placeholder="请选择" size="mini" class="terminalStationListTSelect">
<span class="terminalStationListTName">Section:</span>
<el-select v-model="section" disabled placeholder="Please select" size="mini" class="terminalStationListTSelect">
<el-option
v-for="item in sectionList"
:key="item.code"
@ -42,7 +42,7 @@ export default {
return {
treeList:[{
id:'allStation',
label: '车站列表',
label: 'Station list',
children: []
}],
defaultProps: {
@ -50,10 +50,7 @@ export default {
label: 'label'
},
section:'T121',
sectionList:[{
code:'T121',
name:'兰五台'
}]
sectionList:[]
};
},
computed: {

View File

@ -13,115 +13,145 @@
<div class="TrackInformation">
<!-- 111 -->
<!-- form -->
<el-form ref="form" :model="model" label-width="85px" :rules="rules">
<el-form-item label="股道:" prop="code">
<el-select v-model="model.code" placeholder="" style="width:125px;margin-right:230px" disabled>
<el-option
v-for="item in filterSectionList"
:key="item.code"
:label="item.name"
:value="item.code"
/>
</el-select>
</el-form-item>
<el-form-item label="线路性质:" prop="trackNature">
<el-select v-model="model.trackNature" placeholder="" style="width:125px">
<el-option
v-for="item in lineTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="接发车方向:" prop="direction">
<el-select v-model="model.direction" placeholder="" style="width:100px">
<el-option
v-for="item in directionList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="接发车类型:" prop="trainType">
<el-select v-model="model.trainType" placeholder="" style="width:100px">
<el-option
v-for="item in typeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="超限类型:" prop="transfinite">
<el-select v-model="model.transfinite" placeholder="" style="width:125px">
<el-option
v-for="item in transfiniteTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="站台:" prop="standType">
<el-select v-model="model.standType" placeholder="" style="width:100px">
<el-option
v-for="item in standTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="允许动车组:" prop="motorCar">
<el-select v-model="model.motorCar" placeholder="" style="width:100px">
<el-option
v-for="item in allowEmuList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="上水设备:" prop="waterSupply">
<el-select v-model="model.waterSupply" placeholder="" style="width:125px">
<el-option
v-for="item in addWaterEquList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="排污设备:" prop="sewageAbsorption">
<el-select v-model="model.sewageAbsorption" placeholder="" style="width:100px">
<el-option
v-for="item in sewageEquList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="军用:" prop="military">
<el-select v-model="model.military" placeholder="" style="width:100px">
<el-option
v-for="item in militaryList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form ref="form" :model="model" label-width="160px" :rules="rules">
<el-row>
<el-col :span="12">
<el-form-item label="Track:" prop="code">
<el-select v-model="model.code" placeholder="" style="width:125px;margin-right:230px" disabled>
<el-option
v-for="item in filterSectionList"
:key="item.code"
:label="item.name"
:value="item.code"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="Nature of line:" prop="trackNature">
<el-select v-model="model.trackNature" placeholder="" style="width:125px">
<el-option
v-for="item in lineTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="Direction:" prop="direction">
<el-select v-model="model.direction" placeholder="" style="width:100px">
<el-option
v-for="item in directionList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="Type of train:" prop="trainType">
<el-select v-model="model.trainType" placeholder="" style="width:100px">
<el-option
v-for="item in typeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="Type of overrun:" prop="transfinite">
<el-select v-model="model.transfinite" placeholder="" style="width:125px">
<el-option
v-for="item in transfiniteTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="Stand:" prop="standType">
<el-select v-model="model.standType" placeholder="" style="width:100px">
<el-option
v-for="item in standTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="Permission to move trains:" prop="motorCar">
<el-select v-model="model.motorCar" placeholder="" style="width:100px">
<el-option
v-for="item in allowEmuList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="Watering equipment:" prop="waterSupply">
<el-select v-model="model.waterSupply" placeholder="" style="width:125px">
<el-option
v-for="item in addWaterEquList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="Sewerage equipment:" prop="sewageAbsorption">
<el-select v-model="model.sewageAbsorption" placeholder="" style="width:100px">
<el-option
v-for="item in sewageEquList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="Military:" prop="military">
<el-select v-model="model.military" placeholder="" style="width:100px">
<el-option
v-for="item in militaryList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div style="text-align:right;display:inline-block;width:100%;">
<div class="trackBtn">
<el-button :id="domIdCancel" @click="cancel">取消</el-button>
<el-button :id="domIdCancel" @click="cancel">Cancel</el-button>
</div>
<div class="trackBtn">
<el-button :id="domIdConfirm " type="primary" :loading="loading" @click="commit">确定 </el-button>
<el-button :id="domIdConfirm " type="primary" :loading="loading" @click="commit">Confirm</el-button>
</div>
</div>
</el-dialog>
@ -138,45 +168,45 @@ export default {
filterSectionList:[],
// trackSectionCode:'',
lineTypeList:[
{label:'正线', value:'RIGHT_TRACK'},
{label:'到发线', value:'ARRIVE_DEPART_TRACK'}
{label:'Right track', value:'RIGHT_TRACK'},
{label:'Arrive depart track', value:'ARRIVE_DEPART_TRACK'}
],
directionList:[
{label:'上行', value:'S'},
{label:'下行', value:'X'},
{label:'上下行', value:'D'}
{label:'Upbound', value:'S'},
{label:'Downbound', value:'X'},
{label:'All', value:'D'}
],
typeList:[
{label:'客货车', value:'VAN'},
{label:'货车', value:'GOODS_VAN'},
{label:'客车', value:'PASSENGER'}
{label:'Passenger Wagon', value:'VAN'},
{label:'Freight train', value:'GOODS_VAN'},
{label:'Passenger train', value:'PASSENGER'}
],
transfiniteTypeList:[
{label:'不能接发超限列车', value:'NO'},
{label:'一级超限', value:'TRANSFINITE_ONE_LEVEL'},
{label:'二级超限', value:'TRANSFINITE_TWO_LEVEL'},
{label:'超级超限', value:'TRANSFINITE_SUPER'}
{label:'No over-limit trains', value:'NO'},
{label:'First order overrun', value:'TRANSFINITE_ONE_LEVEL'},
{label:'Second-order overrun', value:'TRANSFINITE_TWO_LEVEL'},
{label:'Super over limit', value:'TRANSFINITE_SUPER'}
],
standTypeList:[
{label:'', value:'NO'},
{label:'高站台', value:'LOW'},
{label:'低站台', value:'HIGH'}
{label:'No', value:'NO'},
{label:'Low', value:'LOW'},
{label:'High', value:'HIGH'}
],
allowEmuList:[
{label:'', value:true},
{label:'', value:false}
{label:'True', value:true},
{label:'False', value:false}
],
addWaterEquList:[
{label:'', value:true},
{label:'', value:false}
{label:'True', value:true},
{label:'False', value:false}
],
sewageEquList:[
{label:'', value:true},
{label:'', value:false}
{label:'True', value:true},
{label:'False', value:false}
],
militaryList:[
{label:'', value:true},
{label:'', value:false}
{label:'True', value:true},
{label:'False', value:false}
],
stationCode:'', //
model:{
@ -193,24 +223,24 @@ export default {
},
rules:{
trackNature: [
{ required: true, message: '请选择线路性质', trigger: 'blur' },
{ required: true, message: '请选择线路性质', trigger: 'change' }
{ required: true, message: 'Please select nature of line', trigger: 'blur' },
{ required: true, message: 'Please select nature of line', trigger: 'change' }
],
direction: [
{ required: true, message: '请选择接发车方向', trigger: 'blur' },
{ required: true, message: '请选择接发车方向', trigger: 'change' }
{ required: true, message: 'Please select direction', trigger: 'blur' },
{ required: true, message: 'Please select direction', trigger: 'change' }
],
trainType: [
{ required: true, message: '请选择接发车类型', trigger: 'blur' },
{ required: true, message: '请选择接发车类型', trigger: 'change' }
{ required: true, message: 'Please select type of train', trigger: 'blur' },
{ required: true, message: 'Please select type of train', trigger: 'change' }
],
transfinite: [
{ required: true, message: '请选择超限类型', trigger: 'blur' },
{ required: true, message: '请选择超限类型', trigger: 'change' }
{ required: true, message: 'Please select type of overrun', trigger: 'blur' },
{ required: true, message: 'Please select type of overrun', trigger: 'change' }
],
standType: [
{ required: true, message: '请选择站台', trigger: 'blur' },
{ required: true, message: '请选择站台', trigger: 'change' }
{ required: true, message: 'Please select stand', trigger: 'blur' },
{ required: true, message: 'Please select stand', trigger: 'change' }
]
}
};
@ -226,7 +256,7 @@ export default {
return this.dialogShow ? OperationEvent.CTCCommand.modifyStationTrack.menu.domId : '';
},
title() {
return '股道信息';
return 'Track information';
}
},
methods:{

View File

@ -7,27 +7,27 @@
<div class="trainFixedPathR">
<div class="trainFixedPathRMenu">
<div class="trainFixedPathRMenuL">
<el-button class="trainFixedPathButton" size="small" @click="addTrainFxPath">增加</el-button>
<el-button class="trainFixedPathButton" size="small" @click="batchTrainFxPath">批量增加</el-button>
<el-button class="trainFixedPathButton" size="small">基本图导入</el-button>
<el-button class="trainFixedPathButton" size="small">基本图申请</el-button>
<el-button class="trainFixedPathButton" size="small">其他站导入</el-button>
<el-button class="trainFixedPathButton" size="small" @click="deleteTrainFxPath">删除</el-button>
<el-button class="trainFixedPathButton" size="small" @click="clearTrainFxPath">全部清空</el-button>
<el-button class="trainFixedPathButton" size="small" @click="modifyTrainFxPath">修改</el-button>
<el-button class="trainFixedPathButton" size="small">查找</el-button>
<el-button class="trainFixedPathButton" size="small">导出excel</el-button>
<el-button class="trainFixedPathButton" size="small">流程批量设置</el-button>
<el-button class="trainFixedPathButton" size="small" @click="addTrainFxPath">Add</el-button>
<el-button class="trainFixedPathButton" size="small" @click="batchTrainFxPath">Batch add</el-button>
<el-button class="trainFixedPathButton" size="small">Basic map import</el-button>
<el-button class="trainFixedPathButton" size="small">Basic map request</el-button>
<el-button class="trainFixedPathButton" size="small">Other station import</el-button>
<el-button class="trainFixedPathButton" size="small" @click="deleteTrainFxPath">Delete</el-button>
<el-button class="trainFixedPathButton" size="small" @click="clearTrainFxPath">Empty out</el-button>
<el-button class="trainFixedPathButton" size="small" @click="modifyTrainFxPath">Modify</el-button>
<el-button class="trainFixedPathButton" size="small">Search</el-button>
<el-button class="trainFixedPathButton" size="small">Export excel</el-button>
<el-button class="trainFixedPathButton" size="small">Process batch setup</el-button>
</div>
<div class="trainFixedPathRMenuR">
<span class="trainFixedPathRVer">版本号</span>
<el-button class="trainFixedPathButton" size="small" @click="exportData">备份</el-button>
<el-button class="trainFixedPathButton" size="small" @click="releaseTrainFixedPath">更新至生效区</el-button>
<span class="trainFixedPathRVer">Version number</span>
<el-button class="trainFixedPathButton" size="small" @click="exportData">Backup</el-button>
<el-button class="trainFixedPathButton" size="small" @click="releaseTrainFixedPath">Update to the effect zone</el-button>
<el-button class="trainFixedPathButton trainFixedPathUpload" size="small">
导入
Import
<input ref="files" type="file" class="file_box" accept=".json, application/json" @change="importf">
</el-button>
<el-button class="trainFixedPathButton" size="small">比较</el-button>
<el-button class="trainFixedPathButton" size="small">Compare</el-button>
</div>
</div>
<div class="trainFixedPathRTable" :style="{ height: (height-40)+'px' }">
@ -47,13 +47,13 @@
<!-- @current-change="handleCurrentChange" -->
<el-table-column
type="index"
label="序号"
label="Index"
width="50"
/>
<el-table-column
prop="stationCode"
label="车站"
width="100"
label="Station"
width="60"
>
<template slot-scope="scope">
{{ stationMap[scope.row.stationCode].name }}
@ -62,12 +62,12 @@
<!-- arriveTripNumber -->
<el-table-column
prop="arriveTipNum"
label="到达车次"
label="Arrival train number"
width="80"
/>
<el-table-column
prop="arriveTime"
label="到达时间"
label="Time of arrival"
width="70"
>
<template slot-scope="scope">
@ -77,19 +77,19 @@
<!-- departTripNumber -->
<el-table-column
prop="leaveTipNum"
label="出发车次"
label="Departure train number"
width="80"
/>
<!-- departTime -->
<el-table-column
prop="leaveTime"
label="出发时间"
label="Departure time"
width="70"
/>
<!-- trackSectionCode -->
<el-table-column
prop="masterCode"
label="股道"
label="Track"
width="75"
>
<template slot-scope="scope">
@ -101,7 +101,7 @@
<!-- departStationCode -->
<el-table-column
prop="backStationCode"
label="后方车站"
label="Rear station"
width="110"
>
<template slot-scope="scope">
@ -113,8 +113,8 @@
<!-- arriveDirectionCode -->
<el-table-column
prop="enterDirCode"
label="入口"
width="155"
label="Entrance"
width="70"
>
<template slot-scope="scope">
<div v-if="scope.row.enterDirCode">
@ -125,8 +125,8 @@
<!-- departDirectionCode -->
<el-table-column
prop="outDirCode"
label="出口"
width="155"
label="Exit"
width="50"
>
<template slot-scope="scope">
<div v-if="scope.row.outDirCode">
@ -137,7 +137,7 @@
<!-- arriveStationCode -->
<el-table-column
prop="fontStationCode"
label="前方车站"
label="Forward station"
width="110"
>
<template slot-scope="scope">
@ -149,7 +149,7 @@
<!-- RVType -->
<el-table-column
prop="appendData.JISHU_STOP"
label="技术停点"
label="Technical stop"
width="70"
>
<!-- <template slot-scope="scope">
@ -159,8 +159,8 @@
<!-- trainInspection -->
<el-table-column
prop="appendData.LIEJIAN"
label="列检"
width="40"
label="Train inspection"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.LIEJIAN" @change="changeData(scope.row,'LIEJIAN')" />
@ -169,8 +169,8 @@
<!-- crossZero -->
<el-table-column
prop="appendData.JIAO_LING"
label="交令"
width="40"
label="Surrender order"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.JIAO_LING" @change="changeData(scope.row,'JIAO_LING')" />
@ -178,8 +178,8 @@
</el-table-column>
<el-table-column
prop="appendData.JIAOPIAO"
label="交票"
width="40"
label="Ticket delivery"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.JIAOPIAO" @change="changeData(scope.row,'JIAOPIAO')" />
@ -188,8 +188,8 @@
<!-- columnEnd -->
<el-table-column
prop="appendData.LIEWEI"
label="列尾"
width="40"
label="End of train"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.LIEWEI" @change="changeData(scope.row,'LIEWEI')" />
@ -198,8 +198,8 @@
<!-- locomotive -->
<el-table-column
prop="appendData.JICHE"
label="机车"
width="40"
label="Locomotive"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.JICHE" @change="changeData(scope.row,'JICHE')" />
@ -208,8 +208,8 @@
<!-- goodsInspection -->
<el-table-column
prop="appendData.appendData.HUOJIAN"
label="货检"
width="40"
label="Goods inspection"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.HUOJIAN" @change="changeData(scope.row,'HUOJIAN')" />
@ -218,8 +218,8 @@
<!-- multiplyDown -->
<el-table-column
prop="appendData.CHENGJIANG"
label="乘降"
width="40"
label="Landing"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.CHENGJIANG" @change="changeData(scope.row,'CHENGJIANG')" />
@ -228,8 +228,8 @@
<!-- sailUpstream -->
<el-table-column
prop="appendData.SHANGSHUI"
label="上水"
width="40"
label="Watering"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.SHANGSHUI" @change="changeData(scope.row,'SHANGSHUI')" />
@ -238,8 +238,8 @@
<!-- pickUp -->
<el-table-column
prop="appendData.ZHAIGUA"
label="摘挂"
width="40"
label="Picking"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.ZHAIGUA" @change="changeData(scope.row,'ZHAIGUA')" />
@ -248,8 +248,8 @@
<!-- transfer -->
<el-table-column
prop="appendData.HUANCHENG"
label="换乘"
width="40"
label="Change of train"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.HUANCHENG" @change="changeData(scope.row,'HUANCHENG')" />
@ -258,8 +258,8 @@
<!-- handling -->
<el-table-column
prop="appendData.ZHUANGXIE"
label="装卸"
width="40"
label="Loading and unloading"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.ZHUANGXIE" @change="changeData(scope.row,'ZHUANGXIE')" />
@ -268,8 +268,8 @@
<!-- pollution -->
<el-table-column
prop="appendData.XIWU"
label="吸污"
width="40"
label="Suction"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.XIWU" @change="changeData(scope.row,'XIWU')" />
@ -278,8 +278,8 @@
<!-- crossing-->
<el-table-column
prop="appendData.DAOKOU"
label="道口"
width="40"
label="Crossing"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.DAOKOU" @change="changeData(scope.row,'DAOKOU')" />
@ -288,8 +288,8 @@
<!-- trainNumber -->
<el-table-column
prop="appendData.CHEHAO"
label="车号"
width="40"
label="Train number"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.CHEHAO" @change="changeData(scope.row,'CHEHAO')" />
@ -298,8 +298,8 @@
<!-- affair -->
<el-table-column
prop="appendData.ZHANWU"
label="站务"
width="40"
label="Station service"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.ZHANWU" @change="changeData(scope.row,'ZHANWU')" />
@ -307,8 +307,8 @@
</el-table-column>
<el-table-column
prop="appendData.ZONGKONG"
label="综控"
width="40"
label="Integrated control"
width="60"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.appendData.ZONGKONG" @change="changeData(scope.row,'ZONGKONG')" />
@ -422,9 +422,9 @@ export default {
deleteTrainFxPath() {
if (this.currentRow) {
const that = this;
this.$confirm('确定删除该条列车固定径路数据?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
this.$confirm('Are you sure to delete the fixed track data of this train?', 'Warning', {
confirmButtonText: 'Confirm',
cancelButtonText: 'Cancel',
type: 'warning'
}).then(() => {
// stationCode
@ -433,31 +433,31 @@ export default {
const param = {stationCode:this.currentRow.stationCode, code:this.currentRow.code };
commitOperate(menuOperate.CTC.deleteTrainFixedPath, param, 3).then(({valid})=>{
if (valid) {
that.$message.success('删除成功!');
that.$message.success('Deleted successfully!');
this.handleData(currentIndex);
}
}).catch(() => {
that.$message.error('删除失败');
that.$message.error('Deletion failed!');
});
}).catch(e => {});
}
},
clearTrainFxPath() {
const that = this;
this.$confirm('确定清空该站的所有列车固定径路数据?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
this.$confirm('Confirm to clear all fixed track data at this station?', 'Warning', {
confirmButtonText: 'Confirm',
cancelButtonText: 'Cancel',
type: 'warning'
}).then(() => {
// stationCode
const param = {stationCode:this.currentStationCode};
commitOperate(menuOperate.CTC.clearTrainFixedPath, param, 3).then(({valid})=>{
if (valid) {
that.$message.success('清空成功!');
that.$message.success('Clear successfully!');
this.handleData();
}
}).catch(() => {
that.$message.error('清空失败');
that.$message.error('Empty failure!');
});
}).catch(e => {});
},
@ -484,12 +484,12 @@ export default {
if (!obj.files) return;
const f = obj.files[0];
if (f.type != 'application/json') {
this.$message.error('请上传json格式的文件');
this.$message.error('Upload a file in json format');
return;
}
const loading = this.$loading({
lock: true,
text: '正在导入中...',
text: 'Being imported...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
@ -505,20 +505,20 @@ export default {
commitOperate(menuOperate.CTC.importTrainFixedPath, param, 3).then(({valid})=>{
if (valid) {
loading.close();
that.$message.success('导入成功!');
that.$message.success('Import successfully!');
this.handleData();
}
}).catch(() => {
loading.close();
that.$message.error('导入失败');
that.$message.error('Import failure!');
});
} else {
that.$message.error('该文件数据为空');
that.$message.error('The file data is empty!');
loading.close();
}
} else {
that.$message.error('该文件数据结构不正确');
that.$message.error('The file data structure is incorrect!');
loading.close();
}
};
@ -528,10 +528,10 @@ export default {
const that = this;
commitOperate(menuOperate.CTC.releaseTrainFixedPath, { stationCode:this.currentStationCode}, 3).then(({valid})=>{
if (valid) {
that.$message.success('发布成功!');
that.$message.success('Successful release!');
}
}).catch(() => {
that.$message.error('发布失败');
that.$message.error('Publishing failure!');
});
},
coverTime(time) {

View File

@ -34,7 +34,7 @@
</div>
</div>
<div class="chat-box-footer">
<el-input v-model="textContent" size="small" placeholder="请输入会话文字点击T发送" style="flex: 1; margin-left: 5px;" :rows="1" />
<el-input v-model="textContent" size="small" placeholder="Please enter the session text and click T to send" style="flex: 1; margin-left: 5px;" :rows="1" />
<el-button :id="sendTextId" size="mini" class="chat-box-footer-create" :disabled="contentSend" @click="sendText">T</el-button>
<el-button :id="recordVoice" class="chat-box-footer-create chat-box-footer-send" :class="{'active': recordSending}" :disabled="audioPlay || (trainingDesign && !trainingSwitch)" size="mini" type="primary" @click="startRecording()">
<el-progress id="voice_progress_bar" type="circle" :show-text="false" :percentage="100/60*seconds" :width="40" :stroke-width="2" status="success" />
@ -203,7 +203,7 @@ export default {
this.textContent = '';
}
}).catch((error) => {
this.$message.error('发送会话文字失败:' + error.message);
this.$message.error('Failed to send session text:' + error.message);
});
},
cancelRecording() {
@ -239,7 +239,7 @@ export default {
that.audioPlay = false;
}
}).catch(error => {
that.$message.error('发送会话语音失败:' + error.message);
that.$message.error('Failed to send session voice messages:' + error.message);
that.audioPlay = false;
});
if (that.microphone) {
@ -257,7 +257,7 @@ export default {
case 'PermissionDeniedError':
this.$message({
showClose: true,
message: '用户拒绝提供信息',
message: 'The user refused to provide information',
type: 'error'
});
break;
@ -265,7 +265,7 @@ export default {
case 'NotSupportedError':
this.$message({
showClose: true,
message: '浏览器不支持硬件设备',
message: 'The browser does not support hardware devices',
type: 'error'
});
break;
@ -273,14 +273,14 @@ export default {
case 'MandatoryUnsatisfiedError':
this.$message({
showClose: true,
message: '无法发现指定的硬件设备',
message: 'Failed to discover the specified hardware device',
type: 'error'
});
break;
default:
this.$message({
showClose: true,
message: '无法打开麦克风',
message: 'Unable to turn on microphone',
type: 'error'
});
break;
@ -331,7 +331,7 @@ export default {
);
}
}
}).catch(() => { console.error('操作失败!'); });
}).catch(() => { console.error('Operation failure!'); });
} else {
this.stopRecording(); //
}

View File

@ -1,8 +1,8 @@
<template>
<div v-if="show" class="examPanel">
<div class="header">
<div>满分: {{ composition.fullScore }}</div>
<div>考试时间: {{ composition.validDuration }}分钟</div>
<div>FullScore: {{ composition.fullScore }}</div>
<div>Examination time: {{ composition.validDuration }}minutes</div>
</div>
<!-- <div class="legend-area">
<div class="legend">
@ -14,7 +14,7 @@
<div class="text">未作答</div>
</div>
</div> -->
<div>理论题</div>
<div>Theory questions</div>
<div class="questionList">
<div
v-for="(question, index) in questionList[0]"
@ -29,7 +29,7 @@
{{ index + 1 }}
</div>
</div>
<div>实训题</div>
<div>Practical questions</div>
<div class="questionList">
<div
v-for="(question, index) in questionList[1]"
@ -42,7 +42,7 @@
</div>
</div>
<div class="footer">
<el-button size="small" type="primary" @click="submitExam">交卷</el-button>
<el-button size="small" type="primary" @click="submitExam">Turn in your paper</el-button>
</div>
<TheoryQuestion
ref="theoryQuestion"
@ -117,11 +117,11 @@ export default {
const { score, passScore, commonScore, trainingScore } = resp.data;
const pass = score >= passScore;
this.$alert(
`${pass ? '恭喜您考试合格' : '考试不通过'}
总分: ${score}
理论: ${commonScore}
实训: ${trainingScore}`,
'考试结果'
`${pass ? 'Congratulations on passing the exam' : 'You have failed the examination'}
Total marks: ${score}
Theory: ${commonScore}
Practical: ${trainingScore}`,
'Examination result'
).then(() => {
this.show = false;
});
@ -129,7 +129,7 @@ export default {
};
const finished = this.questionStateList.every(list => list.every(item => item === true));
if (!finished) {
this.$confirm('您还有题目未答完, 确认交卷吗?').then(() => {
this.$confirm('Do you have any questions left to answer?').then(() => {
execSubmit();
});
} else {

View File

@ -2,56 +2,56 @@
<el-dialog
:visible.sync="show"
:before-close="doClose"
title="选择试卷"
title="Select paper"
width="1200px"
:close-on-click-modal="false"
@open="onOpen"
>
<el-table :data="paperList" border>
<el-table-column prop="name" label="试卷名称" width="150px">
<el-table-column prop="name" label="Paper name" width="150px">
<template slot-scope="scope">
<span>{{ scope.row.name }}</span>
</template>
</el-table-column>
<el-table-column prop="profile" label="试卷简介">
<el-table-column prop="profile" label="Introduction to the paper">
<template slot-scope="scope">
<span>{{ scope.row.profile }}</span>
</template>
</el-table-column>
<el-table-column label="试卷启用时间" width="160px">
<el-table-column label="Paper opening date" width="160px">
<template slot-scope="scope">
<span>{{ scope.row.startTime }} </span>
<span>{{ scope.row.endTime }} </span>
</template>
</el-table-column>
<el-table-column prop="validDuration" label="考试时间" width="80px">
<el-table-column prop="validDuration" label="Exam Time" width="80px">
<template slot-scope="scope">
<span>{{ scope.row.validDuration }} 分钟</span>
<span>{{ scope.row.validDuration }} minutes</span>
</template>
</el-table-column>
<el-table-column label="题目数量" width="100px">
<el-table-column label="Number of questions" width="100px">
<template slot-scope="scope">
<span>理论:{{
<span>Theory:{{
scope.row.ruleList.reduce((prev, curr) => prev + (curr.type === 1 ? curr.amount : 0), 0)
}}</span><br>
<span>实操:{{
<span>Practical:{{
scope.row.ruleList.reduce((prev, curr) => prev + (curr.type === 2 ? curr.amount : 0), 0)
}}</span>
</template>
</el-table-column>
<el-table-column prop="fullScore" label="总分" width="80px">
<el-table-column prop="fullScore" label="Total marks" width="80px">
<template slot-scope="scope">
<span>{{ scope.row.fullScore }}</span>
</template>
</el-table-column>
<el-table-column prop="passScore" label="及格分" width="80px">
<el-table-column prop="passScore" label="Pass mark" width="80px">
<template slot-scope="scope">
<span>{{ scope.row.passScore }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="100px">
<el-button slot-scope="scope" type="primary" size="small" @click="start(scope.row)">开始考试</el-button>
<el-table-column label="Operation" width="100px">
<el-button slot-scope="scope" type="primary" size="small" @click="start(scope.row)">Start of examination</el-button>
</el-table-column>
</el-table>
</el-dialog>

View File

@ -125,11 +125,11 @@
<div class="button-box">
<img :src="unknowPic" class="img-button">
</div>
<div class="button-box">
<div class="img-button">Sign</div>
<div class="button-box" style="width: 40px;">
<div class="img-button" style="width: 36px;">Sign</div>
</div>
<div class="button-box">
<div class="img-button">Order</div>
<div class="button-box" style="width: 44px;">
<div class="img-button" style="width: 40px;">Order</div>
</div>
</div>
</div>
@ -179,26 +179,29 @@
:default-sort="{prop: 'startTime', order: 'ascending'}"
border
>
<el-table-column width="50" label="Index" align="center" type="index">
<template slot="empty">
<el-empty :image-size="20" description="Empty" />
</template>
<el-table-column width="60" label="Index" align="center" type="index">
<!-- <template slot-scope="scope"> -->
<!--:style="{ background: scope.$index? '#f00':'#ff0' }" -->
<!-- <div>{{ scope.$index }}</div> -->
<!-- </template> -->
</el-table-column>
<el-table-column property="date" label="Attention confirmation" />
<el-table-column property="tripNumber" label="Train number" />
<el-table-column property="trackName" label="Track" />
<el-table-column width="100" property="date" label="Attention confirmation" />
<el-table-column width="70" property="tripNumber" label="Train number" />
<el-table-column width="60" property="trackName" label="Track" />
<el-table-column property="autoTrigger" label="Self-touch">
<template slot-scope="scope">
<div style="width: 100%;height: 22px;" @contextmenu="popMenuShow(scope.row, '' ,$event)">{{ scope.row.autoTrigger? '√':'' }}</div>
</template>
</el-table-column>
<el-table-column property="departure" label="Type">
<el-table-column width="60" property="departure" label="Type">
<template slot-scope="scope">
<span>{{ scope.row.departure ? 'Depart':'Pick up' }}</span>
</template>
</el-table-column>
<el-table-column property="status" label="Status">
<el-table-column width="65" property="status" label="Status">
<template slot-scope="scope">
<span>{{ getRouteStatus(scope.row.status) }}</span>
</template>
@ -236,7 +239,7 @@
</el-select>
<div>Adjust machine-J101</div>
<el-button size="mini" disabled>Approach preview</el-button>
<el-select v-model="unknow1" size="mini" disabled>
<el-select v-model="unknow1" size="mini" disabled placeholder="Please select">
<el-option
v-for="item in unknowList1"
:key="item.value"
@ -254,15 +257,18 @@
border
height="180"
>
<template slot="empty">
<el-empty :image-size="20" description="Empty" />
</template>
<el-table-column type="index" width="50" label="Hook" />
<el-table-column property="line" label="Line" />
<el-table-column property="method" label="Method" />
<el-table-column property="nums" label="Nums" />
<el-table-column property="direction" label="Direction" />
<el-table-column property="leadWire" label="Pull-out line" />
<el-table-column width="110" property="leadWire" label="Pull-out line" />
<el-table-column property="status" label="Status" />
<el-table-column property="leadRoute" label="Pull-out feed" />
<el-table-column property="pushRoute" label="Push-in approach" />
<el-table-column width="110" property="leadRoute" label="Pull-out feed" />
<el-table-column width="140" property="pushRoute" label="Push-in approach" />
<el-table-column property="note" label="Note" />
</el-table>
</div>

View File

@ -9,9 +9,9 @@
center
:close-on-click-modal="false"
>
<el-form ref="form" :model="formModel" label-width="120px" :rules="rules">
<el-form-item label="添加仿真成员:" prop="type">
<el-select v-model="formModel.type" placeholder="请选择" size="small">
<el-form ref="form" :model="formModel" label-width="200px" :rules="rules">
<el-form-item label="Add simulation member:" prop="type">
<el-select v-model="formModel.type" placeholder="Please select" size="small">
<el-option
v-for="item in typeList"
:key="item.value"
@ -20,8 +20,8 @@
/>
</el-select>
</el-form-item>
<el-form-item v-if="stationRoleList.includes(formModel.type)" label="值班车站:" prop="deviceCode">
<el-select v-model="formModel.deviceCode" placeholder="请选择" size="small">
<el-form-item v-if="stationRoleList.includes(formModel.type)" label="Duty station:" prop="deviceCode">
<el-select v-model="formModel.deviceCode" placeholder="Please select" size="small">
<el-option
v-for="item in filterStationList"
:key="item.code"
@ -30,13 +30,13 @@
/>
</el-select>
</el-form-item>
<el-form-item label="仿真成员名称:" prop="name">
<el-input v-model="formModel.name" size="small" placeholder="请输入成员名称" />
<el-form-item label="Simulation member name:" prop="name">
<el-input v-model="formModel.name" size="small" placeholder="Please enter a member name" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="doSave">{{ $t('global.confirm') }}</el-button>
<el-button @click="handleClose">{{ $t('global.cancel') }}</el-button>
<el-button type="primary" @click="doSave">Confirm</el-button>
<el-button @click="handleClose">Cancel</el-button>
</span>
</el-dialog>
</template>
@ -62,10 +62,10 @@ export default {
filterStationList: [],
rules: {
type: [
{ required: true, message: '请选择显示位置', trigger: 'change' }
{ required: true, message: 'Please select a display location', trigger: 'change' }
],
deviceCode: [
{ required: true, message: '请选择值班车站', trigger: 'change' }
{ required: true, message: 'Please select the duty station', trigger: 'change' }
]
},
stationRoleList:[
@ -80,24 +80,24 @@ export default {
'DEVICE_MANAGER'
],
typeList: [
{label: '行调', value: 'DISPATCHER'},
{label: '通号', value: 'MAINTAINER'},
{label: '车站值班员', value: 'STATION_SUPERVISOR'},
{label: '车站助理', value: 'STATION_ASSISTANT'},
{label: '车站站长', value: 'STATION_MASTER'},
{label: '车站信号员', value: 'STATION_SIGNALER'},
{label: '车站客运员', value: 'STATION_PASSENGER'},
{label: '车站扳道员', value: 'STATION_SWITCH_MAN'},
{label: '车站引导员', value: 'STATION_FACILITATOR'},
{label: '车站工务工', value: 'STATION_WORKER'},
{label: '设备管理员', value: 'DEVICE_MANAGER'},
{label: '车务段段长', value: 'TRAIN_MASTER'}
{label: 'DISPATCHER', value: 'DISPATCHER'},
{label: 'MAINTAINER', value: 'MAINTAINER'},
{label: 'STATION_SUPERVISOR', value: 'STATION_SUPERVISOR'},
{label: 'STATION_ASSISTANT', value: 'STATION_ASSISTANT'},
{label: 'STATION_MASTER', value: 'STATION_MASTER'},
{label: 'STATION_SIGNALER', value: 'STATION_SIGNALER'},
{label: 'STATION_PASSENGER', value: 'STATION_PASSENGER'},
{label: 'STATION_SWITCH_MAN', value: 'STATION_SWITCH_MAN'},
{label: 'STATION_FACILITATOR', value: 'STATION_FACILITATOR'},
{label: 'STATION_WORKER', value: 'STATION_WORKER'},
{label: 'DEVICE_MANAGER', value: 'DEVICE_MANAGER'},
{label: 'TRAIN_MASTER', value: 'TRAIN_MASTER'}
]
};
},
computed: {
title() {
return '添加仿真角色成员';
return 'Add simulation role members';
}
},
methods: {
@ -118,10 +118,10 @@ export default {
// if (this.formModel.type !== 'STATION_SUPERVISOR') { delete this.formModel.deviceCode; }
if (!this.stationRoleList.includes(this.formModel.type)) { delete this.formModel.deviceCode; }
addSimulationMember(this.formModel, this.$route.query.group).then(() => {
this.$message.success('添加仿真角色成员成功!');
this.$message.success('Adding the emulator role member succeeded!');
this.handleClose();
}).catch(() => {
this.$message.error('添加仿真角色成员失败!');
this.$message.error('Failed to add the emulator role member!');
});
});
},

View File

@ -1,11 +1,11 @@
<template>
<div class="member">
<div class="member__head">
<div class="member__head--title"> 仿真用户列表</div>
<div class="member__head--title">Simulation user list</div>
<div class="member__head--notes"> {{ onlineNum }}/{{ members.length }}</div>
</div>
<div class="member__container">
<el-input v-model="filterText" :placeholder="this.$t('global.enterNameToFilter')" clearable />
<el-input v-model="filterText" placeholder="Filter by name" clearable />
<el-scrollbar class="member__container--list" wrap-class="scrollbar-wrapper" style="{height: calc(100% - 64px)}">
<el-tree
ref="tree"
@ -16,8 +16,8 @@
@node-contextmenu="handleShowContextMenu"
>
<span slot-scope="{ node, data }">
<span v-if="node.data.online" style="color: green;">{{ data.nickName + (data.userType === 'TEACHER'? '教员':'') + (data.referee? '裁判员':'') + (data.deviceVO? ` -- (${data.deviceVO.code})`:'') }}</span>
<span v-else style="color: #ccc;">{{ data.nickName + (data.userType === 'TEACHER'? '【教员】':'') + (data.referee? '【裁判员】':'') + (data.deviceVO? ` -- (${data.deviceVO.code})`:'') }}</span>
<span v-if="node.data.online" style="color: green;">{{ data.nickName + (data.userType === 'TEACHER'? 'Teacher':'') + (data.referee? 'Referee':'') + (data.deviceVO? ` -- (${data.deviceVO.code})`:'') }}</span>
<span v-else style="color: #ccc;">{{ data.nickName + (data.userType === 'TEACHER'? '【Teacher】':'') + (data.referee? '【Referee】':'') + (data.deviceVO? ` -- (${data.deviceVO.code})`:'') }}</span>
</span>
</el-tree>
</el-scrollbar>

View File

@ -1,6 +1,6 @@
<template>
<el-drawer
title="仿真成员管理"
title="Simulation member management"
:visible.sync="show"
:direction="direction"
:before-close="doClose"
@ -11,10 +11,10 @@
<div class="room__container">
<div style="width: 70%;height: calc(100% - 20px);">
<div style="margin-left: 10px;margin-right: 10px;">
<el-input v-model="queryMember" placeholder="请输入搜索人员">
<el-input v-model="queryMember" placeholder="Please enter search person">
<el-button slot="append" icon="el-icon-search" />
</el-input>
<el-button @click="addMember">添加仿真成员</el-button>
<el-button @click="addMember">Add Simulation Member</el-button>
</div>
<el-tree
ref="tree"
@ -27,7 +27,7 @@
<span :id="data.id" slot-scope="{ data }" class="custom-tree-node">
<span>{{ data.labelName }}</span>
<span v-if="data.type">
<el-select :key="data.id" v-model="data.userId" :disabled="singleMember && roles !== data.type" placeholder="请选择" clearable size="mini" @change="nodeMemberChange($event, data)">
<el-select :key="data.id" v-model="data.userId" :disabled="singleMember && roles !== data.type" placeholder="Please select" clearable size="mini" @change="nodeMemberChange($event, data)">
<el-option
v-for="item in simulationUserList"
:key="item.userId"
@ -94,53 +94,53 @@ export default {
doorList: [],
memberData: {},
treeData: [{
labelName: '行调',
labelName: 'DISPATCHER',
children: []
}, {
labelName: '车站值班员',
labelName: 'STATION_SUPERVISOR',
children: []
}, {
labelName: '司机',
labelName: 'DRIVER',
children: []
}, {
labelName: '通号',
labelName: 'MAINTAINER',
children: []
}, {
labelName: '车辆段',
labelName: 'DEPOT',
children: []
}, {
labelName: 'CTC操作员',
labelName: 'RAIL_CTC',
children: []
}, {
labelName: '车站助理',
labelName: 'STATION_ASSISTANT',
children: []
},
{
labelName: '车站站长',
labelName: 'STATION_MASTER',
children: []
},
{
labelName: '车站信号员',
labelName: 'STATION_SIGNALER',
children: []
},
{
labelName: '车站客运员',
labelName: 'STATION_PASSENGER',
children: []
},
{
labelName: '车站扳道员',
labelName: 'STATION_SWITCH_MAN',
children: []
},
{
labelName: '车站引导员',
labelName: 'STATION_FACILITATOR',
children: []
},
{
labelName: '车站工务工',
labelName: 'STATION_WORKER',
children: []
},
{
labelName: '设备管理员',
labelName: 'DEVICE_MANAGER',
children: []
}
]
@ -193,146 +193,146 @@ export default {
const device = this.$store.getters['map/getDeviceByCode'](item.deviceCode);
switch (item.type) {
case 'DISPATCHER':
this.memberData[item.id].labelName = '行调' + (item.name || '');
this.memberData[item.id].labelName = 'DISPATCHER' + (item.name || '');
dispatcherList.push(this.memberData[item.id]);
break;
case 'ELECTRIC_DISPATCHER':
this.memberData[item.id].labelName = '电力调度' + (item.name || '');
this.memberData[item.id].labelName = 'ELECTRIC_DISPATCHER' + (item.name || '');
electricDispatcherList.push(this.memberData[item.id]);
break;
case 'DEPOT_DISPATCHER':
this.memberData[item.id].labelName = '信号楼-' + device.name + (item.name || '');
this.memberData[item.id].labelName = 'DEPOT_DISPATCHER-' + device.name + (item.name || '');
depotDispatcherList.push(this.memberData[item.id]);
break;
case 'STATION_SUPERVISOR':
this.memberData[item.id].labelName = '值班员-' + device.name + (item.name ? `-${item.name }` : '');
this.memberData[item.id].labelName = 'STATION_SUPERVISOR-' + device.name + (item.name ? `-${item.name }` : '');
stationSupervisorList.push(this.memberData[item.id]);
break;
case 'DRIVER':
this.memberData[item.id].labelName = '司机-列车' + item.deviceCode;
this.memberData[item.id].labelName = 'DRIVER-TRAIN' + item.deviceCode;
driverList.push(this.memberData[item.id]);
break;
case 'MAINTAINER':
this.memberData[item.id].labelName = '通号' + (item.name || '');
this.memberData[item.id].labelName = 'MAINTAINER' + (item.name || '');
maintainerList.push(this.memberData[item.id]);
break;
case 'RAIL_CTC':
this.memberData[item.id].labelName = 'CTC操作员' + device.name;
this.memberData[item.id].labelName = 'RAIL_CTC' + device.name;
ctcOperatorList.push(this.memberData[item.id]);
break;
case 'STATION_ASSISTANT':
this.memberData[item.id].labelName = '车站助理-' + device.name + (item.name ? `-${item.name }` : '');
this.memberData[item.id].labelName = 'STATION_ASSISTANT-' + device.name + (item.name ? `-${item.name }` : '');
stationAssistantList.push(this.memberData[item.id]);
break;
case 'STATION_MASTER':
this.memberData[item.id].labelName = '车站站长-' + device.name + (item.name ? `-${item.name }` : '');
this.memberData[item.id].labelName = 'STATION_MASTER-' + device.name + (item.name ? `-${item.name }` : '');
stationMasterList.push(this.memberData[item.id]);
break;
case 'STATION_SIGNALER':
this.memberData[item.id].labelName = '车站信号员-' + device.name + (item.name ? `-${item.name }` : '');
this.memberData[item.id].labelName = 'STATION_SIGNALER-' + device.name + (item.name ? `-${item.name }` : '');
stationSignalerList.push(this.memberData[item.id]);
break;
case 'STATION_PASSENGER':
this.memberData[item.id].labelName = '车站客运员-' + device.name + (item.name ? `-${item.name }` : '');
this.memberData[item.id].labelName = 'STATION_PASSENGER-' + device.name + (item.name ? `-${item.name }` : '');
stationPassengerList.push(this.memberData[item.id]);
break;
case 'STATION_SWITCH_MAN':
this.memberData[item.id].labelName = '车站扳道员-' + device.name + (item.name ? `-${item.name }` : '');
this.memberData[item.id].labelName = 'STATION_SWITCH_MAN-' + device.name + (item.name ? `-${item.name }` : '');
stationSwitchManList.push(this.memberData[item.id]);
break;
case 'STATION_FACILITATOR':
this.memberData[item.id].labelName = '车站引导员-' + device.name + (item.name ? `-${item.name }` : '');
this.memberData[item.id].labelName = 'STATION_FACILITATOR-' + device.name + (item.name ? `-${item.name }` : '');
stationFacilitatorList.push(this.memberData[item.id]);
break;
case 'STATION_WORKER':
this.memberData[item.id].labelName = '车站工务工-' + device.name + (item.name ? `-${item.name }` : '');
this.memberData[item.id].labelName = 'STATION_WORKER-' + device.name + (item.name ? `-${item.name }` : '');
stationWorkerList.push(this.memberData[item.id]);
break;
case 'DEVICE_MANAGER':
this.memberData[item.id].labelName = '设备管理员-' + device.name + (item.name ? `-${item.name }` : '');
this.memberData[item.id].labelName = 'DEVICE_MANAGER-' + device.name + (item.name ? `-${item.name }` : '');
deviceManagerList.push(this.memberData[item.id]);
break;
case 'TRAIN_MASTER':
// device.name;
this.memberData[item.id].labelName = '车务段段长-' + (item.name ? `-${item.name }` : '');
this.memberData[item.id].labelName = 'TRAIN_MASTER-' + (item.name ? `-${item.name }` : '');
trainMasterList.push(this.memberData[item.id]);
break;
case 'PARENT_DEPARTMENT':
this.memberData[item.id].labelName = '上级部门' + (item.name ? `-${item.name }` : '');
this.memberData[item.id].labelName = 'PARENT_DEPARTMENT' + (item.name ? `-${item.name }` : '');
break;
// DEVICE_MANAGER:'' deviceManager
}
});
this.treeData = [{
labelName: '行调',
labelName: 'DISPATCHER',
id: 'dispatcher',
children: dispatcherList
}, {
labelName: '车站值班员',
labelName: 'ELECTRIC_DISPATCHER',
id: 'stationSupervisor',
children: stationSupervisorList
}, {
labelName: '司机',
labelName: 'DRIVER',
id: 'driver',
children: driverList
}, {
labelName: '通号',
labelName: 'MAINTAINER',
id: 'maintainer',
children: maintainerList
}, {
labelName: '车辆段信号楼',
labelName: 'DEPOT_DISPATCHER',
id: 'depotDispatcher',
children: depotDispatcherList
}, {
labelName: '电力调度',
labelName: 'ELECTRIC_DISPATCHER',
id: 'electricDispatcher',
children: electricDispatcherList
}, {
labelName: 'CTC操作员',
labelName: 'RAIL_CTC',
id: 'ctcOperator',
children: ctcOperatorList
}, {
labelName: '车站助理',
labelName: 'STATION_ASSISTANT',
id: 'stationAssistant',
children: stationAssistantList
},
{
labelName: '车站站长',
labelName: 'STATION_MASTER',
id: 'stationMaster',
children: stationMasterList
},
{
labelName: '车站信号员',
labelName: 'STATION_SIGNALER',
id: 'stationSignaler',
children: stationSignalerList
},
{
labelName: '车站客运员',
labelName: 'STATION_PASSENGER',
id: 'stationPassenger',
children: stationPassengerList
},
{
labelName: '车站扳道员',
labelName: 'STATION_SWITCH_MAN',
id: 'stationSwitchMan',
children: stationSwitchManList
},
{
labelName: '车站引导员',
labelName: 'STATION_FACILITATOR',
id: 'stationFacilitator',
children: stationFacilitatorList
},
{
labelName: '车站工务工',
labelName: 'STATION_WORKER',
id: 'stationWorker',
children: stationWorkerList
},
{
labelName: '设备管理员',
labelName: 'DEVICE_MANAGER',
id: 'deviceManager',
children: deviceManagerList
},
{
labelName: '车务段段长 ',
labelName: 'TRAIN_MASTER ',
id: 'trainMaster',
children: trainMasterList
}
@ -393,10 +393,10 @@ export default {
const data = [{userId: user.userId, memberId:val ? nodeData.id : ''}];
const self = this;
assignUsersPlayRoles(data, this.$route.query.group).then(resp => {
this.$message.success('调整角色成员成功!');
this.$message.success('Adjusting the role member succeeded!');
}).catch(() => {
self.memberData[nodeData.id].userId = '';
this.$message.error('调整角色成员失败!');
this.$message.error('Failed to adjust the role member!');
});
},
addMember() {
@ -447,7 +447,7 @@ export default {
}
.room {
width: 100%;
height: 100%;
height: 95%;
// display: flex;
// flex-direction: column;
box-sizing: border-box;
@ -483,7 +483,7 @@ export default {
line-height: 24px;
}
.el-input-group {
width: calc(100% - 146px);
width: calc(100% - 215px);
}
.el-dialog__body {
padding: 6px 20px;

View File

@ -1,17 +1,17 @@
<template>
<el-dialog v-dialogDrag :title="title" :visible.sync="show" width="550px" center :before-close="doClose">
<el-form ref="form" label-width="120px" :model="formModel" :rules="rules">
<el-form-item :label="$t('display.setTime.systemTime')" prop="initTime">
<el-form-item label="System time:" prop="initTime">
<el-time-picker
v-model="formModel.initTime"
:picker-options="pickerOptions"
:placeholder="$t('display.setTime.anyTime')"
placeholder="Any Time"
/>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="show = false">{{ $t('global.cancel') }}</el-button>
<el-button type="primary" :loading="status" @click="handleSure">{{ $t('global.confirm') }}</el-button>
<el-button @click="show = false">Cancel</el-button>
<el-button type="primary" :loading="status" @click="handleSure">Confirm</el-button>
</span>
</el-dialog>
</template>
@ -32,7 +32,7 @@ export default {
},
computed: {
title() {
return this.$t('display.setTime.setSimulationSystemTime');
return 'Set the simulation system time';
},
group() {
return this.$route.query.group;

View File

@ -4,11 +4,11 @@
<span style="font-size: 16px;">{{ time }}</span>
<span style="margin-left: 10px;font-size: 14px;">{{ dateString }}</span>
</div>
<div style="display: flex;">
<div style="display: flex;align-items: center;">
<el-button
class="controlButton"
type="info"
style="background: #000;"
style="background: #000;height: 32px;"
:disabled="isDisabled"
:loading="pauseLoading"
circle

View File

@ -62,7 +62,7 @@ export default {
{ label: 'Change', name: 'switchOffset', click: this.switchOffset, isDisabled: () => { return false; }, isShow: () => { return this.$store.state.ibp.moreScreen; } },
{ label: 'Device view', name: 'jlmap3dmodel', click: this.jlmap3dmodel, isDisabled: () => { return false; }, isShow: () => { return this.$route.query.client !== 'diagramEdit'; } },
{ label: 'Equipment management', name: 'deviceManage', click: this.deviceManage, isDisabled: () => { return false; }, isShow: () => { return (this.$store.state.training.domConfig.hasDeviceManage && this.$store.state.training.simulationUserType === SimulationUserType.TEACHER) || (this.$route.query.client === 'interlockWork' && this.$route.query.projectDevice === 'ILW'); } },
{ label: 'Contact', name: 'contectUs', click: this.contectUs, isDisabled: () => { return false; }, isShow: () => { return true; } },
// { label: 'Contact', name: 'contectUs', click: this.contectUs, isDisabled: () => { return false; }, isShow: () => { return true; } },
{ label: 'Generating QR Codes', name: 'generateQrCode', click: this.generateQrCode, isDisabled: () => { return false; }, isShow: () => { return this.$store.state.training.domConfig.joint && this.$store.state.training.simulationUserType === SimulationUserType.TEACHER; } },
{ label: 'Switch passenger flow data', name: 'changeFlowData', click: this.changeFlowData, isDisabled: () => { return false; }, isShow: () => { return this.$store.state.training.domConfig.hasLpf && this.$store.state.training.simulationUserType === SimulationUserType.TEACHER; } },
{ label: 'Member management', name: 'memberManage', click: this.memberManage, isDisabled: () => { return false; }, isShow: () => { return this.$store.state.training.domConfig.hasMemberManage && this.$store.state.training.simulationUserType === SimulationUserType.TEACHER; } },
@ -169,7 +169,7 @@ export default {
this.$store.dispatch('training/setInitTime', new Date(`${new Date().toLocaleDateString()} ${model.initTime}`));
}).catch(error => {
const message = getErrorTip(error.code) || 'Abnormal running as planned, please exit and try again';
this.$messageBox(message + '' + this.$t('error.startSimulationFailed'));
this.$messageBox(message + ',' + this.$t('error.startSimulationFailed'));
});
},
examStart(data) {
@ -295,7 +295,7 @@ export default {
.simulationMenuList {
position: absolute;
right: 71px;
width: 95px;
width: 150px;
bottom: 10px;
background: #409EFF;
color: #fbfbfb;

View File

@ -1,6 +1,6 @@
<template>
<el-dialog
title="选择考试类型"
title="Please select the exam type"
:visible.sync="dialogVisible"
:close-on-click-modal="false"
width="350px"
@ -10,8 +10,8 @@
<el-form ref="ruleForm" :model="form" label-width="30px">
<el-form-item label="" prop="role">
<el-select v-model="form.type" style="width:260px">
<el-option label="练习模式" value="practice" />
<el-option label="测验模式" value="test" />
<el-option label="Exercise mode" value="practice" />
<el-option label="Quiz mode" value="test" />
</el-select>
</el-form-item>
</el-form>

View File

@ -2,20 +2,20 @@
<div style="padding: 0 50px;">
<div style="text-align: center;padding: 30px 20px;font-size: 16px;font-weight: bold;">{{ title }}</div>
<div style="text-align: right;padding-right: 10px;margin-bottom: 10px;">
<el-button size="small" type="text" @click="doCreate">{{ isCreate?'创建':'修改' }}</el-button>
<el-button size="small" type="text" @click="doCreate">{{ isCreate?'Create':'Modify' }}</el-button>
<el-divider direction="vertical" />
<el-button size="small" type="text" @click="doClose">返回</el-button>
<el-button size="small" type="text" @click="doClose">Back</el-button>
</div>
<data-form ref="dataform" :form="form" :form-model="formModel" :rules="rules" />
<el-form ref="form" :model="tagForm" size="small" label-width="90px" :rules="formRules">
<el-form-item v-if="formModel.type === 'SINGLE'" label="客户端" prop="client">
<el-select v-model="tagForm.client" placeholder="请选择客户端">
<el-option label="行调客户端" value="dispatchWork" />
<el-option label="现地客户端" value="localWork" />
<el-option label="轨道详览" value="troDetailWork" />
<el-form-item v-if="formModel.type === 'SINGLE'" label="Client" prop="client">
<el-select v-model="tagForm.client" placeholder="Select a client">
<el-option label="Dispatch client" value="dispatchWork" />
<el-option label="Local client" value="localWork" />
<el-option label="Track detailing" value="troDetailWork" />
</el-select>
</el-form-item>
<el-form-item label="标签">
<el-form-item label="Tag">
<el-tag
v-for="tag in tagForm.dynamicTags"
:key="tag"
@ -67,9 +67,9 @@ export default {
},
computed: {
title() {
let t = '新建实训';
let t = 'New practical training';
if (!this.isCreate) {
t = '编辑实训';
t = 'Editing practice';
}
return t;
},
@ -77,9 +77,9 @@ export default {
const form = {
labelWidth: '90px',
items: [
{ prop: 'name', label: '名称', type: 'text' },
{ prop: 'description', label: '描述', type: 'textarea' },
{ prop: 'type', label: '类型', type: 'select', options: ConstConfig.ConstSelect.trainingType }
{ prop: 'name', label: 'Name', type: 'text' },
{ prop: 'description', label: 'Description', type: 'textarea' },
{ prop: 'type', label: 'Type', type: 'select', options: ConstConfig.ConstSelect.trainingType }
]
};
return form;
@ -93,14 +93,14 @@ export default {
{ required: true, validator: this.validateDescription, trigger: 'blur' }
],
type: [
{ required: true, message: '请选择实训类型', trigger: 'blur' }
{ required: true, message: 'Please select a training type', trigger: 'blur' }
]
};
return crules;
},
formRules() {
return {
client: [{ required: true, message: '请选择客户端', trigger: 'blur' }]
client: [{ required: true, message: 'Select a client', trigger: 'blur' }]
};
}
},
@ -125,7 +125,7 @@ export default {
validateName(rule, value, callback) {
if (value.trim().length == 0) {
this.formModel.name = this.formModel.name.replace(/\s/g, '');
return callback(new Error('请输入实训名称'));
return callback(new Error('Please enter the training name'));
} else {
return callback();
}
@ -133,7 +133,7 @@ export default {
validateDescription(rule, value, callback) {
if (value.trim().length == 0) {
this.formModel.description = this.formModel.description.replace(/\s/g, '');
return callback(new Error('请输入实训描述'));
return callback(new Error('Please enter the training description'));
} else {
return callback();
}
@ -167,18 +167,18 @@ export default {
cpData.client = this.formModel.type === 'SINGLE' ? this.tagForm.client : '';
cpData.labelJson = JSON.stringify(this.tagForm.dynamicTags);
let api = updateTraining;
let mes = '编辑';
let mes = 'Edit';
if (this.isCreate) {
api = createTraining;
mes = '创建';
mes = 'Create';
}
api(cpData).then(res => {
this.$message.success(`${mes}实训成功`);
this.$message.success(`${mes} practical training success`);
this.$emit('edit');
this.doClose();
}).catch(err => {
this.$message.error('获取实训详情信息失败!');
this.$message.error(`${mes}实训失败${err.message}`);
this.$message.error('Failed to obtain training details!');
this.$message.error(`${mes} training failure${err.message}`);
});
}
});

View File

@ -2,7 +2,7 @@
<div id="designPane" class="editContent" :class="{'active': dialogVisible}" :style="{height: paneHeight + 'px'}">
<div class="editContentTab">
<div class="editContentTabLable" @click="minisize">
<span class="titleStyle">实训设计</span>
<span class="titleStyle">Practical training design</span>
</div>
</div>
<div v-show="showMode === 'draftTrainingList'">
@ -17,7 +17,7 @@
</div>
<div v-show="showMode === 'editOperate'">
<div class="editContentTitle" style="margin-top: 40px;">
<span>实训名称{{ editData.name || '' }}</span>
<span>Name of practical training{{ editData.name || '' }}</span>
</div>
<edit-operate ref="editOperate" @backDesignPane="backDesignPane" />
</div>
@ -32,7 +32,7 @@
</div>
<div v-show="showMode === 'designPane'" class="editContentBox">
<div class="editContentTitle">
<span>实训名称{{ editData.name || '' }}</span>
<span>Name of practical training{{ editData.name || '' }}</span>
</div>
<div style="text-align: right;padding-right: 10px;">
<el-button size="small" type="text" @click="editGradeRules(editData)">评分</el-button>

View File

@ -1,10 +1,10 @@
<template>
<div class="main">
<div class="trainingHeader">
<div class="trainingList">实训草稿列表</div>
<div class="trainingList">List of draft practical training</div>
</div>
<div style="text-align: right;padding: 10px;margin-bottom: 10px;">
<el-button size="small" type="text" class="createScript" @click="handleCreate">新建</el-button>
<el-button size="small" type="text" class="createScript" @click="handleCreate">Create</el-button>
</div>
<QueryListPage
ref="queryListPage"
@ -58,15 +58,15 @@ export default {
selectCheckShow: false,
columns: [
{
title: this.$t('trainingManage.name'),
title: 'Name',
prop: 'name'
},
{
title: this.$t('trainingManage.description'),
title: 'Description',
prop: 'description'
},
{
title: this.$t('trainingManage.type'),
title: 'Type',
width: '70',
prop: 'type',
type: 'tag',
@ -74,7 +74,7 @@ export default {
tagType: (row) => { return ''; }
},
{
title: this.$t('trainingManage.labelJson'),
title: 'Tag',
width: '150',
prop: 'labelJson',
type: 'tagMore',
@ -83,47 +83,47 @@ export default {
},
{
type: 'button',
title: this.$t('trainingManage.operate'),
title: 'Operate',
width: '300',
buttons: [
{
name: this.$t('trainingManage.record'),
name: 'Record',
handleClick: this.drawUp,
type: 'text',
showControl:(row) => { return row.id; }
},
{
name: this.$t('trainingManage.modify'),
name: 'Modify',
handleClick: this.handleModify,
type: 'text',
showControl:(row) => { return row.id; }
},
{
name: this.$t('trainingManage.delete'),
name: 'Delete',
handleClick: this.deleteScript,
type: 'text',
showControl:(row) => { return row.id; }
},
{
name: this.$t('trainingManage.publish'),
name: 'Publish',
handleClick: this.publishScript,
type: 'text',
showControl:(row) => { return row.id; }
},
{
name: this.$t('trainingManage.preview'),
name: 'Preview',
handleClick: this.previewScript,
type: 'text',
showControl:(row) => { return row.id; }
},
{
name: this.$t('trainingManage.gradeRules'),
name: 'Grade Rules',
handleClick: this.gradeRules,
type: 'text',
showControl:(row) => { return row.id; }
},
{
name: this.$t('trainingManage.publishTrack'),
name: 'Posting Tracks',
handleClick: this.publishTrack,
type: 'text',
showControl:(row) => { return row.id; }
@ -192,7 +192,7 @@ export default {
},
drawUp(index, row) {
if (this.trainingSwitch) {
this.$message.error('请先结束当前实训再编制!');
this.$message.error('Please finish the current training before compiling!');
return;
}
const qObj = {...this.$route.query};
@ -210,12 +210,12 @@ export default {
}).catch((e) => {
console.error(e);
this.$emit('updateDetails', {});
this.$message.error('获取实训详情信息失败!');
this.$message.error('Failed to obtain training details!');
});
loadTrainingBg(this.$route.query.group, row.id).then(resp => {
console.log('加载草稿实训背景', resp);
console.log('Load the draft training background', resp);
}).catch(() => {
this.$message.error('加载草稿实训背景失败!');
this.$message.error('Failed to load draft training background!');
});
},
handleModify(index, row) {
@ -225,33 +225,33 @@ export default {
},
deleteScript(index, row) {
console.log('删除', index, row);
this.$confirm('确定删除该条实训数据?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
this.$confirm('Confirm to delete the training data?', 'Warning', {
confirmButtonText: 'Confirm',
cancelButtonText: 'Cancel',
type: 'warning'
}).then(() => {
if (!row.id) { return; }
deleteTraining([row.id]).then(res => {
console.log('删除实训成功', res);
console.log('Deleted training successfully', res);
this.getListData();
}).catch(err => {
console.log('删除实训失败', err);
console.log('Failed to delete the training', err);
this.getListData();
});
}).catch(e => {});
},
publishScript(index, row) {
console.log('发布', index, row);
this.$prompt('请输入发布后名称', '提示',
this.$prompt('Please enter a post-publication name', 'Hint',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
confirmButtonText: 'Confirm',
cancelButtonText: 'Cancel',
type: 'warning',
inputValue: row.name,
inputErrorMessage: '输入不能为空',
inputErrorMessage: 'The input cannot be empty',
inputValidator: (value) => {
if (!value) {
return '输入不能为空';
return 'The input cannot be empty';
}
}
@ -259,17 +259,17 @@ export default {
if (!row.id || !suc.value) { return; }
publishTraining({draftId: row.id, reName: suc.value}).then(res => {
console.log('发布实训成功', res);
this.$message.success('发布实训成功!');
this.$message.success('Published practical training success!');
}).catch(err => {
console.log('发布实训失败', err);
this.$message.error(`发布实训失败!${err.message}`);
this.$message.error(`Failed to release practical training!${err.message}`);
});
});
},
async previewScript(index, data) {
console.log('预览', index, data);
if (this.trainingSwitch) {
this.$message.error('请先结束当前实训后再加载新的实训!');
this.$message.error('Please finish the current training before loading the new training!');
return;
}
const qObj = {...this.$route.query};
@ -294,10 +294,10 @@ export default {
this.$emit('closeAllDialog');
this.$store.dispatch('trainingNew/setTrainingDetail', detailResp.data);
await loadDraftTraining(this.group, data.id, {mode: this.teachMode});
this.$message.success('加载实训成功!');
this.$message.success('The loading training is successful!');
} catch (e) {
console.error('ceshi', e);
this.$message.error(`加载实训失败!${e.message}`);
this.$message.error(`Failed to load training!${e.message}`);
}
},
//

View File

@ -1,6 +1,6 @@
<template>
<el-dialog
title="角色扮演"
title="Role play"
:visible.sync="dialogVisible"
width="30%"
append-to-body
@ -10,7 +10,7 @@
<template v-for="user in userList">
<div :key="user.id" style="display: flex;justify-content: space-between;">
<div>{{ user.nickName }}</div>
<el-select v-model="user.memberId" size="mini" placeholder="请选择">
<el-select v-model="user.memberId" size="mini" placeholder="Please select">
<el-option
v-for="item in roleList"
:key="item.id"
@ -21,8 +21,8 @@
</div>
</template>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"></el-button>
<el-button type="primary" @click="commit"></el-button>
<el-button @click="dialogVisible = false">Cancel</el-button>
<el-button type="primary" @click="commit">Confirm</el-button>
</span>
</el-dialog>
</template>
@ -91,7 +91,7 @@ export default {
this.$emit('startTraining');
this.doClose();
}).catch(() => {
this.$message.error('扮演角色失败!');
this.$message.error('Role-playing failure!');
});
}
}

View File

@ -1,18 +1,18 @@
<template>
<el-dialog
title="测试成绩"
title="Test score"
:visible.sync="dialogVisible"
width="30%"
append-to-body
:before-close="handleClose"
>
<el-table :data="tableData" border show-summary style="width: 100%">
<el-table-column prop="desc" label="步骤" />
<el-table-column prop="totalScore" label="总分" width="100" />
<el-table-column prop="score" label="得分" width="100" />
<el-table-column prop="desc" label="Step" />
<el-table-column prop="totalScore" label="Total score" width="100" />
<el-table-column prop="score" label="Score" width="100" />
</el-table>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dialogVisible = false"></el-button>
<el-button type="primary" @click="dialogVisible = false">Confirm</el-button>
</span>
</el-dialog>
</template>

View File

@ -1,7 +1,7 @@
<template>
<div id="leftSlider" class="left-slider">
<div class="tip-title">
<span>实训列表</span>
<span>List of practical exercises</span>
</div>
<div class="handleShow">
<span v-if="!show" class="el-icon-arrow-left" style="cursor:pointer" @click="handleSliderShow(false)" />
@ -60,7 +60,7 @@ export default {
const data = {mapId: this.mapId, type: trainingType.toLowerCase()};
if (this.$route.query.labels) {
const labels = this.$route.query.labels.split('-');
const labelMap = { loc: '现地', dis: '行调', section: '区段', signal: '信号机', switch: '道岔', stand: '站台', station: '车站', control: '控制权' };
const labelMap = { loc: 'Local', dis: 'Dispatch', section: 'Section', signal: 'Signal', switch: 'Switch', stand: 'Stand', station: 'Station', control: 'Control' };
const newLabels = [];
labels.forEach(item => newLabels.push(labelMap[item]));
data.labels = newLabels;
@ -85,7 +85,7 @@ export default {
},
async loadScript(training) {
if (this.trainingSwitch) {
this.$message.error('请先结束当前实训后再加载新的实训!');
this.$message.error('Please finish the current training before loading the new training!');
return;
}
try {
@ -97,9 +97,9 @@ export default {
}
this.$store.dispatch('trainingNew/setTrainingDetail', detailResp.data);
await loadPublishTraining(this.group, training.id, {mode: ''});
this.$message.success('加载实训成功!');
this.$message.success('The loading training is successful!');
} catch (e) {
this.$message.error('加载实训失败!');
this.$message.error('Failed to load training!');
}
}
}

View File

@ -24,32 +24,32 @@
<span class="list-elem">{{ trainingDetail ?trainingDetail.name:'' }}</span>
</p>
<p class="list-item">
<span class="list-label">实训模式</span>
<span class="list-label">Mode of practical training</span>
<span class="list-elem">
<el-radio-group v-model="demoMode" :disabled="trainingSwitch" class="mode" size="small" @change="changeMode">
<el-radio :label="TrainingMode.TEACH" border>{{ $t('display.lesson.teachingMode') }}</el-radio>
<el-radio :label="TrainingMode.PRACTICE" border>{{ $t('display.lesson.practiceMode') }}</el-radio>
<el-radio :label="TrainingMode.TEST" border>{{ $t('display.lesson.testMode') }}</el-radio>
<el-radio :label="TrainingMode.TEACH" border>Teaching mode</el-radio>
<el-radio :label="TrainingMode.PRACTICE" border>Exercise mode</el-radio>
<el-radio :label="TrainingMode.TEST" border>Quiz mode</el-radio>
</el-radio-group>
</span>
</p>
<p class="list-item">
<span class="list-label" style="vertical-align: top;"> {{ $t('display.training.trainingInstructions') }}</span>
<span class="list-label" style="vertical-align: top;"> Practical training description</span>
<span class="list-elem elem-span">{{ trainingDetail ?trainingDetail.description:'' }}</span>
</p>
<p class="list-item">
<span class="list-label">操作按钮</span>
<span class="list-label">Operation buttons</span>
<span class="list-elem">
<el-button v-if="!trainingSwitch && trainingDetail" size="small" type="success" @click="handlerStart">开始</el-button>
<el-button v-if="trainingSwitch" size="small" type="danger" @click="handlerEnd">结束</el-button>
<el-button v-if="!trainingSwitch && trainingDetail" size="small" type="success" @click="handlerStart">Start</el-button>
<el-button v-if="trainingSwitch" size="small" type="danger" @click="handlerEnd">Over</el-button>
</span>
</p>
<p class="list-item">
<span class="list-label"> </span>
<span class="list-label">Previous question:</span>
<span class="list-elem elem-span training-box" @click="loadTraining(previousTraining)">{{ previousTraining? previousTraining.name: '' }}</span>
</p>
<p class="list-item">
<span class="list-label"> </span>
<span class="list-label">Next question:</span>
<span class="list-elem elem-span training-box" @click="loadTraining(nextTraining)">{{ nextTraining? nextTraining.name:'' }}</span>
</p>
</el-scrollbar>
@ -161,7 +161,7 @@ export default {
startTraining(this.group, {mode: this.demoMode}).then(() => {
this.$store.dispatch('trainingNew/trainingStart');
}).catch(() => {
this.$message.error('开始实训失败!');
this.$message.error('The beginning of practical training failed!');
});
},
handlerEnd() {
@ -174,7 +174,7 @@ export default {
endTraining(this.group, scoreList).then((resp) => {
this.$store.dispatch('trainingNew/trainingEnd');
}).catch(() => {
this.$message.error('结束实训失败!');
this.$message.error('Failed to complete the training!');
});
},
trainingListShow() {
@ -182,7 +182,7 @@ export default {
},
async loadTraining(training) {
if (this.trainingSwitch) {
this.$message.error('请先结束当前实训后再加载新的实训!');
this.$message.error('Please finish the current training before loading the new training!');
return;
}
try {
@ -194,9 +194,9 @@ export default {
}
this.$store.dispatch('trainingNew/setTrainingDetail', detailResp.data);
await loadPublishTraining(this.group, training.id, {mode: ''});
this.$message.success('加载实训成功!');
this.$message.success('The loading training is successful!');
} catch (e) {
this.$message.error('加载实训失败!');
this.$message.error('Failed to load training!');
}
}
}

View File

@ -38,7 +38,7 @@ export default {
},
'$store.state.socket.trainingOverCount': function(val) {
if (this.teachMode === ScriptMode.TEACH || this.teachMode === ScriptMode.PRACTICE) {
this.trainingTipMessage = '实训完成,请点击结束按钮。';
this.trainingTipMessage = 'After the training, please click the end button.';
}
},
'$store.state.trainingNew.operateErrMsg': function (val) {
@ -50,7 +50,7 @@ export default {
if (opt && opt.hasOwnProperty('color') && opt.hasOwnProperty('message')) {
const h = this.$createElement;
this.$notify({
title: this.$t('global.tips'),
title: 'Tip',
message: h('i', { style: 'color:' + opt.color }, opt.message)
});
}