Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/jl-client into test
This commit is contained in:
commit
abf36ad841
@ -37,6 +37,9 @@ class Jlmap {
|
|||||||
// 设备数据
|
// 设备数据
|
||||||
this.mapDevice = {};
|
this.mapDevice = {};
|
||||||
|
|
||||||
|
// 大屏配置
|
||||||
|
this.splitList = [];
|
||||||
|
|
||||||
// 默认状态
|
// 默认状态
|
||||||
this.defaultStateDict = this.loadDefaultState();
|
this.defaultStateDict = this.loadDefaultState();
|
||||||
|
|
||||||
@ -143,6 +146,7 @@ class Jlmap {
|
|||||||
setOptions(opts) {
|
setOptions(opts) {
|
||||||
const options = this.pullBack(opts);
|
const options = this.pullBack(opts);
|
||||||
if (this.screenFlag) {
|
if (this.screenFlag) {
|
||||||
|
this.$options.update(options);
|
||||||
this.$painter.updateScreen(options);
|
this.$painter.updateScreen(options);
|
||||||
} else {
|
} else {
|
||||||
this.$options.update(options);
|
this.$options.update(options);
|
||||||
@ -216,8 +220,6 @@ class Jlmap {
|
|||||||
setUpdateScreen(opts) {
|
setUpdateScreen(opts) {
|
||||||
this.setRecover({ scaleRate: 1, offsetX: 0, offsetY: 0 });
|
this.setRecover({ scaleRate: 1, offsetX: 0, offsetY: 0 });
|
||||||
this.screenFlag = true;
|
this.screenFlag = true;
|
||||||
const screenList = [];
|
|
||||||
const rectList = [];
|
|
||||||
let rect = '';
|
let rect = '';
|
||||||
for (const i in this.mapDevice) {
|
for (const i in this.mapDevice) {
|
||||||
const element = this.mapDevice[i];
|
const element = this.mapDevice[i];
|
||||||
@ -233,31 +235,56 @@ class Jlmap {
|
|||||||
opts.offsetList = [];
|
opts.offsetList = [];
|
||||||
}
|
}
|
||||||
const screenSplit = opts.list.length ? opts.list : Vue.prototype.$theme.loadPropConvert(this.lineCode).screenSplit;
|
const screenSplit = opts.list.length ? opts.list : Vue.prototype.$theme.loadPropConvert(this.lineCode).screenSplit;
|
||||||
const screenDifference = Vue.prototype.$theme.loadPropConvert(this.lineCode).screenDifference || 160;
|
this.splitList = JSON.parse(JSON.stringify(screenSplit));
|
||||||
const splitList = JSON.parse(JSON.stringify(screenSplit));
|
|
||||||
const num = screenSplit.length + 1;
|
const num = screenSplit.length + 1;
|
||||||
const offsetY = (opts.height - 100) / num; // 高度差
|
|
||||||
const maxWidth = rect.width;
|
const maxWidth = rect.width;
|
||||||
splitList.push(maxWidth);
|
this.splitList.push(maxWidth);
|
||||||
const scaleX = Math.floor((((opts.width - 200) * num) / rect.width) * 100) / 100;
|
const scaleX = Math.floor((((opts.width - 200) * num) / rect.width) * 100) / 100;
|
||||||
const scaleY = Math.floor(((opts.height - 100) / (rect.height * num)) * 100) / 100;
|
const scaleY = Math.floor(((opts.height - 100) / (rect.height * num)) * 100) / 100;
|
||||||
const scale = Math.min(scaleX, scaleY);
|
this.screenScale = Math.min(scaleX, scaleY);
|
||||||
|
|
||||||
for (let i = 0; i < splitList.length; i++) {
|
this.optsWidth = opts.width;
|
||||||
|
this.optsHeight = opts.height;
|
||||||
|
this.optsOffsetList = opts.offsetList;
|
||||||
|
|
||||||
|
const scaleBili = this.screenScale;
|
||||||
|
|
||||||
|
this.$options.scaleRate = this.screenScale || 1;
|
||||||
|
this.$options.scaleIndex = 0;
|
||||||
|
this.$options.offsetX = 0;
|
||||||
|
this.$options.offsetY = 0;
|
||||||
|
// 更新视图大小
|
||||||
|
// this.$painter.updateTransform({ scaleRate: this.$options.scaleRate, offsetX: this.$options.offsetX, offsetY: this.$options.offsetY });
|
||||||
|
|
||||||
|
const {screenList, rectList} = this.calculateScreenPosition(scaleBili);
|
||||||
|
this.$painter.updateTransform1(screenList, rectList);
|
||||||
|
}
|
||||||
|
|
||||||
|
calculateScreenPosition(scaleBili) {
|
||||||
|
const screenList = [];
|
||||||
|
const rectList = [];
|
||||||
|
const screenDifference = Vue.prototype.$theme.loadPropConvert(this.lineCode).screenDifference || 160;
|
||||||
|
const bili = scaleBili / this.screenScale;
|
||||||
|
const offsetY = (this.optsHeight - 100) / this.splitList.length; // 高度差
|
||||||
|
|
||||||
|
for (let i = 0; i < this.splitList.length; i++) {
|
||||||
let offsetX = '';
|
let offsetX = '';
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
offsetX = -(opts.width - splitList[0] * scale) / 2;
|
offsetX = -(this.optsWidth - this.splitList[0] * scaleBili) / 2;
|
||||||
} else {
|
} else {
|
||||||
const dx = (opts.width - (splitList[i] - splitList[i - 1]) * scale) / 2; // 居中计算偏移值
|
const dx = (this.optsWidth - (this.splitList[i] - this.splitList[i - 1]) * scaleBili) / 2; // 居中计算偏移值
|
||||||
offsetX = splitList[i - 1] * scale - dx;
|
offsetX = this.splitList[i - 1] * scaleBili - dx;
|
||||||
}
|
}
|
||||||
const offset = opts.offsetList[i] || 0;
|
const offset = this.optsOffsetList[i] || 0;
|
||||||
const param = { scaleRateX: scale, scaleRateY: scale, offsetX: offsetX, offsetY: -screenDifference - (offsetY * i) - offset };
|
const param = { scaleRateX: scaleBili, scaleRateY: scaleBili, offsetX: offsetX, offsetY: (-screenDifference - (offsetY * i) - offset) * bili };
|
||||||
screenList.push(param);
|
screenList.push(param);
|
||||||
const rect = {x: 0, y: 0, width: Number(splitList[i]) + 5, height: opts.height};
|
const rect = {x: 0, y: 0, width: Number(this.splitList[i]) + 5, height: this.optsHeight};
|
||||||
rectList.push(rect);
|
rectList.push(rect);
|
||||||
}
|
}
|
||||||
this.$painter.updateTransform1(screenList, rectList);
|
return {
|
||||||
|
screenList,
|
||||||
|
rectList
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
setLevelVisible(list) {
|
setLevelVisible(list) {
|
||||||
|
@ -225,6 +225,11 @@ class Painter {
|
|||||||
this.screenFlag = true;
|
this.screenFlag = true;
|
||||||
this.$transformHandleScreen.updateTransform(list, opts);
|
this.$transformHandleScreen.updateTransform(list, opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateScreenZoom(bili) {
|
||||||
|
return this.$jmap.calculateScreenPosition(bili);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新zrender尺寸
|
* 更新zrender尺寸
|
||||||
* @param {*} opt
|
* @param {*} opt
|
||||||
|
@ -1,9 +1,24 @@
|
|||||||
|
|
||||||
import {createTransform1, createBoundingRect} from './utils/parser';
|
import {createTransform1, createBoundingRect} from './utils/parser';
|
||||||
|
|
||||||
class TransformHandle {
|
class TransformHandle {
|
||||||
constructor(painter) {
|
constructor(painter) {
|
||||||
this.$painter = painter;
|
this.$painter = painter;
|
||||||
|
|
||||||
|
this.scale = '';
|
||||||
|
this.scaleIndex = 0;
|
||||||
|
this.scaleList = [
|
||||||
|
0.2, 0.4, 0.6, 0.8, 0.9,
|
||||||
|
1, 1.2, 1.4, 1.6, 1.8,
|
||||||
|
2, 2.2, 2.4, 2.6, 2.8,
|
||||||
|
3, 3.2, 3.4, 3.6, 3.8,
|
||||||
|
4, 4.2, 4.4, 4.6, 4.8,
|
||||||
|
5, 5.2, 5.4, 5.6, 5.8,
|
||||||
|
6, 6.2, 6.4, 6.6, 6.8,
|
||||||
|
7, 7.2, 7.4, 7.6, 7.8,
|
||||||
|
8
|
||||||
|
];
|
||||||
|
|
||||||
this.parentLevel = painter.getParentLevel();
|
this.parentLevel = painter.getParentLevel();
|
||||||
|
|
||||||
this.rect = { x: 0, y: 0, width: 0, height: 0 };
|
this.rect = { x: 0, y: 0, width: 0, height: 0 };
|
||||||
@ -79,6 +94,7 @@ class TransformHandle {
|
|||||||
// 更新偏移量
|
// 更新偏移量
|
||||||
updateTransform(list, rectList) {
|
updateTransform(list, rectList) {
|
||||||
this.rectList = rectList;
|
this.rectList = rectList;
|
||||||
|
// this.scale = list[0].scaleRateX;
|
||||||
this.transform = [];
|
this.transform = [];
|
||||||
list.forEach(item => {
|
list.forEach(item => {
|
||||||
this.transform.push(createTransform1(item));
|
this.transform.push(createTransform1(item));
|
||||||
@ -87,10 +103,24 @@ class TransformHandle {
|
|||||||
this.transformAll();
|
this.transformAll();
|
||||||
}
|
}
|
||||||
updataOffset(opt) {
|
updataOffset(opt) {
|
||||||
this.transform.forEach(item => {
|
if (opt.scale) {
|
||||||
item[4] = item[4] + opt.dx;
|
if (opt.scale <= 0) {
|
||||||
item[5] = item[5] + opt.dy;
|
this.scaleIndex = this.scaleIndex <= 0 ? 0 : this.scaleIndex - 1;
|
||||||
});
|
} else {
|
||||||
|
this.scaleIndex = this.scaleIndex >= 40 ? 40 : this.scaleIndex + 1;
|
||||||
|
}
|
||||||
|
const {screenList, rectList} = this.$painter.updateScreenZoom(this.scaleList[this.scaleIndex]);
|
||||||
|
this.rectList = rectList;
|
||||||
|
this.transform = [];
|
||||||
|
screenList.forEach(item => {
|
||||||
|
this.transform.push(createTransform1(item));
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.transform.forEach(item => {
|
||||||
|
item[4] = item[4] + opt.dx;
|
||||||
|
item[5] = item[5] + opt.dy;
|
||||||
|
});
|
||||||
|
}
|
||||||
this.transformAll1();
|
this.transformAll1();
|
||||||
}
|
}
|
||||||
updataOffsetNum(opts) {
|
updataOffsetNum(opts) {
|
||||||
|
@ -2,9 +2,9 @@ export function getBaseUrl() {
|
|||||||
let BASE_API;
|
let BASE_API;
|
||||||
if (process.env.NODE_ENV === 'development') {
|
if (process.env.NODE_ENV === 'development') {
|
||||||
// BASE_API = 'https://joylink.club/jlcloud';
|
// BASE_API = 'https://joylink.club/jlcloud';
|
||||||
// BASE_API = 'https://test.joylink.club/jlcloud';
|
BASE_API = 'https://test.joylink.club/jlcloud';
|
||||||
// BASE_API = 'http://192.168.8.107:9000'; // 袁琪
|
// BASE_API = 'http://192.168.8.107:9000'; // 袁琪
|
||||||
BASE_API = 'http://192.168.8.167:9000'; // 旭强
|
// BASE_API = 'http://192.168.8.167:9000'; // 旭强
|
||||||
// BASE_API = 'http://192.168.2.183:9000'; // 张赛
|
// BASE_API = 'http://192.168.2.183:9000'; // 张赛
|
||||||
// BASE_API = 'http://192.168.8.140:9000'; // 杜康
|
// BASE_API = 'http://192.168.8.140:9000'; // 杜康
|
||||||
// BASE_API = 'http://b29z135112.zicp.vip';
|
// BASE_API = 'http://b29z135112.zicp.vip';
|
||||||
|
@ -62,7 +62,7 @@ export default {
|
|||||||
},
|
},
|
||||||
'$store.state.map.mapViewLoadedCount':function() {
|
'$store.state.map.mapViewLoadedCount':function() {
|
||||||
this.$store.dispatch('map/setTrainWindowShow', false);
|
this.$store.dispatch('map/setTrainWindowShow', false);
|
||||||
this.$jlmap.off('zoom');
|
// this.$jlmap.off('zoom');
|
||||||
this.handleUpdateScreen();
|
this.handleUpdateScreen();
|
||||||
if (this.$route.query.group && !this.$route.path.includes('displayIscs')) {
|
if (this.$route.query.group && !this.$route.path.includes('displayIscs')) {
|
||||||
this.subscribe();
|
this.subscribe();
|
||||||
|
Loading…
Reference in New Issue
Block a user