src/assets/js/Map/index.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/layer/layerDetail.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/layer/layerManage.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/search/search.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/assets/js/Map/index.js
@@ -44,7 +44,7 @@ //大气层 Viewer.scene.globe.showGroundAtmosphere = false; server.AddDemLayer("", 12316); // server.AddDemLayer("", 12316); // server.AddTmsLayer( // "http://172.16.2.10:50001/sj_raster/v6/service/10003901/1" src/main.ts
@@ -5,7 +5,7 @@ import ElementPlus from "element-plus"; import "element-plus/dist/index.css"; import "default-passive-events"; // import "default-passive-events"; import * as ElementPlusIconsVue from "@element-plus/icons-vue"; //base css样式 import "./assets/css/global.css"; src/views/layer/layerDetail.vue
@@ -11,23 +11,26 @@ <!-- <el-checkbox @change="handlCheckAllChange" v-model="layerState">{{ layerName }}</el-checkbox> --> {{ layerData.name }} {{ layerData.cnName }} <img src="../../assets/img/layer.png" alt="" /> </div> <div class="slider-demo-block"> <div class="demonstration">透明度</div> <el-slider v-model="transparence" /> <el-slider v-model="transparence" @change="sliderChange" :format-tooltip="formatTooltip" /> <div class="demonstration">{{ transparence }}%</div> </div> <div class="selectBox"> <div class="selectTile demonstration">拉伸方式</div> <el-select v-model="stretchValue" class="m-2" placeholder="Select" class="imgSelect" placeholder="选择拉伸方式" size="small" @change="changeSelection(stretchValue)" ref="select" clearable > <el-option v-for="item in stretchOptions" @@ -35,8 +38,30 @@ :label="item.label" :value="item.value" > <img :src="item.url" style="height: 30px; margin-right: 10px" /> <span>{{ item.label }}</span> </el-option> </el-select> </div> <div class="selectBox"> <div class="selectTile demonstration">渲染类型</div> <el-select v-model="renderType" class="imgSelect" placeholder="选择渲染类型" size="small" @change="changeSelection(renderType)" ref="select" clearable > <el-option v-for="item in renderTypeOptions" :key="item.value" :label="item.label" :value="item.value" > <!-- <img :src="item.url" style="height: 30px; margin-right: 10px" /> <span>{{ item.label }}</span> --> <img :src="item.url" style="height: 30px; width: 100%" /> </el-option> </el-select> </div> @@ -53,12 +78,14 @@ defineProps, defineEmits, } from "vue"; import server from "@/assets/js/Map/server"; const stretchValue = ref(""); const transparence = ref(0); let layerName = ref("图层名称"); let layerState = ref(false); let select = ref(); const stretchOptions = [ let renderType = ref(""); const renderTypeOptions = [ { value: "Option1", label: "Option1", @@ -70,31 +97,91 @@ url: "https://img1.baidu.com/it/u=3226786080,888437008&fm=253&fmt=auto&app=138&f=JPEG?w=200&h=200", }, ]; const stretchOptions = [ { value: "Option1", label: "Option1", }, { value: "Option2", label: "Option2", }, ]; const formatTooltip = (val: number) => { return val / 100; }; const emits = defineEmits(["detailClose"]); //defineProps 来接收组件的传值 const props = defineProps({ layerData: Object, }); const layerLength = ref(); const setSpatialClose = () => { emits("detailClose", false); }; const handlCheckAllChange = (res) => {}; const changeSelection = (scope) => { let brand = scope; for (let index in stretchOptions) { let aa = stretchOptions[index]; let value = aa.value; if (brand === value) { console.log(select.value.$el.children); if (scope == "") { select.value.$el.children[0].children[0].removeAttribute("style"); select.value.$el.children[0].children[0].children[0].removeAttribute( "style" ); select.value.$el.children[0].children[0].children[0].children[0].removeAttribute( "style" ); return; } for (let index in renderTypeOptions) { let obj = renderTypeOptions[index]; if (obj.value == scope) { select.value.$el.children[0].children[0].setAttribute( "style", "background:url(" + aa.url + ") no-repeat 10px;background-size: 30px 30px;color:#333;padding-left: 50px;" `background: url(${obj.url}) no-repeat; width: 100%; height: 100%; border: none; height: 33px; background-size:100% 100%` ); select.value.$el.children[0].children[0].children[0].setAttribute( "style", `display: flex; justify-content: flex-end; background:transparent;` ); select.value.$el.children[0].children[0].children[0].children[0].setAttribute( "style", `display: none;` ); } } // let brand = scope; // for (let index in stretchOptions) { // let aa = stretchOptions[index]; // let value = aa.value; // if (brand === value) { // console.log(select.value.$el.children); // select.value.$el.children[0].children[0].setAttribute( // "style", // "background:url(" + // aa.url + // ") no-repeat 10px;background-size: 30px 30px;color:#333;padding-left: 50px;" // ); // } // } }; //滑块变动 const sliderChange = (val) => { server.layerList[layerLength.value].layerData.alpha = val / 100; }; onMounted(() => { server.layerList.forEach((e, i) => { if (props.layerData.id == e.id) { layerLength.value = i; transparence.value = e.layerData.alpha * 100; } }); }); </script> <style lang="less" scoped> src/views/layer/layerManage.vue
@@ -59,7 +59,7 @@ </div> </div> <layer-set v-show="layerSetIsshow" v-if="layerSetIsshow" @SETstate="SETstate" :layerTree="treeData" @addlayer="addlayer" @@ -97,28 +97,7 @@ const stretchValue = ref(""); let estreeRef = ref(); const stretchOptions = [ { value: "Option1", label: "Option1", }, { value: "Option2", label: "Option2", }, { value: "Option3", label: "Option3", }, { value: "Option4", label: "Option4", }, { value: "Option5", label: "Option5", }, ]; const transparence = ref(0); var treeData = ref([]); var layerListData = ref([]); @@ -192,6 +171,9 @@ }; //选择图层 const handleCheckChange = (data, checked) => { layerAttributeIsshow.value = false; layerDetailIsshow.value = false; let isCheck = checked.checkedKeys.indexOf(data.id) > -1; // this.setVisiable(data, isCheck); @@ -199,12 +181,7 @@ store.commit("SET_CHECKLAYER", son); setVisiable(data, isCheck); let layerArr = []; son.forEach((e) => { if (e.type == 2) { layerArr.push(e); } }); // server.addLayer(layerArr, isCheck); }; const setVisiable = (treeNode, checked) => { @@ -219,79 +196,30 @@ setVisiable(item, treeNode.checked); }); return; } else if (treeNode._children) { if (treeNode.thisView === "ewzj") { treeNode._children[0].checked = treeNode.checked; if (treeNode._children[0].children) { treeNode._children[0].children.forEach((item) => { item.checked = treeNode.checked; server.addTreeData(item); }); } else { server.addTreeData(treeNode._children[0]); } } else if (treeNode.thisView === "swzj") { for (let i = 1; i < treeNode._children.length; i++) { treeNode._children[i].checked = treeNode.checked; } treeNode._children.forEach((item, index) => { index !== 0 && server.addTreeData(item); }); } else if (!treeNode.thisView) { treeNode._children.forEach((item, index) => { item.checked = treeNode.checked; if (item.children) { item.children.forEach((_item) => { _item.checked = item.checked; server.addTreeData(_item); }); } else { server.addTreeData(item); } }); } return; } if (!treeNode.isAdd) { server.addTreeData(treeNode); return; } // let data = _getTreeData(treeNode.id); // if (data) { // data.item && // data.item.setVisibility && // data.item.setVisibility(treeNode.checked); // data.item && data.item.setVisible && data.item.setVisible(treeNode.checked); // data.item && // data.item.show !== undefined && // (data.item.show = treeNode.checked); // if (data.datatype === "particle") { // data.item.forEach((item) => { // item.show = treeNode.checked; // }); // } // } else { // if (treeNode.id && treeNode.id.indexOf && treeNode.id.indexOf("---") > -1) { // var ids = id.split("---"); // ids.forEach((item) => { // sgworld.ProjectTree.setVisibility(item, treeNode.checked); // }); // } else { // sgworld.ProjectTree.setVisibility(treeNode.id, treeNode.checked); // var dd = Viewer.dataSources._dataSources.filter((item) => { // return item.name == treeNode.id; // }); // if (dd && dd.length > 0) { // dd[0].show = treeNode.checked; // } // } // } }; const defaultLayer = (val) => { val.forEach((e) => { DefaultId.value.forEach((v) => { if (e.id == v) { setVisiable(e, true); } else { if (e.children) { defaultLayer(e.children); } } }); }); }; const clickdropdown = (res, e) => { if (!e.checked) { return ElMessage.error("请先勾选图层"); } layerAttributeIsshow.value = false; layerDetailIsshow.value = false; layerObjData.value = e; @@ -358,21 +286,12 @@ treeData.value = setTreeData(dt.result).sort(function (a, b) { return a.sort - b.sort; }); layerListData.value = dt.result; //添加默认选中图层 dt.result.forEach((e) => { DefaultId.value.forEach((v) => { if (e.id == v) { setVisiable(e, true); } }); }); layerListData.value = dt.result; defaultLayer(treeData.value); } // treeData.value = JSON.parse(JSON.stringify(treeData.value)); // console.log(treeData.value); }; //构造树 @@ -394,10 +313,7 @@ }); } getLayer(); onMounted(() => { console.log(treeData.value); console.log(estreeRef.value); }); onMounted(() => {}); </script> <style lang="less" scoped> src/views/search/search.vue
@@ -7,40 +7,23 @@ placeholder="请输入地名" > <template #suffix> <el-icon title="清除" @click="setSearchClose" class="el-input__icon" > <el-icon title="清除" @click="setSearchClose" class="el-input__icon"> <Close /> </el-icon> </template> <template #prefix> <el-icon @click="setSearchClick" title="查询" class="el-input__icon" > <el-icon @click="setSearchClick" title="查询" class="el-input__icon"> <search /> </el-icon> </template> </el-input> </div> <div v-if="searchFLag" class="search_content" > <el-collapse v-model="activeNames" @change="handleChange" > <el-collapse-item title="查询结果" name="1" > <div v-if="searchFLag" class="search_content"> <el-collapse v-model="activeNames" @change="handleChange"> <el-collapse-item title="查询结果" name="1"> <div class="search_content_text">总查询结果:{{ listData.count }}</div> <div class="search_content_text paging"> 总页数:{{listData.page }} 总页数:{{ listData.page }} <el-button size="small" text @@ -76,7 +59,6 @@ /> </div> <div class="table_box"> <div class="table_header"> <div class="table_th_x">序号</div> <div class="table_th">地名</div> @@ -84,13 +66,12 @@ <div class="table_childer"> <div class="table_tr" v-for='(item,flag) in tableData' v-for="(item, flag) in tableData" @click="setPointLocal(item)" > <div class="table_th_x">{{ flag +1}}</div> <div class="table_th_x">{{ flag + 1 }}</div> <div class="table_th">{{ item.enName }}</div> </div> </div> </div> </el-collapse-item> @@ -198,7 +179,7 @@ setPoitCannel(); }; const setSearchClick = async () => { if (!searchValue) return; if (!searchValue.value) return; var obj = { filter: "name like '" + searchValue.value + "'", @@ -221,7 +202,11 @@ </script> <style lang="less" scoped> .searchBox { margin-left: 34px; // margin-left: 34px; // height: auto; position: absolute; top: 0; right: -277px; } .searchInput { width: 243px;