graceBoxBanner.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <view class="grace-box-banner" :style="{background:background, paddingTop:padding, paddingBottom:padding, borderRadius:borderRadius}">
  3. <view class="grace-box-items" v-for="(item, index) in items" :key="index" @tap.stop="taped(index)"
  4. :style="{borderRight : index+1 >= items.length ? '0rpx' : border[0]+' '+border[1]+' '+border[2]}">
  5. <view class="grace-box-banner-line" :style="{lineHeight:lineHeight}">
  6. <text class="grace-box-banner-line-text1" :style="{color:color[0],fontSize:fontSize[0]}">{{item[0]}}</text>
  7. <text class="grace-box-banner-line-text2" :style="{color:color[1],fontSize:fontSize[1]}">{{item[1]}}</text></view>
  8. <view class="grace-box-banner-line">
  9. <text :style="{color:color[2],fontSize:fontSize[2]}">{{item[2]}}</text>
  10. </view>
  11. </view>
  12. </view>
  13. </template>
  14. <script>
  15. export default {
  16. props: {
  17. items:{
  18. type : Array,
  19. default : function () {
  20. return []
  21. }
  22. },
  23. color:{
  24. type : Array,
  25. default : function () {
  26. return ['#333333', '#999999', '#999999']
  27. }
  28. },
  29. fontSize:{
  30. type : Array,
  31. default : function () {
  32. return ['36rpx', '24rpx', '24rpx']
  33. }
  34. },
  35. background : {
  36. type : String,
  37. default : ''
  38. },
  39. padding:{
  40. type : String,
  41. default : '25rpx'
  42. },
  43. border:{
  44. type:Array,
  45. default:function () {return ["none","",""];}
  46. },
  47. borderRadius:{
  48. type : String,
  49. default : '10rpx'
  50. },
  51. lineHeight:{
  52. type : String,
  53. default : '1.5em'
  54. }
  55. },
  56. methods:{
  57. taped:function (index) {
  58. this.$emit('taped', index);
  59. }
  60. }
  61. }
  62. </script>
  63. <style scoped>
  64. .grace-box-banner{padding:26rpx 0; display:flex; flex-wrap:nowrap; overflow:hidden;}
  65. .grace-box-items{width:100%;}
  66. .grace-box-banner-line{overflow:hidden; display:flex; width:100%; justify-content:center; align-items:center; line-height:1.5em; padding-top:8rpx;}
  67. .grace-box-banner-line-text1{}
  68. .grace-box-banner-line-text2{margin-left:3px;}
  69. </style>