|
@@ -1,48 +1,84 @@
|
|
|
<template>
|
|
|
- <div id="bd-fl-manage">
|
|
|
- <el-row>
|
|
|
- <div class="l-list">
|
|
|
- <div class="action-box">
|
|
|
- <div>
|
|
|
- <el-button @click="addBuild" icon="el-icon-plus" size="small" type="default" />
|
|
|
- <el-button @click="delBuild" icon="el-icon-minus" size="small" type="default" :disabled="!buildList.length" />
|
|
|
- <el-button @click="editBuild" icon="el-icon-edit-outline" size="small" type="default" :disabled="!buildList.length" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <h4>建筑</h4>
|
|
|
- <div class="build-list">
|
|
|
- <div
|
|
|
- :class="{ 'floor-item': true, active: item.active }"
|
|
|
- :key="item.id"
|
|
|
- @click="changeBuild(index)"
|
|
|
- style="cursor: pointer"
|
|
|
- v-for="(item, index) in buildList"
|
|
|
- >
|
|
|
- <span>
|
|
|
- {{ item.localName || item.name }}
|
|
|
- <el-badge :value="item.count" class="mark" v-if="item.count > 0" />
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="r-table" v-if="buildList.length > 0">
|
|
|
- <div class="action-box">
|
|
|
- <el-button @click="addFloor" size="small" type="default">添加楼层 </el-button>
|
|
|
- </div>
|
|
|
- <div class="table-box">
|
|
|
- <el-table :data="tableData" :header-cell-style="headerStyle" height="100%" style="width: 100%" v-loading="loading">
|
|
|
- <el-table-column label="楼层本地名">
|
|
|
- <template slot-scope="scope">{{ scope.row.localName }}</template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="楼层顺序号">
|
|
|
- <template slot-scope="scope">{{ scope.row.floorSequenceID }}</template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="楼层信息">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button @click="editFloorData(scope.row)" icon="el-icon-edit-outline" plain size="mini"></el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="平面图" prop="dataSource">
|
|
|
+ <div id="bd-fl-manage">
|
|
|
+ <el-row>
|
|
|
+ <div class="l-list">
|
|
|
+ <div class="action-box">
|
|
|
+ <div>
|
|
|
+ <el-button
|
|
|
+ @click="addBuild"
|
|
|
+ icon="el-icon-plus"
|
|
|
+ size="small"
|
|
|
+ type="default"
|
|
|
+ />
|
|
|
+ <el-button
|
|
|
+ @click="delBuild"
|
|
|
+ icon="el-icon-minus"
|
|
|
+ size="small"
|
|
|
+ type="default"
|
|
|
+ :disabled="!buildList.length"
|
|
|
+ />
|
|
|
+ <el-button
|
|
|
+ @click="editBuild"
|
|
|
+ icon="el-icon-edit-outline"
|
|
|
+ size="small"
|
|
|
+ type="default"
|
|
|
+ :disabled="!buildList.length"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <h4>建筑</h4>
|
|
|
+ <div class="build-list">
|
|
|
+ <div
|
|
|
+ :class="{ 'floor-item': true, active: item.active }"
|
|
|
+ :key="item.id"
|
|
|
+ @click="changeBuild(index)"
|
|
|
+ style="cursor: pointer"
|
|
|
+ v-for="(item, index) in buildList"
|
|
|
+ >
|
|
|
+ <span>
|
|
|
+ {{ item.localName || item.name }}
|
|
|
+ <el-badge
|
|
|
+ :value="item.count"
|
|
|
+ class="mark"
|
|
|
+ v-if="item.count > 0"
|
|
|
+ />
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="r-table" v-if="buildList.length > 0">
|
|
|
+ <div class="action-box">
|
|
|
+ <el-button @click="addFloor" size="small" type="default"
|
|
|
+ >添加楼层
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ <div class="table-box">
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ :header-cell-style="headerStyle"
|
|
|
+ height="100%"
|
|
|
+ style="width: 100%"
|
|
|
+ v-loading="loading"
|
|
|
+ >
|
|
|
+ <el-table-column label="楼层本地名">
|
|
|
+ <template slot-scope="scope">{{ scope.row.localName }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="楼层顺序号">
|
|
|
+ <template slot-scope="scope">{{
|
|
|
+ scope.row.floorSequenceID
|
|
|
+ }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="楼层信息">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ @click="editFloorData(scope.row)"
|
|
|
+ icon="el-icon-edit-outline"
|
|
|
+ plain
|
|
|
+ size="mini"
|
|
|
+ ></el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <!-- <el-table-column label="平面图" prop="dataSource">
|
|
|
<template slot-scope="scope">
|
|
|
<p @click="checkDrawImg(scope.row, 2)" v-if="scope.row.sign > 0">
|
|
|
<el-badge is-dot>
|
|
@@ -65,34 +101,61 @@
|
|
|
<span style="margin-right: 20px">{{ scope.row.floorThroughList ? scope.row.floorThroughList.length : 0 }}</span>
|
|
|
<el-button @click="changeConnection(scope.row)" icon="el-icon-edit-outline" plain size="mini" />
|
|
|
</template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="操作" prop="action">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button @click="handleDelete(scope.row)" icon="el-icon-delete" plain size="mini" type="danger" />
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-else class="r-table">
|
|
|
- <div class="center" style="margin-top: 300px"><i class="icon-wushuju iconfont"></i> 请先在左侧创建建筑</div>
|
|
|
- </div>
|
|
|
- </el-row>
|
|
|
- <!-- 添加-修改楼层 -->
|
|
|
- <addFloor :curBuildId="curBuildId" :curFloorId="curFloorId" :title="floorTitle" @refresh="refresh" ref="addFloorDialog" />
|
|
|
- <!-- 添加-修改建筑 :currentType="currentType"-->
|
|
|
- <addBuild :buildTitle="buildTitle" ref="addBuildDialog" :buildMessage="buildMessage" @handleBuild="handleBuild" />
|
|
|
- <!-- 删除建筑-删除楼层 -->
|
|
|
- <el-dialog :visible.sync="delDialogVis" @close="handleClose" id="messageDialog" title="提示" width="20%">
|
|
|
- <div>确定要删除该{{ delText }}?</div>
|
|
|
- <span class="dialog-footer" slot="footer">
|
|
|
- <el-button @click="delDialogVis = false" size="small">取消</el-button>
|
|
|
- <el-button @click="confirmDel" size="small" type="primary">确认</el-button>
|
|
|
- </span>
|
|
|
- </el-dialog>
|
|
|
- <!-- 添加贯通关系弹窗 -->
|
|
|
- <addConnectivity @refresh="refresh" ref="addConnectivity" />
|
|
|
- </div>
|
|
|
+ </el-table-column> -->
|
|
|
+ <el-table-column label="操作" prop="action">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ @click="handleDelete(scope.row)"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ plain
|
|
|
+ size="mini"
|
|
|
+ type="danger"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-else class="r-table">
|
|
|
+ <div class="center" style="margin-top: 300px">
|
|
|
+ <i class="icon-wushuju iconfont"></i> 请先在左侧创建建筑
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-row>
|
|
|
+ <!-- 添加-修改楼层 -->
|
|
|
+ <addFloor
|
|
|
+ :curBuildId="curBuildId"
|
|
|
+ :curFloorId="curFloorId"
|
|
|
+ :title="floorTitle"
|
|
|
+ @refresh="refresh"
|
|
|
+ ref="addFloorDialog"
|
|
|
+ />
|
|
|
+ <!-- 添加-修改建筑 :currentType="currentType"-->
|
|
|
+ <addBuild
|
|
|
+ :buildTitle="buildTitle"
|
|
|
+ ref="addBuildDialog"
|
|
|
+ :buildMessage="buildMessage"
|
|
|
+ @handleBuild="handleBuild"
|
|
|
+ />
|
|
|
+ <!-- 删除建筑-删除楼层 -->
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="delDialogVis"
|
|
|
+ @close="handleClose"
|
|
|
+ id="messageDialog"
|
|
|
+ title="提示"
|
|
|
+ width="20%"
|
|
|
+ >
|
|
|
+ <div>确定要删除该{{ delText }}?</div>
|
|
|
+ <span class="dialog-footer" slot="footer">
|
|
|
+ <el-button @click="delDialogVis = false" size="small">取消</el-button>
|
|
|
+ <el-button @click="confirmDel" size="small" type="primary"
|
|
|
+ >确认</el-button
|
|
|
+ >
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 添加贯通关系弹窗 -->
|
|
|
+ <addConnectivity @refresh="refresh" ref="addConnectivity" />
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
@@ -105,363 +168,385 @@ import DicController from "@/controller/old-adm/dicController";
|
|
|
import ScanController from "@/controller/old-adm/ScanController";
|
|
|
|
|
|
export default {
|
|
|
- components: {
|
|
|
- addFloor,
|
|
|
- addBuild,
|
|
|
- addConnectivity,
|
|
|
+ components: {
|
|
|
+ addFloor,
|
|
|
+ addBuild,
|
|
|
+ addConnectivity,
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ repetitionGraphyVisible: false, // 替换平面图弹窗
|
|
|
+ floorTitle: "添加楼层",
|
|
|
+ buildTitle: "添加建筑",
|
|
|
+ delDialogVis: false,
|
|
|
+ delText: "建筑",
|
|
|
+ headerStyle: {
|
|
|
+ backgroundColor: "#d9d9d9",
|
|
|
+ color: "#2b2b2b",
|
|
|
+ lineHeight: "30px",
|
|
|
+ },
|
|
|
+ buildList: [],
|
|
|
+ tableData: [],
|
|
|
+ page: {
|
|
|
+ pageSize: 500,
|
|
|
+ pageSizes: [10, 20, 50, 100],
|
|
|
+ pageNumber: 1,
|
|
|
+ total: 0,
|
|
|
+ },
|
|
|
+ loading: false, //列表loading
|
|
|
+ curBuildId: "", //当前选中的建筑id
|
|
|
+ curBuildName: "", //当前选中建筑的名称
|
|
|
+ curFloorId: "", //当前选中的楼层id
|
|
|
+ modelId: "",
|
|
|
+ buildMessage: {},
|
|
|
+ selectedBuildIndex: 0,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapGetters("layout", ["projectId"]),
|
|
|
+ },
|
|
|
+ mounted() {},
|
|
|
+ created() {
|
|
|
+ this.init();
|
|
|
+ this.handleBuildQuery();
|
|
|
+ this.handleSearchBuildKey();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ init() {
|
|
|
+ let bdParam = {
|
|
|
+ orders: "localName asc",
|
|
|
+ pageNumber: 1,
|
|
|
+ pageSize: 500,
|
|
|
+ };
|
|
|
+ ScanController.buildingQueryAndCount(bdParam).then((res) => {
|
|
|
+ this.buildList = res.content;
|
|
|
+ if (this.buildList.length) {
|
|
|
+ // 如果存在建筑id,则将当前选择建筑置为该建筑
|
|
|
+ if (this.$route.query.buildingId) {
|
|
|
+ this.selectedBuildIndex = this.buildList.findIndex(
|
|
|
+ (item) => item.id === this.$route.query.buildingId
|
|
|
+ );
|
|
|
+ }
|
|
|
+ this.changeBuild(
|
|
|
+ this.selectedBuildIndex > this.buildList.length - 1
|
|
|
+ ? 0
|
|
|
+ : this.selectedBuildIndex
|
|
|
+ );
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
- data() {
|
|
|
- return {
|
|
|
- repetitionGraphyVisible: false, // 替换平面图弹窗
|
|
|
- floorTitle: "添加楼层",
|
|
|
- buildTitle: "添加建筑",
|
|
|
- delDialogVis: false,
|
|
|
- delText: "建筑",
|
|
|
- headerStyle: {
|
|
|
- backgroundColor: "#d9d9d9",
|
|
|
- color: "#2b2b2b",
|
|
|
- lineHeight: "30px",
|
|
|
- },
|
|
|
- buildList: [],
|
|
|
- tableData: [],
|
|
|
- page: {
|
|
|
- pageSize: 500,
|
|
|
- pageSizes: [10, 20, 50, 100],
|
|
|
- pageNumber: 1,
|
|
|
- total: 0,
|
|
|
- },
|
|
|
- loading: false, //列表loading
|
|
|
- curBuildId: "", //当前选中的建筑id
|
|
|
- curBuildName: "", //当前选中建筑的名称
|
|
|
- curFloorId: "", //当前选中的楼层id
|
|
|
- modelId: "",
|
|
|
- buildMessage: {},
|
|
|
- selectedBuildIndex: 0,
|
|
|
- };
|
|
|
+ //change build
|
|
|
+ changeBuild(index) {
|
|
|
+ this.selectedBuildIndex = index;
|
|
|
+ this.buildList.map((item) => {
|
|
|
+ item.active = false;
|
|
|
+ return item;
|
|
|
+ });
|
|
|
+ this.buildList[index].active = true;
|
|
|
+ this.curBuildId = this.buildList[index].id;
|
|
|
+ this.curBuildName =
|
|
|
+ this.buildList[index].localName || this.buildList[index].name;
|
|
|
+ this.getFloorTableData();
|
|
|
+ this.$forceUpdate();
|
|
|
},
|
|
|
- computed: {
|
|
|
- ...mapGetters("layout", ["projectId"]),
|
|
|
+ //add build
|
|
|
+ addBuild() {
|
|
|
+ // this.$message.warning("开发中...");
|
|
|
+ // return;
|
|
|
+ this.buildTitle = "添加建筑";
|
|
|
+ this.$refs.addBuildDialog.showDialog();
|
|
|
+ this.handleSearchBuildKey();
|
|
|
},
|
|
|
- mounted() {},
|
|
|
- created() {
|
|
|
- this.init();
|
|
|
- this.handleBuildQuery();
|
|
|
- this.handleSearchBuildKey();
|
|
|
- },
|
|
|
- methods: {
|
|
|
- init() {
|
|
|
- let bdParam = {
|
|
|
- orders: "localName asc",
|
|
|
- pageNumber: 1,
|
|
|
- pageSize: 500,
|
|
|
- };
|
|
|
- ScanController.buildingQueryAndCount(bdParam).then((res) => {
|
|
|
- this.buildList = res.content;
|
|
|
- if (this.buildList.length) {
|
|
|
- // 如果存在建筑id,则将当前选择建筑置为该建筑
|
|
|
- if (this.$route.query.buildingId) {
|
|
|
- this.selectedBuildIndex = this.buildList.findIndex((item) => item.id === this.$route.query.buildingId);
|
|
|
- }
|
|
|
- this.changeBuild(this.selectedBuildIndex > this.buildList.length - 1 ? 0 : this.selectedBuildIndex);
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- //change build
|
|
|
- changeBuild(index) {
|
|
|
- this.selectedBuildIndex = index;
|
|
|
- this.buildList.map((item) => {
|
|
|
- item.active = false;
|
|
|
- return item;
|
|
|
- });
|
|
|
- this.buildList[index].active = true;
|
|
|
- this.curBuildId = this.buildList[index].id;
|
|
|
- this.curBuildName = this.buildList[index].localName || this.buildList[index].name;
|
|
|
- this.getFloorTableData();
|
|
|
- this.$forceUpdate();
|
|
|
- },
|
|
|
- //add build
|
|
|
- addBuild() {
|
|
|
- // this.$message.warning("开发中...");
|
|
|
- // return;
|
|
|
- this.buildTitle = "添加建筑";
|
|
|
- this.$refs.addBuildDialog.showDialog();
|
|
|
- this.handleSearchBuildKey();
|
|
|
- },
|
|
|
- handleSearchBuildKey() {
|
|
|
- let params = {
|
|
|
- type: "building",
|
|
|
- pageNumber: 1,
|
|
|
- pageSize: 1000,
|
|
|
- orders: "sort asc, name desc",
|
|
|
- };
|
|
|
- DicController.getDataDictionary(params).then((res) => {
|
|
|
- let first = {};
|
|
|
- //一级循环出来一级标签
|
|
|
- let list = res.content.filter((i) => i.firstName !== "工作历" && i.firstName !== "能耗信息" && i.firstName !== "人员信息");
|
|
|
- list.map((item) => {
|
|
|
- // console.table(item.category, item.dataType)
|
|
|
- const category = ["ENUM", "MENUM", "BOOLEAN"];
|
|
|
- if (item.category == "STATIC" && item.dataType.includes(category) && item.dataSource) {
|
|
|
- item.options = item.dataSource;
|
|
|
- item.props = {
|
|
|
- value: "code",
|
|
|
- label: "name",
|
|
|
- children: "content",
|
|
|
- checkStrictly: true,
|
|
|
- };
|
|
|
- }
|
|
|
- if (first[item.firstName] && first[item.firstName].length) {
|
|
|
- } else {
|
|
|
- first[item.firstName] = [];
|
|
|
- }
|
|
|
- if (item.path !== "infos.areaTree") {
|
|
|
- //DefaultQRCode,BuildQRCode 不再维护
|
|
|
- first[item.firstName].push({
|
|
|
- InfoPointName: item.name,
|
|
|
- InfoPointCode: item.code,
|
|
|
- Visible: item.visible,
|
|
|
- UnDisabled: item.unDisabled,
|
|
|
- SecondName: item.secondName ? item.secondName : "",
|
|
|
- options: item.dataSource,
|
|
|
- props: item.props,
|
|
|
- Unit: item.unit,
|
|
|
- Path: item.path,
|
|
|
- dataType: item.dataType,
|
|
|
- category: item.category,
|
|
|
- editable: item.editable,
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
- this.buildMessage = first;
|
|
|
- });
|
|
|
- },
|
|
|
- //delete build ,根据id删除建筑信息
|
|
|
- delBuild() {
|
|
|
- this.delText = "建筑";
|
|
|
- this.delDialogVis = true;
|
|
|
- },
|
|
|
- //edit build
|
|
|
- editBuild() {
|
|
|
- this.buildTitle = "编辑建筑";
|
|
|
- this.handleSearchBuildKey();
|
|
|
- let list = this.currentBuildList.filter((i) => i.id === this.curBuildId);
|
|
|
- let obj = {};
|
|
|
- for (let i = 0; i < list.length; i++) {
|
|
|
- obj = list[i];
|
|
|
- }
|
|
|
- this.$refs.addBuildDialog.showDialog(obj);
|
|
|
- },
|
|
|
- handleFile(val, name) {},
|
|
|
- // handleBuild 获取建筑信息
|
|
|
- handleBuild(val) {
|
|
|
- let newform = tools.formatData(val);
|
|
|
- let Param = {
|
|
|
- content: [newform],
|
|
|
- };
|
|
|
- if (newform.id) {
|
|
|
- ScanController.objectUpdateBuild(Param).then((res) => {
|
|
|
- this.$message.success("更新成功");
|
|
|
- this.$refs.addBuildDialog.closeDialog();
|
|
|
- });
|
|
|
- } else {
|
|
|
- ScanController.objectCreateBuild(Param).then((res) => {
|
|
|
- this.$message.success("创建成功");
|
|
|
- this.$refs.addBuildDialog.closeDialog();
|
|
|
- });
|
|
|
- }
|
|
|
- setTimeout(() => {
|
|
|
- this.handleBuildQuery();
|
|
|
- this.init();
|
|
|
- }, 500);
|
|
|
- },
|
|
|
- //delete floor
|
|
|
- handleDelete(floor) {
|
|
|
- this.delText = "楼层";
|
|
|
- this.delDialogVis = true;
|
|
|
- this.curFloorId = floor.id;
|
|
|
- },
|
|
|
- //确认删除弹窗关闭
|
|
|
- handleClose() {},
|
|
|
- addFloor() {
|
|
|
- this.curFloorId = "";
|
|
|
- this.floorTitle = "添加楼层";
|
|
|
- this.$refs.addFloorDialog.showDialog();
|
|
|
- },
|
|
|
- // 获取列表
|
|
|
- getFloorTableData() {
|
|
|
- let floorParam = {
|
|
|
- cascade: [{ name: "floorThroughList" }],
|
|
|
- orders: "floorSequenceID desc",
|
|
|
- pageNumber: this.page.pageNumber,
|
|
|
- pageSize: this.page.pageSize,
|
|
|
- filters: `buildingId='${this.curBuildId}'`,
|
|
|
- };
|
|
|
- ScanController.floorQueryAndSign(floorParam).then((res) => {
|
|
|
- this.tableData = res.content;
|
|
|
- this.page.total = res.total;
|
|
|
- });
|
|
|
- },
|
|
|
- // 创建楼层成功-修改关系成功
|
|
|
- refresh() {
|
|
|
- this.getFloorTableData();
|
|
|
- },
|
|
|
- // 确认删除(删除建筑-楼层公用)
|
|
|
- confirmDel() {
|
|
|
- if (this.delText == "楼层") {
|
|
|
- let delParam = [{ id: this.curFloorId }];
|
|
|
- this.delDialogVis = false;
|
|
|
- ScanController.deleteFloorInfo(delParam).then((res) => {
|
|
|
- this.$message.success("删除成功");
|
|
|
- this.init();
|
|
|
- });
|
|
|
- } else {
|
|
|
- // 删除建筑
|
|
|
- if (this.tableData && this.tableData.length) {
|
|
|
- this.$message.error("当前建筑中包含楼层,不可删除");
|
|
|
- this.delDialogVis = false;
|
|
|
- } else {
|
|
|
- let param = [{ id: this.curBuildId }];
|
|
|
- this.delDialogVis = false;
|
|
|
- ScanController.deleteBuildInfo(param).then((res) => {
|
|
|
- this.$message.success("删除成功");
|
|
|
- this.handleBuildQuery();
|
|
|
- this.init();
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- // 修改楼层信息
|
|
|
- editFloorData(floor) {
|
|
|
- this.floorTitle = "编辑楼层信息";
|
|
|
- this.curFloorId = floor.id;
|
|
|
- this.$refs.addFloorDialog.showDialog(floor);
|
|
|
- },
|
|
|
- // 修改楼层贯通关系
|
|
|
- changeConnection(row) {
|
|
|
- this.$refs.addConnectivity.showDialog();
|
|
|
- this.$refs.addConnectivity.floor = row;
|
|
|
- },
|
|
|
- // 查看平面图
|
|
|
- checkDrawImg(row, index) {
|
|
|
- if (3 == index) {
|
|
|
- this.modelId = "";
|
|
|
- } else if (index == 1) {
|
|
|
- this.modelId = row.infos.floorMap;
|
|
|
- } else {
|
|
|
- this.modelId = row.modelId;
|
|
|
- }
|
|
|
- const pa = { modelId: this.modelId, FloorID: row.id, BuildID: row.buildingId, BuildName: this.curBuildName, FloorName: row.localName };
|
|
|
- this.$router.push({ name: "repetitionGraphy", query: pa });
|
|
|
- },
|
|
|
- // 查询建筑信息
|
|
|
- handleBuildQuery() {
|
|
|
- let param = {
|
|
|
- projectId: this.projectId,
|
|
|
- orders: "localName asc",
|
|
|
- pageNumber: 1,
|
|
|
- pageSize: 500,
|
|
|
+ handleSearchBuildKey() {
|
|
|
+ let params = {
|
|
|
+ type: "building",
|
|
|
+ pageNumber: 1,
|
|
|
+ pageSize: 1000,
|
|
|
+ orders: "sort asc, name desc",
|
|
|
+ };
|
|
|
+ DicController.getDataDictionary(params).then((res) => {
|
|
|
+ let first = {};
|
|
|
+ //一级循环出来一级标签
|
|
|
+ let list = res.content.filter(
|
|
|
+ (i) =>
|
|
|
+ i.firstName !== "工作历" &&
|
|
|
+ i.firstName !== "能耗信息" &&
|
|
|
+ i.firstName !== "人员信息"
|
|
|
+ );
|
|
|
+ list.map((item) => {
|
|
|
+ // console.table(item.category, item.dataType)
|
|
|
+ const category = ["ENUM", "MENUM", "BOOLEAN"];
|
|
|
+ if (
|
|
|
+ item.category == "STATIC" &&
|
|
|
+ item.dataType.includes(category) &&
|
|
|
+ item.dataSource
|
|
|
+ ) {
|
|
|
+ item.options = item.dataSource;
|
|
|
+ item.props = {
|
|
|
+ value: "code",
|
|
|
+ label: "name",
|
|
|
+ children: "content",
|
|
|
+ checkStrictly: true,
|
|
|
};
|
|
|
- ScanController.objectQueryBuild(param).then((res) => {
|
|
|
- this.currentBuildList = res.content;
|
|
|
+ }
|
|
|
+ if (first[item.firstName] && first[item.firstName].length) {
|
|
|
+ } else {
|
|
|
+ first[item.firstName] = [];
|
|
|
+ }
|
|
|
+ if (item.path !== "infos.areaTree") {
|
|
|
+ //DefaultQRCode,BuildQRCode 不再维护
|
|
|
+ first[item.firstName].push({
|
|
|
+ InfoPointName: item.name,
|
|
|
+ InfoPointCode: item.code,
|
|
|
+ Visible: item.visible,
|
|
|
+ UnDisabled: item.unDisabled,
|
|
|
+ SecondName: item.secondName ? item.secondName : "",
|
|
|
+ options: item.dataSource,
|
|
|
+ props: item.props,
|
|
|
+ Unit: item.unit,
|
|
|
+ Path: item.path,
|
|
|
+ dataType: item.dataType,
|
|
|
+ category: item.category,
|
|
|
+ editable: item.editable,
|
|
|
});
|
|
|
- },
|
|
|
+ }
|
|
|
+ });
|
|
|
+ this.buildMessage = first;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //delete build ,根据id删除建筑信息
|
|
|
+ delBuild() {
|
|
|
+ this.delText = "建筑";
|
|
|
+ this.delDialogVis = true;
|
|
|
+ },
|
|
|
+ //edit build
|
|
|
+ editBuild() {
|
|
|
+ this.buildTitle = "编辑建筑";
|
|
|
+ this.handleSearchBuildKey();
|
|
|
+ let list = this.currentBuildList.filter((i) => i.id === this.curBuildId);
|
|
|
+ let obj = {};
|
|
|
+ for (let i = 0; i < list.length; i++) {
|
|
|
+ obj = list[i];
|
|
|
+ }
|
|
|
+ this.$refs.addBuildDialog.showDialog(obj);
|
|
|
},
|
|
|
- watch: {
|
|
|
- projectId() {
|
|
|
+ handleFile(val, name) {},
|
|
|
+ // handleBuild 获取建筑信息
|
|
|
+ handleBuild(val) {
|
|
|
+ let newform = tools.formatData(val);
|
|
|
+ let Param = {
|
|
|
+ content: [newform],
|
|
|
+ };
|
|
|
+ if (newform.id) {
|
|
|
+ ScanController.objectUpdateBuild(Param).then((res) => {
|
|
|
+ this.$message.success("更新成功");
|
|
|
+ this.$refs.addBuildDialog.closeDialog();
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ ScanController.objectCreateBuild(Param).then((res) => {
|
|
|
+ this.$message.success("创建成功");
|
|
|
+ this.$refs.addBuildDialog.closeDialog();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ setTimeout(() => {
|
|
|
+ this.handleBuildQuery();
|
|
|
+ this.init();
|
|
|
+ }, 500);
|
|
|
+ },
|
|
|
+ //delete floor
|
|
|
+ handleDelete(floor) {
|
|
|
+ this.delText = "楼层";
|
|
|
+ this.delDialogVis = true;
|
|
|
+ this.curFloorId = floor.id;
|
|
|
+ },
|
|
|
+ //确认删除弹窗关闭
|
|
|
+ handleClose() {},
|
|
|
+ addFloor() {
|
|
|
+ this.curFloorId = "";
|
|
|
+ this.floorTitle = "添加楼层";
|
|
|
+ this.$refs.addFloorDialog.showDialog();
|
|
|
+ },
|
|
|
+ // 获取列表
|
|
|
+ getFloorTableData() {
|
|
|
+ let floorParam = {
|
|
|
+ cascade: [{ name: "floorThroughList" }],
|
|
|
+ orders: "floorSequenceID desc",
|
|
|
+ pageNumber: this.page.pageNumber,
|
|
|
+ pageSize: this.page.pageSize,
|
|
|
+ filters: `buildingId='${this.curBuildId}'`,
|
|
|
+ };
|
|
|
+ ScanController.floorQueryAndSign(floorParam).then((res) => {
|
|
|
+ this.tableData = res.content;
|
|
|
+ this.page.total = res.total;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 创建楼层成功-修改关系成功
|
|
|
+ refresh() {
|
|
|
+ this.getFloorTableData();
|
|
|
+ },
|
|
|
+ // 确认删除(删除建筑-楼层公用)
|
|
|
+ confirmDel() {
|
|
|
+ if (this.delText == "楼层") {
|
|
|
+ let delParam = [{ id: this.curFloorId }];
|
|
|
+ this.delDialogVis = false;
|
|
|
+ ScanController.deleteFloorInfo(delParam).then((res) => {
|
|
|
+ this.$message.success("删除成功");
|
|
|
+ this.init();
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 删除建筑
|
|
|
+ if (this.tableData && this.tableData.length) {
|
|
|
+ this.$message.error("当前建筑中包含楼层,不可删除");
|
|
|
+ this.delDialogVis = false;
|
|
|
+ } else {
|
|
|
+ let param = [{ id: this.curBuildId }];
|
|
|
+ this.delDialogVis = false;
|
|
|
+ ScanController.deleteBuildInfo(param).then((res) => {
|
|
|
+ this.$message.success("删除成功");
|
|
|
+ this.handleBuildQuery();
|
|
|
this.init();
|
|
|
- },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 修改楼层信息
|
|
|
+ editFloorData(floor) {
|
|
|
+ this.floorTitle = "编辑楼层信息";
|
|
|
+ this.curFloorId = floor.id;
|
|
|
+ this.$refs.addFloorDialog.showDialog(floor);
|
|
|
+ },
|
|
|
+ // 修改楼层贯通关系
|
|
|
+ changeConnection(row) {
|
|
|
+ this.$refs.addConnectivity.showDialog();
|
|
|
+ this.$refs.addConnectivity.floor = row;
|
|
|
+ },
|
|
|
+ // 查看平面图
|
|
|
+ checkDrawImg(row, index) {
|
|
|
+ if (3 == index) {
|
|
|
+ this.modelId = "";
|
|
|
+ } else if (index == 1) {
|
|
|
+ this.modelId = row.infos.floorMap;
|
|
|
+ } else {
|
|
|
+ this.modelId = row.modelId;
|
|
|
+ }
|
|
|
+ const pa = {
|
|
|
+ modelId: this.modelId,
|
|
|
+ FloorID: row.id,
|
|
|
+ BuildID: row.buildingId,
|
|
|
+ BuildName: this.curBuildName,
|
|
|
+ FloorName: row.localName,
|
|
|
+ };
|
|
|
+ this.$router.push({ name: "repetitionGraphy", query: pa });
|
|
|
+ },
|
|
|
+ // 查询建筑信息
|
|
|
+ handleBuildQuery() {
|
|
|
+ let param = {
|
|
|
+ projectId: this.projectId,
|
|
|
+ orders: "localName asc",
|
|
|
+ pageNumber: 1,
|
|
|
+ pageSize: 500,
|
|
|
+ };
|
|
|
+ ScanController.objectQueryBuild(param).then((res) => {
|
|
|
+ this.currentBuildList = res.content;
|
|
|
+ });
|
|
|
},
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ projectId() {
|
|
|
+ this.init();
|
|
|
+ },
|
|
|
+ },
|
|
|
};
|
|
|
</script>
|
|
|
<style lang="less" scoped>
|
|
|
#bd-fl-manage {
|
|
|
- overflow: hidden;
|
|
|
- height: 100%;
|
|
|
- position: relative;
|
|
|
+ overflow: hidden;
|
|
|
+ height: 100%;
|
|
|
+ position: relative;
|
|
|
|
|
|
- .el-row {
|
|
|
- height: 100%;
|
|
|
+ .el-row {
|
|
|
+ height: 100%;
|
|
|
|
|
|
- .el-col-4 {
|
|
|
- width: 17%;
|
|
|
- }
|
|
|
+ .el-col-4 {
|
|
|
+ width: 17%;
|
|
|
+ }
|
|
|
|
|
|
- .el-col-20 {
|
|
|
- width: 82%;
|
|
|
- }
|
|
|
+ .el-col-20 {
|
|
|
+ width: 82%;
|
|
|
+ }
|
|
|
|
|
|
- & > div {
|
|
|
- float: left;
|
|
|
- height: 100%;
|
|
|
- overflow: hidden;
|
|
|
- background-color: #fff;
|
|
|
- box-sizing: border-box;
|
|
|
- border: 1px solid #dfe6ec;
|
|
|
+ & > div {
|
|
|
+ float: left;
|
|
|
+ height: 100%;
|
|
|
+ overflow: hidden;
|
|
|
+ background-color: #fff;
|
|
|
+ box-sizing: border-box;
|
|
|
+ border: 1px solid #dfe6ec;
|
|
|
|
|
|
- .action-box {
|
|
|
- padding: 10px;
|
|
|
+ .action-box {
|
|
|
+ padding: 10px;
|
|
|
|
|
|
- .el-button--small {
|
|
|
- padding: 10px 11px;
|
|
|
- }
|
|
|
- }
|
|
|
+ .el-button--small {
|
|
|
+ padding: 10px 11px;
|
|
|
}
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- .l-list {
|
|
|
- width: 17%;
|
|
|
- overflow-y: auto;
|
|
|
+ .l-list {
|
|
|
+ width: 17%;
|
|
|
+ overflow-y: auto;
|
|
|
|
|
|
- h4 {
|
|
|
- padding-left: 10px;
|
|
|
- border-top: 1px solid #d9d9d9;
|
|
|
- border-bottom: 1px solid #d9d9d9;
|
|
|
- background: #d9d9d9;
|
|
|
- color: #2b2b2b;
|
|
|
- line-height: 44px;
|
|
|
- }
|
|
|
+ h4 {
|
|
|
+ padding-left: 10px;
|
|
|
+ border-top: 1px solid #d9d9d9;
|
|
|
+ border-bottom: 1px solid #d9d9d9;
|
|
|
+ background: #d9d9d9;
|
|
|
+ color: #2b2b2b;
|
|
|
+ line-height: 44px;
|
|
|
+ }
|
|
|
|
|
|
- .build-list {
|
|
|
- line-height: 48px;
|
|
|
+ .build-list {
|
|
|
+ line-height: 48px;
|
|
|
|
|
|
- .floor-item {
|
|
|
- white-space: nowrap;
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
+ .floor-item {
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
|
|
- span {
|
|
|
- margin-left: 10px;
|
|
|
- }
|
|
|
- }
|
|
|
+ span {
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- .floor-item.active,
|
|
|
- .floor-item:hover {
|
|
|
- background-color: #f5f7fa;
|
|
|
- color: #000;
|
|
|
- }
|
|
|
- }
|
|
|
+ .floor-item.active,
|
|
|
+ .floor-item:hover {
|
|
|
+ background-color: #f5f7fa;
|
|
|
+ color: #000;
|
|
|
}
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- .r-table {
|
|
|
- width: 82%;
|
|
|
- margin-left: 1%;
|
|
|
+ .r-table {
|
|
|
+ width: 82%;
|
|
|
+ margin-left: 1%;
|
|
|
|
|
|
- .table-box {
|
|
|
- height: calc(100% - 54px);
|
|
|
- margin-bottom: 8px;
|
|
|
+ .table-box {
|
|
|
+ height: calc(100% - 54px);
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
|
- .iconfont {
|
|
|
- vertical-align: middle;
|
|
|
- }
|
|
|
+ .iconfont {
|
|
|
+ vertical-align: middle;
|
|
|
+ }
|
|
|
|
|
|
- /deep/ .el-badge__content.is-fixed {
|
|
|
- transform: translateY(-6%) translateX(-100%);
|
|
|
- }
|
|
|
+ /deep/ .el-badge__content.is-fixed {
|
|
|
+ transform: translateY(-6%) translateX(-100%);
|
|
|
+ }
|
|
|
|
|
|
- p {
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
- }
|
|
|
+ p {
|
|
|
+ cursor: pointer;
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|