|
@@ -1,15 +1,23 @@
|
|
<template>
|
|
<template>
|
|
- <div id="graphy" ref="graphy">
|
|
|
|
|
|
+ <div id="graphy" ref="graphy" v-loading="canvasLoading">
|
|
<div v-show="!FloorMap">
|
|
<div v-show="!FloorMap">
|
|
<div class="center" style="height: 400px;padding-top:182px;box-sizing:border-box;">
|
|
<div class="center" style="height: 400px;padding-top:182px;box-sizing:border-box;">
|
|
<i class="icon-wushuju iconfont"></i>
|
|
<i class="icon-wushuju iconfont"></i>
|
|
暂无数据
|
|
暂无数据
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="canvas-box" v-show="FloorMap" v-loading="canvasLoading">
|
|
|
|
|
|
+ <div class="canvas-box" v-show="FloorMap">
|
|
<canvas id="floorCanvas" :width="canvasWidth" :height="canvasHeight" ref="canvas" tabindex="0"></canvas>
|
|
<canvas id="floorCanvas" :width="canvasWidth" :height="canvasHeight" ref="canvas" tabindex="0"></canvas>
|
|
<!-- 初始两个按钮 -->
|
|
<!-- 初始两个按钮 -->
|
|
<el-row class="buttons-box">
|
|
<el-row class="buttons-box">
|
|
|
|
+ <div style="margin-right:10px;width: 100%;margin-bottom: 10px" v-if="showOtherFlag">
|
|
|
|
+ <!-- 平面图其他分区 -->
|
|
|
|
+ <el-button type="primary" @click="addZoneBtn">添加分区</el-button>
|
|
|
|
+ <el-select v-model="OtherValue" placeholder="请选择分区类型" @change="changeOtherZone">
|
|
|
|
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </div>
|
|
<div>
|
|
<div>
|
|
<el-autocomplete popper-class="my-autocomplete" v-model="search" :fetch-suggestions="querySearch" placeholder="输入平面图中已有的业务空间名称进行查找"
|
|
<el-autocomplete popper-class="my-autocomplete" v-model="search" :fetch-suggestions="querySearch" placeholder="输入平面图中已有的业务空间名称进行查找"
|
|
width="180px" @select="handleSelect">
|
|
width="180px" @select="handleSelect">
|
|
@@ -35,6 +43,8 @@
|
|
<!-- 点击已经关联的业务空间 -->
|
|
<!-- 点击已经关联的业务空间 -->
|
|
<el-button type="primary" plain @click="refactorBSP" :disabled="zoneDisable" style="margin-left:10px;">重新划分业务空间</el-button>
|
|
<el-button type="primary" plain @click="refactorBSP" :disabled="zoneDisable" style="margin-left:10px;">重新划分业务空间</el-button>
|
|
<el-button type="primary" @click="editeSpaceDetail" :disabled="zoneDisable">编辑空间详情</el-button>
|
|
<el-button type="primary" @click="editeSpaceDetail" :disabled="zoneDisable">编辑空间详情</el-button>
|
|
|
|
+ <el-button type="primary" plain @click="confirmZoneSpace" :disabled="zoneDisable||(!zoneDisable&&!curZoneItem.isInfected)">确认业务空间
|
|
|
|
+ </el-button>
|
|
<el-button plain @click="cancelGraphy" v-show="!zoneDisable">取 消</el-button>
|
|
<el-button plain @click="cancelGraphy" v-show="!zoneDisable">取 消</el-button>
|
|
</div>
|
|
</div>
|
|
<!-- 点击已经关联的业务空间 -->
|
|
<!-- 点击已经关联的业务空间 -->
|
|
@@ -50,15 +60,16 @@
|
|
<div v-show="type==4">
|
|
<div v-show="type==4">
|
|
<el-button plain @click="cancelGraphy">取 消</el-button>
|
|
<el-button plain @click="cancelGraphy">取 消</el-button>
|
|
<el-button type="primary" @click="saveRefactorBSP">保存</el-button>
|
|
<el-button type="primary" @click="saveRefactorBSP">保存</el-button>
|
|
|
|
+ <el-button type="primary" v-show='curZoneItem.isInfected' @click="confirmAndSave">保存并确认业务空间</el-button>
|
|
</div>
|
|
</div>
|
|
<!-- 批量创建所选业务空间 -->
|
|
<!-- 批量创建所选业务空间 -->
|
|
<div v-show="type==5">
|
|
<div v-show="type==5">
|
|
<el-button type="primary" @click="groupCreateZone">批量创建所选业务空间</el-button>
|
|
<el-button type="primary" @click="groupCreateZone">批量创建所选业务空间</el-button>
|
|
<el-button plain @click="cancelGraphy">取 消</el-button>
|
|
<el-button plain @click="cancelGraphy">取 消</el-button>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- <div style="position: absolute;right: 0;">
|
|
|
|
- <el-button type="text" @click="lookUnrelatBSpace(false)">未关联平面图的业务空间 {{num}} 条</el-button>
|
|
|
|
|
|
+ <div style="position: absolute;right: 10px;">
|
|
|
|
+ <el-button type="text" @click="lookUnrelatBSpace(false)">未关联平面图的业务空间 {{num}} 条</el-button>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</el-row>
|
|
</el-row>
|
|
<!-- 底部操作按钮 -->
|
|
<!-- 底部操作按钮 -->
|
|
@@ -75,6 +86,10 @@
|
|
<!-- 批量创建选择弹窗 -->
|
|
<!-- 批量创建选择弹窗 -->
|
|
<el-dialog title="提示" :visible.sync="groupCreateDialogVis" width="30%">
|
|
<el-dialog title="提示" :visible.sync="groupCreateDialogVis" width="30%">
|
|
<div id="autoRelate">
|
|
<div id="autoRelate">
|
|
|
|
+ <p>批量创建面积大于此值的默认空间为业务空间:</p>
|
|
|
|
+ <div style="padding:10px 20px;margin:0 0 10px 0;">
|
|
|
|
+ <el-slider v-model="areaValue" :marks="areaMarks" :step="10" :format-tooltip='val=>val/100'> </el-slider>
|
|
|
|
+ </div>
|
|
<p>请选择批量创建方式:</p>
|
|
<p>请选择批量创建方式:</p>
|
|
<p>
|
|
<p>
|
|
<el-radio v-model="groupCreateType" :label="1">批量将所有的空白空间创建业务空间</el-radio>
|
|
<el-radio v-model="groupCreateType" :label="1">批量将所有的空白空间创建业务空间</el-radio>
|
|
@@ -88,6 +103,7 @@
|
|
<el-button size="small" type="primary" @click="confirm">确认</el-button>
|
|
<el-button size="small" type="primary" @click="confirm">确认</el-button>
|
|
</span>
|
|
</span>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
+ <dialogZone ref="zone" @createSuccess="getOhterType" />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script>
|
|
<script>
|
|
@@ -98,6 +114,7 @@ import { DivideFloorScene, SpaceItem, ZoneItem, FloorView } from "@saga-web/cad-
|
|
import { colorArr } from "@/utils/spaceColor"
|
|
import { colorArr } from "@/utils/spaceColor"
|
|
import unRelateBSP from "./unRelateBSP";
|
|
import unRelateBSP from "./unRelateBSP";
|
|
import createBSP from "./createBSP";
|
|
import createBSP from "./createBSP";
|
|
|
|
+import dialogZone from "../../ledger/addDialog/dialogZone";
|
|
import {
|
|
import {
|
|
buildingQuery,
|
|
buildingQuery,
|
|
queryZone,
|
|
queryZone,
|
|
@@ -106,17 +123,22 @@ import {
|
|
countZone,
|
|
countZone,
|
|
getIspNotInSpace,
|
|
getIspNotInSpace,
|
|
createRelateInZoneAndISp,
|
|
createRelateInZoneAndISp,
|
|
- groupCreRelaZoneAndISp
|
|
|
|
|
|
+ groupCreRelaZoneAndISp,
|
|
|
|
+ getZoneQuery,
|
|
|
|
+ queryAllZoneType, // 定制分区类型
|
|
} from "@/api/scan/request"
|
|
} from "@/api/scan/request"
|
|
|
|
|
|
export default {
|
|
export default {
|
|
components: {
|
|
components: {
|
|
canvasFun,
|
|
canvasFun,
|
|
unRelateBSP,
|
|
unRelateBSP,
|
|
- createBSP
|
|
|
|
|
|
+ createBSP,
|
|
|
|
+ dialogZone
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ zoneValue:'',
|
|
|
|
+ addZone:[],
|
|
canvasWidth: 800,
|
|
canvasWidth: 800,
|
|
canvasHeight: 600,
|
|
canvasHeight: 600,
|
|
type: 1, // 默认操作模式
|
|
type: 1, // 默认操作模式
|
|
@@ -148,7 +170,12 @@ export default {
|
|
groupCreateDialogVis: false, //批量创建业务空间弹窗
|
|
groupCreateDialogVis: false, //批量创建业务空间弹窗
|
|
groupCreateType: 1, //批量创建方式
|
|
groupCreateType: 1, //批量创建方式
|
|
zoneDisable: true, // 重新划分是否禁用
|
|
zoneDisable: true, // 重新划分是否禁用
|
|
- sourceIdToISP: {}
|
|
|
|
|
|
+ sourceIdToISP: {},
|
|
|
|
+ areaValue: 40,
|
|
|
|
+ areaMarks: { 0: '0m²', 100: '1m²' },
|
|
|
|
+ options: [], //其他分区类型
|
|
|
|
+ OtherValue: '',
|
|
|
|
+ showOtherFlag: false, //是否显示其他分区类型添加
|
|
}
|
|
}
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
@@ -156,8 +183,8 @@ export default {
|
|
},
|
|
},
|
|
created() { },
|
|
created() { },
|
|
mounted() {
|
|
mounted() {
|
|
- this.canvasWidth = this.$refs.graphy.offsetWidth;
|
|
|
|
- this.canvasHeight = this.$refs.graphy.offsetHeight;
|
|
|
|
|
|
+ this.canvasWidth = this.$refs.graphy.offsetWidth - 20;
|
|
|
|
+ this.canvasHeight = this.$refs.graphy.offsetHeight - 20;
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
// 初始化
|
|
// 初始化
|
|
@@ -215,6 +242,10 @@ export default {
|
|
})
|
|
})
|
|
})
|
|
})
|
|
},
|
|
},
|
|
|
|
+ //添加其他分区
|
|
|
|
+ addZoneBtn() {
|
|
|
|
+ this.$refs.zone.dialogFormVisible = true
|
|
|
|
+ },
|
|
// 搜索
|
|
// 搜索
|
|
querySearch(queryString, cb) {
|
|
querySearch(queryString, cb) {
|
|
let restaurants = this.zoneList;
|
|
let restaurants = this.zoneList;
|
|
@@ -251,8 +282,38 @@ export default {
|
|
this.FloorObj = FloorObj;
|
|
this.FloorObj = FloorObj;
|
|
this.FloorMap = FloorObj.StructureInfo ? FloorObj.StructureInfo.FloorMap : ''
|
|
this.FloorMap = FloorObj.StructureInfo ? FloorObj.StructureInfo.FloorMap : ''
|
|
this.tab = tab;
|
|
this.tab = tab;
|
|
- console.log(arguments)
|
|
|
|
- this.init(initType);
|
|
|
|
|
|
+ console.log(arguments);
|
|
|
|
+ if (tab.code == "OtherZone") {
|
|
|
|
+ // 其他分区
|
|
|
|
+ this.showOtherFlag = true
|
|
|
|
+ this.getOhterType();
|
|
|
|
+ } else {
|
|
|
|
+ this.showOtherFlag = false;
|
|
|
|
+ this.init(initType);
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 其他分区类型查询
|
|
|
|
+ getOhterType() {
|
|
|
|
+ let pa = {
|
|
|
|
+ Cascade: [{ Name: 'zoneType' }],
|
|
|
|
+ Filters: `Code="OtherZone"`
|
|
|
|
+ }
|
|
|
|
+ queryAllZoneType(pa, res => {
|
|
|
|
+ if (res.Content[0].ZoneType && res.Content[0].ZoneType.length) {
|
|
|
|
+ this.options = res.Content[0].ZoneType.map(t => {
|
|
|
|
+
|
|
|
|
+ t.value = t.Code;
|
|
|
|
+ t.label = t.Name;
|
|
|
|
+ return t;
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ this.options = []
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ // 其他类型下拉change
|
|
|
|
+ changeOtherZone(val) {
|
|
|
|
+ console.log(val)
|
|
},
|
|
},
|
|
// 获取未绑定业务空间的元空间
|
|
// 获取未绑定业务空间的元空间
|
|
getISPSPUnrelaBSP() {
|
|
getISPSPUnrelaBSP() {
|
|
@@ -331,6 +392,7 @@ export default {
|
|
OutLine: t.Outline,
|
|
OutLine: t.Outline,
|
|
RoomID: t.RoomID,
|
|
RoomID: t.RoomID,
|
|
Color: colorArr[i % colorArr.length],
|
|
Color: colorArr[i % colorArr.length],
|
|
|
|
+ Infected: t.State
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
console.log('internet slow')
|
|
console.log('internet slow')
|
|
@@ -424,6 +486,22 @@ export default {
|
|
let text = []
|
|
let text = []
|
|
let Spaces = this.allUnRelatISP.map(t => {
|
|
let Spaces = this.allUnRelatISP.map(t => {
|
|
if (t.Outline) {
|
|
if (t.Outline) {
|
|
|
|
+ let area = 0;
|
|
|
|
+ if (t.Outline[0]) {
|
|
|
|
+ area = this.getarea(t.Outline[0]);
|
|
|
|
+ if (t.Outline.length > 1) {
|
|
|
|
+ for (let i = 1; i < t.Outline.length; i++) {
|
|
|
|
+ let temp = this.getarea(t.Outline[i]);
|
|
|
|
+ area = area - temp
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ area = (area / 1000000).toFixed(2);
|
|
|
|
+ if (area < (this.areaValue / 100)) {
|
|
|
|
+ return undefined
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ return undefined;
|
|
|
|
+ }
|
|
text.push(t.RoomLocalName || t.RoomName)
|
|
text.push(t.RoomLocalName || t.RoomName)
|
|
return {
|
|
return {
|
|
IspaceId: t.RoomID,
|
|
IspaceId: t.RoomID,
|
|
@@ -639,12 +717,33 @@ export default {
|
|
// 将当前业务空间的每个元素添加到场景中并选中
|
|
// 将当前业务空间的每个元素添加到场景中并选中
|
|
this.scene.addAllLikeSpace(this.curZoneItem.data.OutLine);
|
|
this.scene.addAllLikeSpace(this.curZoneItem.data.OutLine);
|
|
},
|
|
},
|
|
|
|
+ // 确认业务空间
|
|
|
|
+ confirmZoneSpace() {
|
|
|
|
+ this.curZoneItem.data.State = 0;
|
|
|
|
+ let pa = {
|
|
|
|
+ zone: this.tab.code,
|
|
|
|
+ data: {
|
|
|
|
+ Content: [this.curZoneItem.data],
|
|
|
|
+ Projection: ['State']
|
|
|
|
+ },
|
|
|
|
+ }
|
|
|
|
+ updateZone(pa, res => {
|
|
|
|
+ this.curZoneItem.isInfected = false;
|
|
|
|
+ this.$emit('updateState');
|
|
|
|
+ this.$message.success('更新成功');
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ // 保存并确认业务空间
|
|
|
|
+ confirmAndSave() {
|
|
|
|
+ this.confirmAndSaveFlag = true;
|
|
|
|
+ this.saveRefactorBSP();
|
|
|
|
+ },
|
|
// 重新划分--保存
|
|
// 重新划分--保存
|
|
saveRefactorBSP() {
|
|
saveRefactorBSP() {
|
|
let selectSpace = this.scene.getSelectedSpaces();
|
|
let selectSpace = this.scene.getSelectedSpaces();
|
|
let selectLikeSpace = this.scene.getSelectedLikeSpace();
|
|
let selectLikeSpace = this.scene.getSelectedLikeSpace();
|
|
//更新业务空间
|
|
//更新业务空间
|
|
- let zoneObj = { Outline: [], Height: 0 }, IspaceIdList = [];
|
|
|
|
|
|
+ let zoneObj = { Outline: [], Height: 0, State: this.confirmAndSaveFlag ? 0 : this.curZoneItem.Infected ? 1 : 0 }, IspaceIdList = [];
|
|
// 空间
|
|
// 空间
|
|
selectSpace.map(t => {
|
|
selectSpace.map(t => {
|
|
zoneObj.Outline.push(t.data.OutLine);
|
|
zoneObj.Outline.push(t.data.OutLine);
|
|
@@ -749,26 +848,60 @@ export default {
|
|
})
|
|
})
|
|
}
|
|
}
|
|
createSpaces = arr.map(t => {
|
|
createSpaces = arr.map(t => {
|
|
|
|
+ let line = outlines[t.data.SourceId];
|
|
|
|
+ if (!line || !line.length) {
|
|
|
|
+ return undefined
|
|
|
|
+ } else {
|
|
|
|
+ let area = 0;
|
|
|
|
+ for (let i = 0; i < line.length; i++) {
|
|
|
|
+ for (let j = 0; j < line[i].length; j++) {
|
|
|
|
+ if (j == 0) {
|
|
|
|
+ area += this.getarea(line[i][0]);
|
|
|
|
+ } else {
|
|
|
|
+ area -= this.getarea(line[i][j]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ area = (area / 1000000).toFixed(2);
|
|
|
|
+ if (area < (this.areaValue / 100)) {
|
|
|
|
+ return undefined;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
return {
|
|
return {
|
|
IspaceId: this.BIMIDToSID[t.data.SourceId],
|
|
IspaceId: this.BIMIDToSID[t.data.SourceId],
|
|
RoomLocalName: this.BIMIDToSIName[t.data.SourceId],
|
|
RoomLocalName: this.BIMIDToSIName[t.data.SourceId],
|
|
- Outline: outlines[t.data.SourceId],
|
|
|
|
|
|
+ Outline: line,
|
|
BuildingId: this.buildFloor[0],
|
|
BuildingId: this.buildFloor[0],
|
|
FloorId: this.buildFloor[1],
|
|
FloorId: this.buildFloor[1],
|
|
Height: t.data.Height > 100 ? (t.data.Height / 1000).toFixed(2) : t.data.Height || 0
|
|
Height: t.data.Height > 100 ? (t.data.Height / 1000).toFixed(2) : t.data.Height || 0
|
|
}
|
|
}
|
|
- }).filter(item => item.Outline && item.Outline.length)
|
|
|
|
|
|
+ }).filter(item => item)
|
|
} else {
|
|
} else {
|
|
createSpaces = arr.map(t => {
|
|
createSpaces = arr.map(t => {
|
|
|
|
+ let line = t.data.OutLine;
|
|
|
|
+ if (!line || !line.length) {
|
|
|
|
+ return undefined
|
|
|
|
+ } else {
|
|
|
|
+ let area = this.getarea(line[0]);
|
|
|
|
+ if (line.length > 1) {
|
|
|
|
+ for (let i = 1; i < line.length; i++) {
|
|
|
|
+ area -= this.getarea(line[i]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ area = (area / 1000000).toFixed(2);
|
|
|
|
+ if (area < (this.areaValue / 100)) {
|
|
|
|
+ return undefined;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
return {
|
|
return {
|
|
IspaceId: this.BIMIDToSID[t.data.SourceId],
|
|
IspaceId: this.BIMIDToSID[t.data.SourceId],
|
|
RoomLocalName: this.BIMIDToSIName[t.data.SourceId],
|
|
RoomLocalName: this.BIMIDToSIName[t.data.SourceId],
|
|
- Outline: [t.data.OutLine],
|
|
|
|
|
|
+ Outline: [line],
|
|
BuildingId: this.buildFloor[0],
|
|
BuildingId: this.buildFloor[0],
|
|
FloorId: this.buildFloor[1],
|
|
FloorId: this.buildFloor[1],
|
|
Height: t.data.Height > 100 ? (t.data.Height / 1000).toFixed(2) : t.data.Height || 0
|
|
Height: t.data.Height > 100 ? (t.data.Height / 1000).toFixed(2) : t.data.Height || 0
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ }).filter(item => item);
|
|
}
|
|
}
|
|
if (createSpaces.length) {
|
|
if (createSpaces.length) {
|
|
this.canvasLoading = true;
|
|
this.canvasLoading = true;
|
|
@@ -786,6 +919,12 @@ export default {
|
|
createRelateInZoneAndISp(pa, res => {
|
|
createRelateInZoneAndISp(pa, res => {
|
|
this.$message.success('创建成功');
|
|
this.$message.success('创建成功');
|
|
this.init(2);
|
|
this.init(2);
|
|
|
|
+ if (this.confirmAndSaveFlag) {
|
|
|
|
+ this.confirmAndSaveFlag = false;
|
|
|
|
+ this.curZoneItem.selected = false;
|
|
|
|
+ this.curZoneItem = {};
|
|
|
|
+ this.$emit('updateState');
|
|
|
|
+ }
|
|
})
|
|
})
|
|
},
|
|
},
|
|
// 批量更新业务空间和元空间的关系
|
|
// 批量更新业务空间和元空间的关系
|
|
@@ -853,7 +992,7 @@ export default {
|
|
zone: this.tab.code,
|
|
zone: this.tab.code,
|
|
data: {
|
|
data: {
|
|
Content: [zoneObj],
|
|
Content: [zoneObj],
|
|
- Projection: ['Outline', 'BIMLocation']
|
|
|
|
|
|
+ Projection: ['Outline', 'BIMLocation', 'State']
|
|
},
|
|
},
|
|
}
|
|
}
|
|
updateZone(pa, res => {
|
|
updateZone(pa, res => {
|
|
@@ -890,6 +1029,19 @@ export default {
|
|
Z = (Z / len).toFixed(2);
|
|
Z = (Z / len).toFixed(2);
|
|
return `${X},${Y},${Z}`
|
|
return `${X},${Y},${Z}`
|
|
},
|
|
},
|
|
|
|
+ // 计算面积
|
|
|
|
+ getarea(arr) {
|
|
|
|
+ if (!arr.length) {
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
|
|
+ let sum = 0;
|
|
|
|
+ let n = arr.length;
|
|
|
|
+ arr[n] = arr[0];
|
|
|
|
+ for (let i = 1; i <= n; i++) {
|
|
|
|
+ sum += arr[i].X * arr[i - 1].Y - arr[i - 1].X * arr[i].Y;
|
|
|
|
+ }
|
|
|
|
+ return Math.abs(sum / 2)
|
|
|
|
+ },
|
|
// canvas 获取焦点
|
|
// canvas 获取焦点
|
|
focus() {
|
|
focus() {
|
|
document.getElementById(`floorCanvas`).focus()
|
|
document.getElementById(`floorCanvas`).focus()
|
|
@@ -994,6 +1146,8 @@ export default {
|
|
#graphy {
|
|
#graphy {
|
|
position: relative;
|
|
position: relative;
|
|
width: 100%;
|
|
width: 100%;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ padding: 0 10px 10px;
|
|
height: calc(100% - 56px);
|
|
height: calc(100% - 56px);
|
|
.canvas-box {
|
|
.canvas-box {
|
|
width: 100%;
|
|
width: 100%;
|
|
@@ -1002,13 +1156,15 @@ export default {
|
|
.buttons-box {
|
|
.buttons-box {
|
|
position: absolute;
|
|
position: absolute;
|
|
top: 0;
|
|
top: 0;
|
|
|
|
+ left: 0;
|
|
|
|
+ padding: 0 10px;
|
|
width: 100%;
|
|
width: 100%;
|
|
z-index: 999;
|
|
z-index: 999;
|
|
& > div {
|
|
& > div {
|
|
float: left;
|
|
float: left;
|
|
}
|
|
}
|
|
/deep/ .el-autocomplete {
|
|
/deep/ .el-autocomplete {
|
|
- display: block;
|
|
|
|
|
|
+ display: inline-block;
|
|
width: 320px;
|
|
width: 320px;
|
|
margin-right: 10px;
|
|
margin-right: 10px;
|
|
}
|
|
}
|
|
@@ -1037,10 +1193,15 @@ export default {
|
|
}
|
|
}
|
|
.canvas-actions-box {
|
|
.canvas-actions-box {
|
|
position: absolute;
|
|
position: absolute;
|
|
- bottom: 20px;
|
|
|
|
|
|
+ bottom: 60px;
|
|
left: 50%;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
transform: translateX(-50%);
|
|
- z-index: 999;
|
|
|
|
|
|
+ z-index: 99;
|
|
|
|
+ }
|
|
|
|
+ #autoRelate {
|
|
|
|
+ /deep/ .el-slider__marks-text:nth-child(2) {
|
|
|
|
+ width: 25px;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|