Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/jl-client into test
This commit is contained in:
commit
3731a56a78
@ -117,7 +117,9 @@ export const DeviceMenu = {
|
|||||||
RunPlan: '104',
|
RunPlan: '104',
|
||||||
JointRoom: '105',
|
JointRoom: '105',
|
||||||
SetDriver: '106',
|
SetDriver: '106',
|
||||||
Script: '107'
|
Script: '107',
|
||||||
|
IscsSystem: '108',
|
||||||
|
IscsInterface: '109'
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -40,11 +40,11 @@ export default {
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'$store.state.app.windowSizeCount': function() {
|
'$store.state.app.windowSizeCount': function() {
|
||||||
this.$store.dispatch('config/resize', { width: this.$store.state.app.width - 521 - this.widthLeft, height: this.$store.state.app.height - 60 });
|
this.$store.dispatch('config/resize', { width: this.$store.state.app.width - this.widthLeft, height: this.$store.state.app.height - 60 });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.$store.dispatch('config/resize', { width: this.$store.state.app.width - 521 - this.widthLeft, height: this.$store.state.app.height - 60 });
|
this.$store.dispatch('config/resize', { width: this.$store.state.app.width - this.widthLeft, height: this.$store.state.app.height - 60 });
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.$refs.ibpPlate.show();
|
this.$refs.ibpPlate.show();
|
||||||
|
88
src/views/iscs/iscsDesign/contextMenu.vue
Normal file
88
src/views/iscs/iscsDesign/contextMenu.vue
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<pop-menu ref="popMenu" :menu="menu" pop-menu-class="popMenuClass" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import PopMenu from '@/components/PopMenu';
|
||||||
|
import { Notification } from 'element-ui';
|
||||||
|
import { DeviceMenu } from '@/scripts/ConstDic';
|
||||||
|
import { exitFullscreen } from '@/utils/screen';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'CancelMenu',
|
||||||
|
components: {
|
||||||
|
PopMenu
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
menu: [],
|
||||||
|
menuSystem: [
|
||||||
|
{
|
||||||
|
label: '添加系统界面',
|
||||||
|
handler: this.addInterface,
|
||||||
|
disabled: false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
menuInterface: [
|
||||||
|
{
|
||||||
|
label: '删除系统界面',
|
||||||
|
handler: this.deleteInterface,
|
||||||
|
disabled: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
'$store.state.menuOperation.menuCount': function (val) {
|
||||||
|
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.IscsSystem)) {
|
||||||
|
this.menu = [...this.menuSystem];
|
||||||
|
this.doShow(this.$store.state.menuOperation.menuPosition);
|
||||||
|
} else if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.IscsInterface)) {
|
||||||
|
this.menu = [...this.menuInterface];
|
||||||
|
this.doShow(this.$store.state.menuOperation.menuPosition);
|
||||||
|
} else {
|
||||||
|
this.menu = [];
|
||||||
|
this.doClose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
clickEvent() {
|
||||||
|
const self = this;
|
||||||
|
window.onclick = function (e) {
|
||||||
|
self.doClose();
|
||||||
|
};
|
||||||
|
},
|
||||||
|
addInterface() {
|
||||||
|
|
||||||
|
},
|
||||||
|
deleteInterface() {
|
||||||
|
|
||||||
|
},
|
||||||
|
doShow(point) {
|
||||||
|
this.clickEvent();
|
||||||
|
if (this.$refs && this.$refs.popMenu && this.menu && this.menu.length) {
|
||||||
|
this.$refs.popMenu.resetShowPosition(point);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
doClose() {
|
||||||
|
if (this.$refs && this.$refs.popMenu) {
|
||||||
|
this.$refs.popMenu.close();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 返回
|
||||||
|
async back() {
|
||||||
|
history.go(-1);
|
||||||
|
Notification.closeAll();
|
||||||
|
exitFullscreen();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.popMenuClass{
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
@ -4,6 +4,7 @@
|
|||||||
<span>iscs系统列表</span>
|
<span>iscs系统列表</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="text_item">
|
<div class="text_item">
|
||||||
|
<el-cascader v-model="testList" style="width: 100%;" :props="props" placeholder="请选择车站" />
|
||||||
<el-input v-model="filterText" :placeholder="this.$t('global.filteringKeywords')" clearable />
|
<el-input v-model="filterText" :placeholder="this.$t('global.filteringKeywords')" clearable />
|
||||||
<div class="tree_box">
|
<div class="tree_box">
|
||||||
<el-tree ref="tree" :data="treeList" node-key="id" :props="defaultProps" highlight-current :span="22" :filter-node-method="filterNode" @node-click="clickEvent" @node-contextmenu="showContextMenu">
|
<el-tree ref="tree" :data="treeList" node-key="id" :props="defaultProps" highlight-current :span="22" :filter-node-method="filterNode" @node-click="clickEvent" @node-contextmenu="showContextMenu">
|
||||||
@ -22,6 +23,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { DeviceMenu } from '@/scripts/ConstDic';
|
import { DeviceMenu } from '@/scripts/ConstDic';
|
||||||
import { removeSessionStorage } from '@/utils/auth';
|
import { removeSessionStorage } from '@/utils/auth';
|
||||||
|
import { getPublishMapListOnline, getStationListNeedAttendant } from '@/api/jmap/map';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'UserMapList',
|
name: 'UserMapList',
|
||||||
@ -41,19 +43,46 @@ export default {
|
|||||||
y: 0
|
y: 0
|
||||||
},
|
},
|
||||||
editModel: {},
|
editModel: {},
|
||||||
lineCode: ''
|
lineCode: '',
|
||||||
|
mapList: [],
|
||||||
|
testList: []
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
// role() {
|
props() {
|
||||||
// return this.$store.state.user.roles.includes('04') ||
|
const self = this;
|
||||||
// this.$store.state.user.roles.includes('05') ||
|
return {
|
||||||
// this.$store.state.user.roles.includes('01');
|
lazy: true,
|
||||||
// }
|
lazyLoad (node, resolve) {
|
||||||
|
const { level } = node;
|
||||||
|
let nodes = [];
|
||||||
|
if (level === 1) {
|
||||||
|
getStationListNeedAttendant(node.data.value).then(resp => {
|
||||||
|
nodes = resp.data.map(elem => { return {value: elem.code, label: elem.name, leaf: true}; });
|
||||||
|
resolve(nodes);
|
||||||
|
}).catch(() => {
|
||||||
|
self.$message.error('获取车站列表失败');
|
||||||
|
resolve(nodes);
|
||||||
|
});
|
||||||
|
} else if (!level) {
|
||||||
|
getPublishMapListOnline().then(resp => {
|
||||||
|
nodes = resp.data.map(elem => { return { value: elem.id, label: elem.name, leaf: false }; });
|
||||||
|
resolve(nodes);
|
||||||
|
}).catch(() => {
|
||||||
|
self.$message.error('获取地图列表失败!');
|
||||||
|
resolve(nodes);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
filterText(val) {
|
filterText(val) {
|
||||||
this.$refs.tree.filter(val);
|
this.$refs.tree.filter(val);
|
||||||
|
},
|
||||||
|
testList(val) {
|
||||||
|
console.log(val);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeDestroy () {
|
beforeDestroy () {
|
||||||
@ -77,7 +106,7 @@ export default {
|
|||||||
name: 'FAS界面',
|
name: 'FAS界面',
|
||||||
mode: 'fas',
|
mode: 'fas',
|
||||||
id: 'fas',
|
id: 'fas',
|
||||||
type: 'system',
|
type: 'totalSystem',
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
name: '站厅报警',
|
name: '站厅报警',
|
||||||
@ -133,7 +162,7 @@ export default {
|
|||||||
name: 'BAS界面',
|
name: 'BAS界面',
|
||||||
mode: 'bas',
|
mode: 'bas',
|
||||||
id: 'bas',
|
id: 'bas',
|
||||||
type: 'system',
|
type: 'totalSystem',
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
name: '大系统',
|
name: '大系统',
|
||||||
@ -277,7 +306,7 @@ export default {
|
|||||||
name: 'PSD界面',
|
name: 'PSD界面',
|
||||||
mode: 'psd',
|
mode: 'psd',
|
||||||
id: 'psd',
|
id: 'psd',
|
||||||
type: 'system',
|
type: 'totalSystem',
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
name: '屏蔽门',
|
name: '屏蔽门',
|
||||||
@ -347,7 +376,7 @@ export default {
|
|||||||
name: 'AFC界面',
|
name: 'AFC界面',
|
||||||
mode: 'afc',
|
mode: 'afc',
|
||||||
id: 'afc',
|
id: 'afc',
|
||||||
type: 'system',
|
type: 'totalSystem',
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
name: '售检票',
|
name: '售检票',
|
||||||
@ -369,7 +398,7 @@ export default {
|
|||||||
name: 'ACS界面',
|
name: 'ACS界面',
|
||||||
mode: 'acs',
|
mode: 'acs',
|
||||||
id: 'acs',
|
id: 'acs',
|
||||||
type: 'system',
|
type: 'totalSystem',
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
name: '门禁-站台层',
|
name: '门禁-站台层',
|
||||||
@ -405,7 +434,7 @@ export default {
|
|||||||
name: '网络状态',
|
name: '网络状态',
|
||||||
mode: 'netState',
|
mode: 'netState',
|
||||||
id: 'netState',
|
id: 'netState',
|
||||||
type: 'system',
|
type: 'totalSystem',
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
name: '网络状态',
|
name: '网络状态',
|
||||||
@ -427,6 +456,8 @@ export default {
|
|||||||
},
|
},
|
||||||
clickEvent(obj, data, ele) {
|
clickEvent(obj, data, ele) {
|
||||||
switch (obj.type) {
|
switch (obj.type) {
|
||||||
|
case 'totalSystem':
|
||||||
|
break;
|
||||||
case 'system' :
|
case 'system' :
|
||||||
break;
|
break;
|
||||||
case 'interface':
|
case 'interface':
|
||||||
@ -435,16 +466,15 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
showContextMenu(e, obj, node, vueElem) {
|
showContextMenu(e, obj, node, vueElem) {
|
||||||
if (obj && obj.type == 'map') {
|
const deviceMenuMap = { system: DeviceMenu.IscsSystem, interface: DeviceMenu.IscsInterface };
|
||||||
|
if (obj && (obj.type == 'system' || obj.type == 'interface')) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
const menu = DeviceMenu.Map;
|
const menu = deviceMenuMap[obj.type];
|
||||||
|
|
||||||
this.point = {
|
this.point = {
|
||||||
x: e.clientX,
|
x: e.clientX,
|
||||||
y: e.clientY
|
y: e.clientY
|
||||||
};
|
};
|
||||||
this.editModel = obj;
|
this.editModel = obj;
|
||||||
this.editModel.lineCode = obj.lineCode;
|
|
||||||
this.$store.dispatch('menuOperation/setPopMenu', { position: this.point, menu: menu });
|
this.$store.dispatch('menuOperation/setPopMenu', { position: this.point, menu: menu });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
<transition>
|
<transition>
|
||||||
<router-view />
|
<router-view />
|
||||||
</transition>
|
</transition>
|
||||||
|
<context-menu />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -18,13 +19,15 @@ import { launchFullscreen } from '@/utils/screen';
|
|||||||
import localStore from 'storejs';
|
import localStore from 'storejs';
|
||||||
import { getSessionStorage, setSessionStorage } from '@/utils/auth';
|
import { getSessionStorage, setSessionStorage } from '@/utils/auth';
|
||||||
import MapCreate from './mapmanage/create';
|
import MapCreate from './mapmanage/create';
|
||||||
|
import ContextMenu from './contextMenu';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DesignPlatform',
|
name: 'DesignPlatform',
|
||||||
components: {
|
components: {
|
||||||
demonList,
|
demonList,
|
||||||
drapLeft,
|
drapLeft,
|
||||||
MapCreate
|
MapCreate,
|
||||||
|
ContextMenu
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -71,12 +74,12 @@ export default {
|
|||||||
},
|
},
|
||||||
resize() {
|
resize() {
|
||||||
this.widthLeft = Number(localStore.get('LeftWidth')) || this.widthLeft;
|
this.widthLeft = Number(localStore.get('LeftWidth')) || this.widthLeft;
|
||||||
const width = this.$store.state.app.width - 521 - this.widthLeft;
|
const width = this.$store.state.app.width - this.widthLeft;
|
||||||
const height = this.$store.state.app.height - 90;
|
const height = this.$store.state.app.height - 90;
|
||||||
this.$store.dispatch('config/resize', { width: width, height: height });
|
this.$store.dispatch('config/resize', { width: width, height: height });
|
||||||
},
|
},
|
||||||
setMapResize(LeftWidth) {
|
setMapResize(LeftWidth) {
|
||||||
const width = this.$store.state.app.width - 521 - LeftWidth;
|
const width = this.$store.state.app.width - LeftWidth;
|
||||||
const height = this.$store.state.app.height - 90;
|
const height = this.$store.state.app.height - 90;
|
||||||
this.$store.dispatch('config/resize', { width: width, height: height });
|
this.$store.dispatch('config/resize', { width: width, height: height });
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
<div class="map-view">
|
<div class="map-view">
|
||||||
<iscs-plate ref="iscsPlate" @iscsChange="iscsChange" />
|
<iscs-plate ref="iscsPlate" @iscsChange="iscsChange" />
|
||||||
</div>
|
</div>
|
||||||
<div class="map-draft">
|
<div class="map-draft" :class="{'hide': draftShow}">
|
||||||
|
<div class="btn_left_box" @click="clickRightBtn"><i :class="draftShow?'el-icon-arrow-right':'el-icon-arrow-left'" /></div>
|
||||||
<iscs-operate v-if="iscsMode==='fas'" ref="iscsOperate" @iscsChange="iscsChange" />
|
<iscs-operate v-if="iscsMode==='fas'" ref="iscsOperate" @iscsChange="iscsChange" />
|
||||||
<iscs-bas-operate v-else-if="iscsMode==='bas'" ref="iscsBasOperate" @iscsChange="iscsChange" />
|
<iscs-bas-operate v-else-if="iscsMode==='bas'" ref="iscsBasOperate" @iscsChange="iscsChange" />
|
||||||
<iscs-psd-operate v-else-if="iscsMode==='psd'" ref="iscsPsdOperate" @iscsChange="iscsChange" />
|
<iscs-psd-operate v-else-if="iscsMode==='psd'" ref="iscsPsdOperate" @iscsChange="iscsChange" />
|
||||||
@ -44,7 +45,8 @@ export default {
|
|||||||
width: this.$store.state.app.width - 521,
|
width: this.$store.state.app.width - 521,
|
||||||
height: this.$store.state.app.height - 60
|
height: this.$store.state.app.height - 60
|
||||||
},
|
},
|
||||||
widthLeft: Number(localStore.get('LeftWidth')) || 450
|
widthLeft: Number(localStore.get('LeftWidth')) || 450,
|
||||||
|
draftShow: false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed:{
|
computed:{
|
||||||
@ -68,6 +70,9 @@ export default {
|
|||||||
iscsChange(mode, system, part) {
|
iscsChange(mode, system, part) {
|
||||||
this.$refs.iscsPlate.show(mode, system, part);
|
this.$refs.iscsPlate.show(mode, system, part);
|
||||||
this.$refs.iscsPlate.drawIscsInit();
|
this.$refs.iscsPlate.drawIscsInit();
|
||||||
|
},
|
||||||
|
clickRightBtn() {
|
||||||
|
this.draftShow = !this.draftShow;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -76,12 +81,22 @@ export default {
|
|||||||
@import "src/styles/mixin.scss";
|
@import "src/styles/mixin.scss";
|
||||||
|
|
||||||
.map-draft{
|
.map-draft{
|
||||||
height:100%;
|
width: 420px;
|
||||||
/deep/{
|
height: 100%;
|
||||||
.v-modal{
|
position: absolute;
|
||||||
opacity: 0;
|
right: 0;
|
||||||
}
|
transform: translateX(420px);
|
||||||
}
|
transition: all 0.5s;
|
||||||
|
background: #fff;
|
||||||
|
z-index: 9;
|
||||||
|
/deep/{
|
||||||
|
.v-modal{
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.hide{
|
||||||
|
transform: translateX(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.map-view {
|
.map-view {
|
||||||
@ -92,13 +107,15 @@ export default {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
.map-draft {
|
.btn_left_box{
|
||||||
float: right;
|
position: absolute;
|
||||||
width: 520px;
|
left: 0;
|
||||||
|
top: 50%;
|
||||||
// /deep/ .el-scrollbar__view {
|
padding: 8px 3px;
|
||||||
// width: 510px !important;
|
background: #fff;
|
||||||
// height: calc(100% - 40px);
|
z-index: 10;
|
||||||
// }
|
transform: translateX(-22px);
|
||||||
}
|
cursor: pointer;
|
||||||
|
border-radius: 5px 0 0 5px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,25 +1,25 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div style="width: 100%;">
|
||||||
<el-form ref="form" :rules="rules" :model="form" label-width="80px">
|
<el-form ref="form" :rules="rules" :model="form" label-width="80px" style="width: 100%;padding: 10px 50px;">
|
||||||
<el-form-item label="半径" prop="r">
|
<el-form-item label="半径" prop="r">
|
||||||
<el-input-number v-model="form.r" controls-position="right" :min="1" />
|
<el-input-number v-model="form.r" size="small" controls-position="right" :min="1" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="填充色" prop="fillColor">
|
<el-form-item label="填充色" prop="fillColor">
|
||||||
<el-color-picker v-model="form.fillColor"></el-color-picker>
|
<el-color-picker v-model="form.fillColor" size="small" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="X轴坐标">
|
<el-form-item label="X轴坐标">
|
||||||
<el-input-number v-model="form.x" controls-position="right" :min="1" />
|
<el-input-number v-model="form.x" controls-position="right" size="small" :min="1" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<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 v-model="form.y" controls-position="right" size="small" :min="1" />
|
||||||
</el-form-item>
|
</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" type="danger" @click="deleteDevice">删除</el-button>
|
<el-button v-show="showDeleteButton" type="danger" @click="deleteDevice">删除</el-button>
|
||||||
<el-button v-show="showDeleteButton" @click="initPage">取消</el-button>
|
<el-button v-show="showDeleteButton" @click="initPage">取消</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@ -84,7 +84,7 @@ export default {
|
|||||||
code: this.isUpdate ? this.form.code : getUID('ArcStatus', this.iscs.arcStatusList),
|
code: this.isUpdate ? this.form.code : getUID('ArcStatus', this.iscs.arcStatusList),
|
||||||
_type: 'ArcStatus',
|
_type: 'ArcStatus',
|
||||||
fillColor: this.form.fillColor,
|
fillColor: this.form.fillColor,
|
||||||
r: this.form.r,
|
r: this.form.r
|
||||||
};
|
};
|
||||||
this.$emit('createDataModel', rectModel);
|
this.$emit('createDataModel', rectModel);
|
||||||
this.initPage();
|
this.initPage();
|
||||||
@ -102,7 +102,7 @@ export default {
|
|||||||
code: this.form.code,
|
code: this.form.code,
|
||||||
_type: 'ArcStatus',
|
_type: 'ArcStatus',
|
||||||
fillColor: this.form.fillColor,
|
fillColor: this.form.fillColor,
|
||||||
r: this.form.r,
|
r: this.form.r
|
||||||
};
|
};
|
||||||
this.$emit('deleteDataModel', rectModel);
|
this.$emit('deleteDataModel', rectModel);
|
||||||
},
|
},
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
// getPublishMapExport
|
// getPublishMapExport
|
||||||
import { getPublishMapList, delPublishMap, putMapOnLine, putMapOffLine, simulationCheck, localImportMap, updatePublishMapInfo } from '@/api/jmap/map';
|
import { getPublishMapList, delPublishMap, putMapOnLine, putMapOffLine, simulationCheck, localImportMap, updatePublishMapInfo, getPublishMapExport } from '@/api/jmap/map';
|
||||||
import { getLineCodeList } from '@/api/management/mapline';
|
import { getLineCodeList } from '@/api/management/mapline';
|
||||||
import localStore from 'storejs';
|
import localStore from 'storejs';
|
||||||
import UpdateOperate from './draft.vue';
|
import UpdateOperate from './draft.vue';
|
||||||
@ -116,14 +116,8 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '导出地图',
|
name: '导出地图',
|
||||||
handleClick: this.handleExportMap,
|
handleClick: this.handleExportMapSame
|
||||||
type: 'default'
|
|
||||||
},
|
},
|
||||||
// {
|
|
||||||
// name: this.$t('global.export'),
|
|
||||||
// handleClick: this.handleExportMapSame,
|
|
||||||
// showControl: () => { return process.env.NODE_ENV === 'development'; }
|
|
||||||
// },
|
|
||||||
{
|
{
|
||||||
name: this.$t('publish.setTheProject'),
|
name: this.$t('publish.setTheProject'),
|
||||||
handleClick: this.handleSetProject
|
handleClick: this.handleSetProject
|
||||||
@ -142,6 +136,11 @@ export default {
|
|||||||
handleClick: this.handleExportMap,
|
handleClick: this.handleExportMap,
|
||||||
type: 'default'
|
type: 'default'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: '导出',
|
||||||
|
handleClick: this.handleExportMap,
|
||||||
|
type: 'default'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: this.$t('global.delete'),
|
name: this.$t('global.delete'),
|
||||||
handleClick: this.handleDelete,
|
handleClick: this.handleDelete,
|
||||||
@ -291,23 +290,45 @@ export default {
|
|||||||
// }).catch(() => { this.$set(row, 'loading' + idx, false); });
|
// }).catch(() => { this.$set(row, 'loading' + idx, false); });
|
||||||
},
|
},
|
||||||
|
|
||||||
// // 导出地图 exls
|
// 导出地图 exls
|
||||||
// async handleExportMapSame(index, row) {
|
async handleExportMapSame(index, row, idx) {
|
||||||
// const res = await getPublishMapExport(row.id);
|
// const res = await getPublishMapExport(row.id);
|
||||||
// const resultData = res.data;
|
// const resultData = res.data;
|
||||||
// if (resultData === false) {
|
// if (resultData === false) {
|
||||||
// return;
|
// return;
|
||||||
// }
|
// }
|
||||||
|
//
|
||||||
// const self = this;
|
// const self = this;
|
||||||
// import('@/utils/Export2Excel').then(excel => {
|
// import('@/utils/Export2Excel').then(excel => {
|
||||||
// self.queryExportDataSame(resultData).then(data => {
|
// self.queryExportDataSame(resultData).then(data => {
|
||||||
// excel.export_json_excel_same(data, resultData.name);
|
// excel.export_json_excel_same(data, resultData.name);
|
||||||
// }).catch(error => {
|
// }).catch(error => {
|
||||||
// self.$message.error(`${this.$t('error.exportException')}:${error.message}`);
|
// self.$message.error(`${this.$t('error.exportException')}:${error.message}`);
|
||||||
// });
|
// });
|
||||||
// });
|
// });
|
||||||
// },
|
this.$confirm('您是否导出地图数据?', this.$t('global.tips'), {
|
||||||
|
confirmButtonText: this.$t('global.confirm'),
|
||||||
|
cancelButtonText: this.$t('global.cancel'),
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async () => {
|
||||||
|
this.$set(row, 'loading' + idx, true);
|
||||||
|
console.log(row);
|
||||||
|
const res = await getPublishMapExport(row.id);
|
||||||
|
const resultData = res.data;
|
||||||
|
if (resultData === false) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const content = new Blob([JSON.stringify(resultData)]);
|
||||||
|
const urlObject = window.URL || window.webkitURL || window;
|
||||||
|
const url = urlObject.createObjectURL(content);
|
||||||
|
const el = document.createElement('a');
|
||||||
|
el.href = url;
|
||||||
|
el.download = `${resultData.name}.json`;
|
||||||
|
el.click();
|
||||||
|
urlObject.revokeObjectURL(url);
|
||||||
|
this.$set(row, 'loading' + idx, false);
|
||||||
|
}).catch(() => { this.$set(row, 'loading' + idx, false); });
|
||||||
|
},
|
||||||
handleSimulationCheck(index, row) {
|
handleSimulationCheck(index, row) {
|
||||||
simulationCheck(row.id).then(res=>{
|
simulationCheck(row.id).then(res=>{
|
||||||
if (!res.data.length) {
|
if (!res.data.length) {
|
||||||
@ -397,124 +418,124 @@ export default {
|
|||||||
obj.value = '';
|
obj.value = '';
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
// 格式化数据列表
|
||||||
|
queryExportDataSame(data) {
|
||||||
|
const mapProps = {};
|
||||||
|
|
||||||
|
mapProps['stationStandList'] = {
|
||||||
|
filter: item => { return true; },
|
||||||
|
propList: {
|
||||||
|
'direction': item => {
|
||||||
|
switch (item.direction) {
|
||||||
|
case '01': return '下行';
|
||||||
|
case '02': return '上行';
|
||||||
|
default: return '未知';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'name': (item, devices) =>{
|
||||||
|
let name = '';
|
||||||
|
if (item.stationCode) {
|
||||||
|
const stationList = devices['stationList'];
|
||||||
|
const station = stationList.find(elem => { return item.stationCode == elem.code; });
|
||||||
|
if (station) {
|
||||||
|
name = station.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
},
|
||||||
|
'code': item => {
|
||||||
|
return item.code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
mapProps['switchList'] = {
|
||||||
|
filter: item => { return true; },
|
||||||
|
propList: {
|
||||||
|
'name': item =>{
|
||||||
|
return item.name;
|
||||||
|
},
|
||||||
|
'code': item => {
|
||||||
|
return item.code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
mapProps['signalList'] = {
|
||||||
|
filter: item => { return true; },
|
||||||
|
propList: {
|
||||||
|
'name': item =>{
|
||||||
|
return item.name;
|
||||||
|
},
|
||||||
|
'code': item => {
|
||||||
|
return item.code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
mapProps['sectionList'] = {
|
||||||
|
filter: item => { return item.type == '01'; },
|
||||||
|
propList: {
|
||||||
|
'name': (item, devices) =>{
|
||||||
|
let name = item.name;
|
||||||
|
if (item.isSwitchSection) {
|
||||||
|
const swchList = devices['switchList'];
|
||||||
|
const swch = swchList.find(elem => { return item.relSwitchCode == elem.code; });
|
||||||
|
if (swch) {
|
||||||
|
if (item.code == swch.sectionACode) {
|
||||||
|
name = `${name} (${swch.name}-A)`;
|
||||||
|
} else if (item.code == swch.sectionBCode) {
|
||||||
|
name = `${name} (${swch.name}-B)`;
|
||||||
|
} else if (item.code == swch.sectionCCode) {
|
||||||
|
name = `${name} (${swch.name}-C)`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return name;
|
||||||
|
},
|
||||||
|
'code': item => {
|
||||||
|
return item.code;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const result = {
|
||||||
|
base: []
|
||||||
|
};
|
||||||
|
const obj = {};
|
||||||
|
const list = ['graphData', 'logicData'];
|
||||||
|
for (const i in data) {
|
||||||
|
if (list.includes(i)) {
|
||||||
|
for (const v in data[i]) {
|
||||||
|
if (data[i][v].length) {
|
||||||
|
if (mapProps[v]) {
|
||||||
|
const list = [];
|
||||||
|
data[i][v].forEach(device => {
|
||||||
|
if (mapProps[v].filter(device)) {
|
||||||
|
const obj = {};
|
||||||
|
Object.keys(mapProps[v].propList || []).forEach(key => {
|
||||||
|
obj[key] = mapProps[v].propList[key](device, data[i]);
|
||||||
|
});
|
||||||
|
list.push(obj);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
result[v] = list;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (data[i] instanceof Object || typeof data[i] != 'object') {
|
||||||
|
obj[i] = data[i];
|
||||||
|
} else if (data[i] instanceof Array) {
|
||||||
|
if (data[i].length) {
|
||||||
|
obj[i] = [...data[i]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
result.base.push(obj);
|
||||||
|
resolve(result);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
// // 格式化数据列表
|
|
||||||
// queryExportDataSame(data) {
|
|
||||||
// const mapProps = {};
|
|
||||||
|
|
||||||
// mapProps['stationStandList'] = {
|
|
||||||
// filter: item => { return true; },
|
|
||||||
// propList: {
|
|
||||||
// 'direction': item => {
|
|
||||||
// switch (item.direction) {
|
|
||||||
// case '01': return '下行';
|
|
||||||
// case '02': return '上行';
|
|
||||||
// default: return '未知';
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// 'name': (item, devices) =>{
|
|
||||||
// let name = '';
|
|
||||||
// if (item.stationCode) {
|
|
||||||
// const stationList = devices['stationList'];
|
|
||||||
// const station = stationList.find(elem => { return item.stationCode == elem.code; });
|
|
||||||
// if (station) {
|
|
||||||
// name = station.name;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return name;
|
|
||||||
// },
|
|
||||||
// 'code': item => {
|
|
||||||
// return item.code;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
// mapProps['switchList'] = {
|
|
||||||
// filter: item => { return true; },
|
|
||||||
// propList: {
|
|
||||||
// 'name': item =>{
|
|
||||||
// return item.name;
|
|
||||||
// },
|
|
||||||
// 'code': item => {
|
|
||||||
// return item.code;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
// mapProps['signalList'] = {
|
|
||||||
// filter: item => { return true; },
|
|
||||||
// propList: {
|
|
||||||
// 'name': item =>{
|
|
||||||
// return item.name;
|
|
||||||
// },
|
|
||||||
// 'code': item => {
|
|
||||||
// return item.code;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
// mapProps['sectionList'] = {
|
|
||||||
// filter: item => { return item.type == '01'; },
|
|
||||||
// propList: {
|
|
||||||
// 'name': (item, devices) =>{
|
|
||||||
// let name = item.name;
|
|
||||||
// if (item.isSwitchSection) {
|
|
||||||
// const swchList = devices['switchList'];
|
|
||||||
// const swch = swchList.find(elem => { return item.relSwitchCode == elem.code; });
|
|
||||||
// if (swch) {
|
|
||||||
// if (item.code == swch.sectionACode) {
|
|
||||||
// name = `${name} (${swch.name}-A)`;
|
|
||||||
// } else if (item.code == swch.sectionBCode) {
|
|
||||||
// name = `${name} (${swch.name}-B)`;
|
|
||||||
// } else if (item.code == swch.sectionCCode) {
|
|
||||||
// name = `${name} (${swch.name}-C)`;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return name;
|
|
||||||
// },
|
|
||||||
// 'code': item => {
|
|
||||||
// return item.code;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
|
|
||||||
// return new Promise((resolve, reject) => {
|
|
||||||
// const result = {
|
|
||||||
// base: []
|
|
||||||
// };
|
|
||||||
// const obj = {};
|
|
||||||
// const list = ['graphData', 'logicData'];
|
|
||||||
// for (const i in data) {
|
|
||||||
// if (list.includes(i)) {
|
|
||||||
// for (const v in data[i]) {
|
|
||||||
// if (data[i][v].length) {
|
|
||||||
// if (mapProps[v]) {
|
|
||||||
// const list = [];
|
|
||||||
// data[i][v].forEach(device => {
|
|
||||||
// if (mapProps[v].filter(device)) {
|
|
||||||
// const obj = {};
|
|
||||||
// Object.keys(mapProps[v].propList || []).forEach(key => {
|
|
||||||
// obj[key] = mapProps[v].propList[key](device, data[i]);
|
|
||||||
// });
|
|
||||||
// list.push(obj);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// result[v] = list;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// } else if (data[i] instanceof Object || typeof data[i] != 'object') {
|
|
||||||
// obj[i] = data[i];
|
|
||||||
// } else if (data[i] instanceof Array) {
|
|
||||||
// if (data[i].length) {
|
|
||||||
// obj[i] = [...data[i]];
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// result.base.push(obj);
|
|
||||||
// resolve(result);
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
Reference in New Issue
Block a user