修复监听vuex导致buidingid与deptId无法实时响应问题

master
许宏杰 10 months ago
parent 4b460bbca8
commit f6af695bcf

@ -1,3 +1,5 @@
import { listDept } from "@/api/system/dept.js";
import { listBuilding } from "@/api/taicangpop/building.js";
const xiaoqu = { const xiaoqu = {
state: { state: {
//页面接口参数 //页面接口参数
@ -21,10 +23,10 @@ const xiaoqu = {
state.queryParmas[key] = query[key]; state.queryParmas[key] = query[key];
} }
if (query.buildingid) { // if (query.buildingid) {
state.panel.bottomPanel = true; // state.panel.bottomPanel = true;
return; // return;
} // }
if ( if (
query.color || query.color ||
query.type || query.type ||
@ -68,9 +70,36 @@ const xiaoqu = {
isx: undefined, isx: undefined,
isj: undefined, isj: undefined,
}; };
console.log(state.queryParmas);
},
},
actions: {
async GetBuildingId({ commit, state }, queryParams) {
let deptData = await getDeptId({
xiaoquId: state.queryParmas.xiaoquId,
deptName: queryParams.deptName,
});
let buildingData = await getBuildingId({
name: queryParams.name,
deptId: deptData.deptId,
});
commit("CHANGE_QUERY", {
buildingid: buildingData.id,
deptId: deptData.deptId,
});
}, },
}, },
actions: {},
}; };
// 获取苑id
async function getDeptId(query) {
let res = await listDept(query);
return res.data[0];
}
//获取楼栋id
async function getBuildingId(query) {
let res = await listBuilding(query);
return res.rows[0];
}
export default xiaoqu; export default xiaoqu;

@ -134,10 +134,12 @@ export default {
}, },
methods: { methods: {
handleChange(newValue) { handleChange(newValue) {
console.log("sssss");
this.reset(); this.reset();
delete this.queryParamsXiaoqu.buildingid;
delete this.queryParamsXiaoqu.deptId;
this.queryParams = { ...this.queryParams, ...this.queryParamsXiaoqu }; this.queryParams = { ...this.queryParams, ...this.queryParamsXiaoqu };
this.queryParams.buildingid = undefined;
this.queryParams.deptId = undefined;
this.disabled = false; this.disabled = false;
this.load(); this.load();
}, },

@ -9,8 +9,7 @@ import configJson from "./map-config.json";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import garden from "./garden.json"; import garden from "./garden.json";
import MarsMap from "@/components/mars-map"; import MarsMap from "@/components/mars-map";
import { listDept } from "@/api/system/dept.js";
import { listBuilding } from "@/api/taicangpop/building.js";
export default { export default {
props: { props: {
xiaoquId: { xiaoquId: {
@ -296,12 +295,12 @@ export default {
return { yuanName, buildingNumber, buildingColor, image }; return { yuanName, buildingNumber, buildingColor, image };
}, },
// + // +
addbuildingLayer() { async addbuildingLayer() {
let _this = this; let _this = this;
mars3d.Util.fetchJson({ let res = await mars3d.Util.fetchJson({
url: url:
this.configUrl + `lib/geoJson/xiaoqu/building${this.xiaoquId}.json`, this.configUrl + `lib/geoJson/xiaoqu/building${this.xiaoquId}.json`,
}).then((res) => { });
const arr = mars3d.Util.geoJsonToGraphics(res); const arr = mars3d.Util.geoJsonToGraphics(res);
arr.map((item, index) => { arr.map((item, index) => {
const { yuanName, buildingNumber, buildingColor, image } = const { yuanName, buildingNumber, buildingColor, image } =
@ -354,16 +353,11 @@ export default {
floorNum: item.attr["层数"], floorNum: item.attr["层数"],
}, },
}); });
point.on(mars3d.EventType.click, async function (e) { point.on(mars3d.EventType.click, function (e) {
let buildingItem = _this.mapLayer.plane.getGraphicByAttr(e.id); let buildingItem = _this.mapLayer.plane.getGraphicByAttr(e.id);
if ( if (_this.mapLayer.tiles3dLayer && _this.mapLayer.tiles3dLayer.show) {
_this.mapLayer.tiles3dLayer &&
_this.mapLayer.tiles3dLayer.show
) {
const geojson = buildingItem.toGeoJSON(); const geojson = buildingItem.toGeoJSON();
_this.map _this.map.getLayerById("dth").loadGeoJSON(geojson, { clear: true });
.getLayerById("dth")
.loadGeoJSON(geojson, { clear: true });
} else { } else {
buildingItem.openHighlight({ buildingItem.openHighlight({
color: "#FFA200", color: "#FFA200",
@ -373,24 +367,17 @@ export default {
outlineWidth: 2, outlineWidth: 2,
}); });
} }
let deptData = await _this.getDeptId({ // _this.$store.commit("CHANGE_QUERY", {
xiaoquId: _this.xiaoquId, // buildingid: 20,
// deptId: 30,
// });
_this.$store.dispatch("GetBuildingId", {
deptName: e.target.attr.yuanName, deptName: e.target.attr.yuanName,
});
let buildingData = await _this.getBuildingId({
name: e.target.attr.buildingNumber + "幢", name: e.target.attr.buildingNumber + "幢",
deptId: deptData.deptId,
}); });
_this.$store.commit("CHANGE_QUERY", {
buildingid: buildingData.id,
deptId: deptData.deptId,
}); //
}); });
this.mapLayer.planePoint.addGraphic(point); this.mapLayer.planePoint.addGraphic(point);
}); });
});
}, },
// //
@ -515,17 +502,6 @@ export default {
this.map.addLayer(this.geoJsonLayerDTH); this.map.addLayer(this.geoJsonLayerDTH);
}, },
// id
async getDeptId(query) {
let res = await listDept(query);
return res.data[0];
},
//id
async getBuildingId(query) {
let res = await listBuilding(query);
return res.rows[0];
},
// handlezs() { // handlezs() {
// // this.mapLayer.zhengsheLayer.show = true; // // this.mapLayer.zhengsheLayer.show = true;
// this.addZhengsheLayer(); // this.addZhengsheLayer();

Loading…
Cancel
Save