123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <template name="graceSpeaker">
- <view class="grace-swiper-msg">
- <view class="grace-swiper-msg-icon"><slot></slot></view>
- <swiper :vertical="vertical" autoplay="true" circular="true" @change="change"
- :interval="interval" class="grace-swiper-msg-swiper" :style="{height:height}">
- <swiper-item v-for="(item, index) in msgs" :key="index" class="grace-swiper-msg-swiper-item" :style="{height:height}">
- <text @tap="navto"
- :data-url="item.url" :data-opentype="item.opentype" class="grace-swiper-msg-text"
- :style="{fontSize:fontSize, color:fontColor, height:height, lineHeight:height, fontWeight:fontWeight}">{{item.title}}</text>
- </swiper-item>
- </swiper>
- </view>
- </template>
- <script>
- export default {
- name: "graceSpeaker",
- props: {
- msgs : {
- type : Array,
- default : function(){return [];}
- },
- 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"
- },
- fontWeight : {
- type : String,
- default : ""
- }
- },
- methods:{
- navto : function (e) {
- var url = e.currentTarget.dataset.url;
- var type = e.currentTarget.dataset.opentype;
- switch (type){
- case 'switchTab':
- uni.switchTab({
- url:url
- });
- break;
- case 'navigate':
- uni.navigateTo({
- url:url
- });
- break;
- case 'redirect':
- uni.redirectTo({
- url:url
- });
- break;
- default:
- break;
- }
- },
- change:function (index) {
- this.$emit('change', index.detail.current);
- }
- }
- }
- </script>
- <style scoped>
- .grace-swiper-msg{flex-wrap:nowrap; flex-direction:row; align-items:center;}
- .grace-swiper-msg-icon{margin-right:16rpx;}
- .grace-swiper-msg-swiper{width:750rpx; flex:1; height:60rpx; overflow:hidden;}
- .grace-swiper-msg-swiper-item{line-height:60rpx; height:60rpx; overflow:hidden;}
- .grace-swiper-msg-text{line-height:60rpx; height:60rpx; overflow:hidden; font-size:28rpx;}
- </style>
|