123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <template name="graceSpeaker">
- <view class="grace-swiper-msg">
- <view class="grace-swiper-msg-icon" :class="[iconClass]" :style="{color:iconColor}"></view>
- <swiper class="grace-swiper-msg-swiper"
- :vertical="vertical" @change="change" autoplay="true" circular="true" :interval="interval" :style="{height:height}">
- <swiper-item class="grace-swiper-item"
- v-for="(item, index) in msgs" :key="index" :style="{height:height}">
- <navigator class="grace-swiper-msg-navigator"
- :url="item.url" :open-type="item.opentype"
- :style="{fontSize:fontSize, fontWeight:fontWeight, color:fontColor, height:height, lineHeight:height}">{{item.title}}</navigator>
- </swiper-item>
- </swiper>
- </view>
- </template>
- <script>
- export default {
- name: "graceSpeaker",
- props: {
- msgs : {
- type : Array,
- default : function(){return [];}
- },
- iconClass : {
- type : String,
- default : ""
- },
- iconColor : {
- type : String,
- default : "#3688FF"
- },
- interval : {
- type : Number,
- default: 5000
- },
- vertical : {
- type : Boolean,
- default : true
- },
- fontSize : {
- type : String,
- default : "26rpx"
- },
- fontColor : {
- type : String,
- default : "#333333"
- },
- fontWeight : {
- type : String,
- default : ""
- },
- height:{
- type : String,
- default : "60rpx"
- }
- },
- methods:{
- change:function (index) {
- this.$emit('change', index.detail.current);
- }
- }
- }
- </script>
- <style scoped>
- .grace-swiper-msg{width:100%; display:flex; flex-wrap:nowrap; align-items:center;}
- .grace-swiper-msg-icon{margin-right:16rpx; display:inline-block; flex-shrink:0;}
- .grace-swiper-msg-swiper{width:100%; height:60rpx; overflow:hidden;}
- .grace-swiper-item{overflow:hidden;}
- .grace-swiper-msg-navigator{line-height:60rpx; overflow:hidden;}
- </style>
|