dropdown.vue 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <template>
  2. <div>
  3. <nut-docheader
  4. :name="$route.name"
  5. :showQrCode="true"></nut-docheader>
  6. <h5>示例</h5>
  7. <h6>通用数据代码和回调示例</h6>
  8. <nut-codebox :code="code"></nut-codebox>
  9. <h6>示例1: 单选、简单数组</h6>
  10. <nut-dropdown :options="options" @selectedChange='multipleSelected'></nut-dropdown>
  11. <nut-codebox :code="demo1"></nut-codebox>
  12. <h6>示例2: 单选、简单数组、设置默认值</h6>
  13. <nut-dropdown :options="options" @selectedChange='multipleSelected' defaultSelected='二'></nut-dropdown>
  14. <nut-codebox :code="demo2"></nut-codebox>
  15. <h6>示例3: 多选、简单数组</h6>
  16. <nut-dropdown :options="options" multiple @selectedChange='selectedChange'></nut-dropdown>
  17. <nut-codebox :code="demo3"></nut-codebox>
  18. <h6>示例4: 多选、简单数组、设置默认值</h6>
  19. <nut-dropdown :options="options" multiple @selectedChange='selectedChange' :defaultSelected="['一','二']"></nut-dropdown>
  20. <nut-codebox :code="demo4"></nut-codebox>
  21. <h6>示例5: 单选、复杂对象数组、自定义展示字段</h6>
  22. <nut-dropdown :options="options2" @selectedChange='selectedChange' optionKey='name'></nut-dropdown>
  23. <nut-codebox :code="demo5"></nut-codebox>
  24. <h6>示例6: 多选、复杂对象数组、自定义展示字段</h6>
  25. <nut-dropdown :options="options2" multiple @selectedChange='selectedChange' optionKey='name'></nut-dropdown>
  26. <nut-codebox :code="demo6"></nut-codebox>
  27. <h6>示例7: 单选、复杂对象数组、自定义展示字段、设置默认值</h6>
  28. <nut-dropdown :options="options2" @selectedChange='selectedChange' optionKey='name' :defaultSelected="{name: '李四', id: 2}"></nut-dropdown>
  29. <nut-codebox :code="demo7"></nut-codebox>
  30. <h6>示例8: 多选、复杂对象数组、自定义展示字段、设置默认值</h6>
  31. <nut-dropdown :options="options2" multiple @selectedChange='selectedChange' optionKey='name' :defaultSelected="[{name: '李四', id: 2}]"></nut-dropdown>
  32. <nut-codebox :code="demo8"></nut-codebox>
  33. <h6>示例9: 多选、复杂对象数组、自定义展示字段、支持搜索</h6>
  34. <nut-dropdown :options="options2" multiple @selectedChange='selectedChange' optionKey='name' search></nut-dropdown>
  35. <nut-codebox :code="demo9"></nut-codebox>
  36. <h6>示例10: 单选、简单数组、支持搜索</h6>
  37. <nut-dropdown :options="options" @selectedChange='selectedChange' search></nut-dropdown>
  38. <nut-codebox :code="demo10"></nut-codebox>
  39. <h5>Props</h5>
  40. <div class="tbl-wrapper">
  41. <table class="u-full-width">
  42. <thead>
  43. <tr>
  44. <th>参数</th>
  45. <th>说明</th>
  46. <th>类型</th>
  47. <th>默认值</th>
  48. <th>是否必传</th>
  49. </tr>
  50. </thead>
  51. <tbody>
  52. <tr>
  53. <td>defaultSelected</td>
  54. <td>默认选中得值,单选传入单个得数据项,多选传入数组</td>
  55. <td>any</td>
  56. <td>--</td>
  57. <td>否</td>
  58. </tr>
  59. <tr>
  60. <td>options</td>
  61. <td>下拉项options数组,可以是简单数组,也可以是复杂对象数组</td>
  62. <td>Array</td>
  63. <td>--</td>
  64. <td>是</td>
  65. </tr>
  66. <tr>
  67. <td>optionKey</td>
  68. <td>当options参数是复杂对象数组的时候,传入option展示的字段名</td>
  69. <td>String</td>
  70. <td>--</td>
  71. <td>当options参数是复杂对象数组的时,必须</td>
  72. </tr>
  73. <tr>
  74. <td>multiple</td>
  75. <td>是否支持多选</td>
  76. <td>Boolean</td>
  77. <td>false</td>
  78. <td>true/false</td>
  79. </tr>
  80. <tr>
  81. <td>search</td>
  82. <td>是否启用组件的搜索过滤选项功能</td>
  83. <td>Boolean</td>
  84. <td>false</td>
  85. <td>true/false</td>
  86. </tr>
  87. </tbody>
  88. </table>
  89. </div>
  90. <h5>Events</h5>
  91. <div class="tbl-wrapper">
  92. <table class="u-full-width">
  93. <thead>
  94. <tr>
  95. <th>事件名</th>
  96. <th>说明</th>
  97. <th>回调参数</th>
  98. </tr>
  99. </thead>
  100. <tbody>
  101. <tr>
  102. <td>selectedChange</td>
  103. <td>当选中的option发生改变的时候触发</td>
  104. <td>被选中的option值,多选的时候返回选中项组成的数组</td>
  105. </tr>
  106. </tbody>
  107. </table>
  108. </div>
  109. </div>
  110. </template>
  111. <script>
  112. export default {
  113. data() {
  114. return {
  115. options: ['一','二','三','四'],
  116. options2: [{name: '张三', id: 1}, {name: '李四', id: 2}, {name: '王五', id: 3}, {name: '马六', id: 4}, {name: '王八蛋', id: 5}],
  117. code: `
  118. export default {
  119. data() {
  120. retuen {
  121. options: ['一','二','三','四'],
  122. options2: [{name: '张三', id: 1}, {name: '李四', id: 2}, {name: '王五', id: 3}, {name: '马六', id: 4}, {name: '王八蛋', id: 5}],
  123. }
  124. },
  125. methods: {
  126. selectedChange(option) {
  127. console.log(option)
  128. },
  129. }
  130. }
  131. `,
  132. demo1: `<nut-dropdown :options="options" @selectedChange='multipleSelected'></nut-dropdown>`,
  133. demo2: `<nut-dropdown :options="options" @selectedChange='selectedChange' defaultSelected='二'></nut-dropdown>`,
  134. demo3: `<nut-dropdown :options="options" multiple @selectedChange='selectedChange'></nut-dropdown>`,
  135. demo4: `<nut-dropdown :options="options" multiple @selectedChange='selectedChange' :defaultSelected="['一','二']"></nut-dropdown>`,
  136. demo5: `<nut-dropdown :options="options2" @selectedChange='selectedChange' optionKey='name' ></nut-dropdown>`,
  137. demo6: `<nut-dropdown :options="options2" multiple @selectedChange='selectedChange' optionKey='name'></nut-dropdown>`,
  138. demo7: `<nut-dropdown :options="options2" @selectedChange='selectedChange' optionKey='name' :defaultSelected="{name: '李四', id: 2}"></nut-dropdown>`,
  139. demo8: `<nut-dropdown :options="options2" multiple @selectedChange='selectedChange' optionKey='name' :defaultSelected="[{name: '李四', id: 2}]"></nut-dropdown>`,
  140. demo9: `<nut-dropdown :options="options2" multiple @selectedChange='selectedChange' optionKey='name' search></nut-dropdown>`,
  141. demo10: `<nut-dropdown :options="options" @selectedChange='selectedChange' search></nut-dropdown>`
  142. };
  143. },
  144. mounted(){
  145. },
  146. methods: {
  147. selectedChange(option) {
  148. console.log(option)
  149. },
  150. multipleSelected(options) {
  151. console.log(options)
  152. }
  153. }
  154. };
  155. </script>
  156. <style lang="scss">
  157. </style>