add:新增功能

This commit is contained in:
闫世杰 2025-01-13 17:30:22 +08:00
parent 15cedb056f
commit 4f1c730a88
18 changed files with 701 additions and 167 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
src/assets/images/flow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 916 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
src/assets/images/norm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -2,7 +2,7 @@ import axios from "axios";
import { ElMessage } from "element-plus";
import tools from "@/utils/tools";
import router from "../router";
axios.defaults.baseURL = 'https://jzzf.longyou.gov.cn:998/'
// axios.defaults.baseURL = 'https://jzzf.longyou.gov.cn:998/'
axios.defaults.timeout = 120000;

View File

@ -7,6 +7,7 @@
:show-close="false"
:close-on-click-modal="false"
:close-on-press-escape="false"
@close="closeDialog"
>
<template #header="{ close, titleId, titleClass }">
<div class="my-header">
@ -22,20 +23,17 @@
<img
src="@/assets/images/table_l.png"
alt=""
style="margin-right: 10px"
/>
style="margin-right: 10px" />
<div class="name">{{ data.title }}</div>
<img
src="@/assets/images/table_r.png"
alt=""
style="margin-left: 10px"
/>
style="margin-left: 10px" />
</div>
<img
class="title_botton"
src="@/assets/images/table_c.png"
alt=""
/>
alt="" />
</div>
</div>
<div
@ -46,15 +44,13 @@
display: flex;
justify-content: center;
align-items: center;
"
>
">
<video
id="videoPlayer"
class="video-js vjs-default-skin"
controls
playsinline
autoplay="autoplay"
>
autoplay="autoplay">
<source :src="attachmentLink" type="application/x-mpegURL" />
</video>
</div>
@ -126,7 +122,9 @@ watch(
//dom
if (num.value) {
// console.log(22222, document.getElementById("videoBox"));
nextTick(() => {
insertVideo();
});
}
nextTick(() => {
setTimeout(() => {

View File

@ -0,0 +1,219 @@
<template>
<div class="dialogPage">
<el-dialog
v-model="show"
width="80vw"
:show-close="false"
center
:close-on-click-modal="false"
:close-on-press-escape="false">
<template #header="{}">
<div class="my-header">
<el-icon size="26" color="#fff" @click="onClose">
<CircleCloseFilled />
</el-icon>
</div>
</template>
<div class="tabelPart">
<div class="bo">
<div class="title">
<div class="title_top">
<img
src="@/assets/images/table_l.png"
alt=""
style="margin-right: 10px" />
<div class="name">{{ title }}</div>
<img
src="@/assets/images/table_r.png"
alt=""
style="margin-left: 10px" />
</div>
<img
class="title_botton"
src="@/assets/images/table_c.png"
alt="" />
</div>
</div>
<div class="tabel-part-box">
<slot></slot>
</div>
</div>
</el-dialog>
</div>
</template>
<script setup>
import { defineProps, computed } from "vue";
import { CircleCloseFilled } from "@element-plus/icons-vue";
const emit = defineEmits(["update:show"]);
const props = defineProps({
show: {
type: Boolean,
default: () => {
return false;
},
},
title: {
type: String,
default: () => {
return "";
},
},
});
const show = computed({
get() {
return props.show;
},
set(val) {
emit("update:show", val);
},
});
const onClose = () => {
show.value = false;
};
</script>
<style lang="scss" scoped>
:deep(.el-dialog) {
--el-dialog-bg-color: none;
--el-dialog-width: 76% !important;
margin: 11vh auto !important;
}
.my-header {
display: flex;
flex-direction: row-reverse;
}
.tabelPart {
padding: 16px;
padding-bottom: 5px;
background: linear-gradient(
270deg,
rgba(0, 77, 131, 0.69) 0%,
rgba(0, 51, 83, 0.77) 50%,
rgba(0, 77, 131, 0.74) 100%
),
radial-gradient(
66% 40% at 50% 0%,
rgba(1, 150, 243, 0.55) 0%,
rgba(0, 116, 255, 0) 100%
);
box-shadow: inset 0px 0px 56px 0px rgba(100, 191, 255, 0.5);
border: 2px solid;
border-image: linear-gradient(
180deg,
rgba(21, 150, 255, 1),
rgba(0, 157, 227, 0)
)
2 2;
:deep(.el-table) {
--el-table-bg-color: none;
--el-table-tr-bg-color: none;
--el-table-header-bg-color: none;
background: none;
border: none;
--el-table-text-color: #fff;
--el-table-header-text-color: #fff;
}
// :deep(.el-table th) {
// text-align: center;
// }
.tabel-part-box {
margin: 30px 50px 50px;
padding: 26px;
min-height: 300px;
max-height: 56vh;
background: rgba(70, 114, 171, 0.36);
color: #fff;
font-family: PingFangSC, PingFang SC;
font-weight: 500;
font-size: 16px;
color: #ffffff;
line-height: 1.6;
letter-spacing: 3px;
overflow: auto;
&::-webkit-scrollbar {
display: none;
}
}
}
.pagePart {
height: 40px;
display: flex;
align-items: center;
justify-content: center;
:deep(.el-pagination) {
--el-pagination-button-disabled-bg-color: none;
--el-pagination-bg-color: none;
--el-pagination-button-bg-color: none;
--el-pagination-button-color: #fff;
color: #fff;
}
:deep(.el-pagination button:disabled) {
background-color: rgba(0, 116, 255, 0) !important;
}
:deep(.el-pagination > .is-last) {
color: #ffffff;
}
}
.bo {
width: 100%;
display: flex;
}
.title {
margin: 0px auto;
display: flex;
flex-direction: column;
&_top {
display: flex;
align-items: end;
justify-content: center;
img {
height: 33px;
width: 33px;
}
.name {
font-family: PangMenZhengDao, PangMenZhengDao;
font-weight: 600;
font-size: 22px;
color: #ffffff;
line-height: 27px;
text-align: center;
font-style: normal;
letter-spacing: 2px;
background: linear-gradient(180deg, #ffffff 0%, #51ffef 100%);
-webkit-background-clip: text;
/*将设置的背景颜色限制在文字中*/
-webkit-text-fill-color: transparent;
/*给文字设置成透明*/
}
}
&_botton {
margin-top: 5px;
height: 19px;
}
}
.custom-table-font {
font-size: 15px;
}
:deep(.el-table:not(.el-table--border) .el-table__cell) {
padding: 3px 0px;
}
:deep(.el-pagination) {
transform: scale(0.8);
}
:deep(.el-overlay-dialog) {
bottom: 0 !important;
overflow: hidden !important;
}
</style>

View File

@ -40,6 +40,16 @@ import j8_map from "@/assets/images/map/j8_map.png";
import j9_map from "@/assets/images/map/j9_map.png";
import j10_map from "@/assets/images/map/j10_map.png";
import j11_map from "@/assets/images/map/j11_map.png";
import xhyld from "@/assets/images/map/xhyld.png"
import gxjs from "@/assets/images/map/gxjs.png"
import gxst from "@/assets/images/map/gxst.png"
import js_grade_school from "@/assets/images/map/js_grade_school.png"
import js_high_school from "@/assets/images/map/js_high_school.png"
import js_junior_high from "@/assets/images/map/js_junior_high.png"
import js_kindergarten from "@/assets/images/map/js_kindergarten.png"
import js_gx from "@/assets/images/map/js_gx.png"
import zcd_map from "@/assets/images/map/zcd_map.png"
import st_map from "@/assets/images/map/st_map.png"
export {
zcd,
dqfwzx,
@ -57,6 +67,9 @@ export {
whlt,
njsw,
xxg,
xhyld,
gxjs,
gxst,
j0,
j1,
j2,
@ -83,4 +96,9 @@ export {
xqwy_map,
cjrzj_map,
bmfwzx_map,
js_grade_school,
js_high_school,
js_junior_high,
js_kindergarten, js_gx, zcd_map,
st_map
}

View File

@ -18,8 +18,7 @@
v-for="(item, index) in personTotal.slice(0, 1)"
:class="{ choose: item.age == choose.person }"
@click="buten(item)"
:key="index"
>
:key="index">
<div class="content_item_name">{{ ageLess0(item.ages) }}</div>
<div class="content_item_value">{{ item.rksl }}</div>
</div>
@ -27,6 +26,7 @@
<div class="progress-wrapper">
<div
v-for="(item, index) in PopulationRatio"
:key="index"
:class="[
'progress-container',
{
@ -37,8 +37,7 @@
:style="{
width: item.progress + '%',
backgroundColor: item.bgColor,
}"
>
}">
<span
:style="{ color: item.bgColor }"
:class="[
@ -63,12 +62,10 @@
class="age-line"
:style="{
backgroundColor: item.bgColor,
}"
></div>
}"></div>
<div
class="dot"
:style="{ backgroundColor: item.bgColor }"
></div>
:style="{ backgroundColor: item.bgColor }"></div>
</div>
</div>
</div>
@ -78,8 +75,7 @@
v-for="(item, index) in personTotal.slice(1)"
:class="{ choose: item.age == choose.person }"
@click="buten(item)"
:key="index"
>
:key="index">
<div class="content_item_name">{{ ageLess0(item.ages) }}</div>
<div class="content_item_value">
{{ item.rksl }}
@ -103,8 +99,7 @@
Tsactive: !item.click,
}"
@click="item.click ? buten2(item) : ''"
:key="index"
>
:key="index">
<div class="content_item_name">{{ item.name }}</div>
<div class="content_item_value">{{ item.rksl }}</div>
</div>
@ -126,8 +121,7 @@
Tsactive: !item.click,
}"
@click="item.click ? changeys(item.name, item.img_width) : ''"
:key="index"
>
:key="index">
<img
:src="item.img"
class="zyys_content_item_left"
@ -136,8 +130,7 @@
item.name == '菜市场' ||
item.name == '停车场' ||
item.name == '文化广场',
}"
/>
}" />
<div class="zyys_content_item_right">{{ item.name }}</div>
</div>
</div>
@ -152,16 +145,15 @@
<div
class="jbggfwq_content_item"
v-for="(item, index) in jbfwqTotal"
:key="index"
>
:key="index">
<div class="jbggfwq_content_item_left">{{ item.name }}</div>
<div class="jbggfwq_content_item_right">
<div
class="jbggfwq_content_item_right_item"
v-for="itemm in item.child"
:key="itemm.jc"
:class="{ choose: itemm.jc == choose.fwq }"
@click="changeFwq(itemm.jc, item.name, itemm.jc)"
>
@click="changeFwq(itemm.jc, item.name, itemm.jc)">
{{ itemm.jc }}
</div>
</div>
@ -173,29 +165,25 @@
<div
class="btnopen"
@click="nameEdit"
v-if="!add_mode && !edit_mode && !move_mode"
>
v-if="!add_mode && !edit_mode && !move_mode">
修改村名
</div>
<div
class="btnsave"
@click="xzEdit"
v-if="!add_mode && !edit_mode && !move_mode"
>
v-if="!add_mode && !edit_mode && !move_mode">
修改所属乡镇
</div>
<div
class="btnsave"
@click="centerEdit"
v-if="!add_mode && !edit_mode && !move_mode"
>
v-if="!add_mode && !edit_mode && !move_mode">
修改村社中心点
</div>
<div
class="btnsave"
@click="addmode"
v-if="!edit_mode && !add_mode && !move_mode"
>
v-if="!edit_mode && !add_mode && !move_mode">
添加模式
</div>
<div style="display: flex" v-if="add_mode">
@ -208,8 +196,7 @@
<div
class="btnsave"
@click="editmode"
v-if="!edit_mode && !add_mode && !move_mode"
>
v-if="!edit_mode && !add_mode && !move_mode">
编辑模式
</div>
<div style="display: flex" v-if="edit_mode">
@ -220,8 +207,7 @@
<div
class="btnsave"
@click="movemode"
v-if="!edit_mode && !add_mode && !move_mode"
>
v-if="!edit_mode && !add_mode && !move_mode">
移动模式
</div>
<div style="display: flex" v-if="move_mode">
@ -233,23 +219,20 @@
<div
class="btnsave"
v-if="!add_mode && !edit_mode && !move_mode"
@click="deleteCs"
>
@click="deleteCs">
删除地块
</div>
<div
class="btnclose"
@click="backEdit"
v-if="!add_mode && !edit_mode && !move_mode"
>
v-if="!add_mode && !edit_mode && !move_mode">
退出
</div>
</div>
<div
class="btnBj"
:class="{ collapsed: isCollapsed }"
v-if="!showEdit && !dialogShow && !openD"
>
v-if="!showEdit && !dialogShow && !openD">
<div class="arrow" @click="toggleCollapse">
<span>{{ isCollapsed ? "◀" : "▶" }}</span>
</div>
@ -257,11 +240,30 @@
<p
v-show="!isCollapsed"
@click="openqx()"
:style="{ color: jsqx ? 'green' : 'red' }"
>
:style="{ color: jsqx ? 'green' : 'red' }">
{{ bjtitle }}
</p>
</div>
<div class="right-floating-window" v-show="business.show">
<div class="floating_model" @click="onMechanism">
<div class="floating_model_icon">
<img src="@/assets/images/norm.png" alt="" />
</div>
<div class="floating_model_label">机制标准</div>
</div>
<div class="floating_model">
<div class="floating_model_icon">
<img src="@/assets/images/flow.png" alt="" />
</div>
<div class="floating_model_label">业务流程</div>
</div>
<div class="floating_model" @click="onWork">
<div class="floating_model_icon">
<img src="@/assets/images/condition.png" alt="" />
</div>
<div class="floating_model_label">工作情况</div>
</div>
</div>
<Dialog
:dialogShow="dialogShow"
:columns="tableType.columns"
@ -272,8 +274,7 @@
@handle="handlePagination"
@openMessage="openMessage"
@openSxt="openCamera"
style="z-index: 333"
>
style="z-index: 333">
<template #jzzt="{ currentCol, currentData }">
<div v-if="currentData.jzzt == 0">居住</div>
<div v-else>未居住</div>
@ -282,8 +283,7 @@
<img
src="@/assets/images/sxt_map.png"
style="width: 20px; height: 20px"
v-if="currentData.camera"
/>
v-if="currentData.camera" />
</template>
<template #zxs="{ currentCol, currentData }">
<div v-if="currentData.zt > 0" style="font-size: 30px">*</div>
@ -293,8 +293,7 @@
:cameraShow="sxtShow.show"
:hlsUriSsl="sxtShow.hlsUriSsl"
:sxtname="sxtShow.name"
@close="close1"
>
@close="close1">
</DialogCamera>
<!-- 详情 -->
<personDetail
@ -302,8 +301,7 @@
style="width: 1920px; height: 1080px"
v-show="openD"
:message="message"
@closeDetail="closeDetail"
></personDetail>
@closeDetail="closeDetail"></personDetail>
<!-- 加载动画 -->
<div class="loadBody" v-show="loadingss">
<div class="load">
@ -327,8 +325,7 @@
<el-input
v-model="input1"
style="width: 240px"
placeholder="请输入新村名"
/>
placeholder="请输入新村名" />
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="csName()"> 确认修改 </el-button>
@ -349,8 +346,7 @@
<el-form
:model="add_new_cs"
label-width="auto"
style="max-width: 500px"
>
style="max-width: 500px">
<el-form-item label="村社名">
<el-input v-model="add_new_cs.name" />
</el-form-item>
@ -374,8 +370,7 @@
<el-input
v-model="qxvalue"
style="width: 240px"
placeholder="请输入密码"
/>
placeholder="请输入密码" />
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="saveqx()"> 确认权限 </el-button>
@ -387,14 +382,21 @@
<el-input
v-model="input3"
style="width: 240px"
placeholder="请输入所属乡镇"
/>
placeholder="请输入所属乡镇" />
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="ssxzEdit()"> 确认修改 </el-button>
</div>
</template>
</el-dialog>
<!-- 弹框模版 -->
<DialogModel
v-bind="dialogModelConfig"
v-model:show="dialogModelConfig.show">
<component
v-if="dialogModelConfig.render"
:is="dialogModelConfig.render"></component>
</DialogModel>
</teleport>
</div>
</template>
@ -409,8 +411,9 @@ import {
defineProps,
watch,
nextTick,
h,
} from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import { ElMessage, ElMessageBox, ElImage } from "element-plus";
import tools from "@/utils/tools";
import initializeMap from "@/utils/mapInitializer.js";
import http from "@/utils/request.js";
@ -427,6 +430,7 @@ import AED from "@/assets/images/map/AED.png";
import Dialog from "./dialog/dialogMapDp.vue";
import DialogCamera from "./dialog/dialogCameras.vue";
import personDetail from "./person/index.vue";
import DialogModel from "./dialog/dialogModel.vue";
import {
DrawScene,
PolygonDraw,
@ -452,6 +456,9 @@ import {
whlt,
njsw,
xxg,
xhyld,
gxjs,
gxst,
j0,
j1,
j2,
@ -478,7 +485,21 @@ import {
xqwy_map,
cjrzj_map,
bmfwzx_map,
js_grade_school,
js_high_school,
js_junior_high,
js_kindergarten,
js_gx,
zcd_map,
st_map,
} from "./img_map/map.js";
//#region
const dialogModelConfig = reactive({
show: false,
title: "",
render: null,
});
//#endregion
//---------------
//
const drawing = ref(false); //true
@ -1039,9 +1060,69 @@ const jbfwqPx = reactive([
var circle;
const fwqList = ref([]);
//#region
const business = reactive({
show: false,
bj: "",
});
//
const onMechanism = () => {
dialogModelConfig.title = "机制标准";
let bj = business.bj == "gxjs" ? "gxjs" : "lnst";
http.get(`/api/ggfwyth/ysyzt/getJzbz?bj=${bj}`).then((res) => {
if (res.code == 200) {
dialogModelConfig.render = () => {
return h("div", {
innerHTML: res.data.zcnr?.replace(/\n/g, "<br/>") || res.data.zcnr,
});
};
dialogModelConfig.show = true;
}
});
};
//
const onWork = () => {
dialogModelConfig.title = "工作情况";
http.get(`/api/ggfwyth/ysyzt/getGzqk?bj=${business.bj}`).then((res) => {
if (res.code == 200) {
dialogModelConfig.render = () => {
let images = res.data.map((item) => {
return h(ElImage, { src: item });
});
return h("div", {}, images);
};
dialogModelConfig.show = true;
}
});
};
//#endregion
//
const yaosuTotal = ref([
{
id: 37,
name: "巡回医疗点",
img: xhyld,
wz: true,
click: true,
},
{
id: 38,
name: "共享教师",
url: "/api/ggfwyth/ysyzt/getGxjsXx",
img: gxjs,
wz: true,
click: true,
},
{
id: 39,
name: "共享食堂",
url: "/api/ggfwyth/ysyzt/getLnstxx",
img: gxst,
wz: true,
click: true,
},
{
id: 0,
name: "体育场所",
@ -1194,7 +1275,7 @@ const yaosuTotal = ref([
name: "停车场",
img: tcc,
wz: true,
click: false,
click: true,
},
{
id: 23,
@ -1286,7 +1367,7 @@ const yaosuTotal = ref([
id: 36,
name: "菜市场",
img: csc,
wz: true,
wz: false,
click: false,
},
]);
@ -1526,6 +1607,47 @@ const table_column_list = reactive({
property: "xmmc",
},
],
gxjs: [
{
label: "序号",
property: "index",
width: "50",
type: "index",
align: "center",
},
{
label: "学校名称",
property: "xxmc",
},
{
label: "教师姓名",
property: "jsxm",
},
{
label: "共享科目",
property: "gxkm",
},
{
label: "共享原因",
property: "gxyy",
},
],
gxst: [
{
label: "序号",
width: "50",
type: "index",
align: "center",
},
{
label: "姓名",
property: "scustomername",
},
{
label: "菜品信息",
property: "dishesmealnames",
},
],
});
//
@ -1758,7 +1880,7 @@ const moveDK = async () => {
cs_choose_arr.value.forEach((item, index) => {
map.removeOverlay(cs_choose_arr.value[index]);
});
chooseCsList.value.length = 0;
chooseCsList.value = [];
xkzDk.forEach((itemm, indexx) => {
if (itemm.name == cfCs.value) {
chooseCsList.value.push(itemm);
@ -1902,7 +2024,7 @@ const saveDK = async () => {
cs_choose_arr.value.forEach((item, index) => {
map.removeOverlay(cs_choose_arr.value[index]);
});
chooseCsList.value.length = 0;
chooseCsList.value = [];
xkzDk.forEach((itemm, indexx) => {
if (itemm.name == cfCs.value) {
chooseCsList.value.push(itemm);
@ -2164,7 +2286,7 @@ const addNew = async () => {
add_new_cs.center = [];
await getCssj();
await loadCs(cfJd.value);
unChooseList.value.length = 0;
unChooseList.value = [];
xkzDk.forEach((itemm, indexx) => {
if (itemm.name != cfCs.value) {
unChooseList.value.push(itemm);
@ -2274,8 +2396,8 @@ const clear = () => {
cs_choose_arr.value = [];
cs_un_choose_arr.value = [];
cs_dd_arr.value = [];
xkzCenter.length = 0;
xkzDk.length = 0;
xkzCenter = [];
xkzDk = [];
};
//()
const clearPerson = () => {
@ -2303,9 +2425,9 @@ const clearyaosu = () => {
zyys_center.value.forEach((item, index) => {
map.removeOverlay(item); //
});
yaosuList.value.length = 0;
zyys_dk.value.length = 0;
zyys_center.value.length = 0;
yaosuList.value = [];
zyys_dk.value = [];
zyys_center.value = [];
zyys_choose_cs.value = "";
}
};
@ -2885,7 +3007,7 @@ const getDataBq = async (jd, cs) => {
.get(`/api/ggfwyth/ysyzt/getBqRs?committee=${cs || ""}&town=${jd || ""}`)
.then((res) => {
if (res.code == 200) {
tsbqTotal.value.length = 0;
tsbqTotal.value = [];
tsbq_id_total.value.forEach((item, index) => {
let b = 0;
@ -2928,9 +3050,9 @@ const getDataBq = async (jd, cs) => {
const getDataBqFirst = async () => {
await http.get(`/api/ggfwyth/ysyzt/getBqRs`).then((res) => {
if (res.code == 200) {
tsbqTotal.value.length = 0;
tsbqTotal.value = [];
tsbq_pp.value.lenth = 0;
tsbq_id_total.value.length = 0;
tsbq_id_total.value = [];
res.data.forEach((item, index) => {
tsbq_pp.value.push(item.bq);
tsbq_id_total.value.push({
@ -3200,8 +3322,11 @@ const changeRs = (id) => {
//----------------------
const zyys_choose_cs = ref("");
const changeys = (name, img_width) => {
if (yaosuList.value.includes(name)) {
//
const removeOverlay = (name) => {
if (!yaosuList.value.includes(name)) {
return;
}
yaosuList.value = yaosuList.value.filter((ch) => ch !== name);
if (yaosuIcon.value[name]) {
yaosuIcon.value[name].sj.forEach((item, index) => {
@ -3216,14 +3341,46 @@ const changeys = (name, img_width) => {
zyys_center.value.forEach((item, index) => {
map.removeOverlay(item);
});
zyys_dk.value.length = 0;
zyys_center.value.length = 0;
zyys_dk.value = [];
zyys_center.value = [];
}
};
const changeys = (name, img_width) => {
//
let businessList = [
{
name: "共享教师",
bj: "gxjs",
},
{
name: "共享食堂",
bj: "gxst",
},
{
name: "巡回医疗点",
bj: "xhyld",
},
];
if (businessList.some((item) => item.name == name)) {
businessList.forEach((item) => {
if (item.name == name) {
business.bj = item.bj;
business.show = true;
} else {
removeOverlay(item.name);
}
});
}
if (yaosuList.value.includes(name)) {
removeOverlay(name);
business.show = false;
} else {
loadingss.value = true;
csh();
clearPerson();
yaosuList.value.push(name);
let url;
let img;
let img_map;
@ -3236,27 +3393,55 @@ const changeys = (name, img_width) => {
tooltip = item.tooltip;
}
});
if (
name == "摄像头" ||
name == "AED" ||
name == "幼儿园" ||
name == "小学" ||
name == "初中" ||
name == "高中" ||
name == "医院" ||
name == "卫生服务中心" ||
name == "残疾人之家" ||
name == "汽车充电桩" ||
name == "便民服务中心"
) {
getZyys(url, name, img, img_map, tooltip, img_width);
} else if (name == "养老机构") {
switch (name) {
case "养老机构":
getZyys2(name, img, img_map, tooltip, img_width);
} else if (name == "小区物业") {
break;
case "小区物业":
getZyys3(url, name, img, img_map, tooltip, img_width);
break;
default:
let list = [
"摄像头",
"AED",
"幼儿园",
"小学",
"初中",
"高中",
"医院",
"卫生服务中心",
"残疾人之家",
"汽车充电桩",
"便民服务中心",
"共享教师",
"共享食堂",
];
if (list.includes(name)) {
getZyys(url, name, img, img_map, tooltip, img_width);
} else {
loadingss.value = false;
}
break;
}
}
};
//
const gxjsIcon = (name) => {
switch (name) {
case "幼儿园":
return js_kindergarten;
case "小学":
return js_grade_school;
case "初中":
return js_junior_high;
case "中职":
return js_high_school;
case "高中":
return js_high_school;
default:
return js_high_school;
}
};
//线
@ -3265,7 +3450,11 @@ const getZyys = (url, name, img, img_map, tooltip, img_width) => {
if (res.code == 200) {
yaosuIcon.value[name] = {};
yaosuIcon.value[name]["sj"] = [];
if (name == "共享食堂") {
yaosuIcon.value[name]["sj"] = [...res.data.lnst, ...res.data.zcd];
} else {
yaosuIcon.value[name]["sj"] = res.data;
}
yaosuIcon.value[name]["sj"].forEach((item, index) => {
item.img = img;
item.img_map = img_map;
@ -3281,6 +3470,14 @@ const getZyys = (url, name, img, img_map, tooltip, img_width) => {
let newStr = item.point.replace("", ",");
item.center = JSON.parse(newStr);
break;
case "共享教师":
item.img_map = item.gxjs == 1 ? js_gx : gxjsIcon(item.lb);
item.center = [Number(item.jd), Number(item.wd)];
break;
case "共享食堂":
item.img_map = item.bj ? st_map : zcd_map;
item.center = [Number(item.jd), Number(item.wd)];
break;
default:
item.center = [Number(item.jd), Number(item.wd)];
break;
@ -3471,9 +3668,25 @@ const createZyys = (polygon, indexx, name, tooltip, img_width) => {
console.log(polygon);
open_detail_zyys_xqwy(polygon.ssjd, polygon.sssq);
break;
case "共享教师":
gxjsName.value = polygon.xxmc;
getSharedTeacher();
break;
// case "":
// // console.log(polygon);
// // if (polygon.bj) {
// // gxstName.value = polygon.lnstmc;
// // getSharedCanteen();
// // }
// break;
default:
console.log(polygon);
zyys_choose_cs.value = name;
if (zyys_dk.value.length) {
if (name == "共享食堂") {
gxstName.value = polygon?.lnstmc || ""; //
}
if (zyys_dk.value.length > 0) {
zyys_dk.value.forEach((item, index) => {
map.removeOverlay(item); //
});
@ -3488,15 +3701,46 @@ const createZyys = (polygon, indexx, name, tooltip, img_width) => {
} else {
zyys_total_center[name] = [];
zyys_total_dk[name] = [];
await get_dk_zyys(polygon.fgfwrs, polygon.lb, polygon.ssly, name);
xr_dk_center_zyys();
}
break;
}
}
);
};
//
const gxjsName = ref("");
const getSharedTeacher = () => {
tableType.title = "共享教师";
tableType.columns = table_column_list.gxjs;
dialogShow.value = true;
http.get(`/api/ggfwyth/ysyzt/getGxjs?xxmc=${gxjsName.value}`).then((res) => {
if (res.code == 200) {
tableType.data = res.data;
pagination.total = res.data.length;
}
});
};
//
const gxstName = ref("");
const getSharedCanteen = () => {
tableType.title = "共享食堂";
tableType.columns = table_column_list.gxst;
dialogShow.value = true;
http
.get(
`/api/ggfwyth/ysyzt/lnstryxx?sdailyCareCenterName=${gxstName.value}&page=${pagination.currentPage}&size=${pagination.pageSize}`
)
.then((res) => {
if (res.code == 200) {
tableType.data = res.data;
pagination.total = res.count;
}
});
};
//
const open_detail_zyys_xqwy = (xzjd, csq) => {
tableType.title = "小区物业";
tableType.columns = table_column_list.xqwy;
@ -3588,10 +3832,10 @@ const loadCs_zyys2 = async (jdname, name) => {
}
};
const get_dk_zyys = async (sj, xd, ssly, name) => {
zyys_dk.value.length = 0;
zyys_center.value.length = 0;
zyys_data.value.point.length = 0;
zyys_data.value.center.length = 0;
zyys_dk.value = [];
zyys_center.value = [];
zyys_data.value.point = [];
zyys_data.value.center = [];
let zyys_jd = [];
sj.forEach((itemN) => {
if (!zyys_jd.includes(itemN.town)) {
@ -3656,7 +3900,7 @@ const get_dk_zyys = async (sj, xd, ssly, name) => {
if (item.committee == dk.name) {
let a = {
...dk,
zt: item.zt,
zt: item.zt || 0,
};
zyys_data.value.point.push(a);
}
@ -3665,7 +3909,7 @@ const get_dk_zyys = async (sj, xd, ssly, name) => {
if (item.committee == center.name) {
let b = {
...center,
num: item.num,
num: item.num || "",
town: item.town,
committee: item.committee,
ssly: ssly,
@ -3698,6 +3942,8 @@ const xr_dk_center_zyys = async () => {
map.addOverlay(zyys_dk.value[index]);
}
});
console.log(zyys_data.value);
zyys_data.value.center.map((item, index) => {
Xr_zyysNum(item, index);
});
@ -3790,8 +4036,11 @@ const Xr_zyysNum = (polygon, indexx) => {
} else {
zyys_table.xd = "";
}
if (zyys_choose_cs.value == "共享食堂") {
getSharedCanteen();
} else {
open_detail_zyys();
}
});
};
const open_detail_zyys = () => {
@ -3927,6 +4176,7 @@ const close = () => {
dialogShow.value = false;
pagination.total = 100;
pagination.currentPage = 1;
tableType.title = "";
tableType.data = [];
};
//
@ -3939,6 +4189,14 @@ const onsxt = () => {
//
const handlePagination = (current) => {
pagination.currentPage = current;
switch (tableType.title) {
case "共享教师":
getSharedTeacher();
break;
case "共享食堂":
getSharedCanteen();
break;
default:
if (tableType.type) {
let age = "";
let tagId;
@ -3963,6 +4221,8 @@ const handlePagination = (current) => {
} else {
open_detail_zyys();
}
break;
}
};
//
@ -3971,9 +4231,15 @@ const openCamera = () => {
};
//
const openMessage = (e) => {
if (tableType.title == "小区物业") {
if (
tableType.title == "小区物业" ||
tableType.title == "共享教师" ||
tableType.title == "共享食堂"
) {
return;
}
console.log(e);
message.value = e;
openD.value = true;
reset_font2();
@ -4355,7 +4621,7 @@ const createCustomOverlay = (polygon, indexx) => {
};
//+
const addFwqCs = () => {
fwq_dk.value.length = 0;
fwq_dk.value = [];
fwq_jzdk.value.map((item, index) => {
// let num = index % 9;
let fillColor = "#ffffff";
@ -4438,9 +4704,9 @@ const addFwqCsCenter = (polygon, indexx) => {
//
const updateFwqList = (data, townName, communityName) => {
let updatedFwqList = [];
fwq_cslist.value.length = 0;
fwq_jzdk.value.length = 0;
fwq_centerList.value.length = 0;
fwq_cslist.value = [];
fwq_jzdk.value = [];
fwq_centerList.value = [];
data.forEach((itemN) => {
if (!fwq_cslist.value.includes(itemN.csq)) {
fwq_cslist.value.push(itemN.csq);
@ -4646,7 +4912,7 @@ const addPolygonCounty = () => {
}
loadingss.value = true;
clear();
xkzDk.length = 0;
xkzDk = [];
cfJd.value = item.name;
let jdCenter = [];
BMAP();
@ -4807,8 +5073,8 @@ const createCustomOverlayJd2 = (polygon, indexx) => {
//---------------------
//
const loadCs = async (name) => {
xkzCenter.length = 0;
xkzDk.length = 0;
xkzCenter = [];
xkzDk = [];
cssj.forEach((item, index) => {
if (item.name == name) {
csqk.value = item.sj;
@ -4888,8 +5154,8 @@ const addPolygonCountyCs = () => {
xuanzhongCs.value.push(a);
}
});
chooseCsList.value.length = 0;
unChooseList.value.length = 0;
chooseCsList.value = [];
unChooseList.value = [];
xkzDk.forEach((itemm, indexx) => {
if (itemm.name == item.name) {
chooseCsList.value.push(itemm);
@ -4991,8 +5257,8 @@ const addCsUnChoose = () => {
cs_choose_arr.value.forEach((item, index) => {
map.removeOverlay(cs_choose_arr.value[index]);
});
chooseCsList.value.length = 0;
unChooseList.value.length = 0;
chooseCsList.value = [];
unChooseList.value = [];
cs_dd_arr.value = [];
xuanzhongCs.value = [];
xkzCenter.forEach((a, b) => {
@ -5999,7 +6265,40 @@ onMounted(async () => {
color: #0c356a;
}
}
.right-floating-window {
z-index: 100;
position: absolute;
color: #ffffff;
top: 20%;
right: 28%;
font-family: PangMenZhengDao;
.floating_model {
border: 1px solid #7db6c8;
padding: 6px 10px 6px 6px;
margin-bottom: 10px;
background: #426c8d;
box-shadow: 0px 3px 8px 0px rgba(43, 114, 153, 0.7);
border-radius: 6px;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 20px;
color: #c2e1ff;
text-align: left;
font-style: normal;
text-transform: none;
cursor: pointer;
.floating_model_icon {
width: 30px;
height: 30px;
img {
width: 100%;
height: 100%;
}
}
}
}
.title {
background-image: url(@/assets/images/map/map_title_bg.png);
background-repeat: no-repeat;