项目改造,删除AntD组件引用

dev_xd
lj7788@126.com 2025-07-17 15:52:12 +08:00
parent 6d73f7f510
commit 3347dd0be5
8 changed files with 237 additions and 228 deletions

View File

@ -22,7 +22,6 @@
"@rollup/plugin-commonjs": "^28.0.0",
"@vueup/vue-quill": "1.2.0",
"@vueuse/core": "10.11.0",
"ant-design-vue": "^4.2.6",
"axios": "0.28.1",
"bpmn-js": "^11.4.1",
"diagram-js": "^11.9.1",

View File

@ -56,24 +56,12 @@ import DictTag from "@/components/DictTag";
import VForm3 from "@/lib/vform/designer.umd.js";
import "@/lib/vform/designer.style.css";
import dayjs from "dayjs";
import { notification, message, Modal } from "ant-design-vue";
import { ElMessageBox } from 'element-plus'
const app = createApp(App);
notification.config({
placement: "topLeft",
bottom: "50px",
top: "50px",
duration: 3,
});
// 全局方法挂载
app.config.globalProperties.$confirm = Modal.confirm;
app.config.globalProperties.$message = message;
app.config.globalProperties.$notification = notification;
app.config.globalProperties.$info = Modal.info;
app.config.globalProperties.$success = Modal.success;
app.config.globalProperties.$error = Modal.error;
app.config.globalProperties.$warning = Modal.warning;
app.config.globalProperties.$confirm =ElMessageBox.confirm;
app.config.globalProperties.useDict = useDict;
app.config.globalProperties.download = download;
app.config.globalProperties.parseTime = parseTime;

View File

@ -1,6 +1,6 @@
import axios from "axios";
import useBimStore from "@/store/modules/bim";
import notification from "ant-design-vue/es/notification";
import { ElNotification } from 'element-plus'
// 创建 axios 实例
const request = axios.create({
@ -15,15 +15,18 @@ const errorHandler = (error) => {
if (error.response) {
if ([500, 400, 403].some((x) => x === error.response.status)) {
const data = error.response.data;
notification.error({
message: "错误",
description:
data.message ||
ElNotification({
title: "错误",
position: 'bottom-right',
message: data.message ||
(data.error.validationErrors &&
data.error.validationErrors[0].message) ||
data.error.message ||
data.error_description,
});
type: 'error',
})
}
if (error.response.status === 401) {
}

View File

@ -5,7 +5,7 @@
<el-form-item label="经度" prop="latitude">
<el-input v-model="form.latitude" placeholder="例如108.88" />
</el-form-item>
<el-form-item label="纬度" prop="longitude">
<el-form-item label="纬度" prop="longitude" style="margin-top:8px;">
<el-input v-model="form.longitude" placeholder="例如34.2" />
</el-form-item>
</el-form>

View File

@ -1,222 +1,225 @@
<template>
<a-modal title="上传模型" :width="800" :maskClosable="false" :open="visible" :confirmLoading="confirmLoading"
@ok="handleOk" @cancel="hide" ok-text="确定" cancel-text="取消" wrapClassName="upload-model-dialog">
<a-form :model="form" ref="mainFrom" :labelCol="{ span: 4 }" :wrapperCol="{ span: 18 }" :rules="formRules"
class="scroll-box">
<a-form-item label="模型类型" name="options">
<div>
<a-cascader v-model:value="form.options" placeholder="请选择" :options="categoryList"
@change="onChangeOptions"></a-cascader>
</div>
</a-form-item>
<el-dialog title="上传模型" :width="800" :modal-append-to-body="false" :close-on-click-modal="false" v-model="visible"
:before-close="hide" :confirm-loading="confirmLoading" class="upload-model-dialog footer-center">
<el-form :model="form" ref="mainFrom" :label-width="100" :rules="formRules" class="scroll-box">
<el-form-item label="模型类型" prop="options">
<el-cascader ref="elCascader" :show-all-levels="false" v-model="form.options" placeholder="请选择"
:options="categoryList" style="width: 100%;" @change="onChangeOptions"></el-cascader>
</el-form-item>
<div v-if="showScene">
<div v-if="software != 'glb' && software != 'gltf' && software != 'LOD'">
<a-form-item v-if="loType === 'epsg'" class="special-item">
<el-form-item v-if="loType === 'epsg'" class="special-item">
<template #label>
空间参考
<a-tooltip>
<el-icon color="DeepSkyBlue">
<QuestionFilled />
</el-icon>
<template #title>
<el-tooltip>
<template #content>
<div>
<p>
用于确定模型的真实位置此项设置不当将导致处理结果位置不正确甚至处理失败
</p>
<p>
可以填ENU坐标EPSG编码和表示空间参考的PROJ或WKT格式的字符串
</p>
<p>用于确定模型的真实位置此项设置不当将导致处理结果位置不正确甚至处理失败</p>
<p>可以填ENU坐标EPSG编码和表示空间参考的PROJ或WKT格式的字符串</p>
<a href="https://epsg.io" target="_blank">EPSG编码查询</a>
</div>
</template>
</a-tooltip>
<el-icon color="deepskyblue" style="margin-left: 5px">
<QuestionFilled />
</el-icon>
</el-tooltip>
</template>
<el-row>
<el-col :span="16">
<a-textarea v-model:value="srs" placeholder="例如EPSG:4545"
:auto-size="{ minRows: 3, maxRows: 5 }" />
<el-input v-model="srs" placeholder="例如EPSG:4545" type="textarea" :rows="3"></el-input>
</el-col>
<el-col :span="8">
<a-button style="margin-left: 10px" type="primary"
@click="doGetLocaltion">经纬度局部坐标系</a-button>
<a-tooltip>
<el-icon color="DeepSkyBlue">
<QuestionFilled />
</el-icon>
<template #title>
<el-button style="margin-left: 10px" type="primary" @click="doGetLocaltion">
经纬度局部坐标系
</el-button>
<el-tooltip>
<template #content>
<div>
模型底部中心点将与经纬度局部坐标系中的经纬度重合默认经纬度为葛兰岱尔经纬度:ENU:34.2,108.88
</div>
</template>
</a-tooltip>
<el-icon color="deepskyblue" style="margin-left: 5px">
<QuestionFilled />
</el-icon>
</el-tooltip>
<LocalCoordinates ref="localEl" @LocalClose="LocalClose"
@LocalCoordinatesValue="LocalCoordinatesValue"></LocalCoordinates>
@LocalCoordinatesValue="LocalCoordinatesValue">
</LocalCoordinates>
</el-col>
</el-row>
</a-form-item>
<a-form-item v-if="loType === 'epsg'">
</el-form-item>
<el-form-item v-if="loType === 'epsg'">
<template #label>
零点坐标&nbsp;
<a-tooltip>
<el-icon color="DeepSkyBlue">
<QuestionFilled />
</el-icon>
<template #title>
零点坐标
<el-tooltip>
<template #content>
<div>
<p>
指定模型原点相对空间参考的偏移量分为xyz三个方向单位米默认为不偏移(0,0,0)设置此值可以让模型往相应的方向偏移
</p>
<p>
针对
<span style="color: #21ad8d">Revit</span>模型如若模型中项目基点设置了偏移值"北/南""东/西"高程
则轻量化程序将自动提取
<p>指定模型原点相对空间参考的偏移量分为xyz三个方向单位米默认为不偏移(0,0,0)设置此值可以让模型往相应的方向偏移</p>
<p>针对<span
style="color: #21ad8d">Revit</span>模型如若模型中项目基点设置了偏移值"北/南""东/西"高程则轻量化程序将自动提取
</p>
</div>
</template>
</a-tooltip>
<el-icon color="deepskyblue" style="margin-left: 5px">
<QuestionFilled />
</el-icon>
</el-tooltip>
</template>
<a-input v-model:value="srsOrigin" placeholder="例如:[0,0,0]" />
</a-form-item>
<el-input v-model="srsOrigin" placeholder="例如:[0,0,0]" />
</el-form-item>
<a-row v-if="loType != 'epsg'">
<a-col :span="12">
<a-form-item label="经度" :labelCol="{ span: 8 }" :wrapperCol="{ span: 14 }" name="longitude">
<a-input v-model:value="form.longitude" :placeholder="positionType === '2'
? '例如1.9003144895714261'
: '例如108.88'
<el-row v-if="loType != 'epsg'">
<el-col :span="12">
<el-form-item label="经度" prop="longitude">
<el-input v-model="form.longitude" :placeholder="positionType === '2'
? '例如1.9003144895714261'
: '例如108.88'
" />
</a-form-item>
</a-col>
<a-col :span="10">
<a-form-item label="纬度" :labelCol="{ span: 8 }" :wrapperCol="{ span: 16 }" name="latitude">
<a-input v-model:value="form.latitude" :placeholder="positionType === '2'
? '例如0.5969026041820608'
: '例如34.2'
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="纬度" prop="latitude">
<el-input v-model="form.latitude" :placeholder="positionType === '2'
? '例如0.5969026041820608'
: '例如34.2'
" />
</a-form-item>
</a-col>
</a-row>
<a-row v-if="loType != 'epsg'">
<a-col :span="12">
<a-form-item label="高度" :labelCol="{ span: 8 }" :wrapperCol="{ span: 14 }"
name="transHeight">
<a-input v-model:value="form.transHeight" placeholder="例如0" />
</a-form-item>
</a-col>
</a-row>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="loType != 'epsg'">
<el-col :span="12">
<el-form-item label="高度" prop="transHeight">
<el-input v-model="form.transHeight" placeholder="例如0" />
</el-form-item>
</el-col>
</el-row>
</div>
<a-form-item label="LOD模式" v-if="
<el-form-item label="LOD模式" v-if="
category == '1' &&
software != 'glb' &&
software != 'gltf' &&
software != 'LOD'
">
<a-select v-model:value="isLod">
<a-select-option :value="0">不启用</a-select-option>
<a-select-option :value="1">启用</a-select-option>
</a-select>
</a-form-item>
<a-space class="lod-style" v-if="isLod">
<el-select v-model="isLod">
<el-option :value="0" label="不启用"></el-option>
<el-option :value="1" label="启用"></el-option>
</el-select>
</el-form-item>
<el-space class="lod-style" v-if="isLod">
<el-row style="margin-bottom: 20px">
<el-col :span="10">
<div>
<a-form-item label="X轴向切块数" path="xCount" :labelCol="{ span: 9 }"
:wrapperCol="{ span: 12 }">
<a-input-number placeholder="请输入X轴向切块数" v-model:value="modelValue.xCount"
:min="1" />
</a-form-item>
<a-form-item label="Y轴向切块数" path="yCount" :labelCol="{ span: 9 }"
:wrapperCol="{ span: 12 }">
<a-input-number placeholder="请输入Y轴向切块数" v-model:value="modelValue.yCount"
:min="1" />
</a-form-item>
<a-form-item label="Z轴向层级数" path="level" :labelCol="{ span: 9 }"
:wrapperCol="{ span: 12 }">
<a-input-number placeholder="请输入Z轴向层级数" v-model:value="modelValue.level" :min="1" />
</a-form-item>
<el-form-item label="X轴向切块数" prop="xCount">
<el-input-number placeholder="请输入X轴向切块数" v-model="modelValue.xCount" :min="1" />
</el-form-item>
<el-form-item label="Y轴向切块数" prop="yCount">
<el-input-number placeholder="请输入Y轴向切块数" v-model="modelValue.yCount" :min="1" />
</el-form-item>
<el-form-item label="Z轴向层级数" prop="level">
<el-input-number placeholder="请输入Z轴向层级数" v-model="modelValue.level" :min="1" />
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<a-table :columns="columns" :data-source="optionsSelect" :bordered="true"
:pagination="false" :scroll="{ y: 125 }">
<template v-slot:headerCell="{ column }">
<div v-if="column.key === 'num'" style="display: flex; justify-content: center">
<el-col :span="12" style="padding-left:12px;">
<el-table :data="optionsSelect" border height="150">
<el-table-column>
<template #header>
<div>层级配比</div>
</template>
<template #default="scope">
{{ scope.row.label }}
</template>
</el-table-column>
<el-table-column>
<template #header>
<div class="option-btn">
<img src="@/assets/bim/reduce.png" @click="cuttingLayerClick('reduce')" />
<img src="@/assets/bim/add.png" @click="cuttingLayerClick('add')" />
</div>
</div>
</template>
<template v-slot:bodyCell="{ column, record }">
<template v-if="column.key === 'num'">
<a-input placeholder="请输入当前层级配比" v-model:value="record.num">
<template #suffix>%</template>
</a-input>
</template>
</template>
</a-table>
<template #default="scope">
<el-input placeholder="请输入当前层级配比" v-model="scope.row.num">
<template #suffix>%</template>
</el-input>
</template>
</el-table-column>
</el-table>
</el-col>
</el-row>
</a-space>
</el-space>
</div>
<a-form-item v-if="software === 'revit'" label="轻量化模式" name="style">
<a-select v-model:value="form.style">
<a-select-option value="1">真实模式</a-select-option>
<a-select-option value="0">着色模式</a-select-option>
</a-select>
</a-form-item>
<a-form-item v-if="
<el-form-item label="轻量化模式" prop="style" v-if="software === 'revit'">
<el-select v-model="form.style">
<el-option value="1" label="真实模式"></el-option>
<el-option value="0" label="着色模式"></el-option>
</el-select>
</el-form-item>
<el-form-item label="精细度" prop="accuracy" v-if="
software === 'revit' ||
software === 'bentley' ||
software === 'stp|step'
" label="精细度" name="accuracy">
<a-select v-model:value="form.accuracy">
<a-select-option value="3">低精度</a-select-option>
<a-select-option value="5">标准</a-select-option>
<a-select-option value="7">高精度</a-select-option>
</a-select>
</a-form-item>
<a-form-item v-if="software === 'tif'" label="数据类型" name="format">
<a-select v-model:value="form.format">
<a-select-option value="dem">地形数据</a-select-option>
<a-select-option value="dom">影像数据</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="可视距离" v-if="software === 'osgb'" name="visibleDistance">
<a-input v-model:value="form.visibleDistance" />
</a-form-item>
<a-form-item label="选择文件" name="files">
{{ form.files }}
<a-form-item-rest>
<a-input type="hidden" v-model:value="form.files" />
</a-form-item-rest>
<a-upload-dragger :file-list="fileList" @remove="handleRemove" :before-upload="beforeUpload"
:multiple="true" :showUploadList="{ showRemoveIcon: showDelete }" :accept="accept">
<p class="ant-upload-drag-icon">
<el-icon size="40" color="#888">
<Upload />
</el-icon>
</p>
<p class="ant-upload-text">
">
<el-select v-model="form.accuracy">
<el-option value="3" label="低精度"></el-option>
<el-option value="5" label="标准"></el-option>
<el-option value="7" label="高精度"></el-option>
</el-select>
</el-form-item>
<el-form-item label="数据类型" prop="format" v-if="software === 'tif'">
<el-select v-model="form.format">
<el-option value="dem" label="地形数据"></el-option>
<el-option value="dom" label="影像数据"></el-option>
</el-select>
</el-form-item>
<el-form-item label="可视距离" prop="visibleDistance" v-if="software === 'osgb'">
<el-input v-model="form.visibleDistance" />
</el-form-item>
<el-form-item label="选择文件" prop="files">
<el-input type="hidden" v-model="form.files" />
<el-upload action="" :on-remove="handleRemove" :file-list="fileList" :auto-upload="false"
@change="beforeUpload" :multiple="true" :accept="accept" class="upload-dragger" drag
style="width:100%">
<el-icon size="40" color="#888">
<UploadFilled />
</el-icon>
<div class="el-upload__text">
单击或拖动文件到此区域进行上传支持批量上传
</p>
</a-upload-dragger>
<div v-show="progressShow" style="width: 100%">
<a-progress :percent="percent" />
</div>
</el-upload>
<div v-show="progressShow" style="width: 100%; margin-top: 10px">
<el-progress :percentage="percent" />
</div>
</a-form-item>
<a-form-item :wrapperCol="{ offset: 1, span: 21 }" label>
</el-form-item>
<el-form-item>
<div v-if="accept.length > 0" style="color: red">
支持的格式{{ accept.length > 0 ? accept.split(",").join(" ") : "" }}
</div>
<div style="color: #999; line-height: 24px">
<div v-html="description"></div>
</div>
</a-form-item>
</a-form>
</a-modal>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="handleOk" :loading="saveLoading"> </el-button>
<el-button @click="visible = false"> </el-button>
</div>
</template>
</el-dialog>
</template>
<script>
@ -331,10 +334,11 @@ export default {
align: "center",
},
],
saveLoading: false,
};
},
methods: {
doGetLocaltion(){
doGetLocaltion() {
this.$refs.localEl.showDialog();
},
async checkOptions(a, b) {
@ -345,10 +349,12 @@ export default {
}
},
//
onChangeOptions(e, selectedOptions) {
if (selectedOptions && e.length > 0) {
onChangeOptions(e) {
if (e.length > 0) {
let selectedOptions = this.$refs.elCascader.getCheckedNodes()[0].pathNodes.map(d => d.data)
this.showScene = e[0] == 1;
this.fileList = [];
this.form.files = "";
if (e[0] == "3" || e[0] == "4") {
//pak cad
this.accept = selectedOptions[0].accept;
@ -356,7 +362,6 @@ export default {
this.software = selectedOptions[0].sign;
this.description = selectedOptions[0].description;
} else {
// this.accept = [...e].reverse()[0]
this.accept = selectedOptions[selectedOptions.length - 1].accept;
this.category = e[0];
this.software = selectedOptions[1].sign;
@ -373,6 +378,7 @@ export default {
level: 2,
cuttingLayer: 4,
};
console.log("===>", this.accept, this.category, this.software, this.description)
this.cuttingLayerChange(this.modelValue.cuttingLayer);
},
//api
@ -658,6 +664,7 @@ export default {
that.percent = 100;
that.upload = false;
that.confirmLoading = false;
that.saveLoading = false;
that.hide();
},
//
@ -707,8 +714,11 @@ export default {
//
that.showDelete = false;
that.$refs.mainFrom
.validateFields()
.then((values) => {
.validate((b) => {
if (!b) {
return;
}
let values = that.form;
let total = 0;
that.optionsSelect.forEach((item) => {
total += item.num * 1;
@ -722,14 +732,16 @@ export default {
that.$modal.msgError("当前层级配比小于100%,请重新填写");
return;
}
that.confirmLoading = true;
that.progressShow = true;
that.upload = true;
const parentId = values.id;
if (that.fileList.length == 0) {
that.$modal.msgError("请选择文件");
return;
}
that.confirmLoading = true;
that.progressShow = true;
that.upload = true;
that.saveLoading = true;
const parentId = values.id;
document.querySelector(".upload-model-dialog .el-dialog__body").scrollTop = 99999;
if (that.uploadType == "0") {
if (that.fileList.length > 1) {
that.$message.warning("此时为单模型上传默认上传");
@ -768,7 +780,7 @@ export default {
}
);
} else {
const res = await splitResult(file, 1024 * 1024 * 2);
const res = await splitResult(file.raw, 1024 * 1024 * 2);
that.chunkList = res.chunkList;
const suffixName = that.accept
.split(",")
@ -792,7 +804,6 @@ export default {
this.form.files = this.fileList.map((x) => x.uid).join(",");
},
beforeUpload(file) {
debugger;
if (
this.category == "1" &&
this.software != "glt" &&
@ -860,6 +871,7 @@ export default {
this.category = options[0];
this.software = label[1];
this.showScene = options[0] == 1;
}
if (file.name.split(".")[0].length <= 50) {
this.fileList = [...this.fileList, file];
@ -947,6 +959,9 @@ export default {
return 100 - index;
},
},
mounted() {
window.upDlg = this
}
};
</script>
@ -1034,17 +1049,25 @@ export default {
color: #21ad8d;
}
}
</style>
<style lang="scss">
.upload-model-dialog {
.lod-style {
align-items: start !important;
width: 100%;
.ant-space-item {
width: 45%;
.el-space__item {
width: 100%;
.ant-input-number {
.el-input-number {
width: 100%;
}
.ant-table {
.el-table {
border-bottom: 1px solid rgba(232, 232, 232, 0.5);
tr>td,
@ -1094,11 +1117,4 @@ export default {
}
}
}
</style>
<style lang="scss">
.upload-model-dialog {
.ant-modal-footer {
text-align: center;
}
}
</style>

View File

@ -3,31 +3,31 @@
<div id="bimSettingContainer"></div>
<model-floor-tree ref="modelFloorTree" @change="doChange" @modelAdd="modelAdded" :projectMessage="models" v-if="showTree"></model-floor-tree>
<div class="footer-box" v-if="showModels.length > 0">
<a-tooltip placement="top" title="主视图">
<el-tooltip placement="top" content="主视图">
<div class="footer-btn" @click="doMenu(0)" :class="activeMenu == 0 ? 'is-active' : ''">
<svg-icon icon-class="home" />
</div>
</a-tooltip>
<a-tooltip placement="top" title="第一人称漫游">
</el-tooltip>
<el-tooltip placement="top" content="第一人称漫游">
<div class="footer-btn" @click="doMenu(1)" :class="activeMenu == 1 ? 'is-active' : ''">
<svg-icon icon-class="roam" />
</div>
</a-tooltip>
<a-tooltip placement="top" title="自定义视点漫游">
</el-tooltip>
<el-tooltip placement="top" content="自定义视点漫游">
<div class="footer-btn" @click="doMenu(2)" :class="activeMenu == 2 ? 'is-active' : ''">
<svg-icon icon-class="view" />
</div>
</a-tooltip>
<a-tooltip placement="top" title="视点管理">
</el-tooltip>
<el-tooltip placement="top" content="视点管理">
<div class="footer-btn" @click="doMenu(3)" :class="activeMenu == 3 ? 'is-active' : ''">
<svg-icon icon-class="camera" />
</div>
</a-tooltip>
<a-tooltip placement="top" title="构件隐藏">
</el-tooltip>
<el-tooltip placement="top" content="构件隐藏">
<div class="footer-btn" @click="doMenu(4)" :class="activeMenu == 4 ? 'is-active' : ''">
<svg-icon icon-class="hide" />
</div>
</a-tooltip>
</el-tooltip>
</div>
<div class="bim-setting-tools" v-show="activeMenu > 0">
<div class="tools-title">
@ -55,12 +55,14 @@ import ModelFloorTree from "./ModelFloorTree.vue";
import PersonRoaming from "./PersonRoaming.vue";
import CustomViewpoint from "./CustomViewpoint.vue";
import Viewpoint from "./Viewpoint.vue";
import { ElMessage, ElTooltip } from 'element-plus';
export default {
components: {
ModelFloorTree,
PersonRoaming,
CustomViewpoint,
Viewpoint,
ElTooltip
},
data() {
return {
@ -234,7 +236,7 @@ export default {
return it;
});
if (this.models.length == 0) {
this.$modal.msgError("暂无模型,请先关联模型");
ElMessage.error("暂无模型,请先关联模型");
} else {
this.showTree = true;
}

View File

@ -4,31 +4,31 @@
<div id="bimSandTableSettingContainer" class="bimSandTableSettingContainer"></div>
</div>
<div class="footer-box" v-if="models.length > 0">
<a-tooltip placement="top" title="主视图">
<el-tooltip placement="top" content="主视图">
<div class="footer-btn" @click="doMenu(0)" :class="activeMenu == 0 ? 'is-active' : ''">
<svg-icon icon-class="home" />
</div>
</a-tooltip>
<a-tooltip placement="top" title="视频监控">
</el-tooltip>
<el-tooltip placement="top" content="视频监控">
<div class="footer-btn" @click="doMenu(1)" :class="activeMenu == 1 ? 'is-active' : ''">
<svg-icon icon-class="videoMonitor" />
</div>
</a-tooltip>
<a-tooltip placement="top" title="基坑监控">
</el-tooltip>
<el-tooltip placement="top" content="基坑监控">
<div class="footer-btn" @click="doMenu(2)" :class="activeMenu == 2 ? 'is-active' : ''">
<svg-icon icon-class="pitMonitor" />
</div>
</a-tooltip>
<a-tooltip placement="top" title="塔机监控">
</el-tooltip>
<el-tooltip placement="top" content="塔机监控">
<div class="footer-btn" @click="doMenu(3)" :class="activeMenu == 3 ? 'is-active' : ''">
<svg-icon icon-class="towerMonitor" />
</div>
</a-tooltip>
<a-tooltip placement="top" title="电箱监控">
</el-tooltip>
<el-tooltip placement="top" content="电箱监控">
<div class="footer-btn" @click="doMenu(4)" :class="activeMenu == 4 ? 'is-active' : ''">
<svg-icon icon-class="power" />
</div>
</a-tooltip>
</el-tooltip>
</div>
<div class="bim-setting-tools" v-show="activeMenu > 0">
<div class="tools-title">
@ -73,7 +73,7 @@
<script>
import useUserStore from "@/store/modules/user";
import { listBimModel } from "@/api/bim/bimModel";
import { ElMessage, ElMessageBox } from "element-plus";
import { ElMessage, ElMessageBox, ElTooltip } from "element-plus";
import { emitter } from "@/router/index.js";
import { devicePositionGet, devicePositionAddItems, devicePositionUpdateItems,getDefaultViewPoint } from "@/api/bim/bim.js";
@ -82,6 +82,7 @@ export default {
name: "SandTableSetting",
components: {
// attItem
ElTooltip
},
data() {
return {
@ -123,7 +124,7 @@ export default {
this.toSave();
}, 300),
toSave() {
this.$confirm("确认保存修改?", "提示", {
ElMessageBox.confirm("确认保存修改?", "提示", {
type: "warning",
confirmButtonText: "确 认",
cancelButtonText: "取 消",
@ -366,7 +367,7 @@ export default {
}).then((d) => {
this.models = d.rows || [];
if (this.models.length == 0) {
this.$modal.msgError("暂无模型,请先关联模型");
ElMessage.error("暂无模型,请先关联模型");
} else {
this.models.forEach((item) => {
this.addModel(item.lightweightName);

View File

@ -128,7 +128,7 @@ import { listGreenCarbonItem } from '@/api/manage/greenCarbonItem'
import greenCarbonData, { getGreenCarbon } from '../greenCarbonItem/greenCarbonData'
import useUserStore from '@/store/modules/user'
import { onMounted } from 'vue'
import { toFixed } from 'ant-design-vue/es/input-number/src/utils/MiniDecimal'
const { proxy } = getCurrentInstance()
const userStore = useUserStore()