私域通静态
This commit is contained in:
@@ -38,7 +38,10 @@
|
||||
"pages/order/detail/index2",
|
||||
"pages/order/edit/index2",
|
||||
"pages/order/editOwner/index",
|
||||
"pages/order/filterList/index2"
|
||||
"pages/order/filterList/index2",
|
||||
"pages/siyutong/index",
|
||||
"pages/siyutong/activityDetail/index",
|
||||
"pages/siyutong/activityRanking/index"
|
||||
],
|
||||
"echarts": [
|
||||
{
|
||||
|
||||
Vendored
+5
-4
File diff suppressed because one or more lines are too long
@@ -0,0 +1,221 @@
|
||||
import _ from '../../commons/js/commons'
|
||||
import Canvas from '../../commons/js/utils/canvas'
|
||||
let isGetImgInfo = false
|
||||
const app = getApp()
|
||||
Component({
|
||||
//组件的属性列表
|
||||
properties: {
|
||||
isShow: {
|
||||
type: Boolean,
|
||||
value: false
|
||||
},
|
||||
customImg: {
|
||||
type: String,
|
||||
value: ''
|
||||
},
|
||||
codeImg: {
|
||||
type: String,
|
||||
value: ''
|
||||
},
|
||||
},
|
||||
|
||||
//组件的初始数据
|
||||
data: {
|
||||
imgs: [],
|
||||
tempPosterPath: '',
|
||||
showOptBtn:false,//操作按钮显示
|
||||
},
|
||||
|
||||
attached: function () {
|
||||
isGetImgInfo = false
|
||||
},
|
||||
|
||||
//数据监听
|
||||
observers: {
|
||||
'isShow': function (e) {
|
||||
if (e) {
|
||||
this.setData({
|
||||
showOptBtn:false,
|
||||
})
|
||||
this.createPoster()
|
||||
}
|
||||
},
|
||||
'customImg': function (e) {
|
||||
if (e) {
|
||||
this.getImageInfo(this.data.customImg, 0)
|
||||
}
|
||||
},
|
||||
'codeImg': function (e) {
|
||||
if (e) {
|
||||
this.getImageInfo(this.data.codeImg, 1)
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
//组件的方法列表
|
||||
methods: {
|
||||
|
||||
// 转化网络图片,获取路径
|
||||
getImageInfo(src, index) {
|
||||
let that = this
|
||||
isGetImgInfo = false
|
||||
setTimeout(function () {
|
||||
wx.getImageInfo({
|
||||
src: src,
|
||||
success: (res) => {
|
||||
let arr = that.data.imgs
|
||||
arr[index] = res
|
||||
that.setData({
|
||||
imgs: arr
|
||||
})
|
||||
isGetImgInfo = true
|
||||
},
|
||||
fail: (err) => {
|
||||
console.log('error img is: ' + src)
|
||||
}
|
||||
})
|
||||
}, 200)
|
||||
},
|
||||
|
||||
//自定义海报
|
||||
customizePoster(CTX){
|
||||
|
||||
if(this.data.customImg){
|
||||
let that = this
|
||||
let width = 600
|
||||
let height = (parseFloat(this.data.imgs[0].height)/parseFloat(this.data.imgs[0].width))*600
|
||||
this.setData({
|
||||
canvasInfo:{
|
||||
width: width+'px',
|
||||
height: height+'px'
|
||||
}
|
||||
})
|
||||
|
||||
// CTX.setFillStyle('#ffffff')
|
||||
// CTX.fillRect(0, 0,width+20, picheight+optheight+ftheight+20)
|
||||
|
||||
//底图
|
||||
if (that.data.imgs[0]) {
|
||||
CTX.drawImage(that.data.imgs[0].path, 0, 0, that.data.imgs[0].width, that.data.imgs[0].height, 0, 0, width, height)
|
||||
}
|
||||
|
||||
//二维码
|
||||
if (that.data.imgs[1]) {
|
||||
Canvas.circleImage(CTX,that.data.imgs[1].path,417, height-180,70)
|
||||
}
|
||||
|
||||
setTimeout(function(){
|
||||
CTX.save()
|
||||
CTX.draw(true, function () {
|
||||
wx.hideLoading()
|
||||
that.saveCanvas()
|
||||
})
|
||||
},200)
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
//生成海报
|
||||
createPoster() {
|
||||
let that = this
|
||||
wx.showLoading({
|
||||
title: '正在生成',
|
||||
})
|
||||
|
||||
if(isGetImgInfo){
|
||||
this.setData({
|
||||
tempPosterPath: ''
|
||||
})
|
||||
let ctx = wx.createCanvasContext('postercanvas', that)
|
||||
that.customizePoster(ctx)
|
||||
}
|
||||
},
|
||||
|
||||
//临时存储canvas
|
||||
saveCanvas() {
|
||||
let that = this
|
||||
wx.canvasToTempFilePath({
|
||||
canvasId: 'postercanvas',
|
||||
quality: 1,
|
||||
success: (res) => {
|
||||
// this.tempFilePath = res.tempFilePath
|
||||
that.setData({
|
||||
'tempPosterPath': res.tempFilePath
|
||||
})
|
||||
|
||||
setTimeout(function () {
|
||||
that.setData({
|
||||
showOptBtn:true,
|
||||
})
|
||||
},200)
|
||||
|
||||
},
|
||||
fail: (res) => {
|
||||
app.printErrorClient('poseterfail',['错误信息:临时存储canvas失败',JSON.stringify(res)])
|
||||
}
|
||||
}, this)
|
||||
},
|
||||
|
||||
//保存到相册
|
||||
saveToAblum() {
|
||||
let that = this
|
||||
wx.saveImageToPhotosAlbum({
|
||||
filePath: this.data.tempPosterPath,
|
||||
success: (res) => {
|
||||
_.utils.$toast('保存成功')
|
||||
},
|
||||
fail: (err) => {
|
||||
app.printErrorClient('poseterfail',['错误信息:图片保存失败',JSON.stringify(err)])
|
||||
if (err.errMsg == 'saveImageToPhotosAlbum:fail cancel') {
|
||||
_.utils.$toast('您已取消保存')
|
||||
} else if (err.errMsg == 'saveImageToPhotosAlbum:fail auth deny') {
|
||||
_.utils.$modal('提示', '保存图片失败,您可以点击确定设置获取相册权限后再尝试保存!', '去授权').then(res => {
|
||||
if (res) {
|
||||
wx.openSetting({}) // 打开小程序设置页面,可以设置权限
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
//隐藏海报弹框
|
||||
hidePoster() {
|
||||
this.setData({
|
||||
isShow: false
|
||||
})
|
||||
wx.hideLoading()
|
||||
},
|
||||
|
||||
//预览图片
|
||||
preview() {
|
||||
wx.previewImage({
|
||||
current: this.data.tempPosterPath, // 当前显示图片的http链接
|
||||
urls: [this.data.tempPosterPath] // 需要预览的图片http链接列表
|
||||
})
|
||||
},
|
||||
|
||||
//推送链接
|
||||
pushLink(e) {
|
||||
if(e.currentTarget.dataset.url){
|
||||
_.$router.openUrlScheme(e.currentTarget.dataset.url)
|
||||
}
|
||||
},
|
||||
|
||||
//复制内容
|
||||
copyWord(e){
|
||||
if(e.currentTarget.dataset.tx){
|
||||
wx.setClipboardData({
|
||||
data: e.currentTarget.dataset.tx,
|
||||
success (res) {
|
||||
_.utils.$toast('复制成功')
|
||||
}
|
||||
})
|
||||
}else{
|
||||
_.utils.$toast('目前无文案')
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<!-- components/poster/index.wxml -->
|
||||
<view class="poster fixed {{isShow?'show':'hide'}}">
|
||||
<view class="poster-bg absolute top-0 bottom-0 left-0 right-0" bindtap="hidePoster"></view>
|
||||
<view class="poster-main poster-main-img absolute box-center-middle">
|
||||
<canvas canvas-id='postercanvas' class='canvas absolute box-center-middle' style="width:{{canvasInfo.width}};height:{{canvasInfo.height}}"></canvas>
|
||||
<view wx:if="{{showOptBtn}}" class="overflowhidden">
|
||||
<scroll-view scroll-y="true" style="max-height:1000rpx;">
|
||||
<image class="block wp100 ulib-r10" wx:if="{{tempPosterPath}}" src="{{tempPosterPath}}" mode="widthFix" catchtap="preview" />
|
||||
</scroll-view>
|
||||
</view>
|
||||
<view class="mt40 fn-flex" wx:if="{{showOptBtn}}">
|
||||
<button class="fn-flex-item btn-ffa73d-ff7a28 font-32 color-fff ulib-r750 text-center ml20 mr20" catchtap="saveToAblum">保存分享</button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -0,0 +1,26 @@
|
||||
@import "../../commons/css/common.wxss";
|
||||
.poster{
|
||||
top: 0;
|
||||
left: 100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 9999;
|
||||
}
|
||||
.show{
|
||||
left: 0;
|
||||
}
|
||||
.poster-bg{
|
||||
z-index: 9998;
|
||||
background-color: rgba(0,0,0,.6);
|
||||
}
|
||||
.poster-main{
|
||||
z-index: 9999;
|
||||
}
|
||||
.poster-main-img{
|
||||
width:580rpx;
|
||||
}
|
||||
.poster-main-img canvas{
|
||||
left: 1000%;
|
||||
}
|
||||
.btn-ffa73d-ff7a28{background-image:linear-gradient(#ffa73d,#ff7a28);border:none;}
|
||||
.btn-ffa73d-ff7a28::after{border:none;}
|
||||
@@ -0,0 +1,74 @@
|
||||
import _ from '../../../commons/js/commons'
|
||||
let flagForScroll = false
|
||||
Page({
|
||||
data: {
|
||||
imgUrl:_.config.imgUrl,
|
||||
navBar: {
|
||||
title: '活动详情',
|
||||
bgColor: '#fff',
|
||||
isShowBg: false,
|
||||
txtColor: '#fff'
|
||||
},
|
||||
imgs: [],
|
||||
},
|
||||
onLoad: function (options) {
|
||||
flagForScroll = false
|
||||
},
|
||||
|
||||
//生成海报
|
||||
showPoster(e){
|
||||
let that = this
|
||||
wx.showLoading({
|
||||
title: '正在生成中...',
|
||||
})
|
||||
that.setData({
|
||||
'poster.customPoster':'https://qs.haodian.cn/wechat_app/lichebao/siyutong/detail.jpg',
|
||||
'poster.codeImg':'https://qs.haodian.cn/wechat_app/lichebao/index/jrKF-code2.jpg',
|
||||
})
|
||||
setTimeout(function(){
|
||||
that.setData({
|
||||
'poster.isShow': true
|
||||
})
|
||||
wx.hideLoading()
|
||||
},3000)
|
||||
},
|
||||
|
||||
onPageScroll(obj) {
|
||||
if (obj.scrollTop > _.config.elementScrollTop && !flagForScroll) {
|
||||
flagForScroll = true
|
||||
this.setData({
|
||||
'navBar.isShowBg': true,
|
||||
'navBar.txtColor': '#333',
|
||||
flagForBarColor: '000'
|
||||
})
|
||||
wx.setNavigationBarColor({
|
||||
frontColor: '#000000',
|
||||
backgroundColor: '#000000',
|
||||
animation: {
|
||||
duration: 400,
|
||||
timingFunc: 'easeIn'
|
||||
}
|
||||
})
|
||||
} else if (obj.scrollTop < _.config.elementScrollTop && flagForScroll) {
|
||||
flagForScroll = false
|
||||
this.setData({
|
||||
'navBar.isShowBg': false,
|
||||
'navBar.txtColor': '#fff',
|
||||
flagForBarColor: 'fff'
|
||||
})
|
||||
wx.setNavigationBarColor({
|
||||
frontColor: '#ffffff',
|
||||
backgroundColor: '#ffffff',
|
||||
animation: {
|
||||
duration: 400,
|
||||
timingFunc: 'easeIn'
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
//页面相关事件处理函数--监听用户下拉动作
|
||||
onPullDownRefresh: function () {
|
||||
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationStyle": "custom",
|
||||
"navigationBarTextStyle": "white",
|
||||
"navigationBarBackgroundColor": "#333",
|
||||
"backgroundColor": "#ffffff",
|
||||
"backgroundColorTop": "#333",
|
||||
"usingComponents": {
|
||||
"activityPoster": "/components/activityPoster/index"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
<lcb-navBar titleText="{{navBar.title}}" txtColor="{{navBar.txtColor}}" bgColor="{{navBar.bgColor}}" isShowBg="{{navBar.isShowBg}}"></lcb-navBar>
|
||||
<view class='container'>
|
||||
<view><image class="wp100" lazy-load="{{true}}" mode="widthFix" src="{{imgUrl}}siyutong/detail.jpg"></image></view>
|
||||
<view class="inner30 pt0">
|
||||
<view class="inner30 bds-5-679af5 bg-1c349c box-shadow-000-50 ulib-r20">
|
||||
<view class="mt10 text-center"><image style="width:400rpx;height:40rpx;" lazy-load="{{true}}" mode="aspectFill" src="{{imgUrl}}siyutong/ac-tt-2.png"></image></view>
|
||||
<view class="inner20 pt15 font-28 color-fff line-height-16">年末购车大潮,为满足公司需要,现开展蓄客活动。各位狸车同仁,请积极邀请朋友参加活动所有客户都会进入你们自己的客户池。</view>
|
||||
</view>
|
||||
<view class="mt30 inner30 bds-5-679af5 bg-1c349c box-shadow-000-50 ulib-r20">
|
||||
<view class="relative pr150" bindtap="pushLink" data-url="">
|
||||
<view class="text-nowrap font-32 color-fff">当前门店排名</view>
|
||||
<view class="absolute right-0 box-middle">
|
||||
<text class="inline-block bg-ffa73d-ff7a28 pl10 pr10 text-middle font-20 color-fff ulib-r750">2</text>
|
||||
<i class="iconfont icon-gengduo text-middle font-32 color-fff"></i>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="mt30 ulib-rt20 inner20 tt-ac text-center fn-flex">
|
||||
<view class="fn-flex-item">
|
||||
<view class="font-40 color-f9394d">50.32w</view>
|
||||
<view class="font-28">报名</view>
|
||||
</view>
|
||||
<view class="fn-flex-item">
|
||||
<view class="font-40 color-f9394d">50.32w</view>
|
||||
<view class="font-28">报名</view>
|
||||
</view>
|
||||
<view class="fn-flex-item">
|
||||
<view class="font-40 color-f9394d">50.32w</view>
|
||||
<view class="font-28">报名</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="inner30 bg-1c349c bds-5-679af5 box-shadow-000-50 ulib-rb20">
|
||||
<view class="mt10 text-center"><image style="width:400rpx;height:40rpx;" lazy-load="{{true}}" mode="aspectFill" src="{{imgUrl}}siyutong/ac-tt-3.png"></image></view>
|
||||
<view>
|
||||
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="">
|
||||
<view class="text-nowrap font-28 color-fff">东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!</view>
|
||||
<view class="absolute right-0 box-middle mr30 font-28 color-adb3d6">
|
||||
2秒前
|
||||
</view>
|
||||
</view>
|
||||
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="">
|
||||
<view class="text-nowrap font-28 color-fff">东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!</view>
|
||||
<view class="absolute right-0 box-middle mr30 font-28 color-adb3d6">
|
||||
2秒前
|
||||
</view>
|
||||
</view>
|
||||
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="">
|
||||
<view class="text-nowrap font-28 color-fff">东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!</view>
|
||||
<view class="absolute right-0 box-middle mr30 font-28 color-adb3d6">
|
||||
2秒前
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="pt40 pb40 pl100 pr100 text-center">
|
||||
<view class="ac-btn pt20 pb20 font-32 color-fff ulib-r750" bindtap="showPoster">马上邀请</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<activityPoster isShow="{{poster.isShow}}" customImg="{{poster.customPoster}}" codeImg="{{poster.codeImg}}"></activityPoster>
|
||||
@@ -0,0 +1,35 @@
|
||||
page{
|
||||
background-color:#000e66;
|
||||
}
|
||||
page{
|
||||
background-color:#000e66;
|
||||
}
|
||||
.tt-ac{
|
||||
background-color:#76a1e5;
|
||||
box-shadow: 0 0 30rpx rgba(255,255,255,.5) inset;
|
||||
}
|
||||
.bds-5-679af5{
|
||||
border:#679af5 5rpx solid;
|
||||
}
|
||||
.bg-1c349c{
|
||||
background-color:#1c349c;
|
||||
}
|
||||
.bg-3349a6{
|
||||
background-color:#3349a6;
|
||||
}
|
||||
.bg-ffa73d-ff7a28{
|
||||
background-image:linear-gradient(#ffa73d,#ff7a28);
|
||||
}
|
||||
.bg-997871-ff7a28{
|
||||
background-image:linear-gradient(#997871,#996267);
|
||||
}
|
||||
.box-shadow-000-50{
|
||||
box-shadow: 0 0 30rpx rgba(0,0,0,.5) inset;
|
||||
}
|
||||
.color-adb3d6{
|
||||
color:#adb3d6;
|
||||
}
|
||||
.ac-btn{
|
||||
background-image:linear-gradient(#ffa73d,#ff7a28);
|
||||
border-bottom:#db610d 6rpx solid;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
Page({
|
||||
data: {
|
||||
isShowRule:false,
|
||||
},
|
||||
onLoad: function (options) {
|
||||
|
||||
},
|
||||
|
||||
//显示隐藏积分规则
|
||||
optShowRule() {
|
||||
this.setData({
|
||||
isShowRule:!this.data.isShowRule,
|
||||
})
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"navigationBarTitleText": "活动排名",
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarTextStyle": "white",
|
||||
"navigationBarBackgroundColor": "#000e66",
|
||||
"backgroundColor": "#ffffff",
|
||||
"backgroundColorTop": "#000e66",
|
||||
"usingComponents": {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
<view class="container inner30 img-top-cover">
|
||||
<view class="mt30 ulib-rt20 inner30 pl50 pr50 tt-ac relative color-000e65">
|
||||
<view class="text-nowrap font-36"><text class="iconfont icon-cup mr5"></text>我的直营店</view>
|
||||
<view class="absolute right-0 box-middle mr50 font-36">120分</view>
|
||||
</view>
|
||||
<view class="inner30 pt10 bg-1c349c bds-5-679af5 box-shadow-000-50 ulib-rb20">
|
||||
<view>
|
||||
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="">
|
||||
<view class="text-nowrap font-28 color-fff"><text class="iconfont icon-cup mr10"></text>厦门直营店</view>
|
||||
<view class="absolute right-0 box-middle mr30 font-28 color-fff">120分</view>
|
||||
</view>
|
||||
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="">
|
||||
<view class="text-nowrap font-28 color-fff"><text class="pl10 mr10">2</text>厦门直营店</view>
|
||||
<view class="absolute right-0 box-middle mr30 font-28 color-fff">120分</view>
|
||||
</view>
|
||||
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="">
|
||||
<view class="text-nowrap font-28 color-fff"><text class="pl10 mr10">3</text>厦门直营店</view>
|
||||
<view class="absolute right-0 box-middle mr30 font-28 color-fff">120分</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="pt30 pb30 text-center font-28 color-fff" bindtap="optShowRule">积分规则></view>
|
||||
</view>
|
||||
|
||||
<!--积分规则-->
|
||||
<lcb-msg isShow="{{isShowRule}}">
|
||||
<view slot="content">
|
||||
<view class="pt50 text-center font-36">积分规则</view>
|
||||
<view class="pt10 pl40 pr40 pb50 line-height-16 text-center font-28 color-666">
|
||||
<view class="mt10">邀请一个人进入活动页面 浏览1分</view>
|
||||
<view class="mt10">邀请一个人进入活动页面报名10分</view>
|
||||
</view>
|
||||
<view class="bts-1-eb text-center font-32 color-666">
|
||||
<view class="pt25 pb25 color-000e65" bindtap="optShowRule">知道了</view>
|
||||
</view>
|
||||
</view>
|
||||
</lcb-msg>
|
||||
@@ -0,0 +1,28 @@
|
||||
page{
|
||||
background-color:#000e66;
|
||||
}
|
||||
.tt-ac{
|
||||
background-color:#76a1e5;
|
||||
box-shadow: 0 0 30rpx rgba(255,255,255,.5) inset;
|
||||
}
|
||||
.bds-5-679af5{
|
||||
border:#679af5 5rpx solid;
|
||||
}
|
||||
.bg-1c349c{
|
||||
background-color:#1c349c;
|
||||
}
|
||||
.bg-3349a6{
|
||||
background-color:#3349a6;
|
||||
}
|
||||
.bg-ffa73d-ff7a28{
|
||||
background-image:linear-gradient(#ffa73d,#ff7a28);
|
||||
}
|
||||
.bg-997871-ff7a28{
|
||||
background-image:linear-gradient(#997871,#996267);
|
||||
}
|
||||
.box-shadow-000-50{
|
||||
box-shadow: 0 0 30rpx rgba(0,0,0,.5) inset;
|
||||
}
|
||||
.color-000e65{
|
||||
color:#000e65;
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
import _ from '../../commons/js/commons'
|
||||
const app = getApp()
|
||||
Page({
|
||||
|
||||
//页面的初始数据
|
||||
data: {
|
||||
imgUrl:_.config.imgUrl,
|
||||
swiperOptions: {
|
||||
indicatorDots: false,
|
||||
vertical: false,
|
||||
autoplay: false,
|
||||
interval: 4000,
|
||||
duration: 1000,
|
||||
items: 1,
|
||||
circular: false,
|
||||
current: 0
|
||||
},
|
||||
swiperCurrent: 0,
|
||||
},
|
||||
|
||||
//生命周期函数--监听页面加载
|
||||
onLoad: function (options) {
|
||||
|
||||
for (let key in options) {
|
||||
this.setData({
|
||||
[key]: options[key]
|
||||
})
|
||||
}
|
||||
|
||||
this.getMaterialBiz()
|
||||
|
||||
},
|
||||
|
||||
//cms详细信息
|
||||
getMaterialBiz() {
|
||||
let res = {"code":200,"data":{"user":{"uid":"258","nickname":"老叶","headimg":"https:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/Q0j4TwGTfTKe4jENRCNiaqeuxLBdzUCk2BSc3rPC4qABoZicHrrjEjg2ffYA0qeOr93mNcdcxqL2Hibib0Ou35PpZA\/132"},"card":{"id":"3","title":"星选卡","remark":"特权福利享不停","icon":"http:\/\/qs.haodian.cn\/wechat_app\/xingxuanka\/mine\/icon_card-200824.png","cover":"https:\/\/qimg.haodian.cn\/hdi\/2020\/08\/7cc1dbdfc8c028d7\/eed56196042b324d.png","card_id":3},"tip":"会员装修一站式,1对1的消费顾问服务","account":[{"title":"余额","value":"¥0"},{"title":"红包","value":"¥0"},{"title":"额度","value":"最高30万元"}],"icons":[{"id":0,"title":"免费设计","icon":"https:\/\/qs.haodian.cn\/wechat_app\/xingxuanka\/card\/design.png?v=20082615","type":"topic","url":"\/pages\/specialtopic\/mianfeisheji\/index"},{"id":0,"title":"专属顾问","icon":"https:\/\/qs.haodian.cn\/wechat_app\/xingxuanka\/card\/service.png?v=20082615","type":"alert","url":""},{"id":"8","title":"红包权益","icon":"https:\/\/qimg.haodian.cn\/hdi\/2020\/08\/ed48eaab121b8a97\/b48176ea164897ce.png?width=92","type":"right","url":""},{"id":"9","title":"免费量尺","icon":"https:\/\/qimg.haodian.cn\/hdi\/2020\/08\/5d7742c70015717b\/9c0054f73f6a86cf.png?width=92","type":"right","url":""},{"id":"10","title":"媒体监督","icon":"https:\/\/qimg.haodian.cn\/hdi\/2020\/08\/aa63ecd669541f24\/80459c732704caf5.png?width=92","type":"right","url":""},{"id":"11","title":"质保服务","icon":"https:\/\/qimg.haodian.cn\/hdi\/2020\/08\/582e30122b596474\/3e4a8f613c8e38f0.png?width=92","type":"right","url":""},{"id":"12","title":"无忧退款","icon":"https:\/\/qimg.haodian.cn\/hdi\/2020\/08\/55b679a040e8922c\/0a4f057fedf475f9.png?width=92","type":"right","url":""}],"body":{"title":"建材礼金","remark":"不定时福利放送,随购随用","gift":{"id":"7","price":0,"title":"内含超5000元建材抵用券","have":1}}},"msg":""}
|
||||
|
||||
this.setData({
|
||||
icons: this.getIconByGroup(res.data.icons),
|
||||
})
|
||||
},
|
||||
|
||||
//数据分组
|
||||
getIconByGroup(icons) {
|
||||
let arr = []
|
||||
if (icons.length > 3) {
|
||||
for (var i = 0; i < icons.length; i += 3) {
|
||||
arr.push(icons.slice(i, i + 3));
|
||||
}
|
||||
} else {
|
||||
arr.push(icons)
|
||||
}
|
||||
return arr
|
||||
},
|
||||
|
||||
//切换icon轮播
|
||||
swiperChange: function (e) {
|
||||
this.setData({
|
||||
swiperCurrent: e.detail.current // current 改变时会触发 change 事件
|
||||
})
|
||||
},
|
||||
|
||||
//推送链接
|
||||
pushLink(e) {
|
||||
if(e.currentTarget.dataset.url){
|
||||
_.$router.openUrlScheme(e.currentTarget.dataset.url)
|
||||
}
|
||||
},
|
||||
|
||||
//页面相关事件处理函数--监听用户下拉动作
|
||||
onPullDownRefresh: function () {
|
||||
this.setData({
|
||||
swiperOptions: {
|
||||
indicatorDots: false,
|
||||
vertical: false,
|
||||
autoplay: false,
|
||||
interval: 4000,
|
||||
duration: 1000,
|
||||
items: 1,
|
||||
circular: false,
|
||||
current: 0
|
||||
},
|
||||
swiperCurrent: 0,
|
||||
icons: [],
|
||||
})
|
||||
this.getMaterialBiz()
|
||||
},
|
||||
|
||||
})
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"navigationBarTitleText": "私域通",
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarTextStyle": "white",
|
||||
"navigationBarBackgroundColor": "#000e66",
|
||||
"backgroundColor": "#ffffff",
|
||||
"backgroundColorTop": "#000e66",
|
||||
"usingComponents": {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
<view class="container img-top-cover" style="background-image:url({{imgUrl}}siyutong/theme.jpg);">
|
||||
<view class="relative" style="height:580rpx;"></view>
|
||||
<view class="pl30 pr30 pb30">
|
||||
<view class="ulib-rt20 inner20 tt-ac text-center fn-flex">
|
||||
<view class="fn-flex-item">
|
||||
<view class="font-40 color-f9394d">50.32w</view>
|
||||
<view class="font-28">报名</view>
|
||||
</view>
|
||||
<view class="fn-flex-item">
|
||||
<view class="font-40 color-f9394d">50.32w</view>
|
||||
<view class="font-28">报名</view>
|
||||
</view>
|
||||
<view class="fn-flex-item">
|
||||
<view class="font-40 color-f9394d">50.32w</view>
|
||||
<view class="font-28">报名</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="inner30 bg-1c349c bds-5-679af5 box-shadow-000-50 ulib-rb20">
|
||||
<view class="mt10 text-center"><image style="width:400rpx;height:40rpx;" lazy-load="{{true}}" mode="aspectFill" src="{{imgUrl}}siyutong/ac-tt-1.png"></image></view>
|
||||
<view>
|
||||
<swiper style="height:370rpx;" indicator-dots="{{swiperOptions.indicatorDots}}"
|
||||
autoplay="{{swiperOptions.autoplay}}" current="{{swiperOptions.current}}"
|
||||
interval="{{swiperOptions.interval}}" duration="{{swiperOptions.duration}}"
|
||||
display-multiple-items="{{swiperOptions.items}}" circular="{{swiperOptions.circular}}"
|
||||
bindchange="swiperChange">
|
||||
<block wx:for="{{icons}}" wx:key="index">
|
||||
<swiper-item>
|
||||
<block wx:for="{{item}}" wx:for-item="it" wx:key="index">
|
||||
<view class="mt20 inner30 relative bg-3349a6 pr150 ulib-r10" bindtap="pushLink" data-url="">
|
||||
<view class="text-nowrap font-32 color-fff">东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!东风EX1特约直播!</view>
|
||||
<view class="absolute right-0 box-middle mr20">
|
||||
<text class="inline-block bg-ffa73d-ff7a28 pl10 pr10 text-middle font-20 color-fff ulib-r750">进行中</text>
|
||||
<i class="iconfont icon-gengduo text-middle font-32 color-fff"></i>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</swiper-item>
|
||||
</block>
|
||||
</swiper>
|
||||
<view class="dots mt20" wx:if="{{icons.length>1}}">
|
||||
<block wx:for="{{icons}}" wx:key="unique">
|
||||
<view class="dot{{index == swiperCurrent ? ' active' : ''}}"></view>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -0,0 +1,40 @@
|
||||
page{
|
||||
background-color:#000e66;
|
||||
}
|
||||
.tt-ac{
|
||||
background-color:#76a1e5;
|
||||
box-shadow: 0 0 30rpx rgba(255,255,255,.5) inset;
|
||||
}
|
||||
.bds-5-679af5{
|
||||
border:#679af5 5rpx solid;
|
||||
}
|
||||
.bg-1c349c{
|
||||
background-color:#1c349c;
|
||||
}
|
||||
.bg-3349a6{
|
||||
background-color:#3349a6;
|
||||
}
|
||||
.bg-ffa73d-ff7a28{
|
||||
background-image:linear-gradient(#ffa73d,#ff7a28);
|
||||
}
|
||||
.bg-997871-ff7a28{
|
||||
background-image:linear-gradient(#997871,#996267);
|
||||
}
|
||||
.box-shadow-000-50{
|
||||
box-shadow: 0 0 30rpx rgba(0,0,0,.5) inset;
|
||||
}
|
||||
.dots {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
.dots .dot {
|
||||
margin: 0 4rpx;
|
||||
width: 12rpx;
|
||||
height: 12rpx;
|
||||
background: #8e9ace;
|
||||
border-radius: 100%;
|
||||
transition: all .6s;
|
||||
}
|
||||
.dots .dot.active {
|
||||
background: #fff;
|
||||
}
|
||||
Reference in New Issue
Block a user