diff --git a/src/api/basicsmanage/patrolBlock.js b/src/api/basicsmanage/patrolBlock.js new file mode 100644 index 0000000..c08652e --- /dev/null +++ b/src/api/basicsmanage/patrolBlock.js @@ -0,0 +1,50 @@ +//巡逻方块管理 +import request from "@/utils/request"; +const api = "/mosty-api/mosty-yjzl"; + +// 分页查询 +export function getPatrolBlockList(params) { + return request({ + url: api + '/tbZdxlFgdw/selectPage', + method: 'GET', + params + }) +} +//新增 +export function addPatrolBlock(data) { + return request({ + url: api + '/tbZdxlFgdw/save', + method: "post", + data + }) +} +//修改 +export function updatePatrolBlock(data) { + return request({ + url: api + '/tbZdxlFgdw/update', + method: "post", + data + }) +} +//详情 +export function getPatrolBlockInfo(id) { + return request({ + url: api + `/tbZdxlFgdw/${id}`, + method: "get" + }) +} +//删除 +export function deletePatrolBlock(id) { + return request({ + url: api + `/tbZdxlFgdw/${id}`, + method: "delete" + }) +} +// 根据经纬度获取正方形四个点位 +export function getSquarePoints(params) { + return request({ + url: api + '/tbZdxlFgdw/getSquarePoints', + method: 'GET', + params + }) +} diff --git a/src/components/Map/GdMap/mapUtil.js b/src/components/Map/GdMap/mapUtil.js index 5610ebc..d6e57a4 100644 --- a/src/components/Map/GdMap/mapUtil.js +++ b/src/components/Map/GdMap/mapUtil.js @@ -513,11 +513,13 @@ export function MapUtil(map) { */ MapUtil.prototype.echoPlane = (res) => { let { type , coords ,fontColor, text = '' ,radius = 0, isclear ,flag ,id = 1 , color , linecolor} = res; + console.log('echoPlane 接收参数:', res); if(!coords) return; if(isclear) _that.removeElement(flag) if(!_that._self[flag]) _that._self[flag] = []; let color1 = color ? color : 'rgba(29,237,245,0.6)' let linecolor1 = linecolor ? linecolor : 'rgba(29,237,245,0.6)' + console.log('echoPlane 实际使用颜色 - fill:', color1, 'border:', linecolor1); let style = { color:color1, outLineColor:linecolor1, diff --git a/src/router/index.js b/src/router/index.js index 7705422..3b89030 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -621,6 +621,15 @@ export const privateRoutes = [{ icon: "article-ranking" }, }, + { + path: "/taskPage/patrol-block", + component: () => import("@/views/backOfficeSystem/service/taskPage/patrol-block/index"), + name: "patrol-block", + meta: { + title: '巡逻方块', + icon: "article-ranking" + }, + }, ] }, { diff --git a/src/views/backOfficeSystem/service/taskPage/IssueTasks/components/editAddForm.vue b/src/views/backOfficeSystem/service/taskPage/IssueTasks/components/editAddForm.vue index 13206de..b37845e 100644 --- a/src/views/backOfficeSystem/service/taskPage/IssueTasks/components/editAddForm.vue +++ b/src/views/backOfficeSystem/service/taskPage/IssueTasks/components/editAddForm.vue @@ -93,6 +93,7 @@ const stepActive = ref(0) const emit = defineEmits(["updateDate"]); const dialogForm = ref(false); //弹窗 const listQuery = ref({ fgData: [] }); //表单 +const fgPlaneList = ref([]); const fgVisible = ref(false); const loading = ref(false); const elform = ref(); @@ -143,10 +144,48 @@ onMounted(() => { zxX: val.zxX, zxY: val.zxY, }]; + renderBaseFg(); + renderSelectedFg(val); } }) }); +const renderBaseFg = () => { + emitter.emit("deletePointArea", "taskFg-flag"); + if (fgPlaneList.value.length === 0) return; + emitter.emit("echoPlane", { + fontColor: "#12fdb8", + coords: fgPlaneList.value, + type: "rectangle", + flag: "taskFg-flag", + color: "rgba(2,20,51,0.5)", + linecolor: "#1C97FF" + }); +}; + +const renderSelectedFg = (fg) => { + if (!fg?.x1 || !fg?.y1 || !fg?.x2 || !fg?.y2) return; + emitter.emit("deletePointArea", "taskFg-info"); + const position = [ + [Number(fg.x1), Number(fg.y1)], + [Number(fg.x2), Number(fg.y2)] + ]; + const selected = [{ + position, + text: fg.mc1 || fg.mc || fg.fgmc, + id: fg.id, + userData: fg + }]; + emitter.emit("echoPlane", { + fontColor: "white", + coords: selected, + type: "rectangle", + flag: "taskFg-info", + color: "red", + linecolor: "red" + }); +}; + // 初始化数据 const init = (type, row) => { dialogForm.value = true; @@ -186,32 +225,15 @@ const getDataById = (row) => { fgmc: res.fgmc, id: res.fgId, }] - const fginfo = listQuery.value.fgData?.map((el, index) => { - let position = [ - [Number(el.x1), Number(el.y1)], - [Number(el.x2), Number(el.y2)] - ]; - let text = el.mc; - let obj = { position: position, text, id: el.id, userData: el }; - return obj; - }); - emitter.emit("echoPlane", { - fontColor: "white", - coords: fginfo, - type: "rectangle", - flag: "taskFg-info", - color: "red", - linecolor: "red" - }); + renderSelectedFg(listQuery.value.fgData[0]); pageData.tableData = res.bxds }); }; const getData = async () => { const res = await fetchTbZdxlFgdwSelectList(); if (res && res?.length > 0) { - emitter.emit("deletePointArea", "taskFg-flag"); let cc = []; - const list = res?.map((el, index) => { + fgPlaneList.value = res?.map((el, index) => { let centerPoint = [el.zxX, el.zxY]; if (index == 0) cc = centerPoint; let position = [ @@ -222,14 +244,7 @@ const getData = async () => { let obj = { position: position, text, id: el.id, userData: el }; return obj; }); - emitter.emit("echoPlane", { - fontColor: "#12fdb8", - coords: list, - type: "rectangle", - flag: "taskFg-flag", - color: "rgba(2,20,51,0.5)", - linecolor: "#1C97FF" - }); + renderBaseFg(); emitter.emit("setMapCenter", { location: cc, zoomLevel: 11 }); } }; @@ -319,6 +334,9 @@ const close = () => { listQuery.value = { qcys: "#409eff" }; dialogForm.value = false; loading.value = false; + fgPlaneList.value = []; + emitter.emit("deletePointArea", "taskFg-info"); + emitter.emit("deletePointArea", "taskFg-flag"); }; defineExpose({ init }); diff --git a/src/views/backOfficeSystem/service/taskPage/patrol-block/index.vue b/src/views/backOfficeSystem/service/taskPage/patrol-block/index.vue new file mode 100644 index 0000000..9775e90 --- /dev/null +++ b/src/views/backOfficeSystem/service/taskPage/patrol-block/index.vue @@ -0,0 +1,440 @@ + + + + + diff --git a/src/views/largeScreen/home/layout/workCondition.vue b/src/views/largeScreen/home/layout/workCondition.vue index 2176f90..45b348d 100644 --- a/src/views/largeScreen/home/layout/workCondition.vue +++ b/src/views/largeScreen/home/layout/workCondition.vue @@ -29,20 +29,20 @@ 辅警:{{ xz.jmfjsl || 0 }} - + -->