x-checkbox.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <view class="checkbox-container">
  3. <view class="checkbox" :class="{'checkbox-checked': isChecked}">
  4. <!-- 复选框内部可以放一个小图标或者其他装饰 -->
  5. <text v-if="isChecked" class="checkbox-icon">
  6. <u-icon name="checkbox-mark" color="#fff"></u-icon>
  7. </text>
  8. </view>
  9. <text class="check_title">{{ label }}</text>
  10. </view>
  11. </template>
  12. <script>
  13. export default {
  14. props: {
  15. label: String, // 复选框旁边的文本
  16. isChecked: Boolean, // 复选框旁边的文本
  17. },
  18. data() {
  19. return {};
  20. },
  21. methods: {
  22. toggleCheck() {
  23. // this.isChecked = !this.isChecked;
  24. // 触发自定义事件,可以在父组件中监听该事件
  25. // this.$emit('change', this.isChecked);
  26. },
  27. },
  28. };
  29. </script>
  30. <style scoped>
  31. .checkbox-container {
  32. display: flex;
  33. align-items: center;
  34. }
  35. .checkbox {
  36. width: 35rpx;
  37. height: 35rpx;
  38. border: 1rpx solid #ccc;
  39. display: flex;
  40. align-items: center;
  41. justify-content: center;
  42. margin-right: 10rpx;
  43. border-radius: 8rpx;
  44. user-select: none;
  45. cursor: pointer;
  46. }
  47. .check_title {
  48. margin-left: 5rpx;
  49. font-size: 32rpx;
  50. font-weight: 600;
  51. }
  52. .checkbox-checked {
  53. border-color: #2979ff;
  54. background-color: #2979ff;
  55. }
  56. .checkbox-icon {
  57. color: #fff;
  58. font-size: 24rpx;
  59. }
  60. </style>