|
@@ -18,15 +18,21 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts">
|
|
|
+import { saveMapPointInfo } from "@/apis/envmonitor";
|
|
|
import { number } from "echarts";
|
|
|
+import { Toast } from "vant";
|
|
|
import { defineComponent, nextTick, onMounted, reactive, toRefs } from "vue";
|
|
|
|
|
|
export default defineComponent({
|
|
|
components: {},
|
|
|
setup() {
|
|
|
let allObj: any = [];
|
|
|
+ let spaceArr: any = [];
|
|
|
+ let floorObj: any = {};
|
|
|
const proxyData = reactive({
|
|
|
allObj: allObj,
|
|
|
+ floorObj: floorObj,
|
|
|
+ spaceArr: spaceArr,
|
|
|
// canvas画图
|
|
|
initCanvas() {
|
|
|
let canvasDom: any = document.querySelector("#myCanvas");
|
|
@@ -83,52 +89,95 @@ export default defineComponent({
|
|
|
let fileSelect: any = files[i];
|
|
|
let name: any = fileSelect.name;
|
|
|
name = name.split(".")[0];
|
|
|
- // this.fileName = fileSelect.name;
|
|
|
let reader: any = new FileReader();
|
|
|
if (typeof FileReader === "undefined") {
|
|
|
console.log("您的浏览器不支持FileReader接口");
|
|
|
return;
|
|
|
}
|
|
|
reader.readAsText(fileSelect, "gb2312"); //注意读取中文的是用这个编码,不是utf-8
|
|
|
- // const _this = this;
|
|
|
reader.onload = function () {
|
|
|
- // console.log(reader.result);
|
|
|
let result: any = reader.result;
|
|
|
- // _this.$nextTick(() => {
|
|
|
- // _this.voiceContent = reader.result;
|
|
|
- // });
|
|
|
- // proxyData.handleStr(result);
|
|
|
proxyData.handPoint(result, name);
|
|
|
+ if (i === files.length - 1) {
|
|
|
+ // 处理数据的高度问题(因为取点的图是y是从下面开始获取的 )
|
|
|
+ proxyData.formSpaceData();
|
|
|
+ proxyData.floorObj.spaceList = proxyData.spaceArr;
|
|
|
+ proxyData.saveMapPointInfo();
|
|
|
+ }
|
|
|
};
|
|
|
}
|
|
|
},
|
|
|
+ // 地图数据处理结果保存
|
|
|
+ saveMapPointInfo() {
|
|
|
+ console.log("数据格式化---");
|
|
|
+ console.log(proxyData.floorObj);
|
|
|
+ Toast.loading({
|
|
|
+ duration: 0, // 持续展示 toast
|
|
|
+ forbidClick: true,
|
|
|
+ message: "正在上传...",
|
|
|
+ });
|
|
|
+ saveMapPointInfo(proxyData.floorObj)
|
|
|
+ .then((res: any) => {
|
|
|
+ if (res.result == "success") {
|
|
|
+ }
|
|
|
+ Toast.clear();
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ Toast.clear();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 数据格式化
|
|
|
+ formSpaceData() {
|
|
|
+ proxyData.spaceArr.map((item: any) => {
|
|
|
+ item.devicePoint.map((dev: any) => {
|
|
|
+ dev.left = dev.left * 1;
|
|
|
+ dev.top = proxyData.floorObj.height - dev.top;
|
|
|
+ });
|
|
|
+ item.logoPointArr.map((dev: any) => {
|
|
|
+ dev.left = dev.left * 1;
|
|
|
+ dev.top = proxyData.floorObj.height - dev.top;
|
|
|
+ });
|
|
|
+ item.pointArr.map((dev: any) => {
|
|
|
+ dev.left = dev.left * 1;
|
|
|
+ dev.top = proxyData.floorObj.height - dev.top;
|
|
|
+ });
|
|
|
+ item.circlePoint.map((dev: any) => {
|
|
|
+ dev.left = dev.left * 1;
|
|
|
+ dev.top = proxyData.floorObj.height - dev.top;
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
handPoint(result: any, name: any) {
|
|
|
result = result.replace(/\"/g, "");
|
|
|
let nameArr: any = name.split("-");
|
|
|
let arr: any = result.split(/[(\r\n)\r\n]+/);
|
|
|
- if (nameArr && nameArr[0] == "B3") {
|
|
|
+ if (nameArr && nameArr[0] == "L") {
|
|
|
arr.map((item: any) => {
|
|
|
if (item) {
|
|
|
let itemArr: any = item.split(",");
|
|
|
let obj: any = {
|
|
|
- width: itemArr[0],
|
|
|
- height: itemArr[1],
|
|
|
+ width: itemArr[0] ? itemArr[0] * 1 : 0,
|
|
|
+ height: itemArr[1] ? itemArr[1] * 1 : 0,
|
|
|
};
|
|
|
- console.log(obj)
|
|
|
+ console.log(obj);
|
|
|
+ if (obj.width && obj.height) {
|
|
|
+ proxyData.floorObj.width = obj.width;
|
|
|
+ proxyData.floorObj.height = obj.width;
|
|
|
+ proxyData.floorObj.floorId=nameArr[1]
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
} else {
|
|
|
let pointObj: any = {
|
|
|
- spaceId: nameArr[0].toString(),
|
|
|
- localName: nameArr[0].toString(),
|
|
|
- canClick: true,
|
|
|
+ spaceId: nameArr[1] ? nameArr[1].toString() : "",
|
|
|
+ localName: nameArr[0] ? nameArr[0].toString() : "",
|
|
|
+ canClick: nameArr[2] && nameArr[2] == "unc" ? false : true,
|
|
|
pointArr: [],
|
|
|
devicePoint: [],
|
|
|
circlePoint: [],
|
|
|
- logPointArr: [],
|
|
|
+ logoPointArr: [],
|
|
|
};
|
|
|
|
|
|
- // debugger
|
|
|
arr.map((item: any, index: any) => {
|
|
|
if (item) {
|
|
|
let itemArr: any = item.split(",");
|
|
@@ -136,11 +185,17 @@ export default defineComponent({
|
|
|
left: itemArr[0],
|
|
|
top: itemArr[1],
|
|
|
};
|
|
|
- if (nameArr[1]) {
|
|
|
+ if (pointObj.canClick && nameArr[2] && nameArr[2] == "c") {
|
|
|
+ pointObj.circlePoint.push(obj);
|
|
|
+ } else if (
|
|
|
+ !pointObj.canClick &&
|
|
|
+ nameArr[3] &&
|
|
|
+ nameArr[3] == "c"
|
|
|
+ ) {
|
|
|
pointObj.circlePoint.push(obj);
|
|
|
} else {
|
|
|
if (index <= 1) {
|
|
|
- pointObj.logPointArr.push(obj);
|
|
|
+ pointObj.logoPointArr.push(obj);
|
|
|
} else if (index <= 4) {
|
|
|
pointObj.devicePoint.push(obj);
|
|
|
} else {
|
|
@@ -149,18 +204,15 @@ export default defineComponent({
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
- let str: any = localStorage.getItem("spaceList");
|
|
|
- let spaceList: any = str ? JSON.parse(str) : [];
|
|
|
+
|
|
|
let flag: any = false;
|
|
|
- spaceList.map((item: any) => {
|
|
|
+ proxyData.spaceArr.map((item: any) => {
|
|
|
if (nameArr[1] && item.spaceId === nameArr[1]) {
|
|
|
item.circlePoint = pointObj.circlePoint;
|
|
|
flag = true;
|
|
|
} else {
|
|
|
if (item.spaceId === nameArr[0]) {
|
|
|
- // debugger
|
|
|
- // pointObj.circlePoint = item.circlePoint;
|
|
|
- item.logPointArr = pointObj.logPointArr;
|
|
|
+ item.logoPointArr = pointObj.logoPointArr;
|
|
|
item.devicePoint = pointObj.devicePoint;
|
|
|
item.pointArr = pointObj.pointArr;
|
|
|
flag = true;
|
|
@@ -168,10 +220,8 @@ export default defineComponent({
|
|
|
}
|
|
|
});
|
|
|
if (!flag) {
|
|
|
- spaceList.push(pointObj);
|
|
|
+ proxyData.spaceArr.push(pointObj);
|
|
|
}
|
|
|
- localStorage.setItem("spaceList", JSON.stringify(spaceList));
|
|
|
- console.log(spaceList);
|
|
|
}
|
|
|
},
|
|
|
// 处理坐标
|