From 8094e20ba425c520704a9bfc49cf1323a886f37a Mon Sep 17 00:00:00 2001
From: Gary Gu <garygu@Garydebijibendiannao.local>
Date: Wed, 28 May 2025 16:47:04 +0800
Subject: [PATCH] fix: 优化逻辑
---
src/Dashboard.vue | 250 ++++++++++++++++++++++++++-----------------------
1 files changed, 132 insertions(+), 118 deletions(-)
diff --git a/src/Dashboard.vue b/src/Dashboard.vue
index 3bd3d56..c7a3d29 100644
--- a/src/Dashboard.vue
+++ b/src/Dashboard.vue
@@ -2,7 +2,7 @@
* @Author: gjj Ganjj@probim.com.cn
* @Date: 2025-02-14 14:32:17
* @LastEditors: gjj Ganjj@probim.com.cn
- * @LastEditTime: 2025-02-24 17:30:13
+ * @LastEditTime: 2025-02-25 15:38:05
* @FilePath: \北京交通大学\src\Dashboard.vue
-->
<!-- eslint-disable vue/no-textarea-mustache -->
@@ -15,161 +15,175 @@
backgroundImage: `url(${backgroundImage})`,
backgroundRepeat: 'no-repeat',
backgroundPosition: 'center center',
- backgroundSize: 'cover'
+ backgroundSize: 'cover',
}"
>
<!--头部-->
- <app-header class="absolute z-[100] top-0 left-0 right-0" :selected-id="currentProjectId" />
-
-
-
- <!--全屏、切换地图-->
- <!--<div class="absolute z-[50] top-20 left-4 flex space-x-3">
- <fullscreen-button />
- <switch-map mapType="gis" @changeMap="onChangeMap" />
- </div>-->
-
-
+ <app-header class="absolute z-[100] top-0 left-0 right-0" :selected-id="currentProjectId" @onHomeClick="switchView" @onSelectChange="onSelectChange" />
<!--页面内容-->
<div class="content-wrapper px-[22px] py-[10px] absolute inset-0 top-[80px] flex gap-[20px]">
<div class="flex-1 min-w-0">
<!-- 左侧模块 -->
<div class="w-full h-full">
- <project-view/>
+ <project-view v-if="isReady" />
</div>
</div>
<div class="flex-1 min-w-0">
<!-- 中间模块 -->
<div class="w-full h-full">
- <equipment-view/>
+ <equipment-view :selected-id="selectedId" v-if="isReady" />
</div>
</div>
<div class="w-[1080px]">
<!-- 右侧模块 -->
<div class="w-full h-full">
- <Home/>
+ <Home v-if="isReady" :selected-id="selectedId" />
</div>
</div>
</div>
+ <!-- <div class="absolute inset-0 top-[80px] flex" v-if="clickTab === 'xietong'">
+ <iframe :src="iframeSrc" class="xieTongIframe" frameborder='0'></iframe>
+ </div>-->
<!--multiverse渲染容器
<div id="renderDom" class="absolute z-[40] top-0 bottom-0 left-0 right-0 w-full h-full"></div>-->
-
-
</main>
</template>
<script>
-import Vue from "vue";
-import { mapGetters } from "vuex";
-import Header from "./components/Header.vue";
-import FullscreenButton from "./components/FullScreenButton.vue";
-import SwitchMap from "./components/SwitchMap.vue";
-import Home from "./views/Home.vue";
-import ProjectView from "./views/ProjectView.vue";
-import { sceneJSON } from "./sceneJSON.js";
-import EquipmentView from "./views/EquipmentView.vue";
-import dayjs from "dayjs";
-import "dayjs/locale/zh-cn";
-import relativeTime from "dayjs/plugin/relativeTime";
-import { HomeAPI } from "./api/home";
-dayjs.locale("zh-cn");
-dayjs.extend(relativeTime);
-Vue.prototype.$dayjs = dayjs;
+ import Vue from "vue";
+ import { mapGetters } from "vuex";
+ import Header from "./components/Header.vue";
+ import Home from "./views/Home.vue";
+ import ProjectView from "./views/ProjectView.vue";
+ import { sceneJSON } from "./sceneJSON.js";
+ import EquipmentView from "./views/EquipmentView.vue";
+ import dayjs from "dayjs";
+ import "dayjs/locale/zh-cn";
+ import relativeTime from "dayjs/plugin/relativeTime";
+ import { HomeAPI } from "./api/home";
+ dayjs.locale("zh-cn");
+ dayjs.extend(relativeTime);
+ Vue.prototype.$dayjs = dayjs;
-import * as echarts from "echarts";
-Vue.prototype.$echarts = echarts;
+ import * as echarts from "echarts";
+ Vue.prototype.$echarts = echarts;
-import { nanoid } from "nanoid";
-Vue.prototype.$nanoid = nanoid;
+ import { nanoid } from "nanoid";
+ Vue.prototype.$nanoid = nanoid;
-export default {
- name: "Dashboard",
- components: {
- "app-header": Header,
- "fullscreen-button": FullscreenButton,
- "switch-map": SwitchMap,
- "Home": Home,
- "project-view": ProjectView,
- "equipment-view": EquipmentView
- },
- data() {
- return {
- backgroundImage: new URL('@/assets/images/backgrounds/screen.png', import.meta.url).href,
- currentProjectId: '1c179617-a7d9-4243-b813-84fa55a17ce7'
- };
- },
- computed: {
- ...mapGetters("common", [])
- },
- watch: {
- },
- mounted() {
- this.getLoginInfo();
- },
- beforeDestroy() {
- this.resetEngineRelated();
- },
- methods: {
- //重置引擎相关的东西
- resetEngineRelated() {
- window.scene = window.underlay = null;
+ export default {
+ name: "Dashboard",
+ components: {
+ "app-header": Header,
+ Home: Home,
+ "project-view": ProjectView,
+ "equipment-view": EquipmentView,
},
- //响应切换地图
- onChangeMap(item) {
- if (window.scene && window.underlay) {
- const u = window.underlay;
- const building = window.scene.findFeature("3DBuilding");
- switch (item.id) {
- case "pic": {
- if (building) {
- building.visible = false;
- }
- u.change("satellite"); //这样需要将本地资源放在工程内
- // u.url = "http://multiverse.vothing.com/ref/style/satellite.json";
- // // 加载显示底图
- // u.load();
+ data() {
+ return {
+ backgroundImage: new URL("@/assets/images/backgrounds/screen.png", import.meta.url).href,
+ currentProjectId: "1c179617-a7d9-4243-b813-84fa55a17ce7",
+ isReady: false,
+ clickTab: "home",
+ iframeSrc: window.ProjectConfig.xieTongIframeSrc,
+ selectedId: "",
+ };
+ },
+ computed: {
+ ...mapGetters("common", []),
+ },
+ watch: {},
+ mounted() {
+ this.getLoginInfo();
+ },
+ beforeDestroy() {
+ this.resetEngineRelated();
+ },
+ methods: {
+ onSelectChange(val) {
+ this.selectedId = val;
+ console.log("onSelectChange", val);
+ },
+ /**
+ * 切换视图
+ * @param val
+ */
+ switchView(val) {
+ switch (val) {
+ case "xietong":
+ window.open(window.ProjectConfig.xieTongIframeSrc, "_blank");
break;
- }
- case "gis": {
- if (building) {
- building.visible = true;
- }
- u.change("darkblue"); //这样需要将本地资源放在工程内
- // u.url = "http://multiverse.vothing.com/ref/style/darkblue.json";
- // // 加载显示底图
- // u.load();
+ case "zhihui":
+ window.open("http://beijiaodaxiongan.zhihuibuild.com/#/autologin?next=", "_blank");
break;
+ }
+ },
+ //重置引擎相关的东西
+ resetEngineRelated() {
+ window.scene = window.underlay = null;
+ },
+ //响应切换地图
+ onChangeMap(item) {
+ if (window.scene && window.underlay) {
+ const u = window.underlay;
+ const building = window.scene.findFeature("3DBuilding");
+ switch (item.id) {
+ case "pic": {
+ if (building) {
+ building.visible = false;
+ }
+ u.change("satellite"); //这样需要将本地资源放在工程内
+ // u.url = "http://multiverse.vothing.com/ref/style/satellite.json";
+ // // 加载显示底图
+ // u.load();
+ break;
+ }
+ case "gis": {
+ if (building) {
+ building.visible = true;
+ }
+ u.change("darkblue"); //这样需要将本地资源放在工程内
+ // u.url = "http://multiverse.vothing.com/ref/style/darkblue.json";
+ // // 加载显示底图
+ // u.load();
+ break;
+ }
}
}
- }
- },
- getLoginInfo() {
- const data = {
- "UserName": "JSC",
- "Password": "JSC@jsc123",
- "IfSingleLogin": "",
- }
- HomeAPI.WhLogin(data).then(res => {
- console.log(res);
- if(res.Ret === 1) {
- const result = res.Data
- window.localStorage.setItem("token", result.token)
- console.log(result);
- }
-
- });
- },
+ },
+ getLoginInfo() {
+ this.isReady = true;
+ const data = {
+ UserName: "JSC",
+ Password: "JSC@jsc123",
+ IfSingleLogin: "",
+ };
+ HomeAPI.WhLogin(data).then((res) => {
+ console.log(res);
+ if (res.Ret === 1) {
+ const result = res.Data;
+ window.localStorage.setItem("token", result.token);
+ console.log(result);
+ }
+ });
+ },
- //设置字体颜色
- cellStyle(row, _column, _rowIndex, _columnIndex) {
- // console.log("row", row);
- if (row.column.label === "状态" && row.row.status === "未处置") {
- return "color:#EF424E";
- }
+ //设置字体颜色
+ cellStyle(row, _column, _rowIndex, _columnIndex) {
+ // console.log("row", row);
+ if (row.column.label === "状态" && row.row.status === "未处置") {
+ return "color:#EF424E";
+ }
+ },
},
- },
-};
+ };
</script>
+<style lang="scss" scoped>
+ .xieTongIframe {
+ width: 100%;
+ height: 100%;
+ }
+</style>
--
Gitblit v1.9.3