当前位置:   article > 正文

vue中使用el-select选择器组件,基础组件用法和多选组件搭配使用

el-select

需求:使用下拉菜单,选中单选内容,多选下拉菜单显示对应的数据

这里单选下拉菜单的内容和多选下拉菜单的内容都是前端写好的,我们只需要传递选中的内容传递给后端即可

实现效果:

首先了解基础的下拉菜单组件

value:一般传递给后端的信息

label:页面展示的内容

selectMethod:每次下拉选中内容发生改变后触发的事件

  1. <!-- 单选选择器 -->
  2. <el-select
  3. v-model="value"
  4. placeholder="请选择"
  5. size="mini"
  6. @change="selectMethod"
  7. >
  8. <el-option
  9. v-for="(item, index) in options"
  10. :key="index"
  11. :label="item"
  12. :value="item"
  13. >
  14. </el-option>
  15. </el-select>

 多选下拉组件同理

业务代码实现如下,注释很详细

  1. <template>
  2. <div>
  3. <!-- 单选选择器 -->
  4. <el-select
  5. v-model="value"
  6. placeholder="请选择"
  7. size="mini"
  8. @change="selectMethod"
  9. >
  10. <el-option
  11. v-for="(item, index) in options"
  12. :key="index"
  13. :label="item"
  14. :value="item"
  15. >
  16. </el-option>
  17. </el-select>
  18. <!-- 多选选择器 -->
  19. <el-select
  20. v-model="value2"
  21. multiple
  22. collapse-tags
  23. style="margin-left: 20px"
  24. size="mini"
  25. placeholder="请选择"
  26. >
  27. <el-option
  28. v-for="item in option2"
  29. :key="item.value"
  30. :label="item.label"
  31. :value="item.value"
  32. >
  33. </el-option>
  34. </el-select>
  35. <el-button size="mini" type="primary" @click="shuChu()">搜索</el-button>
  36. <div>多选框选中的值:{{ value2 }}</div>
  37. </div>
  38. </template>
  39. <script>
  40. export default {
  41. data() {
  42. return {
  43. // 第一个选择器
  44. options: [
  45. '负荷',
  46. '电流',
  47. '电压',
  48. '功率因数',
  49. '无功功率',
  50. '谐波电流',
  51. '谐波电压',
  52. '电压偏差',
  53. '三相不平衡',
  54. ],
  55. value: '',
  56. // 第二个选择器
  57. option2: [],
  58. //根据第一个选择器选择的内容来决定第二个选择器的内容
  59. brandObj: {
  60. 负荷: [
  61. {
  62. value: 'fuhe',
  63. label: '总负荷',
  64. },
  65. ],
  66. 电流: [
  67. {
  68. value: 'dianliu_A',
  69. label: 'A相',
  70. },
  71. {
  72. value: 'dianliu_B',
  73. label: 'B相',
  74. },
  75. {
  76. value: 'dianliu_C',
  77. label: 'C相',
  78. },
  79. ],
  80. 电压: [
  81. {
  82. value: 'dianya_Uab',
  83. label: 'Uab',
  84. },
  85. {
  86. value: 'dianya_Ubc',
  87. label: 'Ubc',
  88. },
  89. {
  90. value: 'dianya_Uca',
  91. label: 'Uca',
  92. },
  93. ],
  94. 功率因数: [
  95. {
  96. value: 'gonglvYinsu',
  97. label: '总功率因素',
  98. },
  99. ],
  100. 无功功率: [
  101. {
  102. value: 'wugonggonglv',
  103. label: '总无功功率',
  104. },
  105. ],
  106. 谐波电流: [
  107. {
  108. value: 'xiebodianliu_A',
  109. label: 'A相',
  110. },
  111. {
  112. value: 'xiebodianliu_B',
  113. label: 'B相',
  114. },
  115. {
  116. value: 'xiebodianliu_C',
  117. label: 'C相',
  118. },
  119. ],
  120. 谐波电压: [
  121. {
  122. value: 'xiebodianya_A',
  123. label: 'A相',
  124. },
  125. {
  126. value: 'xiebodianya_B',
  127. label: 'B相',
  128. },
  129. {
  130. value: 'xiebodianya_C',
  131. label: 'C相',
  132. },
  133. ],
  134. 电压偏差: [
  135. {
  136. value: 'dianyaPiancha_Uab',
  137. label: 'Uab',
  138. },
  139. {
  140. value: 'dianyaPiancha_Ubc',
  141. label: 'Ubc',
  142. },
  143. {
  144. value: 'dianyaPiancha_Uca',
  145. label: 'Uca',
  146. },
  147. ],
  148. 三相不平衡: [
  149. {
  150. value: 'sanxiangBuPingHeng',
  151. label: '电压',
  152. },
  153. ],
  154. },
  155. value2: [], //多选选择器选择的内容是数组
  156. }
  157. },
  158. watch: {},
  159. mounted() {
  160. this.value = '电流'
  161. this.option2 = [
  162. {
  163. value: 'dianliu_A',
  164. label: 'A相',
  165. },
  166. {
  167. value: 'dianliu_B',
  168. label: 'B相',
  169. },
  170. {
  171. value: 'dianliu_C',
  172. label: 'C相',
  173. },
  174. ]
  175. this.value2 = ['dianliu_A']
  176. },
  177. methods: {
  178. shuChu() {
  179. console.log(this.value, 'value2', this.value2)
  180. },
  181. // 首次加载页面 默认选中第一个选项 以及选中对应的多选内容
  182. selectMethod() {
  183. this.value2 = ''
  184. this.option2 = this.brandObj[this.value]
  185. console.log('改变了', this.value)
  186. },
  187. },
  188. }
  189. </script>
  190. <style lang="scss" scoped></style>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/114766
推荐阅读