index.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. const _Http = getApp().globalData.http;
  2. Page({
  3. data: {
  4. paging: {
  5. "pageNumber": 1,
  6. "pageSize": 20,
  7. "pageTotal": 1,
  8. "where": {
  9. "condition": ""
  10. }
  11. },
  12. result: [],
  13. list: []
  14. },
  15. onLoad(options) {
  16. getApp().globalData.Language.getLanguagePackage(this, '选择');
  17. let item = JSON.parse(options.data);
  18. console.log(item)
  19. this.setData({
  20. item,
  21. result: item.value ? Array.isArray(item.value) ? item.value : [item.value] : []
  22. })
  23. this.getList();
  24. },
  25. toggle(e) {
  26. const {
  27. item
  28. } = e.currentTarget.dataset;
  29. let result = this.data.result;
  30. if (this.data.item.optionType == 'checkbox') {
  31. let index = result.findIndex(v => v == item.value);
  32. if (index == -1) {
  33. result.push(item.value)
  34. } else {
  35. result.splice(index, 1)
  36. }
  37. this.setData({
  38. result
  39. })
  40. } else {
  41. this.setData({
  42. result: [item.value]
  43. })
  44. this.submit();
  45. }
  46. },
  47. getList(init = false) {
  48. let {
  49. pageNumber,
  50. pageTotal,
  51. pageSize,
  52. where
  53. } = this.data.paging;
  54. if (init) {
  55. pageNumber = 1;
  56. pageTotal = 1;
  57. };
  58. if (pageNumber > pageTotal) return;
  59. _Http.basic({
  60. "classname": "sysmanage.develop.optiontype.optiontype",
  61. "method": "optiontypeselect",
  62. "content": {
  63. pageNumber,
  64. pageSize,
  65. "typename": this.data.item.optionNmae,
  66. "parameter": {
  67. "siteid": wx.getStorageSync('siteP').siteid
  68. },
  69. where
  70. }
  71. }).then(res => {
  72. console.log("可选项查询", res)
  73. if (res.code != '1') return wx.showToast({
  74. title: res.data,
  75. icon: "none"
  76. });
  77. if (!res.pageNumber) res.pageNumber = 1;
  78. res.data = res.data.map(v => {
  79. v.remarks = getApp().globalData.Language.getMapText(v.remarks)
  80. v.showValue = getApp().globalData.Language.getMapText(v.value)
  81. return v
  82. })
  83. this.setData({
  84. list: res.pageNumber == 1 ? res.data : this.data.list.concat(res.data),
  85. "paging.pageNumber": res.pageNumber + 1,
  86. "paging.pageTotal": res.pageTotal,
  87. "paging.total": res.total,
  88. })
  89. })
  90. },
  91. submit() {
  92. let item = this.data.item;
  93. if (item.optionType == 'checkbox') {
  94. item.value = this.data.result
  95. } else {
  96. item.value = this.data.result[0]
  97. };
  98. const pages = getCurrentPages();
  99. pages[pages.length - 2].selectComponent(item.model || "#Form").setOption(item);
  100. wx.navigateBack();
  101. /* item.setFun && getApp().globalData.optionFun && getApp().globalData.optionFun({
  102. item,
  103. list: this.data.result.map(v => this.data.list.find(s => s.value == v))
  104. }); */
  105. },
  106. onReachBottom() {
  107. this.getList();
  108. },
  109. onSearch({
  110. detail
  111. }) {
  112. this.data.paging.where.condition = detail;
  113. this.getList(true);
  114. },
  115. onClear() {
  116. this.onSearch({
  117. detail: ""
  118. })
  119. }
  120. })