综合演练调整
This commit is contained in:
parent
103ae24b64
commit
a689103abe
72
src/views/newMap/jointTrainingNew/addMember.vue
Normal file
72
src/views/newMap/jointTrainingNew/addMember.vue
Normal file
@ -0,0 +1,72 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
:title="title"
|
||||
:visible.sync="dialogVisible"
|
||||
width="500px"
|
||||
:before-close="handleClose"
|
||||
center
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-form ref="form" :model="formModel" label-width="120px" :rules="rules">
|
||||
<el-form-item label="添加仿真成员:" prop="part">
|
||||
<el-select v-model="formModel.type" placeholder="请选择" size="small">
|
||||
<el-option
|
||||
v-for="item in typeList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</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>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
name: 'AddMember',
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
formModel: {
|
||||
type: ''
|
||||
},
|
||||
rules: {
|
||||
part: [
|
||||
{ required: true, message: '请选择显示位置', trigger: 'change' }
|
||||
]
|
||||
},
|
||||
typeList: [{label: '行调', value: 'DISPATCHER'}, {label: '通号', value: 'MAINTAINER'}]
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
title() {
|
||||
return '添加仿真角色成员';
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
initData(row) {
|
||||
|
||||
},
|
||||
doShow(row) {
|
||||
this.initData(row);
|
||||
this.dialogVisible = true;
|
||||
},
|
||||
doSave() {
|
||||
const self = this;
|
||||
},
|
||||
handleClose(done) {
|
||||
this.dialogVisible = false;
|
||||
this.formModel = {
|
||||
type: ''
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -7,6 +7,7 @@
|
||||
<transition name="el-zoom-in-bottom">
|
||||
<map-system-draft ref="mapCanvas" @back="back" />
|
||||
</transition>
|
||||
|
||||
<menu-demon-joint
|
||||
ref="demonMenu"
|
||||
:group="group"
|
||||
@ -15,11 +16,11 @@
|
||||
:device-code="deviceCode"
|
||||
:countdown-time="countdownTime"
|
||||
@getUserRole="getUserRole"
|
||||
@showMembers="showMembers"
|
||||
@hidepanel="hidepanel"
|
||||
@showIbp="showIbp"
|
||||
@startCounting="startCounting"
|
||||
@hidejl3dcctv="hidejl3dcctv"
|
||||
@handlerMemberManage="handlerMemberManage"
|
||||
/>
|
||||
<menu-demon-schema
|
||||
ref="menuSchema"
|
||||
@ -41,7 +42,8 @@
|
||||
<menu-system-time ref="menuSystemTime" :offset="offset" :group="group" :right="right" />
|
||||
<menu-train-list v-if="prdType=='02'" @setCenter="setCenter" />
|
||||
<js-question v-if="project==='jsxt'" :offset="offset" :question-list="questionList" />
|
||||
<members-manage ref="membersManage" />
|
||||
<members-manage ref="membersManage" @addSimulationMember="addSimulationMember" />
|
||||
<add-member ref="addMember" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -51,7 +53,6 @@
|
||||
import MapSystemDraft from '@/views/newMap/mapsystemNew/index';
|
||||
import MenuDemonJoint from './menuDemon';
|
||||
import MenuDemonSchema from './menuSchema';
|
||||
import MembersManage from './membersManage';
|
||||
import JsQuestion from './jsQuestion';
|
||||
import JoinFaultChoose from '@/views/newMap/displayNew/demon/faultChoose';
|
||||
import JoinRunPlanLoad from '@/views/newMap/displayNew/demon/runPlanLoad';
|
||||
@ -75,6 +76,8 @@ import { timeFormat } from '@/utils/date';
|
||||
import { Message } from 'element-ui';
|
||||
import Vue from 'vue';
|
||||
import localStore from 'storejs';
|
||||
import MembersManage from './membersManage';
|
||||
import AddMember from './addMember';
|
||||
|
||||
export default {
|
||||
name: 'JointTrainingDraft',
|
||||
@ -91,7 +94,8 @@ export default {
|
||||
Jl3dMaintainer,
|
||||
IbpPlate,
|
||||
JsQuestion,
|
||||
MembersManage
|
||||
MembersManage,
|
||||
AddMember
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@ -369,29 +373,23 @@ export default {
|
||||
} else {
|
||||
this.$store.dispatch('training/over');
|
||||
}
|
||||
// if (this.isDemon) {
|
||||
// this.$refs.menuDemon.initPlannedDriving(resp.data.planRunning);
|
||||
// } else if (this.isScript) {
|
||||
// this.$refs.menuScript.initPlannedDriving(resp.data.planRunning);
|
||||
// }
|
||||
} else if (resp && resp.code == 200 && resp.data && resp.data.dataError) {
|
||||
this.dataError = true;
|
||||
this.$messageBox('此地图数据正在维护中,无法运行!');
|
||||
}
|
||||
},
|
||||
async getUserRole() {
|
||||
// const res = await getUserRolesNew(this.group);
|
||||
// const data = res.data || {};
|
||||
// this.userRole = data.userRole;
|
||||
// this.deviceCode = data.deviceCode;
|
||||
// this.ibpPart = data.ibpPart;
|
||||
// if (this.userRole === 'IBP') {
|
||||
// this.showIbp(this.deviceCode);
|
||||
// } else {
|
||||
// this.hideIbp();
|
||||
// }
|
||||
// return res;
|
||||
return '';
|
||||
const res = await getUserRolesNew(this.group);
|
||||
const data = res.data || {};
|
||||
this.userRole = data.userRole;
|
||||
this.deviceCode = data.deviceCode;
|
||||
this.ibpPart = data.ibpPart;
|
||||
if (this.userRole === 'IBP') {
|
||||
this.showIbp(this.deviceCode);
|
||||
} else {
|
||||
this.hideIbp();
|
||||
}
|
||||
return res;
|
||||
},
|
||||
// 仿真系统
|
||||
async initLoadDemonData() {
|
||||
@ -427,7 +425,6 @@ export default {
|
||||
} else {
|
||||
resp = await this.getUserRole();
|
||||
}
|
||||
// console.log('/////////////' + resp.data.userRole);
|
||||
if (resp && resp.code == 200) {
|
||||
// Admin 管理员 Instructor 教员 Dispatcher 行调 STATION_SUPERVISOR 车站 Audience 观众 Driver 司机 MAINTAINER 通号 IBP:IBP盘
|
||||
this.userRole = resp.data.userRole;
|
||||
@ -623,17 +620,20 @@ export default {
|
||||
this.$jlmap.on('pan');
|
||||
this.$jlmap.setRevoverBigScreen();
|
||||
},
|
||||
showMembers() {
|
||||
|
||||
handlerMemberManage() {
|
||||
this.$refs.membersManage.doShow();
|
||||
},
|
||||
addSimulationMember() {
|
||||
this.$refs.addMember.doShow();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.main {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.main {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
|
@ -7,24 +7,31 @@
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
fullscreen
|
||||
:close-on-click-modal="false"
|
||||
center
|
||||
>
|
||||
<div class="room">
|
||||
<div class="room__head">
|
||||
<div class="room__head--title">
|
||||
{{ $t('trainRoom.comprehensiveDrillRoom') }}
|
||||
</div>
|
||||
<div class="room__head--notes">
|
||||
{{ $t('trainRoom.comprehensiveTrainingManager') + room.creator.nickName }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="room__container">
|
||||
<div style="width: 70%;">
|
||||
<el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick">
|
||||
<div style="margin-left: 10px;margin-right: 10px;">
|
||||
<el-input v-model="queryMember" placeholder="请输入搜索人员">
|
||||
<el-button slot="append" icon="el-icon-search" />
|
||||
</el-input>
|
||||
<el-button @click="addMember">添加仿真成员</el-button>
|
||||
</div>
|
||||
<el-tree
|
||||
:data="data"
|
||||
:props="defaultProps"
|
||||
default-expand-all
|
||||
style="margin: 10px;margin-bottom: 0;border: 1px solid #ccc;"
|
||||
:style="{height: height - 35 + 'px'}"
|
||||
@node-click="handleNodeClick"
|
||||
>
|
||||
<span slot-scope="{ node, data }" class="custom-tree-node">
|
||||
<span>{{ node.label }}</span>
|
||||
<span v-if="node.type==='member'">
|
||||
<el-select v-model="node.member" placeholder="请选择" clearable @change="nodeMemberChange($event, node)">
|
||||
<span v-if="node.data.type === 'member'">
|
||||
<el-select v-model="node.member" placeholder="请选择" clearable size="mini" @change="nodeMemberChange($event, node)">
|
||||
<el-option
|
||||
v-for="item in members"
|
||||
:key="item.id"
|
||||
@ -60,6 +67,7 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
queryMember: '',
|
||||
room: {
|
||||
totalNum: 0,
|
||||
group: '',
|
||||
@ -77,9 +85,9 @@ export default {
|
||||
label: 'label'
|
||||
},
|
||||
members: [
|
||||
{id: 1, name: '张三'},
|
||||
{id: 2, name: '李四'},
|
||||
{id: 3, name: '王五'}
|
||||
{id: 1, name: '张三', nickName:'张三'},
|
||||
{id: 2, name: '李四', nickName:'李四'},
|
||||
{id: 3, name: '王五', nickName:'王五'}
|
||||
],
|
||||
stationList: [],
|
||||
availableStationList:[],
|
||||
@ -123,7 +131,7 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
height() {
|
||||
return this.$store.state.app.height - 100;
|
||||
return this.$store.state.app.height - 130;
|
||||
},
|
||||
group() {
|
||||
return this.$route.query.group;
|
||||
@ -165,6 +173,9 @@ export default {
|
||||
member.disabled = false;
|
||||
}
|
||||
});
|
||||
},
|
||||
addMember() {
|
||||
this.$emit('addSimulationMember');
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -178,6 +189,7 @@ export default {
|
||||
justify-content: space-between;
|
||||
font-size: 14px;
|
||||
padding-right: 8px;
|
||||
margin: 2px;
|
||||
}
|
||||
.room {
|
||||
width: 100%;
|
||||
@ -187,33 +199,6 @@ export default {
|
||||
box-sizing: border-box;
|
||||
background: #f0f0f0;
|
||||
|
||||
&__head {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background: #000;
|
||||
color: #fff;
|
||||
padding: 10px;
|
||||
position: relative;
|
||||
|
||||
&--title {
|
||||
font-size: 22px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
&--notes {
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
bottom: 5px;
|
||||
}
|
||||
&--info {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
bottom: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
&__container {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
@ -233,10 +218,21 @@ export default {
|
||||
flex-basis: 360px;
|
||||
}
|
||||
}
|
||||
|
||||
&__footer {
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
}
|
||||
/deep/ {
|
||||
.el-input--mini .el-input__inner {
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
}
|
||||
.el-input-group {
|
||||
width: calc(100% - 146px);
|
||||
}
|
||||
.el-dialog__body {
|
||||
padding: 6px 20px;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<chat-box :group="group" :user-role="userRole" />
|
||||
<div class="display-draft" :class="{'display-type-hb': $route.query.lineCode == '07' && $store.state.training.prdType=='01'}">
|
||||
<el-button-group>
|
||||
<el-button v-if="dataError" @click="membersManage">成员管理</el-button>
|
||||
<el-button @click="memberManage">成员管理</el-button>
|
||||
<el-button v-if="hasRealDevice && !dataError " type="primary" @click="setRelDevice">{{ $t('joinTraining.connectRealDevices') }}</el-button>
|
||||
<el-button v-if="isDriver && !dataError" type="jumpjlmap3d" @click="jumpjlmap3d">{{ $t('joinTraining.driverPerspective') }}</el-button>
|
||||
<el-button v-if="isStationSupervisor && !dataError" type="jmap3dcctv" @click="jlmap3dcctv">cctv</el-button>
|
||||
@ -11,6 +11,7 @@
|
||||
<el-button type="success" :disabled="isDisable || dataError" @click="selectBeginTime">{{ $t('joinTraining.drivingByPlan') }}</el-button>
|
||||
<el-button type="danger" :disabled="dataError" @click="end">{{ $t('joinTraining.initialize') }}</el-button>
|
||||
</template>
|
||||
<!-- <el-button type="primary" :loading="backLoading" @click="back">{{ $t('global.back') }}</el-button> -->
|
||||
</el-button-group>
|
||||
<template v-if="project==='jsxt'">
|
||||
<div style="background: #FFF;display: inline-block;height: 40px;line-height: 40px;padding: 0 5px;border: 2px solid #F00;border-radius: 6px;margin-right: 8px;">{{ '剩余时间:'+countdownTime }}</div>
|
||||
@ -18,7 +19,7 @@
|
||||
<el-button :disabled="jsStart" type="danger" @click="endCompetition">提交</el-button>
|
||||
</template>
|
||||
<el-button v-if="project==='refereeJsxt'" type="success" @click="refeeEndCompetition">返回</el-button>
|
||||
<el-button v-if="project!=='jsxt'&&project!=='refereeJsxt' && !projectDevice" type="primary" :loading="backLoading" @click="back">{{ $t('global.back') }}</el-button>
|
||||
<el-button v-if="project!=='jsxt'&&project!=='refereeJsxt'" type="primary" :loading="backLoading" @click="back">{{ $t('global.back') }}</el-button>
|
||||
</div>
|
||||
<qr-code ref="qrCode" />
|
||||
<set-time ref="setTime" @ConfirmSelectBeginTime="start" />
|
||||
@ -111,9 +112,6 @@ export default {
|
||||
},
|
||||
project() {
|
||||
return getSessionStorage('project');
|
||||
},
|
||||
projectDevice() {
|
||||
return this.$route.query.projectDevice;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@ -363,102 +361,102 @@ export default {
|
||||
this.$message.error('提交试卷失败!');
|
||||
});
|
||||
},
|
||||
membersManage() {
|
||||
this.$emit('showMembers');
|
||||
memberManage() {
|
||||
this.$emit('handlerMemberManage');
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
@import "src/styles/mixin.scss";
|
||||
.tabs-roles {
|
||||
overflow: hidden;
|
||||
border-bottom: 1px solid #e4e7ed;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
@import "src/styles/mixin.scss";
|
||||
.tabs-roles {
|
||||
overflow: hidden;
|
||||
border-bottom: 1px solid #e4e7ed;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
|
||||
.roles {
|
||||
padding: 0 20px;
|
||||
height: 41px;
|
||||
list-style: none;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: #303133;
|
||||
cursor: pointer;
|
||||
border-left: 1px solid #e4e7ed;
|
||||
border-right: 1px solid #e4e7ed;
|
||||
float: left;
|
||||
}
|
||||
.roles {
|
||||
padding: 0 20px;
|
||||
height: 41px;
|
||||
list-style: none;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: #303133;
|
||||
cursor: pointer;
|
||||
border-left: 1px solid #e4e7ed;
|
||||
border-right: 1px solid #e4e7ed;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.roles-first {
|
||||
border-right: none;
|
||||
}
|
||||
.roles-first {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.roles-active {
|
||||
border-bottom-color: #fff;
|
||||
color: #409EFF;
|
||||
}
|
||||
.roles-active {
|
||||
border-bottom-color: #fff;
|
||||
color: #409EFF;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.tabs-content {
|
||||
height: 300px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
}
|
||||
.tabs-content {
|
||||
height: 300px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.display-score {
|
||||
background-color: black;
|
||||
display: -moz-inline-box;
|
||||
display: inline-block;
|
||||
text-align: left;
|
||||
height: 32px;
|
||||
line-height: 24px;
|
||||
border-radius: 4px;
|
||||
padding-left: 2px;
|
||||
margin-left: 10px;
|
||||
font-family: "Microsoft" !important;
|
||||
font-size: 18px !important;
|
||||
color: #fff;
|
||||
}
|
||||
.display-score {
|
||||
background-color: black;
|
||||
display: -moz-inline-box;
|
||||
display: inline-block;
|
||||
text-align: left;
|
||||
height: 32px;
|
||||
line-height: 24px;
|
||||
border-radius: 4px;
|
||||
padding-left: 2px;
|
||||
margin-left: 10px;
|
||||
font-family: "Microsoft" !important;
|
||||
font-size: 18px !important;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.reminder-drag {
|
||||
position: absolute;
|
||||
float: left;
|
||||
left: 10px;
|
||||
bottom: 10px;
|
||||
width: 500px;
|
||||
height: 340px;
|
||||
background-color: #fff;
|
||||
border-radius: 5px;
|
||||
overflow: hidden;
|
||||
z-index: 2;
|
||||
font-size: 18px;
|
||||
.reminder-drag {
|
||||
position: absolute;
|
||||
float: left;
|
||||
left: 10px;
|
||||
bottom: 10px;
|
||||
width: 500px;
|
||||
height: 340px;
|
||||
background-color: #fff;
|
||||
border-radius: 5px;
|
||||
overflow: hidden;
|
||||
z-index: 2;
|
||||
font-size: 18px;
|
||||
|
||||
/deep/ {
|
||||
.el-tabs__header {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
/deep/ {
|
||||
.el-tabs__header {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.title-bar {
|
||||
height: 40px;
|
||||
}
|
||||
.title-bar {
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.content {
|
||||
height: 300px;
|
||||
}
|
||||
}
|
||||
.content {
|
||||
height: 300px;
|
||||
}
|
||||
}
|
||||
|
||||
.display-draft {
|
||||
position: absolute;
|
||||
float: right;
|
||||
right: 40px;
|
||||
bottom: 28px;
|
||||
}
|
||||
.display-type-hb{
|
||||
bottom: 105px;
|
||||
}
|
||||
.display-draft {
|
||||
position: absolute;
|
||||
float: right;
|
||||
right: 40px;
|
||||
bottom: 28px;
|
||||
}
|
||||
.display-type-hb{
|
||||
bottom: 105px;
|
||||
}
|
||||
</style>
|
||||
|
Loading…
Reference in New Issue
Block a user