index.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. import data from '../cascader/data'
  2. import ad from '../index/ad'
  3. const seasons = [
  4. ['王', '马', '蔡'],
  5. ['撕葱', '粑粑', '🏀'],
  6. ]
  7. const provinceLite = [{
  8. value: 'bj',
  9. label: '北京市',
  10. }, {
  11. value: 'zj',
  12. label: '浙江省',
  13. }, {
  14. value: 'gd',
  15. label: '广东省',
  16. disabled: true,
  17. }, {
  18. value: 'hn',
  19. label: '海南省',
  20. }, {
  21. value: 'cq',
  22. label: '重庆市',
  23. }, {
  24. value: 'sc',
  25. label: '四川省',
  26. }]
  27. const fieldNamesOptions = [
  28. {
  29. labelT: '选项一',
  30. valueT: '1',
  31. },
  32. {
  33. labelT: '选项二',
  34. valueT: '2',
  35. },
  36. {
  37. labelT: '选项三',
  38. valueT: '3',
  39. disabledT: true,
  40. },
  41. ]
  42. ad({
  43. data: {
  44. fieldNames: {
  45. label: 'labelT',
  46. value: 'valueT',
  47. disabled: 'disabledT',
  48. },
  49. fieldNamesOptions,
  50. value1: ['320000', '320800', '320831'],
  51. value2: [],
  52. value3: [],
  53. value4: [],
  54. asyncCols: 1,
  55. asyncOptions: provinceLite,
  56. displayValue1: '请选择',
  57. displayValue2: '请选择',
  58. displayValue3: '请选择',
  59. displayValue4: '请选择',
  60. displayValue5: '请选择',
  61. options: [],
  62. seasons,
  63. },
  64. onLoad() {
  65. this.setData({ options: data })
  66. },
  67. setValue(values, key) {
  68. this.setData({
  69. [`value${key}`]: values.value,
  70. [`displayValue${key}`]: values.label,
  71. })
  72. },
  73. onConfirm(e) {
  74. const { index } = e.currentTarget.dataset
  75. this.setValue(e.detail, index)
  76. console.log(`onConfirm${index}`, e.detail)
  77. },
  78. onValueChange(e) {
  79. const { index } = e.currentTarget.dataset
  80. console.log(`onValueChange${index}`, e.detail)
  81. if (index === '4') {
  82. this.setValue(e.detail, index)
  83. this.setData({ loading: true })
  84. setTimeout(() => {
  85. const val = e.detail.value
  86. const d = [...this.data.asyncOptions]
  87. const value4 = [...val]
  88. let colNum = 1
  89. if (val[0] === 'zj') {
  90. d.forEach((i) => {
  91. if (i.value === 'zj') {
  92. colNum = 2
  93. if (!i.children) {
  94. i.children = [{
  95. value: 'zj-nb',
  96. label: '宁波',
  97. }, {
  98. value: 'zj-hz',
  99. label: '杭州',
  100. }]
  101. value4.push('zj-nb')
  102. } else if (val[1] === 'zj-hz') {
  103. i.children.forEach((j) => {
  104. if (j.value === 'zj-hz') {
  105. j.children = [{
  106. value: 'zj-hz-xh',
  107. label: '西湖区',
  108. }]
  109. value4.push('zj-hz-xh')
  110. }
  111. })
  112. colNum = 3
  113. }
  114. }
  115. })
  116. } else {
  117. colNum = 1
  118. }
  119. this.setData({ asyncOptions: d, asyncCols: colNum, value4, loading: false })
  120. }, 300)
  121. }
  122. },
  123. onVisibleChange(e) {
  124. this.setData({ visible: e.detail.visible })
  125. },
  126. onClick() {
  127. this.setData({ visible: true })
  128. },
  129. })