当前位置: 首页 > news >正文

青岛的做网站公司/免费舆情监测平台

青岛的做网站公司,免费舆情监测平台,百度站长工具网站验证,免费门户网站模板城市多选组件最近收到了一个需求&#xff0c;管理系统需要上线一个活动&#xff0c;但是活动是根据地区上线的&#xff0c;最小范围到市&#xff0c;于是有了下面这个组件页面展示如图&#xff1a; 上代码&#xff5e;&#xff5e;&#xff5e; <template><div class&…
城市多选组件

最近收到了一个需求,管理系统需要上线一个活动,但是活动是根据地区上线的,最小范围到市,于是有了下面这个组件
页面展示如图:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


上代码~~~

&lt;template&gt;&lt;div class="tm-mil-city"&gt;&lt;p class="tm-mil-city-title tm-mil-mb20"&gt;{{name}}&lt;/p&gt;&lt;div class="tm-mil-district-box tm-mil-mb20"&gt;&lt;Select class="tm-mil-selsect" style='width:200px' v-model='province' placeholder='全部' @on-change='changeProvince'&gt;&lt;Option v-for='item in provinceList' :value='item.id' :key='item.id'&gt;{{ item.regionName }}&lt;/Option&gt;&lt;/Select&gt;&lt;span class="tm-mil-selsect-all-btn tm-mil-ml20 tm-mil-colB" @click="chooseAllRegion"&gt;全选&lt;/span&gt;&lt;div class="tm-mil-line-loading" v-if="province &amp;&amp; !cityList.length"&gt;&lt;img src="../assets/loading.gif" alt=""&gt;&lt;/div&gt;&lt;div class="tm-mil-mb20" v-if="cityList.length"&gt;&lt;CheckboxGroup style="marginTop:10px;width:900px" v-model="checkCity"&gt;&lt;Checkbox v-for='item in cityList' :key='item.id' :label="item.regionCode"&gt;{{item.regionName}}&lt;/Checkbox&gt;&lt;/CheckboxGroup&gt;&lt;Button v-show="cityList.length" size="small" style="marginTop:10px" @click="saveCheckCity"&gt;确定&lt;/Button&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class="tm-mil-city-title tm-mil-mb20"&gt;已选择的地区&lt;/p&gt;&lt;div class="tm-mil-line-loading" v-if="waiting"&gt;&lt;img src="../assets/loading.gif" alt=""&gt;&lt;/div&gt;&lt;div class="tm-mil-choose-district" v-else&gt;&lt;div v-for="(item, idx) in allCheckCityShowList" :key="idx"&gt;&lt;span class="tm-mil-colB"&gt;{{provinceFilter(item.province)}}&lt;/span&gt;&lt;span class="tm-mil-ml10" v-for="(obj, indx) in item.cityList" :key="indx" &gt;{{obj}}&lt;/span&gt;&lt;/div&gt;&lt;span v-if="!allCheckCityShowList.length"&gt;全部地区&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/template&gt;

注: <Select></Select>/<CheckboxGroup></CheckboxGroup>都是iview的组件,详情请看iview官网,同理elementUi也有相同的组件
iview官网
elementUi官网

data() {return {waiting: false, // loadingprovince: '', // 当前的省provinceList: [], // 省列表Municipality: [{id: 2, name: '北京'}, {id: 3, name: '天津'}, {id: 10, name: '上海'}, {id: 23, name: '重庆'}, {id: 2, name: '北京'}], // 直辖市cityList: [], // 城市列表activityTime: [], // 活动时间checkCity: [], // 当前省所选的市列表  -- 展示allCheckCityApi: [], // 所有的市列表  -- 接口allCheckCitySave: { // 存储所有选择各省对应的市列表 -- 存储// '10001': [{code:'10111', name:'北京'}]},allCheckCityShowList: [ // 存储所有选择的市列表  -- 展示// { province: '10001', cityList: ['上海', 2, 3]}]}},

函数:
请输入代码

// 获取省级数据getOrigin() {this.axios.get(`/users/open/region/topRegions`).then(res =&gt; {if (res.status === 200) {this.provinceList = res.data}})}// 返回省名称provinceFilter(id) {return this.provinceList.filter(item =&gt; item.id === id)[0].regionName}// 选择全部地区chooseAllRegion() {this.province = 0this.cityList = []this.checkCity = []this.allCheckCityApi = []this.allCheckCitySave = []this.allCheckCityShowList = []}// 保存城市后存储数据 -- 接口handleSaveCityList() {let _arr = []for (var key in this.allCheckCitySave) {_arr = _arr.concat(this.allCheckCitySave[key])}this.allCheckCityApi = _arr}
// 更改省changeProvince(parentId) {if (!parentId) {return}this.cityList = []//获取该省下的市列表this.axios.get(`/users/open/region/${parentId}/subRegions`).then(res =&gt; {if (res.status === 200) {this.cityList = res.data}})// 处理已经选择的市let _checkCity = this.allCheckCitySave[parentId] || [] let _checkCityList = []_checkCity.forEach(el =&gt; {_checkCityList.push(el.regionCode)})this.checkCity = JSON.parse(JSON.stringify(_checkCityList))}// 保存所选的当前市saveCheckCity() {// 处理选择不同省,保存当前省已选择的投放城市if (!this.checkCity.length) {return}this.waiting = true// 当前城市的省codelet _province = JSON.parse(JSON.stringify(this.province))// 当前城市的省名称let _provinceName = this.Municipality.filter(el =&gt; el.id === _province)[0] &amp;&amp; this.Municipality.filter(el =&gt; el.id === _province)[0].name || ''// 已选择城市(code name level)列表let _arrCheckMsgList = []// 当前选择的城市codelet _arrCheck = JSON.parse(JSON.stringify(this.checkCity))_arrCheck.forEach(el =&gt; {let _obj = this.cityList.filter(_el =&gt; _el.regionCode === el)[0]// 区别市辖区let _regionName = _provinceName + _obj.regionNamelet _regionLevel = _obj.regionLevellet obj = {regionCode: el, regionName: _regionName, regionLevel: _regionLevel, parentId: _province}// let obj = {regionCode: el, regionName: _regionName, regionLevel: _regionLevel}_arrCheckMsgList.push(obj)})// 存储到当前省对应的已选择的市列表 -- 存储this.$set(this.allCheckCitySave, _province, _arrCheckMsgList)// 保存城市后存储数据 -- 接口this.handleSaveCityList()// 处理已选择的投放地区数据展示let _arrCheckMsg = []// 处理展示列表-城市名称  --  直辖市(北京,上海等)选地区时要加上直辖市前缀,如  北京市辖区/北京县this.cityList.map(obj =&gt; {if (_arrCheck.indexOf(obj.regionCode) &gt; -1) {_arrCheckMsg.push(_provinceName + obj.regionName)}})let _msgObj = {province: _province,cityList: _arrCheckMsg}let _len = this.allCheckCityShowList.filter(item =&gt; item.province === _province).length || 0// 新增  /  替换if (!_len) {this.allCheckCityShowList.push(_msgObj)this.waiting = false} else {this.allCheckCityShowList.forEach((item, idx) =&gt; {if (item.province === _province) {this.$set(this.allCheckCityShowList, idx, _msgObj)this.waiting = falsereturn}})}}

已上,具体的解释都在注释里面,有疑问的地方欢迎留言~

来源:https://segmentfault.com/a/1190000018677847

http://www.jmfq.cn/news/5022343.html

相关文章:

  • 网站开发专业实习报告/网络营销服务公司
  • 苏州电商关键词优化/引擎优化
  • 除了网页外 网站还需要/宁波网站推广
  • 网站301重定向 权重转移/百度指数的功能
  • 通付盾 建设网站/十大软件免费下载网站排行榜
  • 物联网小项目/seo零基础入门到精通200讲
  • 江门免费模板建站/今日新闻10条简短
  • 美术培训学校网站模板/小红书怎么推广引流
  • 东莞市建设局质量监督网站/八宿县网站seo优化排名
  • 沈阳市建设工程质量监督局网站/优化关键词技巧
  • 如何制作网站视频的软件/重庆百度快速优化
  • 网站建设推广公司需要哪些岗位/人民网舆情数据中心官网
  • 网站设计哪里公司好/企业邮箱注册
  • 狠狠做网站/自助建站系统开发
  • 学做网站的步骤/seo网站排名厂商定制
  • 雨花区区网站建设公司/百度官方网站登录
  • php 简单购物网站/大数据分析
  • 手机直播app开发制作/宁波网络推广优化方案
  • 用css代码做新闻网站/提高工作效率英语
  • 遵义做网站/深圳广告策划公司
  • 媒体网站怎么做/北京网络营销公司哪家好
  • 门户网站举例/哪里有网络推广
  • 做网站几天/刚刚突发1惊天大事
  • 广州新公司网站建设/长春seo招聘
  • 网站建设中搜索引擎/app开发费用标准
  • 做网站需要的注意事项/杭州网站优化企业
  • 中山网站建设技术/某个网站seo分析实例
  • 杭州网站建设书生商友/青岛seo关键字排名
  • 全面的网站制作/seo外链自动群发工具
  • 兰州建设厅评职称网站/免费网站推广网站在线