This commit is contained in:
joylink_cuiweidong 2020-04-01 16:50:53 +08:00
commit bced2eb7d1
7 changed files with 353 additions and 316 deletions

View File

@ -1,87 +1,92 @@
{
"name": "vue-admin-template",
"version": "4.1.0",
"description": "A vue admin template with Element UI & axios & iconfont & permission control & lint",
"author": "Pan <panfree23@gmail.com>",
"license": "MIT",
"scripts": {
"dev": "vue-cli-service serve --open",
"build": "vue-cli-service build",
"test": "vue-cli-service build --mode staging",
"local": "vue-cli-service build --mode native",
"preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src",
"test:unit": "jest --clearCache && vue-cli-service test:unit",
"test:ci": "npm run lint && npm run test:unit",
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
},
"dependencies": {
"axios": "0.18.0",
"echarts": "^4.7.0",
"element-ui": "^2.12.0",
"file-saver": "^1.3.3",
"js-cookie": "2.2.0",
"js-md5": "^0.7.3",
"lodash": "^4.17.11",
"normalize.css": "7.0.0",
"nprogress": "^0.2.0",
"path-to-regexp": "2.4.0",
"qrcode.vue": "^1.6.2",
"script-loader": "^0.7.2",
"sessionstorage": "^0.1.0",
"sockjs-client": "^1.4.0",
"stompjs": "^2.3.3",
"storejs": "^1.0.25",
"three": "^0.107.0",
"vue": "^2.6.10",
"vue-i18n": "^8.12.0",
"vue-router": "^3.1.6",
"vuedraggable": "^2.23.2",
"vuex": "^3.1.0",
"xlsx": "^0.14.2",
"zrender": "^4.0.4"
},
"devDependencies": {
"@babel/core": "7.0.0",
"@babel/register": "7.0.0",
"@vue/cli-plugin-babel": "3.6.0",
"@vue/cli-plugin-eslint": "3.6.0",
"@vue/cli-plugin-unit-jest": "3.6.3",
"@vue/cli-service": "3.6.0",
"@vue/test-utils": "1.0.0-beta.29",
"autoprefixer": "^9.5.1",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "10.0.1",
"babel-jest": "23.6.0",
"babel-plugin-syntax-dynamic-import": "^6.18.0",
"babel-preset-env": "1.6.1",
"babel-preset-stage-2": "6.24.1",
"chalk": "2.4.2",
"compression-webpack-plugin": "^3.1.0",
"connect": "3.6.6",
"copy-webpack-plugin": "^4.5.2",
"eslint": "5.15.3",
"eslint-plugin-vue": "5.2.2",
"file-loader": "^3.0.1",
"html-webpack-plugin": "3.2.0",
"mockjs": "1.0.1-beta3",
"node-sass": "^4.9.0",
"runjs": "^4.3.2",
"sass-loader": "^7.1.0",
"script-ext-html-webpack-plugin": "2.1.3",
"script-loader": "^0.7.2",
"serve-static": "^1.13.2",
"svg-sprite-loader": "4.1.3",
"svgo": "1.2.2",
"vue-template-compiler": "2.6.11"
},
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
"name": "vue-admin-template",
"version": "4.1.0",
"description": "A vue admin template with Element UI & axios & iconfont & permission control & lint",
"author": "Pan <panfree23@gmail.com>",
"license": "MIT",
"scripts": {
"dev": "vue-cli-service serve --open",
"build": "vue-cli-service build",
"test": "vue-cli-service build --mode staging",
"local": "vue-cli-service build --mode native",
"preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src",
"test:unit": "jest --clearCache && vue-cli-service test:unit",
"test:ci": "npm run lint && npm run test:unit",
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
},
"dependencies": {
"axios": "0.18.0",
"echarts": "^4.7.0",
"element-ui": "^2.12.0",
"file-saver": "^1.3.3",
"js-cookie": "2.2.0",
"js-md5": "^0.7.3",
"lodash": "^4.17.11",
"normalize.css": "7.0.0",
"nprogress": "^0.2.0",
"path-to-regexp": "2.4.0",
"qrcode.vue": "^1.6.2",
"script-loader": "^0.7.2",
"sessionstorage": "^0.1.0",
"sockjs-client": "^1.4.0",
"stompjs": "^2.3.3",
"storejs": "^1.0.25",
"three": "^0.107.0",
"vue": "^2.6.10",
"vue-i18n": "^8.12.0",
"vue-router": "^3.1.6",
"vuedraggable": "^2.23.2",
"vuex": "^3.1.0",
"xlsx": "^0.14.2",
"zrender": "^4.0.4"
},
"devDependencies": {
"@babel/core": "7.0.0",
"@babel/register": "7.0.0",
"@vue/cli-plugin-babel": "3.6.0",
"@vue/cli-plugin-eslint": "3.6.0",
"@vue/cli-plugin-unit-jest": "3.6.3",
"@vue/cli-service": "3.6.0",
"@vue/test-utils": "1.0.0-beta.29",
"autoprefixer": "^9.5.1",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "10.0.1",
"babel-jest": "23.6.0",
"babel-plugin-syntax-dynamic-import": "^6.18.0",
"babel-preset-env": "1.6.1",
"babel-preset-stage-2": "6.24.1",
"chalk": "2.4.2",
"compression-webpack-plugin": "^3.1.0",
"connect": "3.6.6",
"copy-webpack-plugin": "^4.5.2",
"eslint": "5.15.3",
"eslint-plugin-vue": "5.2.2",
"file-loader": "^3.0.1",
"html-webpack-plugin": "3.2.0",
"mockjs": "1.0.1-beta3",
"node-sass": "^4.9.0",
"runjs": "^4.3.2",
"sass-loader": "^7.1.0",
"script-ext-html-webpack-plugin": "2.1.3",
"script-loader": "^0.7.2",
"serve-static": "^1.13.2",
"svg-sprite-loader": "4.1.3",
"svgo": "1.2.2",
"vue-template-compiler": "2.6.11"
},
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}

View File

@ -3,7 +3,7 @@ export default {
designhomePage: '公共地图',
designUserPage: '个人地图',
newDesignUserPage: '新版地图',
newDesignUserPage: '地图绘制',
mapManage: '地图管理',
skinManage: '皮肤管理',

View File

@ -369,7 +369,7 @@ export const asyncRouter = [
redirect: '/design/userlist/home',
component: Layout,
meta: {
roles: [admin, user]
roles: [admin]
},
children: [
{
@ -855,7 +855,7 @@ export const asyncRouter = [
redirect: '/design/usermap/home',
component: Layout,
meta: {
roles: [admin]
roles: [admin, user]
},
children: [
{

View File

@ -1,74 +1,74 @@
<template>
<div class="jl3dpassflow">
<div id="jl3d" class="jl3ddraw">
</div>
<div class="menutop">
<el-button-group>
<el-button type="primary" @click="switchrender">{{rendermode}}</el-button>
</el-button-group>
</div>
<div class="menudown">
<el-button-group>
<el-button type="primary" @click="back">退出</el-button>
</el-button-group>
</div>
</div>
<div class="jl3dpassflow">
<div id="jl3d" class="jl3ddraw" />
<div class="menutop">
<el-button-group>
<el-button type="primary" @click="switchrender">{{ rendermode }}</el-button>
</el-button-group>
</div>
<div class="menudown">
<el-button-group>
<el-button type="primary" @click="back">退出</el-button>
</el-button-group>
</div>
</div>
</template>
<script>
import Vue from 'vue';
import { Jl3dpassflow } from '@/jlmap3d/jl3dpassflow/jl3dpassflow.js';
import Vue from 'vue';
import { Jl3dpassflow } from '@/jlmap3d/jl3dpassflow/jl3dpassflow.js';
import { ProjectIcon } from '@/scripts/ConstDic';
export default {
name: 'Passflow',
components: {
export default {
name: 'passflow',
components: {
},
data() {
return {
jl3d: null,
rendermode:'监控视角',
renderswitch:true
};
},
computed: {
code() {
return this.$route.query.code;
}
},
watch: {
},
data() {
return {
jl3d: null,
rendermode:"监控视角",
renderswitch:true,
}
},
watch: {
},
created() {
document.querySelector("link[rel*='icon']").href = ProjectIcon[this.$route.query.project];
},
mounted() {
this.init();
},
},
computed: {
code() {
return this.$route.query.code;
}
},
mounted() {
this.init();
},
beforeDestroy() {
},
methods: {
init: function () {
// let mapdata = this.$store.state.socket.device;
let dom = document.getElementById('jl3d');
this.jl3d = new Jl3dpassflow(dom);
},
switchrender(){
if(this.renderswitch == true){
this.rendermode = "退出监控";
this.renderswitch = false;
this.jl3d.switchrender(this.renderswitch);
}else{
this.rendermode = "监控视角";
this.renderswitch = true;
this.jl3d.switchrender(this.renderswitch);
}
},
back(){
window.close();
},
}
}
beforeDestroy() {
},
methods: {
init: function () {
// let mapdata = this.$store.state.socket.device;
const dom = document.getElementById('jl3d');
this.jl3d = new Jl3dpassflow(dom);
},
switchrender() {
if (this.renderswitch == true) {
this.rendermode = '退出监控';
this.renderswitch = false;
this.jl3d.switchrender(this.renderswitch);
} else {
this.rendermode = '监控视角';
this.renderswitch = true;
this.jl3d.switchrender(this.renderswitch);
}
},
back() {
window.close();
}
}
};
</script>
<style scoped>
/* #jl3d {

View File

@ -6,15 +6,13 @@
<el-button-group>
<!-- <el-button type="primary" @click="raystand">站台选择</el-button>
<el-button type="primary" @click="raytrain">列车选择</el-button> -->
<el-button type="primary" @click="railmove">{{$t('jlmap3d.cameraRailMove')}}</el-button>
<el-button type="primary" @click="railmove">{{ $t('jlmap3d.cameraRailMove') }}</el-button>
<!-- <el-button type="primary" @click="raysection">{{$t('jlmap3d.trackCheck')}}</el-button>
<el-button type="primary" @click="rayswitch">{{$t('jlmap3d.turnoutCheck')}}</el-button>
<el-button type="primary" @click="raysignal">{{$t('jlmap3d.signalCheck')}}</el-button> -->
<el-button type="primary" @click="back">{{$t('global.exit')}}</el-button>
<el-button type="primary" @click="back">{{ $t('global.exit') }}</el-button>
</el-button-group>
</div>
<Jlmap3d-Menu :trainlist="trainlist" :stationlist="stationlist" @sstation="sstation" @strain="strain" />
@ -49,148 +47,150 @@ import { JLmap3d } from '@/jlmap3d/jl3dsimulation/jlmap3d.js';
import Jlmap3dMenu from '@/views/jlmap3d/simulation/show/menu';
import Jlmap3dConfig from '@/views/jlmap3d/simulation/show/configmenu';
import { ProjectIcon } from '@/scripts/ConstDic';
// import Jlmap3dMsg from '@/views/jlmap3d/show/msg';
var train;
export default {
name: 'Jl3dSimulation',
components: {
Jlmap3dMenu,
Jlmap3dConfig
// Jlmap3dMsg
// ShowProperty
},
data() {
return {
trainlist: null,
stationlist: null,
msgdata: null,
name: 'Jl3dSimulation',
components: {
Jlmap3dMenu,
Jlmap3dConfig
// Jlmap3dMsg
// ShowProperty
},
data() {
return {
trainlist: null,
stationlist: null,
msgdata: null,
training: {
id: '',
name: '',
remarks: ''
},
training: {
id: '',
name: '',
remarks: ''
},
mapdata: null,
jlmap3d: null,
selectmodel: null,
mapid:null,
group:null,
token:null
};
},
beforeDestroy() {
// console.log("destroy");
if (this.jlmap3d) {
this.jlmap3d.webwork.postMessage('off');
this.jlmap3d.webwork.terminate();
this.jlmap3d.jsonwebwork.terminate();
this.jlmap3d.dispose();
this.jlmap3d = null;
// this.$destroy();
}
},
mounted() {
window.updatemenulist = this.updatemenulist;
this.getParams();
mapdata: null,
jlmap3d: null,
selectmodel: null,
mapid:null,
group:null,
token:null
};
},
beforeDestroy() {
// console.log("destroy");
if (this.jlmap3d) {
this.jlmap3d.webwork.postMessage('off');
this.jlmap3d.webwork.terminate();
this.jlmap3d.jsonwebwork.terminate();
this.jlmap3d.dispose();
this.jlmap3d = null;
// this.$destroy();
}
},
created() {
document.querySelector("link[rel*='icon']").href = ProjectIcon[this.$route.query.project];
},
mounted() {
window.updatemenulist = this.updatemenulist;
this.getParams();
// console.log("");
},
methods: {
getParams:function(){
var routerParams = this.$route.query.group
this.mapid = this.$route.query.mapid;
this.group = this.$route.query.group;
this.token = this.$route.query.token;
this.init(this.mapid,this.group);
},
show: function (skinCode,group) {
if (this.jlmap3d == null) {
this.init(skinCode,group);
} else {
// this.jlmap3d.restart();
this.jlmap3d.eventon();
this.jlmap3d.animateon();
methods: {
getParams:function() {
var routerParams = this.$route.query.group;
this.mapid = this.$route.query.mapid;
this.group = this.$route.query.group;
this.token = this.$route.query.token;
this.init(this.mapid, this.group);
},
show: function (skinCode, group) {
if (this.jlmap3d == null) {
this.init(skinCode, group);
} else {
// this.jlmap3d.restart();
this.jlmap3d.eventon();
this.jlmap3d.animateon();
}
},
init: function (skinCode,group) {
const mapdata = this.$store.getters['map/map'];
const dom = document.getElementById('app');
let project = this.$route.query.project;
// console.log(project);
}
},
init: function (skinCode, group) {
const mapdata = this.$store.getters['map/map'];
const dom = document.getElementById('app');
const project = this.$route.query.project;
// console.log(project);
if (project) {
if(project){
this.jlmap3d = new JLmap3d(dom, mapdata, skinCode, this.$store, group, project);
} else {
this.jlmap3d = new JLmap3d(dom, mapdata, skinCode,this.$store,group,project);
}else{
this.jlmap3d = new JLmap3d(dom, mapdata, skinCode, this.$store, group, '');
}
this.jlmap3d.eventon();
},
raystand() {
this.jlmap3d.rayswitch('stand');
},
raytrain() {
this.jlmap3d.rayswitch('train');
},
raysection() {
this.jlmap3d.rayswitch('section');
},
raysignal() {
this.jlmap3d.rayswitch('signal');
},
rayswitch() {
this.jlmap3d.rayswitch('switch');
},
railmove() {
this.jlmap3d.camerarailmove();
},
showstationmsg(showtype) {
this.jlmap3d.showstationmsg(showtype);
},
showtrainmsg(showtype) {
this.jlmap3d.showtrainmsg(showtype);
},
updatemenulist(stationlist, trainlist) {
const stations = [];
for (const k in stationlist) {
stations.push(stationlist[k]);
}
const trains = [];
for (const k in trainlist) {
trains.push(trainlist[k]);
}
this.stationlist = stations;
this.trainlist = trains;
// console.log(this.stationlist);
},
this.jlmap3d = new JLmap3d(dom, mapdata, skinCode,this.$store,group,"");
}
this.jlmap3d.eventon();
},
raystand() {
this.jlmap3d.rayswitch('stand');
},
raytrain() {
this.jlmap3d.rayswitch('train');
},
raysection() {
this.jlmap3d.rayswitch('section');
},
raysignal() {
this.jlmap3d.rayswitch('signal');
},
rayswitch() {
this.jlmap3d.rayswitch('switch');
},
railmove() {
this.jlmap3d.camerarailmove();
},
showstationmsg(showtype) {
this.jlmap3d.showstationmsg(showtype);
},
showtrainmsg(showtype) {
this.jlmap3d.showtrainmsg(showtype);
},
updatemenulist(stationlist, trainlist) {
let stations = [];
for (let k in stationlist) {
stations.push(stationlist[k]);
}
let trains = [];
for (let k in trainlist) {
trains.push(trainlist[k]);
}
this.stationlist = stations;
this.trainlist = trains;
// console.log(this.stationlist);
},
sstation(changedata) {
this.jlmap3d.updatecamera(changedata.mesh, 'station');
},
strain(changedata) {
sstation(changedata) {
this.jlmap3d.updatecamera(changedata.mesh, 'station');
},
strain(changedata) {
if (changedata.dispose == false) {
this.jlmap3d.updatecamera(changedata, 'train');
}
if (changedata.dispose == false) {
this.jlmap3d.updatecamera(changedata, 'train');
}
},
},
back() {
window.close();
// this.$emit('showpanel');
// this.jlmap3d.eventoff();
// this.jlmap3d.animateoff();
// this.jlmap3d = null;
}
back() {
window.close();
// this.$emit('showpanel');
// this.jlmap3d.eventoff();
// this.jlmap3d.animateoff();
// this.jlmap3d = null;
}
}
}
};
</script>

View File

@ -190,6 +190,9 @@ export default {
},
isShowScheduling() {
return this.$route.query.prdType == '05';
},
project() {
return getSessionStorage('project');
}
},
watch: {
@ -508,7 +511,7 @@ export default {
mapid:this.mapId,
group:this.group,
token:getToken(),
project:getSessionStorage('project')
project: this.project
}
});
window.open(routeData.href, '_blank', 'noopener noreferrer');
@ -518,7 +521,8 @@ export default {
const routeData = this.$router.resolve({
path:'/jlmap3d/passengerflow',
query:{
mapid:this.mapId
mapid:this.mapId,
project: this.project
}
});
window.open(routeData.href, '_blank', 'noopener noreferrer');

View File

@ -20,6 +20,7 @@ import MapPublish from './publish';
import MapPublish3d from './publish3d';
import { mapGetters } from 'vuex';
import { saveMap } from '@/api/jmap/mapdraft';
import { superAdmin, admin } from '@/router/index_APP_TARGET';
export default {
name: 'MapOperateMenu',
@ -46,32 +47,6 @@ export default {
},
data() {
return {
menuMap: [
{
label: this.$t('map.updateObj'),
handler: this.updateObj
},
{
label: this.$t('map.updateObjAxis'),
handler: this.updateObjAxis
},
{
label: this.$t('map.saveAs'),
handler: this.saveAs
},
{
label: this.$t('map.deleteObj'),
handler: this.deleteObj
},
{
label: this.$t('map.jlmap3d'),
handler: this.jlmap3d
},
{
label: this.$t('map.publish3d'),
handler: this.publish3d
}
],
publishMapMenu: {
label: this.$t('map.publish'),
handler: this.publish
@ -95,15 +70,68 @@ export default {
hasRelease() {
return this.$store.state.user.roles.includes('04') ||
this.$store.state.user.roles.includes('05');
},
menuMap() {
if (this.$store.state.user.roles.includes(superAdmin) || this.$store.state.user.roles.includes(admin)) {
return [
{
label: this.$t('map.updateObj'),
handler: this.updateObj
},
{
label: this.$t('map.updateObjAxis'),
handler: this.updateObjAxis
},
{
label: this.$t('map.saveAs'),
handler: this.saveAs
},
{
label: this.$t('map.deleteObj'),
handler: this.deleteObj
},
{
label: this.$t('map.jlmap3d'),
handler: this.jlmap3d
},
{
label: this.$t('map.publish3d'),
handler: this.publish3d
},
{
label: this.$t('map.publish'),
handler: this.publish
}
];
} else {
return [
{
label: this.$t('map.updateObj'),
handler: this.updateObj
},
{
label: this.$t('map.updateObjAxis'),
handler: this.updateObjAxis
},
{
label: this.$t('map.saveAs'),
handler: this.saveAs
},
{
label: this.$t('map.deleteObj'),
handler: this.deleteObj
}
];
}
}
},
watch: {
'$store.state.menuOperation.menuCount': function (val) {
if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Map)) {
this.menu = [...this.menuMap];
if (this.hasRelease) {
this.menu.push(this.publishMapMenu);
}
// if (this.hasRelease) {
// this.menu.push(this.publishMapMenu);
// }
this.doShow(this.$store.state.menuOperation.menuPosition);
} else if (this.$store.getters['menuOperation/checkDialogIsOpen'](DeviceMenu.Cancel)) {
this.initCancelMenu();
@ -214,12 +242,12 @@ export default {
}).catch(() => {
});
},
publish3d(){
this.doClose();
this.doClose();
if (this.$refs && this.$refs.publish3d) {
this.$refs.publish3d.show();
}
publish3d() {
this.doClose();
this.doClose();
if (this.$refs && this.$refs.publish3d) {
this.$refs.publish3d.show();
}
},
jlmap3d() {
this.$emit('jlmap3d');