邓洁 : 大屏信息接口对接

This commit is contained in:
邓洁
2023-12-17 01:47:13 +08:00
parent 13e232d6f6
commit 2d413876d4
4 changed files with 45 additions and 32 deletions

View File

@@ -1,8 +1,16 @@
import request from '@/utils/request.js' import request from '@/utils/request.js'
//大屏获取设备信息
export const getLargeScreen = (tunnelId) => { export const getLargeScreen = (tunnelId) => {
return request({ return request({
url: `/tunnel/large/screen/equipment/${tunnelId}`, url: `/tunnel/large/screen/equipment/${tunnelId}`,
method: 'get' method: 'get'
}) })
} }
//大屏信息接口
export const getLargeScreenInfo = () => {
return request({
url: '/tunnel/large/screen/info',
method: 'get'
})
}

View File

@@ -39,7 +39,7 @@
import * as three from "three"; import * as three from "three";
import ThreeDScene from "./sceneClass/demo.js"; import ThreeDScene from "./sceneClass/demo.js";
import DevInfo from "./displayInfoComp/DevInfo.vue"; import DevInfo from "./displayInfoComp/DevInfo.vue";
import editDialog from "./editEquComp/editDialog.vue"; import EditDialog from "./editEquComp/editDialog.vue";
// 导入模模型加载器 // 导入模模型加载器
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
@@ -223,7 +223,7 @@ function handleCancel() {
} }
</script> </script>
<style lang="scss" scope> <style lang="scss" scoped>
#scene { #scene {
position: relative; position: relative;
height: 100%; height: 100%;

View File

@@ -11,24 +11,43 @@
const props = defineProps({ const props = defineProps({
modelValue: { modelValue: {
type: Number, type: Number,
default: 0, default: 0
},
list: {
type: Array,
default: []
}, },
}) })
watch(() => props.list, (now) => {
let newArr=[]
btnList.value.forEach((btnList) => {
now.forEach((item) => {
if (btnList.route==item) {
newArr.push(btnList)
}
})
})
btnList.value=newArr
}, {deep: true});
const emit = defineEmits(["update:modelValue", "select"]); const emit = defineEmits(["update:modelValue", "select"]);
const btnList = ref([ const btnList = ref([
{ {
route: '/site',
icon: 'sp_icon_zdgl.png', icon: 'sp_icon_zdgl.png',
name: '站点管理' name: '站点管理'
}, },
{ {
route: '/tunnel',
icon: 'sp_icon_sdgl.png', icon: 'sp_icon_sdgl.png',
name: '隧道管理' name: '隧道管理'
}, },
{ {
route: '/user',
icon: 'sp_icon_yhgl.png', icon: 'sp_icon_yhgl.png',
name: '用户管理' name: '用户管理'
}, },
{ {
route: '/system',
icon: 'sp_icon_xtgl.png', icon: 'sp_icon_xtgl.png',
name: '系统管理' name: '系统管理'
}, },

View File

@@ -1,7 +1,7 @@
<template> <template>
<div id="main"> <div id="main">
<div class="box-top"> <div class="box-top">
<manage-btn v-model="selectIndex" @select="manageSelect" /> <manage-btn v-model="selectIndex" @select="manageSelect" :list="routeList"/>
<div class="tunnel-title"></div> <div class="tunnel-title"></div>
<manage-length class="tunnel-length"></manage-length> <manage-length class="tunnel-length"></manage-length>
<div class="top-right"> <div class="top-right">
@@ -75,7 +75,7 @@
<el-carousel height="150px" type="card" ref="tunnelBtn" :autoplay="false"> <el-carousel height="150px" type="card" ref="tunnelBtn" :autoplay="false">
<div class="btn"> <div class="btn">
<el-carousel-item v-for="item in tunnelList" :key="item.value"> <el-carousel-item v-for="item in tunnelList" :key="item.value">
{{ item.name }} {{ item.label }}
</el-carousel-item> </el-carousel-item>
</div> </div>
</el-carousel> </el-carousel>
@@ -98,7 +98,7 @@ import { dateFormat } from "@/utils/date.js";
import { onMounted } from "vue"; import { onMounted } from "vue";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { useAuthStore } from "@/store/userstore.js"; import { useAuthStore } from "@/store/userstore.js";
import { getLargeScreen } from "@/api/largeScreen"; import { getLargeScreen,getLargeScreenInfo } from "@/api/largeScreen";
import {ElMessageBox} from "element-plus"; import {ElMessageBox} from "element-plus";
const authStore = useAuthStore(); const authStore = useAuthStore();
@@ -111,32 +111,8 @@ const currentSite = ref("松江站");
const currentUser = ref("admin"); const currentUser = ref("admin");
const currentDate = ref(dateFormat()); const currentDate = ref(dateFormat());
const tunnelBtn = ref(); const tunnelBtn = ref();
const tunnelList = ref([ const tunnelList = ref([]);
{ const routeList = ref([]);
value: 0,
name: "一号隧道",
},
{
value: 1,
name: "二号隧道",
},
{
value: 2,
name: "三号隧道",
},
{
value: 3,
name: "四号隧道",
},
{
value: 4,
name: "五号隧道",
},
{
value: 5,
name: "六号隧道",
},
]);
let socket = reactive(""); let socket = reactive("");
const serialNumber = ref("SC00DY00GH00ELBT"); const serialNumber = ref("SC00DY00GH00ELBT");
let token = getToken(); let token = getToken();
@@ -154,9 +130,19 @@ onMounted(() => {
nextTick(() => { nextTick(() => {
showFan.value = true; showFan.value = true;
}); });
getOtherInfo()
getScreenInfo(); getScreenInfo();
}); });
const getOtherInfo = async () => {
await getLargeScreenInfo().then((res) => {
if (res?.code === 1000) {
routeList.value=res.data.routeList
currentSite.value=res.data.siteOption[0].label
tunnelList.value=res.data.tunnelOption
}
});
};
const getScreenInfo = async () => { const getScreenInfo = async () => {
await getLargeScreen(1).then((res) => { await getLargeScreen(1).then((res) => {
if (res?.code === 1000) { if (res?.code === 1000) {