Prechádzať zdrojové kódy

添加多模式仿真页面

guolei 1 rok pred
rodič
commit
7e50f749bd

+ 19 - 54
package-lock.json

@@ -18751,15 +18751,6 @@
       "resolved": "https://registry.npmmirror.com/three-js-csg/-/three-js-csg-72.0.0.tgz",
       "integrity": "sha512-Fr2pWWaHN1PPgjVsA7P2VZOHrMMXebQmJlasxGYebbSwURRwwi/vlayI69D+3qW39eNXQ6j+iO1VEOVC41mVFQ=="
     },
-    "node_modules/three-mesh-bvh": {
-      "version": "0.5.24",
-      "resolved": "https://registry.npmmirror.com/three-mesh-bvh/-/three-mesh-bvh-0.5.24.tgz",
-      "integrity": "sha512-VTIgfjz8aFoPKTQoMIQQv9jJD4ybFRZuKKE1/kqy78FQcuHQ0+iIWv7C5cSb2inlvs7bNMVY3yRx3RXGZfrvzQ==",
-      "peer": true,
-      "peerDependencies": {
-        "three": ">= 0.123.0"
-      }
-    },
     "node_modules/three-obj-mtl-loader": {
       "version": "1.0.3",
       "resolved": "https://registry.npmmirror.com/three-obj-mtl-loader/-/three-obj-mtl-loader-1.0.3.tgz",
@@ -21370,8 +21361,7 @@
       "version": "7.21.0-placeholder-for-preset-env.2",
       "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
       "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
-      "dev": true,
-      "requires": {}
+      "dev": true
     },
     "@babel/plugin-proposal-unicode-property-regex": {
       "version": "7.18.6",
@@ -22865,8 +22855,7 @@
           "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
           "integrity": "sha512-ZFztHzVRdGLAzJmpUT9LNFLe1YiVOEylcaNpEutM26PVTCtOD919IMfD01CgbRouB42Dd9atjx1HseC15DgOZA==",
           "dev": true,
-          "optional": true,
-          "requires": {}
+          "optional": true
         },
         "ansi-regex": {
           "version": "3.0.1",
@@ -23408,8 +23397,7 @@
       "version": "1.1.2",
       "resolved": "https://registry.npmmirror.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz",
       "integrity": "sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==",
-      "dev": true,
-      "requires": {}
+      "dev": true
     },
     "@vue/web-component-wrapper": {
       "version": "1.3.0",
@@ -23477,32 +23465,27 @@
     "@wangeditor/editor-for-vue": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-1.0.2.tgz",
-      "integrity": "sha512-BOENvAXJVtVXlE2X50AAvjV82YlCUeu5cbeR0cvEQHQjYtiVnJtq7HSoj85r2kTgGouI5OrpJG9BBEjSjUSPyA==",
-      "requires": {}
+      "integrity": "sha512-BOENvAXJVtVXlE2X50AAvjV82YlCUeu5cbeR0cvEQHQjYtiVnJtq7HSoj85r2kTgGouI5OrpJG9BBEjSjUSPyA=="
     },
     "@wangeditor/list-module": {
       "version": "1.0.5",
       "resolved": "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz",
-      "integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==",
-      "requires": {}
+      "integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ=="
     },
     "@wangeditor/table-module": {
       "version": "1.1.4",
       "resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz",
-      "integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==",
-      "requires": {}
+      "integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w=="
     },
     "@wangeditor/upload-image-module": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz",
-      "integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==",
-      "requires": {}
+      "integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA=="
     },
     "@wangeditor/video-module": {
       "version": "1.1.4",
       "resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz",
-      "integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==",
-      "requires": {}
+      "integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg=="
     },
     "@webassemblyjs/ast": {
       "version": "1.9.0",
@@ -23711,8 +23694,7 @@
       "version": "5.3.2",
       "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
       "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
-      "dev": true,
-      "requires": {}
+      "dev": true
     },
     "acorn-walk": {
       "version": "6.2.0",
@@ -23759,14 +23741,12 @@
     "ajv-errors": {
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/ajv-errors/-/ajv-errors-1.0.1.tgz",
-      "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
-      "requires": {}
+      "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ=="
     },
     "ajv-keywords": {
       "version": "3.5.2",
       "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
-      "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
-      "requires": {}
+      "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
     },
     "alphanum-sort": {
       "version": "1.0.2",
@@ -24458,8 +24438,7 @@
     "bootstrap": {
       "version": "4.6.2",
       "resolved": "https://registry.npmmirror.com/bootstrap/-/bootstrap-4.6.2.tgz",
-      "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==",
-      "requires": {}
+      "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ=="
     },
     "brace-expansion": {
       "version": "1.1.11",
@@ -27885,8 +27864,7 @@
     "fullcalendar": {
       "version": "3.10.1",
       "resolved": "https://registry.npmmirror.com/fullcalendar/-/fullcalendar-3.10.1.tgz",
-      "integrity": "sha512-E0ioaHVmwdS4es8pNTUNva7505wPkUMFdn9JGFLYo+J12ARhN3zDBwoPj2DfB8rL7Yc1sSve+FqDHC3s2SZ7Fw==",
-      "requires": {}
+      "integrity": "sha512-E0ioaHVmwdS4es8pNTUNva7505wPkUMFdn9JGFLYo+J12ARhN3zDBwoPj2DfB8rL7Yc1sSve+FqDHC3s2SZ7Fw=="
     },
     "function-bind": {
       "version": "1.1.2",
@@ -36213,32 +36191,22 @@
     "three-bvh-csg": {
       "version": "0.0.5",
       "resolved": "https://registry.npmmirror.com/three-bvh-csg/-/three-bvh-csg-0.0.5.tgz",
-      "integrity": "sha512-gxqmaV3HlGHUGB857AV8oLoNxx5Q0T7io1DUs5nrCwmmFqjWZT3a8ue7WapE394wY8awFVAMr+YvdSrzqswpFA==",
-      "requires": {}
+      "integrity": "sha512-gxqmaV3HlGHUGB857AV8oLoNxx5Q0T7io1DUs5nrCwmmFqjWZT3a8ue7WapE394wY8awFVAMr+YvdSrzqswpFA=="
     },
     "three-css2drender": {
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/three-css2drender/-/three-css2drender-1.0.0.tgz",
-      "integrity": "sha512-redDCSBDvgxiJIm6EDT8WO5WJTVg5gUEy/vjtAgJa/zX4peEUnZ8K+mXo6v94EudbnuI5h48/hQo9NExf04ENg==",
-      "requires": {}
+      "integrity": "sha512-redDCSBDvgxiJIm6EDT8WO5WJTVg5gUEy/vjtAgJa/zX4peEUnZ8K+mXo6v94EudbnuI5h48/hQo9NExf04ENg=="
     },
     "three-js-csg": {
       "version": "72.0.0",
       "resolved": "https://registry.npmmirror.com/three-js-csg/-/three-js-csg-72.0.0.tgz",
       "integrity": "sha512-Fr2pWWaHN1PPgjVsA7P2VZOHrMMXebQmJlasxGYebbSwURRwwi/vlayI69D+3qW39eNXQ6j+iO1VEOVC41mVFQ=="
     },
-    "three-mesh-bvh": {
-      "version": "0.5.24",
-      "resolved": "https://registry.npmmirror.com/three-mesh-bvh/-/three-mesh-bvh-0.5.24.tgz",
-      "integrity": "sha512-VTIgfjz8aFoPKTQoMIQQv9jJD4ybFRZuKKE1/kqy78FQcuHQ0+iIWv7C5cSb2inlvs7bNMVY3yRx3RXGZfrvzQ==",
-      "peer": true,
-      "requires": {}
-    },
     "three-obj-mtl-loader": {
       "version": "1.0.3",
       "resolved": "https://registry.npmmirror.com/three-obj-mtl-loader/-/three-obj-mtl-loader-1.0.3.tgz",
-      "integrity": "sha512-0z7BfyG6vYPY9RvxJvL4rq8PbNrF42Kn4zxeqTfeDzJN++2oKbtCQhxHs5vLULnDuCRTEyDFf5TYvO+1vnJ7KQ==",
-      "requires": {}
+      "integrity": "sha512-0z7BfyG6vYPY9RvxJvL4rq8PbNrF42Kn4zxeqTfeDzJN++2oKbtCQhxHs5vLULnDuCRTEyDFf5TYvO+1vnJ7KQ=="
     },
     "throttle-debounce": {
       "version": "1.1.0",
@@ -36920,8 +36888,7 @@
     "vue-axios": {
       "version": "2.1.5",
       "resolved": "https://registry.npmmirror.com/vue-axios/-/vue-axios-2.1.5.tgz",
-      "integrity": "sha512-th5xVbInVoyIoe+qY+9GCflEVezxAvztD4xpFF39SRQYqpoKD2qkmX8yv08jJG9a2SgNOCjirjJGSwg/wTrbmA==",
-      "requires": {}
+      "integrity": "sha512-th5xVbInVoyIoe+qY+9GCflEVezxAvztD4xpFF39SRQYqpoKD2qkmX8yv08jJG9a2SgNOCjirjJGSwg/wTrbmA=="
     },
     "vue-cli-plugin-style-resources-loader": {
       "version": "0.1.5",
@@ -37085,8 +37052,7 @@
     "vuex": {
       "version": "3.6.2",
       "resolved": "https://registry.npmmirror.com/vuex/-/vuex-3.6.2.tgz",
-      "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==",
-      "requires": {}
+      "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw=="
     },
     "watchpack": {
       "version": "1.7.5",
@@ -37842,8 +37808,7 @@
       "version": "7.5.9",
       "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz",
       "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
-      "dev": true,
-      "requires": {}
+      "dev": true
     },
     "xlsx": {
       "version": "0.16.9",

+ 13 - 0
src/axios/filter.js

@@ -75,6 +75,19 @@ axios.interceptors.request.use(function (config) {
 });
 // 添加响应拦截器
 axios.interceptors.response.use(function (response) {
+	console.log(response)
+	if(response.config.url.includes("/simulation/resource/server/menu/getMyMenuTree")){
+		response.data.info[3].children.push({
+			"id": "d75a9d044eec4dc7b9133256c7e976af",
+			"name": "多模式仿真",
+			"router": "/multimodeSimulation",
+			"icon": null,
+			"sort": 3,
+			"parentId": "268190b28633425da0744966976c4e22",
+			"visible": "1",
+			"children": null
+		})
+	}
     // 对响应数据处理
     tryHideFullScreenLoading();
     if (response && (response.status == 200)) {

+ 0 - 1
src/router/filter.js

@@ -11,7 +11,6 @@ Router.prototype.push = function push(location) {
 
 // http://localhost:8082/?code=1&ticket=1
 router.beforeEach(async (to, from, next) => {
-
     let {
         code,
         ticket

+ 10 - 1
src/router/workManagement.js

@@ -49,7 +49,16 @@ export default [{
         },
         component: () => import("@/views/workManagement/manualRunProjectDetail")
     },
-
+	{
+	    path: "/multimodeSimulation",
+	    name: "multimodeSimulation",
+	    meta: {
+	        tabname: "场景编辑",
+	        menuKind: "workManagement",
+	        login: true
+	    },
+	    component: () => import("@/views/workManagement/multimodeSimulation")
+	},
     {
         path: "/autoRunProjectList",
         name: "autoRunProjectList",

+ 170 - 0
src/views/workManagement/multimodeSimulation.vue

@@ -0,0 +1,170 @@
+<template>
+	<div class="container">
+		<div class="select-map">
+			地图选择:
+			<el-select class="select-content" v-model="value" placeholder="请选择">
+				<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+				</el-option>
+			</el-select>
+		</div>
+		<div class="content">
+			<div class="map"></div>
+			<div class="table">
+				<div class="table-operate">
+					<el-button class="btn" type="primary">添加</el-button>
+					<el-button class="btn" type="info">设为仿真视角</el-button>
+				</div>
+				<el-table class="table-content" ref="multipleTable" :data="tableData" tooltip-effect="dark"
+					style="width: 100%" @selection-change="handleSelectionChange">
+					<el-table-column type="selection" width="55">
+					</el-table-column>
+					<el-table-column label="选择车辆" width="120">
+						<template slot-scope="scope">{{ scope.row.date }}</template>
+					</el-table-column>
+					<el-table-column prop="name" label="选择算法" width="120">
+					</el-table-column>
+					<el-table-column prop="address" label="选择轨迹" show-overflow-tooltip>
+					</el-table-column>
+					<el-table-column label="操作">
+						<template slot-scope="scope">
+							<el-button class="mini-btn" size="mini">编辑</el-button>
+							<el-button size="mini-btn" type="danger">删除</el-button>
+						</template>
+					</el-table-column>
+				</el-table>
+				<div class="block">
+				  <el-pagination
+				    layout="prev, pager, next"
+				    :total="1000">
+				  </el-pagination>
+				</div>
+			</div>
+		</div>
+		<div class="operate">
+			<el-button class="btn" type="primary">保存</el-button>
+			<el-button class="btn" type="info">返回</el-button>
+		</div>
+	</div>
+</template>
+
+<script>
+	export default {
+		name: "MultimodeSimulation", // 工作管理
+		components: {},
+		data() {
+			return {
+				options: [{
+					value: '选项1',
+					label: '黄金糕'
+				}, {
+					value: '选项2',
+					label: '双皮奶'
+				}, {
+					value: '选项3',
+					label: '蚵仔煎'
+				}, {
+					value: '选项4',
+					label: '龙须面'
+				}, {
+					value: '选项5',
+					label: '北京烤鸭'
+				}],
+				value: '',
+				tableData: [{
+					date: '2016-05-03',
+					name: '王小虎',
+					address: '上海市普陀区金沙江路 1518 弄'
+				}, {
+					date: '2016-05-02',
+					name: '王小虎',
+					address: '上海市普陀区金沙江路 1518 弄'
+				}, {
+					date: '2016-05-04',
+					name: '王小虎',
+					address: '上海市普陀区金沙江路 1518 弄'
+				}, {
+					date: '2016-05-01',
+					name: '王小虎',
+					address: '上海市普陀区金沙江路 1518 弄'
+				}, {
+					date: '2016-05-08',
+					name: '王小虎',
+					address: '上海市普陀区金沙江路 1518 弄'
+				}],
+				multipleSelection: []
+
+			}
+
+		},
+
+		computed: {},
+
+		methods: {},
+
+		// mounted() {},
+	};
+</script>
+
+<style lang='less' scoped>
+	.container {
+		width: 100%;
+		display: flex;
+		flex-direction: column;
+	}
+
+	.select-map {
+		font-size: 1rem;
+		color: #333333;
+		letter-spacing: 0.05rem;
+		padding-left: 1rem;
+		width: 100%;
+		padding: 1rem;
+		background-color: red;
+	}
+
+	.content {
+		height: 36.5rem;
+		display: flex;
+		flex-direction: row;
+
+		.map {
+			flex: 1;
+			background-color: aqua;
+		}
+
+		.table {
+			flex: 1;
+			background-color: antiquewhite;
+		}
+
+	}
+
+
+	.table-operate {
+		height: 3.1rem;
+		display: flex;
+		flex-direction: row;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.table-content {
+		height: 30.5rem;
+	}
+
+	.operate {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.btn {
+		color: #FFFFFF;
+		height: 2.5rem;
+		margin: 1rem;
+	}
+	
+	::v-deep .mini-btn{
+		width: 1rem !important;
+	}
+</style>