main
parent
23e081053f
commit
a8ba8139a6
Binary file not shown.
After Width: | Height: | Size: 308 KiB |
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
|
@ -5,7 +5,8 @@ const bimStore = defineStore(
|
||||||
activateIndex: 0,
|
activateIndex: 0,
|
||||||
activateTree: {},
|
activateTree: {},
|
||||||
activateDevice: {},
|
activateDevice: {},
|
||||||
activateApplication: {}
|
activateApplication: {},
|
||||||
|
deviceNum: ''
|
||||||
}),
|
}),
|
||||||
actions: {
|
actions: {
|
||||||
// 菜单
|
// 菜单
|
||||||
|
@ -23,6 +24,10 @@ const bimStore = defineStore(
|
||||||
// 应用树选中
|
// 应用树选中
|
||||||
setActivateApplicationTree(item) {
|
setActivateApplicationTree(item) {
|
||||||
this.activateApplication = item;
|
this.activateApplication = item;
|
||||||
|
},
|
||||||
|
// 资产详情num
|
||||||
|
setDeviceNum(item) {
|
||||||
|
this.deviceNum = item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -52,7 +52,7 @@ const getPie3D = (pieData, internalDiameterRatio, rateName) => {
|
||||||
// const newColor = _.cloneDeep(color)
|
// const newColor = _.cloneDeep(color)
|
||||||
// newColor.splice(0, 1)
|
// newColor.splice(0, 1)
|
||||||
|
|
||||||
const newColor = [color[0], color[1], color[5]]
|
const newColor = [color[0], color[1], color[5],color[6]]
|
||||||
|
|
||||||
series.push({
|
series.push({
|
||||||
type: 'pie',
|
type: 'pie',
|
||||||
|
@ -87,8 +87,8 @@ const getPie3D = (pieData, internalDiameterRatio, rateName) => {
|
||||||
const option = {
|
const option = {
|
||||||
color: newColor,
|
color: newColor,
|
||||||
legend: {
|
legend: {
|
||||||
show: false,
|
show: true,
|
||||||
color: '#FFFFFF',
|
textStyle: { color: '#ffffff' },
|
||||||
left: 'center',
|
left: 'center',
|
||||||
top: 'bottom',
|
top: 'bottom',
|
||||||
itemGap: 20,
|
itemGap: 20,
|
||||||
|
@ -121,7 +121,7 @@ const getPie3D = (pieData, internalDiameterRatio, rateName) => {
|
||||||
show: true,
|
show: true,
|
||||||
formatter: params => {
|
formatter: params => {
|
||||||
if (params.seriesName !== 'mouseoutSeries' && params.seriesName !== 'pie2d') {
|
if (params.seriesName !== 'mouseoutSeries' && params.seriesName !== 'pie2d') {
|
||||||
console.log(option.series[params.seriesIndex].pieData)
|
// console.log(option.series[params.seriesIndex].pieData)
|
||||||
// let bfb = ((option.series[params.seriesIndex].pieData.endRatio - option.series[params.seriesIndex].pieData.startRatio) *
|
// let bfb = ((option.series[params.seriesIndex].pieData.endRatio - option.series[params.seriesIndex].pieData.startRatio) *
|
||||||
// 100).toFixed(2)
|
// 100).toFixed(2)
|
||||||
// if (bfb === 'NaN') {
|
// if (bfb === 'NaN') {
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
<template>
|
||||||
|
<div class="baseInfo-div">
|
||||||
|
<div class="left-div">
|
||||||
|
<div v-for="(item, index) of listData" :key="index">
|
||||||
|
<span class="name">{{ item.name }}:</span>
|
||||||
|
|
||||||
|
<span class="value" v-if="item.name == '设备二维码'">
|
||||||
|
<img src="@/assets/images/qcode.png" alt="">
|
||||||
|
</span>
|
||||||
|
<span class="value" v-else>{{ item.value }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="right-div">
|
||||||
|
<img src="@/assets/images/device.png" alt="" width="400">
|
||||||
|
<span>设备图片</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
infoList: {
|
||||||
|
default: {},
|
||||||
|
type: Object
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const listData = props.infoList.detail;
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.baseInfo-div {
|
||||||
|
width: 100%;
|
||||||
|
height: 80%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
.left-div {
|
||||||
|
width: 69%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
>div {
|
||||||
|
width: 48%;
|
||||||
|
line-height: 24px;
|
||||||
|
height: 48px;
|
||||||
|
justify-content: space-between;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.name {
|
||||||
|
width: 40%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.value {
|
||||||
|
width: 59%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.right-div {
|
||||||
|
width: 30%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -25,16 +25,7 @@
|
||||||
import bimStore from '@/store/modules/bim';
|
import bimStore from '@/store/modules/bim';
|
||||||
import TopDiv from "./TopDiv.vue";
|
import TopDiv from "./TopDiv.vue";
|
||||||
|
|
||||||
const data = reactive({
|
const buildInfo = computed(() => bimStore().activateTree.info);
|
||||||
buildInfo: {
|
|
||||||
name: '原料糖化车间一',
|
|
||||||
area: '5236 ㎡',
|
|
||||||
status:'启用',
|
|
||||||
desc: '原料糖化车间一,负责原料糖化,启用于2011年'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const { buildInfo } = toRefs(data);
|
|
||||||
</script>
|
</script>
|
||||||
<style lang='scss' scoped>
|
<style lang='scss' scoped>
|
||||||
.buildDiv {
|
.buildDiv {
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
<el-select v-model="buildValue" class="m-2" placeholder="Select" size="large">
|
<el-select v-model="buildValue" class="m-2" placeholder="Select" size="large">
|
||||||
<el-option v-for="item in buildOptions" :key="item.value" :label="item.label" :value="item.value" />
|
<el-option v-for="item in buildOptions" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-tree ref="myTree" :data="treeData" :props="defaultProps" node-key="id" highlight-current default-expand-all
|
<el-tree ref="myTree" :data="treeData" :props="defaultProps" node-key="id" check-strictly="true"
|
||||||
:current-node-key="checkedkeys" @node-click="handleNodeClick" />
|
highlight-current default-expand-all :current-node-key="checkedkeys" @node-click="handleNodeClick" />
|
||||||
</dv-border-box-10>
|
</dv-border-box-10>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -13,6 +13,14 @@
|
||||||
import bimStore from '@/store/modules/bim';
|
import bimStore from '@/store/modules/bim';
|
||||||
import { nextTick } from "vue";
|
import { nextTick } from "vue";
|
||||||
const myTree = ref("myTree");
|
const myTree = ref("myTree");
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
isSetTree: { //
|
||||||
|
default: false,
|
||||||
|
type: Boolean
|
||||||
|
},
|
||||||
|
|
||||||
|
})
|
||||||
const buildOptions = [
|
const buildOptions = [
|
||||||
{
|
{
|
||||||
value: '0',
|
value: '0',
|
||||||
|
@ -29,19 +37,106 @@ const data = reactive({
|
||||||
buildValue: '0',
|
buildValue: '0',
|
||||||
treeData: [
|
treeData: [
|
||||||
{
|
{
|
||||||
label: '酿造车间',
|
label: '原料糖化车间',
|
||||||
id: '0',
|
id: '0',
|
||||||
|
url: '/jz/glb/jz.gltf',
|
||||||
|
info: {
|
||||||
|
name: '原料糖化车间',
|
||||||
|
area: '9436 ㎡',
|
||||||
|
status: '启用',
|
||||||
|
desc: '原料糖化车间,负责原料糖化,启用于2011年'
|
||||||
|
},
|
||||||
|
deviceInfo: [
|
||||||
|
{
|
||||||
|
type: '生产设备',
|
||||||
|
name: '立仓',
|
||||||
|
value: 45
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '空调设备',
|
||||||
|
name: '新风机组',
|
||||||
|
value: 130
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '安防设备',
|
||||||
|
name: '摄像头',
|
||||||
|
value: 180
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '消防设备',
|
||||||
|
name: '烟感',
|
||||||
|
value: 100
|
||||||
|
}
|
||||||
|
],
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
label: '原料糖化车间一',
|
label: '原料糖化车间一',
|
||||||
id: '0-1',
|
id: '0-1',
|
||||||
url: '/jz/glb/jz.gltf'
|
url: '/jz/glb/jz.gltf',
|
||||||
|
children: [],
|
||||||
|
info: {
|
||||||
|
name: '原料糖化车间一',
|
||||||
|
area: '5200 ㎡',
|
||||||
|
status: '启用',
|
||||||
|
desc: '原料糖化车间一,负责原料糖化,启用于2011年'
|
||||||
|
},
|
||||||
|
deviceInfo: [
|
||||||
|
{
|
||||||
|
type: '生产设备',
|
||||||
|
name: '立仓',
|
||||||
|
value: 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '空调设备',
|
||||||
|
name: '新风机组',
|
||||||
|
value: 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '安防设备',
|
||||||
|
name: '摄像头',
|
||||||
|
value: 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '消防设备',
|
||||||
|
name: '烟感',
|
||||||
|
value: 50
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '原料糖化车间二',
|
label: '原料糖化车间二',
|
||||||
id: '0-2',
|
id: '0-2',
|
||||||
url: '/seraphine/scene.gltf'
|
url: '/jz/glb/jz.gltf',
|
||||||
|
children: [],
|
||||||
|
info: {
|
||||||
|
name: '原料糖化车间二',
|
||||||
|
area: '4236 ㎡',
|
||||||
|
status: '启用',
|
||||||
|
desc: '原料糖化车间二,负责原料糖化,启用于2013年'
|
||||||
|
},
|
||||||
|
deviceInfo: [
|
||||||
|
{
|
||||||
|
type: '生产设备',
|
||||||
|
name: '立仓',
|
||||||
|
value: 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '空调设备',
|
||||||
|
name: '新风机组',
|
||||||
|
value: 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '安防设备',
|
||||||
|
name: '摄像头',
|
||||||
|
value: 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '消防设备',
|
||||||
|
name: '烟感',
|
||||||
|
value: 50
|
||||||
|
}
|
||||||
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
@ -52,15 +147,16 @@ const { buildValue, treeData, checkedkeys } = toRefs(data);
|
||||||
const emit = defineEmits(['handleNodeClick'])
|
const emit = defineEmits(['handleNodeClick'])
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
checkedkeys.value = treeData.value[0].children[0].id;
|
checkedkeys.value = treeData.value[0].id;
|
||||||
// myTree.setCurrentKey(checkedkeys.value);
|
handleNodeClick(treeData.value[0]);
|
||||||
bimStore().setActivateTree(treeData.value[0].children[0]);
|
|
||||||
handleNodeClick(treeData.value[0].children[0]);
|
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
const handleNodeClick = (value) => {
|
const handleNodeClick = (value) => {
|
||||||
|
if(props.isSetTree) {// 是否存值
|
||||||
bimStore().setActivateTree(value);
|
bimStore().setActivateTree(value);
|
||||||
emit('handleNodeClick', value)
|
}
|
||||||
|
const isParent = value.children.length > 0;
|
||||||
|
emit('handleNodeClick', value, isParent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -77,12 +173,14 @@ const handleNodeClick = (value) => {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
.el-tree {
|
.el-tree {
|
||||||
width: 224px;
|
width: 224px;
|
||||||
margin: 0 10px;
|
margin: 0 10px;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
color: #3cbfdf;
|
color: #3cbfdf;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-select {
|
.el-select {
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,169 @@
|
||||||
|
<template>
|
||||||
|
<div class="detail-div">
|
||||||
|
<div class="title-div">{{ detailData.name }}</div>
|
||||||
|
<el-tabs v-model="activeName" type="card" class="demo-tabs" @tab-click="handleClick">
|
||||||
|
<el-tab-pane :label="item" v-for="(item, index) of tabData" :key="index" :name="index + ''">
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
<BasicInfo :infoList="detailData"></BasicInfo>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import bimStore from '@/store/modules/bim';
|
||||||
|
import BasicInfo from './BasicInfo.vue';
|
||||||
|
import { ElMessage } from 'element-plus';
|
||||||
|
const deviceData = {
|
||||||
|
'EQ0001': {
|
||||||
|
name: '过滤槽',
|
||||||
|
imgUlr: '',
|
||||||
|
detail: [
|
||||||
|
{
|
||||||
|
name: '资产名称',
|
||||||
|
value: '过滤槽'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '资产类型',
|
||||||
|
value: '糖化设备'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '资产位置',
|
||||||
|
value: '漳州厂区糖化间'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '采购日期',
|
||||||
|
value: '2012-11-15'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '使用日期',
|
||||||
|
value: '2012-11-15'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '过保截至日期',
|
||||||
|
value: '2018-11-15'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '所属厂区',
|
||||||
|
value: '漳州厂区'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '资产编码',
|
||||||
|
value: 'TH-2304187001'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '资产状态',
|
||||||
|
value: '在用'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '累计采购天数',
|
||||||
|
value: '234天'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '投入使用天数',
|
||||||
|
value: '234天'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '距离过保天数',
|
||||||
|
value: '-34天'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '设备二维码',
|
||||||
|
value: '2018-11-15'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
'EQ0002': {
|
||||||
|
name: '新风机组',
|
||||||
|
imgUlr: '',
|
||||||
|
detail: [
|
||||||
|
{
|
||||||
|
name: '资产名称',
|
||||||
|
value: '新风机组'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '资产类型',
|
||||||
|
value: '糖化设备'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '资产位置',
|
||||||
|
value: '漳州厂区糖化间'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '采购日期',
|
||||||
|
value: '2012-11-15'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '使用日期',
|
||||||
|
value: '2012-11-15'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '过保截至日期',
|
||||||
|
value: '2018-11-15'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '所属厂区',
|
||||||
|
value: '漳州厂区'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '资产编码',
|
||||||
|
value: 'TH-2304187001'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '资产状态',
|
||||||
|
value: '在用'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '累计采购天数',
|
||||||
|
value: '234天'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '投入使用天数',
|
||||||
|
value: '234天'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '距离过保天数',
|
||||||
|
value: '-34天'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '设备二维码',
|
||||||
|
value: '2018-11-15'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const activeName = ref('0')
|
||||||
|
const tabData = [
|
||||||
|
'基本信息', '实时数据', '历史数据', '巡检记录', '保养记录', '维修记录', '事件记录', '健康分析', '效益分析', '资产对比'
|
||||||
|
]
|
||||||
|
|
||||||
|
const data = reactive({
|
||||||
|
detailData: {
|
||||||
|
name: '',
|
||||||
|
imgUlr: '',
|
||||||
|
detail: []
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const { detailData } = toRefs(data);
|
||||||
|
const deviceNum = computed(() => bimStore().deviceNum);
|
||||||
|
detailData.value = deviceData[deviceNum.value];
|
||||||
|
const handleClick = (tab, event) => {
|
||||||
|
if(activeName !== '0') {
|
||||||
|
ElMessage.warning('暂未开发');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.detail-div {
|
||||||
|
height: 700px;
|
||||||
|
.title-div {
|
||||||
|
height: 50px;
|
||||||
|
line-height: 50px;
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -51,7 +51,7 @@ const data = reactive({
|
||||||
content: '设备保养周期剩余3天',
|
content: '设备保养周期剩余3天',
|
||||||
time: '上午',
|
time: '上午',
|
||||||
timestamp: '11:46',
|
timestamp: '11:46',
|
||||||
color: '#0bbd87',
|
color: '#31bdb4',
|
||||||
icon: MoreFilled,
|
icon: MoreFilled,
|
||||||
type: 'primary',
|
type: 'primary',
|
||||||
size: 'large'
|
size: 'large'
|
||||||
|
|
|
@ -4,15 +4,15 @@
|
||||||
<dv-border-box-10 backgroundColor="#00174b" :color="['#3cbfdf', '#3cbfdf']">
|
<dv-border-box-10 backgroundColor="#00174b" :color="['#3cbfdf', '#3cbfdf']">
|
||||||
<div>
|
<div>
|
||||||
<span class="name">名称</span>
|
<span class="name">名称</span>
|
||||||
<span class="text">{{ deviceInfo.name }}</span>
|
<span class="text">{{ deviceInfo && deviceInfo.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span class="name">类型</span>
|
<span class="name">类型</span>
|
||||||
<span class="text">{{ deviceInfo.type }}</span>
|
<span class="text">{{ deviceInfo && deviceInfo.type }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span class="name">状态</span>
|
<span class="name">状态</span>
|
||||||
<span class="text">{{ deviceInfo.status }}</span>
|
<span class="text">{{ deviceInfo && deviceInfo.status }}</span>
|
||||||
</div>
|
</div>
|
||||||
</dv-border-box-10>
|
</dv-border-box-10>
|
||||||
</div>
|
</div>
|
||||||
|
@ -21,14 +21,11 @@
|
||||||
import TopDiv from "./TopDiv.vue";
|
import TopDiv from "./TopDiv.vue";
|
||||||
import bimStore from '@/store/modules/bim';
|
import bimStore from '@/store/modules/bim';
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
deviceInfo: {
|
deviceInfo: {}
|
||||||
name: '立仓',
|
|
||||||
type: '生产设备',
|
|
||||||
status:'启用',
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const { deviceInfo } = toRefs(data);
|
const { deviceInfo } = toRefs(data);
|
||||||
|
watch(() => bimStore().activateDevice.info, value => deviceInfo.value = value);
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style lang='scss' scoped>
|
<style lang='scss' scoped>
|
||||||
|
@ -42,20 +39,23 @@ const { deviceInfo } = toRefs(data);
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
color: #3cbfdf;
|
color: #3cbfdf;
|
||||||
|
|
||||||
:deep(.border-box-content) {
|
:deep(.border-box-content) {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
|
|
||||||
>div {
|
>div {
|
||||||
line-height: 48px;
|
line-height: 48px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
.name {
|
.name {
|
||||||
width: 25%;
|
width: 25%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text {
|
.text {
|
||||||
width: 75%;
|
width: 75%;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}</style>
|
||||||
</style>
|
|
|
@ -1,8 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="deviceInfoDialog">
|
<div class="deviceInfoDialog">
|
||||||
<div class="left-div">
|
<div class="left-div">
|
||||||
<el-tree :data="treedata" show-checkbox node-key="id" :default-expanded-keys="[1]" :props="defaultProps">
|
<el-select v-model="buildValue" class="m-2" placeholder="Select" size="large">
|
||||||
</el-tree>
|
<el-option v-for="item in buildOptions" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
|
</el-select>
|
||||||
|
<el-tree ref="myTree" :data="treeData" :props="defaultProps" node-key="id" check-strictly="true"
|
||||||
|
highlight-current default-expand-all :current-node-key="checkedkeys" @node-click="handleNodeClick" />
|
||||||
</div>
|
</div>
|
||||||
<div class="right-div">
|
<div class="right-div">
|
||||||
<div class="top-div">
|
<div class="top-div">
|
||||||
|
@ -27,7 +30,151 @@
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import * as echarts from "echarts";
|
import * as echarts from "echarts";
|
||||||
|
import bimStore from '@/store/modules/bim';
|
||||||
|
const buildOptions = [
|
||||||
|
{
|
||||||
|
value: '0',
|
||||||
|
label: '漳州工厂',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
const defaultProps = {
|
||||||
|
children: 'children',
|
||||||
|
label: 'label',
|
||||||
|
}
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
|
buildValue: '0',
|
||||||
|
treeData: [
|
||||||
|
{
|
||||||
|
label: '原料糖化车间',
|
||||||
|
id: '0',
|
||||||
|
url: '/jz/glb/jz.gltf',
|
||||||
|
info: {
|
||||||
|
name: '原料糖化车间',
|
||||||
|
area: '9436 ㎡',
|
||||||
|
status: '启用',
|
||||||
|
desc: '原料糖化车间,负责原料糖化,启用于2011年'
|
||||||
|
},
|
||||||
|
deviceInfo: [
|
||||||
|
{
|
||||||
|
type: '生产设备',
|
||||||
|
name: '立仓',
|
||||||
|
num: 'EQ0001',
|
||||||
|
value: 45,
|
||||||
|
id: "echartDiv0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '空调设备',
|
||||||
|
name: '新风机组',
|
||||||
|
num: 'EQ0002',
|
||||||
|
value: 130,
|
||||||
|
id: "echartDiv1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '安防设备',
|
||||||
|
name: '摄像头',
|
||||||
|
num: 'EQ0001',
|
||||||
|
value: 180,
|
||||||
|
id: "echartDiv2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '消防设备',
|
||||||
|
name: '烟感',
|
||||||
|
num: 'EQ0001',
|
||||||
|
value: 100,
|
||||||
|
id: "echartDiv3"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
label: '原料糖化车间一',
|
||||||
|
id: '0-1',
|
||||||
|
url: '/jz/glb/jz.gltf',
|
||||||
|
children: [],
|
||||||
|
info: {
|
||||||
|
name: '原料糖化车间一',
|
||||||
|
area: '5200 ㎡',
|
||||||
|
status: '启用',
|
||||||
|
desc: '原料糖化车间一,负责原料糖化,启用于2011年'
|
||||||
|
},
|
||||||
|
deviceInfo: [
|
||||||
|
{
|
||||||
|
type: '生产设备',
|
||||||
|
name: '立仓',
|
||||||
|
num: 'EQ0001',
|
||||||
|
value: 15,
|
||||||
|
id: "echartDiv0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '空调设备',
|
||||||
|
name: '新风机组',
|
||||||
|
num: 'EQ0002',
|
||||||
|
value: 50,
|
||||||
|
id: "echartDiv1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '安防设备',
|
||||||
|
name: '摄像头',
|
||||||
|
num: 'EQ0001',
|
||||||
|
value: 80,
|
||||||
|
id: "echartDiv2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '消防设备',
|
||||||
|
name: '烟感',
|
||||||
|
num: 'EQ0001',
|
||||||
|
value: 50,
|
||||||
|
id: "echartDiv3"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '原料糖化车间二',
|
||||||
|
id: '0-2',
|
||||||
|
url: '/jz/glb/jz.gltf',
|
||||||
|
children: [],
|
||||||
|
info: {
|
||||||
|
name: '原料糖化车间二',
|
||||||
|
area: '4236 ㎡',
|
||||||
|
status: '启用',
|
||||||
|
desc: '原料糖化车间二,负责原料糖化,启用于2013年'
|
||||||
|
},
|
||||||
|
deviceInfo: [
|
||||||
|
{
|
||||||
|
type: '生产设备',
|
||||||
|
name: '立仓',
|
||||||
|
num: 'EQ0001',
|
||||||
|
value: 30,
|
||||||
|
id: "echartDiv0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '空调设备',
|
||||||
|
name: '新风机组',
|
||||||
|
num: 'EQ0002',
|
||||||
|
value: 80,
|
||||||
|
id: "echartDiv1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '安防设备',
|
||||||
|
name: '摄像头',
|
||||||
|
num: 'EQ00011',
|
||||||
|
value: 100,
|
||||||
|
id: "echartDiv2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: '消防设备',
|
||||||
|
name: '烟感',
|
||||||
|
num: 'EQ0002',
|
||||||
|
value: 50,
|
||||||
|
id: "echartDiv3"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
checkedkeys: "",
|
||||||
deviceList: [
|
deviceList: [
|
||||||
{
|
{
|
||||||
name: '设备A',
|
name: '设备A',
|
||||||
|
@ -47,96 +194,27 @@ const data = reactive({
|
||||||
{
|
{
|
||||||
name: '设备D',
|
name: '设备D',
|
||||||
num: 36,
|
num: 36,
|
||||||
|
|
||||||
id: "echartDiv3"
|
id: "echartDiv3"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
tableData: [
|
tableData: []
|
||||||
{
|
|
||||||
name: '立仓',
|
|
||||||
num: 'EQ001',
|
|
||||||
type: '生产设备'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '粉碎机',
|
|
||||||
num: 'EQ001',
|
|
||||||
type: '生产设备'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '摄像头',
|
|
||||||
num: 'EQ001',
|
|
||||||
type: '生产设备'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '空调机组',
|
|
||||||
num: 'EQ001',
|
|
||||||
type: '生产设备'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '立仓',
|
|
||||||
num: 'EQ001',
|
|
||||||
type: '生产设备'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '立仓',
|
|
||||||
num: 'EQ001',
|
|
||||||
type: '生产设备'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '粉碎机',
|
|
||||||
num: 'EQ001',
|
|
||||||
type: '生产设备'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '摄像头',
|
|
||||||
num: 'EQ001',
|
|
||||||
type: '生产设备'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '空调机组',
|
|
||||||
num: 'EQ001',
|
|
||||||
type: '生产设备'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '立仓',
|
|
||||||
num: 'EQ001',
|
|
||||||
type: '生产设备'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
treedata: [{
|
|
||||||
id: 1,
|
|
||||||
label: '一级 1',
|
|
||||||
children: [{
|
|
||||||
id: 4,
|
|
||||||
label: '二级 1-1',
|
|
||||||
children: [{
|
|
||||||
id: 9,
|
|
||||||
label: '三级 1-1-1'
|
|
||||||
}]
|
|
||||||
}]
|
|
||||||
}, {
|
|
||||||
id: 2,
|
|
||||||
label: '一级 2',
|
|
||||||
children: [{
|
|
||||||
id: 5,
|
|
||||||
label: '二级 2-1'
|
|
||||||
}, {
|
|
||||||
id: 6,
|
|
||||||
label: '二级 2-2'
|
|
||||||
}]
|
|
||||||
}],
|
|
||||||
defaultProps: {
|
|
||||||
children: 'children',
|
|
||||||
label: 'label'
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
const { deviceList, tableData, treedata, defaultProps } = toRefs(data);
|
const { buildValue, treeData, checkedkeys, deviceList, tableData } = toRefs(data);
|
||||||
|
const emit = defineEmits(['viewDetail'])
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
deviceList.value.forEach(ele => {
|
checkedkeys.value = treeData.value[0].id;
|
||||||
|
handleNodeClick(treeData.value[0]);
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
const handleNodeClick = (value) => {
|
||||||
|
value.deviceInfo.forEach(ele => {
|
||||||
getCharts(ele);
|
getCharts(ele);
|
||||||
})
|
})
|
||||||
})
|
tableData.value = value.deviceInfo;
|
||||||
})
|
}
|
||||||
|
|
||||||
const getCharts = (ele) => {
|
const getCharts = (ele) => {
|
||||||
var dom = document.getElementById(ele.id);
|
var dom = document.getElementById(ele.id);
|
||||||
|
@ -325,7 +403,7 @@ const getCharts = (ele) => {
|
||||||
},
|
},
|
||||||
|
|
||||||
data: [{
|
data: [{
|
||||||
value: 50,
|
value: ele.value,
|
||||||
name: ele.name
|
name: ele.name
|
||||||
},]
|
},]
|
||||||
}]
|
}]
|
||||||
|
@ -336,6 +414,8 @@ const getCharts = (ele) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const viewDetail = (val) => {
|
const viewDetail = (val) => {
|
||||||
|
bimStore().setDeviceNum(val.num);
|
||||||
|
emit('viewDetail', val);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@ -348,6 +428,13 @@ const viewDetail = (val) => {
|
||||||
width: 20%;
|
width: 20%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
border: 1px solid #3cbfdf;
|
border: 1px solid #3cbfdf;
|
||||||
|
|
||||||
|
.el-tree {
|
||||||
|
margin: 0 10px;
|
||||||
|
}
|
||||||
|
.el-select {
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-div {
|
.right-div {
|
||||||
|
|
|
@ -21,32 +21,35 @@ import "echarts-gl"
|
||||||
import TopDiv from "./TopDiv.vue";
|
import TopDiv from "./TopDiv.vue";
|
||||||
import bimStore from '@/store/modules/bim';
|
import bimStore from '@/store/modules/bim';
|
||||||
const emit = defineEmits(['openDialog'])
|
const emit = defineEmits(['openDialog'])
|
||||||
const data = reactive({
|
|
||||||
optionsData: [
|
|
||||||
{ value: 34, name: "A类设备" },
|
|
||||||
{ value: 200, name: "B类设备" },
|
|
||||||
{ value: 16, name: "C类设备" },
|
|
||||||
{ value: 50, name: "D类设备" }]
|
|
||||||
});
|
|
||||||
|
|
||||||
const { optionsData } = toRefs(data);
|
|
||||||
|
|
||||||
const optionData = optionsData.value.map((item) => {
|
const deviceInfo = computed(() =>
|
||||||
|
bimStore().activateTree.deviceInfo
|
||||||
|
);
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
initData();
|
||||||
|
})
|
||||||
|
|
||||||
|
watch(deviceInfo, (value) => {
|
||||||
|
console.log(34, value);
|
||||||
|
if (value) {
|
||||||
|
initData();
|
||||||
|
}
|
||||||
|
},)
|
||||||
|
|
||||||
|
const initData = () => {
|
||||||
|
const optionData = deviceInfo.value.map((item) => {
|
||||||
return {
|
return {
|
||||||
...item,
|
...item,
|
||||||
rate: ((item.value / 300).toFixed(1)) * 100,
|
rate: ((item.value / 300).toFixed(1)) * 100,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
onMounted(() => {
|
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
getCharts();
|
getCharts(optionData);
|
||||||
})
|
})
|
||||||
})
|
}
|
||||||
|
const getCharts = (optionData) => {
|
||||||
const getCharts = () => {
|
|
||||||
|
|
||||||
|
|
||||||
var dom = document.getElementById('charts');
|
var dom = document.getElementById('charts');
|
||||||
if (dom) {
|
if (dom) {
|
||||||
// 手动移除该属性
|
// 手动移除该属性
|
||||||
|
|
|
@ -32,17 +32,32 @@ const data = reactive({
|
||||||
{
|
{
|
||||||
label: '生产设备',
|
label: '生产设备',
|
||||||
id: '0',
|
id: '0',
|
||||||
|
info: {
|
||||||
|
name: '生产设备',
|
||||||
|
type: '生产设备',
|
||||||
|
status: '启用'
|
||||||
|
},
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
label: '立仓',
|
label: '立仓',
|
||||||
id: '0-1',
|
id: '0-1',
|
||||||
url: '/jz/glb/jz.gltf'
|
url: '/jz/glb/jz.gltf',
|
||||||
|
info: {
|
||||||
|
name: '立仓',
|
||||||
|
type: '生产设备',
|
||||||
|
status: '启用'
|
||||||
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '糖浆罐',
|
label: '糖浆罐',
|
||||||
id: '0-2',
|
id: '0-2',
|
||||||
url: '/seraphine/scene.gltf'
|
url: '/seraphine/scene.gltf',
|
||||||
|
info: {
|
||||||
|
name: '糖浆罐',
|
||||||
|
type: '生产设备',
|
||||||
|
status: '启用'
|
||||||
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
@ -54,8 +69,6 @@ const emit = defineEmits(['handleNodeClick'])
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
checkedkeys.value = treeData.value[0].children[0].id;
|
checkedkeys.value = treeData.value[0].children[0].id;
|
||||||
// myTree.setCurrentKey(checkedkeys.value);
|
|
||||||
bimStore().setActivateDeviceTree(treeData.value[0].children[0]);
|
|
||||||
handleNodeClick(treeData.value[0].children[0]);
|
handleNodeClick(treeData.value[0].children[0]);
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
@ -84,6 +97,7 @@ const handleNodeClick = (value) => {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
color: #3cbfdf;
|
color: #3cbfdf;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-select {
|
.el-select {
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,18 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="realInfoDialog">
|
<div class="realInfoDialog">
|
||||||
<div class="top-div">
|
<div class="top-div">
|
||||||
|
<div>
|
||||||
|
<span class="name">名称:</span>
|
||||||
|
<span class="text">{{ deviceInfo && deviceInfo.name }}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span class="name">类型:</span>
|
||||||
|
<span class="text">{{ deviceInfo && deviceInfo.type }}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span class="name">状态:</span>
|
||||||
|
<span class="text">{{ deviceInfo && deviceInfo.status }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-div">
|
<div class="bottom-div">
|
||||||
|
@ -14,10 +26,15 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import bimStore from '@/store/modules/bim';
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const deviceInfo = computed(() =>
|
||||||
|
bimStore().activateDevice.info
|
||||||
|
);
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.realInfoDialog {
|
.realInfoDialog {
|
||||||
|
@ -30,6 +47,23 @@ const data = reactive({
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 25%;
|
height: 25%;
|
||||||
border: 1px solid #3cbfdf;
|
border: 1px solid #3cbfdf;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
> div {
|
||||||
|
display: flex;
|
||||||
|
line-height: 48px;
|
||||||
|
width: 240px;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
width: 45%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.text {
|
||||||
|
width: 45%;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.bottom-div {
|
.bottom-div {
|
||||||
|
@ -43,6 +77,7 @@ const data = reactive({
|
||||||
height: 100%;
|
height: 100%;
|
||||||
border: 1px solid #3cbfdf;
|
border: 1px solid #3cbfdf;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-div {
|
.right-div {
|
||||||
width: 79%;
|
width: 79%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<!-- 场景模型 -->
|
<!-- 场景模型 -->
|
||||||
<ThreeView background="#353535" light="0xffffff" :sceneUrl="sceneUrl"></ThreeView>
|
<ThreeView background="#353535" light="0xffffff" :sceneUrl="sceneUrl" v-if="sceneUrl !== ''"></ThreeView>
|
||||||
<!-- 底部菜单 -->
|
<!-- 底部菜单 -->
|
||||||
<MenuTab @changeMenu="changeMenu"></MenuTab>
|
<MenuTab @changeMenu="changeMenu"></MenuTab>
|
||||||
<!-- 左侧建筑菜单 -->
|
<!-- 左侧建筑菜单 -->
|
||||||
<BuildTree v-if="activateIndex == 0" @handleNodeClick="handleBuildClick"></BuildTree>
|
<BuildTree v-if="activateIndex == 0" isSetTree="true" @handleNodeClick="handleBuildClick"></BuildTree>
|
||||||
<!-- 建筑信息 -->
|
<!-- 建筑信息 -->
|
||||||
<BuildInfo v-if="activateIndex == 0"></BuildInfo>
|
<BuildInfo v-if="buildInfo && activateIndex == 0"></BuildInfo>
|
||||||
<!-- 资产信息 -->
|
<!-- 资产信息 -->
|
||||||
<DevicePie v-if="activateIndex == 0" @openDialog="openDialog"></DevicePie>
|
<DevicePie v-if="deviceInfo && activateIndex == 0" @openDialog="openDialog"></DevicePie>
|
||||||
<!-- 左侧资产菜单 -->
|
<!-- 左侧资产菜单 -->
|
||||||
<DeviceTree v-if="activateIndex == 1" @handleNodeClick="handleDeviceClick"></DeviceTree>
|
<DeviceTree v-if="activateIndex == 1" @handleNodeClick="handleDeviceClick"></DeviceTree>
|
||||||
<!-- 资产信息 -->
|
<!-- 资产信息 -->
|
||||||
<DeviceInfo v-if="activateIndex == 1"></DeviceInfo>
|
<DeviceInfo v-if="equimentInfo && activateIndex == 1"></DeviceInfo>
|
||||||
<!-- 资产事件 -->
|
<!-- 资产事件 -->
|
||||||
<DeviceEvent v-if="activateIndex == 1" @openDialog="openDialog1"></DeviceEvent>
|
<DeviceEvent v-if="activateIndex == 1" @openDialog="openDialog1"></DeviceEvent>
|
||||||
<!-- 左侧应用菜单 -->
|
<!-- 左侧应用菜单 -->
|
||||||
|
@ -23,22 +23,16 @@
|
||||||
<!-- 实时数据 -->
|
<!-- 实时数据 -->
|
||||||
<RealData v-if="activateIndex == 2" @openDialog="openDialog1"></RealData>
|
<RealData v-if="activateIndex == 2" @openDialog="openDialog1"></RealData>
|
||||||
<!-- 资产信息弹出框 -->
|
<!-- 资产信息弹出框 -->
|
||||||
<el-dialog
|
<el-dialog v-model="dialogVisible" title="资产信息" width="1200px" append-to-body>
|
||||||
v-model="dialogVisible"
|
<DeviceInfoDialog @viewDetail="viewDetail"></DeviceInfoDialog>
|
||||||
title="资产信息"
|
|
||||||
width="1200px"
|
|
||||||
append-to-body
|
|
||||||
>
|
|
||||||
<DeviceInfoDialog></DeviceInfoDialog>
|
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-dialog
|
<el-dialog v-model="dialogVisible1" title="实时数据" width="1200px" append-to-body>
|
||||||
v-model="dialogVisible1"
|
|
||||||
title="实时数据"
|
|
||||||
width="1200px"
|
|
||||||
append-to-body
|
|
||||||
>
|
|
||||||
<RealInfoDialog></RealInfoDialog>
|
<RealInfoDialog></RealInfoDialog>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<!-- 资产详情 -->
|
||||||
|
<el-dialog v-model="dialogVisible2" v-if="dialogVisible2" title="资产详情" width="1500px" append-to-body>
|
||||||
|
<DeviceDetial></DeviceDetial>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -56,19 +50,33 @@ import RealData from './components/RealData.vue';
|
||||||
import ThreeView from './components/ThreeView.vue';
|
import ThreeView from './components/ThreeView.vue';
|
||||||
import DeviceInfoDialog from './components/DeviceInfoDialog.vue';
|
import DeviceInfoDialog from './components/DeviceInfoDialog.vue';
|
||||||
import RealInfoDialog from './components/RealInfoDialog.vue';
|
import RealInfoDialog from './components/RealInfoDialog.vue';
|
||||||
|
import DeviceDetial from './components/DeviceDetial.vue';
|
||||||
import bimStore from '@/store/modules/bim';
|
import bimStore from '@/store/modules/bim';
|
||||||
|
import { computed } from 'vue';
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
sceneUrl: '/jz/glb/jz.gltf'
|
sceneUrl: '',
|
||||||
|
equimentInfo: {},
|
||||||
});
|
});
|
||||||
|
|
||||||
const { sceneUrl } = toRefs(data);
|
const { sceneUrl,equimentInfo} = toRefs(data);
|
||||||
const dialogVisible = ref(false);
|
const dialogVisible = ref(false);
|
||||||
const dialogVisible1 = ref(false);
|
const dialogVisible1 = ref(false);
|
||||||
|
const dialogVisible2 = ref(false);
|
||||||
|
|
||||||
const activateIndex = computed(() =>
|
const activateIndex = computed(() =>
|
||||||
bimStore().activateIndex
|
bimStore().activateIndex
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const buildInfo = computed(() =>
|
||||||
|
bimStore().activateTree.info
|
||||||
|
);
|
||||||
|
|
||||||
|
const deviceInfo = computed(() =>
|
||||||
|
bimStore().activateTree.deviceInfo
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const onReady = () => {
|
const onReady = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,22 +86,25 @@ const onError = () => {
|
||||||
const onProgress = () => {
|
const onProgress = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleBuildClick = (value) => {
|
const handleBuildClick = (value, isParent) => {
|
||||||
|
// 点击父级,加载/切换场景
|
||||||
|
if (isParent) {
|
||||||
sceneUrl.value = value.url;
|
sceneUrl.value = value.url;
|
||||||
console.log(sceneUrl.value);
|
console.log(sceneUrl.value);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleDeviceClick = (value) => {
|
const handleDeviceClick = (value) => {
|
||||||
console.log(value);
|
equimentInfo.value = bimStore().activateDevice.info;
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleApplicationClick = (value) => {
|
const handleApplicationClick = (value) => {
|
||||||
console.log(value);
|
console.log(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
const changeMenu = () => {
|
const changeMenu = (index) => {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const openDialog = () => {
|
const openDialog = () => {
|
||||||
|
@ -103,6 +114,11 @@ const openDialog = () => {
|
||||||
const openDialog1 = () => {
|
const openDialog1 = () => {
|
||||||
dialogVisible1.value = true;
|
dialogVisible1.value = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const viewDetail = (val) => {
|
||||||
|
console.log(val);
|
||||||
|
dialogVisible2.value = true;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang='scss' scoped>
|
<style lang='scss' scoped>
|
||||||
.app-container {
|
.app-container {
|
||||||
|
|
Loading…
Reference in New Issue