feat(map): 优化地图组件功能和交互
- 新增河流选择功能,可单独渲染每条河流 - 添加县区搜索功能,支持按县区筛选灾害点等数据 - 优化地图组件样式,增加折叠菜单等功能 -重构部分代码,提高可维护性和可扩展性master
parent
834f7d9f1d
commit
f30ad559fa
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 5.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
|
|
@ -13,6 +13,7 @@ import VueViewer from "v-viewer";
|
||||||
import { install } from "@icon-park/vue-next/es/all";
|
import { install } from "@icon-park/vue-next/es/all";
|
||||||
import "element-plus/es/components/loading/style/css";
|
import "element-plus/es/components/loading/style/css";
|
||||||
import "element-plus/es/components/message/style/css";
|
import "element-plus/es/components/message/style/css";
|
||||||
|
import "element-plus/es/components/message-box/style/css";
|
||||||
|
|
||||||
const app = createApp(App);
|
const app = createApp(App);
|
||||||
install(app, "icon");
|
install(app, "icon");
|
||||||
|
|
|
||||||
|
|
@ -1,54 +1,59 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<app-search v-model="searchForm" @submit="resetPagination">
|
<app-search v-model="searchForm" @submit="resetPagination">
|
||||||
<el-col :span="6">
|
<template #default="{ collapse }">
|
||||||
<el-form-item label="灾害点名称" prop="disasterName">
|
<el-col :span="6">
|
||||||
<el-input
|
<el-form-item label="灾害点名称" prop="disasterName">
|
||||||
v-model="searchForm.disasterName"
|
<el-input
|
||||||
placeholder="请输入灾害点名称"
|
v-model="searchForm.disasterName"
|
||||||
/>
|
placeholder="请输入灾害点名称"
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="属地" prop="area">
|
|
||||||
<layout-cascader
|
|
||||||
v-model="searchForm.area"
|
|
||||||
:dictionaries-id="'e725d2a91b8248f4b8f49889038df7de'"
|
|
||||||
:check-strictly="true"
|
|
||||||
:level="4"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="地形地貌" prop="terrain">
|
|
||||||
<el-select v-model="searchForm.terrain" placeholder="请选择地形地貌">
|
|
||||||
<el-option
|
|
||||||
v-for="item in terrainList"
|
|
||||||
:key="item.bianma"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.bianma"
|
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="灾害类型" prop="disasterType">
|
<el-form-item label="属地" prop="area">
|
||||||
<el-select
|
<layout-cascader
|
||||||
v-model="searchForm.disasterType"
|
v-model="searchForm.area"
|
||||||
placeholder="请选择灾害类型"
|
:dictionaries-id="'e725d2a91b8248f4b8f49889038df7de'"
|
||||||
>
|
:check-strictly="true"
|
||||||
<el-option
|
:level="4"
|
||||||
v-for="item in disasterTypeList"
|
|
||||||
:key="item.bianma"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.bianma"
|
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
</el-col>
|
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="地形地貌" prop="terrain">
|
||||||
|
<el-select
|
||||||
|
v-model="searchForm.terrain"
|
||||||
|
placeholder="请选择地形地貌"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in terrainList"
|
||||||
|
:key="item.bianma"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.bianma"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col v-show="!collapse" :span="6">
|
||||||
|
<el-form-item label="灾害类型" prop="disasterType">
|
||||||
|
<el-select
|
||||||
|
v-model="searchForm.disasterType"
|
||||||
|
placeholder="请选择灾害类型"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in disasterTypeList"
|
||||||
|
:key="item.bianma"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.bianma"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
</app-search>
|
</app-search>
|
||||||
|
|
||||||
<app-table v-model:pagination="pagination" :data="list" @get-data="getData">
|
<app-table v-model:pagination="pagination" :data="list" @get-data="getData">
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,30 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="bottom_utils">
|
<div class="bottom_utils">
|
||||||
<div class="items">
|
<div class="content">
|
||||||
<div
|
<div class="items">
|
||||||
v-for="(item, index) in bottomUtilsList"
|
<div
|
||||||
:key="index"
|
v-for="(item, index) in bottomUtilsList"
|
||||||
:class="['item', { active: currentActiveName === item.name }]"
|
:key="index"
|
||||||
@click="
|
:class="['item', { active: currentActiveName === item.name }]"
|
||||||
router.push({
|
@click="
|
||||||
name: 'map',
|
router.push({
|
||||||
params: { name: item.name, type: item.type },
|
name: 'map',
|
||||||
})
|
params: { name: item.name, type: item.type },
|
||||||
"
|
})
|
||||||
>
|
"
|
||||||
{{ item.name }}
|
>
|
||||||
|
{{ item.name }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<select-river
|
||||||
|
:current-active-name="currentActiveName"
|
||||||
|
@select-river="fnAddRiver"
|
||||||
|
/>
|
||||||
|
<select-county
|
||||||
|
:current-active-name="currentActiveName"
|
||||||
|
@search="fnAccordingToCondition"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -31,10 +41,12 @@ import {
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { useUserStore } from "@/pinia/user.js";
|
import { useUserStore } from "@/pinia/user.js";
|
||||||
import { mapMethodsInjectionKey } from "../js/injectionKey.js";
|
import { mapMethodsInjectionKey } from "../js/injectionKey.js";
|
||||||
import island from "../json/bridge/island.json";
|
|
||||||
import mitt from "@/assets/js/mitt.js";
|
import mitt from "@/assets/js/mitt.js";
|
||||||
import { changeCoverMaskVisibleMittKey } from "@/views/map/js/mittKey.js";
|
import { changeCoverMaskVisibleMittKey } from "@/views/map/js/mittKey.js";
|
||||||
import { BD09ToWGS84 } from "@/views/map/js/utils.js";
|
import { BD09ToWGS84 } from "@/views/map/js/utils.js";
|
||||||
|
import SelectRiver from "./select_river.vue";
|
||||||
|
import SelectCounty from "./selevt_county.vue";
|
||||||
|
import { reservoir } from "../js/json.js";
|
||||||
|
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
@ -70,13 +82,13 @@ onBeforeRouteUpdate((to) => {
|
||||||
fnMapRemoveElement();
|
fnMapRemoveElement();
|
||||||
currentActiveName.value = to.params.name;
|
currentActiveName.value = to.params.name;
|
||||||
currentActiveType.value = to.params.type;
|
currentActiveType.value = to.params.type;
|
||||||
fnMapAddElement();
|
fnMapAddPoint();
|
||||||
});
|
});
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
userStore.setToken("ba4cff95a300b9da9f1f8fa001c79082");
|
userStore.setToken("ba4cff95a300b9da9f1f8fa001c79082");
|
||||||
userStore.setTokenTime(dayjs().format("YYYY-MM-DD HH:mm:ss"));
|
userStore.setTokenTime(dayjs().format("YYYY-MM-DD HH:mm:ss"));
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
fnMapAddElement();
|
fnMapAddPoint();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
|
|
@ -84,32 +96,43 @@ onBeforeUnmount(() => {
|
||||||
userStore.setTokenTime("");
|
userStore.setTokenTime("");
|
||||||
});
|
});
|
||||||
const fnMapRemoveElement = () => {
|
const fnMapRemoveElement = () => {
|
||||||
if (currentActiveName.value !== "河流")
|
mapMethods.value.removePoint(currentActiveType.value);
|
||||||
mapMethods.value.removePoint(currentActiveType.value);
|
mapMethods.value.removeRiver();
|
||||||
else {
|
mapMethods.value.removeBridge();
|
||||||
mapMethods.value.removeRiver();
|
mapMethods.value.removeHalo();
|
||||||
mapMethods.value.removeBridge();
|
|
||||||
mapMethods.value.removeHalo();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
const fnMapAddElement = () => {
|
const fnMapAddPoint = (params = {}) => {
|
||||||
if (currentActiveName.value === "河流") fnAddRiver();
|
|
||||||
if (currentActiveName.value === "尾矿库")
|
if (currentActiveName.value === "尾矿库")
|
||||||
fnAddPoint(getTailingsReservoirListPage, "name");
|
fnAddPoint(getTailingsReservoirListPage, "name", params);
|
||||||
if (currentActiveName.value === "水库")
|
if (currentActiveName.value === "水库") {
|
||||||
fnAddPoint(getReservoirBasicPage, "reservoirName");
|
(async () => {
|
||||||
|
await fnAddPoint(getReservoirBasicPage, "reservoirName", params);
|
||||||
|
await fnAddRiver({
|
||||||
|
name: "水库",
|
||||||
|
river: reservoir,
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
}
|
||||||
if (currentActiveName.value === "地质灾害点")
|
if (currentActiveName.value === "地质灾害点")
|
||||||
fnAddPoint(getGeologicalDisasterPage, "disasterName");
|
fnAddPoint(getGeologicalDisasterPage, "disasterName", params);
|
||||||
if (currentActiveName.value === "应急储备库")
|
if (currentActiveName.value === "应急储备库")
|
||||||
fnAddPoint(getEmergencyStoragePage, "storageName");
|
fnAddPoint(getEmergencyStoragePage, "storageName", params);
|
||||||
if (currentActiveName.value === "山洪灾害村")
|
if (currentActiveName.value === "山洪灾害村")
|
||||||
fnAddPoint(getMountainFloodVillagePage, "villageName");
|
fnAddPoint(getMountainFloodVillagePage, "villageName", params);
|
||||||
};
|
};
|
||||||
const fnAddPoint = async (api, nameKey) => {
|
const fnAccordingToCondition = (params) => {
|
||||||
|
mapMethods.value.removePoint(currentActiveType.value);
|
||||||
|
fnMapAddPoint(params);
|
||||||
|
};
|
||||||
|
const fnAddPoint = async (api, nameKey, params = {}) => {
|
||||||
mitt.emit(changeCoverMaskVisibleMittKey, true);
|
mitt.emit(changeCoverMaskVisibleMittKey, true);
|
||||||
const {
|
const {
|
||||||
page: { list },
|
page: { list },
|
||||||
} = await api({ curPage: 1, limit: 1000 });
|
} = await api({
|
||||||
|
curPage: 1,
|
||||||
|
limit: 1000,
|
||||||
|
...params,
|
||||||
|
});
|
||||||
list.forEach((item) => {
|
list.forEach((item) => {
|
||||||
item.name = item[nameKey];
|
item.name = item[nameKey];
|
||||||
item.dialogWidth = bottomUtilsList.find(
|
item.dialogWidth = bottomUtilsList.find(
|
||||||
|
|
@ -125,27 +148,49 @@ const fnAddPoint = async (api, nameKey) => {
|
||||||
await mapMethods.value.addPoint(currentActiveType.value, list);
|
await mapMethods.value.addPoint(currentActiveType.value, list);
|
||||||
mitt.emit(changeCoverMaskVisibleMittKey, false);
|
mitt.emit(changeCoverMaskVisibleMittKey, false);
|
||||||
};
|
};
|
||||||
const fnAddRiver = async () => {
|
const fnAddRiver = async ({
|
||||||
|
name,
|
||||||
|
river,
|
||||||
|
bridge,
|
||||||
|
enterSeaOutlet,
|
||||||
|
floodDischargeOutletRed,
|
||||||
|
floodDischargeOutletYellow,
|
||||||
|
}) => {
|
||||||
mitt.emit(changeCoverMaskVisibleMittKey, true);
|
mitt.emit(changeCoverMaskVisibleMittKey, true);
|
||||||
const riverModules = import.meta.glob("../json/river/*.json");
|
for (let i = 0; i < river.length; i++) {
|
||||||
const bridgeModules = import.meta.glob([
|
await mapMethods.value.addRiver(river[i].position, name);
|
||||||
"../json/bridge/*.json",
|
await mapMethods.value.addHalo(river[i].position, name);
|
||||||
"!../json/bridge/island.json",
|
|
||||||
]);
|
|
||||||
for (const path in riverModules) {
|
|
||||||
const { river } = await riverModules[path]();
|
|
||||||
for (let i = 0; i < river.length; i++) {
|
|
||||||
await mapMethods.value.addRiver(river[i].position);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for (const path in bridgeModules) {
|
if (bridge) {
|
||||||
const { bridge } = await bridgeModules[path]();
|
|
||||||
for (let i = 0; i < bridge.length; i++) {
|
for (let i = 0; i < bridge.length; i++) {
|
||||||
await mapMethods.value.addBridge(bridge[i].position);
|
await mapMethods.value.addBridge(bridge[i].position, name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (let i = 0; i < island.island.length; i++) {
|
if (enterSeaOutlet) {
|
||||||
await mapMethods.value.addBridge(island.island[i].position);
|
for (let i = 0; i < enterSeaOutlet.length; i++) {
|
||||||
|
await mapMethods.value.addEnterSeaOutlet(
|
||||||
|
enterSeaOutlet[i].position,
|
||||||
|
name
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (floodDischargeOutletRed) {
|
||||||
|
for (let i = 0; i < floodDischargeOutletRed.length; i++) {
|
||||||
|
await mapMethods.value.addFloodDischargeOutlet(
|
||||||
|
floodDischargeOutletRed[i].position,
|
||||||
|
"red",
|
||||||
|
name
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (floodDischargeOutletYellow) {
|
||||||
|
for (let i = 0; i < floodDischargeOutletYellow.length; i++) {
|
||||||
|
await mapMethods.value.addFloodDischargeOutlet(
|
||||||
|
floodDischargeOutletYellow[i].position,
|
||||||
|
"yellow",
|
||||||
|
name
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
mitt.emit(changeCoverMaskVisibleMittKey, false);
|
mitt.emit(changeCoverMaskVisibleMittKey, false);
|
||||||
};
|
};
|
||||||
|
|
@ -155,33 +200,38 @@ const fnAddRiver = async () => {
|
||||||
.bottom_utils {
|
.bottom_utils {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 500px;
|
left: 480px;
|
||||||
right: 500px;
|
right: 480px;
|
||||||
background-image: url("/src/assets/images/map/buttombg.png");
|
|
||||||
background-size: 100% 100%;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
padding: 10px 20px 5px 20px;
|
|
||||||
|
|
||||||
.items {
|
.content {
|
||||||
display: flex;
|
background-image: url("/src/assets/images/map/buttombg.png");
|
||||||
align-items: center;
|
background-size: 100% 100%;
|
||||||
justify-content: space-between;
|
background-repeat: no-repeat;
|
||||||
|
padding: 10px 20px 5px 20px;
|
||||||
|
margin-left: 20px;
|
||||||
|
margin-right: 20px;
|
||||||
|
|
||||||
.item {
|
.items {
|
||||||
width: 122px;
|
display: flex;
|
||||||
height: 46px;
|
align-items: center;
|
||||||
line-height: 40px;
|
justify-content: space-between;
|
||||||
text-align: center;
|
|
||||||
cursor: pointer;
|
|
||||||
background-image: url("/src/assets/images/map/listbg1.png");
|
|
||||||
background-size: 100% 100%;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
color: #fff;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 16px;
|
|
||||||
|
|
||||||
&.active {
|
.item {
|
||||||
background-image: url("/src/assets/images/map/listbg2.png");
|
width: 122px;
|
||||||
|
height: 46px;
|
||||||
|
line-height: 40px;
|
||||||
|
text-align: center;
|
||||||
|
cursor: pointer;
|
||||||
|
background-image: url("/src/assets/images/map/listbg1.png");
|
||||||
|
background-size: 100% 100%;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
color: #fff;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 16px;
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
background-image: url("/src/assets/images/map/listbg2.png");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,16 +4,46 @@
|
||||||
enter-active-class="animate__animated animate__fadeInLeft"
|
enter-active-class="animate__animated animate__fadeInLeft"
|
||||||
leave-active-class="animate__animated animate__fadeOutLeft"
|
leave-active-class="animate__animated animate__fadeOutLeft"
|
||||||
>
|
>
|
||||||
<div v-if="animationKey !== 0" :key="animationKey" class="left_content">
|
<div
|
||||||
<left-content />
|
v-if="leftAnimationKey !== 0"
|
||||||
|
:key="leftAnimationKey"
|
||||||
|
class="left_content"
|
||||||
|
>
|
||||||
|
<template v-if="!leftCollapse">
|
||||||
|
<left-content />
|
||||||
|
</template>
|
||||||
|
<div
|
||||||
|
:class="[
|
||||||
|
'collapse_menu collapse_menu_left',
|
||||||
|
{ active: leftCollapse },
|
||||||
|
]"
|
||||||
|
@click="fnChangeLeftCollapse"
|
||||||
|
>
|
||||||
|
<img src="/src/assets/images/map/collapse_menu.png" alt="" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
<transition
|
<transition
|
||||||
enter-active-class="animate__animated animate__fadeInRight"
|
enter-active-class="animate__animated animate__fadeInRight"
|
||||||
leave-active-class="animate__animated animate__fadeOutRight"
|
leave-active-class="animate__animated animate__fadeOutRight"
|
||||||
>
|
>
|
||||||
<div v-if="animationKey !== 0" :key="animationKey" class="right_content">
|
<div
|
||||||
<right-content />
|
v-if="rightAnimationKey !== 0"
|
||||||
|
:key="rightAnimationKey"
|
||||||
|
class="right_content"
|
||||||
|
>
|
||||||
|
<template v-if="!rightCollapse">
|
||||||
|
<right-content />
|
||||||
|
</template>
|
||||||
|
<div
|
||||||
|
:class="[
|
||||||
|
'collapse_menu collapse_menu_right',
|
||||||
|
{ active: rightCollapse },
|
||||||
|
]"
|
||||||
|
@click="fnChangeRightCollapse"
|
||||||
|
>
|
||||||
|
<img src="/src/assets/images/map/collapse_menu.png" alt="" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -24,10 +54,22 @@ import { onMounted, ref } from "vue";
|
||||||
import LeftContent from "./left_content.vue";
|
import LeftContent from "./left_content.vue";
|
||||||
import RightContent from "./right_content.vue";
|
import RightContent from "./right_content.vue";
|
||||||
|
|
||||||
const animationKey = ref(0);
|
const leftAnimationKey = ref(0);
|
||||||
|
const rightAnimationKey = ref(0);
|
||||||
|
const leftCollapse = ref(false);
|
||||||
|
const rightCollapse = ref(false);
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
animationKey.value = Math.random();
|
leftAnimationKey.value = Math.random();
|
||||||
|
rightAnimationKey.value = Math.random();
|
||||||
});
|
});
|
||||||
|
const fnChangeLeftCollapse = () => {
|
||||||
|
leftAnimationKey.value = Math.random();
|
||||||
|
leftCollapse.value = !leftCollapse.value;
|
||||||
|
};
|
||||||
|
const fnChangeRightCollapse = () => {
|
||||||
|
rightAnimationKey.value = Math.random();
|
||||||
|
rightCollapse.value = !rightCollapse.value;
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|
@ -57,4 +99,50 @@ onMounted(() => {
|
||||||
padding-right: 15px;
|
padding-right: 15px;
|
||||||
padding-bottom: 15px;
|
padding-bottom: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.collapse_menu {
|
||||||
|
width: 30px;
|
||||||
|
height: 89px;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
background-image: url("/src/assets/images/map/collapse_menu_bg.png");
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
&.collapse_menu_left {
|
||||||
|
left: 480px;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.collapse_menu_right {
|
||||||
|
right: 480px;
|
||||||
|
transform: translateY(-50%) rotate(180deg);
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
top: 50vh;
|
||||||
|
|
||||||
|
img {
|
||||||
|
transform: translate(-50%, -50%) rotate(180deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 10px;
|
||||||
|
height: 17px;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%, -50%) rotate(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -92,9 +92,21 @@ const fnClose = () => {
|
||||||
--el-color-info: #fff;
|
--el-color-info: #fff;
|
||||||
--el-fill-color-lighter: rgba(15, 52, 119, 0.3);
|
--el-fill-color-lighter: rgba(15, 52, 119, 0.3);
|
||||||
|
|
||||||
.el-table th.el-table__cell {
|
.el-table {
|
||||||
--el-table-header-bg-color: rgba(15, 52, 119, 0.3);
|
--el-bg-color: rgba(2, 30, 81, 1);
|
||||||
color: #fff;
|
--el-border-color: rgba(16, 87, 216, 0.5);
|
||||||
|
--el-border-color-lighter: rgba(64, 156, 255, 0.3);
|
||||||
|
--el-fill-color-light: rgba(15, 52, 119, 1);
|
||||||
|
--el-fill-color-blank: rgba(15, 52, 119, 1);
|
||||||
|
--el-text-color-primary: #fff;
|
||||||
|
--el-text-color-regular: #fff;
|
||||||
|
--el-color-info: #fff;
|
||||||
|
--el-fill-color-lighter: rgba(15, 52, 119, 1);
|
||||||
|
|
||||||
|
th.el-table__cell {
|
||||||
|
--el-table-header-bg-color: rgba(15, 52, 119, 1);
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-table-v2 {
|
.el-table-v2 {
|
||||||
|
|
|
||||||
|
|
@ -1,54 +1,59 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<app-search v-model="searchForm" @submit="resetPagination">
|
<app-search v-model="searchForm" @submit="resetPagination">
|
||||||
<el-col :span="6">
|
<template #default="{ collapse }">
|
||||||
<el-form-item label="尾矿库名称" prop="name">
|
<el-col :span="6">
|
||||||
<el-input v-model="searchForm.name" placeholder="请输入尾矿库名称" />
|
<el-form-item label="尾矿库名称" prop="name">
|
||||||
</el-form-item>
|
<el-input
|
||||||
</el-col>
|
v-model="searchForm.name"
|
||||||
|
placeholder="请输入尾矿库名称"
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="属地" prop="area">
|
|
||||||
<layout-cascader
|
|
||||||
v-model="searchForm.area"
|
|
||||||
:dictionaries-id="'e725d2a91b8248f4b8f49889038df7de'"
|
|
||||||
:check-strictly="true"
|
|
||||||
:level="4"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="运行状态" prop="runningStatus">
|
|
||||||
<el-select
|
|
||||||
v-model="searchForm.runningStatus"
|
|
||||||
placeholder="请选择运行状态"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in runningStatusList"
|
|
||||||
:key="item.bianma"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.bianma"
|
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="设计等别" prop="designGrade">
|
<el-form-item label="属地" prop="area">
|
||||||
<el-select
|
<layout-cascader
|
||||||
v-model="searchForm.designGrade"
|
v-model="searchForm.area"
|
||||||
placeholder="请选择设计等别"
|
:dictionaries-id="'e725d2a91b8248f4b8f49889038df7de'"
|
||||||
>
|
:check-strictly="true"
|
||||||
<el-option
|
:level="4"
|
||||||
v-for="item in designGradeList"
|
|
||||||
:key="item.bianma"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.bianma"
|
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
</el-col>
|
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="运行状态" prop="runningStatus">
|
||||||
|
<el-select
|
||||||
|
v-model="searchForm.runningStatus"
|
||||||
|
placeholder="请选择运行状态"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in runningStatusList"
|
||||||
|
:key="item.bianma"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.bianma"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col v-show="!collapse" :span="6">
|
||||||
|
<el-form-item label="设计等别" prop="designGrade">
|
||||||
|
<el-select
|
||||||
|
v-model="searchForm.designGrade"
|
||||||
|
placeholder="请选择设计等别"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in designGradeList"
|
||||||
|
:key="item.bianma"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.bianma"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
</app-search>
|
</app-search>
|
||||||
|
|
||||||
<app-table v-model:pagination="pagination" :data="list" @get-data="getData">
|
<app-table v-model:pagination="pagination" :data="list" @get-data="getData">
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,174 @@
|
||||||
|
<template>
|
||||||
|
<transition
|
||||||
|
enter-active-class="animate__animated animate__fadeInUp"
|
||||||
|
leave-active-class="animate__animated animate__fadeOutDown"
|
||||||
|
>
|
||||||
|
<div v-if="currentActiveName === '河流'" class="river_items">
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in riverList"
|
||||||
|
:key="index"
|
||||||
|
:class="['item', { active: currentActiveRiver.includes(item.name) }]"
|
||||||
|
@click="fnChangeRenderRiver(item)"
|
||||||
|
>
|
||||||
|
{{ item.name }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
daiheBridge,
|
||||||
|
daiheEnterSeaOutlet,
|
||||||
|
daiheRiver,
|
||||||
|
luanheBridge,
|
||||||
|
luanheEnterSeaOutlet,
|
||||||
|
luanheRiver,
|
||||||
|
qinglongheBridge,
|
||||||
|
qinglongheRiver,
|
||||||
|
shiheBridge,
|
||||||
|
shiheEnterSeaOutlet,
|
||||||
|
shiheRiver,
|
||||||
|
tangheBridge,
|
||||||
|
tangheEnterSeaOutlet,
|
||||||
|
tangheRiver,
|
||||||
|
yangheBridge,
|
||||||
|
yangheEnterSeaOutlet,
|
||||||
|
yangheRedFloodDischargeOutlet,
|
||||||
|
yangheRiver,
|
||||||
|
yangheYellowFloodDischargeOutlet,
|
||||||
|
yinmaheBridge,
|
||||||
|
yinmaheEnterSeaOutlet,
|
||||||
|
yinmaheRiver,
|
||||||
|
} from "@/views/map/js/json.js";
|
||||||
|
import { inject, ref } from "vue";
|
||||||
|
import { mapMethodsInjectionKey } from "@/views/map/js/injectionKey.js";
|
||||||
|
import { onBeforeRouteUpdate } from "vue-router";
|
||||||
|
|
||||||
|
defineProps({
|
||||||
|
currentActiveName: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const emits = defineEmits(["select-river"]);
|
||||||
|
const mapMethods = inject(mapMethodsInjectionKey);
|
||||||
|
const riverList = [
|
||||||
|
{
|
||||||
|
name: "戴河",
|
||||||
|
id: "582bffe290782142fce108bb5f4ba084",
|
||||||
|
river: daiheRiver,
|
||||||
|
bridge: daiheBridge,
|
||||||
|
enterSeaOutlet: daiheEnterSeaOutlet,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "滦河",
|
||||||
|
id: "27d6363694174ff291079c43c25c233e",
|
||||||
|
river: luanheRiver,
|
||||||
|
bridge: luanheBridge,
|
||||||
|
enterSeaOutlet: luanheEnterSeaOutlet,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "青龙河",
|
||||||
|
id: "64a98ff8d921ccf0acf0b5874f06e506",
|
||||||
|
river: qinglongheRiver,
|
||||||
|
bridge: qinglongheBridge,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "石河",
|
||||||
|
id: "8a7f1699db01719db6119203244bf9b5",
|
||||||
|
river: shiheRiver,
|
||||||
|
bridge: shiheBridge,
|
||||||
|
enterSeaOutlet: shiheEnterSeaOutlet,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "汤河",
|
||||||
|
id: "d9a52514a5f70d35bcd0c39069a4416a",
|
||||||
|
river: tangheRiver,
|
||||||
|
bridge: tangheBridge,
|
||||||
|
enterSeaOutlet: tangheEnterSeaOutlet,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "洋河",
|
||||||
|
id: "ebb495ba3cdcf93e9f4b90d219cd643e",
|
||||||
|
river: yangheRiver,
|
||||||
|
bridge: yangheBridge,
|
||||||
|
enterSeaOutlet: yangheEnterSeaOutlet,
|
||||||
|
floodDischargeOutletRed: yangheRedFloodDischargeOutlet,
|
||||||
|
floodDischargeOutletYellow: yangheYellowFloodDischargeOutlet,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "饮马河",
|
||||||
|
id: "a73859137adcd8b628534da6d85e4bf2",
|
||||||
|
river: yinmaheRiver,
|
||||||
|
bridge: yinmaheBridge,
|
||||||
|
enterSeaOutlet: yinmaheEnterSeaOutlet,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const currentActiveRiver = ref([]);
|
||||||
|
onBeforeRouteUpdate(() => {
|
||||||
|
currentActiveRiver.value = [];
|
||||||
|
});
|
||||||
|
const fnChangeRenderRiver = ({
|
||||||
|
name,
|
||||||
|
river,
|
||||||
|
bridge,
|
||||||
|
enterSeaOutlet,
|
||||||
|
floodDischargeOutletRed,
|
||||||
|
floodDischargeOutletYellow,
|
||||||
|
}) => {
|
||||||
|
if (!currentActiveRiver.value.includes(name)) {
|
||||||
|
currentActiveRiver.value.push(name);
|
||||||
|
emits("select-river", {
|
||||||
|
name,
|
||||||
|
river,
|
||||||
|
bridge,
|
||||||
|
enterSeaOutlet,
|
||||||
|
floodDischargeOutletRed,
|
||||||
|
floodDischargeOutletYellow,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
currentActiveRiver.value = currentActiveRiver.value.filter(
|
||||||
|
(item) => item !== name
|
||||||
|
);
|
||||||
|
mapMethods.value.removeRiver(name);
|
||||||
|
mapMethods.value.removeBridge(name);
|
||||||
|
mapMethods.value.removeHalo(name);
|
||||||
|
mapMethods.value.removeEnterSeaOutlet(name);
|
||||||
|
mapMethods.value.removeFloodDischargeOutlet(name);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.river_items {
|
||||||
|
position: absolute;
|
||||||
|
top: -300px;
|
||||||
|
left: 0;
|
||||||
|
margin-left: 20px;
|
||||||
|
color: #fff;
|
||||||
|
background-image: linear-gradient(
|
||||||
|
to bottom,
|
||||||
|
rgba(0, 9, 100, 0.7),
|
||||||
|
rgba(1, 35, 145, 0.7)
|
||||||
|
);
|
||||||
|
padding: 5px;
|
||||||
|
border: 1px solid rgba(22, 124, 228, 0.67);
|
||||||
|
|
||||||
|
.item {
|
||||||
|
width: 97px;
|
||||||
|
height: 32px;
|
||||||
|
line-height: 32px;
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 5px;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
&.active,
|
||||||
|
&:hover {
|
||||||
|
background-image: url("/src/assets/images/map/riverbg.png");
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,119 @@
|
||||||
|
<template>
|
||||||
|
<transition
|
||||||
|
enter-active-class="animate__animated animate__fadeInUp"
|
||||||
|
leave-active-class="animate__animated animate__fadeOutDown"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
v-if="
|
||||||
|
currentActiveName !== '河流' &&
|
||||||
|
currentActiveName !== '降雨量' &&
|
||||||
|
currentActiveName !== '水库'
|
||||||
|
"
|
||||||
|
class="search"
|
||||||
|
>
|
||||||
|
<el-select v-model="value" filterable popper-class="select_county">
|
||||||
|
<el-option
|
||||||
|
v-for="item in list"
|
||||||
|
:key="item.bianma"
|
||||||
|
:value="item.bianma"
|
||||||
|
:label="item.name"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
<el-button class="search_btn" @click="fnSearch">搜索</el-button>
|
||||||
|
<el-button class="reset_btn" @click="fnReset">重置</el-button>
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref } from "vue";
|
||||||
|
import { onBeforeRouteUpdate } from "vue-router";
|
||||||
|
|
||||||
|
defineProps({
|
||||||
|
currentActiveName: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const emits = defineEmits("search");
|
||||||
|
const value = ref("");
|
||||||
|
const list = [
|
||||||
|
{ name: "抚宁区", bianma: "130306000" },
|
||||||
|
{ name: "山海关区", bianma: "130303000" },
|
||||||
|
{ name: "青龙满族自治县", bianma: "130321000" },
|
||||||
|
{ name: "昌黎县", bianma: "130322000" },
|
||||||
|
{ name: "北戴河区", bianma: "130304000" },
|
||||||
|
{ name: "北戴河新区", bianma: "130372000" },
|
||||||
|
{ name: "卢龙县", bianma: "130324000" },
|
||||||
|
{ name: "秦皇岛市经济技术开发区", bianma: "130371000" },
|
||||||
|
{ name: "海港区", bianma: "130302000" },
|
||||||
|
];
|
||||||
|
onBeforeRouteUpdate(() => {
|
||||||
|
value.value = "";
|
||||||
|
});
|
||||||
|
const fnSearch = () => {
|
||||||
|
emits("search", {
|
||||||
|
city: "130300000",
|
||||||
|
county: value.value,
|
||||||
|
province: "130000000",
|
||||||
|
area: ["130000000", "130300000", value.value],
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const fnReset = () => {
|
||||||
|
value.value = "";
|
||||||
|
emits("search", {
|
||||||
|
city: "130300000",
|
||||||
|
county: value.value,
|
||||||
|
province: "130000000",
|
||||||
|
area: ["130000000", "130300000", value.value],
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.search {
|
||||||
|
position: fixed;
|
||||||
|
top: 80px;
|
||||||
|
left: 480px;
|
||||||
|
margin-left: 20px;
|
||||||
|
display: flex;
|
||||||
|
gap: 10px;
|
||||||
|
background-image: linear-gradient(
|
||||||
|
to right,
|
||||||
|
rgb(31 62 129 / 57%) 0%,
|
||||||
|
rgb(17 93 255 / 40%) 50%,
|
||||||
|
rgb(31 62 129 / 57%) 100%
|
||||||
|
);
|
||||||
|
padding: 10px;
|
||||||
|
width: 400px;
|
||||||
|
|
||||||
|
.search_btn {
|
||||||
|
background-color: #1563e3;
|
||||||
|
color: #fff;
|
||||||
|
border-color: #1563e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reset_btn {
|
||||||
|
background-color: #558be5;
|
||||||
|
color: #fff;
|
||||||
|
border-color: #558be5;
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep {
|
||||||
|
--el-fill-color-blank: rgba(2, 30, 81, 0.85);
|
||||||
|
--el-border-color: rgba(2, 30, 81, 0.85);
|
||||||
|
--el-text-color-placeholder: #fff;
|
||||||
|
--el-text-color-regular: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style lang="scss" plain>
|
||||||
|
.select_county {
|
||||||
|
--el-bg-color-overlay: rgba(2, 30, 81, 0.85);
|
||||||
|
--el-border-color-light: rgba(2, 30, 81, 0.85);
|
||||||
|
--el-fill-color-light: rgba(16, 87, 216, 0.5);
|
||||||
|
--el-text-color-regular: #fff;
|
||||||
|
--el-text-color-secondary: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
import { island } from "../json/bridge/island.json";
|
||||||
|
import { bridge as daiheBridge } from "../json/bridge/daihe.json";
|
||||||
|
import { bridge as luanheBridge } from "../json/bridge/luanhe.json";
|
||||||
|
import { bridge as qinglongheBridge } from "../json/bridge/qinglonghe.json";
|
||||||
|
import { bridge as shiheBridge } from "../json/bridge/shihe.json";
|
||||||
|
import { bridge as tangheBridge } from "../json/bridge/tanghe.json";
|
||||||
|
import { bridge as yangheBridge } from "../json/bridge/yanghe.json";
|
||||||
|
import { bridge as yinmaheBridge } from "../json/bridge/yinmahe.json";
|
||||||
|
import { river as daiheRiver } from "../json/river/daihe.json";
|
||||||
|
import { river as luanheRiver } from "../json/river/luanhe.json";
|
||||||
|
import { river as qinglongheRiver } from "../json/river/qinglonghe.json";
|
||||||
|
import { river as shiheRiver } from "../json/river/shihe.json";
|
||||||
|
import { river as tangheRiver } from "../json/river/tanghe.json";
|
||||||
|
import { river as yangheRiver } from "../json/river/yanghe.json";
|
||||||
|
import { river as yinmaheRiver } from "../json/river/yinmahe.json";
|
||||||
|
import { enterSeaOutlet as luanheEnterSeaOutlet } from "../json/enterSeaOutlet/luanhe.json";
|
||||||
|
import { enterSeaOutlet as daiheEnterSeaOutlet } from "../json/enterSeaOutlet/daihe.json";
|
||||||
|
import { enterSeaOutlet as shiheEnterSeaOutlet } from "../json/enterSeaOutlet/shihe.json";
|
||||||
|
import { enterSeaOutlet as tangheEnterSeaOutlet } from "../json/enterSeaOutlet/tanghe.json";
|
||||||
|
import { enterSeaOutlet as yangheEnterSeaOutlet } from "../json/enterSeaOutlet/yanghe.json";
|
||||||
|
import { enterSeaOutlet as yinmaheEnterSeaOutlet } from "../json/enterSeaOutlet/yinmahe.json";
|
||||||
|
import { redFloodDischargeOutlet as yangheRedFloodDischargeOutlet } from "../json/floodDischargeOutlet/yanghe_red.json";
|
||||||
|
import { yellowFloodDischargeOutlet as yangheYellowFloodDischargeOutlet } from "../json/floodDischargeOutlet/yanghe_yellow.json";
|
||||||
|
import { reservoir } from "../json/reservoir/reservoir.json";
|
||||||
|
|
||||||
|
export {
|
||||||
|
island,
|
||||||
|
daiheBridge,
|
||||||
|
luanheBridge,
|
||||||
|
qinglongheBridge,
|
||||||
|
shiheBridge,
|
||||||
|
tangheBridge,
|
||||||
|
yangheBridge,
|
||||||
|
yinmaheBridge,
|
||||||
|
daiheRiver,
|
||||||
|
luanheRiver,
|
||||||
|
qinglongheRiver,
|
||||||
|
shiheRiver,
|
||||||
|
tangheRiver,
|
||||||
|
yangheRiver,
|
||||||
|
yinmaheRiver,
|
||||||
|
luanheEnterSeaOutlet,
|
||||||
|
daiheEnterSeaOutlet,
|
||||||
|
shiheEnterSeaOutlet,
|
||||||
|
tangheEnterSeaOutlet,
|
||||||
|
yangheEnterSeaOutlet,
|
||||||
|
yinmaheEnterSeaOutlet,
|
||||||
|
yangheRedFloodDischargeOutlet,
|
||||||
|
yangheYellowFloodDischargeOutlet,
|
||||||
|
reservoir,
|
||||||
|
};
|
||||||
|
|
@ -14,6 +14,8 @@ export default class MapMethods {
|
||||||
#riverPrimitive = [];
|
#riverPrimitive = [];
|
||||||
#bridgePrimitive = [];
|
#bridgePrimitive = [];
|
||||||
#haloPrimitive = [];
|
#haloPrimitive = [];
|
||||||
|
#floodDischargeOutletPrimitive = [];
|
||||||
|
#enterSeaOutletPrimitive = [];
|
||||||
|
|
||||||
#defineCenterPoint = {
|
#defineCenterPoint = {
|
||||||
longitude: 119.44598691730745,
|
longitude: 119.44598691730745,
|
||||||
|
|
@ -55,7 +57,7 @@ export default class MapMethods {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
addRiver = (positions) => {
|
addRiver = (positions, name) => {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
const riverPrimitive = this.#viewer.scene.primitives.add(
|
const riverPrimitive = this.#viewer.scene.primitives.add(
|
||||||
new Cesium.Primitive({
|
new Cesium.Primitive({
|
||||||
|
|
@ -90,20 +92,68 @@ export default class MapMethods {
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
this.#riverPrimitive.push(riverPrimitive);
|
this.#riverPrimitive.push({ name, riverPrimitive });
|
||||||
let isRendered = false;
|
let isRendered = false;
|
||||||
this.#viewer.scene.postRender.addEventListener(async () => {
|
this.#viewer.scene.postRender.addEventListener(async () => {
|
||||||
if (!isRendered) {
|
if (!isRendered) {
|
||||||
isRendered = true;
|
isRendered = true;
|
||||||
await this.#addHalo(positions);
|
|
||||||
resolve(riverPrimitive);
|
resolve(riverPrimitive);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
addBridge = (positions) => {
|
removeRiver = (name) => {
|
||||||
|
for (let i = 0; i < this.#riverPrimitive.length; i++) {
|
||||||
|
const item = this.#riverPrimitive[i];
|
||||||
|
if (name) {
|
||||||
|
if (item.name === name) {
|
||||||
|
this.#viewer.scene.primitives.remove(item.riverPrimitive);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.#viewer.scene.primitives.remove(item.riverPrimitive);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (name) {
|
||||||
|
this.#riverPrimitive = this.#riverPrimitive.filter(
|
||||||
|
(item) => item.name !== name
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
this.#riverPrimitive = [];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
addBridge = (positions, name) => {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
|
const material = new Cesium.Material({
|
||||||
|
fabric: {
|
||||||
|
type: "NeonBridge",
|
||||||
|
uniforms: {
|
||||||
|
baseColor: new Cesium.Color(0.2902, 0.2902, 0.2902, 1),
|
||||||
|
glowColor: new Cesium.Color(0.0, 1.0, 1.0, 1),
|
||||||
|
u_time: 0,
|
||||||
|
frequency: 10.0,
|
||||||
|
speed: 2.0,
|
||||||
|
amplitude: 0.3,
|
||||||
|
},
|
||||||
|
source: `
|
||||||
|
czm_material czm_getMaterial(czm_materialInput materialInput)
|
||||||
|
{
|
||||||
|
czm_material material = czm_getDefaultMaterial(materialInput);
|
||||||
|
vec2 st = materialInput.st;
|
||||||
|
|
||||||
|
float wave = sin(st.s * frequency - u_time * speed) * amplitude;
|
||||||
|
|
||||||
|
float pulse = smoothstep(0.2, 0.0, abs(wave) - 0.1);
|
||||||
|
|
||||||
|
material.alpha = baseColor.a + pulse * 0.5;
|
||||||
|
material.diffuse = mix(baseColor.rgb, glowColor.rgb, pulse);
|
||||||
|
return material;
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
const bridgePrimitive = this.#viewer.scene.primitives.add(
|
const bridgePrimitive = this.#viewer.scene.primitives.add(
|
||||||
new Cesium.Primitive({
|
new Cesium.Primitive({
|
||||||
geometryInstances: new Cesium.GeometryInstance({
|
geometryInstances: new Cesium.GeometryInstance({
|
||||||
|
|
@ -112,22 +162,31 @@ export default class MapMethods {
|
||||||
Cesium.Cartesian3.fromDegreesArray(positions)
|
Cesium.Cartesian3.fromDegreesArray(positions)
|
||||||
),
|
),
|
||||||
height: 1,
|
height: 1,
|
||||||
|
extrudedHeight: 0,
|
||||||
vertexFormat: Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT,
|
vertexFormat: Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT,
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
appearance: new Cesium.EllipsoidSurfaceAppearance({
|
appearance: new Cesium.EllipsoidSurfaceAppearance({
|
||||||
material: new Cesium.Material({
|
material,
|
||||||
fabric: {
|
aboveGround: true,
|
||||||
type: "Color",
|
|
||||||
uniforms: {
|
|
||||||
color: new Cesium.Color(0.2902, 0.2902, 0.2902, 1),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
this.#bridgePrimitive.push(bridgePrimitive);
|
|
||||||
|
this.#bridgePrimitive.push({ name, bridgePrimitive });
|
||||||
|
|
||||||
|
let animationTime = 0;
|
||||||
|
const animate = () => {
|
||||||
|
if (bridgePrimitive.isDestroyed()) return;
|
||||||
|
|
||||||
|
animationTime += 0.03;
|
||||||
|
material.uniforms.u_time = animationTime;
|
||||||
|
|
||||||
|
requestAnimationFrame(animate);
|
||||||
|
};
|
||||||
|
|
||||||
|
animate();
|
||||||
|
|
||||||
let isRendered = false;
|
let isRendered = false;
|
||||||
this.#viewer.scene.postRender.addEventListener(() => {
|
this.#viewer.scene.postRender.addEventListener(() => {
|
||||||
if (!isRendered) {
|
if (!isRendered) {
|
||||||
|
|
@ -138,7 +197,27 @@ export default class MapMethods {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
#addHalo = async (positions) => {
|
removeBridge = (name) => {
|
||||||
|
for (let i = 0; i < this.#bridgePrimitive.length; i++) {
|
||||||
|
const item = this.#bridgePrimitive[i];
|
||||||
|
if (name) {
|
||||||
|
if (item.name === name) {
|
||||||
|
this.#viewer.scene.primitives.remove(item.bridgePrimitive);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.#viewer.scene.primitives.remove(item.bridgePrimitive);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (name) {
|
||||||
|
this.#bridgePrimitive = this.#bridgePrimitive.filter(
|
||||||
|
(item) => item.name !== name
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
this.#bridgePrimitive = [];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
addHalo = async (positions, name) => {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
const haloPrimitive = this.#viewer.scene.primitives.add(
|
const haloPrimitive = this.#viewer.scene.primitives.add(
|
||||||
new Cesium.Primitive({
|
new Cesium.Primitive({
|
||||||
|
|
@ -160,7 +239,7 @@ export default class MapMethods {
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
this.#haloPrimitive.push(haloPrimitive);
|
this.#haloPrimitive.push({ name, haloPrimitive });
|
||||||
let isRendered = false;
|
let isRendered = false;
|
||||||
this.#viewer.scene.postRender.addEventListener(async () => {
|
this.#viewer.scene.postRender.addEventListener(async () => {
|
||||||
if (!isRendered) {
|
if (!isRendered) {
|
||||||
|
|
@ -171,28 +250,206 @@ export default class MapMethods {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
removeRiver = () => {
|
removeHalo = (name) => {
|
||||||
for (let i = 0; i < this.#riverPrimitive.length; i++) {
|
|
||||||
const riverPrimitive = this.#riverPrimitive[i];
|
|
||||||
this.#viewer.scene.primitives.remove(riverPrimitive);
|
|
||||||
}
|
|
||||||
this.#riverPrimitive = [];
|
|
||||||
};
|
|
||||||
|
|
||||||
removeBridge = () => {
|
|
||||||
for (let i = 0; i < this.#bridgePrimitive.length; i++) {
|
|
||||||
const bridgePrimitive = this.#bridgePrimitive[i];
|
|
||||||
this.#viewer.scene.primitives.remove(bridgePrimitive);
|
|
||||||
}
|
|
||||||
this.#bridgePrimitive = [];
|
|
||||||
};
|
|
||||||
|
|
||||||
removeHalo = () => {
|
|
||||||
for (let i = 0; i < this.#haloPrimitive.length; i++) {
|
for (let i = 0; i < this.#haloPrimitive.length; i++) {
|
||||||
const haloPrimitive = this.#haloPrimitive[i];
|
const item = this.#haloPrimitive[i];
|
||||||
this.#viewer.scene.primitives.remove(haloPrimitive);
|
if (name) {
|
||||||
|
if (item.name === name) {
|
||||||
|
this.#viewer.scene.primitives.remove(item.haloPrimitive);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.#viewer.scene.primitives.remove(item.haloPrimitive);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (name) {
|
||||||
|
this.#haloPrimitive = this.#haloPrimitive.filter(
|
||||||
|
(item) => item.name !== name
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
this.#haloPrimitive = [];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
addFloodDischargeOutlet = (positions, type, name) => {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
const colorMap = {
|
||||||
|
red: new Cesium.Color(0xf1 / 255.0, 0x26 / 255.0, 0x3e / 255.0, 1),
|
||||||
|
yellow: new Cesium.Color(0xe8 / 255.0, 0xb9 / 255.0, 0x0d / 255.0, 0.5),
|
||||||
|
};
|
||||||
|
const baseColor = colorMap[type] || colorMap.red;
|
||||||
|
|
||||||
|
const material = new Cesium.Material({
|
||||||
|
fabric: {
|
||||||
|
type: "Pulse",
|
||||||
|
uniforms: {
|
||||||
|
color: baseColor,
|
||||||
|
u_time: 0.0,
|
||||||
|
},
|
||||||
|
source: `
|
||||||
|
czm_material czm_getMaterial(czm_materialInput materialInput)
|
||||||
|
{
|
||||||
|
czm_material material = czm_getDefaultMaterial(materialInput);
|
||||||
|
|
||||||
|
vec2 st = materialInput.st;
|
||||||
|
vec2 center = vec2(0.5);
|
||||||
|
float dist = distance(st, center);
|
||||||
|
|
||||||
|
float pulse = sin(dist * 3.0 - u_time * 2.0);
|
||||||
|
float alphaFactor = clamp(pulse, 0.4, 1.0);
|
||||||
|
|
||||||
|
float finalAlpha = color.a * alphaFactor;
|
||||||
|
|
||||||
|
material.alpha = finalAlpha;
|
||||||
|
material.diffuse = color.rgb;
|
||||||
|
|
||||||
|
return material;
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const floodDischargeOutletPrimitive = this.#viewer.scene.primitives.add(
|
||||||
|
new Cesium.Primitive({
|
||||||
|
geometryInstances: new Cesium.GeometryInstance({
|
||||||
|
geometry: new Cesium.PolygonGeometry({
|
||||||
|
polygonHierarchy: new Cesium.PolygonHierarchy(
|
||||||
|
Cesium.Cartesian3.fromDegreesArray(positions)
|
||||||
|
),
|
||||||
|
height: 0,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
appearance: new Cesium.EllipsoidSurfaceAppearance({
|
||||||
|
material,
|
||||||
|
aboveGround: true,
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
this.#floodDischargeOutletPrimitive.push({
|
||||||
|
name,
|
||||||
|
floodDischargeOutletPrimitive,
|
||||||
|
});
|
||||||
|
|
||||||
|
let animationTime = 0;
|
||||||
|
const animate = () => {
|
||||||
|
if (floodDischargeOutletPrimitive.isDestroyed()) return;
|
||||||
|
|
||||||
|
animationTime += 0.03;
|
||||||
|
floodDischargeOutletPrimitive.appearance.material.uniforms.u_time =
|
||||||
|
animationTime;
|
||||||
|
|
||||||
|
requestAnimationFrame(animate);
|
||||||
|
};
|
||||||
|
|
||||||
|
animate();
|
||||||
|
|
||||||
|
let isRendered = false;
|
||||||
|
this.#viewer.scene.postRender.addEventListener(() => {
|
||||||
|
if (!isRendered) {
|
||||||
|
isRendered = true;
|
||||||
|
resolve(floodDischargeOutletPrimitive);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
removeFloodDischargeOutlet = (name) => {
|
||||||
|
for (let i = 0; i < this.#floodDischargeOutletPrimitive.length; i++) {
|
||||||
|
const item = this.#floodDischargeOutletPrimitive[i];
|
||||||
|
if (name) {
|
||||||
|
if (item.name === name) {
|
||||||
|
this.#viewer.scene.primitives.remove(
|
||||||
|
item.floodDischargeOutletPrimitive
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.#viewer.scene.primitives.remove(
|
||||||
|
item.floodDischargeOutletPrimitive
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (name) {
|
||||||
|
this.#floodDischargeOutletPrimitive =
|
||||||
|
this.#floodDischargeOutletPrimitive.filter(
|
||||||
|
(item) => item.name !== name
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
this.#floodDischargeOutletPrimitive = [];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
addEnterSeaOutlet = (positions, name) => {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
const material = new Cesium.Material({
|
||||||
|
fabric: {
|
||||||
|
type: "Gradient",
|
||||||
|
uniforms: {
|
||||||
|
color1: new Cesium.Color(0.0, 0.7, 1.0, 1),
|
||||||
|
color2: new Cesium.Color(0.0, 0.7, 1.0, 0),
|
||||||
|
},
|
||||||
|
source: `
|
||||||
|
czm_material czm_getMaterial(czm_materialInput materialInput)
|
||||||
|
{
|
||||||
|
czm_material material = czm_getDefaultMaterial(materialInput);
|
||||||
|
vec2 st = materialInput.st;
|
||||||
|
float distToCenter = distance(st, vec2(0.5, 0.5));
|
||||||
|
float alphaFactor = 1.0 - distToCenter * 2.0;
|
||||||
|
alphaFactor = clamp(alphaFactor, 0.0, 1.0);
|
||||||
|
|
||||||
|
material.alpha = mix(color2.a, color1.a, alphaFactor);
|
||||||
|
material.diffuse = mix(color2.rgb, color1.rgb, alphaFactor);
|
||||||
|
|
||||||
|
return material;
|
||||||
|
}`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const enterSeaOutletPrimitive = this.#viewer.scene.primitives.add(
|
||||||
|
new Cesium.Primitive({
|
||||||
|
geometryInstances: new Cesium.GeometryInstance({
|
||||||
|
geometry: new Cesium.PolygonGeometry({
|
||||||
|
polygonHierarchy: new Cesium.PolygonHierarchy(
|
||||||
|
Cesium.Cartesian3.fromDegreesArray(positions)
|
||||||
|
),
|
||||||
|
height: 0,
|
||||||
|
vertexFormat: Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
appearance: new Cesium.EllipsoidSurfaceAppearance({
|
||||||
|
material,
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
this.#enterSeaOutletPrimitive.push({ name, enterSeaOutletPrimitive });
|
||||||
|
|
||||||
|
let isRendered = false;
|
||||||
|
this.#viewer.scene.postRender.addEventListener(() => {
|
||||||
|
if (!isRendered) {
|
||||||
|
isRendered = true;
|
||||||
|
resolve(enterSeaOutletPrimitive);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
removeEnterSeaOutlet = (name) => {
|
||||||
|
for (let i = 0; i < this.#enterSeaOutletPrimitive.length; i++) {
|
||||||
|
const item = this.#enterSeaOutletPrimitive[i];
|
||||||
|
if (name) {
|
||||||
|
if (item.name === name) {
|
||||||
|
this.#viewer.scene.primitives.remove(item.enterSeaOutletPrimitive);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.#viewer.scene.primitives.remove(item.enterSeaOutletPrimitive);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (name) {
|
||||||
|
this.#enterSeaOutletPrimitive = this.#enterSeaOutletPrimitive.filter(
|
||||||
|
(item) => item.name !== name
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
this.#enterSeaOutletPrimitive = [];
|
||||||
}
|
}
|
||||||
this.#haloPrimitive = [];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
addPoint = async (type, point) => {
|
addPoint = async (type, point) => {
|
||||||
|
|
|
||||||
|
|
@ -2587,6 +2587,318 @@
|
||||||
119.20535123590632,
|
119.20535123590632,
|
||||||
39.97050770340578
|
39.97050770340578
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.06660047698337,
|
||||||
|
40.003720612993106,
|
||||||
|
119.06669616277154,
|
||||||
|
40.0037437402621,
|
||||||
|
119.0670023600757,
|
||||||
|
40.00294481310877,
|
||||||
|
119.066895740141,
|
||||||
|
40.00291327629782,
|
||||||
|
119.0666032107888,
|
||||||
|
40.00373112524625
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.05472695597014,
|
||||||
|
40.006884152119135,
|
||||||
|
119.05472695597014,
|
||||||
|
40.006884152119135,
|
||||||
|
119.05472695597014,
|
||||||
|
40.006884152119135,
|
||||||
|
119.05472695597014,
|
||||||
|
40.006884152119135,
|
||||||
|
119.05472695597014,
|
||||||
|
40.006884152119135,
|
||||||
|
119.05472695597014,
|
||||||
|
40.006884152119135,
|
||||||
|
119.05472695597014,
|
||||||
|
40.006884152119135,
|
||||||
|
119.05390571910563,
|
||||||
|
40.006950803750364,
|
||||||
|
119.05390571910563,
|
||||||
|
40.006950803750364,
|
||||||
|
119.05390571910563,
|
||||||
|
40.006950803750364,
|
||||||
|
119.05390571910563,
|
||||||
|
40.006950803750364,
|
||||||
|
119.05390571910563,
|
||||||
|
40.006950803750364,
|
||||||
|
119.05390571910563,
|
||||||
|
40.006950803750364,
|
||||||
|
119.05390571910563,
|
||||||
|
40.006950803750364,
|
||||||
|
119.05390095657869,
|
||||||
|
40.00701912183315,
|
||||||
|
119.05390095657869,
|
||||||
|
40.00701912183315,
|
||||||
|
119.05390095657869,
|
||||||
|
40.00701912183315,
|
||||||
|
119.05390095657869,
|
||||||
|
40.00701912183315,
|
||||||
|
119.05390095657869,
|
||||||
|
40.00701912183315,
|
||||||
|
119.05390095657869,
|
||||||
|
40.00701912183315,
|
||||||
|
119.05390095657869,
|
||||||
|
40.00701912183315,
|
||||||
|
119.05472219421817,
|
||||||
|
40.00693580734121,
|
||||||
|
119.05472219421817,
|
||||||
|
40.00693580734121,
|
||||||
|
119.05472219421817,
|
||||||
|
40.00693580734121,
|
||||||
|
119.05472219421817,
|
||||||
|
40.00693580734121,
|
||||||
|
119.05472219421817,
|
||||||
|
40.00693580734121,
|
||||||
|
119.05472219421817,
|
||||||
|
40.00693580734121,
|
||||||
|
119.05472219421817,
|
||||||
|
40.00693580734121,
|
||||||
|
119.05472219399746,
|
||||||
|
40.00689081727072,
|
||||||
|
119.05472219399746,
|
||||||
|
40.00689081727072,
|
||||||
|
119.05472219399746,
|
||||||
|
40.00689081727072,
|
||||||
|
119.05472219399746,
|
||||||
|
40.00689081727072,
|
||||||
|
119.05472219399746,
|
||||||
|
40.00689081727072,
|
||||||
|
119.05472219399746,
|
||||||
|
40.00689081727072,
|
||||||
|
119.05472219399746,
|
||||||
|
40.00689081727072
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.0481144264933,
|
||||||
|
40.00154035555465,
|
||||||
|
119.04815036976588,
|
||||||
|
40.001576834880645,
|
||||||
|
119.048508483837,
|
||||||
|
40.001368512822076,
|
||||||
|
119.04848093677074,
|
||||||
|
40.00133143845168,
|
||||||
|
119.04811823153696,
|
||||||
|
40.00154505669269
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.04044402680903,
|
||||||
|
39.9878559946739,
|
||||||
|
119.04049715999048,
|
||||||
|
39.98783555937326,
|
||||||
|
119.04044048508872,
|
||||||
|
39.98762575663795,
|
||||||
|
119.04035724341672,
|
||||||
|
39.98763665535904,
|
||||||
|
119.04044756898158,
|
||||||
|
39.98786008174405
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.03242284271863,
|
||||||
|
39.98452978474548,
|
||||||
|
119.03246249827016,
|
||||||
|
39.98448275673887,
|
||||||
|
119.03295488356578,
|
||||||
|
39.98473060865626,
|
||||||
|
119.03292018519043,
|
||||||
|
39.984803057506596,
|
||||||
|
119.03242945192146,
|
||||||
|
39.98452851373815
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.03591750790888,
|
||||||
|
39.98271144768695,
|
||||||
|
119.03589295582367,
|
||||||
|
39.98267721441285,
|
||||||
|
119.03594512940298,
|
||||||
|
39.98267013174808,
|
||||||
|
119.03598963011716,
|
||||||
|
39.98271026728832,
|
||||||
|
119.03592057700972,
|
||||||
|
39.982711447660655
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.03257553568496,
|
||||||
|
39.97956110479971,
|
||||||
|
119.03256501666793,
|
||||||
|
39.979523340137604,
|
||||||
|
119.03282448788525,
|
||||||
|
39.979461298328864,
|
||||||
|
119.03282448796904,
|
||||||
|
39.97950985288372,
|
||||||
|
119.03258254842311,
|
||||||
|
39.97956110481661
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.03534911160682,
|
||||||
|
39.97050230227821,
|
||||||
|
119.03533935534428,
|
||||||
|
39.970456010474194,
|
||||||
|
119.03552960798488,
|
||||||
|
39.97044099734475,
|
||||||
|
119.0355426165868,
|
||||||
|
39.97048603801368,
|
||||||
|
119.03534423335194,
|
||||||
|
39.97049604660087
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.0386688809513,
|
||||||
|
39.96537917000038,
|
||||||
|
119.03871446875175,
|
||||||
|
39.96537137498567,
|
||||||
|
119.03864862091544,
|
||||||
|
39.96517454677518,
|
||||||
|
119.03860556581883,
|
||||||
|
39.96519403452908,
|
||||||
|
119.03867647890655,
|
||||||
|
39.96538111882499
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.11325126026945,
|
||||||
|
40.006144031888134,
|
||||||
|
119.11329196417208,
|
||||||
|
40.006123909740865,
|
||||||
|
119.11306228164251,
|
||||||
|
40.00574690918686,
|
||||||
|
119.11301866933854,
|
||||||
|
40.00576814965383,
|
||||||
|
119.1132556258267,
|
||||||
|
40.00614154065206
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.10040826351278,
|
||||||
|
40.003510744863284,
|
||||||
|
119.10029366319723,
|
||||||
|
40.00404117041016,
|
||||||
|
119.10035308653872,
|
||||||
|
40.00406728368555,
|
||||||
|
119.10048041984334,
|
||||||
|
40.003546650398015,
|
||||||
|
119.10040401904938,
|
||||||
|
40.003514009025636
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.08803634339216,
|
||||||
|
39.998364767055214,
|
||||||
|
119.08809920132434,
|
||||||
|
39.99837250230188,
|
||||||
|
119.08822240829454,
|
||||||
|
39.99766668723755,
|
||||||
|
119.08817715125855,
|
||||||
|
39.99765121714063,
|
||||||
|
119.08804891499157,
|
||||||
|
39.99836670085324
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.08069682670332,
|
||||||
|
40.00287349213371,
|
||||||
|
119.08069682636429,
|
||||||
|
40.00281094300879,
|
||||||
|
119.0798542918863,
|
||||||
|
40.00277565839231,
|
||||||
|
119.07984819861468,
|
||||||
|
40.00283334086437,
|
||||||
|
119.08069697678687,
|
||||||
|
40.00287504033604
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.14482137644363,
|
||||||
|
40.00782668369225,
|
||||||
|
119.14486864516486,
|
||||||
|
40.00786303124187,
|
||||||
|
119.14533184166577,
|
||||||
|
40.007194219676315,
|
||||||
|
119.14523730631697,
|
||||||
|
40.00716514290916,
|
||||||
|
119.14483082949147,
|
||||||
|
40.007812144341095
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.13991636037817,
|
||||||
|
40.00604046636534,
|
||||||
|
119.13999125154514,
|
||||||
|
40.006058896147756,
|
||||||
|
119.14051249667868,
|
||||||
|
40.00520884300087,
|
||||||
|
119.14043461099583,
|
||||||
|
40.00515125117468,
|
||||||
|
119.1399253472464,
|
||||||
|
40.00604968113203
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.12930887750092,
|
||||||
|
39.9994554089684,
|
||||||
|
119.12937572007444,
|
||||||
|
39.999489679559325,
|
||||||
|
119.12960594467648,
|
||||||
|
39.999072710963084,
|
||||||
|
119.12953910237162,
|
||||||
|
39.99903844064274,
|
||||||
|
119.12928659704298,
|
||||||
|
39.99947254479636
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.12274667790672,
|
||||||
|
40.000885001631,
|
||||||
|
119.12276036516421,
|
||||||
|
40.00085943773818,
|
||||||
|
119.122338018875,
|
||||||
|
40.00073913538719,
|
||||||
|
119.12233215268253,
|
||||||
|
40.00076319552639,
|
||||||
|
119.12274667789272,
|
||||||
|
40.00088650539783
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.1154210678341,
|
||||||
|
40.00491284969307,
|
||||||
|
119.1155041992271,
|
||||||
|
40.004912850178265,
|
||||||
|
119.11556175724397,
|
||||||
|
40.00431289627488,
|
||||||
|
119.11546583724339,
|
||||||
|
40.004312895686915,
|
||||||
|
119.11541467284778,
|
||||||
|
40.00493743796856
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
{
|
||||||
|
"enterSeaOutlet": [
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.44003819045065,
|
||||||
|
39.80098700105416,
|
||||||
|
119.44167545833766,
|
||||||
|
39.80075405712748,
|
||||||
|
119.44262919965776,
|
||||||
|
39.80054561917755,
|
||||||
|
119.44353524694675,
|
||||||
|
39.80025134789575,
|
||||||
|
119.44388493979278,
|
||||||
|
39.79987125468601,
|
||||||
|
119.44445712038399,
|
||||||
|
39.79814244130211,
|
||||||
|
119.44450479136508,
|
||||||
|
39.79768877652024,
|
||||||
|
119.44477499294958,
|
||||||
|
39.79708796568186,
|
||||||
|
119.44490213349408,
|
||||||
|
39.79647489321045,
|
||||||
|
119.44585582659133,
|
||||||
|
39.795886305461025,
|
||||||
|
119.4467300687984,
|
||||||
|
39.79587399974901,
|
||||||
|
119.44756723121552,
|
||||||
|
39.79589443507752,
|
||||||
|
119.44831432277311,
|
||||||
|
39.79605378169464,
|
||||||
|
119.44864814890161,
|
||||||
|
39.796335768274275,
|
||||||
|
119.44893430792422,
|
||||||
|
39.79682619856661,
|
||||||
|
119.44906151666424,
|
||||||
|
39.797316639373605,
|
||||||
|
119.44898210553197,
|
||||||
|
39.79805231764167,
|
||||||
|
119.44847354641308,
|
||||||
|
39.79922942078187,
|
||||||
|
119.44825102952822,
|
||||||
|
39.799523700717266,
|
||||||
|
119.44764701054793,
|
||||||
|
39.79986704486697,
|
||||||
|
119.44728141423344,
|
||||||
|
39.80001419621254,
|
||||||
|
119.44596207292581,
|
||||||
|
39.800357562170994,
|
||||||
|
119.44473812214765,
|
||||||
|
39.80105647683784,
|
||||||
|
119.44402280990985,
|
||||||
|
39.80124040755449,
|
||||||
|
119.44332339898794,
|
||||||
|
39.801706336137364,
|
||||||
|
119.44248090952493,
|
||||||
|
39.80187799830216,
|
||||||
|
119.44174968916444,
|
||||||
|
39.801988349732866,
|
||||||
|
119.44101846625975,
|
||||||
|
39.8020986970054,
|
||||||
|
119.44057337241802,
|
||||||
|
39.80218452110741
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
{
|
||||||
|
"enterSeaOutlet": [
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.29092975092081,
|
||||||
|
39.43054567601241,
|
||||||
|
119.29791880903863,
|
||||||
|
39.43123340384057,
|
||||||
|
119.30099615416296,
|
||||||
|
39.43184005877618,
|
||||||
|
119.30349979618666,
|
||||||
|
39.43216353798082,
|
||||||
|
119.30621231391336,
|
||||||
|
39.43365997866204,
|
||||||
|
119.30751675534839,
|
||||||
|
39.43588460599928,
|
||||||
|
119.30929069761844,
|
||||||
|
39.43762382596999,
|
||||||
|
119.3115341527209,
|
||||||
|
39.4388776058419,
|
||||||
|
119.31549892417043,
|
||||||
|
39.438917625760155,
|
||||||
|
119.31695943559895,
|
||||||
|
39.43831066274909,
|
||||||
|
119.31982804835165,
|
||||||
|
39.43657082702594,
|
||||||
|
119.32060986126311,
|
||||||
|
39.4348312955778,
|
||||||
|
119.32050482535429,
|
||||||
|
39.43309193166051,
|
||||||
|
119.32050428362106,
|
||||||
|
39.431676168456946,
|
||||||
|
119.31893856717461,
|
||||||
|
39.42949215284422,
|
||||||
|
119.31752959234048,
|
||||||
|
39.42763172587427,
|
||||||
|
119.30970551852444,
|
||||||
|
39.42593397804469,
|
||||||
|
119.30637330230572,
|
||||||
|
39.426474973922616,
|
||||||
|
119.30235736317944,
|
||||||
|
39.426717879862096,
|
||||||
|
119.29677677578037,
|
||||||
|
39.42683929628583,
|
||||||
|
119.29187430854503,
|
||||||
|
39.42546389500164
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,104 @@
|
||||||
|
{
|
||||||
|
"enterSeaOutlet": [
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.76851588480083,
|
||||||
|
39.95533571630966,
|
||||||
|
119.7683876192619,
|
||||||
|
39.95424997802715,
|
||||||
|
119.76835555018893,
|
||||||
|
39.95358373061466,
|
||||||
|
119.7683234763828,
|
||||||
|
39.95212785580946,
|
||||||
|
119.76803490936892,
|
||||||
|
39.95084470968323,
|
||||||
|
119.76806696778199,
|
||||||
|
39.949857671258364,
|
||||||
|
119.7680990251545,
|
||||||
|
39.94877192538934,
|
||||||
|
119.76809902205495,
|
||||||
|
39.9479082601126,
|
||||||
|
119.76774635487105,
|
||||||
|
39.94697056179907,
|
||||||
|
119.7675540043698,
|
||||||
|
39.94581076753282,
|
||||||
|
119.76710516705269,
|
||||||
|
39.945070455584684,
|
||||||
|
119.76681663160271,
|
||||||
|
39.94465094170068,
|
||||||
|
119.76732606959959,
|
||||||
|
39.943932575656675,
|
||||||
|
119.76912141465638,
|
||||||
|
39.94304417108137,
|
||||||
|
119.77187852872129,
|
||||||
|
39.942402462709374,
|
||||||
|
119.77518073855946,
|
||||||
|
39.94296985306562,
|
||||||
|
119.77688013022846,
|
||||||
|
39.944894578953694,
|
||||||
|
119.77793854167784,
|
||||||
|
39.948151875394096,
|
||||||
|
119.77646536449387,
|
||||||
|
39.95051974461538,
|
||||||
|
119.77540746196438,
|
||||||
|
39.95121067539956,
|
||||||
|
119.77209319613077,
|
||||||
|
39.95337150718087,
|
||||||
|
119.77135173164012,
|
||||||
|
39.95448495690238,
|
||||||
|
119.7704861568653,
|
||||||
|
39.955767928127806
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.78221682610989,
|
||||||
|
39.959606903108394,
|
||||||
|
119.78276203662068,
|
||||||
|
39.95832344997503,
|
||||||
|
119.78324309514248,
|
||||||
|
39.95733617161187,
|
||||||
|
119.78343272284411,
|
||||||
|
39.957062167928584,
|
||||||
|
119.78417015175984,
|
||||||
|
39.955606315188135,
|
||||||
|
119.78417012502835,
|
||||||
|
39.954718003351985,
|
||||||
|
119.78407390851656,
|
||||||
|
39.95373098901822,
|
||||||
|
119.78365706124315,
|
||||||
|
39.952176437043484,
|
||||||
|
119.78388147284898,
|
||||||
|
39.95121407940485,
|
||||||
|
119.78452267616795,
|
||||||
|
39.9502517036662,
|
||||||
|
119.78580509293917,
|
||||||
|
39.94943734864344,
|
||||||
|
119.78628601143981,
|
||||||
|
39.94948668084062,
|
||||||
|
119.78776082277184,
|
||||||
|
39.94941257357446,
|
||||||
|
119.78942810493959,
|
||||||
|
39.95044885988357,
|
||||||
|
119.79055033299478,
|
||||||
|
39.95109035031618,
|
||||||
|
119.79228185230704,
|
||||||
|
39.952249955026815,
|
||||||
|
119.79282706291693,
|
||||||
|
39.95323693122095,
|
||||||
|
119.79266691212291,
|
||||||
|
39.954421380558884,
|
||||||
|
119.7921540383922,
|
||||||
|
39.955507154411286,
|
||||||
|
119.78784723170291,
|
||||||
|
39.958698600015204,
|
||||||
|
119.78710978676854,
|
||||||
|
39.95894536981238,
|
||||||
|
119.78605173932094,
|
||||||
|
39.95990769591995,
|
||||||
|
119.78585938607691,
|
||||||
|
39.960524557548695
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
{
|
||||||
|
"enterSeaOutlet": [
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.57166734727471,
|
||||||
|
39.9016332361296,
|
||||||
|
119.57200716348602,
|
||||||
|
39.89970339334971,
|
||||||
|
119.57243187259532,
|
||||||
|
39.89855857417844,
|
||||||
|
119.57277162953638,
|
||||||
|
39.89764271614531,
|
||||||
|
119.57311137912879,
|
||||||
|
39.896563307184344,
|
||||||
|
119.57400317168063,
|
||||||
|
39.89509137971016,
|
||||||
|
119.57468260760882,
|
||||||
|
39.89368485434895,
|
||||||
|
119.57447028109573,
|
||||||
|
39.892114767260125,
|
||||||
|
119.57379086225404,
|
||||||
|
39.89103531102717,
|
||||||
|
119.57332375998357,
|
||||||
|
39.88970399458432,
|
||||||
|
119.57328158962775,
|
||||||
|
39.88967253208639,
|
||||||
|
119.57315439958636,
|
||||||
|
39.88731879954707,
|
||||||
|
119.57345150379841,
|
||||||
|
39.88620732143131,
|
||||||
|
119.57400319196148,
|
||||||
|
39.88548813683138,
|
||||||
|
119.5755308363495,
|
||||||
|
39.88446292582384,
|
||||||
|
119.5754884034919,
|
||||||
|
39.88443023484346,
|
||||||
|
119.57811927380195,
|
||||||
|
39.884103333297425,
|
||||||
|
119.58015606743224,
|
||||||
|
39.88393983590924,
|
||||||
|
119.58121693576035,
|
||||||
|
39.88456091677711,
|
||||||
|
119.58295682175905,
|
||||||
|
39.88580306494107,
|
||||||
|
119.58380569310768,
|
||||||
|
39.88769904565463,
|
||||||
|
119.58389078568017,
|
||||||
|
39.889921964823884,
|
||||||
|
119.58299983924454,
|
||||||
|
39.89247183513241,
|
||||||
|
119.58232092088183,
|
||||||
|
39.89364870916778,
|
||||||
|
119.57896833367452,
|
||||||
|
39.89668900145266,
|
||||||
|
119.57735558170528,
|
||||||
|
39.897604352683075,
|
||||||
|
119.57595499169499,
|
||||||
|
39.89858507282205,
|
||||||
|
119.57468165326675,
|
||||||
|
39.90041576211731,
|
||||||
|
119.57489381467674,
|
||||||
|
39.902230779011035
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
{
|
||||||
|
"enterSeaOutlet": [
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.4133349552286,
|
||||||
|
39.77756376040957,
|
||||||
|
119.41397224238365,
|
||||||
|
39.777183805853596,
|
||||||
|
119.41459503584198,
|
||||||
|
39.77690442713945,
|
||||||
|
119.41536265688305,
|
||||||
|
39.7766026951225,
|
||||||
|
119.41588405580089,
|
||||||
|
39.7763903622422,
|
||||||
|
119.4161013038088,
|
||||||
|
39.77620037958136,
|
||||||
|
119.41609238242162,
|
||||||
|
39.776166865898844,
|
||||||
|
119.41593315243279,
|
||||||
|
39.77558605264693,
|
||||||
|
119.4157449740499,
|
||||||
|
39.77523979919966,
|
||||||
|
119.41567260009626,
|
||||||
|
39.77473717465513,
|
||||||
|
119.41551337704895,
|
||||||
|
39.77421221172557,
|
||||||
|
119.41544100797651,
|
||||||
|
39.77343035333794,
|
||||||
|
119.41546996239353,
|
||||||
|
39.77278252829345,
|
||||||
|
119.41580288441516,
|
||||||
|
39.771855465758996,
|
||||||
|
119.41696083853067,
|
||||||
|
39.77074968104508,
|
||||||
|
119.41877014183268,
|
||||||
|
39.77044806719237,
|
||||||
|
119.42047815536543,
|
||||||
|
39.77064905667183,
|
||||||
|
119.42152036650072,
|
||||||
|
39.771051111813115,
|
||||||
|
119.42228759672716,
|
||||||
|
39.77176592569821,
|
||||||
|
119.42236008747552,
|
||||||
|
39.77308393828356,
|
||||||
|
119.42166536669197,
|
||||||
|
39.774234443436946,
|
||||||
|
119.42105744499689,
|
||||||
|
39.77485996626752,
|
||||||
|
119.41945072606975,
|
||||||
|
39.77594346821717,
|
||||||
|
119.41849536828919,
|
||||||
|
39.77670302119295,
|
||||||
|
119.41755460645356,
|
||||||
|
39.77760914627655,
|
||||||
|
119.41671446290005,
|
||||||
|
39.77793328290207,
|
||||||
|
119.4160626239657,
|
||||||
|
39.778380357629636,
|
||||||
|
119.41571497326805,
|
||||||
|
39.778995081722755,
|
||||||
|
119.41561357393255,
|
||||||
|
39.779173910754075
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
{
|
||||||
|
"enterSeaOutlet": [
|
||||||
|
{
|
||||||
|
"position":[
|
||||||
|
119.32673901460187,
|
||||||
|
39.67873666627517,
|
||||||
|
119.3284957083062,
|
||||||
|
39.678869146131234,
|
||||||
|
119.32929550060777,
|
||||||
|
39.67894641137052,
|
||||||
|
119.32955257970735,
|
||||||
|
39.67885812833861,
|
||||||
|
119.32966684014872,
|
||||||
|
39.6786815565991,
|
||||||
|
119.32999533048682,
|
||||||
|
39.678405664888444,
|
||||||
|
119.3303381014835,
|
||||||
|
39.67798630753301,
|
||||||
|
119.33090937496489,
|
||||||
|
39.677500735583024,
|
||||||
|
119.33188052512718,
|
||||||
|
39.67689376457619,
|
||||||
|
119.33313730563422,
|
||||||
|
39.67677235514517,
|
||||||
|
119.3334943518268,
|
||||||
|
39.67692685016877,
|
||||||
|
119.33442268909164,
|
||||||
|
39.67747861993237,
|
||||||
|
119.33469406623813,
|
||||||
|
39.6778869390097,
|
||||||
|
119.33490835381846,
|
||||||
|
39.67888016235383,
|
||||||
|
119.33490837599771,
|
||||||
|
39.67924434763291,
|
||||||
|
119.33453706282953,
|
||||||
|
39.67970786704819,
|
||||||
|
119.33436568523986,
|
||||||
|
39.67990651832964,
|
||||||
|
119.33329451513045,
|
||||||
|
39.68011622203645,
|
||||||
|
119.33266609208184,
|
||||||
|
39.680171409976936,
|
||||||
|
119.33148065723184,
|
||||||
|
39.68034799308303,
|
||||||
|
119.33040947629948,
|
||||||
|
39.680458351187454,
|
||||||
|
119.32927930781757,
|
||||||
|
39.6802113902618,
|
||||||
|
119.32862231851806,
|
||||||
|
39.67993547418503,
|
||||||
|
119.32796531943461,
|
||||||
|
39.67988027780743,
|
||||||
|
119.327179776783,
|
||||||
|
39.67979196559977,
|
||||||
|
119.32677987216185,
|
||||||
|
39.679637445667936
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -1,54 +1,59 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<app-search v-model="searchForm" @submit="resetPagination">
|
<app-search v-model="searchForm" @submit="resetPagination">
|
||||||
<el-col :span="6">
|
<template #default="{ collapse }">
|
||||||
<el-form-item label="尾矿库名称" prop="name">
|
<el-col :span="6">
|
||||||
<el-input v-model="searchForm.name" placeholder="请输入尾矿库名称" />
|
<el-form-item label="尾矿库名称" prop="name">
|
||||||
</el-form-item>
|
<el-input
|
||||||
</el-col>
|
v-model="searchForm.name"
|
||||||
|
placeholder="请输入尾矿库名称"
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="属地" prop="area">
|
|
||||||
<layout-cascader
|
|
||||||
v-model="searchForm.area"
|
|
||||||
:dictionaries-id="'e725d2a91b8248f4b8f49889038df7de'"
|
|
||||||
:check-strictly="true"
|
|
||||||
:level="4"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="运行状态" prop="runningStatus">
|
|
||||||
<el-select
|
|
||||||
v-model="searchForm.runningStatus"
|
|
||||||
placeholder="请选择运行状态"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in runningStatusList"
|
|
||||||
:key="item.bianma"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.bianma"
|
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
</el-col>
|
|
||||||
|
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="设计等别" prop="designGrade">
|
<el-form-item label="属地" prop="area">
|
||||||
<el-select
|
<layout-cascader
|
||||||
v-model="searchForm.designGrade"
|
v-model="searchForm.area"
|
||||||
placeholder="请选择设计等别"
|
:dictionaries-id="'e725d2a91b8248f4b8f49889038df7de'"
|
||||||
>
|
:check-strictly="true"
|
||||||
<el-option
|
:level="4"
|
||||||
v-for="item in designGradeList"
|
|
||||||
:key="item.bianma"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.bianma"
|
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
</el-col>
|
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="运行状态" prop="runningStatus">
|
||||||
|
<el-select
|
||||||
|
v-model="searchForm.runningStatus"
|
||||||
|
placeholder="请选择运行状态"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in runningStatusList"
|
||||||
|
:key="item.bianma"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.bianma"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col v-show="!collapse" :span="6">
|
||||||
|
<el-form-item label="设计等别" prop="designGrade">
|
||||||
|
<el-select
|
||||||
|
v-model="searchForm.designGrade"
|
||||||
|
placeholder="请选择设计等别"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in designGradeList"
|
||||||
|
:key="item.bianma"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.bianma"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
</app-search>
|
</app-search>
|
||||||
|
|
||||||
<app-table v-model:pagination="pagination" :data="list" @get-data="getData">
|
<app-table v-model:pagination="pagination" :data="list" @get-data="getData">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue