navbar.vue 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <template>
  2. <div>
  3. <!-- 组件名和描述 -->
  4. <nut-docheader
  5. :name="$route.name"
  6. :chName="$route.params.chnName"
  7. type="Component"
  8. :showQrCode="true"
  9. ></nut-docheader>
  10. <h5>示例</h5>
  11. <h6>基本用法</h6>
  12. <nut-codebox :code="demo1" imgUrl="../asset/img/demo/choose.png"></nut-codebox>
  13. <h6>事件</h6>
  14. <nut-codebox :code="demo2"></nut-codebox>
  15. <h5>Props</h5>
  16. <div class="tbl-wrapper">
  17. <table class="u-full-width">
  18. <thead>
  19. <tr>
  20. <th>参数</th>
  21. <th>说明</th>
  22. <th>类型</th>
  23. <th>默认值</th>
  24. <th>可选值</th>
  25. </tr>
  26. </thead>
  27. <tbody>
  28. <tr>
  29. <td>visibile</td>
  30. <td>打开和关闭选择弹层</td>
  31. <td>Boolean</td>
  32. <td>false</td>
  33. <td>true</td>
  34. </tr>
  35. <tr>
  36. <td>short</td>
  37. <td>短的面板还是长的面板</td>
  38. <td>Boolean</td>
  39. <td>false</td>
  40. <td>true</td>
  41. </tr>
  42. <tr>
  43. <td>loading</td>
  44. <td>是否还在异步加载数据中</td>
  45. <td>Boolean</td>
  46. <td>false</td>
  47. <td>true</td>
  48. </tr>
  49. <tr>
  50. <td>needCache</td>
  51. <td>弹层打开后再关闭是否需要缓存下来数据,以备下次打开使用</td>
  52. <td>Boolean</td>
  53. <td>false</td>
  54. <td>true</td>
  55. </tr>
  56. <tr>
  57. <td>title</td>
  58. <td>选择弹层标题</td>
  59. <td>String</td>
  60. <td>所在地区</td>
  61. <td>--</td>
  62. </tr>
  63. <tr>
  64. <td>onlyKey</td>
  65. <td>列表数据对象中,区分每条数据的key名,如'id'</td>
  66. <td>String</td>
  67. <td>id</td>
  68. <td>--</td>
  69. </tr>
  70. <tr>
  71. <td>contentKey</td>
  72. <td>列表数据对象中,用于显示到列表中的字段key名,如'name'</td>
  73. <td>String</td>
  74. <td>name</td>
  75. <td>--</td>
  76. </tr>
  77. <tr>
  78. <td>listData</td>
  79. <td>弹层列表数据</td>
  80. <td>Array</td>
  81. <td>[]</td>
  82. <td>--</td>
  83. </tr>
  84. </tbody>
  85. </table>
  86. </div>
  87. <h5>Events</h5>
  88. <div class="tbl-wrapper">
  89. <table class="u-full-width">
  90. <thead>
  91. <tr>
  92. <th>事件名</th>
  93. <th>说明</th>
  94. <th>回调参数</th>
  95. </tr>
  96. </thead>
  97. <tbody>
  98. <tr>
  99. <td>init-choose</td>
  100. <td>打开选择弹层时给列表初始化数据入口</td>
  101. <td>--</td>
  102. </tr>
  103. <tr>
  104. <td>close-choose</td>
  105. <td>关闭选择弹层时的回调</td>
  106. <td>--</td>
  107. </tr>
  108. <tr>
  109. <td>choose-item</td>
  110. <td>选择某一条选项时的回调</td>
  111. <td>item:当前选中的数据,index: 当前操作的所处层级</td>
  112. </tr>
  113. </tbody>
  114. </table>
  115. </div>
  116. </div>
  117. </template>
  118. <script>
  119. export default {
  120. data(){
  121. return{
  122. demo1:`<nut-choose
  123. :visibile="showChoose"
  124. :needCache="true"
  125. @init-choose="initChoose"
  126. @close-choose="closeChoose"
  127. @choose-item="closeItem"
  128. :listData="chooseData"></nut-choose> `,
  129. demo2: `export default {
  130. data(){
  131. return {
  132. showChoose: false,
  133. loading: false,
  134. chooseData: []
  135. }
  136. },
  137. methods:{
  138. initChoose() {
  139. this.chooseData = [{ 'name': '北京', 'id': 1 },
  140. { 'name': '上海', 'id': 2 },
  141. { 'name': '天津', 'id': 3 },
  142. { 'name': '重庆', 'id': 4 },
  143. { 'name': '河北', 'id': 5 },
  144. { 'name': '山西', 'id': 6 },
  145. { 'name': '河南', 'id': 7 },
  146. { 'name': '辽宁', 'id': 8 },
  147. { 'name': '吉林', 'id': 9 },
  148. { 'name': '黑龙江', 'id': 10 },
  149. { 'name': '内蒙古', 'id': 11 },
  150. { 'name': '江苏', 'id': 12 },
  151. { 'name': '山东', 'id': 13 },
  152. { 'name': '安徽', 'id': 14 },
  153. { 'name': '浙江', 'id': 15 },
  154. { 'name': '福建', 'id': 16 },
  155. { 'name': '湖北', 'id': 17 },
  156. { 'name': '湖南', 'id': 18 },
  157. { 'name': '广东', 'id': 19 },
  158. { 'name': '广西', 'id': 20 },
  159. { 'name': '江西', 'id': 21 },
  160. { 'name': '四川', 'id': 22 },
  161. { 'name': '海南', 'id': 23 },
  162. { 'name': '贵州', 'id': 24 },
  163. { 'name': '云南', 'id': 25 },
  164. { 'name': '西藏', 'id': 26 },
  165. { 'name': '陕西', 'id': 27 },
  166. { 'name': '甘肃', 'id': 28 },
  167. { 'name': '青海', 'id': 29 },
  168. { 'name': '宁夏', 'id': 30 },
  169. { 'name': '新疆', 'id': 31 },
  170. { 'name': '台湾', 'id': 32 }];
  171. },
  172. closeChoose() {
  173. this.showChoose = false;
  174. console.log('关闭了弹框');
  175. },
  176. closeItem(item,level) {
  177. console.log('当前选中的数据:');
  178. console.log(item);
  179. let self = this;
  180. if(level == 1) {
  181. self.chooseData = [
  182. {
  183. "id": 2816,
  184. "name": "密云区"
  185. },
  186. {
  187. "id": 72,
  188. "name": "朝阳区"
  189. }
  190. ];
  191. }
  192. if(level == 2) {
  193. self.closeChoose();
  194. }
  195. }
  196. }
  197. }`
  198. }
  199. },
  200. methods:{
  201. }
  202. }
  203. </script>
  204. <style lang="scss">
  205. </style>