Merge branch 'dev' of https://git.qcloud.com/joylink/jl-nclient into dev
This commit is contained in:
commit
8c69b7afd0
Binary file not shown.
Before Width: | Height: | Size: 13 MiB After Width: | Height: | Size: 13 MiB |
File diff suppressed because one or more lines are too long
@ -13,6 +13,7 @@ export default class CircularLamp extends Group {
|
||||
this.offsetY = 0;
|
||||
this.dragging = false;
|
||||
this.create();
|
||||
this.setStatus(this.model);
|
||||
}
|
||||
|
||||
create() {
|
||||
@ -64,4 +65,11 @@ export default class CircularLamp extends Group {
|
||||
this.dragging = false;
|
||||
}
|
||||
}
|
||||
setStatus(model) {
|
||||
if (model.switch === 'on') {
|
||||
this.lamp.setStyle('fill', '#D8FCF2');
|
||||
} else {
|
||||
this.lamp.setStyle('fill', '#332C22');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,12 +13,13 @@ export default class key extends Group {
|
||||
this.event = device.event;
|
||||
this.offsetX = 0;
|
||||
this.offsetY = 0;
|
||||
this.dragging = false;
|
||||
this.create();
|
||||
}
|
||||
|
||||
create() {
|
||||
const model = this.model;
|
||||
this.imageBg = new Image({
|
||||
this.keyImage = new Image({
|
||||
zlevel: this.zlevel,
|
||||
z: model.z,
|
||||
draggable: false,
|
||||
@ -30,15 +31,15 @@ export default class key extends Group {
|
||||
height: 932
|
||||
}
|
||||
});
|
||||
this.add(this.imageBg);
|
||||
this.add(this.keyImage);
|
||||
this.transformScale();
|
||||
}
|
||||
|
||||
/** 缩放按钮 */
|
||||
transformScale() {
|
||||
this.imageBg.origin = [this.model.point.x, this.model.point.y];
|
||||
this.imageBg.scale =[this.model.width/314, this.model.width/314];
|
||||
this.imageBg.dirty();
|
||||
this.keyImage.origin = [this.model.point.x, this.model.point.y];
|
||||
this.keyImage.scale =[this.model.width/314, this.model.width/314];
|
||||
this.keyImage.dirty();
|
||||
}
|
||||
|
||||
getRotateColor() {
|
||||
@ -55,18 +56,33 @@ export default class key extends Group {
|
||||
return keyPic;
|
||||
}
|
||||
}
|
||||
|
||||
onclick() {
|
||||
if (!this.keyImage.draggable) {
|
||||
switch (this.model.status) {
|
||||
case 'off': {
|
||||
this.keyImage.setStyle({image: keyPicOn});
|
||||
this.model.status='on';
|
||||
break;
|
||||
}
|
||||
case 'on': {
|
||||
this.keyImage.setStyle({image: keyPic});
|
||||
this.model.status='off';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
setStatus(model) {
|
||||
switch (model.status) {
|
||||
case 'on': {
|
||||
// 开放
|
||||
this.imageBg.setStyle({image: keyPicOn});
|
||||
this.keyImage.setStyle({image: keyPicOn});
|
||||
this.model.status='on';
|
||||
break;
|
||||
}
|
||||
case 'off': {
|
||||
// 关闭
|
||||
this.imageBg.setStyle({image: keyPic});
|
||||
this.keyImage.setStyle({image: keyPic});
|
||||
this.model.status='off';
|
||||
break;
|
||||
}
|
||||
@ -74,7 +90,7 @@ export default class key extends Group {
|
||||
}
|
||||
|
||||
setDraggable() {
|
||||
this.imageBg.attr('draggable', true);
|
||||
this.keyImage.attr('draggable', true);
|
||||
this.createMouseEvent();
|
||||
}
|
||||
createMouseEvent() {
|
||||
@ -91,6 +107,7 @@ export default class key extends Group {
|
||||
}
|
||||
this.offsetX = e.offsetX;
|
||||
this.offsetY = e.offsetY;
|
||||
this.dragging = true;
|
||||
}
|
||||
|
||||
mousemove(e) {
|
||||
@ -98,7 +115,10 @@ export default class key extends Group {
|
||||
|
||||
mouseup(e) {
|
||||
this.event.enable();
|
||||
if (this.dragging) {
|
||||
this.model.point.x = this.model.point.x + (e.offsetX - this.offsetX);
|
||||
this.model.point.y = this.model.point.y + (e.offsetY - this.offsetY);
|
||||
this.dragging = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,6 +32,7 @@ class TransformHandle {
|
||||
view.transform = this.transform;
|
||||
view.decomposeTransform();
|
||||
this.revisibleView(view);
|
||||
view.transform = '';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@ class Jlmap {
|
||||
this.skinCode = '';
|
||||
|
||||
// 皮肤风格
|
||||
this.style = this.loadStyle();
|
||||
this.style = {};
|
||||
|
||||
// 设备数据
|
||||
this.mapDevice = {};
|
||||
@ -80,11 +80,12 @@ class Jlmap {
|
||||
this.$options.scaleRate = map.skinVO.scaling || 1;
|
||||
this.$options.offsetX = map.skinVO.origin ? map.skinVO.origin.x : 0;
|
||||
this.$options.offsetY = map.skinVO.origin ? map.skinVO.origin.y : 0;
|
||||
// 更新视图大小
|
||||
this.$painter.updateTransform({ scaleRate: this.$options.scaleRate, offsetX: this.$options.offsetX, offsetY: this.$options.offsetY });
|
||||
}
|
||||
|
||||
// 解析地图数据
|
||||
// 更新视图大小
|
||||
this.$painter.updateTransform({ scaleRate: this.$options.scaleRate, offsetX: this.$options.offsetX, offsetY: this.$options.offsetY });
|
||||
|
||||
// 解析后的数据
|
||||
this.mapDevice = mapDevice;
|
||||
|
||||
// 加载对应皮肤
|
||||
|
@ -33,7 +33,6 @@ class TransformHandle {
|
||||
view.decomposeTransform();
|
||||
this.revisibleView(view);
|
||||
}
|
||||
// return view;
|
||||
}
|
||||
|
||||
// 处理所有视图缩放/平移
|
||||
|
@ -169,7 +169,7 @@
|
||||
},
|
||||
methods: {
|
||||
createDataModel(model) {
|
||||
const newModel = modelFactory(model.type, model);
|
||||
const newModel = modelFactory(model._type, model);
|
||||
this.$store.dispatch('ibp/updateIbpDevices', newModel);
|
||||
},
|
||||
deleteDataModel(model) {
|
||||
|
@ -14,6 +14,14 @@ import { mapGetters } from 'vuex';
|
||||
|
||||
export default {
|
||||
name: 'Ibp',
|
||||
props: {
|
||||
size: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
width: this.$store.state.config.width,
|
||||
@ -31,19 +39,10 @@ export default {
|
||||
}
|
||||
},
|
||||
showBackButton: true,
|
||||
initZrender: false,
|
||||
initTime: '',
|
||||
started: false
|
||||
};
|
||||
},
|
||||
props: {
|
||||
size: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'canvasWidth',
|
||||
@ -55,14 +54,10 @@ export default {
|
||||
},
|
||||
watch: {
|
||||
'$store.state.config.canvasSizeCount': function (val) {
|
||||
if (this.initZrender) {
|
||||
this.resetSize();
|
||||
}
|
||||
this.reSize();
|
||||
},
|
||||
'$store.state.app.windowSizeCount': function() {
|
||||
const width = this.size ? this.size.width : this.$store.state.app.width;
|
||||
const height = this.size ? this.size.height :this.$store.state.app.height;
|
||||
this.$store.dispatch('config/resize', { width: width, height: height});
|
||||
this.setWindowSize();
|
||||
},
|
||||
'$store.state.training.initTime': function (initTime) {
|
||||
this.initTime = initTime;
|
||||
@ -86,7 +81,7 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
show: function () {
|
||||
show () {
|
||||
document.getElementById(this.ibpId).oncontextmenu = function (e) {
|
||||
return false;
|
||||
};
|
||||
@ -116,30 +111,10 @@ export default {
|
||||
window.document.oncontextmenu = function () {
|
||||
return false;
|
||||
};
|
||||
this.initZrender = true;
|
||||
},
|
||||
setMap(data) {
|
||||
this.$ibp.setMap(ibpData, data);
|
||||
},
|
||||
resetSize() {
|
||||
this.$nextTick(() => {
|
||||
this.width = this.$store.state.config.width;
|
||||
this.height = this.$store.state.config.height;
|
||||
|
||||
this.$ibp && this.$ibp.resize({ width: this.width, height: this.height });
|
||||
});
|
||||
},
|
||||
setWindowSize() {
|
||||
this.$nextTick(() => {
|
||||
const width = this.size ? this.size.width : this.$store.state.app.width;
|
||||
const height = this.size ? this.size.height :this.$store.state.app.height;
|
||||
this.$store.dispatch('config/resize', { width: width, height: height });
|
||||
});
|
||||
},
|
||||
back() {
|
||||
this.$emit('hideIbp');
|
||||
},
|
||||
|
||||
// 点击选择事件
|
||||
onSelected(em) {
|
||||
this.$emit('onSelect', em);
|
||||
@ -160,6 +135,24 @@ export default {
|
||||
// 设置电子时钟开始或停止
|
||||
setClockStart(started) {
|
||||
this.$ibp.setClockStart(started);
|
||||
},
|
||||
reSize() {
|
||||
this.$nextTick(() => {
|
||||
this.width = this.$store.state.config.width;
|
||||
this.height = this.$store.state.config.height;
|
||||
|
||||
this.$ibp && this.$ibp.resize({ width: this.width, height: this.height });
|
||||
});
|
||||
},
|
||||
setWindowSize() {
|
||||
this.$nextTick(() => {
|
||||
const width = this.size ? this.size.width : this.$store.state.app.width;
|
||||
const height = this.size ? this.size.height :this.$store.state.app.height;
|
||||
this.$store.dispatch('config/resize', { width: width, height: height });
|
||||
});
|
||||
},
|
||||
back() {
|
||||
this.$emit('hideIbp');
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -171,9 +164,4 @@ export default {
|
||||
right: 20px;
|
||||
bottom: 15px;
|
||||
}
|
||||
.ibp-canvas{
|
||||
/*background-image: url('../../assets/ibp_images/ibp_bg.png');*/
|
||||
/*background-repeat:repeat;*/
|
||||
/*background-size: 4096px 2048px;*/
|
||||
}
|
||||
</style>
|
||||
|
@ -285,8 +285,6 @@ export default {
|
||||
this.$store.dispatch('training/end', TrainingMode.NORMAL);
|
||||
this.$store.dispatch('training/changeOperateMode', { mode: OperateMode.NORMAL }); // 默认为正常模式
|
||||
|
||||
console.log(this.skinCode);
|
||||
|
||||
if (this.skinCode) {
|
||||
// 01 现地 02 行调 '' 观众
|
||||
const resp = await this.getUserRole();
|
||||
|
@ -2,7 +2,7 @@
|
||||
<div>
|
||||
<div class="display-draft">
|
||||
<el-button-group>
|
||||
<el-button v-if="isIBP" @click="jumpIbp">IBP盘</el-button>
|
||||
<el-button v-if="isIBP" type="warning" @click="jumpIbp">IBP盘</el-button>
|
||||
<el-button v-if="isDriver" type="jumpjlmap3d" @click="jumpjlmap3d">司机视角</el-button>
|
||||
<template v-if="isAdmin">
|
||||
<el-button type="success" :disabled="isDisable" @click="selectBeginTime">按计划行车</el-button>
|
||||
|
@ -26,7 +26,7 @@
|
||||
<i
|
||||
v-if="userId == roomInfo.creatorId"
|
||||
class="el-icon-close delPerson"
|
||||
@click="delDispatch(nor, index)"
|
||||
@click="handleDelUser(dispatchList, nor, index)"
|
||||
/>
|
||||
</li>
|
||||
</ul>
|
||||
@ -42,7 +42,7 @@
|
||||
<i
|
||||
v-if="userId == roomInfo.creatorId"
|
||||
class="el-icon-close delPerson"
|
||||
@click="delEquipment(nor, index)"
|
||||
@click="handleDelEquipment(nor, index)"
|
||||
/>
|
||||
<div style="float: right; margin-right: 15px;">
|
||||
<el-select
|
||||
@ -82,7 +82,7 @@
|
||||
<i
|
||||
v-if="userId == roomInfo.creatorId"
|
||||
class="el-icon-close delPerson"
|
||||
@click="delAdmin(nor, index)"
|
||||
@click="handleDelUser(adminList, nor, index)"
|
||||
/>
|
||||
</li>
|
||||
</ul>
|
||||
@ -98,7 +98,7 @@
|
||||
<i
|
||||
v-if="userId == roomInfo.creatorId"
|
||||
class="el-icon-close delPerson"
|
||||
@click="delSignal(nor, index)"
|
||||
@click="handleDelUser(signalList, nor, index)"
|
||||
/>
|
||||
</li>
|
||||
</ul>
|
||||
@ -116,7 +116,7 @@
|
||||
<i
|
||||
v-if="userId == roomInfo.creatorId"
|
||||
class="el-icon-close delPerson"
|
||||
@click="delDriver(nor, index)"
|
||||
@click="handleDelUser(driverList, nor, index)"
|
||||
/>
|
||||
</li>
|
||||
</ul>
|
||||
@ -132,7 +132,7 @@
|
||||
<i
|
||||
v-if="userId == roomInfo.creatorId"
|
||||
class="el-icon-close delPerson"
|
||||
@click="delIBP(nor, index)"
|
||||
@click="handleDelUser(ibpList, nor, index)"
|
||||
/>
|
||||
</li>
|
||||
</ul>
|
||||
@ -223,14 +223,15 @@
|
||||
|
||||
<script>
|
||||
import { getJoinTrainCode, deljointTrainRoom, putUserRoles, postRoomDetail, getJointTrainRoomUserList, putJointTrainingExit, startJointTraining, putJointTrainingSimulation, putJointTrainingSimulationEntrance } from '@/api/chat';
|
||||
import trainChat from './trainChat';
|
||||
import AddPerson from './addPerson';
|
||||
import QrCode from '@/components/QrCode';
|
||||
import { getStationList } from '@/api/runplan';
|
||||
import TreeOperateMenu from './operateMenu';
|
||||
import { launchFullscreen } from '@/utils/screen';
|
||||
import { DeviceMenu } from '@/scripts/ConstDic';
|
||||
import { checkLoginLine } from '@/api/login';
|
||||
import { getPublishMapInfo } from '@/api/jmap/map';
|
||||
import trainChat from './trainChat';
|
||||
import AddPerson from './addPerson';
|
||||
import QrCode from '@/components/QrCode';
|
||||
import TreeOperateMenu from './operateMenu';
|
||||
|
||||
export default {
|
||||
name: 'TrainRoom',
|
||||
@ -359,6 +360,7 @@ export default {
|
||||
const rest = await getPublishMapInfo(param.mapId);
|
||||
const query = { skinCode: rest.data.skinCode, mapId: param.mapId, group: param.group };
|
||||
this.$router.push({ path: `/jointTraining`, query: query });
|
||||
launchFullscreen();
|
||||
}
|
||||
this.$store.dispatch('socket/setJointRoomInfo'); // 清空房间信息
|
||||
},
|
||||
@ -389,6 +391,7 @@ export default {
|
||||
const rest = await getPublishMapInfo(this.mapId);
|
||||
const query = { skinCode: rest.data.skinCode, mapId: this.mapId, group: this.$route.query.group };
|
||||
this.$router.push({ path: `/jointTraining`, query: query });
|
||||
launchFullscreen();
|
||||
},
|
||||
// 判断观众席在线/不在线
|
||||
addPeopleList(obj) {
|
||||
@ -658,6 +661,18 @@ export default {
|
||||
});
|
||||
});
|
||||
},
|
||||
// 打开弹窗
|
||||
addingRoles(name, title) {
|
||||
this.listName = name;
|
||||
const treeList = [];
|
||||
this.treeData.forEach(item => {
|
||||
if (!item.select) {
|
||||
delete item.select;
|
||||
treeList.push(item);
|
||||
}
|
||||
});
|
||||
this.$refs.addPerson.doShow(title, treeList);
|
||||
},
|
||||
// Admin 管理员 Instructor 教员 Dispatcher 行调 Attendant 车站 Audience 观众 Driver 司机 Repair 通号
|
||||
async handleDispatch(list) {
|
||||
const arr = [];
|
||||
@ -711,18 +726,6 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
// 打开弹窗
|
||||
addingRoles(name, title) {
|
||||
this.listName = name;
|
||||
const treeList = [];
|
||||
this.treeData.forEach(item => {
|
||||
if (!item.select) {
|
||||
delete item.select;
|
||||
treeList.push(item);
|
||||
}
|
||||
});
|
||||
this.$refs.addPerson.doShow(title, treeList);
|
||||
},
|
||||
handleUserList(list) {
|
||||
this.treeData.forEach(item => {
|
||||
list.forEach(nor => {
|
||||
@ -732,12 +735,11 @@ export default {
|
||||
});
|
||||
});
|
||||
},
|
||||
// 移出参与人员列表
|
||||
delDispatch(item, index) {
|
||||
this.dispatchList.splice(index, 1);
|
||||
handleDelUser(list, item, index) {
|
||||
list.splice(index, 1);
|
||||
this.handleProperty(item);
|
||||
},
|
||||
delEquipment(item, index) {
|
||||
handleDelEquipment(item, index) {
|
||||
this.equipmentList.splice(index, 1);
|
||||
this.stationList.forEach(item => {
|
||||
item.disabled = false;
|
||||
@ -749,22 +751,6 @@ export default {
|
||||
});
|
||||
this.handleProperty(item);
|
||||
},
|
||||
delAdmin(item, index) {
|
||||
this.adminList.splice(index, 1);
|
||||
this.handleProperty(item);
|
||||
},
|
||||
delDriver(item, index) {
|
||||
this.driverList.splice(index, 1);
|
||||
this.handleProperty(item);
|
||||
},
|
||||
delSignal(item, index) {
|
||||
this.signalList.splice(index, 1);
|
||||
this.handleProperty(item);
|
||||
},
|
||||
delIBP(item, index) {
|
||||
this.ibpList.splice(index, 1);
|
||||
this.handleProperty(item);
|
||||
},
|
||||
handleProperty(item) {
|
||||
const treeIndex = this.treeData.findIndex(nor => nor.id == item.id);
|
||||
if (treeIndex > -1) {
|
||||
|
Loading…
Reference in New Issue
Block a user