排队支付小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
3.3 KiB

  1. var area_picker = {
  2. page: null,
  3. data: null,
  4. old_value: [0, 0, 0],
  5. result: [null, null, null],
  6. init: function (args) {
  7. var picker = this;
  8. picker.page = args.page;
  9. picker.data = args.data;
  10. picker.page.showAreaPicker = function () {
  11. picker.page.setData({
  12. area_picker_show: true,
  13. });
  14. };
  15. picker.page.hideAreaPicker = function () {
  16. picker.page.setData({
  17. area_picker_show: false,
  18. });
  19. };
  20. var city_list = picker.data[0].list || [];
  21. var district_list = [];
  22. if (city_list.length > 0)
  23. district_list = city_list[0].list || [];
  24. picker.page.setData({
  25. area_picker_province_list: picker.data,
  26. area_picker_city_list: city_list,
  27. area_picker_district_list: district_list,
  28. });
  29. picker.result[0] = picker.data[0] || null;
  30. if (picker.data[0].list) {
  31. picker.result[1] = picker.data[0].list[0];
  32. if (picker.data[0].list[0].list)
  33. picker.result[2] = picker.data[0].list[0].list[0];
  34. }
  35. picker.page.areaPickerChange = function (e) {
  36. var province_index = e.detail.value[0];
  37. var city_index = e.detail.value[1];
  38. var district_index = e.detail.value[2];
  39. if (e.detail.value[0] != picker.old_value[0]) {//省份改变
  40. city_index = 0;
  41. district_index = 0;
  42. city_list = picker.data[province_index].list;
  43. district_list = city_list[0].list;
  44. picker.page.setData({
  45. area_picker_city_list: [],
  46. area_picker_district_list: [],
  47. });
  48. setTimeout(function () {
  49. picker.page.setData({
  50. area_picker_city_list: city_list,
  51. area_picker_district_list: district_list,
  52. });
  53. }, 0);
  54. }
  55. if (e.detail.value[1] != picker.old_value[1]) {//城市改变
  56. district_index = 0;
  57. district_list = picker.data[province_index].list[city_index].list;
  58. picker.page.setData({
  59. area_picker_district_list: [],
  60. });
  61. setTimeout(function () {
  62. picker.page.setData({
  63. area_picker_district_list: district_list,
  64. });
  65. }, 0);
  66. }
  67. if (e.detail.value[2] != picker.old_value[2]) {//区改变
  68. }
  69. picker.old_value = [province_index, city_index, district_index];
  70. picker.result[0] = picker.data[province_index];
  71. picker.result[1] = picker.data[province_index].list[city_index];
  72. picker.result[2] = picker.data[province_index].list[city_index].list[district_index];
  73. };
  74. picker.page.areaPickerConfirm = function () {
  75. picker.page.hideAreaPicker();
  76. // console.log(1);
  77. // console.log(picker.page);
  78. // console.log(typeof picker.page.onAreaPickerConfirm);
  79. if (picker.page.onAreaPickerConfirm)
  80. picker.page.onAreaPickerConfirm(picker.result);
  81. };
  82. return this;
  83. },
  84. };
  85. module.exports = area_picker;