• el-checkbox-group限制勾选数量


     

    1. <template>
    2. <div class="videoSurveillance">
    3. <el-row :gutter="24">
    4. <el-col :span="4">
    5. <div class="videoSurveillance-left">
    6. <div class="videoSurveillance-left-header">视频监控div>
    7. <div class="videoSurveillance-left-check">
    8. <el-checkbox-group
    9. v-model="checkedArr"
    10. @change="handleCheckedChange"
    11. >
    12. <el-checkbox
    13. v-for="(item, index) in sourceArr"
    14. :label="item.name"
    15. :key="index"
    16. >
    17. <el-tooltip
    18. overflow
    19. class="item"
    20. effect="dark"
    21. :content="item.name"
    22. placement="right"
    23. >
    24. <div class="check-name">
    25. {{ item.name }}
    26. div>
    27. el-tooltip>
    28. el-checkbox>
    29. el-checkbox-group>
    30. div>
    31. div>
    32. el-col>
    33. <el-col :span="20">
    34. <div class="videoSurveillance-right">
    35. <div class="sourceBox">div>
    36. div>
    37. el-col>
    38. el-row>
    39. div>
    40. template>
    41. <script>
    42. export default {
    43. name: "videoSurveillance",
    44. components: {},
    45. props: {},
    46. data() {
    47. return {
    48. sourceArr: [
    49. {
    50. name: "视频监控1",
    51. source: "",
    52. },
    53. {
    54. name: "视频监控2",
    55. source: "",
    56. },
    57. {
    58. name: "视频监控3",
    59. source: "",
    60. },
    61. {
    62. name: "视频监控4",
    63. source: "",
    64. },
    65. {
    66. name: "视频监控5",
    67. source: "",
    68. },
    69. {
    70. name: "视频监控6",
    71. source: "",
    72. },
    73. {
    74. name: "视频监控7",
    75. source: "",
    76. },
    77. {
    78. name: "视频监控8",
    79. source: "",
    80. },
    81. {
    82. name: "视频监控9",
    83. source: "",
    84. },
    85. {
    86. name: "视频监控10",
    87. source: "",
    88. },
    89. ],
    90. checkedArr: [],
    91. maxChecked: 7,
    92. };
    93. },
    94. methods: {
    95. handleCheckedChange(e) {
    96. if (e.length > this.maxChecked) {
    97. this.$message.warning(`最多只能选择${this.maxChecked - 1}个视频监控`);
    98. this.checkedArr = e.slice(e.length - this.maxChecked);
    99. }
    100. if (e.length === this.maxChecked && this.checkedArr.length === this.maxChecked) {
    101. this.$nextTick(() => {
    102. this.checkedArr = e.filter(item => item !== this.checkedArr[0]);
    103. });
    104. }
    105. },
    106. },
    107. created() {},
    108. mounted() {},
    109. };
    110. script>
    111. <style lang="scss" scoped>
    112. .videoSurveillance {
    113. background-color: #e9e9eb;
    114. width: 100%;
    115. &-left,
    116. &-right {
    117. height: calc(100vh - 132px - 2 * 20px) !important;
    118. background: #ffffff;
    119. border-radius: 4px;
    120. }
    121. &-left {
    122. box-shadow: 0 4px 10px 0 #dddddd;
    123. &-header {
    124. height: 30px;
    125. background: #1492ff;
    126. border-radius: 4px 4px 0 0;
    127. font-size: 14px;
    128. font-family: MicrosoftYaHei-Bold, MicrosoftYaHei;
    129. font-weight: bold;
    130. color: #ffffff;
    131. line-height: 30px;
    132. letter-spacing: 1px;
    133. text-align: center;
    134. }
    135. &-check {
    136. height: calc(100% - 30px);
    137. padding: 10px 24px 20px;
    138. /*overflow-y: auto;*/
    139. .check-name {
    140. width: 190px;
    141. white-space: nowrap;
    142. overflow: hidden;
    143. text-overflow: ellipsis;
    144. }
    145. }
    146. }
    147. &-right {
    148. .sourceBox {
    149. }
    150. }
    151. }
    152. ::v-deep .el-checkbox-group {
    153. display: flex;
    154. flex-direction: column;
    155. }
    156. ::v-deep .el-checkbox {
    157. margin-top: 8px;
    158. display: flex;
    159. }
    160. style>

  • 相关阅读:
    华为---PPP协议简介及示例配置
    挑战100天 AI In LeetCode Day01(1)
    搭建开源元数据平台DataHub
    【C++】函数对象(仿函数)、谓词
    synchronized原理、流程、异常处理
    计算机毕业设计之旅游分享网站
    楼层(冬季每日一题 22)
    强化记忆的七种武器
    Springboot莱昂纳多作品集推荐系统jcpqz计算机毕业设计-课程设计-期末作业-毕设程序代做
    塔防海岸线用户协议
  • 原文地址:https://blog.csdn.net/m0_74149462/article/details/132837132