diff --git a/yanzhu-bigscreen/src/api/bim.js b/yanzhu-bigscreen/src/api/bim.js index 46236016..f3c4dc76 100644 --- a/yanzhu-bigscreen/src/api/bim.js +++ b/yanzhu-bigscreen/src/api/bim.js @@ -7,6 +7,14 @@ const listBimModel = (query) => { params: query, }); }; + +const modelPropertyByExternalId = (modelName,externalId) => { + return request({ + url: `/manage/bim/modelInfo/modelPropertyByExternalId/${modelName}?externalId=${externalId}`, + method: "get" + }); +}; + //获取BIM设备位置 const devicePositionGet = (data) => { return request({ @@ -102,6 +110,7 @@ const roamingGet=data=>{ export default { listBimModel, + modelPropertyByExternalId, devicePositionGet, devTowerBimData, videoMonitorBimData, diff --git a/yanzhu-bigscreen/src/assets/icons/svg/area2.svg b/yanzhu-bigscreen/src/assets/icons/svg/area2.svg new file mode 100644 index 00000000..bd8e8b57 --- /dev/null +++ b/yanzhu-bigscreen/src/assets/icons/svg/area2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/yanzhu-bigscreen/src/assets/icons/svg/attribute.svg b/yanzhu-bigscreen/src/assets/icons/svg/attribute.svg new file mode 100644 index 00000000..130181f3 --- /dev/null +++ b/yanzhu-bigscreen/src/assets/icons/svg/attribute.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/yanzhu-bigscreen/src/assets/icons/svg/distance.svg b/yanzhu-bigscreen/src/assets/icons/svg/distance.svg new file mode 100644 index 00000000..30ddbfcf --- /dev/null +++ b/yanzhu-bigscreen/src/assets/icons/svg/distance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/yanzhu-bigscreen/src/assets/icons/svg/hide.svg b/yanzhu-bigscreen/src/assets/icons/svg/hide.svg new file mode 100644 index 00000000..4bd3283d --- /dev/null +++ b/yanzhu-bigscreen/src/assets/icons/svg/hide.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/yanzhu-bigscreen/src/assets/icons/svg/info.svg b/yanzhu-bigscreen/src/assets/icons/svg/info.svg new file mode 100644 index 00000000..955d4357 --- /dev/null +++ b/yanzhu-bigscreen/src/assets/icons/svg/info.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/yanzhu-bigscreen/src/assets/icons/svg/sectioning.svg b/yanzhu-bigscreen/src/assets/icons/svg/sectioning.svg new file mode 100644 index 00000000..1fb87bf7 --- /dev/null +++ b/yanzhu-bigscreen/src/assets/icons/svg/sectioning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/yanzhu-bigscreen/src/assets/icons/svg/size2.svg b/yanzhu-bigscreen/src/assets/icons/svg/size2.svg new file mode 100644 index 00000000..77286650 --- /dev/null +++ b/yanzhu-bigscreen/src/assets/icons/svg/size2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/yanzhu-bigscreen/src/assets/icons/svg/volume.svg b/yanzhu-bigscreen/src/assets/icons/svg/volume.svg new file mode 100644 index 00000000..2eab283e --- /dev/null +++ b/yanzhu-bigscreen/src/assets/icons/svg/volume.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/yanzhu-bigscreen/src/components/header.vue b/yanzhu-bigscreen/src/components/header.vue index 1a7ed031..13ede69b 100644 --- a/yanzhu-bigscreen/src/components/header.vue +++ b/yanzhu-bigscreen/src/components/header.vue @@ -235,7 +235,7 @@ export default { this.showMenus = objs; this.showMenusNavIds = this.showMenus.map((d) => d.navId); let tmps = this.showMenusNavIds.filter((item) => [1, 2, 3, 4, 5, 6, 7].includes(+item)); - if (!tmps.includes(2)) { + if (!tmps.includes(2) && !this.showMenusNavIds.includes(""+this.nav)) { let nav = tmps[0]; nav = tmps[0]; tmps = this.showMenusNavIds.filter((item) => String(item).startsWith(nav + "")); @@ -246,7 +246,6 @@ export default { this.doNav(+nav); this.notDetail = true; } - console.log(this.showMenusNavIds); }); }, doNav(n) { diff --git a/yanzhu-bigscreen/src/utils/tools.js b/yanzhu-bigscreen/src/utils/tools.js index d05e6d14..7b080fd9 100644 --- a/yanzhu-bigscreen/src/utils/tools.js +++ b/yanzhu-bigscreen/src/utils/tools.js @@ -8,3 +8,38 @@ export function tryToJson(str,def=null){ return def; } } + + export function MergeArray(arr1, arr2) { + var _arr = new Array(); + for (var i = 0; i < arr1.length; i++) { + _arr.push(arr1[i]); + } + for (var i = 0; i < arr2.length; i++) { + var flag = true; + for (var j = 0; j < arr1.length; j++) { + if (arr2[i] == arr1[j]) { + flag = false; + break; + } + } + if (flag) { + _arr.push(arr2[i]); + } + } + return _arr; +} +export function DelArray(array1, array2) { + var result = []; + for (var i = 0; i < array1.length; i++) { + var k = 0; + for (var j = 0; j < array2.length; j++) { + if (array1[i] != array2[j]) { + k++; + if (k == array2.length) { + result.push(array1[i]); + } + } + } + } + return result; +} \ No newline at end of file diff --git a/yanzhu-bigscreen/src/views/bim/001.png b/yanzhu-bigscreen/src/views/bim/001.png deleted file mode 100644 index f992ef90..00000000 Binary files a/yanzhu-bigscreen/src/views/bim/001.png and /dev/null differ diff --git a/yanzhu-bigscreen/src/views/bim/briefingProperty.js b/yanzhu-bigscreen/src/views/bim/briefingProperty.js new file mode 100644 index 00000000..ebfdeaaa --- /dev/null +++ b/yanzhu-bigscreen/src/views/bim/briefingProperty.js @@ -0,0 +1,81 @@ +function groupData(data) { + let tmps = []; + let obj = {}; + data.forEach((item) => { + let setName = item.propertySetName; + if (!obj[setName]) { + obj[setName] = []; + } + obj[setName].push(item); + }); + for (let key in obj) { + tmps.push({ + name: key, + data: obj[key], + }); + } + return tmps; +} +function dataFiltering(that, id) { + const gild = id.split("^"); + let modelName = ""; + that.models.forEach((item) => { + if (item.gis?.lightweightName == gild[0]) { + modelName = item.gis.name; + } + }); + if (!modelName || !gild[1]) { + return false; + } + let featureId = gild[1].split("_")[0]; + that.$api.bim.modelPropertyByExternalId(gild[0], featureId).then((d) => { + let tmps = d.data || []; + that.propertyAttr = groupData(tmps.filter((d) => d.propertyTypeName == "properties")); + that.propertyType = groupData(tmps.filter((d) => d.propertyTypeName != "properties")); + that.propertyLoad = "end"; + }); +} +/** + * 获取构件属性信息 + */ +export function getProperty(that) { + let api = bimBriefingApi; + api.Feature.getByEvent(true, (n) => { + console.log(n); + if (n && n["id"]) { + let featureId = n.id; + + if (featureId.split("^")[1]) { + let modelId = featureId.split("^")[0]; + if (that.selFeatureId) { + api.Feature.setColor(that.selFeatureId, "rgba(255,255,255,1)", modelId); + } + api.Feature.setColor(featureId, "rgba(255,0,255,1)", modelId); + that.selFeatureId = featureId; + dataFiltering(that, featureId); + that.propertyLoad = "start"; + that.attributeInformation = "查询中,请稍候~"; + } + } else { + that.attributeInformation = "未选中构件"; + } + }); +} + +/** + * 获取构件尺寸信息 + */ +export function subFeatureSize(that) { + let api = bimBriefingApi; + api.Public.clearHandler(), + api.Measurement.clearAllTrace(); + api.Feature.getByEvent(true, (n) => { + console.log(n); + if (n && n["id"]) { + let featureId = n.id; + api.Feature.getGeometrySizeById(featureId, (res) => { + console.log(res); + }); + } + }); +} diff --git a/yanzhu-bigscreen/src/views/bimBriefing.vue b/yanzhu-bigscreen/src/views/bimBriefing.vue index 30469e62..c1f3c065 100644 --- a/yanzhu-bigscreen/src/views/bimBriefing.vue +++ b/yanzhu-bigscreen/src/views/bimBriefing.vue @@ -1,25 +1,692 @@ \ No newline at end of file + diff --git a/yanzhu-bigscreen/src/views/bimRoaming.vue b/yanzhu-bigscreen/src/views/bimRoaming.vue index 762dc48d..0e68e3e1 100644 --- a/yanzhu-bigscreen/src/views/bimRoaming.vue +++ b/yanzhu-bigscreen/src/views/bimRoaming.vue @@ -2,89 +2,88 @@
- -
- -
-
-
- - 模型结构树 -
-
- -
+
+
+ +
+
+
+ + 模型结构树 +
+
+
- - -
+
+ + +
-
- -
-
-
- - 漫游方案 -
-
-
暂无数据
-
- - {{ item.name }} +
+ +
+
+
+ + 漫游方案 +
+
+
暂无数据
+
+ + {{ item.name }} + +
+ + + + + + + + + + + -
- - - - - - - - - - - - -
-
-
-
- -
-
- - 视点列表 -
-
-
暂无数据
-
-
- - - {{ item.name }} - - {{ item.name }} -
- - -
+ +
+
+ + 视点列表 +
+
+
暂无数据
+
+
+ + + {{ item.name }} + + {{ item.name }} +
+
+
+
+
+ +
@@ -100,6 +99,7 @@ diff --git a/yanzhu-ui-vue3/src/views/manage/proProjectInfo/index.vue b/yanzhu-ui-vue3/src/views/manage/proProjectInfo/index.vue index 0da996ab..314fd821 100644 --- a/yanzhu-ui-vue3/src/views/manage/proProjectInfo/index.vue +++ b/yanzhu-ui-vue3/src/views/manage/proProjectInfo/index.vue @@ -692,7 +692,6 @@ function submitForm() { let postData = { ...form.value, }; - postData.comId = deptTree.value.getCurrentNode().data.parentId; if (form.value.id != null) { updateProProjectInfo(postData).then((response) => { proxy.$modal.msgSuccess("修改成功"); @@ -701,6 +700,7 @@ function submitForm() { getList(); }); } else { + postData.comId = deptTree.value.getCurrentNode().data.parentId; addProProjectInfo(postData).then((response) => { proxy.$modal.msgSuccess("新增成功"); open.value = false;