11 changed files with 570 additions and 525 deletions
-
6manifest.json
-
5pages/business/order/list.vue
-
98pages/index/activity/confirm.vue
-
12pages/index/index/index.vue
-
2pages/index/onlineMall/onlineMall.vue
-
407pages/order/cashier/cashier.vue
-
72pages/order/confirm/confirm.vue
-
79pages/order/pointconfirm/confirm.vue
-
2pages/user/my/center.vue
-
410uview-ui/components/u-column-notice/u-column-notice.vue
-
2uview-ui/components/u-notice-bar/u-notice-bar.vue
@ -1,237 +1,235 @@ |
|||
<template> |
|||
<view |
|||
class="u-notice-bar" |
|||
:style="{ |
|||
<view class="u-notice-bar" :style="{ |
|||
background: computeBgColor, |
|||
padding: padding |
|||
}" |
|||
:class="[ |
|||
}" :class="[ |
|||
type ? `u-type-${type}-light-bg` : '' |
|||
]" |
|||
> |
|||
]"> |
|||
<view class="u-icon-wrap"> |
|||
<u-icon class="u-left-icon" v-if="volumeIcon" name="volume-fill" :size="volumeSize" :color="computeColor"></u-icon> |
|||
<u-icon class="u-left-icon" v-if="volumeIcon" name="volume-fill" :size="volumeSize" :color="computeColor"> |
|||
</u-icon> |
|||
</view> |
|||
<swiper :disable-touch="disableTouch" @change="change" :autoplay="autoplay && playState == 'play'" :vertical="vertical" circular :interval="duration" class="u-swiper"> |
|||
<swiper :disable-touch="disableTouch" @change="change" :autoplay="autoplay && playState == 'play'" |
|||
:vertical="vertical" circular :interval="duration" class="u-swiper"> |
|||
<swiper-item v-for="(item, index) in list" :key="index" class="u-swiper-item"> |
|||
<view |
|||
class="u-news-item u-line-1" |
|||
:style="[textStyle]" |
|||
@tap="click(index)" |
|||
:class="['u-type-' + type]" |
|||
> |
|||
{{ item }} |
|||
<view class="u-news-item u-line-1" :style="[textStyle]" @tap="click(index,item)" |
|||
:class="['u-type-' + type]"> |
|||
{{ item.associate.title }} |
|||
</view> |
|||
</swiper-item> |
|||
</swiper> |
|||
<view class="u-icon-wrap"> |
|||
<u-icon @click="getMore" class="u-right-icon" v-if="moreIcon" name="arrow-right" :size="26" :color="computeColor"></u-icon> |
|||
<u-icon @click="close" class="u-right-icon" v-if="closeIcon" name="close" :size="24" :color="computeColor"></u-icon> |
|||
<u-icon @click="getMore" class="u-right-icon" v-if="moreIcon" name="arrow-right" :size="26" |
|||
:color="computeColor"></u-icon> |
|||
<u-icon @click="close" class="u-right-icon" v-if="closeIcon" name="close" :size="24" :color="computeColor"> |
|||
</u-icon> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
props: { |
|||
// 显示的内容,数组 |
|||
list: { |
|||
type: Array, |
|||
default() { |
|||
return []; |
|||
export default { |
|||
props: { |
|||
// 显示的内容,数组 |
|||
list: { |
|||
type: Array, |
|||
default () { |
|||
return []; |
|||
} |
|||
}, |
|||
// 显示的主题,success|error|primary|info|warning |
|||
type: { |
|||
type: String, |
|||
default: 'warning' |
|||
}, |
|||
// 是否显示左侧的音量图标 |
|||
volumeIcon: { |
|||
type: Boolean, |
|||
default: true |
|||
}, |
|||
// 是否显示右侧的右箭头图标 |
|||
moreIcon: { |
|||
type: Boolean, |
|||
default: false |
|||
}, |
|||
// 是否显示右侧的关闭图标 |
|||
closeIcon: { |
|||
type: Boolean, |
|||
default: false |
|||
}, |
|||
// 是否自动播放 |
|||
autoplay: { |
|||
type: Boolean, |
|||
default: true |
|||
}, |
|||
// 文字颜色,各图标也会使用文字颜色 |
|||
color: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
// 背景颜色 |
|||
bgColor: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
// 滚动方向,row-水平滚动,column-垂直滚动 |
|||
direction: { |
|||
type: String, |
|||
default: 'row' |
|||
}, |
|||
// 是否显示 |
|||
show: { |
|||
type: Boolean, |
|||
default: true |
|||
}, |
|||
// 字体大小,单位rpx |
|||
fontSize: { |
|||
type: [Number, String], |
|||
default: 26 |
|||
}, |
|||
// 滚动一个周期的时间长,单位ms |
|||
duration: { |
|||
type: [Number, String], |
|||
default: 2000 |
|||
}, |
|||
// 音量喇叭的大小 |
|||
volumeSize: { |
|||
type: [Number, String], |
|||
default: 34 |
|||
}, |
|||
// 水平滚动时的滚动速度,即每秒滚动多少rpx,这有利于控制文字无论多少时,都能有一个恒定的速度 |
|||
speed: { |
|||
type: Number, |
|||
default: 160 |
|||
}, |
|||
// 水平滚动时,是否采用衔接形式滚动 |
|||
isCircular: { |
|||
type: Boolean, |
|||
default: true |
|||
}, |
|||
// 滚动方向,horizontal-水平滚动,vertical-垂直滚动 |
|||
mode: { |
|||
type: String, |
|||
default: 'horizontal' |
|||
}, |
|||
// 播放状态,play-播放,paused-暂停 |
|||
playState: { |
|||
type: String, |
|||
default: 'play' |
|||
}, |
|||
// 是否禁止用手滑动切换 |
|||
// 目前HX2.6.11,只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序 |
|||
disableTouch: { |
|||
type: Boolean, |
|||
default: true |
|||
}, |
|||
// 通知的边距 |
|||
padding: { |
|||
type: [Number, String], |
|||
default: '18rpx 24rpx' |
|||
} |
|||
}, |
|||
// 显示的主题,success|error|primary|info|warning |
|||
type: { |
|||
type: String, |
|||
default: 'warning' |
|||
}, |
|||
// 是否显示左侧的音量图标 |
|||
volumeIcon: { |
|||
type: Boolean, |
|||
default: true |
|||
}, |
|||
// 是否显示右侧的右箭头图标 |
|||
moreIcon: { |
|||
type: Boolean, |
|||
default: false |
|||
}, |
|||
// 是否显示右侧的关闭图标 |
|||
closeIcon: { |
|||
type: Boolean, |
|||
default: false |
|||
}, |
|||
// 是否自动播放 |
|||
autoplay: { |
|||
type: Boolean, |
|||
default: true |
|||
}, |
|||
// 文字颜色,各图标也会使用文字颜色 |
|||
color: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
// 背景颜色 |
|||
bgColor: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
// 滚动方向,row-水平滚动,column-垂直滚动 |
|||
direction: { |
|||
type: String, |
|||
default: 'row' |
|||
}, |
|||
// 是否显示 |
|||
show: { |
|||
type: Boolean, |
|||
default: true |
|||
}, |
|||
// 字体大小,单位rpx |
|||
fontSize: { |
|||
type: [Number, String], |
|||
default: 26 |
|||
}, |
|||
// 滚动一个周期的时间长,单位ms |
|||
duration: { |
|||
type: [Number, String], |
|||
default: 2000 |
|||
}, |
|||
// 音量喇叭的大小 |
|||
volumeSize: { |
|||
type: [Number, String], |
|||
default: 34 |
|||
}, |
|||
// 水平滚动时的滚动速度,即每秒滚动多少rpx,这有利于控制文字无论多少时,都能有一个恒定的速度 |
|||
speed: { |
|||
type: Number, |
|||
default: 160 |
|||
}, |
|||
// 水平滚动时,是否采用衔接形式滚动 |
|||
isCircular: { |
|||
type: Boolean, |
|||
default: true |
|||
}, |
|||
// 滚动方向,horizontal-水平滚动,vertical-垂直滚动 |
|||
mode: { |
|||
type: String, |
|||
default: 'horizontal' |
|||
}, |
|||
// 播放状态,play-播放,paused-暂停 |
|||
playState: { |
|||
type: String, |
|||
default: 'play' |
|||
}, |
|||
// 是否禁止用手滑动切换 |
|||
// 目前HX2.6.11,只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序 |
|||
disableTouch: { |
|||
type: Boolean, |
|||
default: true |
|||
}, |
|||
// 通知的边距 |
|||
padding: { |
|||
type: [Number, String], |
|||
default: '18rpx 24rpx' |
|||
} |
|||
}, |
|||
computed: { |
|||
// 计算字体颜色,如果没有自定义的,就用uview主题颜色 |
|||
computeColor() { |
|||
if (this.color) return this.color; |
|||
// 如果是无主题,就默认使用content-color |
|||
else if(this.type == 'none') return '#606266'; |
|||
else return this.type; |
|||
}, |
|||
// 文字内容的样式 |
|||
textStyle() { |
|||
let style = {}; |
|||
if (this.color) style.color = this.color; |
|||
else if(this.type == 'none') style.color = '#606266'; |
|||
style.fontSize = this.fontSize + 'rpx'; |
|||
return style; |
|||
}, |
|||
// 垂直或者水平滚动 |
|||
vertical() { |
|||
if(this.mode == 'horizontal') return false; |
|||
else return true; |
|||
}, |
|||
// 计算背景颜色 |
|||
computeBgColor() { |
|||
if (this.bgColor) return this.bgColor; |
|||
else if(this.type == 'none') return 'transparent'; |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
// animation: false |
|||
}; |
|||
}, |
|||
methods: { |
|||
// 点击通告栏 |
|||
click(index) { |
|||
this.$emit('click', index); |
|||
}, |
|||
// 点击关闭按钮 |
|||
close() { |
|||
this.$emit('close'); |
|||
}, |
|||
// 点击更多箭头按钮 |
|||
getMore() { |
|||
this.$emit('getMore'); |
|||
computed: { |
|||
// 计算字体颜色,如果没有自定义的,就用uview主题颜色 |
|||
computeColor() { |
|||
if (this.color) return this.color; |
|||
// 如果是无主题,就默认使用content-color |
|||
else if (this.type == 'none') return '#606266'; |
|||
else return this.type; |
|||
}, |
|||
// 文字内容的样式 |
|||
textStyle() { |
|||
let style = {}; |
|||
if (this.color) style.color = this.color; |
|||
else if (this.type == 'none') style.color = '#606266'; |
|||
style.fontSize = this.fontSize + 'rpx'; |
|||
return style; |
|||
}, |
|||
// 垂直或者水平滚动 |
|||
vertical() { |
|||
if (this.mode == 'horizontal') return false; |
|||
else return true; |
|||
}, |
|||
// 计算背景颜色 |
|||
computeBgColor() { |
|||
if (this.bgColor) return this.bgColor; |
|||
else if (this.type == 'none') return 'transparent'; |
|||
} |
|||
}, |
|||
change(e) { |
|||
let index = e.detail.current; |
|||
if(index == this.list.length - 1) { |
|||
this.$emit('end'); |
|||
data() { |
|||
return { |
|||
// animation: false |
|||
}; |
|||
}, |
|||
methods: { |
|||
// 点击通告栏 |
|||
click(index, item) { |
|||
this.$emit('click', index); |
|||
this.$url(item.link) |
|||
console.log(item.link) |
|||
}, |
|||
// 点击关闭按钮 |
|||
close() { |
|||
this.$emit('close'); |
|||
}, |
|||
// 点击更多箭头按钮 |
|||
getMore() { |
|||
this.$emit('getMore'); |
|||
}, |
|||
change(e) { |
|||
let index = e.detail.current; |
|||
if (index == this.list.length - 1) { |
|||
this.$emit('end'); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
}; |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "../../libs/css/style.components.scss"; |
|||
@import "../../libs/css/style.components.scss"; |
|||
|
|||
.u-notice-bar { |
|||
width: 100%; |
|||
@include vue-flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
flex-wrap: nowrap; |
|||
padding: 18rpx 24rpx; |
|||
overflow: hidden; |
|||
} |
|||
.u-notice-bar { |
|||
width: 100%; |
|||
@include vue-flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
flex-wrap: nowrap; |
|||
padding: 18rpx 24rpx; |
|||
overflow: hidden; |
|||
} |
|||
|
|||
.u-swiper { |
|||
font-size: 26rpx; |
|||
height: 32rpx; |
|||
@include vue-flex; |
|||
align-items: center; |
|||
flex: 1; |
|||
margin-left: 12rpx; |
|||
} |
|||
.u-swiper { |
|||
font-size: 26rpx; |
|||
height: 32rpx; |
|||
@include vue-flex; |
|||
align-items: center; |
|||
flex: 1; |
|||
margin-left: 12rpx; |
|||
} |
|||
|
|||
.u-swiper-item { |
|||
@include vue-flex; |
|||
align-items: center; |
|||
overflow: hidden; |
|||
} |
|||
.u-swiper-item { |
|||
@include vue-flex; |
|||
align-items: center; |
|||
overflow: hidden; |
|||
} |
|||
|
|||
.u-news-item { |
|||
overflow: hidden; |
|||
} |
|||
.u-news-item { |
|||
overflow: hidden; |
|||
} |
|||
|
|||
.u-right-icon { |
|||
margin-left: 12rpx; |
|||
/* #ifndef APP-NVUE */ |
|||
display: inline-flex; |
|||
/* #endif */ |
|||
align-items: center; |
|||
} |
|||
.u-right-icon { |
|||
margin-left: 12rpx; |
|||
/* #ifndef APP-NVUE */ |
|||
display: inline-flex; |
|||
/* #endif */ |
|||
align-items: center; |
|||
} |
|||
|
|||
.u-left-icon { |
|||
/* #ifndef APP-NVUE */ |
|||
display: inline-flex; |
|||
/* #endif */ |
|||
align-items: center; |
|||
} |
|||
.u-left-icon { |
|||
/* #ifndef APP-NVUE */ |
|||
display: inline-flex; |
|||
/* #endif */ |
|||
align-items: center; |
|||
} |
|||
</style> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue