亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue學習之mintui picker選擇器實現省市二級聯動示例

2019-11-19 15:11:20
字體:
來源:轉載
供稿:網友

本文介紹了vue學習之mintui picker選擇器實現省市二級聯動示例,分享給大家,具體如下:

Mint UI 使用文檔:https://mint-ui.github.io/docs/#/zh-cn2

Popup彈出框介紹:https://mint-ui.github.io/docs/#/zh-cn2/popup

Picker選擇器介紹:https://mint-ui.github.io/docs/#/zh-cn2/picker

Datetime picker日期選擇器介紹:https://mint-ui.github.io/docs/#/zh-cn2/datetime-picker

代碼如下:

<!-- 頁面模版 --> <template>  <div>   <!--header-->   <com-header :title="headerData.title" :toLink="headerData.toLink"></com-header>   <!--header end-->   <!--container-->   <div class="ybb-yuyue">    <div class="yy-item-box mine-me">     <a class="mint-cell mint-field">      <div class="mint-cell-left"></div>      <div class="mint-cell-wrapper">       <div class="mint-cell-title">        <span class="mint-cell-text">頭像</span>       </div>       <div class="mint-cell-value">        <div class="mint-cell-value"></div>        <img v-bind:src="data.photo" :onerror="headImg" class="img-box5">       </div>      </div>     </a>    </div>    <div class="yy-item-box mine-me">     <a class="mint-cell mint-field">      <div class="mint-cell-left"></div>      <div class="mint-cell-wrapper">       <div class="mint-cell-title">        <span class="mint-cell-text">姓名</span>       </div>       <div class="mint-cell-value">        <div class="mint-cell-value">         <input placeholder="請輸入姓名" type="text" class="mint-field-core text-right" v-model="data.userName">         <div class="mint-field-clear" style="display: none;"><i class="mintui mintui-field-error"></i></div>        </div>       </div>      </div>     </a>     <a class="mint-cell mint-field">      <div class="mint-cell-left"></div>      <div class="mint-cell-wrapper">       <div class="mint-cell-title">        <span class="mint-cell-text">性別</span>       </div>       <div class="mint-cell-value">        <div class="mint-cell-value is-link" @click="sexVisible = true">         <input placeholder="請選擇性別" type="text" class="mint-field-core text-right" readonly="readonly" v-model="data.sexText">         <div class="mint-field-clear" style="display: none;"><i class="mintui mintui-field-error"></i></div>        </div>       </div>       <i class="mint-cell-allow-right"></i>       <mt-actionsheet :actions="sexs" v-model="sexVisible" cancel-text="取消"></mt-actionsheet>      </div>     </a>     <a class="mint-cell mint-field">      <div class="mint-cell-left"></div>      <div class="mint-cell-wrapper">       <div class="mint-cell-title">        <span class="mint-cell-text">出生日期</span>       </div>       <div class="mint-cell-value">        <div class="mint-cell-value is-link" @click="open('datePicker')">         <input placeholder="請選擇日期" type="text" class="mint-field-core text-right" readonly="readonly" v-model="data.birthday">         <div class="mint-field-clear" style="display: none;"><i class="mintui mintui-field-error"></i></div>        </div>       </div>       <i class="mint-cell-allow-right"></i>       <mt-datetime-picker        ref="datePicker"        type="date"        :startDate="startDate"        :endDate="endDate"        v-model="dateValue"        @confirm="handleChange">       </mt-datetime-picker>      </div>     </a>    </div>    <div class="yy-item-box mine-me">     <a class="mint-cell mint-field">      <div class="mint-cell-left"></div>      <div class="mint-cell-wrapper">       <div class="mint-cell-title">        <span class="mint-cell-text">電話號碼</span>       </div>       <div class="mint-cell-value">        <div class="mint-cell-value">         <input placeholder="請輸入電話號碼" type="text" readonly="readonly" class="mint-field-core text-right gray" v-model="data.mobile">         <div class="mint-field-clear" style="display: none;"><i class="mintui mintui-field-error"></i></div>        </div>       </div>      </div>     </a>     <a class="mint-cell mint-field">      <div class="mint-cell-left"></div>      <div class="mint-cell-wrapper">       <div class="mint-cell-title">        <span class="mint-cell-text">所在地區</span>       </div>       <div class="mint-cell-value">        <div class="mint-cell-value is-link" @click="choiceArea">         <input placeholder="請選擇省市" type="text" class="mint-field-core text-right" readonly="readonly" v-model="data.areaText">         <div class="mint-field-clear" style="display: none;"><i class="mintui mintui-field-error"></i></div>        </div>       </div>       <i class="mint-cell-allow-right"></i>       <mt-popup v-model="popupVisible" position="bottom" class="mint-popup-4">        <div class="picker-toolbar">         <span class="mint-datetime-action mint-datetime-cancel" @click="cancleaddress">取消</span>         <span class="mint-datetime-action mint-datetime-confirm" @click="selectaddress">確定</span>        </div>        <mt-picker :slots="citySlots" @change="onCityChange" :visible-item-count="3"></mt-picker>       </mt-popup>      </div>     </a>     <a class="mint-cell mint-field">      <div class="mint-cell-left"></div>      <div class="mint-cell-wrapper">       <div class="mint-cell-title">        <span class="mint-cell-text">詳細地址</span>       </div>       <div class="mint-cell-value">        <div class="mint-cell-value">         <input placeholder="街道、樓牌號等" type="text" class="mint-field-core text-right" v-model="data.address">         <div class="mint-field-clear" style="display: none;"><i class="mintui mintui-field-error"></i></div>        </div>       </div>      </div>     </a>    </div>   </div>   <div class="yuyue-submit">    <button class="mint-button mint-button--default mint-button--large ybb-btn" @click="infoSave"><label class="mint-button-text title-1">保存</label></button>   </div>   <!--container end-->  </div> </template> <script> import {Toast} from 'mint-ui' import validators from '../utils/validators' import comHeader from 'components/comHeader' import mineInfoService from 'SERVICES/mineInfoService'  export default {  components: {   comHeader  },  data: () => ({   headImg: 'this.src="' + require('../assets/img.png') + '"',   headerData: {    title: '我的資料',    toLink: '/Mine'   },   popupVisible: false,   sexVisible: false,   areaPicker: '',   areaList: [],   data: {    photo: '',    userName: '',    sex: '',    sexText: '',    mobile: '',    birthday: '',    privinceName: '',    provinceId: '',    cityName: '',    cityId: '',    address: '',    areaText: ''   },   sexs: [],   citySlots: [    {     flex: 1,     values: Object.keys(address),     className: 'slot1',     textAlign: 'center'    }, {     divider: true,     content: '-',     className: 'slot2'    }, {     flex: 1,     values: Object.values(address)[0],     className: 'slot3',     textAlign: 'center'    }   ],   addressProvince: '',   addressProvinceId: '',   addressCity: '',   addressCityId: '',   dateValue: new Date(),   startDate: new Date('1900-01-01'),   endDate: new Date()  }),  created () {   this.loadMineInfo()   this.loadAreaList()  },  mounted () {   this.sexs = [{    name: '男',    method: this.selectMan   }, {    name: '女',    method: this.selectWoman   }]  },  methods: {   loadAreaList: function () {    mineInfoService.loadAreaList().then(res => {     if (res.t) {      this.areaList = res.t      address = this.areaList.areaList[0]      provinceCodeList = this.areaList.provinceCodeList[0]      cityCodeList = this.areaList.cityCodeList[0]      this.citySlots[0].values = Object.keys(address)      this.citySlots[2].values = Object.values(address)[0]     } else {      Toast('地區數據異常')     }    })   },   choiceArea: function () {    this.popupVisible = true    // 設置默認選中    if (this.data.privinceName !== '' && this.data.cityName !== '') {     this.areaPicker.setSlotValue(0, this.data.privinceName)     this.areaPicker.setSlotValue(1, this.data.cityName)     console.log(this.data.privinceName + '-' + this.data.cityName)    }   },   cancleaddress: function () {    this.popupVisible = false    this.areaPicker.setSlotValue(0, this.data.privinceName)    this.areaPicker.setSlotValue(1, this.data.cityName)   },   selectaddress: function () {    this.popupVisible = false    this.data.privinceName = this.addressProvince    this.data.cityName = this.addressCity    this.data.provinceId = this.addressProvinceId    this.data.cityId = this.addressCityId    this.data.areaText = this.data.privinceName + this.data.cityName   },   infoSave: function () {    if (this.data.userName.trim() === '') {     Toast('請輸入姓名')    } else if (this.data.userName.trim().length > 12) {     Toast('姓名不能超過12個字符')    } else if (this.data.sex.toString().trim() === '') {     Toast('請選擇性別')    } else if (this.data.birthday.trim() === '') {     Toast('請選擇出生日期')    } else if (this.data.mobile.trim() === '') {     Toast('請輸入電話號碼')    } else if (!validators.mobile(this.data.mobile.trim())) {     Toast('電話號碼不正確')    } else if (this.data.areaText.toString().trim() === '') {     Toast('請選擇所在地區')    } else if (this.data.address.trim() === '') {     Toast('請輸入詳細地址')    } else if (this.data.address.trim().length > 50) {     Toast('詳細地址不能超過50個字符')    } else {     this.doAdd()    }   },   doAdd: function () {    mineInfoService.updateAccount(this.data).then(res => {     Toast('修改成功')     this.$router.push('/Mine')    })   },   loadMineInfo: function () {    mineInfoService.loadMineInfo().then(res => {     this.data.photo = res.t.member.photo || ''     this.data.userName = res.t.member.userName || ''     this.data.sex = res.t.member.sex || ''     this.data.sexText = res.t.member.sex === '1' ? '男' : (res.t.member.sex === '0' ? '女' : '')     this.data.mobile = res.t.member.mobile || ''     this.data.birthday = res.t.member.birthday || ''     this.data.area = res.t.member.area || ''     this.data.address = res.t.member.address || ''     this.dateValue = this.data.birthday     this.data.privinceName = res.t.member.priviceName || ''     this.data.cityName = res.t.member.cityName || ''     this.data.provinceId = res.t.member.provinceId || ''     this.data.cityId = res.t.member.cityId || ''     this.data.areaText = this.data.privinceName + this.data.cityName    })   },   onCityChange: function (picker, values) {    this.areaPicker = picker    /* 此處不直接使用this.data.privinceName、this.data.cityName、this.data.provinceId、this.data.cityId,由于在加載地區信息之后,我又重新設置了綁定到slots屬性的值,此時也會觸發@change事件,所以在nCityChange方法里需要用四個變量替代上述四個變量來記錄當前選中的值,然后在點擊確定之后的方法里將這四個值賦給上述四個變量。如果直接在該方法里使用上述四個變量來獲取當前選中的值,可能導致數據錯亂 */    picker.setSlotValues(1, address[values[0]])    this.addressProvince = values[0]    this.addressCity = values[1]    this.addressProvinceId = provinceCodeList[this.addressProvince] + ''    this.addressCityId = cityCodeList[this.addressCity] + ''   },   open: function (picker) {    this.dateValue = this.data.birthday    this.$refs[picker].open()   },   handleChange: function (value) {    this.data.birthday = window.moment(value).format('YYYY-MM-DD')   },   selectMan: function () {    this.data.sex = '1'    this.data.sexText = '男'   },   selectWoman: function () {    this.data.sex = '0'    this.data.sexText = '女'   }  } }  let address = {} let provinceCodeList = {} let cityCodeList = {} </script> <style scoped> .mint-popup-4 {   width: 100%; } .mint-popup-4 .picker-slot-wrapper, .page-popup .mint-popup-4 .picker-item {   -webkit-backface-visibility: hidden;   backface-visibility: hidden; } </style> 

地區數據格式如下:

{   "code": 200,   "msg": "獲取區域信息成功!",   "t": {     "areaList": [       {         "上海": [           "上海"         ],         "北京": [           "北京"         ],         "廣東": [           "廣州",           "深圳"         ],         "江蘇": [           "徐州",           "南京"         ],         "福建": [           "福州"         ]       }     ],     "provinceCodeList": [       {         "上海": [           "120001"         ],         "北京": [           "110001"         ],         "廣東": [           "130001"         ],         "江蘇": [           "130007"         ],         "福建": [           "0100"         ]       }     ],     "cityCodeList": [       {         "上海": [           "120002"         ],         "北京": [           "110002"         ],         "廣州": [           "130002"         ],         "南京": [           "130006"         ],         "深圳": [           "518000"         ],         "福州": [           "0200"         ],         "徐州": [           "130009"         ]       }     ]   } } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久久久亚洲| 国产成人精品久久| 国产精品流白浆视频| 国产精品第2页| 久久免费国产精品1| 亚洲国语精品自产拍在线观看| 亚洲最新在线视频| 国产精品日韩久久久久| 欧美插天视频在线播放| 一区二区三区视频观看| 欧美日韩一区二区在线播放| 国产精品精品视频一区二区三区| 88国产精品欧美一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一| 欧日韩不卡在线视频| 欧美日韩一区二区免费视频| 久久成人av网站| 亚洲欧美激情另类校园| 国产婷婷成人久久av免费高清| 欧美怡红院视频一区二区三区| 国产+人+亚洲| 中文字幕欧美日韩va免费视频| 国产精品电影在线观看| 久久久伊人欧美| 日韩av在线天堂网| 人妖精品videosex性欧美| 日本久久久久久久久| 91干在线观看| 欧美激情2020午夜免费观看| 日韩精品免费在线| 久久99热精品这里久久精品| 中文字幕精品影院| 亚洲国产精品999| 国产精品永久免费在线| 91精品国产91久久久久久久久| 久久久久久国产三级电影| 国产一区二区激情| 97视频在线观看网址| 亚洲精品一区二区三区婷婷月| 色哟哟入口国产精品| 欧美视频精品一区| 另类天堂视频在线观看| 亚洲色图第三页| 成人a免费视频| 亚洲欧洲成视频免费观看| 久久久久久av| 成人观看高清在线观看免费| 亚洲bt欧美bt日本bt| 亚洲第一精品久久忘忧草社区| 欧美成人亚洲成人| 色妞在线综合亚洲欧美| 精品久久久久久中文字幕| 人人澡人人澡人人看欧美| 色悠久久久久综合先锋影音下载| 欧美老女人www| 精品国产自在精品国产浪潮| 成人欧美一区二区三区黑人| 国产主播在线一区| 日韩欧美国产高清91| 97国产精品免费视频| 亚洲一区二区三区xxx视频| 国产午夜精品全部视频播放| 欧美三级欧美成人高清www| 伊人久久大香线蕉av一区二区| 欧美日韩国内自拍| 亚洲最大在线视频| 一区二区三区视频免费| 色爱av美腿丝袜综合粉嫩av| 国产成人精品视| 亚洲人成77777在线观看网| 国产精品视频内| 久久亚洲精品小早川怜子66| www国产精品com| 国产精品旅馆在线| 中文字幕亚洲自拍| 国产欧美精品一区二区三区介绍| 成人午夜在线影院| 国产女同一区二区| 国产在线拍偷自揄拍精品| 亚洲自拍小视频免费观看| 亚洲色图国产精品| 亚洲无av在线中文字幕| 亚洲精品久久久久中文字幕欢迎你| 成人激情视频免费在线| 91精品国产色综合久久不卡98口| 国产精品视频网| 这里只有精品视频在线| 国产精品人成电影| 欧美在线视频免费播放| 麻豆国产精品va在线观看不卡| 中文字幕av一区二区三区谷原希美| 黄色一区二区在线| 成人在线精品视频| 日本伊人精品一区二区三区介绍| 日韩精品极品在线观看播放免费视频| 九九热这里只有精品免费看| 成人乱人伦精品视频在线观看| 国产成人av在线播放| 国产精品成熟老女人| 欧美黑人又粗大| 久久久久久国产精品美女| 欧美在线视频在线播放完整版免费观看| 日韩美女免费视频| 欧美猛少妇色xxxxx| 亚洲自拍偷拍在线| 国产精品电影久久久久电影网| 九九热精品视频在线播放| 17婷婷久久www| 欧美大尺度激情区在线播放| 亚洲成人网在线| 97香蕉超级碰碰久久免费软件| 久久精品国产精品亚洲| 国模gogo一区二区大胆私拍| 欧美日本啪啪无遮挡网站| 日本亚洲精品在线观看| 久热精品在线视频| 日韩在线视频一区| 亚洲最大成人网色| 欧美精品videossex88| 亚洲欧美国产视频| 亚洲一区二区免费| 国产不卡视频在线| 亚洲男人天堂2023| 全亚洲最色的网站在线观看| 成人写真视频福利网| 亚洲性视频网址| 国产欧美一区二区三区在线看| 精品久久久久久国产| 久久久久久久久久久成人| 国产精品一区二区三区久久久| 国产成人精品优优av| 欧美丰满少妇xxxxx| 国产丝袜精品第一页| 欧美精品在线网站| 精品在线欧美视频| 亚洲日本欧美日韩高观看| 久久久久久久影视| 久久人人爽人人爽人人片av高清| 亚洲电影免费在线观看| 欧美成人免费小视频| 日韩视频―中文字幕| 亚洲第一综合天堂另类专| 精品中文字幕乱| 国产日韩精品在线观看| 精品久久久久久中文字幕| 精品国产精品三级精品av网址| 亚洲精品电影在线观看| 欧美激情一区二区久久久| 亚洲欧美成人一区二区在线电影| 九九精品在线播放| 亚洲男人天天操| 亚洲最新av在线| 日韩中文字幕精品视频| 久久久精品久久久| 日韩免费观看在线观看| 欧美成人亚洲成人日韩成人| 欧美限制级电影在线观看| 国产精品久久久久久久久久久久久| 亚洲国产成人精品久久久国产成人一区| 91精品国产自产在线观看永久| 久久视频在线视频| 国产一区二区视频在线观看| 欧美整片在线观看| 亚洲国产又黄又爽女人高潮的|