@@ -80,7 +80,7 @@ import {dateFormat} from "@/utils/date.js";
import {getToken} from "@/utils/auth";
import {useAuthStore} from "@/store/userstore.js";
import {getLargeScreen, getLargeScreenInfo, getTunnelBySiteId} from "@/api/largeScreen";
-import {ElMessage,ElMessageBox} from "element-plus";
+import {ElMessage, ElMessageBox} from "element-plus";
import {getUserInfo} from "@/api/login";
import {initSceneData} from "@/api/tunnelScene";
import {getSiteDetail} from "../../api/site";
@@ -128,7 +128,7 @@ const getUser = () => {
currentUserId.value = res.data.user.userId
})
}
-const getDefaultSite=(siteId)=>{
+const getDefaultSite = (siteId) => {
// console.log('siteList.value',siteList.value)
// getSiteDetail(siteId).then((res) => {
// console.log('res',res)
@@ -139,25 +139,25 @@ const getOtherInfo = () => {
if (res?.code === 1000) {
routeList.value = res.data.routeList
siteList.value = res.data.siteOption
- currentSiteId.value = res.data.siteOption[res.data.siteOption.length-1].value
- currentSite.value = res.data.siteOption[res.data.siteOption.length-1].label
- getTunnel(res.data.siteOption[res.data.siteOption.length-1].value)
+ currentSiteId.value = res.data.siteOption[res.data.siteOption.length - 1].value
+ currentSite.value = res.data.siteOption[res.data.siteOption.length - 1].label
+ getTunnel(res.data.siteOption[res.data.siteOption.length - 1].value)
}
});
};
const getScreenInfo = (id) => {
- if(id){
- tunnelId.value=id
+ if (id) {
+ tunnelId.value = id
getLargeScreen(id).then((res) => {
if (res?.code === 1000) {
largeScreenData.value = res.data;
- }else {
+ } else {
ElMessage.warning(res.msg)
}
});
initSceneData(id).then((res) => {
- tunnelLength.value=res.data.tunnelLength
- constructionLength.value=res.data.constructionLength
+ tunnelLength.value = res.data.tunnelLength
+ constructionLength.value = res.data.constructionLength
})
}
};
@@ -185,16 +185,15 @@ const changeTunnel = (e) => {
const manageSelect = (index) => {
console.log("首页点击-", index);
if (index == '站点管理') {
- if(currentUserId.value){
- router.push("/site"+'/'+currentUserId.value);
+ if (currentUserId.value) {
+ router.push("/site" + '/' + currentUserId.value);
}
} else if (index == '隧道管理') {
- console.log('无查看权限??',currentSiteId.value,currentUserId.value)
- // if(currentSiteId.value&¤tUserId.value){
- router.push("/tunnel/" + currentSiteId.value+'/i'+'/'+currentUserId.value);
- // }
+ if (currentSiteId.value && currentUserId.value) {
+ router.push("/tunnel/" + currentSiteId.value + '/i' + '/' + currentUserId.value);
+ }
} else if (index == '用户管理') {
- if(currentSiteId.value){
+ if (currentSiteId.value) {
router.push("/user/" + currentSiteId.value);
}
}
diff --git a/src/views/user/index.vue b/src/views/user/index.vue
index c9fe9f7..1b2849c 100644
--- a/src/views/user/index.vue
+++ b/src/views/user/index.vue
@@ -284,7 +284,7 @@ const handleSubmit = async (formInstance) => {
state:form.value.state,
userName: form.value.userName,
roleIds: [form.value.roleId],
- tunnelIds: form.value.tunnelIds
+ tunnelList: form.value.tunnelIds
}
if (title.value === '添加用户') {
await addUser(data).then(res => {
From 11f9de9389986e5482b84dabcaef6f754e9f0fd9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=82=93=E6=B4=81?= <209192278@qq.com>
Date: Fri, 29 Dec 2023 19:00:54 +0800
Subject: [PATCH 06/12] =?UTF-8?q?=E9=82=93=E6=B4=81:=20=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E7=94=A8=E6=88=B7bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/user/index.vue | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/views/user/index.vue b/src/views/user/index.vue
index 1b2849c..fbebeb0 100644
--- a/src/views/user/index.vue
+++ b/src/views/user/index.vue
@@ -297,7 +297,11 @@ const handleSubmit = async (formInstance) => {
}
})
} else {
- await editUser(data).then(res => {
+ const editData={
+ userId:form.value.userId,
+ ...data
+ }
+ await editUser(editData).then(res => {
if (res.code === 1000) {
getInfo()
isVisited.value = false
From e49c12635145e83053e284bbb85b6acf281e5de9 Mon Sep 17 00:00:00 2001
From: Hcat <2768237203@qq.com>
Date: Fri, 29 Dec 2023 21:18:48 +0800
Subject: [PATCH 07/12] =?UTF-8?q?=E9=A2=84=E8=A7=88=E5=88=9D=E5=A7=8B?=
=?UTF-8?q?=E5=8C=96+=E5=88=87=E6=8D=A2=E9=9A=A7=E9=81=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../content/tunnelScene/PreviewScene.vue | 105 ++++++++------
.../sceneClass/editEquipment/index.js | 128 ++++++++----------
.../sceneClass/previewTunnelInit/index.js | 9 +-
src/views/tunnel/index.vue | 70 ++++++----
4 files changed, 164 insertions(+), 148 deletions(-)
diff --git a/src/components/content/tunnelScene/PreviewScene.vue b/src/components/content/tunnelScene/PreviewScene.vue
index 46d8b06..7435789 100644
--- a/src/components/content/tunnelScene/PreviewScene.vue
+++ b/src/components/content/tunnelScene/PreviewScene.vue
@@ -47,15 +47,14 @@ import {
import { OBJLoader } from "three/examples/jsm/loaders/OBJLoader";
import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader";
-import { onMounted, reactive, ref } from "vue";
+import { onMounted, reactive, ref, toRaw, getCurrentInstance } from "vue";
import { ElMessage } from "element-plus";
-import { useModelSceneStore } from "@/store/modelSceneStore";
-import { toRaw } from "vue"
+import { deleteEquipment, initData } from "./request";
// 获取html标签跟随组件dom
const content = ref(null);
const info = ref(null);
const edit = ref(null);
-const store = useModelSceneStore();
+let modelList = ref(null);
let demo; //定义demo全局变量
// const loader = new OBJLoader();
const loader = new OBJLoader();
@@ -69,6 +68,16 @@ const params = defineProps(["isedit", "tunnelId"]); //接收参数看是不是
let isedit = ref(params.isedit)
+// watch(
+// () => params.tunnelId,
+// (now) => {
+// params.tunnelId = now
+// console.log(params.tunnelId);
+
+// },
+// { deep: true }
+// )
+
onMounted(handleMounted);
// 挂载后回调
async function handleMounted() {
@@ -89,7 +98,7 @@ async function handleMounted() {
watch(
() => params.tunnelId,
async () => {
- const text = await store.initData(params.tunnelId);
+ const text = await initData(params.tunnelId);
}
);
// 初始化设备模型
@@ -100,14 +109,38 @@ async function handleMounted() {
map.set("equ_sensors", await loadModel("/devicesModel/sensors.obj"));
// 给对象初加载设备模型
demo.initDevicesModel(map);
- const equipmentList = await store.getEquipmentList();
- demo.previewtunnelModeInit(equipmentList);
- // previewEquInfProcess(equipmentList)
+ // const equipmentList = await store.getEquipmentList();
+ modelList.value = await initData(params.tunnelId);
+ // console.log("init", params.tunnelId);
+ demo.previewtunnelModeInit(modelList.value);
+ watch(
+ () => params.tunnelId,
+ (now) => {
+ params.tunnelId = now
+ // console.log(params.tunnelId);
+ checkTunnelInit(modelList.value)
+ demo.previewtunnelModeInit(modelList.value);
+ },
+ { deep: true }
+ )
+ // demo.previewtunnelModeInit(equipmentList);
+ // previewEquInfProcess(modelList.value, targetP.value)
} catch (err) {
console.log(err);
}
}
+
+function checkTunnelInit(equipmentList) {
+ equipmentList.forEach((item) => {
+ let equipment = toRaw(item)
+ console.log("我要清理掉之前的设备!!!");
+ console.log(equipment);
+ console.log(demo.scene.getObjectByName(equipment.position));
+ demo.removeEquipment(demo.scene.getObjectByName(equipment.position));
+ });
+}
+
// 每个模型加载回调
function loadModel(path) {
return new Promise((resolve, reject) => {
@@ -163,46 +196,31 @@ function lClickCallback(demo) {
}
let pointNum = ref(0);
-let targetP;
+let targetP = ref({});
// 右键点击附着点后调函数
function rClickCallback(demo) {
function editDev(targetPoint = null) {
- hasDevice = targetPoint.hasDevice;
- targetP = targetPoint;
- //点击之后马上调用这个函数,变成回调,然后进行处理处理在传给preview表单
- const equipmentList = store.getEquipmentList().then((result) => {
- previewEquInfProcess(result, targetP)
- });
+ hasDevice.value = targetPoint.hasDevice;
+ targetP.value = targetPoint;
+ const equipmentList = initData(params.tunnelId)
+ equipmentList.then((result) => {
+ previewEquInfProcess(result, targetP.value)
+ })
pointNum.value = Number(
targetPoint.name.substring(
targetPoint.name.indexOf("_") + 1,
targetPoint.name.lastIndexOf("_")
) - 1
);
-
if (!targetPoint.info) return;
editDevInfo(targetPoint.info);
}
demo.addFunction("editDev", editDev);
-
}
// 添加设备
function handleAddEqu(formInfo) {
- if (!formInfo.equipmentType) {
- ElMessage({
- message: "请选择传感器!",
- type: "warning",
- });
- return;
- }
- //表单信息
- //这里利用处理请求
- demo.addEquipment(targetP, formInfo);
- ElMessage({
- message: "添加成功!",
- type: "success",
- });
+ demo.addEquipment(targetP.value, formInfo);
}
const centerDialogVisible = ref(false);
@@ -219,12 +237,22 @@ function handleRemoveEqu() {
}
// 对话框确认删除
function handleConfirmAddEqu() {
- demo.removeEquipment(targetP);
- centerDialogVisible.value = false;
- ElMessage({
- message: "删除成功!",
- type: "success",
- });
+ console.log("target:", targetP.value.info);
+ deleteEquipment(targetP.value.info.equipmentId, pointGap)
+ .then((res) => {
+ demo.removeEquipment(targetP.value);
+ centerDialogVisible.value = false;
+ ElMessage({
+ message: "删除成功!",
+ type: "success",
+ });
+ })
+ .catch((res) => {
+ ElMessage({
+ message: "删除失败!",
+ type: "warning",
+ });
+ });
}
// 处理取消关闭编辑框事件
function handleCancel() {
@@ -242,11 +270,10 @@ let equipmentValue = ref(0)
function previewEquInfProcess(equipmentList, targetP) {
for (const equipment of equipmentList) {
- // console.log(equipment);
if (equipment.position == targetP.name) {
equipmentType.value = equipment.equipmentType
//需要将获取到的设备列表进行序列化
- equipmentName.value = toRaw(equipment.chooseEquipment).label
+ equipmentName.value = equipment.equipmentName
equipmentValue.value = equipment.threshold
if (equipmentType.value == 'frequency') {
equipmentType.value = '风机'
diff --git a/src/components/content/tunnelScene/sceneClass/editEquipment/index.js b/src/components/content/tunnelScene/sceneClass/editEquipment/index.js
index 372fc45..070fdfe 100644
--- a/src/components/content/tunnelScene/sceneClass/editEquipment/index.js
+++ b/src/components/content/tunnelScene/sceneClass/editEquipment/index.js
@@ -36,7 +36,7 @@ function addEquipment(targetPoint, formInfo) {
// function handleValveEqu(targetPoint, equipmentInfo) {
// }
-
+let allline = new Array
// 其他传感器
function handleOtherEqu(targetPoint, equipmentInfo) {
const equMesh = this.equMap.get("equ_sensors").clone();
@@ -67,41 +67,24 @@ function handleOtherEqu(targetPoint, equipmentInfo) {
targetPoint.scale.set(0.03, 0.06, 0.05);
this.scene.add(equMesh);
targetPoint.visible = false;
- // targetPoint.hasWall = true;
- // //处理风压阀的代码片段
- // let lineIndex = targetPoint.name.slice(7, 9);
- // for (let line = Number(lineIndex); line <= 20; line++) {
- // if (line < 10) {
- // let wall = "wall_" + "0" + line;
- // this.scene.getObjectByName(wall).visible = true;
- // let point = "point_" + "00" + line + "_tc";
- // this.scene.getObjectByName(point).visible = false;
- // this.scene.getObjectByName(point).layers.set(-2);
- // if (this.scene.getObjectByName(point).hasDevice == true) {
- // let EquID = this.scene.getObjectByName(point).info.id;
- // this.scene.getObjectById(EquID).visible = false;
- // }
- // } else if (line >= 10) {
- // let wall = "wall_" + line;
- // this.scene.getObjectByName(wall).visible = true;
- // let point = "point_" + "0" + line + "_tc";
- // this.scene.getObjectByName(point).visible = false;
- // this.scene.getObjectByName(point).layers.set(-2);
- // if (this.scene.getObjectByName(point).hasDevice == true) {
- // let EquID = this.scene.getObjectByName(point).info.id;
- // this.scene.getObjectById(EquID).visible = false;
- // }
+ targetPoint.hasWall = true;
+ //处理风压阀的代码片段
+ let lineIndex = targetPoint.name.slice(7, 9)
+ if (allline.includes(Number(lineIndex))) {
+ allline.slice(array.indexOf(lineIndex), 1)
+ console.log('dadad');
+ } else {
+ allline.push(Number(lineIndex))
+ }
+ console.log(allline);
+ // console.log(allline);
+ // allline.forEach((item, index, array) => {
+ // if (array.includes(item)) {
+ // array.slice(array.indexOf(item), 1)
+ // array.slice(array.indexOf(item), 1)
+ // console.log(array);
// }
- // //处理21行的设备和附着点
- // let point = "point_" + "0" + 21 + "_tc";
- // this.scene.getObjectByName(point).visible = false;
- // this.scene.getObjectByName(point).layers.set(-2);
- // if (this.scene.getObjectByName(point).hasDevice == true) {
- // let EquID = this.scene.getObjectByName(point).info.id;
- // this.scene.getObjectById(EquID).visible = false;
- // }
- // }
- // this.scene.getObjectByName('wall_01').visible = true
+ // })
// console.log(this.scene);
// 保存该设备模型id,后期直接从附附着点进行删除
targetPoint.info = {
@@ -154,43 +137,44 @@ function handleFanEqu(
function removeEquipment(targetPoint) {
//删除设备这里需要再进行处理,就是根据附着点(附着点一定保存了当前添加设备的信息了)判断是不是分压阀,然后继续一样的隐藏
if (!targetPoint.hasDevice) return;
- if (targetPoint.hasWall == true) {
- let lineIndex = targetPoint.name.slice(7, 9);
- for (let line = Number(lineIndex); line <= 20; line++) {
- if (line < 10) {
- let wall = "wall_" + "0" + line;
- this.scene.getObjectByName(wall).visible = false;
- let point = "point_" + "00" + line + "_tc";
- console.log(this.scene.getObjectByName(point));
- this.scene.getObjectByName(point).visible = true;
- this.scene.getObjectByName(point).layers.set(0);
- if (this.scene.getObjectByName(point).hasDevice == true) {
- this.scene.getObjectByName(point).visible = false;
- let EquID = this.scene.getObjectByName(point).info.id;
- this.scene.getObjectById(EquID).visible = true;
- }
- } else if (line >= 10) {
- let wall = "wall_" + line;
- this.scene.getObjectByName(wall).visible = false;
- let point = "point_" + "0" + line + "_tc";
- this.scene.getObjectByName(point).visible = true;
- this.scene.getObjectByName(point).layers.set(0);
- if (this.scene.getObjectByName(point).hasDevice == true) {
- this.scene.getObjectByName(point).visible = false;
- let EquID = this.scene.getObjectByName(point).info.id;
- this.scene.getObjectById(EquID).visible = true;
- }
- }
- //处理21行的设备和附着点
- let point = "point_" + "0" + 21 + "_tc";
- this.scene.getObjectByName(point).visible = true;
- this.scene.getObjectByName(point).layers.set(0);
- if (this.scene.getObjectByName(point).hasDevice == true) {
- let EquID = this.scene.getObjectByName(point).info.id;
- this.scene.getObjectById(EquID).visible = true;
- }
- }
- }
+ // if (targetPoint.hasWall == true) {
+ // let lineIndex = targetPoint.name.slice(7, 9);
+ // for (let line = Number(lineIndex); line <= 20; line++) {
+ // if (line < 10) {
+ // let wall = "wall_" + "0" + line;
+ // this.scene.getObjectByName(wall).visible = false;
+ // let point = "point_" + "00" + line + "_tc";
+ // console.log(this.scene.getObjectByName(point));
+ // this.scene.getObjectByName(point).visible = true;
+ // this.scene.getObjectByName(point).layers.set(0);
+ // if (this.scene.getObjectByName(point).hasDevice == true) {
+ // this.scene.getObjectByName(point).visible = false;
+ // let EquID = this.scene.getObjectByName(point).info.id;
+ // this.scene.getObjectById(EquID).visible = true;
+ // }
+ // } else if (line >= 10) {
+ // let wall = "wall_" + line;
+ // this.scene.getObjectByName(wall).visible = false;
+ // let point = "point_" + "0" + line + "_tc";
+ // this.scene.getObjectByName(point).visible = true;
+ // this.scene.getObjectByName(point).layers.set(0);
+ // if (this.scene.getObjectByName(point).hasDevice == true) {
+ // this.scene.getObjectByName(point).visible = false;
+ // let EquID = this.scene.getObjectByName(point).info.id;
+ // this.scene.getObjectById(EquID).visible = true;
+ // }
+ // }
+ // //处理21行的设备和附着点
+ // let point = "point_" + "0" + 21 + "_tc";
+ // this.scene.getObjectByName(point).visible = true;
+ // this.scene.getObjectByName(point).layers.set(0);
+ // if (this.scene.getObjectByName(point).hasDevice == true) {
+ // let EquID = this.scene.getObjectByName(point).info.id;
+ // this.scene.getObjectById(EquID).visible = true;
+ // }
+ // }
+ // }
+ console.log("测试是不是删除了");
const mesh = this.scene.getObjectById(targetPoint.info.id);
this.scene.remove(mesh);
targetPoint.visible = true;
diff --git a/src/components/content/tunnelScene/sceneClass/previewTunnelInit/index.js b/src/components/content/tunnelScene/sceneClass/previewTunnelInit/index.js
index 1dfa150..8ea6300 100644
--- a/src/components/content/tunnelScene/sceneClass/previewTunnelInit/index.js
+++ b/src/components/content/tunnelScene/sceneClass/previewTunnelInit/index.js
@@ -1,3 +1,4 @@
+
export default function previewtunnelModeInit(equipmentList) {
//初始化将墙壁隐藏起来
// for (let line = 1; line <= 20; line++) {
@@ -9,14 +10,8 @@ export default function previewtunnelModeInit(equipmentList) {
// this.scene.getObjectByName(wall).visible = false
// }
// }
-
equipmentList.forEach((item) => {
- const formInfo = {
- equipmentType: item.equipmentType, //设备类型
- chooseEquipment: item.chooseEquipment, //设备选择(设备名称)
- threshold: item.threshold,
- };
- this.addEquipment(this.scene.getObjectByName(item.position), formInfo);
+ this.addEquipment(this.scene.getObjectByName(item.position), item);
});
//进行预览和编辑模式的一些操作
if (this.isedit == false) {
diff --git a/src/views/tunnel/index.vue b/src/views/tunnel/index.vue
index 988fdef..3aa3850 100644
--- a/src/views/tunnel/index.vue
+++ b/src/views/tunnel/index.vue
@@ -1,12 +1,12 @@
-
+
- 隧道总长度: {{tunnelLength}}米
- 当前施工长度: {{constructionLength}}米
+ 隧道总长度: {{ tunnelLength }}米
+ 当前施工长度: {{ constructionLength }}米
@@ -16,8 +16,8 @@
{{
- item.label
- }}
+ item.label
+ }}
@@ -32,24 +32,24 @@
-
+
+ :close-on-click-modal="false" :close-on-press-escape="false">
+ :transducer-data="largeScreenData" />
-
+
-
-
-
+ :close-on-click-modal="false" :close-on-press-escape="false">
+
+
+
@@ -76,14 +76,15 @@ import WindPressureList from "@/components/content/windPressure/WindPressureList
import AirInfo from "@/components/content/airInfo/AirInfo.vue";
import BadGasInfo from "@/components/content/badGasInfo/BadGasInfo.vue";
import ManageBtn from "@/components/manageBtn/index.vue";
-import {dateFormat} from "@/utils/date.js";
-import {getToken} from "@/utils/auth";
-import {useAuthStore} from "@/store/userstore.js";
-import {getLargeScreen, getLargeScreenInfo, getTunnelBySiteId} from "@/api/largeScreen";
-import {ElMessageBox} from "element-plus";
-import {getUserInfo} from "@/api/login";
-import {initSceneData} from "@/api/tunnelScene";
-import {getSiteDetail} from "../../api/site";
+import { dateFormat } from "@/utils/date.js";
+import { getToken } from "@/utils/auth";
+import { useAuthStore } from "@/store/userstore.js";
+import { getLargeScreen, getLargeScreenInfo, getTunnelBySiteId } from "@/api/largeScreen";
+import { ElMessageBox } from "element-plus";
+import { getUserInfo } from "@/api/login";
+import { initSceneData } from "@/api/tunnelScene";
+import { getSiteDetail } from "../../api/site";
+import { nextTick, reactive } from "vue";
const authStore = useAuthStore();
const router = useRouter();
@@ -128,7 +129,7 @@ const getUser = () => {
currentUserId.value = res.data.user.userId
})
}
-const getDefaultSite=(siteId)=>{
+const getDefaultSite = (siteId) => {
// console.log('siteList.value',siteList.value)
// getSiteDetail(siteId).then((res) => {
// console.log('res',res)
@@ -139,22 +140,22 @@ const getOtherInfo = () => {
if (res?.code === 1000) {
routeList.value = res.data.routeList
siteList.value = res.data.siteOption
- currentSiteId.value = res.data.siteOption[res.data.siteOption.length-1].value
- currentSite.value = res.data.siteOption[res.data.siteOption.length-1].label
- getTunnel(res.data.siteOption[res.data.siteOption.length-1].value)
+ currentSiteId.value = res.data.siteOption[res.data.siteOption.length - 1].value
+ currentSite.value = res.data.siteOption[res.data.siteOption.length - 1].label
+ getTunnel(res.data.siteOption[res.data.siteOption.length - 1].value)
}
});
};
const getScreenInfo = (id) => {
- tunnelId.value=id
+ tunnelId.value = id
getLargeScreen(id).then((res) => {
if (res?.code === 1000) {
largeScreenData.value = res.data;
}
});
initSceneData(id).then((res) => {
- tunnelLength.value=res.data.tunnelLength
- constructionLength.value=res.data.constructionLength
+ tunnelLength.value = res.data.tunnelLength
+ constructionLength.value = res.data.constructionLength
})
};
//根据站点id获取隧道信息
@@ -181,9 +182,9 @@ const changeTunnel = (e) => {
const manageSelect = (index) => {
console.log("首页点击-", index);
if (index === 0) {
- router.push("/site"+'/'+currentUserId.value);
+ router.push("/site" + '/' + currentUserId.value);
} else if (index === 1) {
- router.push("/tunnel/" + currentSiteId.value+'/i'+'/'+currentUserId.value);
+ router.push("/tunnel/" + currentSiteId.value + '/i' + '/' + currentUserId.value);
} else if (index === 2) {
router.push("/user/" + currentSiteId.value);
}
@@ -259,6 +260,15 @@ const closeSocket = () => {
socket.close();
};
initWebSocket();
+
+
+watch(
+ () => tunnelId.value,
+ (now) => {
+ tunnelId.value = now
+ },
+ { deep: true }
+)