Commit bbd2c7f1 by 严立

LL - 积分兑换完成

parent 0d40da45
Showing with 1682 additions and 224 deletions
...@@ -34,6 +34,7 @@ App({ ...@@ -34,6 +34,7 @@ App({
iMui(this) // m-ui 相关函数引入 iMui(this) // m-ui 相关函数引入
iLogin(this) // 全局登录,根据 token 的情况执行相关操作 iLogin(this) // 全局登录,根据 token 的情况执行相关操作
this.setUnitProportion() this.setUnitProportion()
this.queryClubEstablish()
}, },
onShow: function () { onShow: function () {
...@@ -56,7 +57,6 @@ App({ ...@@ -56,7 +57,6 @@ App({
}).then((response) => { }).then((response) => {
let funcData = response.data let funcData = response.data
this.globalData.appStatus = Boolean(Number(funcData[0].value)) this.globalData.appStatus = Boolean(Number(funcData[0].value))
console.log('setAppStatus', this.globalData.appStatus)
}).catch(() => {}) }).catch(() => {})
}, },
...@@ -276,6 +276,37 @@ App({ ...@@ -276,6 +276,37 @@ App({
}, },
/** /**
* 查询我管理的俱乐部审核数量
* @function
* @param
* @returns
*/
queryClubEstablish: function () {
this.request({
url: 'v3/club/getMyCreateClub',
params: {
'pageNo': 1,
'pageSize': -1,
}
}).then((response) => {
let funcData = response.data.list
let funcExamine = 0
for (let i = 0, l = funcData.length; i < l; i++) {
funcExamine = funcExamine + Number(funcData[i].count) + 1
}
if (funcExamine > 0) {
wx.setTabBarItem({
'index': 4,
'text': '我的',
'iconPath': 'image/tabbar/mine-red.png',
'selectedIconPath': 'image/tabbar/mine-s-red.png',
})
}
wx.setStorageSync('clubExamine', funcExamine)
}).catch((response) => {})
},
/**
* 全局函数 - 设置商店信息 * 全局函数 - 设置商店信息
* @function * @function
* @param * @param
......
{ {
"pages": [ "pages": [
"pages/home/home/home", "pages/home/home/home",
"pages/home/guide/guide", "pages/home/guide/guide",
"pages/home/history/history", "pages/home/history/history",
...@@ -57,6 +59,7 @@ ...@@ -57,6 +59,7 @@
"pages/mall/exchange-tip/exchange-tip", "pages/mall/exchange-tip/exchange-tip",
"pages/mall/exchange-state/exchange-state", "pages/mall/exchange-state/exchange-state",
"pages/mall/exchange-record/exchange-record", "pages/mall/exchange-record/exchange-record",
"pages/mall/exchange-submit/exchange-submit",
"pages/login/login" "pages/login/login"
], ],
"usingComponents": { "usingComponents": {
......
...@@ -23,6 +23,11 @@ ...@@ -23,6 +23,11 @@
height: 32rpx; height: 32rpx;
} }
.icon_32 {
width: 32rpx;
height: 32rpx;
}
.icon_40 { .icon_40 {
width: 40rpx; width: 40rpx;
height: 40rpx; height: 40rpx;
...@@ -38,6 +43,11 @@ ...@@ -38,6 +43,11 @@
height: 80rpx; height: 80rpx;
} }
.icon_136 {
width: 136rpx;
height: 136rpx;
}
.bg-gradient { .bg-gradient {
background: linear-gradient(180deg, #FFFFFF 0%, #F3F4F6 20%, #F3F4F6 100%); background: linear-gradient(180deg, #FFFFFF 0%, #F3F4F6 20%, #F3F4F6 100%);
} }
......
...@@ -31,8 +31,8 @@ Component({ ...@@ -31,8 +31,8 @@ Component({
}, },
methods: { methods: {
onInputBlur: function (funcEvent) { onInput: function (funcEvent) {
console.log(funcEvent) console.log('onInputBlur', funcEvent.detail.value)
this.setData({ this.setData({
inputContent: funcEvent.detail.value inputContent: funcEvent.detail.value
}) })
...@@ -45,6 +45,7 @@ Component({ ...@@ -45,6 +45,7 @@ Component({
onConfirm: function () { onConfirm: function () {
this.data.success({ input: this.data.inputContent }) this.data.success({ input: this.data.inputContent })
console.log('Dialog', this.data.inputContent)
App.ui.hideDialog() App.ui.hideDialog()
}, },
} }
......
...@@ -53,7 +53,8 @@ ...@@ -53,7 +53,8 @@
<text class="secondary">{{content}}</text> <text class="secondary">{{content}}</text>
</view> </view>
<view class="dialog-input row cc"> <view class="dialog-input row cc">
<input auto-focus placeholder="{{placeholder}}" placeholder-class="dialog-input-placeholder" bindblur="onInputBlur"></input> <input auto-focus placeholder="{{placeholder}}" placeholder-class="dialog-input-placeholder" bindinput="onInput">
</input>
</view> </view>
<view class="dialog-operation row cb ac border-base"> <view class="dialog-operation row cb ac border-base">
<button class="dialog-operation-cancel row cc ac secondary" bindtap="onCancel">{{cancel}}</button> <button class="dialog-operation-cancel row cc ac secondary" bindtap="onCancel">{{cancel}}</button>
......
...@@ -15,7 +15,6 @@ Component({ ...@@ -15,7 +15,6 @@ Component({
value: '' value: ''
}, },
placeholder: { placeholder: {
type: String, type: String,
value: '' value: ''
...@@ -39,10 +38,21 @@ Component({ ...@@ -39,10 +38,21 @@ Component({
data: { data: {
inputFocus: false, inputFocus: false,
inputWidth: 0,
winText: true, winText: true,
winInput: false, winInput: false,
}, },
ready: function () {
let funcQuery = this.createSelectorQuery()
funcQuery.selectAll('.m-input-boundary').boundingClientRect()
funcQuery.exec((funcResult) => {
this.setData({
inputWidth: funcResult[0][0].width
})
})
},
methods: { methods: {
onInput: function (event) { onInput: function (event) {
console.log('[m-input] onInput') console.log('[m-input] onInput')
......
<view class="m-input"> <view class="m-input">
<view class="container-text row ac {{className}}" hidden="{{!winText}}" bindtap="setInputShow"> <view class="row ac" hidden="{{!winText}}" bindtap="setInputShow">
<view class="m-input-content row ac"> <view class="m-input-boundary row ac {{className}}">
<text class="container-text-value" hidden="{{value === '' ? true : false}}">{{value}}</text> <text class="m-input-text-content" hidden="{{value === '' ? true : false}}">{{value}}</text>
<text class="container-text-placeholder" hidden="{{value === '' ? false : true}}">{{placeholder}}</text> <text class="m-input-text-placeholder" hidden="{{value === '' ? false : true}}">{{placeholder}}</text>
</view> </view>
</view> </view>
<view class="container-input row ac {{className}}" hidden="{{!winInput}}"> <view class="row ac" hidden="{{!winInput}}">
<view class="m-input-content row ac"> <view class="m-input-boundary row ac {{className}}">
<input <input
class="row ac" class="m-input-input-content row ac"
value="{{value}}" value="{{value}}"
type="{{type}}" type="{{type}}"
maxlength="{{maxlength}}" maxlength="{{maxlength}}"
placeholder="{{placeholder}}" placeholder="{{placeholder}}"
placeholder-class="container-text-placeholder" placeholder-style="{{'width: ' + inputWidth + 'px;'}}"
placeholder-class="m-input-input-placeholder"
focus="{{inputFocus}}" focus="{{inputFocus}}"
bindinput="onInput" bindinput="onInput"
bindfocus="onInputFocus" bindfocus="onInputFocus"
......
.m-input { .m-input-boundary {
position: relative; position: relative;
}
.m-input-content {
width: 100%;
height: 100%;
overflow-x: scroll; overflow-x: scroll;
} }
.container-text-value { /* 显示文本样式 */
.m-input-text-content {
white-space: nowrap; white-space: nowrap;
color: #000000; color: #000000;
} }
.container-text-placeholder { .m-input-text-placeholder {
width: 100% !important;
white-space: nowrap; white-space: nowrap;
color: #C2C7CF; color: #C2C7CF;
} }
.container-input { /* 输入控件样式 */
color: #15191F; .m-input-input-content {
width: 100%;
height: 100%;
} }
.container-input > input { .m-input-input-placeholder {
width: 100%;
} }
\ No newline at end of file
...@@ -18,6 +18,11 @@ let Development = { ...@@ -18,6 +18,11 @@ let Development = {
// appId 程序内部交互确定门店 // appId 程序内部交互确定门店
// id 数据库门店 id // id 数据库门店 id
shopId: [ shopId: [
// 特殊门店 - 页面没有入口,只作信息展示
{ appId: 0, id: '03d9806e6f534152b20d9733f854c43d', logo: '', commodityLogo: '', cover: 'shop/cover-0.png', printUse: '', print: '', name: '碧海银湖', title: ['碧海银湖', '碧海银湖', '碧海银湖', '碧海银湖', '碧海银湖', '碧海银湖', '碧海银湖'] },
{ appId: 0, id: '2da1a0cd375447f6b7e51d06b11b5300', logo: '', commodityLogo: '', cover: 'shop/cover-0.png', printUse: '', print: '', name: '碧海银湖', title: ['碧海银湖', '碧海银湖', '碧海银湖', '碧海银湖', '碧海银湖', '碧海银湖', '碧海银湖'] },
// 普通门店
{ appId: 1, id: '581be62a80bb4f0485abd87abcf64dc0', logo: 'shop/logo-1.png', commodityLogo: 'shop/commodity-logo-1.png', cover: 'shop/cover-1.png', printUse: 'shop/print/print-1-1.png', print: 'shop/print/print-1-2.png', name: '海错图', title: ['海错图', '海错图购票', '海错图', '海错图文创店', '海错图', '海错图', '海错图'] }, { appId: 1, id: '581be62a80bb4f0485abd87abcf64dc0', logo: 'shop/logo-1.png', commodityLogo: 'shop/commodity-logo-1.png', cover: 'shop/cover-1.png', printUse: 'shop/print/print-1-1.png', print: 'shop/print/print-1-2.png', name: '海错图', title: ['海错图', '海错图购票', '海错图', '海错图文创店', '海错图', '海错图', '海错图'] },
{ appId: 2, id: '3cfe2e3b8b4342e8b62f8b45daf60d91', logo: 'shop/logo-2.png', commodityLogo: 'shop/commodity-logo-2.png', cover: 'shop/cover-2.png', printUse: 'shop/print/print-2-1.png', print: 'shop/print/print-2-2.png', name: '星空影院', title: ['星空影院', '星空影院', '星空影院', '星空影院', '星空影院', '星空影院', '星空影院'] }, { appId: 2, id: '3cfe2e3b8b4342e8b62f8b45daf60d91', logo: 'shop/logo-2.png', commodityLogo: 'shop/commodity-logo-2.png', cover: 'shop/cover-2.png', printUse: 'shop/print/print-2-1.png', print: 'shop/print/print-2-2.png', name: '星空影院', title: ['星空影院', '星空影院', '星空影院', '星空影院', '星空影院', '星空影院', '星空影院'] },
{ appId: 3, id: '8a3e59c57f564c569b3d7bb278ea50b3', logo: 'shop/logo-3.png', commodityLogo: 'shop/commodity-logo-3.png', cover: 'shop/cover-3.png', printUse: 'shop/print/print-3-1.png', print: 'shop/print/print-3-2.png', name: '儿童营地', title: ['儿童营地', '儿童营地入园购票', '儿童营地', '儿童营地', '儿童营地', '儿童营地接待区', '儿童营地'] }, { appId: 3, id: '8a3e59c57f564c569b3d7bb278ea50b3', logo: 'shop/logo-3.png', commodityLogo: 'shop/commodity-logo-3.png', cover: 'shop/cover-3.png', printUse: 'shop/print/print-3-1.png', print: 'shop/print/print-3-2.png', name: '儿童营地', title: ['儿童营地', '儿童营地入园购票', '儿童营地', '儿童营地', '儿童营地', '儿童营地接待区', '儿童营地'] },
......

503 Bytes | W: | H:

481 Bytes | W: | H:

image/icon/shop-2.png
image/icon/shop-2.png
image/icon/shop-2.png
image/icon/shop-2.png
  • 2-up
  • Swipe
  • Onion skin

5.47 KB | W: | H:

1019 Bytes | W: | H:

image/tabbar/service-s.png
image/tabbar/service-s.png
image/tabbar/service-s.png
image/tabbar/service-s.png
  • 2-up
  • Swipe
  • Onion skin

7.03 KB | W: | H:

990 Bytes | W: | H:

image/tabbar/service.png
image/tabbar/service.png
image/tabbar/service.png
image/tabbar/service.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -34,7 +34,7 @@ Page({ ...@@ -34,7 +34,7 @@ Page({
let funcData = response.data let funcData = response.data
// 获取自定义的字段 // 获取自定义的字段
let funcCustom = JSON.parse(funcData.jsonData) let funcCustom = funcData.jsonData ? JSON.parse(funcData.jsonData) : []
let funcCustomKey = [] let funcCustomKey = []
let funcEnterInfo = this.enterInfoBuffer let funcEnterInfo = this.enterInfoBuffer
...@@ -61,6 +61,8 @@ Page({ ...@@ -61,6 +61,8 @@ Page({
}, },
enterInfoCustom: funcCustomKey, enterInfoCustom: funcCustomKey,
}) })
console.log(this.data.clubInfo)
}).catch((response) => {}) }).catch((response) => {})
}, },
...@@ -82,10 +84,7 @@ Page({ ...@@ -82,10 +84,7 @@ Page({
case 'remark': case 'remark':
this.enterInfoBuffer.remark = funcValue this.enterInfoBuffer.remark = funcValue
this.enterInfoBuffer.errorRemark = App.modular.rule.item('required', funcValue) this.enterInfoBuffer.errorPhone = App.modular.rule.item('remarks', funcValue)
if (this.enterInfoBuffer.errorRemark !== '') {
this.enterInfoBuffer.errorRemark = '备注' + this.enterInfoBuffer.errorRemark
}
break break
case 'other': case 'other':
...@@ -99,7 +98,7 @@ Page({ ...@@ -99,7 +98,7 @@ Page({
this.setData({ this.setData({
enterInfo: this.enterInfoBuffer enterInfo: this.enterInfoBuffer
}) })
if (this.enterInfoBuffer.name !== '' && this.enterInfoBuffer.phone !== '' && this.enterInfoBuffer.remark !== '') { if (this.enterInfoBuffer.name !== '' && this.enterInfoBuffer.phone !== '') {
this.setData({ this.setData({
isButtonEnable: true isButtonEnable: true
}) })
...@@ -119,6 +118,8 @@ Page({ ...@@ -119,6 +118,8 @@ Page({
funcPass = false funcPass = false
} }
// 不需要校验的字段
if (['remark'].indexOf(funcEnterInfoKey[i]) < 0) {
// 常规字段验证,确保没有非空字段。 // 常规字段验证,确保没有非空字段。
if (funcEnterInfoKey[i].indexOf('error') < 0 && this.data.enterInfo[funcEnterInfoKey[i]] === '') { if (funcEnterInfoKey[i].indexOf('error') < 0 && this.data.enterInfo[funcEnterInfoKey[i]] === '') {
let funcEnterInfoCustom = this.data.enterInfoCustom let funcEnterInfoCustom = this.data.enterInfoCustom
...@@ -140,11 +141,17 @@ Page({ ...@@ -140,11 +141,17 @@ Page({
funcPass = false funcPass = false
} }
} }
}
return funcPass return funcPass
}, },
onEnter: function () { onEnter: function () {
if (!this.inspectForm()) return if (!this.inspectForm()) return
App.ui.showToast({
iconType: 'loading',
title: '正在提交',
duration: 30000
})
let funcEnterInfo = this.data.enterInfo let funcEnterInfo = this.data.enterInfo
let funcEnterInfoCustom = this.data.enterInfoCustom let funcEnterInfoCustom = this.data.enterInfoCustom
...@@ -168,6 +175,7 @@ Page({ ...@@ -168,6 +175,7 @@ Page({
'smClub': { id: this.data.clubInfo.id } 'smClub': { id: this.data.clubInfo.id }
} }
}).then((response) => { }).then((response) => {
App.ui.hideToast()
wx.setStorageSync('tempBackInfo', 'winEnter') wx.setStorageSync('tempBackInfo', 'winEnter')
wx.navigateBack() wx.navigateBack()
}).catch((response) => { }).catch((response) => {
......
...@@ -126,7 +126,8 @@ Page({ ...@@ -126,7 +126,8 @@ Page({
for (let i = 0, l = funcData.length; i < l; i++) { for (let i = 0, l = funcData.length; i < l; i++) {
let funcItem = { let funcItem = {
'id': funcData[i].clubId, 'id': funcData[i].clubId,
'logo': funcData[i].logo, 'logo': funcData[i].logo ? funcData[i].logo : this.data.resourcesBase + 'other/default-1.png',
'cover': funcData[i].cover ? funcData[i].cover : this.data.resourcesBase + 'other/default-1.png',
'name': funcData[i].name, 'name': funcData[i].name,
'describe': funcData[i].summary, 'describe': funcData[i].summary,
'member': funcData[i].memberNum, 'member': funcData[i].memberNum,
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
<block wx:for="{{clubList}}" wx:for-item="item" wx:for-index="index" wx:key="index"> <block wx:for="{{clubList}}" wx:for-item="item" wx:for-index="index" wx:key="index">
<view class="club-item row" data-item="{{item}}" bindtap="onClubDetail"> <view class="club-item row" data-item="{{item}}" bindtap="onClubDetail">
<view class="club-logo"> <view class="club-logo">
<image src="{{item.logo}}"></image> <image src="{{item.cover}}"></image>
</view> </view>
<view class="club-info column"> <view class="club-info column">
<view class="club-info-name row ac"> <view class="club-info-name row ac">
......
...@@ -19,6 +19,7 @@ Page({ ...@@ -19,6 +19,7 @@ Page({
clubInfo: { clubInfo: {
'id': options.id, 'id': options.id,
'logo': '', 'logo': '',
'cover': '',
'name': '', 'name': '',
'describe': '', 'describe': '',
'member': '', 'member': '',
...@@ -65,6 +66,7 @@ Page({ ...@@ -65,6 +66,7 @@ Page({
clubInfo: { clubInfo: {
'id': funcData.clubId, 'id': funcData.clubId,
'logo': funcData.logo, 'logo': funcData.logo,
'cover': funcData.cover,
'name': funcData.name, 'name': funcData.name,
'describe': funcData.summary, 'describe': funcData.summary,
'member': funcData.memberNum, 'member': funcData.memberNum,
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<view class="container"> <view class="container">
<view class="banner"> <view class="banner">
<image src=""></image> <image src="{{clubInfo.cover}}"></image>
</view> </view>
<view class="club-info row cc ac"> <view class="club-info row cc ac">
......
...@@ -212,6 +212,22 @@ ...@@ -212,6 +212,22 @@
margin-top: 48rpx; margin-top: 48rpx;
} }
/* 创建俱乐部成功提示 */
.submit-success {
z-index: 7;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, .7);
}
.submit-success > image {
width: 606rpx;
height: 974rpx;
}
/* 权限提醒 */ /* 权限提醒 */
.member-power { .member-power {
z-index: 7; z-index: 7;
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<!-- 原野mojito --> <!-- 原野mojito -->
<swiper-item> <swiper-item>
<view class="shop-banner row con-c"> <view class="shop-banner row con-c">
<image src="{{resourcesBase + 'commodity/home/shop-2.png'}}"></image> <image src="{{resourcesBase + 'commodity/home/shop-3.png'}}"></image>
<button class="row con-c align-c" data-id="{{4}}" bindtap="onBuyFood"></button> <button class="row con-c align-c" data-id="{{4}}" bindtap="onBuyFood"></button>
</view> </view>
<view class="shop-menu"> <view class="shop-menu">
......
<!--pages/mall/exchange-record/exchange-record.wxml--> <m-toast></m-toast>
<text>pages/mall/exchange-record/exchange-record.wxml</text> <m-dialog></m-dialog>
<m-nav titleText="兑换记录" scrollHeight="{{navScroll}}" styleIndex="{{1}}"></m-nav>
<view class="container bg-gradient">
<view class="record_list">
<view class="record_item column">
<view class="row cb ac">
<text class="font_main_26 color_tip">{{'订单编号:' + '1218712538775946059'}}</text>
<text class="font_main_26 color_warning">待发货</text>
</view>
<view class="record_item_info row ac">
<view class="record_item_info_cover">
<image src=""></image>
</view>
<view class="record_item_info_name row ac">
<text class="font_strong_30 color_main">新年限定故宫典藏款白鹤紫霄便签…</text>
</view>
<view class="record_item_info_price column ce ae">
<text class="font_strong_30 color_main">999 积分</text>
<text class="font_main_26 color_tip">x1</text>
</view>
</view>
<view class="record_item_operation row ce ac">
<button class="record_item_operation_logistics row cc ac">查看物流</button>
<button class="record_item_operation_confirm row cc ac">确认收货</button>
</view>
</view>
</view>
</view>
\ No newline at end of file
/* pages/mall/exchange-record/exchange-record.wxss */ .container {
\ No newline at end of file width: 750rpx;
min-height: 100vh;
padding: 0 40rpx;
}
.record_list {
margin: 60rpx 0 0 0;
}
.record_item {
width: 670rpx;
height: 396rpx;
padding: 32rpx 32rpx 40rpx 32rpx;
border-radius: 4px;
background: #FFFFFF;
}
.record_item_info {
margin: 48rpx 0 0 0;
}
.record_item_info_cover {
width: 140rpx;
height: 136rpx;
margin: 0 32rpx 0 0;
background: #999999;
}
.record_item_info_name {
width: 256rpx;
max-height: 80px;
}
.record_item_info_price {
flex-grow: 1;
}
.record_item_operation {
margin: 48rpx 0 0 0;
}
.record_item_operation_logistics {
width: 120rpx;
height: 56rpx;
margin: 0 20rpx 0 0;
border-radius: 4px;
border: 1px solid #C2C7CF;
font-size: 22rpx;
font-weight: 500;
line-height: 32rpx;
color: #656E7B;
}
.record_item_operation_confirm {
width: 120rpx;
height: 56rpx;
border-radius: 4px;
border: 1px solid #86C5E1;
background: #86C5E1;
font-size: 22rpx;
font-weight: 500;
line-height: 32rpx;
color: #FFFFFF;
}
\ No newline at end of file
let App = getApp()
Page({
userInfoBuffer: {
'name': '',
'phone': '',
'errorName': '',
'errorPhone': '',
},
data: {
isExpress: true,
exchangeQuantity: 2,
errorQuantity: '',
shopInfo: {}, // 取货门店
goodsInfo: {}, // 兑换商品
userInfo: {}, // 取货信息
addressList: [], // 收货地址列表
addressSelection: {}, // 选择地址
exchangeForm: {},
},
onLoad: function (options) {
console.log(options)
this.setData({
goodsInfo: {
id: options.id
},
userInfo: this.userInfoBuffer
})
this.queryGoodsDetail()
this.queryUserAddress()
},
onShow: function () {
this.queryUserAddress()
},
/**
* 查询商品详情
* @function
* @returns
*/
queryGoodsDetail: function () {
App.request({
url: 'v3/integralGood/get',
params: {
'commodityId': this.data.goodsInfo.id
}
}).then((response) => {
let funcData = response.data
let funcGoodsInfo = {
'id': funcData.id,
'name': funcData.name,
'type': funcData.goodType, // 商品类型
'cover': funcData.coverImg,
'price': funcData.price,
'banner': funcData.imgs,
'notice': funcData.notification, // 使用须知
'content': funcData.particulars, // 详情
'describe': funcData.synopsis, // 描述
'shopIdUse': funcData.usedOfficeId, // 使用门店
'shopIdAscription': funcData.officeId, // 归属门店
'stockId': funcData.inventoryId, // 库存标识
'stockQuantity': funcData.number, // 库存剩余
'isExpress': Boolean(Number(funcData.expressType)), // 是否支持快递
}
this.setData({
goodsInfo: funcGoodsInfo
})
// 设置门店信息
let funcShopInfo = App.getShopInfo(this.data.goodsInfo.shopIdUse)
if (funcShopInfo.appId === 0) {
funcShopInfo.date = '门店整顿'
this.setData({
shopInfo: funcShopInfo
})
} else {
let funcPointInfo = App.globalData.pointInfo
for (let i = 0, l = funcPointInfo.length; i < l; i++) {
if (funcShopInfo.appId === funcPointInfo[i].appId) {
App.request({
url: 'v1/park/getDetail',
params: {
'id': funcPointInfo[i].id
}
}).then((response) => {
let funcData = response.data
funcShopInfo.date = funcData.businessTime
this.setData({
shopInfo: funcShopInfo
})
}).catch((response) => {})
}
}
}
}).catch((response) => {
})
},
/**
* 查询地址列表
* @function
* @returns
*/
queryUserAddress: function () {
App.request({
url: 'v3/shippingAddress/getAddressList',
params: {
'commodityId': this.data.goodsInfo.id
}
}).then((response) => {
let funcData = response.data
let funcList = []
for (let i = 0, l = funcData.length; i < l; i++) {
let funcItem = {
'id': funcData[i].id,
'name': funcData[i].name,
'area': funcData[i].area.replace(/,/g, ''),
'address': funcData[i].address,
'phone': funcData[i].mobile,
'default': Boolean(Number(funcData[i].defaultFlag)),
}
funcList.push(funcItem)
// 设置默认地址
if (funcItem.default) {
this.setData({
addressSelection: funcItem
})
}
}
this.setData({
addressList: funcList
})
}).catch((response) => {
})
},
/**
* 校验表单数据
* @function
* @returns
*/
inspectForm: function () {
let funcPass = true
let funcUserInfoKey = Object.keys(this.data.userInfo)
for (let i = 0, l = funcUserInfoKey.length; i < l; i++) {
// error 信息验证,如果存在非空字段,则表示有数据校验不通过。
if (funcUserInfoKey[i].indexOf('error') >= 0 && this.data.userInfo[funcUserInfoKey[i]]) {
funcPass = false
}
// 常规字段验证,确保没有非空字段。
if (funcUserInfoKey[i].indexOf('error') < 0 && this.data.userInfo[funcUserInfoKey[i]] === '') {
this.onInputBlur({ detail: { id: funcUserInfoKey[i], value: '' }})
funcPass = false
}
}
return funcPass
},
/**
* 地址选择
* @function
* @returns
*/
onAddressSelection: function () {
// 地址列表为空,默认添加。
if (this.data.addressList.length < 1) {
wx.navigateTo({ url: '/pages/mine/address-operate/address-operate' })
return
}
// 地址列表不为空,跳转选择地址。
wx.navigateTo({ url: '/pages/mine/address-list/address-list' })
},
/**
* 取货类型选择
* @function
* @returns
*/
onExpress: function () {
this.setData({
isExpress: !this.data.isExpress
})
console.log(this.data.isExpress)
},
/**
* 数量减少事件
* @function
* @returns
*/
onQuantityCut: function () {
if (0 < this.data.exchangeQuantity) {
this.setData({
exchangeQuantity: this.data.exchangeQuantity - 1,
errorQuantity: '',
})
}
},
/**
* 数量添加事件
* @function
* @returns
*/
onQuantityAdd: function () {
if (this.data.exchangeQuantity < this.data.goodsInfo.stockQuantity) {
this.setData({
exchangeQuantity: this.data.exchangeQuantity + 1,
errorQuantity: '',
})
}
},
/**
* 输入事件
* @function
* @returns
*/
onInputBlur: function(funcEvent) {
console.log(funcEvent)
let funcType = funcEvent.detail.id
let funcValue = funcEvent.detail.value
switch (funcType) {
case 'name':
this.userInfoBuffer.name = funcValue
this.userInfoBuffer.errorName = App.modular.rule.item('name', funcValue)
break
case 'phone':
this.userInfoBuffer.phone = funcValue
this.userInfoBuffer.errorPhone = App.modular.rule.item('phone', funcValue)
break
}
this.setData({
userInfo: this.userInfoBuffer
})
},
/**
* 立即兑换
* @function
* @returns
*/
onExchange: function () {
// 自取方式,校验表单数据
if (!this.data.isExpress) {
if (!this.inspectForm()) return
}
App.request({
url: 'v1/smUser/getIntegral',
}).then((response) => {
let funcData = response.data
// 积分不足提示
if (funcData.integral < this.data.goodsInfo.price * this.data.exchangeQuantity) {
App.ui.showDialog({
type: 'alert',
title: '积分余额不足,兑换失败',
content: '积分账户余额:' + funcData.integral + '积分',
confirm: '确定',
success: () => {},
fail: () => {},
})
return
}
// 积分充足下单确认
App.ui.showDialog({
type: 'confirm',
title: '确认消费' + (this.data.goodsInfo.price * this.data.exchangeQuantity) + '积分兑换该商品?',
content: '积分账户余额:' + funcData.integral + '积分',
cancel: '取消',
confirm: '确定',
success: () => {
let funcParams = {
'expressType': this.data.isExpress ? 1 : 0,
'integral': this.data.goodsInfo.price * this.data.exchangeQuantity,
'office': { 'id': this.data.goodsInfo.shopIdAscription },
'usedOffice': { 'id': this.data.goodsInfo.shopIdUse },
'smOrderDetails': [{
'smCommodity': { 'id': this.data.goodsInfo.id },
'smInventory': { 'id': this.data.goodsInfo.stockId },
'goodType': this.data.goodsInfo.type,
'name': this.data.goodsInfo.name,
'number': this.data.exchangeQuantity,
'unitPrice': this.data.goodsInfo.price,
'totalPrices': this.data.goodsInfo.price * this.data.exchangeQuantity
}],
'smPersonalDetails': [],
'name': this.data.userInfo.name,
'mobilePhone': this.data.userInfo.phone,
'goodType': this.data.goodsInfo.type,
}
if (this.data.isExpress) {
funcParams.shippingAddress = { 'id': this.data.addressSelection.id }
}
console.log(funcParams)
App.request({
url: 'v3/integral/doIntegral',
params: funcParams,
}).then((response) => {
let funcData = response.data
wx.reLaunch({ url: '/pages/mall/exchange-tip/exchange-tip?id=' + funcData.orderId })
}).catch((response) => {
})
},
fail: () => {
console.log('fail')
},
})
}).catch((response) => {
})
},
/**
* 页面滚动事件
* @function
* @param {object} - funcEvent
* @returns
*/
onPageScroll: function (funcEvent) {
App.pageScroll(funcEvent, this)
},
})
\ No newline at end of file
{
"usingComponents": {}
}
\ No newline at end of file
<m-toast></m-toast>
<m-dialog></m-dialog>
<m-nav titleText="确认订单" scrollHeight="{{navScroll}}" styleIndex="{{1}}"></m-nav>
<view class="container">
<!-- 领取方式 -->
<view class="option column">
<view class="option_list row cb ac">
<block wx:if="{{isExpress}}">
<view class="option_item option_item_selection row cc ac">
<image class="option_item_tick" src="{{imageBase + 'icon/tick-boundary-4.png'}}"></image>
<image class="option_item_icon" src="{{imageBase + 'icon/car-4.png'}}"></image>
<text>快递配送</text>
</view>
<view class="option_item row cc ac" bindtap="onExpress">
<image class="option_item_icon" src="{{imageBase + 'icon/shop-2.png'}}"></image>
<text>门店自提</text>
</view>
</block>
<block wx:if="{{!isExpress}}">
<view class="option_item row cc ac" bindtap="onExpress">
<image class="option_item_icon" src="{{imageBase + 'icon/car-2.png'}}"></image>
<text>快递配送</text>
</view>
<view class="option_item option_item_selection row cc ac">
<image class="option_item_tick" src="{{imageBase + 'icon/tick-boundary-4.png'}}"></image>
<image class="option_item_icon" src="{{imageBase + 'icon/shop-4.png'}}"></image>
<text>门店自提</text>
</view>
</block>
</view>
<view class="option_tip row ac" wx:if="{{isExpress}}">
<image class="icon_32" src="{{imageBase + 'icon/warning-4.png'}}"></image>
<text>快递运费自理,顺丰到付,12-23元不等</text>
</view>
</view>
<!-- 收货信息 -->
<block wx:if="{{isExpress}}">
<view class="address_info">
<view class="part_title">
<text>收货信息</text>
</view>
<view class="address_info_selection row ac" bindtap="onAddressSelection">
<view>
<image class="icon_40" src="{{imageBase + 'icon/location-1.png'}}"></image>
</view>
<!-- 等待添加地址 -->
<block wx:if="{{!addressSelection.id}}">
<view class="address_info_detail row ac">
<text class="address_info_detail_name">添加收货地址</text>
</view>
</block>
<!-- 已经选择地址 -->
<block wx:if="{{addressSelection.id}}">
<view class="address_info_detail cloumn">
<view class="row ac">
<text class="address_info_detail_name">{{addressSelection.name}}</text>
<text class="address_info_detail_phone">{{addressSelection.phone}}</text>
</view>
<view class="row">
<text class="address_info_detail_address">{{addressSelection.area + addressSelection.address}}</text>
</view>
</view>
</block>
<view>
<image class="icon_32" src="{{imageBase + 'icon/arrow-r-2.png'}}"></image>
</view>
</view>
</view>
</block>
<!-- 取货门店 -->
<block wx:if="{{!isExpress}}">
<view class="shop">
<view class="part_title">
<text>取货门店</text>
</view>
<view class="shop_info row ac">
<image class="shop_info_cover" src="{{resourcesBase + shopInfo.cover}}"></image>
<view class="column">
<text class="shop_info_name">{{shopInfo.name}}</text>
<text class="shop_info_time">{{shopInfo.date}}</text>
</view>
</view>
</view>
</block>
<!-- 兑换商品 -->
<view class="goods">
<view class="part_title">
<text>兑换商品</text>
</view>
<view class="goods_list">
<view class="goods_item row ac">
<image class="goods_cover" src="{{goodsInfo.cover}}"></image>
<view class="column">
<text>{{goodsInfo.name}}</text>
<view class="goods_price row ac">
<text>{{goodsInfo.price}}</text>
<text> 积分</text>
</view>
</view>
</view>
</view>
<view class="goods_tip row ce ac">
<text>兑换须知</text>
<image class="icon_32" src="{{imageBase + 'icon/arrow-r-2.png'}}"></image>
</view>
</view>
<!-- 兑换数量 -->
<view class="quantity">
<view class="part_title">
<text>选择兑换数量</text>
</view>
<view class="quantity_input row cb ac" style="padding: 0">
<button class="row cc ac" bindtap="onQuantityCut">
<image src="{{imageBase + 'icon/cut-1.png'}}"></image>
</button>
<text style="{{exchangeQuantity === 0 ? 'color: #C2C7CF' : 'color: #15191F'}}">{{exchangeQuantity}}</text>
<button class="row cc ac" bindtap="onQuantityAdd">
<image src="{{imageBase + 'icon/add-1.png'}}"></image>
</button>
</view>
<view class="quantity_stock row ce ac">
<text>剩余库存:</text>
<text>{{goodsInfo.stockQuantity}}</text>
</view>
</view>
<!-- 取货信息 -->
<block wx:if="{{!isExpress}}">
<view class="contact">
<view class="contact_title column">
<text>填写取货人信息</text>
<text>仅用于接收订单确认短信</text>
</view>
<view class="contact_input column">
<text class="contact_input_mark">姓名</text>
<m-input
inputId="name"
className="input row ac"
maxlength="50"
placeholder="请填写姓名"
bindblur="onInputBlur"
></m-input>
<text>{{userInfo.errorName}}</text>
</view>
<view class="contact_input column">
<text>手机号</text>
<m-input
inputId="phone"
className="input row ac"
maxlength="11"
type="number"
placeholder="请填写手机号"
bindblur="onInputBlur"
></m-input>
<text>{{userInfo.errorPhone}}</text>
</view>
</view>
</block>
<!-- 操作 -->
<view class="operation">
<view class="operation_tip row ac">
<image class="icon_32" src="{{imageBase + 'icon/warning-4.png'}}"></image>
<text>兑换后一经确认不得取消</text>
</view>
<view class="operation_next row cb ac">
<view class="operation_price row ac">
<text>1000</text>
<text>积分</text>
</view>
<view class="operation_button row cc ac">
<button class="row cc ac" bindtap="onExchange">立即兑换</button>
</view>
</view>
</view>
</view>
\ No newline at end of file
.container {
padding: 0 0 260rpx 0;
}
/* 领取方式 */
.option {
width: 750rpx;
margin: 70rpx 0 0 0;
padding: 0 40rpx;
}
.option_list {
width: 100%;
}
.option_item {
position: relative;
width: 320rpx;
height: 160rpx;
border-radius: 4px;
background: #F5F6F8;
font-size: 30rpx;
font-weight: 800;
color: #656E7B;
}
.option_item_icon {
width: 64rpx;
height: 64rpx;
margin: 0 12rpx 0 0;
}
.option_item_tick {
position: absolute;
right: 0;
bottom: 0;
width: 46rpx;
height: 46rpx;
}
.option_item_selection {
border: 3px solid #86C5E1;
box-shadow: 0px 4rpx 48rpx 0px rgba(25, 40, 47, 0.07);
background: #FFFFFF;
color: #5CB5DD;
}
.option_tip {
width: 670rpx;
height: 72rpx;
margin: 32rpx 0 0 0;
padding: 0 32rpx;
border-radius: 4px;
background: #F5EEDF;
font-size: 22rpx;
font-weight: 400;
line-height: 32rpx;
color: #837048;
}
/* 收货信息 */
.part_title {
height: 48rpx;
margin: 64rpx 0 40rpx 0;
font-size: 34rpx;
font-weight: 800;
line-height: 48rpx;
color: #15191F;
}
.address_info_selection {
width: 670rpx;
height: 174rpx;
padding: 38rpx 32rpx 42rpx 32rpx;
border-radius: 4px;
background: #F5F6F8;
}
.address_info_detail {
flex-grow: 1;
margin: 0 32rpx;
}
.address_info_detail_name {
height: 42rpx;
margin: 0 20rpx 0 0;
font-size: 30rpx;
font-weight: 800;
line-height: 42rpx;
color: #15191F;
}
.address_info_detail_phone {
height: 36rpx;
font-size: 26rpx;
font-weight: 400;
line-height: 36rpx;
color: #959DA9;
}
.address_info_detail_address {
height: 36rpx;
margin: 16rpx 0 0 0;
font-size: 26rpx;
font-weight: 400;
line-height: 36rpx;
color: #15191F;
}
/* 兑换门店 */
.shop {
width: 670rpx;
}
.shop_info {
width: 670rpx;
height: 216rpx;
padding: 40rpx 32rpx;
border-radius: 4px;
background: #F5F6F8;
}
.shop_info_cover {
width: 140rpx;
height: 136rpx;
margin: 0 32rpx 0 0;
background: #999999;
}
.shop_info_name {
height: 42rpx;
font-size: 30rpx;
font-weight: 800;
line-height: 42rpx;
color: #15191F;
}
.shop_info_time {
height: 36rpx;
margin: 16rpx 0 0 0;
font-size: 26rpx;
font-weight: 400;
line-height: 36rpx;
color: #656E7B;
}
/* 兑换商品 */
.goods_item {
width: 670rpx;
height: 216rpx;
padding: 40rpx 32rpx;
border-radius: 4px;
background: #F5F6F8;
}
.goods_cover {
width: 140rpx;
height: 136rpx;
margin: 0 32rpx 0 0;
background: #999999;
}
.goods_price {
margin: 16rpx 0 0 0;
}
.goods_price > text:nth-child(1) {
height: 42rpx;
margin: 0 4rpx 0 0;
font-size: 30rpx;
font-weight: 800;
line-height: 42rpx;
color: #EF4F4F;
}
.goods_price > text:nth-child(2) {
height: 36rpx;
font-size: 26rpx;
font-weight: 400;
line-height: 36rpx;
color: #15191F;
}
.goods_tip {
width: 670rpx;
margin: 24rpx 0 0 0;
}
.goods_tip > text {
height: 42rpx;
margin: 0 4rpx 0 0;
font-size: 30rpx;
font-weight: 400;
line-height: 42rpx;
color: #656E7B;
}
/* 兑换数量 */
.quantity {
width: 670rpx;
}
.quantity_input {
width: 670rpx;
height: 80rpx;
margin-top: 32rpx;
padding: 20rpx 24rpx;
border: 1px #DBDFE5 solid;
border-radius: 2px;
}
.quantity_input button:nth-child(1) {
width: 76rpx;
height: 40rpx;
border-right: 1px #DBDFE5 solid;
background: #FFFFFF;
}
.quantity_input text {
font-size: 30rpx;
font-weight: 400;
color: #1E2025;
line-height: 80rpx;
}
.quantity_input button:nth-child(3) {
width: 76rpx;
height: 40rpx;
border-left: 1px #DBDFE5 solid;
background: #FFFFFF;
}
.quantity_input button > image {
width: 32rpx;
height: 32rpx;
}
.quantity_stock {
margin: 24rpx 0 0 0;
}
.quantity_stock > text:nth-child(1) {
height: 42rpx;
font-size: 30rpx;
font-weight: 400;
line-height: 42rpx;
color: #656E7B;
}
.quantity_stock > text:nth-child(2) {
height: 42rpx;
font-size: 30rpx;
font-weight: 400;
line-height: 42rpx;
color: #5DB5DD;
}
/* 取货信息 */
.contact {
width: 670rpx;
}
.contact_input > text:nth-child(1) {
height: 42rpx;
margin-top: 32rpx;
font-size: 30rpx;
font-weight: 400;
line-height: 42rpx;
color: #1E2025;
}
.contact_input .input {
width: 670rpx;
height: 80rpx;
margin: 16rpx 0 8rpx 0;
padding: 0 24rpx;
border-radius: 4rpx;
border: 1px solid #DBDFE5;
font-size: 30rpx;
font-weight: 400;
line-height: 32rpx;
color: #000000;
}
.contact_input > text:nth-child(3) {
height: 32rpx;
font-size: 22rpx;
font-weight: 400;
line-height: 32rpx;
color: #D92B3A;
}
.contact_title > text:nth-child(1) {
height: 48rpx;
font-size: 34rpx;
font-weight: 800;
line-height: 48rpx;
color: #15191F;
}
.contact_title > text:nth-child(2) {
height: 36rpx;
margin: 8rpx 0 20rpx 0;
font-size: 26rpx;
font-weight: 400;
line-height: 36rpx;
color: #959DA9;
}
/* 操作按钮 */
.operation {
position: fixed;
left: 0;
bottom: 0;
}
.operation_tip {
width: 750rpx;
height: 72rpx;
padding: 20rpx 40rpx;
background: #F5EEDF;
font-size: 22rpx;
font-weight: 400;
line-height: 32rpx;
color: #837048;
}
.operation_tip > image {
margin: 0 12rpx 0 0;
}
.operation_next {
width: 750rpx;
height: 128rpx;
padding: 32rpx 40rpx;
background: #FFFFFF;
}
.operation_price > text:nth-child(1) {
height: 42rpx;
margin: 0 8rpx 0 0;
font-size: 30rpx;
font-weight: 800;
line-height: 42rpx;
color: #EF4F4F;
}
.operation_price > text:nth-child(2) {
height: 36rpx;
font-size: 26rpx;
font-weight: 800;
line-height: 36rpx;
color: #15191F;
}
.operation_button > button {
width: 200rpx;
height: 80rpx;
border-radius: 4px;
background: #86C5E1;
font-size: 30rpx;
font-weight: 800;
line-height: 44rpx;
color: #FFFFFF;
}
\ No newline at end of file
// pages/mall/exchange-tip/exchange-tip.js let App = getApp()
Page({ Page({
/**
* 页面的初始数据
*/
data: { data: {
exchangeInfo: {},
}, },
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) { onLoad: function (options) {
this.setData({
}, exchangeInfo: { 'id': options.id }
})
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
}, },
/** onMall: function () {
* 生命周期函数--监听页面隐藏 wx.setStorageSync('tempOptions', 'exchange')
*/ wx.switchTab({ url: '/pages/mine/home/home'})
onHide: function () {
}, },
/** onExchangeState: function () {
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
}, },
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
}) })
\ No newline at end of file
<!--pages/mall/exchange-tip/exchange-tip.wxml--> <view class="container column cb ac">
<text>pages/mall/exchange-tip/exchange-tip.wxml</text> <view class="tip column cc ac">
<image class="icon_136" src="{{imageBase + 'icon/tick-main.png'}}"></image>
<text class="tip_state">兑换成功</text>
</view>
<view class="cloumn">
<button class="operation_prev row cc ac" bindtap="onMall">返回积分商城</button>
<button class="operation_next row cc ac" bindtap="onExchangeState">查看订单</button>
</view>
</view>
\ No newline at end of file
/* pages/mall/exchange-tip/exchange-tip.wxss */ .container {
\ No newline at end of file height: 100vh;
padding: 0 0 120rpx 0;
}
.tip {
flex-grow: 1;
}
.tip_state {
height: 64rpx;
margin: 24rpx 0 0 0;
font-size: 46rpx;
font-weight: 800;
line-height: 64rpx;
color: #15191F;
}
.operation_prev {
width: 670rpx;
height: 96rpx;
border-radius: 4px;
border: 1px solid #86C5E1;
font-size: 30rpx;
font-weight: 800;
line-height: 42rpx;
color: #86C5E1;
}
.operation_next {
width: 670rpx;
height: 96rpx;
margin: 40rpx 0 0 0;
border-radius: 4px;
background: #86C5E1;
font-size: 30rpx;
font-weight: 800;
line-height: 42px;
color: #FFFFFF;
}
\ No newline at end of file
let App = getApp()
Page({ Page({
data: { data: {
banner: [], banner: [],
bannerIndex: 0,
goodsInfo: {},
}, },
onLoad: function (options) { onLoad: function (options) {
this.setData({
goodsInfo: {
'id': options.id
}
})
this.queryGoodsDetail()
},
queryGoodsDetail: function () {
App.request({
url: 'v3/integralGood/get',
params: {
'commodityId': this.data.goodsInfo.id
}
}).then((response) => {
let funcData = response.data
let funcGoodsInfo = {
'id': funcData.id,
'name': funcData.name,
'cover': funcData.coverImg,
'price': funcData.price,
'banner': funcData.imgs,
'notice': funcData.notification, // 使用须知
'content': funcData.particulars, // 详情
'describe': funcData.synopsis, // 描述
'shopIdUse': funcData.usedOfficeId, // 使用门店
'shopIdAscription': funcData.officeId, // 归属门店
'stockId': funcData.inventoryId, // 库存标识
'stockQuantity': funcData.number, // 库存剩余
'isExpress': Boolean(Number(funcData.expressType)), // 是否支持快递
}
this.setData({
goodsInfo: funcGoodsInfo
})
}).catch((response) => {
})
},
onExchange: function () {
wx.navigateTo({ url: '/pages/mall/exchange-submit/exchange-submit?id=' + this.data.goodsInfo.id})
},
/**
* 页面滚动事件
* @function
* @param {object} - funcEvent
* @returns
*/
onPageScroll: function (funcEvent) {
App.pageScroll(funcEvent, this)
}, },
/** /**
......
<m-nav titleText="商品详情" scrollHeight="{{navScroll}}" isOccupy="{{false}}"></m-nav>
<view class="container"> <view class="container">
<view id="banner" class="banner"> <view id="banner" class="banner">
<swiper autoplay circular class="banner-swiper" indicator-dots="{{false}}" interval="2000" duration="500" bindchange="eventSwiperChange"> <swiper autoplay circular class="banner-swiper" indicator-dots="{{false}}" interval="2000" duration="500" bindchange="eventSwiperChange">
<block wx:for="{{banner}}" wx:for-index="index" wx:for-item="item" wx:key="index"> <block wx:for="{{goodsInfo.banner}}" wx:for-index="index" wx:for-item="item" wx:key="index">
<swiper-item class="banner-swiper-item"> <swiper-item class="banner-swiper-item">
<image class="banner-swiper-image" src="{{item}}"></image> <image class="banner-swiper-image" src="{{item}}"></image>
</swiper-item> </swiper-item>
...@@ -14,4 +16,21 @@ ...@@ -14,4 +16,21 @@
<image src="/image/ornament-2.png" mode="widthFix"></image> <image src="/image/ornament-2.png" mode="widthFix"></image>
</view> </view>
</view> </view>
<view class="goods_info column ac">
<text class="goods_info_title">{{goodsInfo.name}}</text>
<text class="goods_info_describe">{{goodsInfo.describe}}</text>
<view class="goods_info_line"></view>
<text class="goods_info_content">{{goodsInfo.content}}</text>
</view>
<view class="goods_info_other row cb ac">
<view class="row ac">
<text class="goods_info_price">{{goodsInfo.price}}</text>
<text class="goods_info_unit">积分</text>
</view>
<view class="operation">
<button class="row cc ac" bindtap="onExchange">去兑换</button>
</view>
</view>
</view> </view>
\ No newline at end of file
...@@ -34,3 +34,87 @@ ...@@ -34,3 +34,87 @@
width: 750rpx; width: 750rpx;
height: 60rpx; height: 60rpx;
} }
/* 详情 */
.goods_info {
width: 750rpx;
padding: 0 40rpx;
}
.goods_info_title {
width: 670rpx;
min-height: 76rpx;
margin: 64rpx 0 0 0;
font-size: 54rpx;
font-weight: 800;
line-height: 76rpx;
color: #15191F;
}
.goods_info_describe {
width: 670rpx;
min-height: 50rpx;
margin: 32rpx 0 0 0;
font-size: 30rpx;
font-weight: 300;
line-height: 50rpx;
color: #959DA9;
}
.goods_info_line {
width: 670rpx;
height: 1px;
margin: 56rpx 0;
background: #E2E7EF;
}
.goods_info_content {
width: 670rpx;
min-height: 300rpx;
font-size: 30rpx;
font-weight: 300;
line-height: 50rpx;
color: #15191F;
}
/* 去兑换 */
.goods_info_other {
position: fixed;
bottom: 0;
left: 0;
width: 750rpx;
height: 128rpx;
padding: 0 40rpx;
border-top: 1px #E2E7EF solid;
}
.goods_info_price {
height: 44rpx;
margin: 0 8rpx 0 0;
font-size: 34rpx;
font-weight: 800;
line-height: 44rpx;
color: #EF4E4E;
}
.goods_info_unit {
height: 44rpx;
font-size: 34rpx;
font-weight: 800;
line-height: 44rpx;
color: #15191F;
}
.operation > button {
width: 200rpx;
height: 80rpx;
border-radius: 4px;
background: #86C5E1;
font-size: 30rpx;
font-weight: 800;
line-height: 44rpx;
color: #FFFFFF;
}
\ No newline at end of file
...@@ -25,12 +25,10 @@ Page({ ...@@ -25,12 +25,10 @@ Page({
}, },
onLoad: function (options) { onLoad: function (options) {
this.setData({
integral: options.integral
})
this.setTabCommodity() this.setTabCommodity()
this.queryRecommend() this.queryRecommend()
this.queryAllGoods() this.queryAllGoods()
this.queryIntegral()
}, },
/** /**
...@@ -57,7 +55,7 @@ Page({ ...@@ -57,7 +55,7 @@ Page({
// 设置专场标题 // 设置专场标题
let funcRecommendTitle = this.data.recommendTitle let funcRecommendTitle = this.data.recommendTitle
switch (funcItem.text) { switch (funcItem.value) {
case '304': case '304':
funcRecommendTitle['1'] = funcItem.text funcRecommendTitle['1'] = funcItem.text
this.setData({ this.setData({
...@@ -72,11 +70,7 @@ Page({ ...@@ -72,11 +70,7 @@ Page({
}) })
break break
} }
console.log(funcRecommendTitle)
} }
console.log(funcList)
this.setData({ this.setData({
tabItemCommodity: this.data.tabItemCommodity.concat(funcList) tabItemCommodity: this.data.tabItemCommodity.concat(funcList)
}) })
...@@ -90,6 +84,7 @@ Page({ ...@@ -90,6 +84,7 @@ Page({
* @returns * @returns
*/ */
queryRecommend: function () { queryRecommend: function () {
// 这里的参数以及添加 funcRecommendList 数据位置是固定的
App.request({ App.request({
url: 'v3/integralGood/getGoodList', url: 'v3/integralGood/getGoodList',
params: { params: {
...@@ -112,7 +107,7 @@ Page({ ...@@ -112,7 +107,7 @@ Page({
} }
let funcRecommendList = this.data.recommendList let funcRecommendList = this.data.recommendList
funcRecommendList['0'] = funcList funcRecommendList['1'] = funcList
this.setData({ this.setData({
recommendList: funcRecommendList recommendList: funcRecommendList
}) })
...@@ -140,7 +135,7 @@ Page({ ...@@ -140,7 +135,7 @@ Page({
} }
let funcRecommendList = this.data.recommendList let funcRecommendList = this.data.recommendList
funcRecommendList['1'] = funcList funcRecommendList['0'] = funcList
this.setData({ this.setData({
recommendList: funcRecommendList recommendList: funcRecommendList
}) })
...@@ -185,8 +180,43 @@ Page({ ...@@ -185,8 +180,43 @@ Page({
}).catch((response) => { }) }).catch((response) => { })
}, },
/**
* 查询积分
* @function
* @param {object} - funcEvent
* @returns
*/
queryIntegral: function () {
App.request({
url: 'v1/smUser/getIntegral',
}).then((response) => {
let funcData = response.data
this.setData({
integral: funcData.integral
})
}).catch((response) => {
})
},
/**
* 商品详情
* @function
* @param {object} - funcEvent
* @returns
*/
onGoodsDetail: function (funcEvent) {
let funcItem = funcEvent.currentTarget.dataset.item
wx.navigateTo({ url: '/pages/mall/goods/goods?id=' + funcItem.id })
},
/**
* tab 类型选择
* @function
* @param {object} - funcEvent
* @returns
*/
onTabChangeCommodity: function (funcEvent) { onTabChangeCommodity: function (funcEvent) {
console.log(funcEvent)
this.setData({ this.setData({
goodsAllList: [], goodsAllList: [],
tabGoodsIndex: funcEvent.detail.index tabGoodsIndex: funcEvent.detail.index
...@@ -194,8 +224,13 @@ Page({ ...@@ -194,8 +224,13 @@ Page({
this.queryAllGoods() this.queryAllGoods()
}, },
/**
* tab 积分选择
* @function
* @param {object} - funcEvent
* @returns
*/
onTabChangePrice: function (funcEvent) { onTabChangePrice: function (funcEvent) {
console.log(funcEvent)
this.setData({ this.setData({
goodsAllList: [], goodsAllList: [],
tabPriceIndex: funcEvent.detail.index tabPriceIndex: funcEvent.detail.index
......
...@@ -25,14 +25,14 @@ ...@@ -25,14 +25,14 @@
<view class="recommend"> <view class="recommend">
<view class="recommend_card"> <view class="recommend_card">
<view class="recommend_title"> <view class="recommend_title">
<text>亲自专场</text> <text>{{recommendTitle['0']}}</text>
</view> </view>
<view class="recommend_list"> <view class="recommend_list">
<block wx:for="{{recommendList['0']}}" wx:for-item="item" wx:for-index="index" wx:key="index"> <block wx:for="{{recommendList['0']}}" wx:for-item="item" wx:for-index="index" wx:key="index">
<view class="recommend_item"> <view class="recommend_item" data-item="{{item}}" bindtap="onGoodsDetail">
<view class="recommend_item_info column"> <view class="recommend_item_info column">
<image src="{{item.cover}}"></image> <image src="{{item.cover}}" mode="aspectFill"></image>
<text class="recommend_item_info_name">{{item.name}}</text> <text class="recommend_item_info_name text_overflow_point">{{item.name}}</text>
<view class="recommend_item_info_price row ac"> <view class="recommend_item_info_price row ac">
<text>{{item.price}}</text> <text>{{item.price}}</text>
<text>积分</text> <text>积分</text>
...@@ -48,14 +48,14 @@ ...@@ -48,14 +48,14 @@
<view class="recommend"> <view class="recommend">
<view class="recommend_card"> <view class="recommend_card">
<view class="recommend_title"> <view class="recommend_title">
<text>亲自专场</text> <text>{{recommendTitle['1']}}</text>
</view> </view>
<view class="recommend_list"> <view class="recommend_list">
<block wx:for="{{recommendList['1']}}" wx:for-item="item" wx:for-index="index" wx:key="index"> <block wx:for="{{recommendList['1']}}" wx:for-item="item" wx:for-index="index" wx:key="index">
<view class="recommend_item"> <view class="recommend_item" data-item="{{item}}" bindtap="onGoodsDetail">
<view class="recommend_item_info column"> <view class="recommend_item_info column">
<image src="{{item.cover}}"></image> <image src="{{item.cover}}" mode="aspectFill"></image>
<text class="recommend_item_info_name">{{item.name}}</text> <text class="recommend_item_info_name text_overflow_point">{{item.name}}</text>
<view class="recommend_item_info_price row ac"> <view class="recommend_item_info_price row ac">
<text>{{item.price}}</text> <text>{{item.price}}</text>
<text>积分</text> <text>积分</text>
...@@ -90,9 +90,9 @@ ...@@ -90,9 +90,9 @@
<view class="routine_list"> <view class="routine_list">
<block wx:for="{{goodsAllList}}" wx:for-item="item" wx:for-index="index" wx:key="index"> <block wx:for="{{goodsAllList}}" wx:for-item="item" wx:for-index="index" wx:key="index">
<view class="routine_item"> <view class="routine_item" data-item="{{item}}" bindtap="onGoodsDetail">
<view class="routine_item_info column"> <view class="routine_item_info column">
<image src="{{item.cover}}"></image> <image src="{{item.cover}}" mode="aspectFill"></image>
<view class="routine_item_info_name row as"> <view class="routine_item_info_name row as">
<text>{{item.name}}</text> <text>{{item.name}}</text>
</view> </view>
......
...@@ -101,6 +101,7 @@ ...@@ -101,6 +101,7 @@
} }
.recommend_item_info_name { .recommend_item_info_name {
max-width: 208rpx;
height: 44rpx; height: 44rpx;
margin: 20rpx 0 0 0; margin: 20rpx 0 0 0;
font-size: 26rpx; font-size: 26rpx;
......
...@@ -17,7 +17,7 @@ Page({ ...@@ -17,7 +17,7 @@ Page({
nameError: false, nameError: false,
phoneError: false, phoneError: false,
addressError:false, addressError: false,
}, },
/** /**
...@@ -39,7 +39,7 @@ Page({ ...@@ -39,7 +39,7 @@ Page({
phone: param.detail.mobile, phone: param.detail.mobile,
region: param.detail.area.split(','), region: param.detail.area.split(','),
address: param.detail.address, address: param.detail.address,
isDefault: param.detail.defaultFlag*1 == 1 isDefault: param.detail.defaultFlag * 1 == 1
}) })
} }
} }
...@@ -166,7 +166,7 @@ Page({ ...@@ -166,7 +166,7 @@ Page({
mobile: this.data.phone, mobile: this.data.phone,
area: regionStr, area: regionStr,
address: this.data.address, address: this.data.address,
defaultFlag: this.data.isDefault?1:0, defaultFlag: this.data.isDefault ? 1 : 0,
} }
if (this.data.operate === 'edit') { if (this.data.operate === 'edit') {
...@@ -190,7 +190,7 @@ Page({ ...@@ -190,7 +190,7 @@ Page({
title: '提交成功', title: '提交成功',
duration: 2000 duration: 2000
}) })
setTimeout(()=>{ setTimeout(() => {
wx.navigateBack() wx.navigateBack()
}, 2000) }, 2000)
} else { } else {
...@@ -232,13 +232,13 @@ Page({ ...@@ -232,13 +232,13 @@ Page({
title: '删除成功', title: '删除成功',
duration: 2000 duration: 2000
}) })
setTimeout(()=>{ setTimeout(() => {
wx.navigateBack() wx.navigateBack()
}, 2000) }, 2000)
} }
}) })
}, },
fail: () => { }, fail: () => {},
}) })
} }
......
...@@ -4,16 +4,10 @@ ...@@ -4,16 +4,10 @@
<view class="container"> <view class="container">
<view class="address_info"> <view class="address_info">
<view class="address_item bottom_line"> <view class="address_item bottom_line">
<view class="row ac"> <view class="row ac">
<text class="title">收货人</text> <text class="title">收货人</text>
<m-input <m-input inputId="name" className="address_item_input row ac" value="{{name}}" placeholder="请输入" maxlength="20"
inputId="name"
className="address_item_input row ac"
value="{{name}}"
placeholder="请输入"
maxlength="20"
bindblur="onInputBlur"> bindblur="onInputBlur">
</m-input> </m-input>
</view> </view>
...@@ -25,14 +19,8 @@ ...@@ -25,14 +19,8 @@
<view class="address_item bottom_line"> <view class="address_item bottom_line">
<view class="row ac"> <view class="row ac">
<text class="title">手机号</text> <text class="title">手机号</text>
<m-input <m-input inputId="phone" className="address_item_input row ac" value="{{phone}}" placeholder="请输入"
inputId="phone" maxlength="11" type="number" bindblur="onInputBlur">
className="address_item_input row ac"
value="{{phone}}"
placeholder="请输入"
maxlength="11"
type="number"
bindblur="onInputBlur">
</m-input> </m-input>
</view> </view>
<text class="text_error" wx:if="{{phoneError}}">请填写手机号</text> <text class="text_error" wx:if="{{phoneError}}">请填写手机号</text>
...@@ -40,11 +28,7 @@ ...@@ -40,11 +28,7 @@
<view class="address_item row ac bottom_line"> <view class="address_item row ac bottom_line">
<text class="title">所在地区</text> <text class="title">所在地区</text>
<picker <picker class="address_item_picker" mode="region" bindchange="onRegionChange" value="{{region}}">
class="address_item_picker"
mode="region"
bindchange="onRegionChange"
value="{{region}}">
<view class="row ac cb"> <view class="row ac cb">
<view>{{region[0]}}{{region[1]}}{{region[2]}}</view> <view>{{region[0]}}{{region[1]}}{{region[2]}}</view>
<image class="arrow-more" src="{{imageBase + 'icon/arrow-r-2.png'}}"></image> <image class="arrow-more" src="{{imageBase + 'icon/arrow-r-2.png'}}"></image>
...@@ -55,23 +39,14 @@ ...@@ -55,23 +39,14 @@
<view class="address_item"> <view class="address_item">
<view class="row ac"> <view class="row ac">
<text class="title">详细地址</text> <text class="title">详细地址</text>
<m-input <m-input inputId="address" className="address_item_input" value="{{address}}" placeholder="如街道、门牌号、小区、楼栋号等" maxlength="30" bindblur="onInputBlur"></m-input>
inputId="address"
className="address_item_input"
value="{{address}}"
placeholder="如街道、门牌号、小区、楼栋号等"
maxlength="30"
bindblur="onInputBlur">
</m-input>
</view> </view>
<text class="text_error" wx:if="{{addressError}}">请填写详细地址</text> <text class="text_error" wx:if="{{addressError}}">请填写详细地址</text>
</view> </view>
</view> </view>
<view class="address_info top30rpx"> <view class="address_info top30rpx">
<view class="address_item row ac cb" > <view class="address_item row ac cb">
<text class="title">设为默认地址</text> <text class="title">设为默认地址</text>
<switch checked="{{isDefault}}" bindchange="onSwitchChange"></switch> <switch checked="{{isDefault}}" bindchange="onSwitchChange"></switch>
</view> </view>
...@@ -79,5 +54,4 @@ ...@@ -79,5 +54,4 @@
<button class="button row con-c align-c top40rpx" bindtap="onSubmit">保存</button> <button class="button row con-c align-c top40rpx" bindtap="onSubmit">保存</button>
<button wx:if="{{operate === 'edit'}}" class="button-delete row con-c align-c" bindtap="onDelete">删除收货地址</button> <button wx:if="{{operate === 'edit'}}" class="button-delete row con-c align-c" bindtap="onDelete">删除收货地址</button>
</view> </view>
\ No newline at end of file
...@@ -2,9 +2,11 @@ ...@@ -2,9 +2,11 @@
min-height: 90vh; min-height: 90vh;
background-color: #F8F8FA; background-color: #F8F8FA;
} }
.bottom_line { .bottom_line {
border-bottom: 1px #F8F8FA solid; border-bottom: 1px #F8F8FA solid;
} }
.top30rpx { .top30rpx {
margin-top: 30rpx; margin-top: 30rpx;
} }
...@@ -18,17 +20,20 @@ ...@@ -18,17 +20,20 @@
padding: 0 40rpx; padding: 0 40rpx;
background-color: #FFFFFF; background-color: #FFFFFF;
} }
.address_item { .address_item {
width: 670rpx; width: 670rpx;
min-height: 90rpx; min-height: 90rpx;
padding: 28rpx 0; padding: 28rpx 0;
} }
.title { .title {
min-width: 150rpx; min-width: 150rpx;
font-size: 30rpx; font-size: 30rpx;
font-weight: 400; font-weight: 400;
color: #15191F; color: #15191F;
} }
.text_error { .text_error {
font-size: 23rpx; font-size: 23rpx;
font-weight: 400; font-weight: 400;
...@@ -38,8 +43,8 @@ ...@@ -38,8 +43,8 @@
.address_item_input { .address_item_input {
min-height: 42rpx; min-height: 42rpx;
width: 500rpx; width: 500rpx;
margin-left: 20rpx; margin: 0 20rpx 0 0;
/* text-align: right; */
font-size: 30rpx; font-size: 30rpx;
font-weight: 400; font-weight: 400;
line-height: 42rpx; line-height: 42rpx;
......
...@@ -29,7 +29,6 @@ Page({ ...@@ -29,7 +29,6 @@ Page({
}, },
onLoad: function (options) { onLoad: function (options) {
console.log(options)
switch (options.tab) { switch (options.tab) {
case 'active': case 'active':
options.tab = 0 options.tab = 0
...@@ -241,7 +240,7 @@ Page({ ...@@ -241,7 +240,7 @@ Page({
App.wxRequest({ App.wxRequest({
url: 'v1/activity/getMyActivityList', url: 'v1/activity/getMyActivityList',
data: { data: {
'activeState': '', //""全部 0 未开始 1进行中 2已结束 'activeState': '',
'pageSize': this.data.pageSize, 'pageSize': this.data.pageSize,
'pageNo': this.data.pageNo, 'pageNo': this.data.pageNo,
'type': '1' 'type': '1'
......
...@@ -71,7 +71,12 @@ Page({ ...@@ -71,7 +71,12 @@ Page({
this.setData({ this.setData({
examineList: funcList examineList: funcList
}) })
}).catch((response) => {}) }).catch((response) => {
App.ui.showToast({
iconType: 'error',
title: response.message,
})
})
}, },
/** /**
...@@ -140,13 +145,21 @@ Page({ ...@@ -140,13 +145,21 @@ Page({
onExamineRefuse: function (funcEvent) { onExamineRefuse: function (funcEvent) {
App.ui.showDialog({ App.ui.showDialog({
type: 'input', type: 'input',
title: '是否确认审核通过?', title: '是否确认审核通过?',
content: '审核通过后无法恢复', content: '审核通过后无法恢复',
cancel: '取消', cancel: '取消',
confirm: '确定', confirm: '确定',
placeholder: '不通过原因', placeholder: '不通过原因',
success: (response) => { success: (response) => {
let funcItem = funcEvent.currentTarget.dataset.item let funcItem = funcEvent.currentTarget.dataset.item
if (response.input === '') {
App.ui.showToast({
iconType: 'error',
title: '请填不通过原因',
})
return
}
App.request({ App.request({
url: 'v3/club/doAuditJoin', url: 'v3/club/doAuditJoin',
params: { params: {
...@@ -155,6 +168,10 @@ Page({ ...@@ -155,6 +168,10 @@ Page({
'joinClubAuditId': funcItem.idExamine, 'joinClubAuditId': funcItem.idExamine,
} }
}).then((response) => { }).then((response) => {
App.ui.showToast({
iconType: 'success',
title: '操作成功',
})
this.setData({ this.setData({
examineList: [] examineList: []
}) })
......
...@@ -9,6 +9,9 @@ Page({ ...@@ -9,6 +9,9 @@ Page({
clubList: [], clubList: [],
pageIndex: 1, pageIndex: 1,
pageSize: 5, pageSize: 5,
adminInfo: {},
winAdminInfo: false,
}, },
onLoad: function (options) { onLoad: function (options) {
...@@ -108,6 +111,7 @@ Page({ ...@@ -108,6 +111,7 @@ Page({
}) })
this.setData({ this.setData({
clubList: [], clubList: [],
pageIndex: 1,
}) })
this.queryClubEnter() this.queryClubEnter()
}).catch((response) => {}) }).catch((response) => {})
...@@ -133,6 +137,7 @@ Page({ ...@@ -133,6 +137,7 @@ Page({
}) })
this.setData({ this.setData({
clubList: [], clubList: [],
pageIndex: 1,
}) })
this.queryClubEstablish() this.queryClubEstablish()
}).catch((response) => {}) }).catch((response) => {})
...@@ -234,6 +239,51 @@ Page({ ...@@ -234,6 +239,51 @@ Page({
} }
}, },
/**
* 查看俱乐部管理员微信
* 仅在审核待通过的情况下
* @function
* @param {object} - funcEvent
* @returns
*/
onAdminInfo: function (funcEvent) {
let funcItem = funcEvent.currentTarget.dataset.item
App.request({
url: 'v3/club/getClubAdmin',
params: {
'clubId': funcItem.id,
}
}).then((response) => {
}).catch((response) => {})
this.setData({
adminInfo: {
wx: funcItem.wx
},
winAdminInfo: true
})
},
onAdminInfoClose: function () {
this.setData({
winAdminInfo: false
})
},
/**
* 跳转俱乐部详情
* 仅在审核为通过的情况下
* @function
* @param {object} - funcEvent
* @returns
*/
onClubInfo: function (funcEvent) {
let funcItem = funcEvent.currentTarget.dataset.item
wx.navigateTo({ url: '/pages/club/information/information?id=' + funcItem.id })
},
onExamine: function (funcEvent) { onExamine: function (funcEvent) {
let funcItem = funcEvent.currentTarget.dataset.item let funcItem = funcEvent.currentTarget.dataset.item
wx.navigateTo({ url: '/pages/mine/club-manage/club-manage?id=' + funcItem.id }) wx.navigateTo({ url: '/pages/mine/club-manage/club-manage?id=' + funcItem.id })
......
...@@ -21,13 +21,13 @@ ...@@ -21,13 +21,13 @@
<text>{{item.name}}</text> <text>{{item.name}}</text>
<text class="owner-mark" wx:if="{{item.isOwner}}">业主专享</text> <text class="owner-mark" wx:if="{{item.isOwner}}">业主专享</text>
</view> </view>
<view class="club-info-other row cb ae"> <view class="club-info-other row cb ae" data-item="{{item}}" bindtap="onAdminInfo">
<view class="club-info-examine column"> <view class="club-info-examine column">
<text>{{item.date + ' 提交申请'}}</text> <text>{{item.date + ' 提交申请'}}</text>
<text>{{'审核待通过'}}</text> <text>{{'审核待通过'}}</text>
</view> </view>
<view class="club_operation row cb ae"> <view class="club_operation row cb ae">
<button class="row cc ac" data-item="{{item}}" bindtap="onCancel">取消申请</button> <button class="row cc ac" data-item="{{item}}" catchtap="onCancel">取消申请</button>
</view> </view>
</view> </view>
</view> </view>
...@@ -41,18 +41,18 @@ ...@@ -41,18 +41,18 @@
<text>{{item.name}}</text> <text>{{item.name}}</text>
<text class="owner-mark" wx:if="{{item.isOwner}}">业主专享</text> <text class="owner-mark" wx:if="{{item.isOwner}}">业主专享</text>
</view> </view>
<view class="club-info-other row cb ae"> <view class="club-info-other row cb ae" data-item="{{item}}" bindtap="onClubInfo">
<view class="club_info_member column"> <view class="club_info_member column">
<text>{{item.member + ' 成员'}}</text> <text>{{item.member + ' 成员'}}</text>
<text wx:if="{{tabIndex === 0}}">{{item.date + ' 加入'}}</text> <text wx:if="{{tabIndex === 0}}">{{item.date + ' 加入'}}</text>
<text wx:if="{{tabIndex === 1}}">{{item.date + ' 创建'}}</text> <text wx:if="{{tabIndex === 1}}">{{item.date + ' 创建'}}</text>
</view> </view>
<view class="club_operation row cb ae"> <view class="club_operation row cb ae">
<block wx:if="{{item.examine}}" > <block wx:if="{{item.examine > 0}}" >
<view class="club_operation_examine row cc ac"> <view class="club_operation_examine row cc ac">
<text>{{item.examine}}</text> <text>{{item.examine}}</text>
</view> </view>
<button class="row cc ac"data-item="{{item}}" bindtap="onExamine">入会审核</button> <button class="row cc ac"data-item="{{item}}" catchtap="onExamine">入会审核</button>
</block> </block>
</view> </view>
</view> </view>
...@@ -67,13 +67,13 @@ ...@@ -67,13 +67,13 @@
<text>{{item.name}}</text> <text>{{item.name}}</text>
<text class="owner-mark" wx:if="{{item.isOwner}}">业主专享</text> <text class="owner-mark" wx:if="{{item.isOwner}}">业主专享</text>
</view> </view>
<view class="club-info-other row cb ae"> <view class="club-info-other row cb ae" data-item="{{item}}" bindtap="onClubInfo">
<view class="club-info-examine column"> <view class="club-info-examine column">
<text>{{item.date + ' 提交申请'}}</text> <text>{{item.date + ' 提交申请'}}</text>
<text>{{'审核未通过'}}</text> <text>{{'审核未通过'}}</text>
</view> </view>
<view class="club_operation row cb ae"> <view class="club_operation row cb ae">
<button class="row cc ac" data-item="{{item}}" bindtap="onDelete">删除</button> <button class="row cc ac" data-item="{{item}}" catchtap="onDelete">删除</button>
</view> </view>
</view> </view>
</view> </view>
...@@ -94,3 +94,13 @@ ...@@ -94,3 +94,13 @@
</block> </block>
</view> </view>
</view> </view>
<!-- 管理员微信弹窗 -->
<view class="member-admin row cc ac" hidden="{{!winAdminInfo}}">
<view class="member_admin_info col cc ac">
<text>管理员微信</text>
<image src="{{adminInfo.wx}}"></image>
<text>【长按保存二维码】</text>
<button class="row cc ac" bindtap="onAdminInfoClose">我知道了</button>
</view>
</view>
\ No newline at end of file
...@@ -159,3 +159,60 @@ ...@@ -159,3 +159,60 @@
line-height: 42px; line-height: 42px;
color: #FFFFFF; color: #FFFFFF;
} }
/* 管理员微信弹窗 */
.member-admin {
z-index: 7;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, .7);
}
.member_admin_info {
width: 606rpx;
height: 726rpx;
padding: 56rpx 40rpx 48rpx 40rpx;
border-radius: 4px;
background: #FFFFFF;
}
.member_admin_info > text:nth-child(1) {
height: 72rpx;
font-size: 50rpx;
font-weight: 800;
line-height: 72rpx;
color: #15191F;
}
.member_admin_info > image {
width: 296rpx;
height: 296rpx;
margin-top: 48rpx;
background: #999999;
}
.member_admin_info > text:nth-child(3) {
height: 46rpx;
margin: 32rpx 0 0 0;
font-size: 26rpx;
font-weight: 400;
line-height: 46rpx;
color: #15191F;
}
.member_admin_info > button {
width: 526rpx;
height: 80rpx;
margin-top: 48rpx;
border-radius: 4px;
border: 1px solid #15191F;
font-size: 30rpx;
font-weight: 500;
line-height: 42rpx;
color: #15191F;
}
\ No newline at end of file
...@@ -78,42 +78,29 @@ Page({ ...@@ -78,42 +78,29 @@ Page({
appointmentOtherListBuffer: [], // 其他预约列表,页面不渲染此数组。 appointmentOtherListBuffer: [], // 其他预约列表,页面不渲染此数组。
isMoreAppointment: false, isMoreAppointment: false,
clubExamine: 0,
mobile: '',
nickName: '',
avatarUrl: '/pages/mine/home/image/avatar.png',
statusText: '去认证', statusText: '去认证',
mask: false, mask: false,
type: 0, //判断是否是认证的了 type: 0, //判断是否是认证的了
approveList: ['园区门票优惠', '餐厅价格优惠', 'SPA服务优惠', '免费观看电影', '无须预约入园', '尽享多重特权'],
activityList: [],
activityListBackup: [],
// 右上角消息
passBadge: 0,
foodBadge: 22,
movieBadge: 1,
spaBadge: 0,
artBadge: 101,
myOrder: {
passOrder: [],
artOrder: {
logo: '',
orderList: []
}
},
orderListBackup: [],
integral: 0, //积分 integral: 0, //积分
shopConfig: App.globalData.shopId,
isMonthCard: false,
authInfo: null, authInfo: null,
}, },
onLoad: function (options) {
let funcOptions = wx.getStorageSync('tempOptions')
switch (funcOptions) {
case 'exchange':
wx.removeStorageSync('tempOptions')
this.onIntegralDetail()
break
}
},
onShow: function () { onShow: function () {
this.setData({ this.setData({
clubExamine: wx.getStorageSync('clubExamine'),
isMoreOrder: false, isMoreOrder: false,
isMoreActivity: false, isMoreActivity: false,
}) })
...@@ -506,13 +493,11 @@ Page({ ...@@ -506,13 +493,11 @@ Page({
* @param * @param
* @returns * @returns
*/ */
onIntegralDetail: function (funcEvent) { onIntegralDetail: function () {
let funcIntegral = funcEvent.currentTarget.dataset.integral
// wx.navigateTo({ // wx.navigateTo({
// url: '/pages/mine/accumulate/accumulate?integral=' + integral, // url: '/pages/mine/accumulate/accumulate?integral=' + integral,
// }) // })
wx.navigateTo({ url: '/pages/mall/home/home' })
wx.navigateTo({ url: '/pages/mall/home/home?integral=' + funcIntegral })
}, },
/** /**
......
...@@ -267,7 +267,12 @@ ...@@ -267,7 +267,12 @@
<!-- 我的俱乐部 --> <!-- 我的俱乐部 -->
<view class="club row con-b align-c" bindtap="onToClub"> <view class="club row con-b align-c" bindtap="onToClub">
<view class="club_enter">
<text>我的俱乐部</text> <text>我的俱乐部</text>
</view>
<view class="club_examine row cc ac">
<text>{{clubExamine}}</text>
</view>
<image class="icon" src="{{imageBase + 'icon/arrow-r-2.png'}}"></image> <image class="icon" src="{{imageBase + 'icon/arrow-r-2.png'}}"></image>
</view> </view>
......
...@@ -521,7 +521,31 @@ ...@@ -521,7 +521,31 @@
border-radius: 4rpx; border-radius: 4rpx;
} }
.club text, .club_enter {
flex-grow: 1;
}
.club_examine {
min-width: 32rpx;
height: 32rpx;
margin: 0 8rpx 0 0;
border-radius: 16rpx;
background: #E66060;
}
.club_enter > text {
font-size: 34rpx;
color: #15191f;
font-weight: 600;
}
.club_examine > text {
font-size: 22rpx;
line-height: 32rpx;
text-align: right;
color: #FFFFFF;
}
.service text { .service text {
font-size: 34rpx; font-size: 34rpx;
color: #15191f; color: #15191f;
......
...@@ -46,8 +46,6 @@ Page({ ...@@ -46,8 +46,6 @@ Page({
}, },
onShow: function () { onShow: function () {
console.log(this.data.isDoing)
this.setData({ this.setData({
orderPages: 1, orderPages: 1,
orderList: [], orderList: [],
......
<m-toast></m-toast> <m-toast></m-toast>
<m-dialog></m-dialog> <m-dialog></m-dialog>
<!-- 订单分类选择 --> <!-- 订单分类选择 -->
<view class="order-category row as" style="{{'height: ' + cssCategoryHeight + 'px;padding-top: ' + cssCategoryTop + 'px;'}}"> <view class="order-category row as" style="{{'height: ' + cssCategoryHeight + 'px;padding-top: ' + cssCategoryTop + 'px;'}}">
<view class="row cb ac"> <view class="row cb ac">
......
...@@ -1080,7 +1080,7 @@ Page({ ...@@ -1080,7 +1080,7 @@ Page({
}, },
}).then((response) => { }).then((response) => {
let funcData = response.data let funcData = response.data
pagePayId = funcResponse.orderId pagePayId = funcData.orderId
this.setData({ this.setData({
orderId: pagePayId orderId: pagePayId
}) })
......
...@@ -149,6 +149,7 @@ Page({ ...@@ -149,6 +149,7 @@ Page({
let funcItem = { let funcItem = {
'id': funcData[i].clubId, 'id': funcData[i].clubId,
'logo': funcData[i].logo, 'logo': funcData[i].logo,
'cover': funcData[i].cover,
'name': funcData[i].name, 'name': funcData[i].name,
'describe': funcData[i].summary, 'describe': funcData[i].summary,
'member': funcData[i].memberNum, 'member': funcData[i].memberNum,
......
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
<block wx:for="{{clubList}}" wx:for-index="index" wx:for-item="item" wx:key="index"> <block wx:for="{{clubList}}" wx:for-index="index" wx:for-item="item" wx:key="index">
<view class="club-item row cc" data-item="{{item}}" bindtap="onClubDetail"> <view class="club-item row cc" data-item="{{item}}" bindtap="onClubDetail">
<view class="club-item-info column ac"> <view class="club-item-info column ac">
<image src="{{item.logo}}"></image> <image src="{{item.cover}}"></image>
<text class="club-item-info-name">{{item.name}}</text> <text class="club-item-info-name">{{item.name}}</text>
<text class="club-item-info-owner owner-mark" wx:if="{{item.isOwner}}">业主专享</text> <text class="club-item-info-owner owner-mark" wx:if="{{item.isOwner}}">业主专享</text>
</view> </view>
......
...@@ -390,7 +390,7 @@ ...@@ -390,7 +390,7 @@
<text class="color-white">分</text> <text class="color-white">分</text>
</view> </view>
<view class="evaluate-option-item row align-c"> <view class="evaluate-option-item row align-c">
<image src="{{imageBase + 'icon/shop-2.png'}}"></image> <image src="{{imageBase + 'icon/shop-3.png'}}"></image>
<text>产品</text> <text>产品</text>
<text class="color-white">{{officeProductText}}</text> <text class="color-white">{{officeProductText}}</text>
<text class="color-white">分</text> <text class="color-white">分</text>
......
...@@ -94,7 +94,7 @@ let Output = { ...@@ -94,7 +94,7 @@ let Output = {
'identity': function (value) { 'identity': function (value) {
let funMessage = '' let funMessage = ''
if (value !== '') { if (value !== '') {
let funRegExp = new RegExp('^[1-9][0-9]{5}(18|19|20)[0-9]{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)[0-9]{3}[0-9Xx]$', 'g') let funRegExp = new RegExp('^1(3([0-35-9]\d|4[1-8])|4[14-9]\d|5([0125689]\d|7[1-79])|66\d|7[2-35-8]\d|8\d{2}|9[13589]\d)\d{7}$', 'g')
let funcRegExp = funRegExp.test(value) let funcRegExp = funRegExp.test(value)
if (!funcRegExp) { if (!funcRegExp) {
funMessage = '请输入正确的身份证号码' funMessage = '请输入正确的身份证号码'
...@@ -118,6 +118,17 @@ let Output = { ...@@ -118,6 +118,17 @@ let Output = {
} }
return funMessage return funMessage
}, },
/**
* 备注
* @function
* @param {string} value
* @returns {string}
*/
'remarks': function (value) {
let funMessage = ''
return funMessage
},
} }
export default Output export default Output
\ No newline at end of file
...@@ -15,21 +15,11 @@ textarea { ...@@ -15,21 +15,11 @@ textarea {
box-sizing: border-box !important; box-sizing: border-box !important;
} }
button {
display: inline-block;
margin: 0;
padding: 0;
border-radius: 0rpx;
line-height: 2.4;
}
button::after { button::after {
border: none; border: none;
} }
.toast-image {
width: 80rpx;
height: 80rpx;
}
/* 去除滚动条 */ /* 去除滚动条 */
::-webkit-scrollbar{display: none;} ::-webkit-scrollbar {
display: none;
}
/* 常规颜色 */
.color_main {
color: #15191F;
}
/* 提示颜色 */
.color_tip {
color: #959DA9;
}
/* 警告颜色 */
.color_warning {
color: #E66060;
}
/* 取消颜色 */
.color_cancel {
color: #656E7B;
}
/* 确定颜色 */
.color_submit {
color: #FFFFFF;
}
.font_main_26 {
font-size: 26rpx;
font-weight: 500;
line-height: 36rpx;
}
.font_main_30 {
font-size: 30rpx;
font-weight: 500;
line-height: 40rpx;
}
/* 加粗文本 */
.font_strong_26 {
font-size: 26rpx;
font-weight: 800;
line-height: 36rpx;
}
.font_strong_30 {
font-size: 30rpx;
font-weight: 800;
line-height: 40rpx;
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment