Merge remote-tracking branch 'origin/dev' into test
This commit is contained in:
commit
c3a98567a3
File diff suppressed because one or more lines are too long
@ -152,6 +152,7 @@ class IbpPan {
|
|||||||
updateIbpData(elem);
|
updateIbpData(elem);
|
||||||
const oDevice = this.ibpDevice[code] || deviceFactory(type, elem);
|
const oDevice = this.ibpDevice[code] || deviceFactory(type, elem);
|
||||||
const nDevice = deviceFactory(type, Object.assign(oDevice.model || {}, elem));
|
const nDevice = deviceFactory(type, Object.assign(oDevice.model || {}, elem));
|
||||||
|
delete this.mapDevice[code];
|
||||||
this.$painter.delete(oDevice);
|
this.$painter.delete(oDevice);
|
||||||
if (!elem._dispose) {
|
if (!elem._dispose) {
|
||||||
this.ibpDevice[code] = nDevice;
|
this.ibpDevice[code] = nDevice;
|
||||||
|
@ -117,9 +117,9 @@ class MouseController extends Eventful {
|
|||||||
|
|
||||||
this._x = e.offsetX;
|
this._x = e.offsetX;
|
||||||
this._y = e.offsetY;
|
this._y = e.offsetY;
|
||||||
|
debugger;
|
||||||
if (this._dragging) {
|
if (this._dragging) {
|
||||||
if (this.eventTarget._type === deviceType.Background) {
|
if (this.eventTarget._type === deviceType.Background || !this.isAllowDragging) {
|
||||||
this._preventDefaultMouseMove && eventTool.stop(e.event);
|
this._preventDefaultMouseMove && eventTool.stop(e.event);
|
||||||
this.trigger(this.events.__Pan, { dx, dy, oldX, oldY, newX: this._x, newY: this._y });
|
this.trigger(this.events.__Pan, { dx, dy, oldX, oldY, newX: this._x, newY: this._y });
|
||||||
return true;
|
return true;
|
||||||
@ -133,12 +133,12 @@ class MouseController extends Eventful {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mouseup(e) {
|
mouseup(e) {
|
||||||
if (!eventTool.notLeftMouse(e)) {
|
if (!eventTool.notLeftMouse(e)&&this.isAllowDragging) {
|
||||||
this.eventTarget.setModel(e.offsetX - this._offsetX, e.offsetY - this._offsetY);
|
this.eventTarget.setModel(e.offsetX - this._offsetX, e.offsetY - this._offsetY);
|
||||||
this.eventTarget.dirty();
|
this.eventTarget.dirty();
|
||||||
this._dragging = false;
|
|
||||||
this.eventTarget = '';
|
this.eventTarget = '';
|
||||||
}
|
}
|
||||||
|
this._dragging = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
mousewheel(e) {
|
mousewheel(e) {
|
||||||
|
@ -154,6 +154,7 @@ class Jlmap {
|
|||||||
const oDevice = this.mapDevice[code] || deviceFactory(type, elem);
|
const oDevice = this.mapDevice[code] || deviceFactory(type, elem);
|
||||||
const nDevice = Object.assign(oDevice || {}, elem);
|
const nDevice = Object.assign(oDevice || {}, elem);
|
||||||
this.$painter.delete(oDevice);
|
this.$painter.delete(oDevice);
|
||||||
|
delete this.mapDevice[code];
|
||||||
if (!elem._dispose) {
|
if (!elem._dispose) {
|
||||||
this.mapDevice[code] = nDevice;
|
this.mapDevice[code] = nDevice;
|
||||||
this.$painter.add(nDevice);
|
this.$painter.add(nDevice);
|
||||||
|
@ -167,3 +167,51 @@ export function parser(data, skinCode) {
|
|||||||
|
|
||||||
return mapDevice;
|
return mapDevice;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 同步绘制数据到原始数据
|
||||||
|
export function updateForList(model, map, liststr) {
|
||||||
|
const list = map[liststr];
|
||||||
|
if (list && list instanceof Array) {
|
||||||
|
const i = list.findIndex(elem => { return elem.code == model.code; });
|
||||||
|
if (model._dispose) {
|
||||||
|
i >= 0 && list.splice(i, 1);
|
||||||
|
} else if (!list[i]) {
|
||||||
|
list.push(Object.assign({}, model));
|
||||||
|
} else if (i >= 0) {
|
||||||
|
const item = list[i];
|
||||||
|
Object.keys(model).forEach(key => {
|
||||||
|
if (key != 'instance') {
|
||||||
|
item[key] = model[key];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
map[liststr] = [model];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateMapData(state, model) {
|
||||||
|
const map = state.map;
|
||||||
|
if (map && model) {
|
||||||
|
switch (model._type) {
|
||||||
|
case deviceType.Link: updateForList(model, map, 'linkList'); break;
|
||||||
|
case deviceType.Section: updateForList(model, map, 'sectionList'); break;
|
||||||
|
case deviceType.Switch: updateForList(model, map, 'switchList'); break;
|
||||||
|
case deviceType.Signal: updateForList(model, map, 'signalList'); break;
|
||||||
|
case deviceType.Station: updateForList(model, map, 'stationList'); break;
|
||||||
|
case deviceType.StationStand: updateForList(model, map, 'stationStandList'); break;
|
||||||
|
case deviceType.StationControl: updateForList(model, map, 'stationControlList'); break;
|
||||||
|
case deviceType.StationCounter: updateForList(model, map, 'stationCounterList'); break;
|
||||||
|
case deviceType.ZcControl: updateForList(model, map, 'zcControlList'); break;
|
||||||
|
case deviceType.StationDelayUnlock:updateForList(model, map, 'stationDelayUnlockList'); break;
|
||||||
|
case deviceType.LcControl: updateForList(model, map, 'lcControlList'); break;
|
||||||
|
case deviceType.ButtonControl: updateForList(model, map, 'buttonList'); break;
|
||||||
|
case deviceType.LimitControl: updateForList(model, map, 'tempSpeedLimitList'); break;
|
||||||
|
case deviceType.ImageControl: updateForList(model, map, 'imageControl'); break;
|
||||||
|
case deviceType.Train: updateForList(model, map, 'trainList'); break;
|
||||||
|
case deviceType.TrainWindow: updateForList(model, map, 'trainWindowList'); break;
|
||||||
|
case deviceType.Line: updateForList(model, map, 'lineList'); break;
|
||||||
|
case deviceType.Text: updateForList(model, map, 'textList'); break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import deviceType from '@/jmap/constant/deviceType';
|
import deviceType from '@/jmap/constant/deviceType';
|
||||||
import { parser } from '@/jmap/utils/parser';
|
import { parser, updateMapData } from '@/jmap/utils/parser';
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
/**
|
/**
|
||||||
* 查询向上受影响的Devices
|
* 查询向上受影响的Devices
|
||||||
@ -191,53 +191,6 @@ function saveMapDeviceDefaultRelations(state) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 同步绘制数据到原始数据
|
|
||||||
function dataSync(model, map) {
|
|
||||||
var prop = null;
|
|
||||||
var type = model._type;
|
|
||||||
var code = model.code;
|
|
||||||
|
|
||||||
switch (type) {
|
|
||||||
case deviceType.Link: prop = 'linkList'; break;
|
|
||||||
case deviceType.Section: prop = 'sectionList'; break;
|
|
||||||
case deviceType.Switch: prop = 'switchList'; break;
|
|
||||||
case deviceType.Signal: prop = 'signalList'; break;
|
|
||||||
case deviceType.Station: prop = 'stationList'; break;
|
|
||||||
case deviceType.StationStand: prop = 'stationStandList'; break;
|
|
||||||
case deviceType.StationControl: prop = 'stationControlList'; break;
|
|
||||||
case deviceType.StationCounter: prop = 'stationCounterList'; break;
|
|
||||||
case deviceType.ZcControl: prop = 'zcControlList'; break;
|
|
||||||
case deviceType.StationDelayUnlock: prop = 'stationDelayUnlockList'; break;
|
|
||||||
case deviceType.LcControl: prop = 'lcControlList'; break;
|
|
||||||
case deviceType.ButtonControl: prop = 'buttonList'; break;
|
|
||||||
case deviceType.LimitControl: prop = 'tempSpeedLimitList'; break;
|
|
||||||
case deviceType.ImageControl: prop = 'imageControl'; break;
|
|
||||||
case deviceType.Train: prop = 'trainList'; break;
|
|
||||||
case deviceType.TrainWindow: prop = 'trainWindowList'; break;
|
|
||||||
case deviceType.Line: prop = 'lineList'; break;
|
|
||||||
case deviceType.Text: prop = 'textList'; break;
|
|
||||||
}
|
|
||||||
|
|
||||||
const list = map[prop] || [];
|
|
||||||
const idex = list.findIndex(elem => { return elem.code == code; });
|
|
||||||
if (list) {
|
|
||||||
if (model._dispose) {
|
|
||||||
idex >= 0 && list.splice(idex, 1);
|
|
||||||
} else {
|
|
||||||
const elem = list[idex];
|
|
||||||
if (elem) {
|
|
||||||
Object.keys(model).forEach(key => {
|
|
||||||
if (key != 'instance') {
|
|
||||||
elem[key] = model[key];
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
list.push(Object.assign({}, model));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实训状态数据
|
* 实训状态数据
|
||||||
*/
|
*/
|
||||||
@ -483,7 +436,7 @@ const map = {
|
|||||||
},
|
},
|
||||||
mapRender: (state, devices) => {
|
mapRender: (state, devices) => {
|
||||||
if (state.map) {
|
if (state.map) {
|
||||||
devices.forEach(elem => { dataSync(elem, state.map); });
|
devices.forEach(elem => { updateMapData(state, elem); });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Vue.prototype.$jlmap) {
|
if (Vue.prototype.$jlmap) {
|
||||||
|
@ -15,6 +15,12 @@
|
|||||||
<el-form-item label="Y轴坐标">
|
<el-form-item label="Y轴坐标">
|
||||||
<el-input-number v-model="form.y" controls-position="right" :min="1"></el-input-number>
|
<el-input-number v-model="form.y" controls-position="right" :min="1"></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="提示颜色" prop="rotateTipColor">
|
||||||
|
<el-select v-model="form.rotateTipColor" placeholder="请选择按钮颜色">
|
||||||
|
<el-option label="红色" value="red"></el-option>
|
||||||
|
<el-option label="黑色" value="black"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="onSubmit('form')">{{ buttonText }}</el-button>
|
<el-button type="primary" @click="onSubmit('form')">{{ buttonText }}</el-button>
|
||||||
<el-button v-show="showDeleteButton" @click="deleteDevice" type="danger">删除</el-button>
|
<el-button v-show="showDeleteButton" @click="deleteDevice" type="danger">删除</el-button>
|
||||||
@ -37,6 +43,7 @@
|
|||||||
form: {
|
form: {
|
||||||
code: '',
|
code: '',
|
||||||
rotateTipWidth: '',
|
rotateTipWidth: '',
|
||||||
|
rotateTipColor: 'black',
|
||||||
x: 10,
|
x: 10,
|
||||||
y: 10
|
y: 10
|
||||||
},
|
},
|
||||||
@ -46,6 +53,9 @@
|
|||||||
],
|
],
|
||||||
rotateTipWidth: [
|
rotateTipWidth: [
|
||||||
{ required: true, message: '请输入旋转提示宽度', trigger: 'blur' },
|
{ required: true, message: '请输入旋转提示宽度', trigger: 'blur' },
|
||||||
|
],
|
||||||
|
rotateTipColor: [
|
||||||
|
{ required: true, message: '请选择按钮颜色', trigger: 'change'}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -62,6 +72,7 @@
|
|||||||
this.isUpdate = true;
|
this.isUpdate = true;
|
||||||
this.form.code = model.code;
|
this.form.code = model.code;
|
||||||
this.form.rotateTipWidth = model.width;
|
this.form.rotateTipWidth = model.width;
|
||||||
|
this.form.rotateTipColor = model.color?model.color:'black';
|
||||||
this.form.x = model.point.x;
|
this.form.x = model.point.x;
|
||||||
this.form.y = model.point.y;
|
this.form.y = model.point.y;
|
||||||
}
|
}
|
||||||
@ -82,6 +93,7 @@
|
|||||||
_type: 'RotateTip',
|
_type: 'RotateTip',
|
||||||
code: this.form.code,
|
code: this.form.code,
|
||||||
width: this.form.rotateTipWidth,
|
width: this.form.rotateTipWidth,
|
||||||
|
color: this.form.rotateTipColor
|
||||||
};
|
};
|
||||||
this.$emit('createRotateTip', rotateTipModel);
|
this.$emit('createRotateTip', rotateTipModel);
|
||||||
this.initPage();
|
this.initPage();
|
||||||
@ -98,9 +110,10 @@
|
|||||||
y: this.form.y
|
y: this.form.y
|
||||||
},
|
},
|
||||||
draggable: true,
|
draggable: true,
|
||||||
_type: 'Key',
|
_type: 'RotateTip',
|
||||||
code: this.form.code,
|
code: this.form.code,
|
||||||
width: this.form .rotateTipWidth,
|
width: this.form .rotateTipWidth,
|
||||||
|
color: this.form.rotateTipColor
|
||||||
};
|
};
|
||||||
this.$emit('deleteDataModel',rotateTipModel);
|
this.$emit('deleteDataModel',rotateTipModel);
|
||||||
this.initPage();
|
this.initPage();
|
||||||
@ -112,6 +125,7 @@
|
|||||||
this.form = {
|
this.form = {
|
||||||
code: '',
|
code: '',
|
||||||
rotateTipWidth: '',
|
rotateTipWidth: '',
|
||||||
|
rotateTipColor: 'black',
|
||||||
x: 10,
|
x: 10,
|
||||||
y: 10
|
y: 10
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user