index.js 2.9 KB

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