Browse Source

选择位置部门页面优化

pull/36/head
余菲 1 year ago
parent
commit
5e42d9200e
2 changed files with 69 additions and 89 deletions
  1. +66
    -86
      pages/login/login.js
  2. +3
    -3
      pages/login/login.wxml

+ 66
- 86
pages/login/login.js View File

@@ -11,13 +11,8 @@ Page({
data: {
// 区域选项列表
provinceOptions: [],
cityOptions: [],
districtOptions: [],
provinceCurrent: -1, // 当前选择省
cityCurrent: -1,
districtCurrent: -1,
positionParams: {},
params: {}, // 筛选条件
obj: {},
path: '/pages/FirstPage/index',
fromType: 'tabbar',
tenantId: '',
@@ -50,7 +45,6 @@ Page({
// 隐藏返回图标
wx.hideHomeButton();
let positionParams = wx.getStorageSync('positionParams')
console.log(positionParams);
let options = this.data.provinceOptions
if(options.length === 0) {
let provinceOptions = wx.getStorageSync('provinceOptions')
@@ -63,11 +57,7 @@ Page({
params.districtCode = positionParams.districtCode
this.setData({
params,
provinceCurrent: positionParams.provinceCurrent,
cityCurrent: positionParams.cityCurrent,
cityOptions: positionParams.cityOptions,
districtCurrent: positionParams.districtCurrent,
districtOptions: positionParams.districtOptions
positionParams
})
// 获取租户信息
this.getTenantByParams(params)
@@ -82,12 +72,7 @@ Page({
params.cityCode = positionParams.cityCode
params.districtCode = positionParams.districtCode
this.setData({
params,
provinceCurrent: positionParams.provinceCurrent,
cityCurrent: positionParams.cityCurrent,
cityOptions: positionParams.cityOptions,
districtCurrent: positionParams.districtCurrent,
districtOptions: positionParams.districtOptions
params
})
} else {
this.getUserLocation()
@@ -167,28 +152,29 @@ Page({
*/
getListByName(obj) {
let provinceOptions = this.data.provinceOptions
let provinceCurrent,provinceName, cityCurrent, cityName,districtCurrent,districtName, cityOptions, districtOptions
let positionParams = this.data.positionParams
let params = this.data.params
params.provinceCode = obj.provinceCode
params.cityCode = obj.cityCode
params.districtCode = obj.districtCode
positionParams = {...positionParams,...params}
if(provinceOptions.length) {
provinceOptions.forEach((item,index)=> {
if(item.citycode === obj.provinceCode) {
provinceCurrent = index
provinceName = item.name
cityOptions = item?.itemList || []
if(cityOptions.length) {
cityOptions.forEach((i, j)=> {
positionParams.provinceCurrent = index
positionParams.provinceName = item.name
positionParams.cityOptions = item?.itemList || []
if(positionParams.cityOptions.length) {
positionParams.cityOptions.forEach((i, j)=> {
if(i.citycode === obj.cityCode) {
cityCurrent = j
cityName = i.name
districtOptions = i?.itemList || []
if (districtOptions.length) {
districtOptions.forEach((m, n) => {
positionParams.cityCurrent = j
positionParams.cityName = i.name
positionParams.districtOptions = i?.itemList || []
if (positionParams.districtOptions.length) {
positionParams.districtOptions.forEach((m, n) => {
if(m.citycode === obj.districtCode) {
districtCurrent = n
districtName = m.name
positionParams.districtCurrent = n
positionParams.districtName = m.name
}
})
}
@@ -198,7 +184,7 @@ Page({
}
})
}
this.setData({provinceCurrent, provinceName, cityCurrent,cityName, districtCurrent,districtName, cityOptions, districtOptions, params})
this.setData({positionParams, params})
},

/* 获取省市区 */
@@ -226,37 +212,42 @@ Page({
})
const type = e.target.dataset.type
const current = e.detail.current
let positionParams = this.data.positionParams
let params = this.data.params
let code = this.data[type+'Options'][current].citycode
let options = []
if(type === 'province') {
options = this.data.provinceOptions
} else {
options = positionParams[type+'Options']
}
let code = options[current].citycode
params[type+'Code'] = code
let name = this.data[type+'Options'][current].name
let itemList = this.data[type+'Options'][current].itemList || []
let name = options[current].name
let itemList = options[current].itemList || []
positionParams[type + 'Current'] = current
positionParams[type + 'Name'] = name
if(type === 'province') {
this.setData({
provinceName: name,
provinceCurrent: current,
cityOptions: itemList,
cityCurrent: -1,
districtCurrent: -1
})
positionParams.cityOptions = itemList
positionParams.cityCurrent = -1
positionParams.cityName = ''
positionParams.districtOptions = []
positionParams.districtCurrent = -1
positionParams.districtName = ''
params.cityCode = ""
params.districtCode = ""
} else if(type === 'city') {
this.setData({
cityName: name,
districtOptions: itemList,
cityCurrent: current,
districtCurrent: -1
})
positionParams.districtOptions = itemList
positionParams.districtCurrent = -1
positionParams.districtName = ''
params.districtCode = ""
} else if(type === 'district') {
this.setData({
districtCurrent: current,
districtName: name
})
}
positionParams = {
...positionParams,
...params
}
this.setData({
params: params
params,
positionParams
})
this.getTenantByParams(params)
},
@@ -267,42 +258,31 @@ Page({
},
// 获取用户位置信息
getUserLocation(e) {
let cityObj = wx.getStorageSync('cityObj')
if(!Object.keys(cityObj).length) {
getLocatonPermission().then(res=> {
wx.setStorage({
key: 'location',
data: res
})
let latlng = {}
latlng.lat = res.latitude
latlng.lng = res.longitude
getCityNameCode(latlng).then(res=> {
let cityObj = res.data
const params = {
provinceCode: cityObj.provinceCode,
cityCode: cityObj.cityCode,
districtCode: cityObj.districtCode
}
this.setData({cityObj})
this.getListByName(cityObj)
this.getTenantByParams(params)
})
getLocatonPermission().then(res=> {
wx.setStorage({
key: 'location',
data: res
})
}
let latlng = {}
latlng.lat = res.latitude
latlng.lng = res.longitude
getCityNameCode(latlng).then(res=> {
let cityObj = res.data
const params = {
provinceCode: cityObj.provinceCode,
cityCode: cityObj.cityCode,
districtCode: cityObj.districtCode
}
this.setData({cityObj})
this.getListByName(cityObj)
this.getTenantByParams(params)
})
})
},
// 存储省市区信息
setAreaInfo() {
let positionParams = {}
positionParams.provinceCurrent = this.data.provinceCurrent
positionParams.provinceName = this.data.provinceName
positionParams.cityCurrent = this.data.cityCurrent
positionParams.cityName = this.data.cityName
positionParams.districtCurrent = this.data.districtCurrent
positionParams.districtName = this.data.districtName
positionParams.cityOptions = this.data.cityOptions
positionParams.districtOptions = this.data.districtOptions
positionParams.areaName = this.data.districtName || this.data.cityName || this.data.provinceName || ''
let positionParams = this.data.positionParams
positionParams.areaName = positionParams.districtName || positionParams.cityName || positionParams.provinceName || ''
positionParams = {
...positionParams,
...this.data.params

+ 3
- 3
pages/login/login.wxml View File

@@ -4,9 +4,9 @@
<view class="login_main">
<text class="location_label">您的位置:</text>
<view class="select_container">
<select data="{{provinceOptions}}" data-type="province" rangeKey="name" current="{{provinceCurrent}}" bind:updateChange="updateAreaChange"></select>
<select disabled="{{!params.provinceCode}}" data="{{cityOptions}}" data-type="city" rangeKey="name" current="{{cityCurrent}}" bind:updateChange="updateAreaChange"></select>
<select disabled="{{!params.cityCode}}" data="{{districtOptions}}" data-type="district" rangeKey="name" current="{{districtCurrent}}" bind:updateChange="updateAreaChange"></select>
<select data="{{provinceOptions}}" data-type="province" rangeKey="name" current="{{positionParams.provinceCurrent}}" bind:updateChange="updateAreaChange"></select>
<select disabled="{{!params.provinceCode}}" data="{{positionParams.cityOptions}}" data-type="city" rangeKey="name" current="{{positionParams.cityCurrent}}" bind:updateChange="updateAreaChange"></select>
<select disabled="{{!params.cityCode}}" data="{{positionParams.districtOptions}}" data-type="district" rangeKey="name" current="{{positionParams.districtCurrent}}" bind:updateChange="updateAreaChange"></select>
</view>
<text class="location_label">您的关注部门:</text>
<view class="form_item {{formRules.tenantId.warning ? 'warning' : ''}}">

Loading…
Cancel
Save