From 34a0220d8f02151846783ba22fbca06e376edbf5 Mon Sep 17 00:00:00 2001 From: chenyabin <Chenab123!> Date: 星期一, 19 四月 2021 18:02:35 +0800 Subject: [PATCH] 完成附属设施功能。 --- src/components/BaseNav/pipeline/AffiliatedFacilities.vue | 200 ++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 178 insertions(+), 22 deletions(-) diff --git a/src/components/BaseNav/pipeline/AffiliatedFacilities.vue b/src/components/BaseNav/pipeline/AffiliatedFacilities.vue index 3cc7ce3..71806b6 100644 --- a/src/components/BaseNav/pipeline/AffiliatedFacilities.vue +++ b/src/components/BaseNav/pipeline/AffiliatedFacilities.vue @@ -3,42 +3,123 @@ <div class="affiliatedFacilities"> <el-dialog custom-class="affiliatedFacilities-dialog" - title="鎻愮ず" + :title="facilitiesParameter.properties.pipename" :visible.sync="dialogVisible" :append-to-body="true" :modal="false" v-dialogDrag > - <div> - <h3>闄勫睘璁炬柦鍒嗙被</h3> - <ul> - <li>闄勫睘璁炬柦瀛愮被</li> - <li>闄勫睘璁炬柦瀛愮被</li> - <li>闄勫睘璁炬柦瀛愮被</li> - <li>闄勫睘璁炬柦瀛愮被</li> - <li>闄勫睘璁炬柦瀛愮被</li> - </ul> + <div class="search-panel "> + <el-form ref="form" :model="form" label-width="90px" class="search-form"> + <!-- <el-form-item label="绠$嚎淇℃伅锛�" size="mini" class="search-panel-item"> + <div class="el-select el-select--mini">8888</div> + </el-form-item> --> + <el-form-item label="璁炬柦绫诲瀷锛�" size="mini" class="search-panel-item"> + <el-select style="width: 100%" v-model="form.dataType" @change="handleDataType" :popper-class="'select-down'"> + <el-option v-for="(item,index) in classification" :key="index" :label="item.name" :value="item"></el-option> + </el-select> + </el-form-item> + <div class="rightButtonSearch"> + <el-input v-model="form.keyword" size="mini" placeholder="鍦ㄦ杈撳叆鍏抽敭瀛楁悳绱�"></el-input> + <el-button class="el-icon-search" @click="handleSearch"></el-button> + </div> + </el-form> </div> - + <el-scrollbar style="height:300px;"> + <div class="environmental-risk-list" v-for="(item,index) in list" :key="index" :class="activeNum==index?'hover':''"> + <img class="state" :src="getImgSrc()" style="background: none"/> + <div> + <h3 @click="handleLocation(item,index)">{{ item.properties.pipename }}</h3> + <p>鎵�灞炰紒涓氾細<span>{{ item.properties.orgcode }}</span> + <p>璁炬柦绫诲瀷锛�<span>{{ item.properties.teetype }}</span> + <!-- <el-button v-if="fuShuSheShiShow" class="rt" size="mini" style="margin-right: 0.04rem" @click="btnAffiliatedFacilities(item)" >闄勫睘璁炬柦</el-button> --> + </p> + </div> + </div> + </el-scrollbar> + <!-- <div v-for="(item,index) in classification" :key="index"> + <h3 @click="btnfuShuSheShiSubItems(item,index)"> <i :class="item.isShow?'icon iconfont iconcaret-right':'icon iconfont iconsort-down'"></i> {{item.name}}</h3> + <ul v-if="item.isShow"> + <li v-for="(item1,index1) in item.features" :key="index1" @click="btnFeatures(item,item1,index,index1)" :class="item.activeNum==index1?'hover':''" >{{item1.properties.pipename}}</li> + </ul> + </div> --> </el-dialog> </div> </template> <script> +import WfsHelper from '@components/helpers/WfsHelper' +import AjaxUtils from '@utils/AjaxUtils' +import { LayerFsss } from '@src/conf/layers/LayerFsss' + +console.log(LayerFsss, 8888888888) export default { name: 'AffiliatedFacilities', data () { return { - dialogVisible: true + dialogVisible: false, + form: { + areaVal: '', + keyword: '' + }, + classification: LayerFsss.layers, + list: [], + activeNum: -1 + } + }, + props: ['facilitiesParameter', 'fuShuSheShiSubItems'], + watch: { + facilitiesParameter: { + handler (newValue, oldValue) { + this.dialogVisible = true + this.list = [] + }, + deep: true } }, methods: { + getImgSrc () { + const icon = this.form.dataType.icon + return icon ? 'assets/images/map/' + icon : '' + }, handleClose (done) { - this.$confirm('纭鍏抽棴锛�') - .then(_ => { - done() - }) - .catch(_ => {}) + // this.$confirm('纭鍏抽棴锛�').then(_ => { done() }).catch(_ => {}) + }, + btnFeatures (val, val1, index, index1) { + this.classification.forEach((item) => { + item.activeNum = -1 + }) + this.classification[index].activeNum = index1 + this.$forceUpdate() + window.layerFactory.flyByFeature(val1, val.code) + }, + handleDataType () { + + }, + async handleSearch () { + var wfsHelper = new WfsHelper() + // todo 鐜板湪绠$綉杩樻病鍖哄垎寮�绫诲瀷锛屽悗闈㈡敼 + wfsHelper.addTypeName(this.form.dataType.sname) + wfsHelper.addLike('name', this.form.keyword) + // const _this = this + + const res = await AjaxUtils.GetDataAsynByUrl(wfsHelper.getUrl(), {}) + console.log(res) + + if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) { + const datas = res.features + const arrs = [] + for (let i = 0; i < 7; i++) { + arrs.push(datas[i]) + } + this.list = arrs + + // this.$forceUpdate() + } + }, + handleLocation (val, index) { + this.activeNum = index + window.layerFactory.flyByFeature(val, this.form.dataType.code) } } } @@ -46,13 +127,88 @@ <style lang="less"> .affiliatedFacilities-dialog{ - width: calc(30% - 15px) !important; // calc(30% - 15px); - left: 50%; + width: calc(20% - 60px) !important; // calc(30% - 15px); + left: 60%; .el-dialog__body{ padding: 0.04rem; - h3{color:#fff;} - ul {display: flex;flex-wrap: wrap; - li{margin-left:0.04rem;margin-bottom: 0.04rem;cursor: pointer;color:#00fff6} + .search-panel { + background-color: transparent; + padding: 10px; + border-bottom: 1px solid @background-color-split; + // .el-input{width:calc(100% - 40px);position: relative} + /deep/ input { + border-radius: 0; + background-color: @background-color-split; + border: solid 1px @color; + color: @color-gray; + font-size: 0.01rem; + padding: 0 15px; + + .el-select .el-input.is-focus .el-input__inner { + border-color: @color; + } + } + .el-form-item__label{ + color:#00fff6 + } + .el-input__inner { + background: none; + color: #fff; + font-size: 14px; + border-radius: 0; + border-color: @color; + background: rgba(0, 16, 30, .5); + } + } + /*input 鐐瑰嚮鎼滅储鏍峰紡*/ + + .rightButtonSearch { + display: flex; + justify-content: space-between; + align-items: center; + + .el-input { + margin-right: 10px + } + + .el-icon-search { + width: 40px; + border: 1px solid @color; + height: 28px; + line-height: 28px; + text-align: center; + color: #fff; + border-radius: 2px; + cursor: pointer; + background: rgba(0, 16, 30, .5); + padding: 0; + } + } + .environmental-risk-list { + position: relative; + padding-left: 50px; + padding-top: 5px; + padding-bottom: 5px; + color: @color-shadow; + border-bottom: 1px solid @background-color-split; + h3{ cursor: pointer;} + .state { + width: 30px; + height: 30px; + position: absolute; + top: 50%; + left: 10px; + margin-top: -15px; + border-radius: 50%; + box-shadow: 0 0 3px #000; + background: #0B3B6D; + } + } + + .environmental-risk-list.hover, + .environmental-risk-list:hover { + color: @color-highlight; + background: @background-color; } } } -- Gitblit v1.8.0