selectSchool.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. const {
  2. net
  3. } = require('../../utils/net.js');
  4. const util = require('../../utils/util.js');
  5. const {
  6. api_school_list
  7. } = require('../../utils/api.js');
  8. Page({
  9. /**
  10. * 页面的初始数据
  11. */
  12. data: {
  13. isLoading: true,
  14. countryId: "",
  15. cityId: "",
  16. allSchoolList: [],
  17. schoolList: [],
  18. },
  19. /**
  20. * 生命周期函数--监听页面加载
  21. */
  22. onLoad: function (options) {
  23. this.setData({
  24. countryId: options.countryId,
  25. cityId: options.cityId
  26. })
  27. this.loadSchoolList();
  28. this.debounceSearchInputChange = util.debounce(this.handleSearchInputChange);
  29. },
  30. // 获取学校列表
  31. loadSchoolList() {
  32. const { countryId, cityId } = this.data;
  33. let params = {};
  34. params.url = api_school_list;
  35. params.data = { countryId: countryId, cityId: cityId };
  36. return net.req(params, true).then(res => {
  37. const { code, data } = res;
  38. if (parseInt(code) === 0 && data.list && Array.isArray(data.list) && data.list.length) {
  39. this.setData({
  40. isLoading: false,
  41. allSchoolList: data.list,
  42. schoolList: data.list
  43. })
  44. } else {
  45. this.setData({
  46. isLoading: false,
  47. allSchoolList: [],
  48. schoolList: []
  49. })
  50. }
  51. }, e => {
  52. this.setData({
  53. isLoading: false,
  54. allSchoolList: [],
  55. schoolList: []
  56. })
  57. })
  58. },
  59. // 搜索学校输入框变化-实时搜索
  60. handleSearchInputChange(e) {
  61. const { cityId } = this.data;
  62. let value = e.detail;
  63. let params = {};
  64. params.url = api_school_list;
  65. value = value.trim();
  66. if (value && value.length) {
  67. params.data = {
  68. cityId: cityId,
  69. keyword: value
  70. };
  71. net.req(params, true).then(res => {
  72. const { code, data } = res;
  73. if (parseInt(code) === 0 && data.list && Array.isArray(data.list) && data.list.length) {
  74. this.setData({
  75. schoolList: data.list
  76. })
  77. } else {
  78. this.setData({
  79. schoolList: []
  80. })
  81. }
  82. },
  83. e => {
  84. this.setData({
  85. schoolList: []
  86. })
  87. }
  88. )
  89. } else {
  90. this.setData({
  91. schoolList: this.data.allSchoolList
  92. })
  93. }
  94. },
  95. // 选择学校
  96. handleClickSearchItem(e) {
  97. const item = e.detail;
  98. const schoolItem = { schoolId: item.id, schoolName: item.name };
  99. let eventChannel = this.getOpenerEventChannel();
  100. eventChannel.emit('selectedSchoolEvent', schoolItem);
  101. wx.navigateBack();
  102. },
  103. // 点击关闭按钮
  104. handleClickClose() {
  105. wx.navigateBack();
  106. },
  107. })