代码提交
This commit is contained in:
parent
1fe0f491f8
commit
03c97957f3
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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" />
|
||||
|
@ -15,12 +15,12 @@ export default {
|
||||
return {
|
||||
menuNormal: [
|
||||
{
|
||||
title: '登录(L)',
|
||||
title: 'Login(L)',
|
||||
operate: '',
|
||||
children: []
|
||||
},
|
||||
{
|
||||
title: '应用程序(T)',
|
||||
title: 'Application program(T)',
|
||||
operate: '',
|
||||
children: []
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
|
@ -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',
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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!');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -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] }}
|
||||
|
@ -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: {
|
||||
|
@ -13,8 +13,10 @@
|
||||
<div class="TrackInformation">
|
||||
<!-- 111 -->
|
||||
<!-- form -->
|
||||
<el-form ref="form" :model="model" label-width="85px" :rules="rules">
|
||||
<el-form-item label="股道:" prop="code">
|
||||
<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"
|
||||
@ -24,7 +26,9 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="线路性质:" prop="trackNature">
|
||||
</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"
|
||||
@ -34,7 +38,11 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="接发车方向:" prop="direction">
|
||||
</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"
|
||||
@ -44,7 +52,9 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="接发车类型:" prop="trainType">
|
||||
</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"
|
||||
@ -54,7 +64,11 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="超限类型:" prop="transfinite">
|
||||
</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"
|
||||
@ -64,7 +78,9 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="站台:" prop="standType">
|
||||
</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"
|
||||
@ -74,7 +90,11 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="允许动车组:" prop="motorCar">
|
||||
</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"
|
||||
@ -84,7 +104,9 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="上水设备:" prop="waterSupply">
|
||||
</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"
|
||||
@ -94,7 +116,11 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="排污设备:" prop="sewageAbsorption">
|
||||
</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"
|
||||
@ -104,7 +130,9 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="军用:" prop="military">
|
||||
</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"
|
||||
@ -114,14 +142,16 @@
|
||||
/>
|
||||
</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:{
|
||||
|
@ -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) {
|
||||
|
@ -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(); // 发送语音
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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!');
|
||||
});
|
||||
});
|
||||
},
|
||||
|
@ -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>
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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>
|
||||
|
@ -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}`);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -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>
|
||||
|
@ -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}`);
|
||||
}
|
||||
},
|
||||
// 打分
|
||||
|
@ -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!');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -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>
|
||||
|
@ -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!');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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!');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user