综合演练调整

This commit is contained in:
fan 2020-03-17 14:54:03 +08:00
parent 022cf8c6ac
commit b94c2b47de
12 changed files with 434 additions and 410 deletions

View File

@ -25,7 +25,6 @@
<script> <script>
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { timeFormat } from '@/utils/date'; import { timeFormat } from '@/utils/date';
import { runDiagramGetTime } from '@/api/simulation';
import DataTable from '../menusPlan/components/dataTable'; import DataTable from '../menusPlan/components/dataTable';
import echarts from 'echarts'; import echarts from 'echarts';

View File

@ -19,6 +19,7 @@ const DesignDisplay = () => import('@/views/display/designIndex');
const TrainRoom = () => import('@/views/trainRoom/index'); const TrainRoom = () => import('@/views/trainRoom/index');
const JointTraining = () => import('@/views/jointTraining/index'); const JointTraining = () => import('@/views/jointTraining/index');
const JointTrainingNew = () => import('@/views/newMap/jointTrainingNew/index');
const Error401 = () => import('@/views/error-page/401'); const Error401 = () => import('@/views/error-page/401');
const Errpr404 = () => import('@/views/error-page/404'); const Errpr404 = () => import('@/views/error-page/404');
@ -544,7 +545,7 @@ export const asyncRouter = [
}, },
{ {
path: '/jointTrainingNew', path: '/jointTrainingNew',
component: JointTraining, component: JointTrainingNew,
hidden: true hidden: true
}, },
{ {

View File

@ -13,7 +13,7 @@ const runPlan = {
width: 800, // 运行图canvas 容器 宽度 width: 800, // 运行图canvas 容器 宽度
height: 600, // 运行图canvas 容器 高度 height: 600, // 运行图canvas 容器 高度
refreshCount: 0, // 刷新页面重新加载 refreshCount: 0, // 刷新页面重新加载
setInitialPlanData: {} // 运行图原始数据 initialPlanData: {} // 运行图原始数据
}, },
getters: { getters: {
stations: (state) => { stations: (state) => {

View File

@ -20,7 +20,7 @@
<script> <script>
import SetTime from './demon/setTime'; import SetTime from './demon/setTime';
import { Notification } from 'element-ui'; import { Notification } from 'element-ui';
import { ranAsPlan, runDiagramOver, runDiagramGetTime } from '@/api/simulation'; import { ranAsPlan, runDiagramOver } from '@/api/simulation';
// import { timeFormat } from '@/utils/date'; // import { timeFormat } from '@/utils/date';
import { EventBus } from '@/scripts/event-bus'; import { EventBus } from '@/scripts/event-bus';
@ -152,10 +152,7 @@ export default {
}); });
}, },
async loadSystemTime() { async loadSystemTime() {
// const rest = await runDiagramGetTime(this.group);
// if (rest && rest.code == 200) {
// this.$store.dispatch('training/setInitTime', +new Date(`${new Date().getFullYear()} ${timeFormat(rest.data)}`));
// }
} }
} }
}; };

View File

@ -26,23 +26,24 @@
</template> </template>
<script> <script>
import MapSystemDraft from '@/views/mapsystem/index'; import MapSystemDraft from '@/views/newMap/mapsystemNew/index';
import MenuDemonJoint from './menuDemon'; import MenuDemonJoint from './menuDemon';
import MenuDemonSchema from './menuSchema'; import MenuDemonSchema from './menuSchema';
import JoinFaultChoose from '@/views/display/demon/faultChoose'; import JoinFaultChoose from '@/views/newMap/displayNew/demon/faultChoose';
import JoinRunPlanLoad from '@/views/display/demon/runPlanLoad'; import JoinRunPlanLoad from '@/views/newMap/displayNew/demon/runPlanLoad';
import JoinRunPlanView from '@/views/display/demon/runPlanView'; import JoinRunPlanView from '@/views/newMap/displayNew/demon/runPlanView';
import menuSystemTime from '@/views/display/menuSystemTime'; import menuSystemTime from '@/views/newMap/displayNew/menuSystemTime';
import IbpPlate from '@/views/ibp/ibpsystem/index'; import IbpPlate from '@/views/ibp/ibpsystem/index';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { OperateMode, TrainingMode } from '@/scripts/ConstDic'; import { OperateMode, TrainingMode } from '@/scripts/ConstDic';
import { checkLoginLine } from '@/api/login'; import { checkLoginLine } from '@/api/login';
import { loadMapDataById } from '@/utils/loaddata'; import { loadNewMapDataByGroup } from '@/utils/loaddata';
import { getUserRolesNew, deljointTrainRoomNew} from '@/api/jointTraining'; import { getUserRolesNew, deljointTrainRoomNew} from '@/api/jointTraining';
import { runDiagramOver, getSimulationInfo } from '@/api/simulation'; import { clearSimulation, getSimulationInfoNew } from '@/api/simulation';
import Jl3dDrive from '@/views/jlmap3d/drive/jl3ddrive'; import Jl3dDrive from '@/views/jlmap3d/drive/jl3ddrive';
import { EventBus } from '@/scripts/event-bus'; import { EventBus } from '@/scripts/event-bus';
import ibpData from '@/ibp/constant/ibpData'; import ibpData from '@/ibp/constant/ibpData';
import { timeFormat } from '@/utils/date';
import { Message } from 'element-ui'; import { Message } from 'element-ui';
export default { export default {
@ -122,7 +123,7 @@ export default {
showClose: false, showClose: false,
callback: async (action) => { callback: async (action) => {
await this.$store.dispatch('training/over'); await this.$store.dispatch('training/over');
await runDiagramOver(this.group); await clearSimulation(this.group);
await deljointTrainRoomNew(this.group); await deljointTrainRoomNew(this.group);
this.$router.go(-1); this.$router.go(-1);
} }
@ -276,10 +277,21 @@ export default {
} }
}, },
async loadSimulationInfo() { async loadSimulationInfo() {
const resp = await getSimulationInfo(this.group); const resp = await getSimulationInfoNew(this.group);
if (resp && resp.code == 200) { if (resp && resp.code == 200) {
this.$store.dispatch('scriptRecord/updateSimulationPause', resp.data.pause); this.$store.dispatch('scriptRecord/updateSimulationPause', resp.data.pause);
this.questId = Number(resp.data.questId) || 0; this.questId = Number(resp.data.questId) || 0;
this.$store.dispatch('training/setInitTime', +new Date(`${new Date().getFullYear()} ${timeFormat(resp.data.systemTime)}`));
if (resp.data.planRunning) {
this.$store.dispatch('training/simulationStart');
} 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);
}
} }
}, },
async getUserRole() { async getUserRole() {
@ -307,15 +319,15 @@ export default {
// Admin Instructor Dispatcher Attendant Audience Driver Repair IBP:IBP // Admin Instructor Dispatcher Attendant Audience Driver Repair IBP:IBP
this.userRole = resp.data.userRole; this.userRole = resp.data.userRole;
switch (this.userRole) { switch (this.userRole) {
case 'Admin': this.$store.dispatch('training/setPrdType', '02'); this.$store.dispatch('training/setRoles', 'Admin'); this.hideIbp(); break; case 'ADMIN': this.$store.dispatch('training/setPrdType', '02'); this.$store.dispatch('training/setRoles', 'ADMIN'); this.hideIbp(); break;
case 'Instructor': this.$store.dispatch('training/setPrdType', '02'); this.$store.dispatch('training/setRoles', 'Instructor'); this.hideIbp(); break; case 'INSTRUCTOR': this.$store.dispatch('training/setPrdType', '02'); this.$store.dispatch('training/setRoles', 'INSTRUCTOR'); this.hideIbp(); break;
case 'Dispatcher': this.$store.dispatch('training/setPrdType', '02'); this.$store.dispatch('training/setRoles', 'Dispatcher'); this.hideIbp(); break; case 'DISPATCHER': this.$store.dispatch('training/setPrdType', '02'); this.$store.dispatch('training/setRoles', 'DISPATCHER'); this.hideIbp(); break;
case 'Attendant': this.$store.dispatch('training/setPrdType', '01'); this.$store.dispatch('training/setRoles', 'Attendant'); this.hideIbp(); break; case 'STATION_SUPERVISOR': this.$store.dispatch('training/setPrdType', '01'); this.$store.dispatch('training/setRoles', 'STATION_SUPERVISOR'); this.hideIbp(); break;
case 'Audience': this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'Audience'); this.hideIbp(); break; case 'AUDIENCE': this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'AUDIENCE'); this.hideIbp(); break;
case 'Driver': this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'Driver'); this.hideIbp(); break; case 'DRIVER': this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'DRIVER'); this.hideIbp(); break;
case 'Repair': this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'Repair'); this.hideIbp(); break; case 'REPAIR': this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'REPAIR'); this.hideIbp(); break;
case 'IBP': this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'IBP'); this.showIbp(resp.data.deviceCode); break; case 'IBP': this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'IBP'); this.showIbp(resp.data.deviceCode); break;
case 'BigScreen': this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'BigScreen'); this.hideIbp(); break; case 'BIGSCREEN': this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'BIGSCREEN'); this.hideIbp(); break;
} }
} }
await this.getTrainDetail(); await this.getTrainDetail();
@ -325,7 +337,7 @@ export default {
}, },
async getTrainDetail() { async getTrainDetail() {
try { try {
await loadMapDataById(this.mapId); await loadNewMapDataByGroup(this.group);
await this.$store.dispatch('training/setMapDefaultState'); await this.$store.dispatch('training/setMapDefaultState');
} catch (error) { } catch (error) {
this.$messageBox(this.$t('error.getMapDataFailed')); this.$messageBox(this.$t('error.getMapDataFailed'));

View File

@ -8,7 +8,7 @@
<el-button type="success" :disabled="isDisable" @click="selectBeginTime">{{ $t('joinTraining.drivingByPlan') }}</el-button> <el-button type="success" :disabled="isDisable" @click="selectBeginTime">{{ $t('joinTraining.drivingByPlan') }}</el-button>
<el-button type="danger" :disabled="!isDisable" @click="end">{{ $t('joinTraining.exitPlan') }}</el-button> <el-button type="danger" :disabled="!isDisable" @click="end">{{ $t('joinTraining.exitPlan') }}</el-button>
</template> </template>
<el-button v-if="!isBigScreen" type="primary" @click="back">{{ $t('global.back') }}</el-button> <el-button type="primary" @click="back">{{ $t('global.back') }}</el-button>
</el-button-group> </el-button-group>
</div> </div>
<qr-code ref="qrCode" /> <qr-code ref="qrCode" />
@ -19,11 +19,10 @@
<script> <script>
import QrCode from '@/components/QrCode'; import QrCode from '@/components/QrCode';
import SetTime from '@/views/display/demon/setTime'; import SetTime from '@/views/newMap/displayNew/demon/setTime';
import { runDiagramIsStart, ranAsPlan, runDiagramOver, runDiagramGetTime } from '@/api/simulation'; import { ranAsPlan, clearSimulation } from '@/api/simulation';
import { exitFullscreen } from '@/utils/screen'; import { exitFullscreen } from '@/utils/screen';
import { putJointTrainingSimulationUserNew} from '@/api/jointTraining'; import { putJointTrainingSimulationUserNew} from '@/api/jointTraining';
import { timeFormat } from '@/utils/date';
import { EventBus } from '@/scripts/event-bus'; import { EventBus } from '@/scripts/event-bus';
import { getSessionStorage } from '@/utils/auth'; import { getSessionStorage } from '@/utils/auth';
import RealDevice from './menuDraft/realDevice'; import RealDevice from './menuDraft/realDevice';
@ -78,16 +77,13 @@ export default {
return this.$route.query.lineCode; return this.$route.query.lineCode;
}, },
isSpeaking() { isSpeaking() {
return this.userRole != 'Driver' && this.userRole != ''; return this.userRole != 'DRIVER' && this.userRole != '';
}, },
isDriver() { isDriver() {
return this.userRole == 'Driver'; return this.userRole == 'DRIVER';
}, },
isAdmin() { isAdmin() {
return this.userRole == 'Admin'; return this.userRole == 'ADMIN';
},
isBigScreen() {
return this.userRole == 'BigScreen';
}, },
isProject() { isProject() {
return getSessionStorage('project').endsWith('gzb'); return getSessionStorage('project').endsWith('gzb');
@ -227,40 +223,40 @@ export default {
list.forEach(item => { list.forEach(item => {
if (this.userId == item.id) { if (this.userId == item.id) {
switch (item.userRole) { switch (item.userRole) {
case 'Instructor': case 'INSTRUCTOR':
this.$store.dispatch('training/setPrdType', '02'); this.$store.dispatch('training/setRoles', 'Instructor'); this.$store.dispatch('training/setPrdType', '02'); this.$store.dispatch('training/setRoles', 'INSTRUCTOR');
this.$emit('getUserRole'); this.$emit('getUserRole');
break; break;
case 'Dispatcher': case 'DISPATCHER':
this.$store.dispatch('training/setPrdType', '02'); this.$store.dispatch('training/setRoles', 'Dispatcher'); this.$store.dispatch('training/setPrdType', '02'); this.$store.dispatch('training/setRoles', 'DISPATCHER');
this.$emit('getUserRole'); this.$emit('getUserRole');
break; break;
case 'Attendant': case 'STATION_SUPERVISOR':
if (!item['deviceCode']) { if (!item['deviceCode']) {
this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'Attendant'); this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'STATION_SUPERVISOR');
break; break;
} }
this.$store.dispatch('training/setPrdType', '01'); this.$store.dispatch('training/setRoles', 'Attendant'); this.$store.dispatch('training/setPrdType', '01'); this.$store.dispatch('training/setRoles', 'STATION_SUPERVISOR');
this.$emit('getUserRole'); this.$emit('getUserRole');
break; break;
case 'Driver': case 'DRIVER':
this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'Driver'); this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'DRIVER');
this.$emit('getUserRole'); this.$emit('getUserRole');
break; break;
case 'Repair': case 'REPAIR':
this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'Repair'); this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'REPAIR');
this.$emit('getUserRole'); this.$emit('getUserRole');
break; break;
case 'IBP': case 'IBP':
this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'IBP'); this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'IBP');
this.$emit('getUserRole'); this.$emit('getUserRole');
break; break;
case 'BigScreen': case 'BIGSCREEN':
this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'BigScreen'); this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'BIGSCREEN');
this.$emit('getUserRole'); this.$emit('getUserRole');
break; break;
default: default:
this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'Audience'); this.$store.dispatch('training/setPrdType', ''); this.$store.dispatch('training/setRoles', 'AUDIENCE');
this.$emit('getUserRole'); this.$emit('getUserRole');
break; break;
} }
@ -275,14 +271,16 @@ export default {
this.$refs.chat.getChathistory(); this.$refs.chat.getChathistory();
} }
}, },
initPlannedDriving(isDisable) {
this.isDisable = isDisable;
},
selectBeginTime() { selectBeginTime() {
this.$refs.setTime.doShow(); this.$refs.setTime.doShow();
}, },
start(model) { start(model) {
this.isDisable = true; this.isDisable = true;
const data = { const data = {
time: model.initTime, time: model.initTime
loadNumber:this.trainList.length
}; };
ranAsPlan(data, this.group).then(res => { ranAsPlan(data, this.group).then(res => {
this.$store.dispatch('training/simulationStart').then(() => { this.$store.dispatch('training/simulationStart').then(() => {
@ -316,7 +314,7 @@ export default {
end() { end() {
this.isDisable = false; this.isDisable = false;
EventBus.$emit('trainView'); EventBus.$emit('trainView');
runDiagramOver(this.group).catch(() => { clearSimulation(this.group).catch(() => {
this.$store.dispatch('training/over').then(() => { this.$store.dispatch('training/over').then(() => {
this.isDisable = true; this.isDisable = true;
this.$messageBox(this.$t('error.endSimulationFailed')); this.$messageBox(this.$t('error.endSimulationFailed'));
@ -326,7 +324,7 @@ export default {
back() { back() {
this.$store.dispatch('training/over').then(() => { this.$store.dispatch('training/over').then(() => {
putJointTrainingSimulationUserNew(this.group).then(() => { putJointTrainingSimulationUserNew(this.group).then(() => {
this.$router.replace({ path: `/trainroom`, query: { lineCode: this.lineCode, group: this.group } }); this.$router.replace({ path: `/trainroom`, query: { lineCode: this.lineCode, group: this.group, drawWay: true } });
exitFullscreen(); exitFullscreen();
}); });
}); });

View File

@ -8,7 +8,7 @@
<script> <script>
import PopMenu from '@/components/PopMenu'; import PopMenu from '@/components/PopMenu';
import ChooseRole from './chooseRole'; import ChooseRole from './chooseRole';
import { putUserRolesNew} from "@/api/jointTraining"; import { putUserRolesNew} from '@/api/jointTraining';
import { DeviceMenu } from '@/scripts/ConstDic'; import { DeviceMenu } from '@/scripts/ConstDic';
export default { export default {
@ -105,7 +105,7 @@ export default {
const params = [{ const params = [{
id: obj.id, id: obj.id,
nickName: obj.name, nickName: obj.name,
userRole: 'Driver', userRole: 'DRIVER',
stationCode: '', stationCode: '',
trainCode: this.selected._code trainCode: this.selected._code
}]; }];
@ -119,7 +119,7 @@ export default {
const params = [{ const params = [{
id: data.id, id: data.id,
nickName: data.name, nickName: data.name,
userRole: 'Driver', userRole: 'DRIVER',
stationCode: '', stationCode: '',
trainCode: '' trainCode: ''
}]; }];

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="schema" :style="{top: offset+'px'}"> <div class="schema" :style="{top: offset+'px'}">
<el-select <el-select
v-if="userRole == 'Instructor' || userRole == 'Admin'" v-if="userRole == 'INSTRUCTOR' || userRole == 'ADMIN'"
v-model="swch" v-model="swch"
size="small" size="small"
:placeholder="this.$t('rules.productTypeInput')" :placeholder="this.$t('rules.productTypeInput')"
@ -14,17 +14,17 @@
<template> <template>
<el-button v-if="runing" size="small" :disabled="viewDisabled" @click="viewRunPlan">{{ $t('joinTraining.runGraphPreview') }}</el-button> <el-button v-if="runing" size="small" :disabled="viewDisabled" @click="viewRunPlan">{{ $t('joinTraining.runGraphPreview') }}</el-button>
</template> </template>
<template v-if="userRole == 'Admin'"> <template v-if="userRole == 'ADMIN'">
<el-button v-if="!runing" size="small" type="warning" :disabled="viewDisabled" @click="loadRunPlan"> <el-button v-if="!runing" size="small" type="warning" :disabled="viewDisabled" @click="loadRunPlan">
{{ $t('joinTraining.runGraphLoading') }}</el-button> {{ $t('joinTraining.runGraphLoading') }}</el-button>
</template> </template>
<template v-if="userRole == 'Instructor' || userRole == 'Admin'"> <template v-if="userRole == 'INSTRUCTOR' || userRole == 'ADMIN'">
<el-button v-if="mode==OperateMode.FAULT" size="small" type="danger" @click="setFault">{{ $t('joinTraining.faultSetting') }}</el-button> <el-button v-if="mode==OperateMode.FAULT" size="small" type="danger" @click="setFault">{{ $t('joinTraining.faultSetting') }}</el-button>
</template> </template>
</el-button-group> </el-button-group>
<el-radio-group <el-radio-group
v-if="userRole == 'Instructor' || userRole == 'Admin'" v-if="userRole == 'INSTRUCTOR' || userRole == 'ADMIN'"
v-model="mode" v-model="mode"
size="small" size="small"
@change="changeOperateMode(mode)" @change="changeOperateMode(mode)"
@ -39,7 +39,7 @@ import { mapGetters } from 'vuex';
import { OperateMode } from '@/scripts/ConstDic'; import { OperateMode } from '@/scripts/ConstDic';
// import { getStationList } from '@/api/runplan'; // import { getStationList } from '@/api/runplan';
import { getByGroupStationList } from '@/api/jmap/map'; import { getByGroupStationList } from '@/api/jmap/map';
import { getEveryDayRunPlanData } from '@/api/simulation'; import { getEveryDayRunPlanNew } from '@/api/simulation';
export default { export default {
name: 'MenuDemonSchema', name: 'MenuDemonSchema',
@ -109,8 +109,9 @@ export default {
// getStationList(opt.mapId).then(response => { // getStationList(opt.mapId).then(response => {
const stations = response.data; const stations = response.data;
this.$store.dispatch('runPlan/setStations', stations).then(() => { this.$store.dispatch('runPlan/setStations', stations).then(() => {
getEveryDayRunPlanData(this.group).then(resp => { getEveryDayRunPlanNew(this.group).then(resp => {
this.$store.dispatch('runPlan/setPlanData', resp.data); this.$store.dispatch('runPlan/setPlanData', resp.data);
this.$store.dispatch('runPlan/setInitialPlanData', resp.data);
this.viewDisabled = false; this.viewDisabled = false;
}).catch(error => { }).catch(error => {
this.$store.dispatch('runPlan/setPlanData', []); this.$store.dispatch('runPlan/setPlanData', []);
@ -130,6 +131,9 @@ export default {
switchMode(swch) { switchMode(swch) {
this.$store.dispatch('training/setPrdType', swch); this.$store.dispatch('training/setPrdType', swch);
}, },
initPlannedDriving(isDisable) {
this.isDisable = isDisable;
},
changeOperateMode(handle) { changeOperateMode(handle) {
this.$store.dispatch('training/changeOperateMode', { mode: handle }); this.$store.dispatch('training/changeOperateMode', { mode: handle });
}, },

View File

@ -24,11 +24,12 @@
@change="handleUpdUser(node, index)" @change="handleUpdUser(node, index)"
/> />
<el-select <el-select
v-if="roleType == 'Attendant'" v-if="roleType.toUpperCase() == 'ATTENDANT' || roleType.toUpperCase() === 'STATION_SUPERVISOR'"
v-model="node.deviceCode" v-model="node.deviceCode"
:placeholder="$t('global.choose')" :placeholder="$t('global.choose')"
size="mini" size="mini"
:disabled="isDisable" :disabled="isDisable"
s
@change="handleUpdUser(node, index)" @change="handleUpdUser(node, index)"
> >
<el-option <el-option
@ -80,7 +81,7 @@ export default {
}, },
computed: { computed: {
hasDevice() { hasDevice() {
return ['Attendant', 'IBP'].includes(this.roleType); return ['ATTENDANT', 'IBP', 'STATION_SUPERVISOR'].includes(this.roleType.toUpperCase());
}, },
isDisable() { isDisable() {
return this.userId != this.room.creatorId; return this.userId != this.room.creatorId;

View File

@ -199,25 +199,25 @@ export default {
}); });
}, },
dispatcherList() { dispatcherList() {
return this.members.filter(elem => { return [elem.userRole].includes('Dispatcher'); }); return this.members.filter(elem => { return [elem.userRole.toUpperCase()].includes('DISPATCHER'); });
}, },
attendantList() { attendantList() {
return this.members.filter(elem => { return [elem.userRole].includes('Attendant'); }); return this.members.filter(elem => { return [elem.userRole.toUpperCase()].includes('ATTENDANT') || [elem.userRole.toUpperCase()].includes('STATION_SUPERVISOR'); });
}, },
instructorList() { instructorList() {
return this.members.filter(elem => { return [elem.userRole].includes('Instructor'); }); return this.members.filter(elem => { return [elem.userRole.toUpperCase()].includes('INSTRUCTOR'); });
}, },
repairList() { repairList() {
return this.members.filter(elem => { return [elem.userRole].includes('Repair'); }); return this.members.filter(elem => { return [elem.userRole.toUpperCase()].includes('REPAIR'); });
}, },
driverList() { driverList() {
return this.members.filter(elem => { return [elem.userRole].includes('Driver'); }); return this.members.filter(elem => { return [elem.userRole.toUpperCase()].includes('DRIVER'); });
}, },
ibpList() { ibpList() {
return this.members.filter(elem => { return [elem.userRole].includes('IBP'); }); return this.members.filter(elem => { return [elem.userRole.toUpperCase()].includes('IBP'); });
}, },
audienceList() { audienceList() {
return this.members.filter(elem => { return [elem.userRole].includes('Audience'); }); return this.members.filter(elem => { return [elem.userRole.toUpperCase()].includes('AUDIENCE'); });
} }
}, },
async mounted() { async mounted() {
@ -278,6 +278,7 @@ export default {
deviceCode: '' deviceCode: ''
}]; }];
if (this.drawWay) { if (this.drawWay) {
params[0].userRole = 'AUDIENCE';
await putUserRolesNew(params, this.group); await putUserRolesNew(params, this.group);
} else { } else {
await putUserRoles(params, this.group); await putUserRoles(params, this.group);
@ -301,6 +302,10 @@ export default {
ibpPart: user.ibpPart ibpPart: user.ibpPart
}]; }];
if (this.drawWay) { if (this.drawWay) {
params[0].userRole = roleType.toUpperCase();
if (roleType === 'Attendant') {
params[0].userRole = 'STATION_SUPERVISOR';
}
await putUserRolesNew(params, this.group); await putUserRolesNew(params, this.group);
} else { } else {
await putUserRoles(params, this.group); await putUserRoles(params, this.group);
@ -316,12 +321,18 @@ export default {
}); });
}, },
async handleDispatchUser({roleType, userList}) { async handleDispatchUser({roleType, userList}) {
const list = userList.map(elem => { return { id: elem.id, nickName: elem.nickName, userRole: roleType }; }); if (userList.length) {
if (list.length) {
try { try {
let list = [];
if (this.drawWay) { if (this.drawWay) {
if (roleType === 'Attendant') {
list = userList.map(elem => { return { id: elem.id, nickName: elem.nickName, userRole: 'STATION_SUPERVISOR' }; });
} else {
list = userList.map(elem => { return { id: elem.id, nickName: elem.nickName, userRole: roleType.toUpperCase() }; });
}
await putUserRolesNew(list, this.group); await putUserRolesNew(list, this.group);
} else { } else {
list = userList.map(elem => { return { id: elem.id, nickName: elem.nickName, userRole: roleType }; });
await putUserRoles(list, this.group); await putUserRoles(list, this.group);
} }
list.forEach(item => { list.forEach(item => {

View File

@ -99,7 +99,7 @@ export default {
members: { members: {
deep: true, deep: true,
handler() { handler() {
this.room.permissionRest = this.members.filter(elem => ['Audience'].includes(elem.userRole)).length; this.room.permissionRest = this.members.filter(elem => ['AUDIENCE'].includes(elem.userRole.toUpperCase())).length;
} }
}, },
// //
@ -265,7 +265,7 @@ export default {
if (!old.inSimulation && user.inSimulation) { if (!old.inSimulation && user.inSimulation) {
this.$store.dispatch('socket/setChatContent', {...message, roomTip: `${user.nickName}进入仿真`}); this.$store.dispatch('socket/setChatContent', {...message, roomTip: `${user.nickName}进入仿真`});
if (this.userId == user.id) { if (this.userId == user.id && user.userRole.toUpperCase() !== 'ADMIN') {
await this.jumpInSimulation(); await this.jumpInSimulation();
} }
} }
@ -284,6 +284,7 @@ export default {
const rest = await getPublishMapInfo(room.mapId); const rest = await getPublishMapInfo(room.mapId);
const query = { lineCode: rest.data.lineCode, mapId: room.mapId, group: room.group, roomId: room.id }; const query = { lineCode: rest.data.lineCode, mapId: room.mapId, group: room.group, roomId: room.id };
if (this.$route.query.drawWay) { if (this.$route.query.drawWay) {
query.drawWay = this.$route.query.drawWay;
this.$router.replace({ path: `/jointTrainingNew`, query: query}); this.$router.replace({ path: `/jointTrainingNew`, query: query});
} else { } else {
this.$router.replace({ path: `/jointTraining`, query: query }); this.$router.replace({ path: `/jointTraining`, query: query });