diff --git a/api/index.js b/api/index.js index 49ce09b..1cbf0b7 100644 --- a/api/index.js +++ b/api/index.js @@ -39,6 +39,9 @@ import refund from "./interfaces/refund" // 购物袋 import bag from "./interfaces/bag" +// 增收赋能 +import empower from "./interfaces/empower" + export default { auth, bank, @@ -51,5 +54,6 @@ export default { idcard, withdraw, refund, - bag + bag, + empower } \ No newline at end of file diff --git a/api/interfaces/empower.js b/api/interfaces/empower.js new file mode 100644 index 0000000..55a10b4 --- /dev/null +++ b/api/interfaces/empower.js @@ -0,0 +1,72 @@ + /* + * 手太欠 + * 愿这世界都如故事里一样 美好而动人~ +*/ + +import { req } from "../request" + +//增收赋能 +const lists = () => req({ + url: "empower/index" +}) + +//增收赋能-详情 +const info = (id) => req({ + url: "empower/" + id + "/show" +}) + +//下单前置 +const buyInit = (id, data) => req({ + url : "empower/" + id + "/buy/init", + method : "POST", + data : data +}) + +//下单购买 +const buy = (data) => req({ + url : "empower/buy/order", + method : "POST", + data : data +}) + +// 订单列表初始化 +const orderInit = () => req({ + url : "empower/order/init" +}) + +// 订单列表 +const orderList = (data) => req({ + url : "empower/order/index", + data : data +}) + +// 取消订单 +const orderCancel = (order) => req({ + url : "empower/order/" + order + "/cancel", +}) + +// 核验列表 +const codes = (data) => req({ + url : "empower/code", + method : "POST", + data : data +}) + +// 确认核验 +const sign = (data) => req({ + url : "empower/code/sign", + method : "POST", + data : data +}) + +export default ({ + lists, + info, + buyInit, + buy, + orderInit, + orderList, + orderCancel, + codes, + sign +}) \ No newline at end of file diff --git a/api/request.js b/api/request.js index baffe03..1916203 100644 --- a/api/request.js +++ b/api/request.js @@ -7,9 +7,9 @@ import { errInfo } from './err' import { updToken } from './updateToken' // 正式地址 -const api = "https://api.xuanhuojk.com/api/" +// const api = "https://api.xuanhuojk.com/api/" // 测试地址 -// const api = "https://api.xhtest.douhuofalv.com/api/" +const api = "https://api.xhtest.douhuofalv.com/api/" const header = { "Accept" : "application/json" } diff --git a/app.json b/app.json index 2c15622..7ff5b81 100644 --- a/app.json +++ b/app.json @@ -40,7 +40,12 @@ "pages/refund/logs/logs", "pages/richText/richText", "pages/bag/bag", - "pages/bag/bagConfirm/bagConfirm" + "pages/bag/bagConfirm/bagConfirm", + "pages/empower/index", + "pages/empower/writeOff/writeOff", + "pages/empower/empowerInfo/empowerInfo", + "pages/empower/empowerBuy/empowerBuy", + "pages/empower/empowerOrder/empowerOrder" ], "window": { "backgroundTextStyle": "light", diff --git a/pages/account/index.wxml b/pages/account/index.wxml index ba22041..ed37d72 100644 --- a/pages/account/index.wxml +++ b/pages/account/index.wxml @@ -20,11 +20,18 @@ - 销售补贴考核进度 + + 销售补贴考核进度 + ¥{{examine.amount}} + - {{examine.amount}} + + + + 0 + {{examine.need}} + + + + {{empower.title}} + {{empower.sub_title}} + {{empower.price}} + + + + 报名人 + + 报名信息{{index + 1}}删除 + + + + + + + + + + + + + {{semesters[item.index].title}} + + + + + + 添加报名人 + + + + {{allPrice}} + 共计{{formData.length}}人报名 + + + + \ No newline at end of file diff --git a/pages/empower/empowerBuy/empowerBuy.wxss b/pages/empower/empowerBuy/empowerBuy.wxss new file mode 100644 index 0000000..75b10ae --- /dev/null +++ b/pages/empower/empowerBuy/empowerBuy.wxss @@ -0,0 +1,190 @@ +.content { + background: #f7f8f9; + padding: 30rpx 30rpx 210rpx; + min-height: calc(100vh - 44px); + box-sizing: border-box; +} + +/* 报名人信息 */ +.user-title { + padding-top: 30rpx; + font-size: 30rpx; + line-height: 40rpx; + color: gray; +} + +.user-block { + background: white; + margin-top: 30rpx; + border-radius: 20rpx; + padding: 20rpx 30rpx; +} + +.user-block-flex { + display: flex; + justify-content: space-between; + height: 90rpx; + align-items: center; + font-size: 30rpx; + color: gray; +} + +.user-block-remove { + color: #da2b56; + line-height: 90rpx; +} + +.user-block-input { + display: flex; + justify-content: space-between; + height: 90rpx; + align-items: center; + flex-wrap: wrap; +} + +label { + font-size: 32rpx; + width: 200rpx; +} + +picker, +input { + width: calc(100% - 200rpx); + font-size: 32rpx; +} + +picker { + position: relative; +} + +.user-block-picker { + padding-right: 30rpx; + box-sizing: border-box; + position: relative; + width: calc(100% - 42rpx); + display: inline-block; +} + +.picker-icon { + width: 42rpx; + height: 42rpx; +} + +.user-add { + text-align: center; + background: white; + border-radius: 20rpx; + margin-top: 30rpx; + display: flex; + align-items: center; + height: 120rpx; + justify-content: center; + color: #da2b56; + font-size: 32rpx; +} + +.user-add image { + width: 38rpx; + height: 38rpx; + margin-right: 15rpx; +} + +/* 报名课程信息 */ +.info { + display: flex; + background: white; + padding: 30rpx; + border-radius: 20rpx; + flex-wrap: wrap; + justify-content: space-between; +} + +.info-cover { + width: 180rpx; + height: 180rpx; + border-radius: 10rpx; +} + +.info-text { + width: calc(100% - 210rpx); +} + +.info-title { + font-size: 38rpx; + font-weight: bold; + line-height: 50rpx; + height: 50rpx; +} + +.info-subtitle { + line-height: 40rpx; + height: 80rpx; + font-size: 30rpx; +} + +.info-price { + font-weight: bold; + color: #da2b56; + font-size: 42rpx; + font-family: Arial, Helvetica, sans-serif; + line-height: 50rpx; + height: 50rpx; +} + +.info-price text { + font-size: 80%; + margin-right: 5rpx; +} + +/* 底部 */ +.footer { + position: fixed; + bottom: 0; + left: 0; + right: 0; + padding: 30rpx 30rpx 50rpx; + display: flex; + flex-wrap: wrap; + align-items: center; + z-index: 99; + box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, .04); + background: white; +} + +.footer-text { + width: 200rpx; + margin-right: 30rpx; + flex: 1; +} + +.footer-text-price { + font-weight: bold; + color: #da2b56; + font-size: 40rpx; +} + +.footer-text-price text { + font-size: 80%; + margin-right: 5rpx; +} + +.footer-text-subtitle { + font-size: 28rpx; + color: gray; +} + +.footer-btn { + background: #da2b56; + color: white; + line-height: 100rpx; + border-radius: 50rpx; + flex: 1; + text-align: center; + font-weight: bold; + font-size: 36rpx; + padding: 0 80rpx; +} + +.footer-btn::after { + display: none; +} \ No newline at end of file diff --git a/pages/empower/empowerInfo/empowerInfo.js b/pages/empower/empowerInfo/empowerInfo.js new file mode 100644 index 0000000..a8505ee --- /dev/null +++ b/pages/empower/empowerInfo/empowerInfo.js @@ -0,0 +1,75 @@ +/* + * 手太欠 + * 愿这世界都如故事里一样 美好而动人~ +*/ + +Page({ + + /** + * 页面的初始数据 + */ + data: { + empowerId : '', //增收赋能id + id : '', + cover : '', + title : '', + subtitle : '', + price : '0.00', + semester : null, + count : {}, + content : [] + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.setData({ + empowerId: options.id + }) + this.indexInfo(options.id) + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() {}, + + /** + * 增收赋能-详情 + */ + indexInfo(id) { + wx.$api.empower.info(id).then(res => { + console.log(res.data) + let { cover, title, subtitle, price, semester_current, count, content, id } = res.data; + this.setData({ + id : id, + cover : cover, + title : title, + subtitle : subtitle, + price : price, + semester : semester_current, + count : count, + content : content.replace(/\ {}) + }, + + /** + * 增收赋能-立即购买 + */ + onBuy(){ + if(this.data.count.ing <= 0){ + wx.showToast({ + title: '暂无可报名学期', + icon : 'none' + }) + return + } + + wx.navigateTo({ + url: "/pages/empower/empowerBuy/empowerBuy?id=" + this.data.id + }) + } +}) \ No newline at end of file diff --git a/pages/empower/empowerInfo/empowerInfo.json b/pages/empower/empowerInfo/empowerInfo.json new file mode 100644 index 0000000..3928faa --- /dev/null +++ b/pages/empower/empowerInfo/empowerInfo.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/empower/empowerInfo/empowerInfo.wxml b/pages/empower/empowerInfo/empowerInfo.wxml new file mode 100644 index 0000000..6a813db --- /dev/null +++ b/pages/empower/empowerInfo/empowerInfo.wxml @@ -0,0 +1,36 @@ + + + + + + + + {{ title }} + {{ subtitle }} + + + + {{count.all || '-'}}期 + + + + {{count.over || 0}}期 + + + + {{semester.time.start || '-'}} + + + + ¥{{semester.price || '0.00'}} + + + + + + + + + 立即购买 + + \ No newline at end of file diff --git a/pages/empower/empowerInfo/empowerInfo.wxss b/pages/empower/empowerInfo/empowerInfo.wxss new file mode 100644 index 0000000..5d3fbbd --- /dev/null +++ b/pages/empower/empowerInfo/empowerInfo.wxss @@ -0,0 +1,104 @@ +.content { + padding-bottom: 180rpx; +} + +/* 封面图 */ +.cover { + position: relative; + padding-top: 70%; + background: #f7f8f9; +} + +.cover-src { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +/* 信息 */ +.info { + padding: 40rpx; +} + +.info-title { + font-weight: bold; + font-size: 50rpx; + margin-bottom: 20rpx; + line-height: 65rpx; + color: #333; + text-align: justify; +} + +.info-subtitle { + font-size: 30rpx; + line-height: 50rpx; + margin-bottom: 40rpx; + color: #333; + text-align: justify; +} + +.info-info { + background: #f7f8f9; + padding: 0 30rpx; + font-size: 30rpx; + border-radius: 20rpx; +} + +.info-info-item { + padding: 30rpx 0; + line-height: 40rpx; + display: flex; + justify-content: space-between; +} + +label { + font-weight: bold; + width: 170rpx; +} + +.info-info-item:last-child::after { + display: none; +} + +.info-value { + width: calc(100% - 170rpx); + text-align: right; + font-family: Arial, Helvetica, sans-serif; +} + +.info-value.price { + font-weight: bold; + color: #da2b56; +} + +/* 底部 */ +.footer { + position: fixed; + bottom: 0; + left: 0; + right: 0; + padding: 30rpx 30rpx 50rpx; + display: flex; + flex-wrap: wrap; + align-items: center; + z-index: 99; + background-color: white; + box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, .04); +} + +.footer-btn { + background: #da2b56; + color: white; + line-height: 100rpx; + border-radius: 50rpx; + flex: 1; + text-align: center; + font-weight: bold; + font-size: 36rpx; +} + +.footer-btn.in { + opacity: .6; +} \ No newline at end of file diff --git a/pages/empower/empowerOrder/empowerOrder.js b/pages/empower/empowerOrder/empowerOrder.js new file mode 100644 index 0000000..8eea376 --- /dev/null +++ b/pages/empower/empowerOrder/empowerOrder.js @@ -0,0 +1,178 @@ +/* + * 手太欠 + * 愿这世界都如故事里一样 美好而动人~ +*/ +Page({ + + /** + * 页面的初始数据 + */ + data: { + statusArr : [{ title: '全部订单', id: '' }], + empowerArr : [{ title: '全部课程', id: '' }], + statusIndex : 0, + empowerIndex: 0, + // 报名信息 + users : [], + usersTotal : 0, + usersShow : false, + // 订单列表 + orders : [], + // 分页 + page : {}, // 分页信息 + lodingStats : false,// 加载状态 + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + wx.$api.empower.orderInit().then(res => { + let { status, empower } = res.data; + this.setData({ + statusArr : status, + empowerArr : [...this.data.empowerArr, ...empower] + }) + // 获取列表 + this.getList() + }).catch(err => {}) + }, + + // 筛选类型 + onPickerChange(e){ + this.setData({ + statusIndex: e.detail.value + }) + this.getList() + }, + + // 筛选类型-课程 + onPickerClass(e){ + this.setData({ + empowerIndex: e.detail.value + }) + this.getList() + }, + + /** + * 获取列表 + */ + getList(page) { + wx.$api.empower.orderList({ + page : page || 1, + status : this.data.statusArr[this.data.statusIndex].id, + empower : this.data.empowerArr[this.data.empowerIndex].id + }).then(res => { + let listArr = this.data.orders, + newData = [] + if(page == 1 || page == undefined) listArr = [] + newData = listArr.concat(res.data.data) + newData.map(val => { + val.is_show_type = false + }) + this.setData({ + orders : newData, + page : res.data.page, + lodingStats : false + }) + wx.stopPullDownRefresh() + }).catch(err => {}) + }, + + /** + * 课程数量 + */ + typeTap(e) { + let index = e.currentTarget.dataset.index + this.setData({ + [`orders[${index}].is_show_type`]: !this.data.orders[index].is_show_type + }); + }, + + /** + * 报名信息 + */ + onShowUsers(val) { + let { count, lists } = val.currentTarget.dataset.items + this.setData({ + users : lists, + usersTotal : count, + usersShow : true + }) + }, + + /** + * 报名信息弹出关闭 + */ + usersHide() { + this.setData({ + usersShow: false + }) + }, + + /** + * 取消订单 + */ + onCancel(e){ + let id = e.currentTarget.dataset.id + wx.showModal({ + title : '提示', + content : '取消订单后无法找回,确认取消吗?', + success : modalRes => { + if(modalRes.confirm){ + wx.showLoading({ + title: '加载中...', + mask : true + }) + wx.$api.empower.orderCancel(id).then(res => { + wx.showToast({ + title: '订单已取消', + icon : 'none' + }) + this.getList() + }).catch(err => {}) + } + } + }) + }, + + /** + * 支付 + */ + onPay(e){ + let data = e.currentTarget.dataset.item + wx.redirectTo({ + url: '/pages/pay/index?params=' + encodeURIComponent(JSON.stringify(data)) + }) + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + // 获取订单列表 + this.getList() + }, + + /** + * 上拉加载 + */ + onReachBottom(){ + this.setData({ + lodingStats: true + }) + let pageNumber = this.data.page.current + if(this.data.page.has_more){ + pageNumber++ + // 获取订单列表 + this.getList(pageNumber) + } + }, +}) \ No newline at end of file diff --git a/pages/empower/empowerOrder/empowerOrder.json b/pages/empower/empowerOrder/empowerOrder.json new file mode 100644 index 0000000..3928faa --- /dev/null +++ b/pages/empower/empowerOrder/empowerOrder.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/empower/empowerOrder/empowerOrder.wxml b/pages/empower/empowerOrder/empowerOrder.wxml new file mode 100644 index 0000000..219b318 --- /dev/null +++ b/pages/empower/empowerOrder/empowerOrder.wxml @@ -0,0 +1,98 @@ + + + + + + + {{ statusArr[statusIndex].title }} + + + + + + + {{ empowerArr[empowerIndex].title }} + + + + + + + + + + 客户 + 个人 + {{item.order_no}} + + {{item.status_text}} + + + + + {{item.empower.title}} + + + + + ×{{item.items.count}} + + + + + {{citem.semester.subtitle}}({{citem.name}}) + ¥{{citem.price}} + + + + + ¥{{item.price}} + + + + {{item.created_at}} + + + + {{item.paid_at}} + + + + + 取消 + 支付 + 报名信息 + + + + + + + 加载中... + + + 没有更多了~ + + + + + + + 暂无数据 + + + + + + 报名信息 + + + {{item.name}} + {{item.mobile}} + {{item.semester.subtitle}} + {{item.status_text}} + {{item.semester.address}} + + + + \ No newline at end of file diff --git a/pages/empower/empowerOrder/empowerOrder.wxss b/pages/empower/empowerOrder/empowerOrder.wxss new file mode 100644 index 0000000..d3f46ab --- /dev/null +++ b/pages/empower/empowerOrder/empowerOrder.wxss @@ -0,0 +1,271 @@ +.content { + background: #f7f8f9; + min-height: calc(100vh - 44px); +} + +/* 订单弹出层 */ +.users-back { + position: fixed; + height: 100vh; + width: 100%; + left: 0; + bottom: 0; + z-index: 100; + background-color: rgba(0, 0, 0, .4); + display: none; +} + +.users-back.active { + display: block; +} + +.users-content { + position: fixed; + height: 80vh; + width: 100%; + left: 0; + bottom: 0; + z-index: 101; + background-color: white; + display: none; +} + +.users-content.active { + display: block; +} + +.users-title { + text-align: center; + font-weight: bold; + font-size: 40rpx; + color: #333; + height: 70rpx; + line-height: 70rpx; + padding: 30rpx; + position: relative; +} + +.users-content-icon { + position: absolute; + right: 30rpx; + top: 44rpx; + width: 40rpx; + height: 40rpx; +} + +.users-lists { + padding: 0 30rpx 50rpx; + max-height: 70vh; + overflow-y: scroll; +} + +.users-lists-item { + background: #f7f8f9; + padding: 30rpx; + border-radius: 20rpx; + font-size: 30rpx; + margin-bottom: 30rpx; +} + +.users-item { + position: relative; + line-height: 45rpx; + min-height: 45rpx; + padding-left: 160rpx; + margin: 5rpx 0; + text-align: right; +} + +.users-item label { + position: absolute; + left: 0; + top: 0; + color: gray; +} + +.users-item .bold { + font-weight: bold; + color: #da2b56; +} + +/* 订单筛选 */ +.screen-flex { + display: flex; + flex-wrap: wrap; + position: fixed; + width: 100%; + left: 0; + top: 0; + height: 90rpx; + background-color: white; + z-index: 99; +} + +.screen-picker { + width: 50%; + text-align: center; +} + +.screen-text { + line-height: 90rpx; + height: 90rpx; + display: inline-block; + font-size: 30rpx; +} + +.screen-icon { + margin-left: 5rpx; + width: 34rpx; + height: 34rpx; + vertical-align: -6rpx; +} + +/* 订单为空 */ +.order-null { + height: 80vh; + display: flex; + justify-content: center; + align-items: center; +} + +/* 订单列表 */ +.orders { + padding: 30rpx 0 10rpx; + margin-top: 90rpx; +} + +.orders-item { + margin: 0 30rpx 20rpx; + background-color: white; + border-radius: 20rpx; +} + +.orders-content { + padding: 20rpx 30rpx; +} + +.orders-content-item { + line-height: 70rpx; + display: flex; + justify-content: space-between; + font-size: 30rpx; + color: #111111; +} + +.orders-content-item label { + color: #999999; +} + +.orders-content .orders-content-bottom { + padding-right: 30rpx; + position: relative; +} + +.orders-content-type { + display: flex; +} + +.orders-content-icon { + width: 20rpx; + height: 20rpx; + margin-top: 26rpx; + transition: .3s; +} + +.orders-content-icon.active { + transform: rotate(90deg); +} + +.orders-content-icon { + position: absolute; + right: 0; + top: 0; +} + +.orders-content-block { + background: rgba(68, 110, 254, .03); + padding: 20rpx; + font-size: 28rpx; + border-radius: 10rpx; + margin: 10rpx 0; +} + +.item-flex { + display: flex; + justify-content: space-between; + line-height: 50rpx; +} + +.orders-flex { + border-bottom: solid 1rpx #F6F6F6; + display: flex; + justify-content: space-between; + align-items: center; + padding: 20rpx 30rpx; +} + +.orders-flex:last-child { + border-top: solid 1rpx #F6F6F6; + border-bottom: none; +} + +.orders-tag { + display: inline-block; + background: #da2b56; + font-size: 26rpx; + color: white; + border-radius: 10rpx; + padding: 0 10rpx; + height: 40rpx; + line-height: 40rpx; + margin-right: 10rpx; +} + +.orders-tag.order-tag-my { + background: #da2b56; +} + +.no { + font-size: 30rpx; + color: #111; + line-height: 60rpx; + width: calc(100% - 150rpx); +} + +.state { + color: #da2b56; + font-weight: bold; + font-size: 30rpx; + line-height: 60rpx; + width: 150rpx; + text-align: right; +} + +.btns { + text-align: right; + width: 100%; +} + +.btns-item { + display: inline-block; + height: 70rpx; + line-height: 70rpx; + background: #da2b56; + color: white; + border-radius: 35rpx; + padding: 0 30rpx; + font-size: 30rpx; +} + +.btns-item.btns-border { + line-height: 68rpx; + box-sizing: border-box; + border: solid 1rpx #da2b56; + background: white; + color: #da2b56; + margin-right: 20rpx; +} + +.pack-center { + z-index: 0; +} \ No newline at end of file diff --git a/pages/empower/index.js b/pages/empower/index.js new file mode 100644 index 0000000..735cf93 --- /dev/null +++ b/pages/empower/index.js @@ -0,0 +1,66 @@ +// pages/empower/index.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/empower/index.json b/pages/empower/index.json new file mode 100644 index 0000000..3928faa --- /dev/null +++ b/pages/empower/index.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/empower/index.wxml b/pages/empower/index.wxml new file mode 100644 index 0000000..ac5d2c6 --- /dev/null +++ b/pages/empower/index.wxml @@ -0,0 +1,2 @@ + +pages/empower/index.wxml diff --git a/pages/empower/index.wxss b/pages/empower/index.wxss new file mode 100644 index 0000000..c129eeb --- /dev/null +++ b/pages/empower/index.wxss @@ -0,0 +1 @@ +/* pages/empower/index.wxss */ \ No newline at end of file diff --git a/pages/empower/writeOff/writeOff.js b/pages/empower/writeOff/writeOff.js new file mode 100644 index 0000000..c1db17d --- /dev/null +++ b/pages/empower/writeOff/writeOff.js @@ -0,0 +1,76 @@ +/* + * 手太欠 + * 愿这世界都如故事里一样 美好而动人~ +*/ + +Page({ + + /** + * 页面的初始数据 + */ + data: { + popupShow : false, + code : '', + vouchers : [], + layIndex : 0 + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.setData({ + code: options.scene + }) + this.codesInfo(); + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() {}, + + /** + * 核销列表 + */ + codesInfo() { + wx.$api.empower.codes({ + code: this.data.code + }).then(res => { + this.setData({ + vouchers: res.data + }) + }).catch(err => {}) + }, + + /** + * 报名信息弹出关闭 + */ + usersHide() { + this.setData({ + popupShow: false + }) + }, + + // 显示确认弹出层 + onShowLay(e){ + let index = e.currentTarget.dataset.index + this.setData({ + layIndex : index, + popupShow: true + }) + }, + + // 签到 + onSign(e){ + let id = e.currentTarget.dataset.id + wx.$api.empower.sign({ + item_id: id + }).then(res => { + this.setData({ + popupShow: false + }) + this.codesInfo(); + }).catch(err => { }) + } +}) \ No newline at end of file diff --git a/pages/empower/writeOff/writeOff.json b/pages/empower/writeOff/writeOff.json new file mode 100644 index 0000000..3928faa --- /dev/null +++ b/pages/empower/writeOff/writeOff.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/empower/writeOff/writeOff.wxml b/pages/empower/writeOff/writeOff.wxml new file mode 100644 index 0000000..3008a30 --- /dev/null +++ b/pages/empower/writeOff/writeOff.wxml @@ -0,0 +1,72 @@ + + + + + + + {{item.empower.title}}(第{{item.semester.no}}期) + 报名人:{{item.name}} + 有效期:{{item.semester.end}} + + + {{item.can_sign ? '立即使用': '查看凭证'}} + + + + + + 暂无数据 + + + + + + + 报名信息 + + + + {{vouchers[layIndex].empower.title}} + + + + {{vouchers[layIndex].empower.subtitle}} + + + + {{vouchers[layIndex].name}} + + + + {{vouchers[layIndex].mobile}} + + + + {{vouchers[layIndex].semester.start}} + + + + {{vouchers[layIndex].semester.end}} + + + + {{vouchers[layIndex].semester.address}} + + + + + + + {{vouchers[layIndex].can_sign ? '未签到': '已签到'}} + + + + {{vouchers[layIndex].sign_at}} + + + + + + + + \ No newline at end of file diff --git a/pages/empower/writeOff/writeOff.wxss b/pages/empower/writeOff/writeOff.wxss new file mode 100644 index 0000000..7d4cc7e --- /dev/null +++ b/pages/empower/writeOff/writeOff.wxss @@ -0,0 +1,194 @@ +page { + background-color: #f7f7f7; + padding: 30rpx; + box-sizing: border-box; +} + +/* 票券 */ +.vouchers { + background: white; + border-radius: 20rpx; + margin-bottom: 30rpx; + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + position: relative; +} + +.vouchers-icon { + position: absolute; + width: 100rpx; + height: 100rpx; + z-index: 1; + top: 15%; + left: 53%; + opacity: .5; +} + +.vouchers-info { + position: relative; + padding: 20rpx 30rpx; + font-size: 28rpx; + border-right: dashed 2rpx #ddd; + width: calc(100% - 200rpx); + box-sizing: border-box; +} + +.vouchers-info::after, +.vouchers-info::before { + content: " "; + height: 22rpx; + width: 22rpx; + background: #f7f7f7; + position: absolute; + right: -11rpx; + border-radius: 50%; +} + +.vouchers-info::after { + top: -11rpx; +} + +.vouchers-info::before { + bottom: -11rpx; +} + +.vouchers-info-item { + line-height: 40rpx; + font-size: 26rpx; + color: gray; +} + +.vouchers-info-item.bold { + font-weight: bold; +} + +.vouchers-info-item.title { + font-size: 30rpx; + margin-bottom: 10rpx; + font-weight: bold; + color: #333; +} + +.vouchers-btns { + width: 200rpx; + text-align: center; +} + +.vouchers-btn { + background: #da2b56; + color: white; + line-height: 60rpx; + border-radius: 30rpx; + width: 150rpx; + font-size: 26rpx; + display: inline-block; +} + +/* 核销凭证弹出层 */ +.lay-back { + top: 0; + left: 0; + position: fixed; + width: 100vw; + height: 100vh; + z-index: 998; + background-color: rgba(0, 0, 0, .5); + display: none; +} + +.lay-back.active { + display: block; +} + +.lay-info { + width: 100vw; + box-sizing: border-box; + padding-bottom: 50rpx; + position: fixed; + left: 0; + bottom: 0; + z-index: 999; + background-color: #ffffff; + display: none; + transition: .2s; + height: 65vh; + overflow-y: scroll; +} + +.lay-info.active { + display: block; +} + +.lay-title { + font-size: 40rpx; + font-weight: bold; + text-align: center; + color: #333; + line-height: 60rpx; + padding: 50rpx; + position: relative; +} + +.lay-title-icon { + position: absolute; + right: 30rpx; + top: 44rpx; + width: 40rpx; + height: 40rpx; +} + +.lay-content { + padding: 0 40rpx; +} + +.lay-item { + display: flex; + justify-content: space-between; + font-size: 30rpx; + padding: 10rpx 0; + line-height: 40rpx; +} + +.lay-item label { + color: gray; + width: 160rpx; +} + +.lay-item-val { + width: calc(100% - 160rpx); +} + +.lay-item-val.bold { + color: #da2b56; + font-weight: bold; +} + +.lay-border { + border-bottom: dashed 2rpx #ddd; + margin: 40rpx 0; +} + +.lay-btns { + padding: 40rpx; +} + +button.lay-btn { + width: 100%; + margin: 0; + background: #da2b56; + color: white; + height: 90rpx; + line-height: 90rpx; + padding: 0; + border-radius: 45rpx; +} + +button.lay-btn ::after { + display: none; +} + +button.lay-btn [disabled] { + opacity: .7; +} \ No newline at end of file diff --git a/pages/mall/details/details.js b/pages/mall/details/details.js index 2abd78f..fc70dfc 100644 --- a/pages/mall/details/details.js +++ b/pages/mall/details/details.js @@ -88,8 +88,8 @@ Page({ mask : true }) wx.request({ - // url : 'https://api.xhtest.douhuofalv.com/api/mall/goods/' + this.data.goodsId, - url : 'https://api.xuanhuojk.com/api/mall/goods/' + this.data.goodsId, + url : 'https://api.xhtest.douhuofalv.com/api/mall/goods/' + this.data.goodsId, + // url : 'https://api.xuanhuojk.com/api/mall/goods/' + this.data.goodsId, header : { "Accept" : "application/json", "channel" : "client", @@ -138,9 +138,12 @@ Page({ this.setData({ [temp1]: valueid }) + let newlist = [] let str = '' for (var i in this.data.specselect) { + console.log(this.data.specselect) + if (i == index) { newlist.push(valueid); if (i == 0) { @@ -164,6 +167,8 @@ Page({ }) break; } + + console.log(this.data.selectSkusValues) } this.setData({ specselect: newlist diff --git a/pages/mall/index.js b/pages/mall/index.js index 09c4da2..fdead08 100644 --- a/pages/mall/index.js +++ b/pages/mall/index.js @@ -19,6 +19,8 @@ Page({ buy_sku_id : false,// 身份包产品 can_buy : false,// 是否可购买 certification : false,// 是否已认证 + + empowerArr : [] // 增收赋能 }, /** @@ -55,6 +57,20 @@ Page({ // 获取身份包产品 this.getidpackage() + + // 增收赋能接口 + this.getEmpower() + }, + + /** + * 增收赋能接口 + */ + getEmpower(){ + wx.$api.empower.lists().then(res => { + this.setData({ + empowerArr: res.data + }) + }) }, /** @@ -188,6 +204,21 @@ Page({ url: "/pages/login/index" }) }, + + /** + * 查看增收赋能详情 + */ + onEmpower(e){ + if(wx.getStorageSync("token") != ''){ + wx.navigateTo({ + url: '/pages/empower/empowerInfo/empowerInfo?id=' + e.currentTarget.dataset.id + }) + return + } + wx.navigateTo({ + url: "/pages/login/index" + }) + }, /** * 页面相关事件处理函数--监听用户下拉动作 diff --git a/pages/mall/index.wxml b/pages/mall/index.wxml index 7e00be3..a95990c 100644 --- a/pages/mall/index.wxml +++ b/pages/mall/index.wxml @@ -117,6 +117,7 @@ + @@ -137,7 +138,7 @@ 加载中... - 没有更多了~ + @@ -145,4 +146,21 @@ 暂无商品 + + + + + + 增收赋能类 + + + + + + {{item.title}} + {{item.sub_title}} + ¥{{item.price}}/年 + + + \ No newline at end of file diff --git a/pages/mall/index.wxss b/pages/mall/index.wxss index fa5a443..cfdf4d1 100644 --- a/pages/mall/index.wxss +++ b/pages/mall/index.wxss @@ -266,6 +266,7 @@ page { .goodsList { flex-wrap: wrap; justify-content: flex-start; + margin: 0 -10rpx; } .goodsItem { @@ -330,4 +331,55 @@ page { border-radius: 20rpx; padding: 30rpx 30rpx 60rpx; box-sizing: border-box; +} + +/* 增收赋能 */ +.module { + padding: 30rpx; + box-sizing: border-box; +} + +.module-title { + margin-bottom: 20rpx; + color: #000000; + font-size: 32rpx; + font-weight: 600; +} + +.enable-label { + background-color: #ffffff; + padding: 20rpx; + box-sizing: border-box; + border-radius: 20rpx; + position: relative; + margin-bottom: 30rpx; +} + +.enable-img { + width: 200rpx; + border-radius: 20rpx; +} + +.enable-cont { + position: absolute; + left: 0; + top: 0; + padding: 20rpx 20rpx 20rpx 240rpx; + box-sizing: border-box; +} + +.enable-title { + font-size: 34rpx; + margin: 10rpx 0 15rpx; +} + +.enable-price { + font-size: 36rpx; + color: #f0115c; + font-weight: 600; +} + +.enable-text { + color: #999999; + margin: 10rpx 0 40rpx; } \ No newline at end of file diff --git a/pages/pay/index.js b/pages/pay/index.js index 7c37f6f..4b975a2 100644 --- a/pages/pay/index.js +++ b/pages/pay/index.js @@ -75,6 +75,14 @@ Page({ loding: false }) break; + default: + wx.showToast({ + title: '请选择支付', + icon : 'none' + }) + this.setData({ + loding: false + }) } }, /** diff --git a/pages/sign/sign.js b/pages/sign/sign.js index 23f2024..370adb4 100644 --- a/pages/sign/sign.js +++ b/pages/sign/sign.js @@ -1,66 +1,65 @@ -// pages/sign/sign.js Page({ - /** - * 页面的初始数据 - */ - data: { + /** + * 页面的初始数据 + */ + data: { + + }, - }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, - /** - * 生命周期函数--监听页面加载 - */ - onLoad(options) { + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, - }, + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, - /** - * 生命周期函数--监听页面初次渲染完成 - */ - onReady() { + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, - }, + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, - /** - * 生命周期函数--监听页面显示 - */ - onShow() { + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, - }, + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, - /** - * 生命周期函数--监听页面隐藏 - */ - onHide() { - - }, - - /** - * 生命周期函数--监听页面卸载 - */ - onUnload() { - - }, - - /** - * 页面相关事件处理函数--监听用户下拉动作 - */ - onPullDownRefresh() { - - }, - - /** - * 页面上拉触底事件的处理函数 - */ - onReachBottom() { - - }, - - /** - * 用户点击右上角分享 - */ - onShareAppMessage() { - - } + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } }) \ No newline at end of file diff --git a/pages/sign/sign.wxml b/pages/sign/sign.wxml index 60eb05e..8dcff42 100644 --- a/pages/sign/sign.wxml +++ b/pages/sign/sign.wxml @@ -1,2 +1 @@ - -pages/sign/sign.wxml + \ No newline at end of file diff --git a/pages/sign/sign.wxss b/pages/sign/sign.wxss index 5b1ccef..e69de29 100644 --- a/pages/sign/sign.wxss +++ b/pages/sign/sign.wxss @@ -1 +0,0 @@ -/* pages/sign/sign.wxss */ \ No newline at end of file diff --git a/pages/user/index.wxml b/pages/user/index.wxml index 7173c5f..b8cc959 100644 --- a/pages/user/index.wxml +++ b/pages/user/index.wxml @@ -89,6 +89,13 @@ + + + 增收赋能类 + + {{userData.empower.count}} + + 我的账户 diff --git a/pages/user/index.wxss b/pages/user/index.wxss index 9778411..ccd9b43 100644 --- a/pages/user/index.wxss +++ b/pages/user/index.wxss @@ -130,6 +130,12 @@ page { border: 4rpx solid #ffffff; } +.tool--number { + border-radius: 30rpx; + padding: 0 8rpx; + right: 30rpx; +} + .parent-user { display: flex; padding: 30rpx; diff --git a/project.private.config.json b/project.private.config.json index 9cb3045..0bffeb5 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -10,15 +10,15 @@ "list": [ { "name": "购物车", - "pathName": "pages/bag/bag", + "pathName": "pages/empower/writeOff/writeOff", "query": "", "launchMode": "default", "scene": null }, { - "name": "朋友圈进入详情", - "pathName": "pages/mall/details/details", - "query": "id=3&invite=null", + "name": "提现", + "pathName": "pages/empower/writeOff/writeOff", + "query": "", "launchMode": "default", "scene": 1084 }, diff --git a/static/icons/empowerArrow.png b/static/icons/empowerArrow.png new file mode 100644 index 0000000..8cff5d1 Binary files /dev/null and b/static/icons/empowerArrow.png differ diff --git a/static/icons/sign.png b/static/icons/sign.png new file mode 100644 index 0000000..79cc822 Binary files /dev/null and b/static/icons/sign.png differ diff --git a/static/imgs/tool_00.png b/static/imgs/tool_00.png new file mode 100644 index 0000000..fbd287c Binary files /dev/null and b/static/imgs/tool_00.png differ