index.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <template>
  2. <view class="u-demo">
  3. <view class="u-demo-wrap" style="background-color: #ffffff;">
  4. <view class="u-demo-title">演示效果</view>
  5. <view class="u-demo-area">
  6. <u-toast ref="uToast"></u-toast>
  7. <u-collapse v-if="key" :item-style="itemStyle" event-type="close" :arrow="arrow" :accordion="accordion" @change="change">
  8. <u-collapse-item :index="index" @change="itemChange" :title="item.head" v-for="(item, index) in itemList" :key="index">
  9. {{item.body}}
  10. </u-collapse-item>
  11. </u-collapse>
  12. </view>
  13. </view>
  14. <view class="u-config-wrap">
  15. <view class="u-config-title u-border-bottom">
  16. 参数配置
  17. </view>
  18. <view class="u-config-item">
  19. <view class="u-item-title">手风琴模式</view>
  20. <u-subsection :list="['是', '否']" @change="accordionChange"></u-subsection>
  21. </view>
  22. <view class="u-config-item">
  23. <view class="u-item-title">右侧箭头</view>
  24. <u-subsection :list="['显示', '隐藏']" @change="arrowChange"></u-subsection>
  25. </view>
  26. <view class="u-config-item">
  27. <view class="u-item-title">自定义样式</view>
  28. <u-subsection current="1" :list="['是', '否']" @change="styleChange"></u-subsection>
  29. </view>
  30. </view>
  31. </view>
  32. </template>
  33. <script>
  34. export default {
  35. data() {
  36. return {
  37. itemList: [{
  38. head: "赏识在于角度的转换",
  39. body: "只要我们正确择取一个合适的参照物乃至稍降一格去看待他人,值得赏识的东西便会扑面而来:闪光的道德、妙异的智慧、优美的人情…… 赏识不是单向的施舍,是智慧与智慧的主动碰撞",
  40. show: false,
  41. }, {
  42. head: "生活中不是缺少美,而是缺少发现美的眼睛",
  43. body: "学会欣赏,实际是一种积极生活的态度,是生活的调味品,会在欣赏中发现生活的美",
  44. show: false,
  45. }, {
  46. head: "周围一些不起眼的人、事、物,或许都隐藏着不同凡响的智慧",
  47. body: "但是据说雕刻大卫像所用的这块大理石,曾被多位雕刻家批评得一无是处,有些人认为这块大理石采凿得不好,有些人嫌它的纹路不够美,用它绝对雕不出好的艺术品,总之它被批评为一块不受人赏识的普通石头",
  48. show: false,
  49. }, {
  50. head: "点燃心中的火焰,找回了自信和人生的价值",
  51. body: "他随手翻了几页,竟被一篇题名为《童年》的小说所吸引,作者是一个初出茅庐的无名小辈,但屠格涅夫却十分欣赏,钟爱有加",
  52. show: false,
  53. }, {
  54. head: "因为赏识,那块被人不耻的石头变成了雕塑",
  55. body: "这个材料反应的就是赏识的问题,赏识是一种理解和信任,包含了肯定与欣赏,也是一种激励和引导,可以使人悔过自新,扬长避短,更健康地成长和进步",
  56. show: false,
  57. }],
  58. accordion: true,
  59. arrow: true,
  60. hoverClass: 'hover2',
  61. itemStyle: {},
  62. key: true
  63. }
  64. },
  65. methods: {
  66. accordionChange(index) {
  67. this.accordion = index == 0 ? true : false;
  68. },
  69. arrowChange(index) {
  70. this.arrow = index == 0 ? true : false;
  71. this.changeStatus();
  72. },
  73. styleChange(index) {
  74. if(index == 0) {
  75. this.itemStyle = {
  76. border: '1px solid rgb(230, 230, 230)',
  77. marginTop: '20px',
  78. padding: '0 8rpx'
  79. }
  80. } else {
  81. this.itemStyle = {}
  82. }
  83. this.changeStatus();
  84. },
  85. change(index) {
  86. let str = '';
  87. if(Array.isArray(index)) {
  88. let arr = index.map(val => {
  89. return Number(val) + 1;
  90. })
  91. index = arr.join(',');
  92. } else {
  93. index = Number(index) + 1;
  94. }
  95. this.$refs.uToast.show({
  96. title: `点击了第${index}个`,
  97. type: 'warning'
  98. })
  99. },
  100. itemChange(e) {
  101. console.log(e);
  102. },
  103. changeStatus() {
  104. this.key = false;
  105. this.$nextTick(function(){
  106. this.key = true;
  107. })
  108. }
  109. }
  110. }
  111. </script>
  112. <style>
  113. .hover1 {
  114. background-color: red;
  115. }
  116. </style>
  117. <style lang="scss" scoped>
  118. .wrap {
  119. // padding: 24rpx;
  120. }
  121. .item {
  122. //padding: 0 24rpx;
  123. }
  124. .head {
  125. font-size: 30rpx;
  126. color: $u-main-color;
  127. line-height: 1;
  128. padding: 24rpx 24rpx;
  129. }
  130. .body {
  131. font-size: 28rpx;
  132. color: $u-tips-color;
  133. line-height: 1.4;
  134. padding: 24rpx;
  135. }
  136. </style>