CustomCollapse.vue 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <view class="custom-collapse">
  3. <uni-collapse v-model="collapseModel">
  4. <uni-collapse-item name="item" :title="collapseTitle" thumb="/static/images/components/collapse/title-thumb.png">
  5. <template v-if="!collapseTitle" v-slot:title>
  6. <slot name="collapseTitle"></slot>
  7. </template>
  8. <view class="content">
  9. <slot name="collapseContent"></slot>
  10. </view>
  11. </uni-collapse-item>
  12. </uni-collapse>
  13. </view>
  14. </template>
  15. <script>
  16. import { defineComponent, ref } from 'vue';
  17. const props = {
  18. title: {
  19. type: String,
  20. default: ''
  21. }
  22. }
  23. export default defineComponent({
  24. props,
  25. options: {
  26. styleIsolation: 'shared'
  27. },
  28. setup(props){
  29. const collapseModel = ['item']
  30. const collapseTitle = ref(props.title)
  31. return {
  32. collapseModel,
  33. collapseTitle
  34. }
  35. }
  36. })
  37. </script>
  38. <style lang="scss" scoped>
  39. .custom-collapse {
  40. ::v-deep .uni-collapse-item__title-img {
  41. width: 12rpx;
  42. }
  43. ::v-deep .uni-collapse-item__title-text{
  44. font-family: 思源黑体;
  45. font-size: 32rpx;
  46. color: #000000;
  47. }
  48. }
  49. </style>