|
@@ -1,4 +1,5 @@
|
|
|
const https = require("../../utils/serverData");
|
|
|
+const pinyin = require('js-pinyin');
|
|
|
const dayjs = require("dayjs")
|
|
|
import {
|
|
|
storeBindingsBehavior
|
|
@@ -7,6 +8,7 @@ import {
|
|
|
store
|
|
|
} from "../../store/index";
|
|
|
|
|
|
+
|
|
|
Component({
|
|
|
behaviors: [storeBindingsBehavior],
|
|
|
properties: {
|
|
@@ -22,6 +24,10 @@ Component({
|
|
|
loading: false,
|
|
|
value: "",
|
|
|
label: "",
|
|
|
+
|
|
|
+ mapData: [],
|
|
|
+ indexList: [],
|
|
|
+ cityList: []
|
|
|
},
|
|
|
storeBindings: {
|
|
|
store: store,
|
|
@@ -44,16 +50,21 @@ Component({
|
|
|
popupType,
|
|
|
popupValue
|
|
|
} = this.data
|
|
|
- if (popupType === "radio") {
|
|
|
+ console.log(popupValue);
|
|
|
+ if (popupType === "radio" || popupType === 'city') {
|
|
|
this.setData({
|
|
|
- value: popupValue
|
|
|
+ value: String(popupValue)
|
|
|
})
|
|
|
}
|
|
|
if (popupType === 'checkbox' || popupType === "radio") {
|
|
|
this.getDateList()
|
|
|
- } else {
|
|
|
+ } else if (popupType === 'city') {
|
|
|
+ this.getMapAreaList()
|
|
|
+ } else if (popupType === 'time') {
|
|
|
+
|
|
|
this.setData({
|
|
|
popupOptions: [],
|
|
|
+ value: popupValue
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -62,6 +73,77 @@ Component({
|
|
|
},
|
|
|
},
|
|
|
methods: {
|
|
|
+ async getMapAreaList() {
|
|
|
+ const {
|
|
|
+ popupValue,
|
|
|
+ } = this.data
|
|
|
+ this.setData({
|
|
|
+ loading: true
|
|
|
+ })
|
|
|
+
|
|
|
+ let mapData = await this.getAreaList()
|
|
|
+ this.setData({
|
|
|
+ mapData
|
|
|
+ })
|
|
|
+ mapData.map(item => {
|
|
|
+ item.pinyin = pinyin.getFullChars(item.label);
|
|
|
+ });
|
|
|
+
|
|
|
+ let provice = {};
|
|
|
+ mapData.map((item) => {
|
|
|
+ const Initials = item.pinyin[0].toUpperCase();
|
|
|
+ // 如果对象里有当前字母项则直接 push 一个对象,如果没有则创建一个新的键并赋值;
|
|
|
+ if (provice[Initials]) {
|
|
|
+ provice[Initials].push(item);
|
|
|
+ } else {
|
|
|
+ provice[Initials] = [item];
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // 将数据转为数组,并按字母顺利排列
|
|
|
+ let filterData = [];
|
|
|
+ for (let key in provice) {
|
|
|
+ const obj = {
|
|
|
+ letter: key,
|
|
|
+ list: provice[key]
|
|
|
+ };
|
|
|
+ filterData.push(obj)
|
|
|
+ }
|
|
|
+ filterData.sort((a, b) => {
|
|
|
+ return a.letter.localeCompare(b.letter)
|
|
|
+ });
|
|
|
+ // 为索引字符数组赋值
|
|
|
+ let indexList = [],
|
|
|
+ arr = [];
|
|
|
+ filterData.forEach((item) => {
|
|
|
+ indexList.push(item.letter)
|
|
|
+ let model = {
|
|
|
+ letter: item.letter,
|
|
|
+ list: []
|
|
|
+ }
|
|
|
+ item.list.forEach((si, sii) => {
|
|
|
+ const modelb = {
|
|
|
+ ...si,
|
|
|
+ order: Math.floor(item.list.length / 3) > Math.floor(sii / 3) ? false : true
|
|
|
+ }
|
|
|
+ model.list.push(modelb);
|
|
|
+ })
|
|
|
+ arr.push(model);
|
|
|
+ }
|
|
|
+
|
|
|
+ );
|
|
|
+ let name = "";
|
|
|
+ let index = mapData.findIndex((s) => String(s.id) === String(popupValue))
|
|
|
+ if (index !== -1) {
|
|
|
+ name = this.data.mapData[index].label
|
|
|
+ }
|
|
|
+ this.setData({
|
|
|
+ indexList: indexList,
|
|
|
+ cityList: arr,
|
|
|
+ value: popupValue,
|
|
|
+ label: name,
|
|
|
+ loading: false
|
|
|
+ })
|
|
|
+ },
|
|
|
async getDateList() {
|
|
|
let resList = []
|
|
|
const {
|
|
@@ -119,7 +201,6 @@ Component({
|
|
|
})
|
|
|
},
|
|
|
timeConfirm(e) {
|
|
|
- // console.log(e.detail);
|
|
|
let str = "",
|
|
|
time1 = "",
|
|
|
time2 = "",
|
|
@@ -145,6 +226,16 @@ Component({
|
|
|
})
|
|
|
|
|
|
},
|
|
|
+ bindViewTap(e) {
|
|
|
+ const {
|
|
|
+ pindex,
|
|
|
+ index
|
|
|
+ } = e.currentTarget.dataset
|
|
|
+ this.returnItem({
|
|
|
+ value: this.data.cityList[pindex].list[index].value,
|
|
|
+ label: this.data.cityList[pindex].list[index].label,
|
|
|
+ })
|
|
|
+ },
|
|
|
|
|
|
|
|
|
//复选框确定
|
|
@@ -193,6 +284,31 @@ Component({
|
|
|
}
|
|
|
this.triggerEvent("itemClick", modal)
|
|
|
},
|
|
|
+ async getAreaList() {
|
|
|
+ const {
|
|
|
+ code,
|
|
|
+ data
|
|
|
+ } = await https.getArea({
|
|
|
+ level: 2
|
|
|
+ })
|
|
|
+ let arr = code === 1 ? data.list : [];
|
|
|
+ arr.map((s) => {
|
|
|
+ return s.value = s.id, s.label = s.name
|
|
|
+ })
|
|
|
+ arr.push({
|
|
|
+ name: "天津",
|
|
|
+ id: 3,
|
|
|
+ value: 3,
|
|
|
+ label: '天津'
|
|
|
+ })
|
|
|
+ arr.push({
|
|
|
+ name: "内蒙古自治区",
|
|
|
+ id: 4,
|
|
|
+ value: 4,
|
|
|
+ label: '内蒙古自治区'
|
|
|
+ })
|
|
|
+ return arr
|
|
|
+ },
|
|
|
showToastMsg(msg) {
|
|
|
wx.showToast({
|
|
|
title: msg,
|