├── components └── header │ ├── header.wxss │ ├── header.json │ ├── header.wxml │ └── header.js ├── pages ├── member │ ├── morder │ │ ├── morder.json │ │ ├── morder.js │ │ ├── morder.wxss │ │ └── morder.wxml │ ├── integral │ │ ├── integral.wxml │ │ ├── integral.wxss │ │ ├── integral.json │ │ └── integral.js │ ├── busi │ │ ├── busi.json │ │ ├── busi.wxml │ │ ├── busi.wxss │ │ └── busi.js │ ├── coup │ │ ├── coup.json │ │ ├── coup.js │ │ ├── coup.wxss │ │ └── coup.wxml │ ├── favo │ │ ├── favo.json │ │ ├── favo.js │ │ ├── favo.wxss │ │ └── favo.wxml │ ├── agent │ │ ├── agent.json │ │ ├── agent.wxml │ │ ├── agent.wxss │ │ └── agent.js │ ├── credit │ │ ├── credit.json │ │ ├── credit.js │ │ ├── credit.wxss │ │ └── credit.wxml │ ├── message │ │ ├── message.json │ │ ├── message.js │ │ ├── message.wxss │ │ └── message.wxml │ ├── money │ │ ├── money.json │ │ ├── money.wxml │ │ ├── money.js │ │ └── money.wxss │ ├── notice │ │ ├── notice.json │ │ ├── notice.wxss │ │ ├── notice.wxml │ │ └── notice.js │ ├── recomer │ │ ├── recomer.json │ │ ├── recomer.js │ │ ├── recomer.wxml │ │ └── recomer.wxss │ └── morderinfo │ │ ├── morderinfo.json │ │ ├── morderinfo.js │ │ ├── morderinfo.wxml │ │ └── morderinfo.wxss ├── mem │ ├── mem.json │ ├── mem.js │ ├── mem.wxml │ └── mem.wxss ├── cart │ ├── cart.json │ ├── cart.js │ ├── cart.wxml │ └── cart.wxss ├── class │ ├── class.json │ ├── class.js │ ├── class.wxml │ └── class.wxss ├── good │ ├── good.json │ ├── good.js │ ├── good.wxml │ └── good.wxss ├── index │ ├── index.json │ ├── index.js │ ├── index.wxml │ └── index.wxss ├── kill │ ├── kill.json │ ├── kill.js │ ├── kill.wxss │ └── kill.wxml ├── list │ ├── list.json │ ├── list.js │ ├── list.wxml │ └── list.wxss ├── order │ ├── order.json │ ├── order.js │ ├── order.wxml │ └── order.wxss ├── recom │ ├── recom.json │ ├── recom.js │ ├── recom.wxss │ └── recom.wxml └── article │ ├── article.json │ ├── article.js │ ├── article.wxml │ └── article.wxss ├── static ├── agent.jpg ├── cart.png ├── carto.png ├── class.png ├── favo.png ├── gift.png ├── inb.jpg ├── index.png ├── mar.png ├── mem.png ├── memo.png ├── mess.png ├── reco.png ├── recom.png ├── classo.png ├── cooper.png ├── ic_mea.png ├── ic_meb.png ├── ic_mec.png ├── ic_med.png ├── ic_mee.png ├── indexo.png ├── recomo.png ├── class │ ├── c0.png │ ├── c1.png │ ├── c2.png │ ├── c3.png │ ├── c4.png │ ├── c5.png │ ├── c6.png │ ├── c7.png │ ├── c8.png │ └── c9.png ├── customer.png ├── icon_news.png ├── icon_pay.png ├── product │ ├── 1.png │ ├── 10.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ └── 9.png ├── swaper │ ├── s0.jpg │ └── s1.jpg ├── icon.wxss └── main.wxss ├── module └── common.wxs ├── sitemap.json ├── utils ├── pro.js ├── util.js ├── core.js └── http.js ├── app.js ├── project.config.json ├── app.json └── app.wxss /components/header/header.wxss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pages/member/morder/morder.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /pages/member/integral/integral.wxml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pages/member/integral/integral.wxss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pages/mem/mem.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/cart/cart.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/class/class.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/good/good.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/index/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/kill/kill.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/list/list.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/order/order.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/recom/recom.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/article/article.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/member/busi/busi.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/member/coup/coup.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/member/favo/favo.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/member/agent/agent.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/member/credit/credit.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/member/message/message.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/member/money/money.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/member/notice/notice.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/member/recomer/recomer.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/member/integral/integral.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /pages/member/morderinfo/morderinfo.json: -------------------------------------------------------------------------------- 1 | { 2 | "usingComponents": {} 3 | } -------------------------------------------------------------------------------- /components/header/header.json: -------------------------------------------------------------------------------- 1 | { 2 | "component": true, 3 | "usingComponents": {} 4 | } -------------------------------------------------------------------------------- /static/agent.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/agent.jpg -------------------------------------------------------------------------------- /static/cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/cart.png -------------------------------------------------------------------------------- /static/carto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/carto.png -------------------------------------------------------------------------------- /static/class.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/class.png -------------------------------------------------------------------------------- /static/favo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/favo.png -------------------------------------------------------------------------------- /static/gift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/gift.png -------------------------------------------------------------------------------- /static/inb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/inb.jpg -------------------------------------------------------------------------------- /static/index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/index.png -------------------------------------------------------------------------------- /static/mar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/mar.png -------------------------------------------------------------------------------- /static/mem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/mem.png -------------------------------------------------------------------------------- /static/memo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/memo.png -------------------------------------------------------------------------------- /static/mess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/mess.png -------------------------------------------------------------------------------- /static/reco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/reco.png -------------------------------------------------------------------------------- /static/recom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/recom.png -------------------------------------------------------------------------------- /static/classo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/classo.png -------------------------------------------------------------------------------- /static/cooper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/cooper.png -------------------------------------------------------------------------------- /static/ic_mea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/ic_mea.png -------------------------------------------------------------------------------- /static/ic_meb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/ic_meb.png -------------------------------------------------------------------------------- /static/ic_mec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/ic_mec.png -------------------------------------------------------------------------------- /static/ic_med.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/ic_med.png -------------------------------------------------------------------------------- /static/ic_mee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/ic_mee.png -------------------------------------------------------------------------------- /static/indexo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/indexo.png -------------------------------------------------------------------------------- /static/recomo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/recomo.png -------------------------------------------------------------------------------- /static/class/c0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/class/c0.png -------------------------------------------------------------------------------- /static/class/c1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/class/c1.png -------------------------------------------------------------------------------- /static/class/c2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/class/c2.png -------------------------------------------------------------------------------- /static/class/c3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/class/c3.png -------------------------------------------------------------------------------- /static/class/c4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/class/c4.png -------------------------------------------------------------------------------- /static/class/c5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/class/c5.png -------------------------------------------------------------------------------- /static/class/c6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/class/c6.png -------------------------------------------------------------------------------- /static/class/c7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/class/c7.png -------------------------------------------------------------------------------- /static/class/c8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/class/c8.png -------------------------------------------------------------------------------- /static/class/c9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/class/c9.png -------------------------------------------------------------------------------- /static/customer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/customer.png -------------------------------------------------------------------------------- /static/icon_news.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/icon_news.png -------------------------------------------------------------------------------- /static/icon_pay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/icon_pay.png -------------------------------------------------------------------------------- /static/product/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/product/1.png -------------------------------------------------------------------------------- /static/product/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/product/10.png -------------------------------------------------------------------------------- /static/product/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/product/2.png -------------------------------------------------------------------------------- /static/product/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/product/3.png -------------------------------------------------------------------------------- /static/product/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/product/4.png -------------------------------------------------------------------------------- /static/product/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/product/5.png -------------------------------------------------------------------------------- /static/product/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/product/6.png -------------------------------------------------------------------------------- /static/product/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/product/7.png -------------------------------------------------------------------------------- /static/product/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/product/8.png -------------------------------------------------------------------------------- /static/product/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/product/9.png -------------------------------------------------------------------------------- /static/swaper/s0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/swaper/s0.jpg -------------------------------------------------------------------------------- /static/swaper/s1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PeachCx330/Mall-applet-project/HEAD/static/swaper/s1.jpg -------------------------------------------------------------------------------- /module/common.wxs: -------------------------------------------------------------------------------- 1 | var split = function(str) { 2 | if(!str) { 3 | return 4 | } 5 | return str.split(',') 6 | } 7 | 8 | module.exports = { 9 | split: split 10 | } -------------------------------------------------------------------------------- /sitemap.json: -------------------------------------------------------------------------------- 1 | { 2 | "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", 3 | "rules": [{ 4 | "action": "allow", 5 | "page": "*" 6 | }] 7 | } -------------------------------------------------------------------------------- /pages/member/morder/morder.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | Page({ 4 | 5 | data: { 6 | CustomBar: app.local.CustomBar 7 | }, 8 | 9 | onLoad: function() { 10 | 11 | } 12 | 13 | }) -------------------------------------------------------------------------------- /utils/pro.js: -------------------------------------------------------------------------------- 1 | let price, market, buyNum, list = [] 2 | for(let i=1; i<11; i++) { 3 | price = Math.random()*100 4 | market = Math.random()*10 + price 5 | buyNum = Math.floor(Math.random()*1000) 6 | 7 | list.push({ 8 | id: i, 9 | title: '商品'+i, 10 | price: price.toFixed(2), 11 | market: market.toFixed(2), 12 | buyNum: buyNum 13 | }) 14 | 15 | } 16 | 17 | module.exports = { 18 | list: list 19 | } -------------------------------------------------------------------------------- /pages/member/busi/busi.wxml: -------------------------------------------------------------------------------- 1 |
2 | 商务合作 3 |
4 | 5 | 6 | 商务合作文章详情 7 | 8 | 9 | 10 | 14 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /utils/util.js: -------------------------------------------------------------------------------- 1 | const formatTime = (date) => { 2 | const year = date.getFullYear() 3 | const month = date.getMonth() + 1 4 | const day = date.getDate() 5 | const hour = date.getHours() 6 | const minute = date.getMinutes() 7 | const second = date.getSeconds() 8 | 9 | return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':') 10 | } 11 | 12 | const formatNumber = (n) => { 13 | n = n.toString() 14 | return n[1] ? n : '0' + n 15 | } 16 | 17 | module.exports = { 18 | formatTime: formatTime 19 | } -------------------------------------------------------------------------------- /components/header/header.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /pages/member/agent/agent.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 邀请有礼 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /pages/member/notice/notice.wxss: -------------------------------------------------------------------------------- 1 | .box { 2 | display: flex; 3 | align-items: center; 4 | background-color: #fff; 5 | padding: 30rpx; 6 | margin-top: 1rpx; 7 | } 8 | 9 | .box-img { 10 | width: 80rpx; 11 | height: 80rpx; 12 | margin-right: 30rpx; 13 | } 14 | 15 | .box-info { 16 | flex: 1; 17 | display: flex; 18 | flex-direction: column; 19 | justify-content: space-between; 20 | } 21 | 22 | .box-tit { 23 | display: flex; 24 | justify-content: space-between; 25 | font-size: var(--big); 26 | font-weight: bold; 27 | margin-bottom: 10rpx; 28 | } 29 | 30 | .box-mini { 31 | font-size: var(--mini); 32 | font-weight: normal; 33 | } -------------------------------------------------------------------------------- /pages/member/busi/busi.wxss: -------------------------------------------------------------------------------- 1 | page { 2 | background-color: #fff; 3 | padding-bottom: 89rpx; 4 | } 5 | 6 | .foot { 7 | position: fixed; 8 | bottom: 0; 9 | left: 0; 10 | height: 89rpx; 11 | width: 100%; 12 | z-index: 999; 13 | display: flex; 14 | align-items: center; 15 | justify-content: space-between; 16 | padding: 10rpx 20rpx; 17 | overflow: hidden; 18 | background-color: rgba(170, 170, 170, .1); 19 | } 20 | 21 | .foot-btn { 22 | flex: 1; 23 | font-size: var(--mini); 24 | font-weight: normal; 25 | background-color: transparent; 26 | } 27 | 28 | .foot-btn text { 29 | font-size: var(--biger); 30 | } 31 | 32 | .foot-btn.line { 33 | border-right: 1rpx solid #eee; 34 | } -------------------------------------------------------------------------------- /pages/member/agent/agent.wxss: -------------------------------------------------------------------------------- 1 | page { 2 | background-color: #f2ecde; 3 | } 4 | 5 | .rela { 6 | position: relative; 7 | } 8 | 9 | .head { 10 | position: fixed; 11 | top: 0; 12 | left: 0; 13 | width: 100%; 14 | display: flex; 15 | align-items: center; 16 | padding: 0 100rpx 0 20rpx; 17 | background-color: rgba(255, 255, 255, 0); 18 | } 19 | 20 | .head-back { 21 | width: 80rpx; 22 | } 23 | 24 | .head-tit { 25 | flex: 1; 26 | text-align: center; 27 | } 28 | 29 | .poster { 30 | display: flex; 31 | justify-content: center; 32 | margin-bottom: 30rpx; 33 | } 34 | 35 | .box { 36 | display: flex; 37 | margin: 30rpx 20rpx; 38 | padding: 30rpx; 39 | background-color: #3c373e; 40 | } 41 | 42 | .white { 43 | background-color: #fff; 44 | } -------------------------------------------------------------------------------- /pages/member/notice/notice.wxml: -------------------------------------------------------------------------------- 1 |
2 | 消息 3 |
4 | 5 | 6 | 7 | 8 | 9 | 通知公告 10 | 昨天 11 | 12 | 平台系统消息、公告 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 账户通知 21 | 昨天 22 | 23 | 账户信息通知、订单消息 24 | 25 | -------------------------------------------------------------------------------- /pages/kill/kill.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | let that 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | 11 | }, 12 | 13 | /** 14 | * 生命周期函数--监听页面加载 15 | */ 16 | onLoad: function (options) { 17 | 18 | }, 19 | 20 | /** 21 | * 生命周期函数--监听页面初次渲染完成 22 | */ 23 | onReady: function () { 24 | 25 | }, 26 | 27 | /** 28 | * 生命周期函数--监听页面显示 29 | */ 30 | onShow: function () { 31 | 32 | }, 33 | 34 | /** 35 | * 生命周期函数--监听页面隐藏 36 | */ 37 | onHide: function () { 38 | 39 | }, 40 | 41 | /** 42 | * 生命周期函数--监听页面卸载 43 | */ 44 | onUnload: function () { 45 | 46 | }, 47 | 48 | /** 49 | * 页面相关事件处理函数--监听用户下拉动作 50 | */ 51 | onPullDownRefresh: function () { 52 | 53 | }, 54 | 55 | /** 56 | * 页面上拉触底事件的处理函数 57 | */ 58 | onReachBottom: function () { 59 | 60 | }, 61 | 62 | /** 63 | * 用户点击右上角分享 64 | */ 65 | onShareAppMessage: function () { 66 | 67 | } 68 | }) -------------------------------------------------------------------------------- /pages/article/article.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | let that 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | 11 | }, 12 | 13 | /** 14 | * 生命周期函数--监听页面加载 15 | */ 16 | onLoad: function (options) { 17 | 18 | }, 19 | 20 | /** 21 | * 生命周期函数--监听页面初次渲染完成 22 | */ 23 | onReady: function () { 24 | 25 | }, 26 | 27 | /** 28 | * 生命周期函数--监听页面显示 29 | */ 30 | onShow: function () { 31 | 32 | }, 33 | 34 | /** 35 | * 生命周期函数--监听页面隐藏 36 | */ 37 | onHide: function () { 38 | 39 | }, 40 | 41 | /** 42 | * 生命周期函数--监听页面卸载 43 | */ 44 | onUnload: function () { 45 | 46 | }, 47 | 48 | /** 49 | * 页面相关事件处理函数--监听用户下拉动作 50 | */ 51 | onPullDownRefresh: function () { 52 | 53 | }, 54 | 55 | /** 56 | * 页面上拉触底事件的处理函数 57 | */ 58 | onReachBottom: function () { 59 | 60 | }, 61 | 62 | /** 63 | * 用户点击右上角分享 64 | */ 65 | onShareAppMessage: function () { 66 | 67 | } 68 | }) -------------------------------------------------------------------------------- /pages/order/order.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | let that 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | 11 | }, 12 | 13 | /** 14 | * 生命周期函数--监听页面加载 15 | */ 16 | onLoad: function (options) { 17 | 18 | }, 19 | 20 | /** 21 | * 生命周期函数--监听页面初次渲染完成 22 | */ 23 | onReady: function () { 24 | 25 | }, 26 | 27 | /** 28 | * 生命周期函数--监听页面显示 29 | */ 30 | onShow: function () { 31 | 32 | }, 33 | 34 | /** 35 | * 生命周期函数--监听页面隐藏 36 | */ 37 | onHide: function () { 38 | 39 | }, 40 | 41 | /** 42 | * 生命周期函数--监听页面卸载 43 | */ 44 | onUnload: function () { 45 | 46 | }, 47 | 48 | /** 49 | * 页面相关事件处理函数--监听用户下拉动作 50 | */ 51 | onPullDownRefresh: function () { 52 | 53 | }, 54 | 55 | /** 56 | * 页面上拉触底事件的处理函数 57 | */ 58 | onReachBottom: function () { 59 | 60 | }, 61 | 62 | /** 63 | * 用户点击右上角分享 64 | */ 65 | onShareAppMessage: function () { 66 | 67 | } 68 | }) -------------------------------------------------------------------------------- /pages/member/busi/busi.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | let that 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | 11 | }, 12 | 13 | /** 14 | * 生命周期函数--监听页面加载 15 | */ 16 | onLoad: function (options) { 17 | 18 | }, 19 | 20 | /** 21 | * 生命周期函数--监听页面初次渲染完成 22 | */ 23 | onReady: function () { 24 | 25 | }, 26 | 27 | /** 28 | * 生命周期函数--监听页面显示 29 | */ 30 | onShow: function () { 31 | 32 | }, 33 | 34 | /** 35 | * 生命周期函数--监听页面隐藏 36 | */ 37 | onHide: function () { 38 | 39 | }, 40 | 41 | /** 42 | * 生命周期函数--监听页面卸载 43 | */ 44 | onUnload: function () { 45 | 46 | }, 47 | 48 | /** 49 | * 页面相关事件处理函数--监听用户下拉动作 50 | */ 51 | onPullDownRefresh: function () { 52 | 53 | }, 54 | 55 | /** 56 | * 页面上拉触底事件的处理函数 57 | */ 58 | onReachBottom: function () { 59 | 60 | }, 61 | 62 | /** 63 | * 用户点击右上角分享 64 | */ 65 | onShareAppMessage: function () { 66 | 67 | } 68 | }) -------------------------------------------------------------------------------- /pages/member/coup/coup.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | let that 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | 11 | }, 12 | 13 | /** 14 | * 生命周期函数--监听页面加载 15 | */ 16 | onLoad: function (options) { 17 | 18 | }, 19 | 20 | /** 21 | * 生命周期函数--监听页面初次渲染完成 22 | */ 23 | onReady: function () { 24 | 25 | }, 26 | 27 | /** 28 | * 生命周期函数--监听页面显示 29 | */ 30 | onShow: function () { 31 | 32 | }, 33 | 34 | /** 35 | * 生命周期函数--监听页面隐藏 36 | */ 37 | onHide: function () { 38 | 39 | }, 40 | 41 | /** 42 | * 生命周期函数--监听页面卸载 43 | */ 44 | onUnload: function () { 45 | 46 | }, 47 | 48 | /** 49 | * 页面相关事件处理函数--监听用户下拉动作 50 | */ 51 | onPullDownRefresh: function () { 52 | 53 | }, 54 | 55 | /** 56 | * 页面上拉触底事件的处理函数 57 | */ 58 | onReachBottom: function () { 59 | 60 | }, 61 | 62 | /** 63 | * 用户点击右上角分享 64 | */ 65 | onShareAppMessage: function () { 66 | 67 | } 68 | }) -------------------------------------------------------------------------------- /pages/member/favo/favo.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | let that 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | 11 | }, 12 | 13 | /** 14 | * 生命周期函数--监听页面加载 15 | */ 16 | onLoad: function (options) { 17 | 18 | }, 19 | 20 | /** 21 | * 生命周期函数--监听页面初次渲染完成 22 | */ 23 | onReady: function () { 24 | 25 | }, 26 | 27 | /** 28 | * 生命周期函数--监听页面显示 29 | */ 30 | onShow: function () { 31 | 32 | }, 33 | 34 | /** 35 | * 生命周期函数--监听页面隐藏 36 | */ 37 | onHide: function () { 38 | 39 | }, 40 | 41 | /** 42 | * 生命周期函数--监听页面卸载 43 | */ 44 | onUnload: function () { 45 | 46 | }, 47 | 48 | /** 49 | * 页面相关事件处理函数--监听用户下拉动作 50 | */ 51 | onPullDownRefresh: function () { 52 | 53 | }, 54 | 55 | /** 56 | * 页面上拉触底事件的处理函数 57 | */ 58 | onReachBottom: function () { 59 | 60 | }, 61 | 62 | /** 63 | * 用户点击右上角分享 64 | */ 65 | onShareAppMessage: function () { 66 | 67 | } 68 | }) -------------------------------------------------------------------------------- /pages/member/notice/notice.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | let that 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | 11 | }, 12 | 13 | /** 14 | * 生命周期函数--监听页面加载 15 | */ 16 | onLoad: function (options) { 17 | 18 | }, 19 | 20 | /** 21 | * 生命周期函数--监听页面初次渲染完成 22 | */ 23 | onReady: function () { 24 | 25 | }, 26 | 27 | /** 28 | * 生命周期函数--监听页面显示 29 | */ 30 | onShow: function () { 31 | 32 | }, 33 | 34 | /** 35 | * 生命周期函数--监听页面隐藏 36 | */ 37 | onHide: function () { 38 | 39 | }, 40 | 41 | /** 42 | * 生命周期函数--监听页面卸载 43 | */ 44 | onUnload: function () { 45 | 46 | }, 47 | 48 | /** 49 | * 页面相关事件处理函数--监听用户下拉动作 50 | */ 51 | onPullDownRefresh: function () { 52 | 53 | }, 54 | 55 | /** 56 | * 页面上拉触底事件的处理函数 57 | */ 58 | onReachBottom: function () { 59 | 60 | }, 61 | 62 | /** 63 | * 用户点击右上角分享 64 | */ 65 | onShareAppMessage: function () { 66 | 67 | } 68 | }) -------------------------------------------------------------------------------- /pages/member/credit/credit.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | let that 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | 11 | }, 12 | 13 | /** 14 | * 生命周期函数--监听页面加载 15 | */ 16 | onLoad: function (options) { 17 | 18 | }, 19 | 20 | /** 21 | * 生命周期函数--监听页面初次渲染完成 22 | */ 23 | onReady: function () { 24 | 25 | }, 26 | 27 | /** 28 | * 生命周期函数--监听页面显示 29 | */ 30 | onShow: function () { 31 | 32 | }, 33 | 34 | /** 35 | * 生命周期函数--监听页面隐藏 36 | */ 37 | onHide: function () { 38 | 39 | }, 40 | 41 | /** 42 | * 生命周期函数--监听页面卸载 43 | */ 44 | onUnload: function () { 45 | 46 | }, 47 | 48 | /** 49 | * 页面相关事件处理函数--监听用户下拉动作 50 | */ 51 | onPullDownRefresh: function () { 52 | 53 | }, 54 | 55 | /** 56 | * 页面上拉触底事件的处理函数 57 | */ 58 | onReachBottom: function () { 59 | 60 | }, 61 | 62 | /** 63 | * 用户点击右上角分享 64 | */ 65 | onShareAppMessage: function () { 66 | 67 | } 68 | }) -------------------------------------------------------------------------------- /pages/member/integral/integral.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | let that 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | 11 | }, 12 | 13 | /** 14 | * 生命周期函数--监听页面加载 15 | */ 16 | onLoad: function (options) { 17 | 18 | }, 19 | 20 | /** 21 | * 生命周期函数--监听页面初次渲染完成 22 | */ 23 | onReady: function () { 24 | 25 | }, 26 | 27 | /** 28 | * 生命周期函数--监听页面显示 29 | */ 30 | onShow: function () { 31 | 32 | }, 33 | 34 | /** 35 | * 生命周期函数--监听页面隐藏 36 | */ 37 | onHide: function () { 38 | 39 | }, 40 | 41 | /** 42 | * 生命周期函数--监听页面卸载 43 | */ 44 | onUnload: function () { 45 | 46 | }, 47 | 48 | /** 49 | * 页面相关事件处理函数--监听用户下拉动作 50 | */ 51 | onPullDownRefresh: function () { 52 | 53 | }, 54 | 55 | /** 56 | * 页面上拉触底事件的处理函数 57 | */ 58 | onReachBottom: function () { 59 | 60 | }, 61 | 62 | /** 63 | * 用户点击右上角分享 64 | */ 65 | onShareAppMessage: function () { 66 | 67 | } 68 | }) -------------------------------------------------------------------------------- /pages/member/message/message.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | let that 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | 11 | }, 12 | 13 | /** 14 | * 生命周期函数--监听页面加载 15 | */ 16 | onLoad: function (options) { 17 | 18 | }, 19 | 20 | /** 21 | * 生命周期函数--监听页面初次渲染完成 22 | */ 23 | onReady: function () { 24 | 25 | }, 26 | 27 | /** 28 | * 生命周期函数--监听页面显示 29 | */ 30 | onShow: function () { 31 | 32 | }, 33 | 34 | /** 35 | * 生命周期函数--监听页面隐藏 36 | */ 37 | onHide: function () { 38 | 39 | }, 40 | 41 | /** 42 | * 生命周期函数--监听页面卸载 43 | */ 44 | onUnload: function () { 45 | 46 | }, 47 | 48 | /** 49 | * 页面相关事件处理函数--监听用户下拉动作 50 | */ 51 | onPullDownRefresh: function () { 52 | 53 | }, 54 | 55 | /** 56 | * 页面上拉触底事件的处理函数 57 | */ 58 | onReachBottom: function () { 59 | 60 | }, 61 | 62 | /** 63 | * 用户点击右上角分享 64 | */ 65 | onShareAppMessage: function () { 66 | 67 | } 68 | }) -------------------------------------------------------------------------------- /pages/member/morderinfo/morderinfo.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | let that 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | 11 | }, 12 | 13 | /** 14 | * 生命周期函数--监听页面加载 15 | */ 16 | onLoad: function (options) { 17 | 18 | }, 19 | 20 | /** 21 | * 生命周期函数--监听页面初次渲染完成 22 | */ 23 | onReady: function () { 24 | 25 | }, 26 | 27 | /** 28 | * 生命周期函数--监听页面显示 29 | */ 30 | onShow: function () { 31 | 32 | }, 33 | 34 | /** 35 | * 生命周期函数--监听页面隐藏 36 | */ 37 | onHide: function () { 38 | 39 | }, 40 | 41 | /** 42 | * 生命周期函数--监听页面卸载 43 | */ 44 | onUnload: function () { 45 | 46 | }, 47 | 48 | /** 49 | * 页面相关事件处理函数--监听用户下拉动作 50 | */ 51 | onPullDownRefresh: function () { 52 | 53 | }, 54 | 55 | /** 56 | * 页面上拉触底事件的处理函数 57 | */ 58 | onReachBottom: function () { 59 | 60 | }, 61 | 62 | /** 63 | * 用户点击右上角分享 64 | */ 65 | onShareAppMessage: function () { 66 | 67 | } 68 | }) -------------------------------------------------------------------------------- /pages/member/favo/favo.wxss: -------------------------------------------------------------------------------- 1 | .favo { 2 | width: 100%; 3 | flex: 1; 4 | display: flex; 5 | margin-top: 1rpx; 6 | padding: 20rpx 30rpx; 7 | background-color: #fff; 8 | } 9 | 10 | .favo-img { 11 | flex-shrink: 0; 12 | width: 160rpx; 13 | height: 160rpx; 14 | margin-right: 20rpx; 15 | overflow: hidden; 16 | } 17 | 18 | .favo-img image { 19 | max-height: 100%; 20 | } 21 | 22 | .favo-txt { 23 | flex: 1; 24 | display: flex; 25 | flex-direction: column; 26 | justify-content: space-between; 27 | } 28 | 29 | .favo-tit { 30 | flex: 1; 31 | font-size: var(--big); 32 | white-space: nowrap; 33 | text-overflow: ellipsis; 34 | overflow: hidden; 35 | } 36 | 37 | .favo-price { 38 | font-family: din; 39 | font-size: var(--big); 40 | font-weight: bold; 41 | } 42 | 43 | .favo-bot { 44 | display: flex; 45 | align-items: center; 46 | justify-content: space-between; 47 | } 48 | 49 | .favo-del { 50 | font-size: var(--big); 51 | } -------------------------------------------------------------------------------- /pages/member/money/money.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 我的钱包 6 | 7 | 8 | 9 | 10 | 总金额(元) 11 | 100.00 12 | 13 | 14 | 15 | 可用金额(元) 16 | 40.00 17 | 18 | 19 | 消费金额(元) 20 | 20.00 21 | 22 | 23 | 24 | 25 | 提现 26 | 充值 27 | 28 | 29 | -------------------------------------------------------------------------------- /components/header/header.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | Component({ 4 | 5 | /* 6 | 组件的一些选项 7 | */ 8 | options: { 9 | addGlobalClass: true, 10 | multipleSlots: true 11 | }, 12 | 13 | /* 14 | 组件的对外属性 15 | */ 16 | properties: { 17 | bgColor: { 18 | type: String, 19 | default: '' 20 | }, 21 | isBack: { 22 | type: [Boolean, false], 23 | default: false 24 | }, 25 | bgImage: { 26 | type: String, 27 | default: '' 28 | } 29 | }, 30 | 31 | /* 32 | 组件初始数据 33 | */ 34 | data: { 35 | StatusBar: app.local.StatusBar, 36 | CustomBar: app.local.CustomBar 37 | }, 38 | 39 | /* 40 | 组件方法 41 | */ 42 | methods: { 43 | goBack() { 44 | wx.navigateBack({ 45 | delta: 1 46 | }) 47 | } 48 | } 49 | 50 | }) -------------------------------------------------------------------------------- /pages/member/favo/favo.wxml: -------------------------------------------------------------------------------- 1 |
2 | 我的收藏 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 冬季新款女士连衣裙 11 | 12 | 13 | ¥ 14 | 10.00 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 冬季新款女士连衣裙 27 | 28 | 29 | ¥ 30 | 10.00 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /pages/member/coup/coup.wxss: -------------------------------------------------------------------------------- 1 | .coup { 2 | position: relative; 3 | height: 200rpx; 4 | margin: 15rpx 20rpx; 5 | display: flex; 6 | overflow: hidden; 7 | } 8 | 9 | .coup-left { 10 | flex-shrink: 0; 11 | width: 200rpx; 12 | display: flex; 13 | align-items: center; 14 | justify-content: center; 15 | border-right: 1rpx dashed #ddd; 16 | } 17 | 18 | .coup-mtit { 19 | font-size: 32rpx; 20 | line-height: 72rpx; 21 | margin: 17rpx 10rpx 0 0; 22 | } 23 | 24 | .coup-mnum { 25 | font-size: 62rpx; 26 | line-height: 76rpx; 27 | font-weight: bold; 28 | font-family: din; 29 | } 30 | 31 | .coup-right { 32 | flex: 1; 33 | display: flex; 34 | flex-direction: column; 35 | justify-content: space-between; 36 | padding: 20rpx 30rpx; 37 | } 38 | 39 | .coup-itit { 40 | font-weight: bold; 41 | margin-bottom: 15rpx; 42 | } 43 | 44 | .cir { 45 | position: absolute; 46 | left: 185rpx; 47 | width: 30rpx; 48 | height: 30rpx; 49 | background-color: #f7f8f8; 50 | border-radius: 50%; 51 | } 52 | 53 | .cir-top { 54 | top: -15rpx; 55 | } 56 | 57 | .cir-bot { 58 | bottom: -15rpx; 59 | } -------------------------------------------------------------------------------- /pages/cart/cart.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | const goods = require('../../utils/pro') 3 | 4 | let that 5 | Page({ 6 | 7 | /** 8 | * 页面的初始数据 9 | */ 10 | data: { 11 | StatusBar: app.local.StatusBar, 12 | CustomBar: app.local.CustomBar, 13 | recom: [] 14 | }, 15 | 16 | /** 17 | * 生命周期函数--监听页面加载 18 | */ 19 | onLoad: function (options) { 20 | this.setData({ 21 | recom: goods.list 22 | }) 23 | }, 24 | 25 | /** 26 | * 生命周期函数--监听页面初次渲染完成 27 | */ 28 | onReady: function () { 29 | 30 | }, 31 | 32 | /** 33 | * 生命周期函数--监听页面显示 34 | */ 35 | onShow: function () { 36 | 37 | }, 38 | 39 | /** 40 | * 生命周期函数--监听页面隐藏 41 | */ 42 | onHide: function () { 43 | 44 | }, 45 | 46 | /** 47 | * 生命周期函数--监听页面卸载 48 | */ 49 | onUnload: function () { 50 | 51 | }, 52 | 53 | /** 54 | * 页面相关事件处理函数--监听用户下拉动作 55 | */ 56 | onPullDownRefresh: function () { 57 | 58 | }, 59 | 60 | /** 61 | * 页面上拉触底事件的处理函数 62 | */ 63 | onReachBottom: function () { 64 | 65 | }, 66 | 67 | /** 68 | * 用户点击右上角分享 69 | */ 70 | onShareAppMessage: function () { 71 | 72 | } 73 | }) -------------------------------------------------------------------------------- /pages/member/coup/coup.wxml: -------------------------------------------------------------------------------- 1 |
2 | 卡券 3 |
4 | 5 | 6 | 7 | ¥ 8 | 20 9 | 10 | 11 | 12 | 全场100元通用券 13 | 优惠券全场可用 14 | 15 | 有效期:2019.11.10 - 2020-01-01 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | ¥ 24 | 20 25 | 26 | 27 | 28 | 全场100元通用券 29 | 优惠券全场可用 30 | 31 | 有效期:2019.11.10 - 2020-01-01 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /pages/recom/recom.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | StatusBar: app.local.StatusBar, 11 | CustomBar: app.local.CustomBar, 12 | alpha: 0 13 | }, 14 | 15 | /** 16 | * 生命周期函数--监听页面加载 17 | */ 18 | onLoad: function (options) { 19 | 20 | }, 21 | 22 | /** 23 | * 生命周期函数--监听页面初次渲染完成 24 | */ 25 | onReady: function () { 26 | 27 | }, 28 | 29 | /** 30 | * 生命周期函数--监听页面显示 31 | */ 32 | onShow: function () { 33 | 34 | }, 35 | 36 | onPageScroll: function(e) { 37 | const alpha = e.scrollTop/100 38 | this.setData({ 39 | alpha: alpha 40 | }) 41 | }, 42 | 43 | /** 44 | * 生命周期函数--监听页面隐藏 45 | */ 46 | onHide: function () { 47 | 48 | }, 49 | 50 | /** 51 | * 生命周期函数--监听页面卸载 52 | */ 53 | onUnload: function () { 54 | 55 | }, 56 | 57 | /** 58 | * 页面相关事件处理函数--监听用户下拉动作 59 | */ 60 | onPullDownRefresh: function () { 61 | 62 | }, 63 | 64 | /** 65 | * 页面上拉触底事件的处理函数 66 | */ 67 | onReachBottom: function () { 68 | 69 | }, 70 | 71 | /** 72 | * 用户点击右上角分享 73 | */ 74 | onShareAppMessage: function () { 75 | 76 | } 77 | }) -------------------------------------------------------------------------------- /pages/member/agent/agent.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | let that 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | StatusBar: app.local.StatusBar, 11 | CustomBar: app.local.CustomBar, 12 | alpha: 0 13 | }, 14 | 15 | /** 16 | * 生命周期函数--监听页面加载 17 | */ 18 | onLoad: function (options) { 19 | 20 | }, 21 | 22 | /** 23 | * 生命周期函数--监听页面初次渲染完成 24 | */ 25 | onReady: function () { 26 | 27 | }, 28 | 29 | /** 30 | * 生命周期函数--监听页面显示 31 | */ 32 | onShow: function () { 33 | 34 | }, 35 | 36 | onPageScroll: function(e) { 37 | const alpha = e.scrollTop/100 38 | this.setData({ 39 | alpha: alpha 40 | }) 41 | }, 42 | 43 | goBack: function() { 44 | wx.navigateBack({ 45 | delta: 1 46 | }) 47 | }, 48 | 49 | /** 50 | * 生命周期函数--监听页面隐藏 51 | */ 52 | onHide: function () { 53 | 54 | }, 55 | 56 | /** 57 | * 生命周期函数--监听页面卸载 58 | */ 59 | onUnload: function () { 60 | 61 | }, 62 | 63 | /** 64 | * 页面相关事件处理函数--监听用户下拉动作 65 | */ 66 | onPullDownRefresh: function () { 67 | 68 | }, 69 | 70 | /** 71 | * 页面上拉触底事件的处理函数 72 | */ 73 | onReachBottom: function () { 74 | 75 | }, 76 | 77 | /** 78 | * 用户点击右上角分享 79 | */ 80 | onShareAppMessage: function () { 81 | 82 | } 83 | }) -------------------------------------------------------------------------------- /pages/member/money/money.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | let that 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | StatusBar: app.local.StatusBar, 11 | CustomBar: app.local.CustomBar, 12 | alpha: 0 13 | }, 14 | 15 | /** 16 | * 生命周期函数--监听页面加载 17 | */ 18 | onLoad: function (options) { 19 | 20 | }, 21 | 22 | /** 23 | * 生命周期函数--监听页面初次渲染完成 24 | */ 25 | onReady: function () { 26 | 27 | }, 28 | 29 | /** 30 | * 生命周期函数--监听页面显示 31 | */ 32 | onShow: function () { 33 | 34 | }, 35 | 36 | onPageScroll: function(e) { 37 | const alpha = e.scrollTop/100 38 | this.setData({ 39 | alpha: alpha 40 | }) 41 | }, 42 | 43 | goBack: function() { 44 | wx.navigateBack({ 45 | delta: 1 46 | }) 47 | }, 48 | 49 | /** 50 | * 生命周期函数--监听页面隐藏 51 | */ 52 | onHide: function () { 53 | 54 | }, 55 | 56 | /** 57 | * 生命周期函数--监听页面卸载 58 | */ 59 | onUnload: function () { 60 | 61 | }, 62 | 63 | /** 64 | * 页面相关事件处理函数--监听用户下拉动作 65 | */ 66 | onPullDownRefresh: function () { 67 | 68 | }, 69 | 70 | /** 71 | * 页面上拉触底事件的处理函数 72 | */ 73 | onReachBottom: function () { 74 | 75 | }, 76 | 77 | /** 78 | * 用户点击右上角分享 79 | */ 80 | onShareAppMessage: function () { 81 | 82 | } 83 | }) -------------------------------------------------------------------------------- /pages/mem/mem.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | const goods = require('../../utils/pro') 3 | 4 | let that 5 | Page({ 6 | 7 | /** 8 | * 页面的初始数据 9 | */ 10 | data: { 11 | StatusBar: app.local.StatusBar, 12 | CustomBar: app.local.CustomBar, 13 | alpha: 0, 14 | recom: [] 15 | }, 16 | 17 | /** 18 | * 生命周期函数--监听页面加载 19 | */ 20 | onLoad: function (options) { 21 | this.setData({ 22 | recom: goods.list 23 | }) 24 | }, 25 | 26 | /** 27 | * 生命周期函数--监听页面初次渲染完成 28 | */ 29 | onReady: function () { 30 | 31 | }, 32 | 33 | /** 34 | * 生命周期函数--监听页面显示 35 | */ 36 | onShow: function () { 37 | 38 | }, 39 | 40 | /** 41 | * 生命周期函数--监听页面隐藏 42 | */ 43 | onHide: function () { 44 | 45 | }, 46 | 47 | /** 48 | * 生命周期函数--监听页面卸载 49 | */ 50 | onUnload: function () { 51 | 52 | }, 53 | 54 | onPageScroll: function(e) { 55 | const alpha = e.scrollTop/100 56 | this.setData({ 57 | alpha: alpha 58 | }) 59 | }, 60 | 61 | /** 62 | * 页面相关事件处理函数--监听用户下拉动作 63 | */ 64 | onPullDownRefresh: function () { 65 | 66 | }, 67 | 68 | /** 69 | * 页面上拉触底事件的处理函数 70 | */ 71 | onReachBottom: function () { 72 | 73 | }, 74 | 75 | /** 76 | * 用户点击右上角分享 77 | */ 78 | onShareAppMessage: function () { 79 | 80 | } 81 | }) -------------------------------------------------------------------------------- /pages/member/recomer/recomer.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | 3 | let that 4 | Page({ 5 | 6 | /** 7 | * 页面的初始数据 8 | */ 9 | data: { 10 | StatusBar: app.local.StatusBar || 20, 11 | CustomBar: app.local.CustomBar || 64, 12 | alpha: 0 13 | }, 14 | 15 | /** 16 | * 生命周期函数--监听页面加载 17 | */ 18 | onLoad: function (options) { 19 | 20 | }, 21 | 22 | onPageScroll: function(e) { 23 | const alpha = e.scrollTop/100 24 | this.setData({ 25 | alpha: alpha 26 | }) 27 | }, 28 | 29 | goBack: function() { 30 | wx.navigateBack({ 31 | delta: 1 32 | }) 33 | }, 34 | 35 | /** 36 | * 生命周期函数--监听页面初次渲染完成 37 | */ 38 | onReady: function () { 39 | 40 | }, 41 | 42 | /** 43 | * 生命周期函数--监听页面显示 44 | */ 45 | onShow: function () { 46 | 47 | }, 48 | 49 | /** 50 | * 生命周期函数--监听页面隐藏 51 | */ 52 | onHide: function () { 53 | 54 | }, 55 | 56 | /** 57 | * 生命周期函数--监听页面卸载 58 | */ 59 | onUnload: function () { 60 | 61 | }, 62 | 63 | /** 64 | * 页面相关事件处理函数--监听用户下拉动作 65 | */ 66 | onPullDownRefresh: function () { 67 | 68 | }, 69 | 70 | /** 71 | * 页面上拉触底事件的处理函数 72 | */ 73 | onReachBottom: function () { 74 | 75 | }, 76 | 77 | /** 78 | * 用户点击右上角分享 79 | */ 80 | onShareAppMessage: function () { 81 | 82 | } 83 | }) -------------------------------------------------------------------------------- /pages/member/message/message.wxss: -------------------------------------------------------------------------------- 1 | .box { 2 | display: flex; 3 | flex-direction: column; 4 | padding: 30rpx; 5 | margin: 20rpx 20rpx 10rpx; 6 | background-color: #fff; 7 | } 8 | 9 | .box-tit { 10 | font-size: var(--biger); 11 | font-weight: bold; 12 | margin-bottom: 10rpx; 13 | } 14 | 15 | .box-time { 16 | font-size: var(--mini); 17 | } 18 | 19 | .box-msg { 20 | display: flex; 21 | flex-direction: column; 22 | margin: 20rpx 0; 23 | padding: 10rpx 0 30rpx; 24 | border-bottom: 1rpx solid #f5f6f7; 25 | } 26 | 27 | .jc { 28 | align-items: center; 29 | justify-content: center; 30 | } 31 | 32 | .box-price { 33 | margin-top: 10rpx; 34 | font-size: var(--biger); 35 | } 36 | 37 | .box-money { 38 | font-size: var(--bigers); 39 | font-family: din; 40 | font-weight: bold; 41 | } 42 | 43 | .box-li { 44 | margin: 10rpx 0; 45 | } 46 | 47 | .box-scan { 48 | display: flex; 49 | align-items: center; 50 | justify-content: space-between; 51 | padding-top: 25rpx; 52 | margin-top: 20rpx; 53 | border-top: 1rpx solid #f5f6f7; 54 | } 55 | 56 | .box-img { 57 | width: 100%; 58 | max-height: 320rpx; 59 | overflow: hidden; 60 | } 61 | 62 | .box-img image { 63 | width: 100%; 64 | } 65 | 66 | .box-name { 67 | font-size: var(--big); 68 | font-weight: bold; 69 | margin: 20rpx 0; 70 | } -------------------------------------------------------------------------------- /pages/class/class.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | const http = require('../../utils/http') 3 | 4 | let that, cid = '' 5 | Page({ 6 | 7 | /** 8 | * 页面的初始数据 9 | */ 10 | data: { 11 | StatusBar: app.local.StatusBar, 12 | CustomBar: app.local.CustomBar, 13 | classList: [], 14 | childList: [], 15 | current: 0 16 | }, 17 | 18 | /** 19 | * 生命周期函数--监听页面加载 20 | */ 21 | onLoad: function (options) { 22 | that = this 23 | 24 | this.getClass() 25 | }, 26 | 27 | getClass: function() { 28 | http.post('v1/category/childlist', { 29 | basecode: 'CategoryManage' 30 | }).then(res => { 31 | console.log(res) 32 | if(res.data.code === 0) { 33 | that.setData({ 34 | classList: res.data.data 35 | }) 36 | 37 | cid = res.data.data[that.data.current].id 38 | that.getChild() 39 | } 40 | }) 41 | }, 42 | 43 | getChild: function() { 44 | http.post('v1/category/secondchild', { 45 | parentid: that.data.classList[that.data.current].id 46 | }).then(res => { 47 | console.log(res) 48 | if(res.data.code === 0) { 49 | that.setData({ 50 | childList: res.data.data 51 | }) 52 | } 53 | }) 54 | }, 55 | 56 | //切换分类 57 | switchTab: function(e) { 58 | const evt = e.currentTarget.dataset 59 | cid = evt.cid 60 | 61 | this.setData({ 62 | current: evt.ind 63 | }) 64 | this.getChild() 65 | } 66 | 67 | }) -------------------------------------------------------------------------------- /pages/list/list.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | const http = require('../../utils/http') 3 | const goods = require('../../utils/pro') 4 | 5 | let that, cid = '', page = 1 6 | Page({ 7 | 8 | /** 9 | * 页面的初始数据 10 | */ 11 | data: { 12 | scroll: 0, 13 | StatusBar: app.local.StatusBar, 14 | CustomBar: app.local.CustomBar, 15 | tit: '', 16 | list: [] 17 | }, 18 | 19 | /** 20 | * 生命周期函数--监听页面加载 21 | */ 22 | onLoad: function (options) { 23 | that = this 24 | this.setData({ 25 | tit: options.tit 26 | }) 27 | cid = options.cid 28 | 29 | this.getList() 30 | }, 31 | 32 | getList: function() { 33 | const pageSize = 10 34 | 35 | wx.showLoading({ 36 | title: '飞速加载中...', 37 | mask: true 38 | }) 39 | http.post('v1/productinfo/pagelist', { 40 | categoryids: cid, 41 | pageSize: pageSize, 42 | pageNum: page 43 | }).then(res => { 44 | console.log(res) 45 | if(res.data.code === 0) { 46 | that.setData({ 47 | list: res.data.rows 48 | }) 49 | } 50 | 51 | wx.hideLoading() 52 | }) 53 | }, 54 | 55 | onPageScroll: function(e) { 56 | this.setData({ 57 | scroll: e.scrollTop 58 | }) 59 | }, 60 | 61 | /** 62 | * 页面相关事件处理函数--监听用户下拉动作 63 | */ 64 | onPullDownRefresh: function () { 65 | 66 | }, 67 | 68 | /** 69 | * 页面上拉触底事件的处理函数 70 | */ 71 | onReachBottom: function () { 72 | 73 | } 74 | 75 | }) -------------------------------------------------------------------------------- /pages/list/list.wxml: -------------------------------------------------------------------------------- 1 |
2 | {{tit}} 3 |
4 | 5 | 6 | 7 | 8 | T恤 9 | 10 | 11 | 12 | 短袖 13 | 14 | 15 | 16 | 17 | 综合 18 | 销量 19 | 价格 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | {{item.productname}} 29 | {{item.buycount}} 人付款 30 | 31 | 32 | ¥ 33 | {{item.price}} 34 | 35 | ¥{{item.yprice}} 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /pages/member/credit/credit.wxss: -------------------------------------------------------------------------------- 1 | .tips { 2 | display: flex; 3 | align-items: center; 4 | justify-content: center; 5 | padding: 50rpx 0; 6 | background: linear-gradient(to bottom, rgba(168, 168, 168, 1), rgba(168, 168, 168, 1) 50%, rgba(195, 195, 195, 1)) 7 | } 8 | 9 | .tips-box { 10 | display: flex; 11 | background-color: #fff; 12 | margin: 0 100rpx; 13 | padding: 10rpx; 14 | } 15 | 16 | .tips-con { 17 | display: flex; 18 | align-items: center; 19 | flex-direction: column; 20 | padding: 20rpx 30rpx; 21 | border: 1rpx solid #f5f6f7; 22 | } 23 | 24 | .tips-cre { 25 | color: #b3a078; 26 | font-size: var(--biger); 27 | font-weight: bold; 28 | font-family: din; 29 | margin: 15rpx 0; 30 | } 31 | 32 | .tips-tip { 33 | font-size: var(--mini); 34 | } 35 | 36 | 37 | .list { 38 | display: flex; 39 | flex-wrap: wrap; 40 | justify-content: space-between; 41 | margin: 20rpx; 42 | } 43 | 44 | .list-box { 45 | width: 48.5%; 46 | padding-bottom: 20rpx; 47 | margin-bottom: 20rpx; 48 | overflow: hidden; 49 | background-color: rgba(255, 255, 255, .98); 50 | } 51 | 52 | .list-box-img { 53 | height: 350rpx; 54 | overflow: hidden; 55 | } 56 | 57 | .list-box-img image { 58 | max-height: 100%; 59 | } 60 | 61 | .list-pd { 62 | padding: 0 20rpx; 63 | } 64 | 65 | .list-name { 66 | white-space: nowrap; 67 | text-overflow: ellipsis; 68 | overflow: hidden; 69 | margin: 10rpx 0 15rpx; 70 | } 71 | 72 | .list-price { 73 | font-family: din; 74 | } -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | const http = require('./utils/http') 2 | 3 | App({ 4 | onLaunch: function () { 5 | 6 | //系统信息 7 | http.getSystem(this) 8 | 9 | //版本更新 10 | const updateManager = wx.getUpdateManager() 11 | updateManager.onUpdateReady(() => { 12 | wx.showModal({ 13 | title: '更新提示', 14 | content: '新版本已经准备好,是否重启应用?', 15 | success(res) { 16 | if (res.confirm) { 17 | updateManager.applyUpdate() 18 | } 19 | } 20 | }) 21 | }) 22 | 23 | this.singIn() 24 | }, 25 | 26 | //获取用户信息 27 | userInfo: function () { 28 | wx.getSetting({ 29 | success: res => { 30 | const that = this 31 | if (res.authSetting['scope.userInfo']) { 32 | wx.getUserInfo({ 33 | lang: 'zh_CN', 34 | success: res => { 35 | that.local.userInfo = res.userInfo 36 | 37 | if (that.userInfoReadyCallback) { 38 | that.userInfoReadyCallback(res) 39 | } 40 | } 41 | }) 42 | } 43 | } 44 | }) 45 | }, 46 | 47 | //微信授权 48 | singIn: function () { 49 | wx.login({ 50 | success: res => { 51 | console.log(res.code) 52 | wx.setStorageSync('code', res.code) 53 | } 54 | }) 55 | }, 56 | 57 | local: { 58 | userInfo: null, 59 | StatusBar: '', 60 | CustomBar: '', 61 | winHeight: '', 62 | winWidth: '' 63 | } 64 | 65 | }) -------------------------------------------------------------------------------- /pages/member/credit/credit.wxml: -------------------------------------------------------------------------------- 1 |
2 | 积分抢兑 3 |
4 | 5 | 6 | 7 | 8 | 可用积分 9 | 171 10 | 小积分 换好礼 会员专享 定期更新 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 柠檬小龙虾沙拉 22 | 23 | 88 24 | 积分 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 柠檬小龙虾沙拉 33 | 34 | 88 35 | 积分 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 柠檬小龙虾沙拉 44 | 45 | 88 46 | 积分 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /pages/member/money/money.wxss: -------------------------------------------------------------------------------- 1 | page { 2 | background-color: #fff; 3 | } 4 | 5 | .head { 6 | position: fixed; 7 | top: 0; 8 | left: 0; 9 | width: 100%; 10 | display: flex; 11 | align-items: center; 12 | padding: 0 100rpx 0 20rpx; 13 | background-color: rgba(255, 255, 255, 0); 14 | } 15 | 16 | .head-back { 17 | width: 80rpx; 18 | } 19 | 20 | .head-tit { 21 | flex: 1; 22 | text-align: center; 23 | } 24 | 25 | .money { 26 | display: flex; 27 | background: linear-gradient(to bottom, rgba(255, 88, 109, 1), rgba(255, 255, 255, 1)) 28 | } 29 | 30 | .box { 31 | width: 94%; 32 | padding: 100rpx 30rpx 50rpx; 33 | margin: 30rpx auto 20rpx 3%; 34 | border-radius: 8rpx; 35 | background-color: #fff; 36 | } 37 | 38 | .box-tit { 39 | text-align: center; 40 | } 41 | 42 | .box-total { 43 | text-align: center; 44 | font-size: 48rpx; 45 | font-family: din; 46 | font-weight: bold; 47 | margin: 30rpx 20rpx; 48 | } 49 | 50 | .box-other { 51 | display: flex; 52 | justify-content: space-around; 53 | margin: 120rpx auto 100rpx; 54 | } 55 | 56 | .box-half { 57 | text-align: center; 58 | } 59 | 60 | .box-mon { 61 | font-size: 36rpx; 62 | font-family: din; 63 | margin-top: 15rpx; 64 | } 65 | 66 | .box-dos { 67 | display: flex; 68 | justify-content: space-between; 69 | } 70 | 71 | .box-dos view { 72 | width: 45%; 73 | height: 80rpx; 74 | line-height: 80rpx; 75 | text-align: center; 76 | background-color: #fef5ee; 77 | border-radius: 6rpx; 78 | } 79 | 80 | .box-dos view.act { 81 | color: #fff; 82 | background-color: #ed6666; 83 | } -------------------------------------------------------------------------------- /pages/kill/kill.wxss: -------------------------------------------------------------------------------- 1 | .kill { 2 | display: flex; 3 | background-color: #fff; 4 | padding: 25rpx 20rpx; 5 | margin: 15rpx 20rpx; 6 | } 7 | 8 | .kill-img { 9 | width: 200rpx; 10 | height: 200rpx; 11 | overflow: hidden; 12 | margin-right: 20rpx; 13 | } 14 | 15 | .kill-img image { 16 | max-width: 100%; 17 | max-height: 100%; 18 | } 19 | 20 | .kill-info { 21 | flex: 1; 22 | display: flex; 23 | flex-direction: column; 24 | justify-content: space-between; 25 | } 26 | 27 | .kill-tit { 28 | flex: 1; 29 | font-size: var(--big); 30 | } 31 | 32 | .kill-bot { 33 | flex: 1; 34 | display: flex; 35 | align-items: flex-end; 36 | justify-content: space-between; 37 | } 38 | 39 | .kill-pri { 40 | font-size: var(--mini); 41 | } 42 | 43 | .kill-mon { 44 | font-size: var(--biger); 45 | font-family: din; 46 | font-weight: bold; 47 | } 48 | 49 | .kill-mark { 50 | color: #aaa; 51 | margin-left: 15rpx; 52 | text-decoration: line-through; 53 | } 54 | 55 | .kill-sub { 56 | flex-shrink: 0; 57 | width: 170rpx; 58 | height: 80rpx; 59 | display: flex; 60 | flex-direction: column; 61 | align-items: center; 62 | justify-content: center; 63 | color: #fff; 64 | background-image: linear-gradient(to right, #ff586d, #ed6666); 65 | } 66 | 67 | .kill-progress { 68 | display: flex; 69 | align-items: center; 70 | } 71 | 72 | .kill-progress progress { 73 | width: 100rpx; 74 | display: inline-block; 75 | } 76 | 77 | .kill-progress text { 78 | font-size: var(--minier); 79 | margin-left: 5rpx; 80 | } -------------------------------------------------------------------------------- /pages/class/class.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 码农优选 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 精选推荐 20 | 居家生活 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 当季 30 | 31 | 32 | 女装 33 | 34 | 35 | 36 | 羽绒 37 | 38 | 39 | 40 | 内衣 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /pages/member/recomer/recomer.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 值得买 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 总收入(元) 16 | 100.00 17 | 18 | 19 | 20 | 待入账(元) 21 | 40.00 22 | 23 | 24 | 冻结(元) 25 | 20.00 26 | 27 | 28 | 可用(元) 29 | 20.00 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 10 38 | 发布的 39 | 40 | 41 | 10 42 | 点击 43 | 44 | 45 | 10 46 | 分享 47 | 48 | 49 | 50 | 51 | 去发布 52 | 53 | -------------------------------------------------------------------------------- /pages/index/index.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | const http = require('../../utils/http') 3 | const goods = require('../../utils/pro') 4 | 5 | let that 6 | Page({ 7 | 8 | /** 9 | * 页面的初始数据 10 | */ 11 | data: { 12 | StatusBar: app.local.StatusBar, 13 | CustomBar: app.local.CustomBar, 14 | swiperTop: [], 15 | classList: [], 16 | goods: [], 17 | kill: [] 18 | }, 19 | 20 | /** 21 | * 生命周期函数--监听页面加载 22 | */ 23 | onLoad: function (options) { 24 | that = this 25 | let killarr = [] 26 | for(let i=0; i<3; i++) { 27 | killarr.push(goods.list[Math.floor(Math.random()*10)]) 28 | } 29 | console.log(killarr) 30 | this.setData({ 31 | goods: goods.list, 32 | kill: killarr 33 | }) 34 | 35 | this.getClass() 36 | }, 37 | 38 | getClass: function() { 39 | let classArr = [] 40 | for(let i=0; i<10; i++) { 41 | classArr.push({ 42 | imgurl: `../../static/class/c${i}.png`, 43 | categoryname: '分类'+i 44 | }) 45 | } 46 | 47 | this.setData({ 48 | classList: classArr 49 | }) 50 | }, 51 | 52 | /** 53 | * 生命周期函数--监听页面初次渲染完成 54 | */ 55 | onReady: function () { 56 | http.getSystem(app) 57 | }, 58 | 59 | /** 60 | * 生命周期函数--监听页面显示 61 | */ 62 | onShow: function () { 63 | 64 | }, 65 | 66 | /** 67 | * 生命周期函数--监听页面隐藏 68 | */ 69 | onHide: function () { 70 | 71 | }, 72 | 73 | /** 74 | * 生命周期函数--监听页面卸载 75 | */ 76 | onUnload: function () { 77 | 78 | }, 79 | 80 | /** 81 | * 页面相关事件处理函数--监听用户下拉动作 82 | */ 83 | onPullDownRefresh: function () { 84 | 85 | }, 86 | 87 | /** 88 | * 页面上拉触底事件的处理函数 89 | */ 90 | onReachBottom: function () { 91 | 92 | }, 93 | 94 | /** 95 | * 用户点击右上角分享 96 | */ 97 | onShareAppMessage: function () { 98 | 99 | } 100 | }) -------------------------------------------------------------------------------- /pages/member/recomer/recomer.wxss: -------------------------------------------------------------------------------- 1 | page { 2 | background-color: #f2ecde; 3 | } 4 | 5 | .rela { 6 | position: relative; 7 | } 8 | 9 | .head { 10 | position: fixed; 11 | top: 0; 12 | left: 0; 13 | width: 100%; 14 | display: flex; 15 | align-items: center; 16 | padding: 0 100rpx 0 20rpx; 17 | background-color: rgba(255, 255, 255, 0); 18 | } 19 | 20 | .head-back { 21 | width: 80rpx; 22 | } 23 | 24 | .head-tit { 25 | flex: 1; 26 | text-align: center; 27 | } 28 | 29 | .poster { 30 | display: flex; 31 | justify-content: center; 32 | margin-bottom: 20rpx; 33 | } 34 | 35 | .box { 36 | display: flex; 37 | margin: 20rpx; 38 | padding: 30rpx; 39 | background-color: #3c373e; 40 | } 41 | 42 | .bg-column { 43 | flex-direction: column; 44 | background-color: #fff; 45 | } 46 | 47 | .box-tit { 48 | margin-top: 30rpx; 49 | text-align: center; 50 | } 51 | 52 | .box-total { 53 | color: #c1a573; 54 | text-align: center; 55 | font-size: var(--bigers); 56 | font-family: din; 57 | font-weight: bold; 58 | margin: 10rpx 20rpx 30rpx; 59 | } 60 | 61 | .box-other { 62 | width: 100%; 63 | display: flex; 64 | justify-content: space-around; 65 | margin: 50rpx auto 30rpx; 66 | } 67 | 68 | .box-half { 69 | text-align: center; 70 | } 71 | 72 | .box-mon { 73 | font-size: var(--biger); 74 | font-family: din; 75 | margin-top: 15rpx; 76 | } 77 | 78 | .nav-item { 79 | flex: 1; 80 | display: flex; 81 | flex-direction: column; 82 | align-items: center; 83 | } 84 | 85 | .nav-item image { 86 | width: 50rpx; 87 | height: 50rpx; 88 | margin-bottom: 16rpx 89 | } 90 | 91 | .nav-item view.nums { 92 | color: #d5be96; 93 | font-size: var(--biger); 94 | height: 56rpx; 95 | line-height: 50rpx; 96 | margin-bottom: 10rpx 97 | } 98 | 99 | .nav-line { 100 | position: relative; 101 | flex-shrink: 0; 102 | width: 1rpx; 103 | border-right: 1rpx solid #333036; 104 | border-left: 1rpx solid #4c454e; 105 | } -------------------------------------------------------------------------------- /pages/member/message/message.wxml: -------------------------------------------------------------------------------- 1 |
2 | 通知公告 3 |
4 | 5 | 6 | 签到积分 7 | 05月28日 8 | 今日签到成功 9 | 10 | 11 | 瓜分积分: 12 | 100 13 | 14 | 15 | 参与人数: 16 | 1000 17 | 18 | 19 | 签到时间: 20 | 10:12 21 | 22 | 23 | 24 | 查看详情 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 吃得太多会长胖 34 | 吃得再多也不长胖的方法 35 | 36 | 查看详情 37 | 38 | 39 | 40 | 41 | 42 | 支付成功通知 43 | 05月28日 44 | 45 | 支付金额 46 | 47 | ¥ 48 | 10.00 49 | 50 | 51 | 52 | 53 | 交易商户: 54 | 轻知科技 55 | 56 | 57 | 支付金额: 58 | ¥10.00 59 | 60 | 61 | 支付方式: 62 | 余额支付 63 | 64 | 65 | 交易时间: 66 | 2020-05-28 12:12 67 | 68 | 69 | 70 | 查看详情 71 | 72 | 73 | -------------------------------------------------------------------------------- /pages/class/class.wxss: -------------------------------------------------------------------------------- 1 | .top { 2 | position: relative; 3 | z-index: 99999; 4 | } 5 | 6 | .head { 7 | position: fixed; 8 | top: 0; 9 | left: 0; 10 | right: 0; 11 | display: flex; 12 | align-items: center; 13 | padding: 0 200rpx 0 20rpx; 14 | z-index: 99999; 15 | background-color: #fff; 16 | } 17 | 18 | .search { 19 | flex: 1; 20 | height: 35px; 21 | display: flex; 22 | align-items: center; 23 | justify-content: space-between; 24 | background-color: rgba(0, 0, 0, .03); 25 | padding: 0 20rpx 0 10rpx; 26 | margin-right: 20rpx; 27 | } 28 | 29 | .search-box { 30 | flex: 1; 31 | } 32 | 33 | .search-icon { 34 | font-size: var(--big); 35 | } 36 | 37 | .search-recom { 38 | margin-left: 10rpx; 39 | } 40 | 41 | .box { 42 | position: absolute; 43 | top: 0; 44 | left: 0; 45 | right: 0; 46 | bottom: 0; 47 | display: flex; 48 | width: 100%; 49 | } 50 | 51 | .nav { 52 | flex-shrink: 0; 53 | width: 200rpx; 54 | display: flex; 55 | flex-direction: column; 56 | } 57 | 58 | .nav-item { 59 | flex: 1; 60 | height: 92rpx; 61 | display: flex; 62 | align-items: center; 63 | justify-content: center; 64 | } 65 | 66 | .nav-item.act { 67 | color: #373737; 68 | font-weight: bold; 69 | background-color: #fff; 70 | } 71 | 72 | .con { 73 | flex: 1; 74 | background-color: #fff; 75 | display: flex; 76 | flex-wrap: wrap; 77 | } 78 | 79 | .con-adv { 80 | height: 160rpx; 81 | margin: 20rpx 20rpx 10rpx; 82 | overflow: hidden; 83 | } 84 | 85 | .con-adv image { 86 | width: 100%; 87 | height: 160rpx; 88 | } 89 | 90 | .con-box { 91 | display: flex; 92 | flex-wrap: wrap; 93 | margin: 20rpx 20rpx 0; 94 | box-shadow: 1rpx 2rpx 3rpx rgba(100, 100, 100, 0.07); 95 | } 96 | 97 | .con-tit { 98 | width: 100%; 99 | font-weight: bold; 100 | padding: 15rpx 30rpx 10rpx 10rpx; 101 | background-color: #fcfcfc; 102 | } 103 | 104 | .con-item { 105 | width: 31%; 106 | display: flex; 107 | flex-direction: column; 108 | justify-content: center; 109 | align-items: center; 110 | margin: 10rpx 0; 111 | } 112 | 113 | .con-item image { 114 | width: 100rpx; 115 | height: 100rpx; 116 | margin-bottom: 5rpx; 117 | } -------------------------------------------------------------------------------- /pages/member/morder/morder.wxss: -------------------------------------------------------------------------------- 1 | .tab { 2 | position: fixed; 3 | top: 0; 4 | left: 0; 5 | right: 0; 6 | display: flex; 7 | height: 43px; 8 | align-items: center; 9 | justify-content: space-between; 10 | padding: 0 30rpx; 11 | background-color: #fff; 12 | border-top: 1rpx solid #f5f6f7; 13 | z-index: 999; 14 | } 15 | 16 | .tab-item { 17 | height: 43px; 18 | display: flex; 19 | flex-direction: column; 20 | align-items: center; 21 | justify-content: space-between; 22 | padding-top: 10px; 23 | color: #aaa; 24 | } 25 | 26 | .tab-item view { 27 | width: 30rpx; 28 | height: 3rpx; 29 | background-color: #fff; 30 | } 31 | 32 | .tab-item.act { 33 | color: #373737; 34 | } 35 | 36 | .tab-item.act view { 37 | background-color: #ff586d; 38 | } 39 | 40 | .box { 41 | display: flex; 42 | flex-direction: column; 43 | padding: 20rpx; 44 | margin: 0 20rpx 20rpx; 45 | background-color: #fff; 46 | } 47 | 48 | .box.first { 49 | margin-top: 55px; 50 | } 51 | 52 | .box-top { 53 | flex: 1; 54 | display: flex; 55 | justify-content: space-between; 56 | margin-bottom: 30rpx; 57 | } 58 | 59 | .box-good { 60 | flex: 1; 61 | display: flex; 62 | margin-bottom: 20rpx; 63 | } 64 | 65 | .box-good-img { 66 | width: 160rpx; 67 | height: 160rpx; 68 | margin-right: 20rpx; 69 | } 70 | 71 | .box-good-info { 72 | flex: 1; 73 | display: flex; 74 | flex-direction: column; 75 | justify-content: space-between; 76 | } 77 | 78 | .box-good-attr { 79 | margin-top: 15rpx; 80 | font-size: var(--mini); 81 | } 82 | 83 | .box-good-bot { 84 | display: flex; 85 | justify-content: space-between; 86 | } 87 | 88 | .box-good-price { 89 | font-size: var(--big); 90 | font-family: din; 91 | } 92 | 93 | .box-total { 94 | display: flex; 95 | align-items: center; 96 | justify-content: flex-end; 97 | padding: 15rpx 0; 98 | } 99 | 100 | .box-dos { 101 | display: flex; 102 | justify-content: flex-end; 103 | margin: 20rpx 0 10rpx; 104 | } 105 | 106 | .box-dos view, 107 | .box-dos navigator { 108 | margin-left: 20rpx; 109 | width: 220rpx; 110 | height: 70rpx; 111 | line-height: 70rpx; 112 | text-align: center; 113 | border: 1rpx solid #eee; 114 | } -------------------------------------------------------------------------------- /pages/list/list.wxss: -------------------------------------------------------------------------------- 1 | .scroll { 2 | position: relative; 3 | height: 85px; 4 | white-space: nowrap; 5 | margin: 1rpx 0; 6 | background-color: #fff; 7 | } 8 | 9 | .scroll-item { 10 | width: 90rpx; 11 | display: inline-block; 12 | text-align: center; 13 | margin: 17rpx 15rpx 0; 14 | } 15 | 16 | .scroll-item image { 17 | width: 48px; 18 | height: 48px; 19 | border-radius: 12rpx; 20 | border: 5rpx solid #f6f7f8; 21 | } 22 | 23 | .scroll-item.act { 24 | color: #ff586d; 25 | } 26 | 27 | .scroll-item.act image { 28 | border: 5rpx solid #ff586d; 29 | } 30 | 31 | .tab { 32 | display: flex; 33 | padding: 0 30rpx; 34 | justify-content: space-between; 35 | background-color: #fff; 36 | } 37 | 38 | .tab.fix { 39 | position: fixed; 40 | top: 0; 41 | left: 0; 42 | right: 0; 43 | z-index: 200; 44 | } 45 | 46 | .tab-item { 47 | display: flex; 48 | padding: 30rpx 0; 49 | } 50 | 51 | .tab-item.act { 52 | color: #ff586d; 53 | } 54 | 55 | .hot { 56 | display: flex; 57 | flex-wrap: wrap; 58 | justify-content: space-between; 59 | margin: 20rpx; 60 | } 61 | 62 | .hot-box { 63 | width: 48.5%; 64 | padding-bottom: 20rpx; 65 | margin-bottom: 20rpx; 66 | overflow: hidden; 67 | background-color: rgba(255, 255, 255, .98); 68 | } 69 | 70 | .hot-box-img { 71 | height: 350rpx; 72 | overflow: hidden; 73 | } 74 | 75 | .hot-box-img image { 76 | max-height: 100%; 77 | } 78 | 79 | .hot-pd { 80 | padding: 0 20rpx; 81 | } 82 | 83 | .kill-good-name { 84 | font-weight: bold; 85 | white-space: nowrap; 86 | text-overflow: ellipsis; 87 | overflow: hidden; 88 | margin-top: 10rpx; 89 | } 90 | 91 | .kill-good-soal { 92 | font-size: var(--minier); 93 | } 94 | 95 | .kill-good-price { 96 | display: flex; 97 | margin-top: 13rpx; 98 | } 99 | 100 | .kill-good-now { 101 | color: #f78c2d; 102 | } 103 | 104 | .kill-good-symbol { 105 | font-weight: bold; 106 | font-size: var(--minier); 107 | } 108 | 109 | .kill-good-money { 110 | font-size: var(--biger); 111 | font-family: 'din'; 112 | font-weight: bold; 113 | } 114 | 115 | .kill-good-old { 116 | margin: 13rpx 0 0 5rpx; 117 | font-family: 'din'; 118 | font-size: var(--mini); 119 | text-decoration: line-through; 120 | } -------------------------------------------------------------------------------- /project.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "项目配置文件", 3 | "packOptions": { 4 | "ignore": [] 5 | }, 6 | "setting": { 7 | "urlCheck": true, 8 | "es6": true, 9 | "enhance": false, 10 | "postcss": true, 11 | "preloadBackgroundData": false, 12 | "minified": true, 13 | "newFeature": true, 14 | "coverView": true, 15 | "nodeModules": false, 16 | "autoAudits": false, 17 | "showShadowRootInWxmlPanel": true, 18 | "scopeDataCheck": false, 19 | "uglifyFileName": false, 20 | "checkInvalidKey": true, 21 | "checkSiteMap": true, 22 | "uploadWithSourceMap": true, 23 | "compileHotReLoad": false, 24 | "useMultiFrameRuntime": false, 25 | "useApiHook": true, 26 | "babelSetting": { 27 | "ignore": [], 28 | "disablePlugins": [], 29 | "outputPath": "" 30 | }, 31 | "enableEngineNative": false, 32 | "useIsolateContext": true, 33 | "useCompilerModule": true, 34 | "userConfirmedUseCompilerModuleSwitch": false, 35 | "packNpmManually": false, 36 | "packNpmRelationList": [], 37 | "minifyWXSS": true 38 | }, 39 | "compileType": "miniprogram", 40 | "libVersion": "2.11.0", 41 | "appid": "wx6fcbef72d444c8aa", 42 | "projectname": "shop", 43 | "debugOptions": { 44 | "hidedInDevtools": [] 45 | }, 46 | "isGameTourist": false, 47 | "simulatorType": "wechat", 48 | "simulatorPluginLibVersion": {}, 49 | "condition": { 50 | "search": { 51 | "list": [] 52 | }, 53 | "conversation": { 54 | "list": [] 55 | }, 56 | "plugin": { 57 | "list": [] 58 | }, 59 | "game": { 60 | "currentL": -1, 61 | "list": [] 62 | }, 63 | "gamePlugin": { 64 | "list": [] 65 | }, 66 | "miniprogram": { 67 | "list": [ 68 | { 69 | "id": 0, 70 | "name": "pages/good/good", 71 | "pathName": "pages/good/good", 72 | "query": "", 73 | "scene": null 74 | } 75 | ] 76 | } 77 | } 78 | } -------------------------------------------------------------------------------- /pages/recom/recom.wxss: -------------------------------------------------------------------------------- 1 | .box { 2 | min-height: 100vh; 3 | background-size: 100% auto; 4 | background-repeat: no-repeat; 5 | background-attachment: fixed; 6 | } 7 | 8 | .head { 9 | position: fixed; 10 | top: 0; 11 | left: 0; 12 | width: 100%; 13 | display: flex; 14 | align-items: center; 15 | padding-left: 30rpx; 16 | font-size: var(--big); 17 | background-color: rgba(255, 255, 255, .97); 18 | z-index: 99999; 19 | } 20 | 21 | .hot { 22 | display: flex; 23 | flex-wrap: wrap; 24 | margin: 20rpx 20rpx; 25 | padding: 20rpx; 26 | background-color: rgba(255, 255, 255, .86); 27 | } 28 | 29 | .hot-item { 30 | width: 25%; 31 | display: flex; 32 | flex-direction: column; 33 | align-items: center; 34 | justify-content: center; 35 | margin: 20rpx 0; 36 | } 37 | 38 | .hot-item-img { 39 | width: 120rpx; 40 | height: 120rpx; 41 | } 42 | 43 | .hot-item-tit { 44 | font-weight: bold; 45 | margin-top: 10rpx; 46 | } 47 | 48 | .hot-item-tip { 49 | font-size: var(--mini); 50 | } 51 | 52 | .art { 53 | display: flex; 54 | margin: 20rpx 20rpx; 55 | overflow: hidden; 56 | background-color: rgba(255, 255, 255, .86); 57 | } 58 | 59 | .art-col { 60 | flex-direction: column; 61 | } 62 | 63 | .art-all { 64 | width: 100%; 65 | height: 420rpx; 66 | } 67 | 68 | .art-all image { 69 | width: 100%; 70 | height: 420rpx; 71 | } 72 | 73 | .art-three { 74 | display: flex; 75 | justify-content: space-between; 76 | padding: 20rpx 20rpx 0; 77 | } 78 | 79 | .art-three image { 80 | width: 32%; 81 | height: 300rpx; 82 | } 83 | 84 | .art-tit { 85 | font-size: var(--big); 86 | font-weight: bold; 87 | margin: 10rpx 20rpx 25rpx; 88 | } 89 | 90 | .art-info { 91 | display: flex; 92 | align-items: center; 93 | justify-content: space-between; 94 | padding: 10rpx 20rpx 20rpx; 95 | } 96 | 97 | .art-min { 98 | font-size: var(--mini); 99 | } 100 | 101 | .art-user { 102 | display: flex; 103 | align-items: center; 104 | } 105 | 106 | .art-user image { 107 | width: 40rpx; 108 | height: 40rpx; 109 | overflow: hidden; 110 | margin-right: 10rpx; 111 | } 112 | 113 | .art-user text { 114 | font-size: var(--mini); 115 | } 116 | 117 | .art-con { 118 | flex: 1; 119 | display: flex; 120 | flex-direction: column; 121 | justify-content: space-between; 122 | } 123 | 124 | .art-img { 125 | max-width: 230rpx; 126 | max-height: 180rpx; 127 | margin: 20rpx; 128 | } 129 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "pages": [ 3 | "pages/index/index", 4 | "pages/class/class", 5 | "pages/recom/recom", 6 | "pages/cart/cart", 7 | "pages/mem/mem", 8 | 9 | "pages/good/good", 10 | 11 | "pages/list/list", 12 | "pages/kill/kill", 13 | 14 | "pages/order/order", 15 | 16 | "pages/member/morder/morder", 17 | "pages/member/morderinfo/morderinfo", 18 | 19 | "pages/member/money/money", 20 | "pages/member/coup/coup", 21 | "pages/member/favo/favo", 22 | "pages/member/credit/credit", 23 | 24 | "pages/member/agent/agent", 25 | "pages/member/busi/busi", 26 | "pages/member/notice/notice", 27 | "pages/member/message/message", 28 | "pages/member/integral/integral", 29 | 30 | "pages/article/article" 31 | ], 32 | "window": { 33 | "backgroundTextStyle": "dark", 34 | "navigationBarBackgroundColor": "#fff", 35 | "navigationBarTitleText": "码农优选", 36 | "navigationBarTextStyle": "black", 37 | "navigationStyle": "custom" 38 | }, 39 | "networkTimeout": { 40 | "request": 10000, 41 | "connectSocket": 10000, 42 | "uploadFile": 600000, 43 | "downloadFile": 600000 44 | }, 45 | "tabBar": { 46 | "color": "#c6c7c8", 47 | "selectedColor": "#ff586d", 48 | "backgroundColor": "#fff", 49 | "borderStyle": "white", 50 | "list": [ 51 | { 52 | "pagePath": "pages/index/index", 53 | "text": "首页", 54 | "iconPath": "./static/index.png", 55 | "selectedIconPath": "./static/indexo.png" 56 | }, 57 | { 58 | "pagePath": "pages/class/class", 59 | "text": "分类", 60 | "iconPath": "./static/class.png", 61 | "selectedIconPath": "./static/classo.png" 62 | }, 63 | { 64 | "pagePath": "pages/recom/recom", 65 | "text": "值得买", 66 | "iconPath": "./static/recom.png", 67 | "selectedIconPath": "./static/recomo.png" 68 | }, 69 | { 70 | "pagePath": "pages/cart/cart", 71 | "text": "购物车", 72 | "iconPath": "./static/cart.png", 73 | "selectedIconPath": "./static/carto.png" 74 | }, 75 | { 76 | "pagePath": "pages/mem/mem", 77 | "text": "我的", 78 | "iconPath": "./static/mem.png", 79 | "selectedIconPath": "./static/memo.png" 80 | } 81 | ] 82 | }, 83 | "usingComponents": { 84 | "header": "/components/header/header" 85 | }, 86 | "style": "v2", 87 | "sitemapLocation": "sitemap.json" 88 | } -------------------------------------------------------------------------------- /static/icon.wxss: -------------------------------------------------------------------------------- 1 | @keyframes icon-spin { 2 | 0% { 3 | -webkit-transform: rotate(0); 4 | transform: rotate(0); 5 | } 6 | 7 | 100% { 8 | -webkit-transform: rotate(359deg); 9 | transform: rotate(359deg); 10 | } 11 | } 12 | 13 | .iconfont-spin { 14 | -webkit-animation: icon-spin 2s infinite linear; 15 | animation: icon-spin 2s infinite linear; 16 | display: inline-block; 17 | } 18 | 19 | .iconfont-pulse { 20 | -webkit-animation: icon-spin 1s infinite steps(8); 21 | animation: icon-spin 1s infinite steps(8); 22 | display: inline-block; 23 | } 24 | 25 | text[class*="icon-"], 26 | view[class*="icon-"], 27 | button[class*="icon-"] { 28 | font-family: "iweIcon"; 29 | font-style: normal; 30 | } 31 | 32 | @font-face { 33 | font-family: 'iweIcon'; 34 | src: url('//at.alicdn.com/t/font_1818100_1raqroxzhsr.eot'); 35 | src: url('//at.alicdn.com/t/font_1818100_1raqroxzhsr.eot?#iefix') format('embedded-opentype'), 36 | url('//at.alicdn.com/t/font_1818100_1raqroxzhsr.woff2') format('woff2'), 37 | url('//at.alicdn.com/t/font_1818100_1raqroxzhsr.woff') format('woff'), 38 | url('//at.alicdn.com/t/font_1818100_1raqroxzhsr.ttf') format('truetype'), 39 | url('//at.alicdn.com/t/font_1818100_1raqroxzhsr.svg#iconfont') format('svg'); 40 | } 41 | 42 | .icon-back:before { 43 | content: "\e602"; 44 | font-size: var(--biger); 45 | } 46 | 47 | .icon-search:before { 48 | content: "\e60c"; 49 | } 50 | 51 | .icon-scan:before { 52 | content: "\e7dc"; 53 | } 54 | 55 | .icon-arrow:before { 56 | content: "\e7b9"; 57 | } 58 | 59 | .icon-countdown:before { 60 | content: "\e60b"; 61 | } 62 | 63 | .icon-view:before { 64 | content: "\e61c"; 65 | } 66 | 67 | .icon-money:before { 68 | content: "\e665"; 69 | } 70 | 71 | .icon-level:before { 72 | content: "\e6b4"; 73 | } 74 | 75 | .icon-favo:before { 76 | content: "\e60d"; 77 | } 78 | 79 | .icon-favos:before { 80 | content: "\e622"; 81 | } 82 | 83 | .icon-hot:before { 84 | content: "\e600"; 85 | } 86 | 87 | .icon-hots:before { 88 | content: "\e60f"; 89 | } 90 | 91 | .icon-poster:before { 92 | content: "\e623"; 93 | } 94 | 95 | .icon-del:before { 96 | content: "\e62c"; 97 | } 98 | 99 | .icon-more:before { 100 | content: "\e609"; 101 | } 102 | 103 | .icon-che:before { 104 | content: "\e614"; 105 | } 106 | 107 | .icon-cheo:before { 108 | content: "\e613"; 109 | } 110 | 111 | .icon-pic::before { 112 | content: "\e627"; 113 | } 114 | 115 | .icon-txt::before { 116 | content: "\e61d"; 117 | } 118 | 119 | .icon-close::before { 120 | content: "\e60e"; 121 | } 122 | 123 | .icon-star::before { 124 | content: "\e7a7"; 125 | } 126 | 127 | .icon-kf::before { 128 | content: "\e607"; 129 | } -------------------------------------------------------------------------------- /pages/kill/kill.wxml: -------------------------------------------------------------------------------- 1 |
2 | 限时秒杀 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 柠檬小龙虾沙拉 11 | 12 | 13 | ¥ 14 | 12.00 15 | ¥24.00 16 | 17 | 18 | 去抢购 19 | 20 | 21 | 20% 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 柠檬小龙虾沙拉 34 | 35 | 36 | ¥ 37 | 12.00 38 | ¥24.00 39 | 40 | 41 | 去抢购 42 | 43 | 44 | 20% 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 柠檬小龙虾沙拉 57 | 58 | 59 | ¥ 60 | 12.00 61 | ¥24.00 62 | 63 | 64 | 去抢购 65 | 66 | 67 | 20% 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /pages/good/good.js: -------------------------------------------------------------------------------- 1 | const app = getApp() 2 | const http = require('../../utils/http') 3 | 4 | let that, did = '' 5 | Page({ 6 | 7 | /** 8 | * 页面的初始数据 9 | */ 10 | data: { 11 | StatusBar: app.local.StatusBar, 12 | CustomBar: app.local.CustomBar, 13 | alpha: 0, 14 | info: null, 15 | speci: [] 16 | }, 17 | 18 | /** 19 | * 生命周期函数--监听页面加载 20 | */ 21 | onLoad: function (options) { 22 | that = this 23 | did = options.did 24 | console.log(did) 25 | this.getInfo() 26 | }, 27 | 28 | getInfo: function() { 29 | wx.showLoading({ 30 | title: '飞速加载中...', 31 | mask: true 32 | }) 33 | http.post('v1/productinfo/detailkey', { 34 | baseid: did 35 | }).then(res => { 36 | console.log(res) 37 | if(res.data.code === 0) { 38 | let imgStr = '' 39 | res.data.data.descript.replace(/]*src=['"]([^'"]+)[^>]*>/gi, function (match, capture) { 40 | imgStr += '' 41 | }) 42 | res.data.data.descript = imgStr 43 | that.setData({ 44 | info: res.data.data 45 | }) 46 | 47 | that.getSpeci() 48 | } else { 49 | wx.showToast({ 50 | title: res.data.msg, 51 | icon: 'none' 52 | }) 53 | 54 | setTimeout(function() { 55 | wx.navigateBack({ 56 | delta: 1 57 | }) 58 | }, 800) 59 | } 60 | }) 61 | }, 62 | 63 | //获取规格 64 | getSpeci: function() { 65 | http.post('v1/productinfo/specinfo', { 66 | baseid: did 67 | }).then(res => { 68 | console.log(res) 69 | if(res.data.code === 0) { 70 | that.setData({ 71 | speci: res.data.data 72 | }) 73 | } 74 | wx.hideLoading() 75 | }) 76 | 77 | this.getSku() 78 | }, 79 | 80 | //商品sku 81 | getSku: function() { 82 | http.post('v1/productinfo/skuinfo', { 83 | baseid: did 84 | }).then(res => { 85 | console.log(res) 86 | if(res.data.code === 0) { 87 | 88 | } 89 | }) 90 | }, 91 | 92 | buy: function() { 93 | wx.navigateTo({ 94 | url: '../order/order' 95 | }) 96 | }, 97 | 98 | /** 99 | * 生命周期函数--监听页面初次渲染完成 100 | */ 101 | onReady: function () { 102 | http.getSystem(app) 103 | }, 104 | 105 | /** 106 | * 生命周期函数--监听页面显示 107 | */ 108 | onShow: function () { 109 | 110 | }, 111 | 112 | /** 113 | * 生命周期函数--监听页面隐藏 114 | */ 115 | onHide: function () { 116 | 117 | }, 118 | 119 | /** 120 | * 生命周期函数--监听页面卸载 121 | */ 122 | onUnload: function () { 123 | 124 | }, 125 | 126 | onPageScroll: function(e) { 127 | const alpha = e.scrollTop/100 128 | this.setData({ 129 | alpha: alpha 130 | }) 131 | }, 132 | 133 | goBack: function() { 134 | wx.navigateBack({ 135 | delta: 1 136 | }) 137 | }, 138 | 139 | /** 140 | * 页面相关事件处理函数--监听用户下拉动作 141 | */ 142 | onPullDownRefresh: function () { 143 | 144 | }, 145 | 146 | /** 147 | * 页面上拉触底事件的处理函数 148 | */ 149 | onReachBottom: function () { 150 | 151 | }, 152 | 153 | /** 154 | * 用户点击右上角分享 155 | */ 156 | onShareAppMessage: function () { 157 | 158 | } 159 | }) -------------------------------------------------------------------------------- /pages/cart/cart.wxml: -------------------------------------------------------------------------------- 1 | 2 | 购物车 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 水果刀 15 | 16 | 10 斤 大颗 17 | 18 | 19 | 20 | 21 | 22 | ¥100.00 23 | 24 | 25 | - 26 | 1 27 | + 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 水果刀 41 | 42 | 10 斤 大颗 43 | 44 | 45 | 46 | 47 | 48 | ¥100.00 49 | 50 | 51 | - 52 | 1 53 | + 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | / 63 | 64 | / 65 | 66 | / 67 | 68 | 69 | RECOMMENDED FRO YOU 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | {{item.title}} 79 | {{item.buyNum}} 人付款 80 | 81 | 82 | ¥ 83 | {{item.price}} 84 | 85 | ¥{{item.market}} 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 全选 97 | 98 | 99 | 100 | 合计:¥ 129.00 101 | 102 | 去结算 103 | 104 | -------------------------------------------------------------------------------- /pages/good/good.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hi~,木子菇凉 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | ¥ 21 | {{info.price}} 22 | 23 | 24 | 25 | 100 26 | 27 | 28 | {{info.productname}} 29 | {{info.des}} 30 | 31 | 32 | 33 | 34 | 35 | 运费 36 | 满99元免邮费 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 领券 45 | 46 | 每满150减18 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | {{item.servnm}} 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 规格参数 65 | 66 | 67 | 分类 68 | 连衣裙 69 | 70 | 71 | 分类 72 | 连衣裙 73 | 74 | 75 | 分类 76 | 连衣裙 77 | 78 | 79 | 分类 80 | 连衣裙 81 | 82 | 83 | 84 | 85 | 86 | 87 | 商品信息 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 101 | 105 | 106 | 加入购物车 107 | 立即购买 108 | -------------------------------------------------------------------------------- /pages/member/morderinfo/morderinfo.wxml: -------------------------------------------------------------------------------- 1 |
2 | 订单详情 3 |
4 | 5 | 6 | 7 | 8 | 小一 9 | 18288888888 10 | 11 | 湖南省长沙市开福区德雅路口 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 冬季新款女士连衣裙 21 | 黑色、均码 22 | 23 | 24 | 25 | ¥ 26 | 12.00 27 | 28 | 1 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 冬季新款女士连衣裙 38 | 黑色、均码 39 | 40 | 41 | 42 | ¥ 43 | 12.00 44 | 45 | 1 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 优惠券 56 | 57 | 每满150减18 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 商品总价 68 | 69 | ¥ 70 | 24.00 71 | 72 | 73 | 74 | 运费 75 | 76 | ¥ 77 | 0.00 78 | 79 | 80 | 81 | 优惠金额 82 | 83 | ¥ 84 | 1.00 85 | 86 | 87 | 88 | 获得积分 89 | 90 | + 91 | 0 92 | 93 | 94 | 95 | 96 | 97 | 共计1件商品 合计: 98 | 99 | ¥ 100 | 0.00 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 实付: 109 | ¥ 110 | 24.00 111 | 112 | 113 | 取消订单 114 | 确认收货 115 | 116 | -------------------------------------------------------------------------------- /utils/core.js: -------------------------------------------------------------------------------- 1 | class core { 2 | constructor(arg) {} 3 | 4 | //加法运算 5 | floatAdd(arg1, arg2) { 6 | let r1, r2, m 7 | try { 8 | r1 = arg1.toString().split(".")[1].length 9 | } catch (e) { 10 | r1 = 0 11 | } 12 | try { 13 | r2 = arg2.toString().split(".")[1].length 14 | } catch (e) { 15 | r2 = 0 16 | } 17 | m = Math.pow(10, Math.max(r1, r2)) 18 | return (arg1 * m + arg2 * m) / m 19 | } 20 | 21 | //减法 22 | floatSub(arg1, arg2) { 23 | let r1, r2, m, n 24 | try { 25 | r1 = arg1.toString().split(".")[1].length 26 | } catch (e) { 27 | r1 = 0 28 | } 29 | try { 30 | r2 = arg2.toString().split(".")[1].length 31 | } catch (e) { 32 | r2 = 0 33 | } 34 | m = Math.pow(10, Math.max(r1, r2))     //动态控制精度长度     35 | n = (r1 >= r2) ? r1 : r2 36 | return ((arg1 * m - arg2 * m) / m).toFixed(n) 37 | } 38 | 39 | //乘法 40 | floatMul(arg1, arg2) { 41 | let m = 0, 42 | s1 = arg1.toString(), 43 | s2 = arg2.toString() 44 | try { 45 | m += s1.split(".")[1].length 46 | } catch (e) {} 47 | try { 48 | m += s2.split(".")[1].length 49 | } catch (e) {} 50 | return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m) 51 | } 52 | 53 | //除法  54 | floatDiv(arg1, arg2) { 55 | let t1 = 0, 56 | t2 = 0, 57 | r1, r2 58 | try { 59 | t1 = arg1.toString().split(".")[1].length 60 | } catch (e) {} 61 | try { 62 | t2 = arg2.toString().split(".")[1].length 63 | } catch (e) {} 64 | 65 | r1 = Number(arg1.toString().replace(".", "")) 66 | r2 = Number(arg2.toString().replace(".", "")) 67 | return (r1 / r2) * Math.pow(10, t2 - t1) 68 | } 69 | 70 | //检查手机号 71 | isPhone(phone) { 72 | const regp = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/; 73 | return regp.test(phone) 74 | } 75 | 76 | //toast 77 | toast(tit) { 78 | wx.showToast({ 79 | title: tit, 80 | icon: 'none' 81 | }) 82 | } 83 | 84 | //排序 85 | sortJson(array, field, reverse) { 86 | /** 87 | * json 数据排序 88 | * @param array 原始json字符串 89 | * @param string 排序字段 90 | * @param string 倒序 91 | */ 92 | 93 | //数组长度小于2 或 没有指定排序字段 或 不是json格式数据 94 | if (array.length < 2 || !field || typeof array[0] !== "object") return array 95 | 96 | //数字类型排序 97 | if (typeof array[0][field] === "number") { 98 | array.sort(function (x, y) { return x[field] - y[field] }) 99 | } 100 | 101 | //字符串类型排序 102 | if (typeof array[0][field] === "string") { 103 | array.sort(function (x, y) { return x[field].localeCompare(y[field]) }) 104 | } 105 | 106 | //倒序 107 | if (reverse) { 108 | array.reverse() 109 | } 110 | return array 111 | } 112 | 113 | } 114 | 115 | module.exports = new core() -------------------------------------------------------------------------------- /pages/article/article.wxml: -------------------------------------------------------------------------------- 1 |
2 | 详情 3 |
4 | 5 | 6 | IOS四个隐藏技巧,知道2个更轻松 7 | 8 | 2020年06月12日发布 9 | 10 | 11 | 10.0k 12 | 13 | 14 | 15 | 16 | 17 | 文章内容 18 | 19 | 20 | 当季 21 | 技巧 22 | 23 | 24 | 25 | 26 | 27 | 100 28 | 人点赞 29 | 30 | 31 | 32 | 33 | 本内容来自作者,不代表平台立场 34 | 35 | 36 | 这些很不错哦 37 | 38 | 39 | 40 | 41 | 42 | 夏季女士长裙 43 | 122 人付款 44 | 45 | 46 | 47 | ¥ 48 | 24.00 49 | 50 | 立即前往 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 夏季女士长裙 60 | 122 人付款 61 | 62 | 63 | 64 | ¥ 65 | 24.00 66 | 67 | 立即前往 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 大家都在看 76 | 77 | 78 | 79 | 秋季新款水饮冲调爆品热卖 80 | 81 | 82 | 83 | 好物鉴赏 84 | 85 | 86 | 100 阅读 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 秋季新款水饮冲调爆品热卖 96 | 97 | 98 | 99 | 好物鉴赏 100 | 101 | 102 | 100 阅读 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 海报 116 | 117 | 118 | 119 | 收藏 120 | 121 | 122 | 立即拥有 123 | -------------------------------------------------------------------------------- /pages/order/order.wxml: -------------------------------------------------------------------------------- 1 |
2 | 确认订单 3 |
4 | 5 | 6 | 7 | 8 | 小一 9 | 18288888888 10 | 11 | 湖南省长沙市开福区德雅路口 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 冬季新款女士连衣裙 21 | 黑色、均码 22 | 23 | 24 | 25 | ¥ 26 | 12.00 27 | 28 | 1 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 冬季新款女士连衣裙 38 | 黑色、均码 39 | 40 | 41 | 42 | ¥ 43 | 12.00 44 | 45 | 1 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 优惠券 56 | 57 | 每满150减18 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 商品总价 68 | 69 | ¥ 70 | 24.00 71 | 72 | 73 | 74 | 运费 75 | 76 | ¥ 77 | 0.00 78 | 79 | 80 | 81 | 优惠金额 82 | 83 | ¥ 84 | 1.00 85 | 86 | 87 | 88 | 获得积分 89 | 90 | + 91 | 0 92 | 93 | 94 | 95 | 96 | 97 | 共计1件商品 合计: 98 | 99 | ¥ 100 | 0.00 101 | 102 | 103 | 104 | 105 | 106 | 107 | 支付方式 108 | 109 | 116 | 123 | 124 | 125 | 126 | 127 | 128 | 实付: 129 | ¥ 130 | 24.00 131 | 132 | 确认下单 133 | -------------------------------------------------------------------------------- /pages/member/morder/morder.wxml: -------------------------------------------------------------------------------- 1 |
2 | 订单 3 |
4 | 5 | 6 | 7 | 全部 8 | 9 | 10 | 11 | 待付款 12 | 13 | 14 | 15 | 待发货 16 | 17 | 18 | 19 | 待收货 20 | 21 | 22 | 23 | 已完成 24 | 25 | 26 | 27 | 28 | 29 | 30 | 订单号:3232322323 31 | 待付款 32 | 33 | 34 | 35 | 36 | 37 | 夏季新款女士长裙 38 | 黑色、均码 39 | 40 | 41 | 42 | ¥ 43 | 12.00 44 | 45 | 1 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 夏季新款女士长裙 54 | 黑色、均码 55 | 56 | 57 | 58 | ¥ 59 | 12.00 60 | 61 | 1 62 | 63 | 64 | 65 | 66 | 67 | 共 2 件商品 合计: 68 | ¥ 69 | 12.00 70 | 71 | 72 | 73 | 查看物流 74 | 订单详情 75 | 76 | 77 | 78 | 79 | 80 | 订单号:3232322323 81 | 待付款 82 | 83 | 84 | 85 | 86 | 87 | 夏季新款女士长裙 88 | 黑色、均码 89 | 90 | 91 | 92 | ¥ 93 | 12.00 94 | 95 | 1 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 夏季新款女士长裙 104 | 黑色、均码 105 | 106 | 107 | 108 | ¥ 109 | 12.00 110 | 111 | 1 112 | 113 | 114 | 115 | 116 | 117 | 共 2 件商品 合计: 118 | ¥ 119 | 12.00 120 | 121 | 122 | 123 | 查看物流 124 | 订单详情 125 | 126 | -------------------------------------------------------------------------------- /pages/order/order.wxss: -------------------------------------------------------------------------------- 1 | page { 2 | padding-bottom: 90rpx; 3 | } 4 | 5 | .address { 6 | display: flex; 7 | align-items: center; 8 | justify-content: space-between; 9 | background-color: #fff; 10 | margin: 1rpx 0 15rpx; 11 | padding: 20rpx 25rpx; 12 | } 13 | 14 | .address-info { 15 | flex: 1; 16 | display: flex; 17 | flex-direction: column; 18 | justify-content: space-between; 19 | margin-right: 20rpx; 20 | } 21 | 22 | .address-top { 23 | flex: 1; 24 | display: flex; 25 | justify-content: space-between; 26 | } 27 | 28 | .address-con { 29 | margin-top: 25rpx; 30 | } 31 | 32 | .good { 33 | display: flex; 34 | background-color: #fff; 35 | margin-bottom: 1rpx; 36 | padding: 20rpx 25rpx; 37 | } 38 | 39 | .good-img { 40 | width: 180rpx; 41 | height: 180rpx; 42 | margin-right: 20rpx; 43 | } 44 | 45 | .good-info { 46 | flex: 1; 47 | display: flex; 48 | flex-direction: column; 49 | justify-content: space-between; 50 | } 51 | 52 | .good-name { 53 | flex: 1; 54 | font-size: var(--big); 55 | margin-bottom: 10rpx; 56 | } 57 | 58 | .good-attr { 59 | font-size: var(--mini); 60 | } 61 | 62 | .good-bot { 63 | display: flex; 64 | align-items: center; 65 | justify-content: space-between; 66 | } 67 | 68 | .good-price { 69 | font-size: var(--biger); 70 | font-family: din; 71 | } 72 | 73 | .good-remark { 74 | width: 100%; 75 | height: 90rpx; 76 | background-color: #fff; 77 | padding: 0 25rpx; 78 | margin-bottom: 15rpx; 79 | } 80 | 81 | .info { 82 | display: flex; 83 | flex-direction: column; 84 | background-color: #fff; 85 | padding: 10rpx 25rpx; 86 | margin-bottom: 15rpx; 87 | } 88 | 89 | .info-li { 90 | display: flex; 91 | align-items: center; 92 | justify-content: space-between; 93 | padding: 15rpx 0; 94 | } 95 | 96 | .info-price { 97 | font-size: var(--biger); 98 | font-family: din; 99 | } 100 | 101 | .info-total { 102 | display: flex; 103 | } 104 | 105 | .info-symbol { 106 | display: inline-block; 107 | vertical-align: middle; 108 | margin-top: -9rpx; 109 | } 110 | 111 | .info-attr { 112 | display: flex; 113 | align-items: center; 114 | justify-content: space-between; 115 | padding: 27rpx 0; 116 | border-bottom: 1rpx solid #f7f8f9; 117 | } 118 | 119 | .info-attr:last-child { 120 | border-bottom: 0; 121 | } 122 | 123 | .info-attr-info { 124 | display: flex; 125 | align-items: center; 126 | } 127 | 128 | .info-attr-name { 129 | margin-right: 10rpx; 130 | } 131 | 132 | .info-tick { 133 | color: #ff586d; 134 | margin-right: 15rpx; 135 | } 136 | 137 | .pay-tit { 138 | padding: 20rpx 0; 139 | display: flex; 140 | align-items: center; 141 | justify-content: space-between; 142 | border-bottom: 1rpx solid #f7f8f9; 143 | } 144 | 145 | .pay-type { 146 | display: flex; 147 | justify-content: space-between; 148 | background-color: #fff; 149 | padding: 30rpx 0; 150 | margin-bottom: 1rpx; 151 | } 152 | 153 | .pay-wx { 154 | color: #09bb07; 155 | font-size: var(--biger); 156 | vertical-align: middle; 157 | display: inline-block; 158 | margin: -5rpx 5rpx 0 0; 159 | } 160 | 161 | .pay-ye { 162 | color: #ffbd27; 163 | font-size: var(--biger); 164 | vertical-align: middle; 165 | display: inline-block; 166 | margin: -5rpx 5rpx 0 0; 167 | } 168 | 169 | radio { 170 | transform: scale(.8); 171 | margin: -3rpx 0 0 5rpx; 172 | vertical-align: middle; 173 | } 174 | 175 | .footer { 176 | position: fixed; 177 | bottom: 0; 178 | left: 0; 179 | width: 100%; 180 | height: 90rpx; 181 | display: flex; 182 | align-items: center; 183 | justify-content: space-around; 184 | background-color: #fff 185 | } 186 | 187 | .footer-info { 188 | flex: 2; 189 | margin-left: 25rpx; 190 | } 191 | 192 | .footer-buy { 193 | flex: 1; 194 | color: #fff; 195 | height: 68rpx; 196 | display: flex; 197 | align-items: center; 198 | justify-content: center; 199 | background-color: #ff586d; 200 | margin-right: 25rpx; 201 | } 202 | 203 | .bold { 204 | font-weight: bold; 205 | } -------------------------------------------------------------------------------- /pages/index/index.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 码农优选 4 | 5 | 6 | 7 | 8 | 9 | 码农优选 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | {{item.categoryname}} 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 限时秒杀 53 | 54 | 55 | 进去狂逛 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | {{item.title}} 65 | 已售{{item.buyNum}} 仅剩12份 66 | 67 | 68 | ¥ 69 | {{item.price}} 70 | 71 | ¥{{item.market}} 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 猜您喜欢 81 | 82 | 83 | 84 | 特惠 85 | 86 | 87 | 88 | 运动 89 | 90 | 91 | 92 | 洗护 93 | 94 | 95 | 96 | 母婴 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | {{item.title}} 108 | {{item.buyNum}} 人付款 109 | 110 | 111 | ¥ 112 | {{item.price}} 113 | 114 | ¥{{item.market}} 115 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /pages/member/morderinfo/morderinfo.wxss: -------------------------------------------------------------------------------- 1 | page { 2 | padding-bottom: 90rpx; 3 | } 4 | 5 | .address { 6 | display: flex; 7 | align-items: center; 8 | justify-content: space-between; 9 | background-color: #fff; 10 | margin: 1rpx 0 15rpx; 11 | padding: 20rpx 25rpx; 12 | } 13 | 14 | .address-info { 15 | flex: 1; 16 | display: flex; 17 | flex-direction: column; 18 | justify-content: space-between; 19 | margin-right: 20rpx; 20 | } 21 | 22 | .address-top { 23 | flex: 1; 24 | display: flex; 25 | justify-content: space-between; 26 | } 27 | 28 | .address-con { 29 | margin-top: 25rpx; 30 | } 31 | 32 | .good { 33 | display: flex; 34 | background-color: #fff; 35 | margin-bottom: 1rpx; 36 | padding: 20rpx 25rpx; 37 | } 38 | 39 | .good-img { 40 | width: 180rpx; 41 | height: 180rpx; 42 | margin-right: 20rpx; 43 | } 44 | 45 | .good-info { 46 | flex: 1; 47 | display: flex; 48 | flex-direction: column; 49 | justify-content: space-between; 50 | } 51 | 52 | .good-name { 53 | flex: 1; 54 | font-size: var(--big); 55 | margin-bottom: 10rpx; 56 | } 57 | 58 | .good-attr { 59 | font-size: var(--mini); 60 | } 61 | 62 | .good-bot { 63 | display: flex; 64 | align-items: center; 65 | justify-content: space-between; 66 | } 67 | 68 | .good-price { 69 | font-size: var(--biger); 70 | font-family: din; 71 | } 72 | 73 | .good-remark { 74 | width: 100%; 75 | height: 90rpx; 76 | background-color: #fff; 77 | padding: 0 25rpx; 78 | margin-bottom: 15rpx; 79 | } 80 | 81 | .info { 82 | display: flex; 83 | flex-direction: column; 84 | background-color: #fff; 85 | padding: 10rpx 25rpx; 86 | margin-bottom: 15rpx; 87 | } 88 | 89 | .info-li { 90 | display: flex; 91 | align-items: center; 92 | justify-content: space-between; 93 | padding: 15rpx 0; 94 | } 95 | 96 | .info-price { 97 | font-size: var(--biger); 98 | font-family: din; 99 | } 100 | 101 | .info-total { 102 | display: flex; 103 | } 104 | 105 | .info-symbol { 106 | display: inline-block; 107 | vertical-align: middle; 108 | margin-top: -9rpx; 109 | } 110 | 111 | .info-attr { 112 | display: flex; 113 | align-items: center; 114 | justify-content: space-between; 115 | padding: 27rpx 0; 116 | border-bottom: 1rpx solid #f7f8f9; 117 | } 118 | 119 | .info-attr:last-child { 120 | border-bottom: 0; 121 | } 122 | 123 | .info-attr-info { 124 | display: flex; 125 | align-items: center; 126 | } 127 | 128 | .info-attr-name { 129 | margin-right: 10rpx; 130 | } 131 | 132 | .info-tick { 133 | color: #ff586d; 134 | margin-right: 15rpx; 135 | } 136 | 137 | .pay-tit { 138 | padding: 20rpx 0; 139 | display: flex; 140 | align-items: center; 141 | justify-content: space-between; 142 | border-bottom: 1rpx solid #f7f8f9; 143 | } 144 | 145 | .pay-type { 146 | display: flex; 147 | justify-content: space-between; 148 | background-color: #fff; 149 | padding: 30rpx 0; 150 | margin-bottom: 1rpx; 151 | } 152 | 153 | .pay-wx { 154 | color: #09bb07; 155 | font-size: var(--biger); 156 | vertical-align: middle; 157 | display: inline-block; 158 | margin: -5rpx 5rpx 0 0; 159 | } 160 | 161 | .pay-ye { 162 | color: #ffbd27; 163 | font-size: var(--biger); 164 | vertical-align: middle; 165 | display: inline-block; 166 | margin: -5rpx 5rpx 0 0; 167 | } 168 | 169 | radio { 170 | transform: scale(.8); 171 | margin: -3rpx 0 0 5rpx; 172 | vertical-align: middle; 173 | } 174 | 175 | .footer { 176 | position: fixed; 177 | bottom: 0; 178 | left: 0; 179 | width: 100%; 180 | height: 90rpx; 181 | display: flex; 182 | align-items: center; 183 | justify-content: space-between; 184 | padding-right: 25rpx; 185 | background-color: #fff 186 | } 187 | 188 | .footer-info { 189 | flex: 1; 190 | margin-left: 25rpx; 191 | } 192 | 193 | .footer-dos { 194 | display: flex; 195 | } 196 | 197 | .footer-buy { 198 | margin-left: 20rpx; 199 | width: 220rpx; 200 | height: 70rpx; 201 | line-height: 70rpx; 202 | text-align: center; 203 | border: 1rpx solid #eee; 204 | margin-left: 15rpx; 205 | } 206 | 207 | .bold { 208 | font-weight: bold; 209 | } -------------------------------------------------------------------------------- /pages/cart/cart.wxss: -------------------------------------------------------------------------------- 1 | .head { 2 | position: fixed; 3 | top: 0; 4 | left: 0; 5 | width: 100%; 6 | display: flex; 7 | align-items: center; 8 | padding-left: 20rpx; 9 | background-color: #fff; 10 | z-index: 99999; 11 | } 12 | 13 | .footer { 14 | position: fixed; 15 | bottom: 0; 16 | left: 0; 17 | right: 0; 18 | padding: 0; 19 | min-height: 98rpx; 20 | display: flex; 21 | align-items: center; 22 | justify-content: space-between; 23 | background-color: #fff; 24 | padding: 0 20rpx; 25 | border-bottom: 1rpx solid #f2f5f7; 26 | z-index: 99999; 27 | } 28 | 29 | .scroll { 30 | position: absolute; 31 | top: 0; 32 | bottom: 98rpx; 33 | left: 0; 34 | width: 100%; 35 | } 36 | 37 | .good { 38 | display: flex; 39 | align-items: center; 40 | margin: 20rpx 20rpx; 41 | padding: 15rpx; 42 | background-color: #fff; 43 | } 44 | 45 | .good-info { 46 | min-height: 180rpx; 47 | flex: 1; 48 | display: flex; 49 | flex-direction: column; 50 | justify-content: space-between; 51 | } 52 | 53 | .good-img { 54 | width: 180rpx; 55 | height: 180rpx; 56 | margin: 0 25rpx 0 5rpx; 57 | } 58 | 59 | .good-img image { 60 | width: 100%; 61 | height: 100%; 62 | } 63 | 64 | .good-top { 65 | flex: 1; 66 | } 67 | 68 | .good-name { 69 | font-size: var(--big); 70 | line-height: 40rpx; 71 | height: 80rpx; 72 | margin-bottom: 5rpx; 73 | overflow: hidden; 74 | } 75 | 76 | .good-bot { 77 | flex: 1; 78 | display: flex; 79 | align-items: center; 80 | justify-content: space-between; 81 | margin-top: 15rpx; 82 | } 83 | 84 | .good-dos { 85 | display: flex; 86 | align-items: center; 87 | } 88 | 89 | .good-plus { 90 | width: 60rpx; 91 | height: 50rpx; 92 | line-height: 50rpx; 93 | text-align: center; 94 | border: 1rpx solid #f6f7f8; 95 | } 96 | 97 | .good-nums { 98 | width: 70rpx; 99 | height: 50rpx; 100 | line-height: 50rpx; 101 | text-align: center; 102 | border: 1rpx solid #f6f7f8; 103 | border-right: 0; 104 | border-left: 0; 105 | } 106 | 107 | .good-price { 108 | color: #f78c2d; 109 | font-family: din; 110 | } 111 | 112 | .good-price text { 113 | font-size: var(--biger); 114 | } 115 | 116 | .go-info { 117 | display: flex; 118 | align-items: center; 119 | } 120 | 121 | .go-buy { 122 | width: 200rpx; 123 | height: 68rpx; 124 | line-height: 68rpx; 125 | text-align: center; 126 | color: #fff; 127 | margin-left: 20rpx; 128 | background-color: #ff586d; 129 | } 130 | 131 | .go-price { 132 | color: #ff586d; 133 | font-family: din; 134 | font-size: var(--biger); 135 | } 136 | 137 | .go-check { 138 | display: flex; 139 | align-items: center; 140 | } 141 | 142 | .go-check text { 143 | font-size: var(--mini); 144 | } 145 | 146 | radio { 147 | transform: scale(0.8) 148 | } 149 | 150 | 151 | .tit { 152 | display: flex; 153 | flex-direction: column; 154 | align-items: center; 155 | justify-content: center; 156 | margin: 50rpx 0 30rpx; 157 | } 158 | 159 | .tit-name { 160 | letter-spacing: 10rpx; 161 | font-weight: bold; 162 | } 163 | 164 | .tit-line { 165 | font-weight: lighter; 166 | margin: 0 5rpx; 167 | } 168 | 169 | .tit-tip { 170 | margin-top: 10rpx; 171 | font-size: var(--minier); 172 | } 173 | 174 | 175 | .hot { 176 | display: flex; 177 | flex-wrap: wrap; 178 | justify-content: space-between; 179 | margin: 0 20rpx; 180 | } 181 | 182 | .hot-box { 183 | width: 48.5%; 184 | padding-bottom: 20rpx; 185 | margin-bottom: 20rpx; 186 | overflow: hidden; 187 | background-color: rgba(255, 255, 255, .98); 188 | } 189 | 190 | .hot-box-img { 191 | height: 350rpx; 192 | overflow: hidden; 193 | } 194 | 195 | .hot-box-img image { 196 | max-height: 100%; 197 | } 198 | 199 | .hot-pd { 200 | padding: 0 20rpx; 201 | } 202 | 203 | 204 | .kill-good-name { 205 | font-weight: bold; 206 | white-space: nowrap; 207 | text-overflow: ellipsis; 208 | overflow: hidden; 209 | margin-top: 10rpx; 210 | } 211 | 212 | .kill-good-soal { 213 | font-size: var(--minier); 214 | } 215 | 216 | .kill-good-price { 217 | display: flex; 218 | margin-top: 13rpx; 219 | } 220 | 221 | .kill-good-now { 222 | color: #f78c2d; 223 | } 224 | 225 | .kill-good-symbol { 226 | font-weight: bold; 227 | font-size: var(--minier); 228 | } 229 | 230 | .kill-good-money { 231 | font-size: var(--biger); 232 | font-family: 'din'; 233 | font-weight: bold; 234 | } 235 | 236 | .kill-good-old { 237 | margin: 13rpx 0 0 5rpx; 238 | font-family: 'din'; 239 | font-size: var(--mini); 240 | text-decoration: line-through; 241 | } -------------------------------------------------------------------------------- /pages/index/index.wxss: -------------------------------------------------------------------------------- 1 | .head { 2 | position: fixed; 3 | top: 0; 4 | left: 0; 5 | right: 0; 6 | display: flex; 7 | flex-direction: column; 8 | padding-left: 20rpx; 9 | z-index: 99999; 10 | background-color: rgba(255, 255, 255, .97); 11 | } 12 | 13 | .tit { 14 | display: flex; 15 | align-items: center; 16 | } 17 | 18 | .head-box { 19 | display: flex; 20 | align-items: center; 21 | justify-content: space-between; 22 | padding: 15px 20rpx 10px 0; 23 | } 24 | 25 | .search { 26 | flex: 1; 27 | height: 35px; 28 | display: flex; 29 | align-items: center; 30 | justify-content: space-between; 31 | background-color: rgba(0, 0, 0, .03); 32 | padding: 0 20rpx 0 10rpx; 33 | margin-right: 20rpx; 34 | } 35 | 36 | .search-box { 37 | flex: 1; 38 | } 39 | 40 | .search-icon { 41 | font-size: var(--big); 42 | } 43 | 44 | .search-recom { 45 | margin-left: 10rpx; 46 | } 47 | 48 | .gift { 49 | display: flex; 50 | align-items: center; 51 | } 52 | 53 | .gift image { 54 | width: 32px; 55 | height: 32px; 56 | } 57 | 58 | .swiper { 59 | min-height: 320rpx; 60 | margin: 0 20rpx; 61 | overflow: hidden; 62 | } 63 | 64 | .tab { 65 | display: flex; 66 | flex-wrap: wrap; 67 | margin: 20rpx; 68 | justify-content: space-between; 69 | } 70 | 71 | .tab-item { 72 | width: 20%; 73 | display: flex; 74 | flex-direction: column; 75 | justify-content: center; 76 | align-items: center; 77 | margin: 20rpx 0; 78 | } 79 | 80 | .tab-img { 81 | width: 86rpx; 82 | height: 86rpx; 83 | margin-bottom: 10rpx; 84 | background-color: rgba(0, 0, 0, .07); 85 | } 86 | 87 | .tab-txt { 88 | font-size: var(--mini); 89 | } 90 | 91 | .adver { 92 | margin: 0 20rpx; 93 | min-height: 180rpx; 94 | height: 180rpx; 95 | overflow: hidden; 96 | } 97 | 98 | .kill { 99 | display: flex; 100 | flex-direction: column; 101 | margin: 30rpx 20rpx; 102 | padding: 20rpx; 103 | background-color: rgba(255, 255, 255, .98); 104 | } 105 | 106 | .kill-tit { 107 | flex: 1; 108 | display: flex; 109 | align-items: center; 110 | justify-content: space-between; 111 | } 112 | 113 | .kill-tit-name { 114 | margin-left: 5rpx; 115 | font-size: var(--big); 116 | font-weight: bold; 117 | } 118 | 119 | .kill-more { 120 | font-size: var(--mini); 121 | } 122 | 123 | .kill-list { 124 | display: flex; 125 | justify-content: space-between; 126 | margin-top: 30rpx; 127 | } 128 | 129 | .kill-good { 130 | width: 31%; 131 | display: flex; 132 | flex-direction: column; 133 | } 134 | 135 | .kill-good-img { 136 | width: 100%; 137 | } 138 | 139 | .kill-good-name { 140 | font-weight: bold; 141 | white-space: nowrap; 142 | text-overflow: ellipsis; 143 | overflow: hidden; 144 | margin-top: 10rpx; 145 | } 146 | 147 | .kill-good-soal { 148 | font-size: var(--minier); 149 | } 150 | 151 | .kill-good-price { 152 | display: flex; 153 | margin-top: 13rpx; 154 | } 155 | 156 | .kill-good-now { 157 | color: #f78c2d; 158 | } 159 | 160 | .kill-good-symbol { 161 | font-weight: bold; 162 | font-size: var(--minier); 163 | } 164 | 165 | .kill-good-money { 166 | font-size: var(--biger); 167 | font-family: 'din'; 168 | font-weight: bold; 169 | } 170 | 171 | .kill-good-old { 172 | margin: 13rpx 0 0 5rpx; 173 | font-family: 'din'; 174 | font-size: var(--mini); 175 | text-decoration: line-through; 176 | } 177 | 178 | .scroll { 179 | width: 100%; 180 | white-space: nowrap; 181 | margin-bottom: 30rpx; 182 | } 183 | 184 | .scroll-item { 185 | width: 25%; 186 | line-height: 70rpx; 187 | color: #aaa; 188 | text-align: center; 189 | display: inline-block; 190 | } 191 | 192 | .scroll-item .line { 193 | width: 60rpx; 194 | height: 3px; 195 | line-height: 3px; 196 | margin: 0 auto; 197 | display: none; 198 | background-color: #00c452; 199 | } 200 | 201 | .scroll-act { 202 | color: #373737; 203 | font-weight: bold; 204 | } 205 | 206 | .scroll-act .line { 207 | display: block; 208 | } 209 | 210 | .hot { 211 | display: flex; 212 | flex-wrap: wrap; 213 | justify-content: space-between; 214 | margin: 0 20rpx 20rpx; 215 | } 216 | 217 | .hot-box { 218 | width: 48.5%; 219 | padding-bottom: 20rpx; 220 | margin-bottom: 20rpx; 221 | overflow: hidden; 222 | background-color: rgba(255, 255, 255, .98); 223 | } 224 | 225 | .hot-box-img { 226 | height: 350rpx; 227 | overflow: hidden; 228 | } 229 | 230 | .hot-box-img image { 231 | max-height: 100%; 232 | } 233 | 234 | .hot-pd { 235 | padding: 0 20rpx; 236 | } -------------------------------------------------------------------------------- /pages/good/good.wxss: -------------------------------------------------------------------------------- 1 | .head { 2 | position: fixed; 3 | top: 0; 4 | left: 0; 5 | width: 100%; 6 | display: flex; 7 | align-items: center; 8 | padding-left: 60rpx; 9 | background-color: rgba(255, 255, 255, .97); 10 | z-index: 99999; 11 | } 12 | 13 | .back { 14 | position: fixed; 15 | top: 0; 16 | left: 20rpx; 17 | display: flex; 18 | align-items: center; 19 | z-index: 999999; 20 | } 21 | 22 | .swipe { 23 | min-height: 750rpx; 24 | height: 750rpx; 25 | } 26 | 27 | .box { 28 | display: flex; 29 | flex-direction: column; 30 | background-color: #fff; 31 | margin-bottom: 15rpx; 32 | } 33 | 34 | .tit { 35 | display: flex; 36 | justify-content: space-between; 37 | align-items: flex-start; 38 | padding: 30rpx 20rpx 10rpx; 39 | } 40 | 41 | .price { 42 | color: #f78c2d; 43 | } 44 | 45 | .price-symbol { 46 | font-size: var(--mini); 47 | } 48 | 49 | .price-money { 50 | font-size: var(--biger); 51 | font-family: din; 52 | font-weight: bold; 53 | margin-left: 2rpx; 54 | } 55 | 56 | .tit-favo { 57 | display: flex; 58 | flex-direction: column; 59 | align-items: center; 60 | justify-content: center; 61 | } 62 | 63 | .favo-num { 64 | font-size: var(--mini); 65 | margin-top: 5rpx; 66 | } 67 | 68 | .favo { 69 | font-size: var(--biger); 70 | } 71 | 72 | .favod { 73 | color: #ff586d; 74 | } 75 | 76 | .good-name { 77 | font-size: var(--big); 78 | padding: 0 20rpx 10rpx; 79 | } 80 | 81 | .good-tip { 82 | padding: 0 20rpx 30rpx; 83 | } 84 | 85 | .good-attr { 86 | display: flex; 87 | align-items: center; 88 | justify-content: space-between; 89 | padding: 27rpx 20rpx; 90 | border-bottom: 1rpx solid #f7f8f9; 91 | } 92 | 93 | .good-attr-info { 94 | display: flex; 95 | align-items: center; 96 | } 97 | 98 | .good-attr-name { 99 | margin-right: 10rpx; 100 | } 101 | 102 | .good-tick { 103 | color: #ff586d; 104 | margin-right: 15rpx; 105 | } 106 | 107 | .box-alpha { 108 | opacity: .8; 109 | padding: 25rpx 20rpx; 110 | display: flex; 111 | background-color: rgba(250, 250, 247, .67); 112 | } 113 | 114 | .good-equel { 115 | margin-right: 20rpx; 116 | display: flex; 117 | align-items: center; 118 | } 119 | 120 | .good-equel-dot { 121 | color: #ff586d; 122 | margin-right: 5rpx; 123 | font-size: var(--minier); 124 | } 125 | 126 | .good-params { 127 | padding: 20rpx; 128 | flex-direction: row; 129 | flex-wrap: wrap; 130 | } 131 | 132 | .good-params-all { 133 | width: 100%; 134 | padding: 5rpx 0 15rpx; 135 | display: flex; 136 | align-items: center; 137 | font-weight: bold; 138 | } 139 | 140 | .good-params-two { 141 | padding: 5rpx 20rpx 15rpx; 142 | } 143 | 144 | .good-params-all view { 145 | width: 5rpx; 146 | height: 20rpx; 147 | margin-right: 10rpx; 148 | background-color: rgba(255, 88, 109, .37); 149 | } 150 | 151 | .good-params-item { 152 | display: flex; 153 | width: 50%; 154 | padding: 20rpx 0; 155 | } 156 | 157 | .good-params-item text { 158 | margin-right: 20rpx; 159 | } 160 | 161 | .good-info { 162 | padding-top: 20rpx; 163 | } 164 | 165 | .good-con { 166 | position: relative; 167 | width: 100%; 168 | text-align: center; 169 | overflow: hidden; 170 | margin-bottom: 70rpx; 171 | } 172 | 173 | .good-con image { 174 | width: 100%; 175 | display: block; 176 | } 177 | 178 | 179 | .footer { 180 | position: fixed; 181 | bottom: 0; 182 | left: 0; 183 | width: 100%; 184 | height: 90rpx; 185 | display: flex; 186 | align-items: center; 187 | justify-content: space-around; 188 | background-color: #fff 189 | } 190 | 191 | .footer-dos { 192 | width: 250rpx; 193 | display: flex; 194 | justify-content: space-around; 195 | margin: 0 37rpx 0 5rpx; 196 | } 197 | 198 | .footer-item { 199 | display: flex; 200 | flex-direction: column; 201 | align-items: center; 202 | justify-content: center; 203 | background-color: transparent; 204 | white-space: nowrap; 205 | padding: 10rpx; 206 | } 207 | 208 | .footer-item image { 209 | width: 40rpx; 210 | height: 40rpx; 211 | } 212 | 213 | .footer-item text { 214 | color: #ff586d; 215 | font-size: 20rpx; 216 | font-weight: lighter; 217 | } 218 | 219 | .footer-buy { 220 | flex: 1; 221 | color: #fff; 222 | height: 68rpx; 223 | display: flex; 224 | align-items: center; 225 | justify-content: center; 226 | background-color: #ff586d; 227 | margin-right: 20rpx; 228 | } 229 | 230 | .footer-cart { 231 | flex: 1.2; 232 | color: #fff; 233 | height: 68rpx; 234 | display: flex; 235 | align-items: center; 236 | justify-content: center; 237 | background-color: #ff9f5e; 238 | margin-right: 20rpx; 239 | } 240 | -------------------------------------------------------------------------------- /pages/article/article.wxss: -------------------------------------------------------------------------------- 1 | page { 2 | background-color: #fff; 3 | padding-bottom: 100rpx; 4 | } 5 | 6 | .top { 7 | display: flex; 8 | flex-direction: column; 9 | padding: 30rpx; 10 | border-top: 1rpx solid #f7f8fb; 11 | } 12 | 13 | .tit { 14 | font-size: var(--big); 15 | font-weight: bold; 16 | margin-bottom: 20rpx; 17 | } 18 | 19 | .statis { 20 | display: flex; 21 | justify-content: space-between; 22 | } 23 | 24 | .statis-view { 25 | font-family: din; 26 | } 27 | 28 | .con { 29 | position: relative; 30 | overflow: hidden; 31 | padding: 30rpx; 32 | } 33 | 34 | .con image { 35 | max-width: 100%; 36 | pointer-events: none; 37 | display: block; 38 | } 39 | 40 | .labels { 41 | display: flex; 42 | flex-wrap: wrap; 43 | margin: 100rpx 0 30rpx; 44 | } 45 | 46 | .labels-item { 47 | margin: 10rpx; 48 | font-size: 28rpx; 49 | padding: 5rpx 20rpx 3rpx; 50 | background-color: #f7f8fb; 51 | } 52 | 53 | .dos { 54 | display: flex; 55 | flex-direction: column; 56 | align-items: center; 57 | justify-content: center; 58 | margin: 100rpx 0 30rpx; 59 | } 60 | 61 | .dos-tip { 62 | font-size: 28rpx; 63 | } 64 | 65 | .dos-icon { 66 | font-size: var(--bigera); 67 | } 68 | 69 | .hot { 70 | border-top: 10rpx solid #f7f8fb; 71 | border-bottom: 10rpx solid #f7f8fb; 72 | 73 | } 74 | 75 | .hot-tit { 76 | color: #666; 77 | padding: 30rpx 30rpx 10rpx; 78 | } 79 | 80 | .tip { 81 | display: flex; 82 | justify-content: center; 83 | padding: 50rpx 0; 84 | margin-top: 20rpx; 85 | border-top: 1rpx solid #f7f8fb; 86 | } 87 | 88 | .good { 89 | display: flex; 90 | margin: 50rpx 10rpx; 91 | } 92 | 93 | .good-img { 94 | max-width: 230rpx; 95 | max-height: 180rpx; 96 | margin: 0 20rpx; 97 | } 98 | 99 | .good-info { 100 | flex: 1; 101 | display: flex; 102 | flex-direction: column; 103 | justify-content: space-between; 104 | margin-right: 30rpx; 105 | } 106 | 107 | .good-tit { 108 | font-weight: bold; 109 | font-size: var(--big); 110 | } 111 | 112 | .good-sale { 113 | font-size: var(--mini); 114 | margin-top: 5rpx; 115 | } 116 | 117 | .good-bot { 118 | display: flex; 119 | align-items: center; 120 | justify-content: space-between; 121 | } 122 | 123 | .good-go { 124 | color: #ff586d; 125 | font-size: var(--mini); 126 | padding: 10rpx 30rpx; 127 | background-color: rgba(255, 88, 109, .3); 128 | } 129 | 130 | .good-mon { 131 | font-family: din; 132 | font-size: var(--big); 133 | } 134 | 135 | .art { 136 | display: flex; 137 | margin: 50rpx 10rpx; 138 | } 139 | 140 | .art-tit { 141 | font-size: var(--big); 142 | font-weight: bold; 143 | margin: 0 20rpx; 144 | } 145 | 146 | .art-info { 147 | display: flex; 148 | align-items: center; 149 | justify-content: space-between; 150 | padding: 10rpx 20rpx 0; 151 | } 152 | 153 | .art-min { 154 | font-size: var(--mini); 155 | } 156 | 157 | .art-user { 158 | display: flex; 159 | align-items: center; 160 | } 161 | 162 | .art-user image { 163 | width: 40rpx; 164 | height: 40rpx; 165 | overflow: hidden; 166 | margin-right: 10rpx; 167 | } 168 | 169 | .art-user text { 170 | font-size: var(--mini); 171 | } 172 | 173 | .art-con { 174 | flex: 1; 175 | display: flex; 176 | flex-direction: column; 177 | justify-content: space-between; 178 | } 179 | 180 | .art-img { 181 | max-width: 230rpx; 182 | max-height: 180rpx; 183 | margin: 0 20rpx; 184 | } 185 | 186 | 187 | .footer { 188 | position: fixed; 189 | bottom: 0; 190 | left: 0; 191 | right: 0; 192 | height: 96rpx; 193 | z-index: 980; 194 | display: flex; 195 | align-items: center; 196 | justify-content: space-between; 197 | padding: 0 30rpx; 198 | background-color: rgba(255, 255, 255, .97); 199 | } 200 | 201 | 202 | .footer-dos { 203 | width: 250rpx; 204 | display: flex; 205 | } 206 | 207 | .footer-item { 208 | display: flex; 209 | flex-direction: column; 210 | align-items: center; 211 | justify-content: center; 212 | background-color: transparent; 213 | white-space: nowrap; 214 | padding: 10rpx; 215 | margin-right: 30rpx; 216 | } 217 | 218 | .footer-item.act { 219 | color: #ff586d; 220 | } 221 | 222 | .footer-item image { 223 | width: 40rpx; 224 | height: 40rpx; 225 | } 226 | 227 | .footer-item text { 228 | height: 36rpx; 229 | font-size: var(--bigers); 230 | } 231 | 232 | .footer-item view { 233 | color: #999; 234 | font-size: var(--minie); 235 | font-weight: lighter; 236 | margin-top: 10rpx; 237 | } 238 | 239 | .footer-get { 240 | color: #fff; 241 | height: 60rpx; 242 | line-height: 60rpx; 243 | padding: 0 30rpx; 244 | background-color: rgba(255, 88, 109, .8); 245 | border-radius: 60rpx; 246 | } -------------------------------------------------------------------------------- /pages/recom/recom.wxml: -------------------------------------------------------------------------------- 1 | 2 | 值得买 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 9.9超值 11 | 定价直降 12 | 13 | 14 | 15 | 9.9超值 16 | 定价直降 17 | 18 | 19 | 20 | 9.9超值 21 | 定价直降 22 | 23 | 24 | 25 | 9.9超值 26 | 定价直降 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 秋季新款水饮冲调爆品热卖 35 | 36 | 37 | 38 | 好物鉴赏 39 | 40 | 41 | 100 阅读 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 秋季新款水饮冲调爆品热卖 53 | 54 | 55 | 56 | 好物鉴赏 57 | 58 | 59 | 100 阅读 60 | 61 | 62 | 63 | 64 | 65 | 66 | 秋季新款水饮冲调爆品热卖 67 | 68 | 69 | 70 | 好物鉴赏 71 | 72 | 73 | 100 阅读 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 秋季新款水饮冲调爆品热卖 85 | 86 | 87 | 88 | 好物鉴赏 89 | 90 | 91 | 100 阅读 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 秋季新款水饮冲调爆品热卖 103 | 104 | 105 | 106 | 好物鉴赏 107 | 108 | 109 | 100 阅读 110 | 111 | 112 | 113 | 114 | 115 | 116 | 秋季新款水饮冲调爆品热卖 117 | 118 | 119 | 120 | 好物鉴赏 121 | 122 | 123 | 100 阅读 124 | 125 | 126 | 127 | 128 | 129 | 130 | -------------------------------------------------------------------------------- /pages/mem/mem.wxml: -------------------------------------------------------------------------------- 1 | 2 | Hi~,木子菇凉 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 19 | 20 | 每日签到 21 | 22 | 23 | 24 | 25 | 26 | 27 | 全部订单 28 | 29 | 30 | 31 | 32 | 33 | 待付款 34 | 35 | 36 | 37 | 待发货 38 | 39 | 40 | 41 | 待收货 42 | 43 | 44 | 45 | 已完成 46 | 47 | 48 | 49 | 售后 50 | 51 | 52 | 53 | 54 | 55 | 56 | 4 57 | 卡券 58 | 59 | 60 | 0 61 | 积分 62 | 63 | 64 | 0.00 65 | 余额 66 | 67 | 68 | 69 | 70 | 71 | 72 | 我的资产 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 值得买 90 | 91 | 92 | 93 | 我的收藏 94 | 95 | 96 | 97 | 商务合作 98 | 99 | 100 | 101 | 消息 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | / 110 | 111 | / 112 | 113 | / 114 | 115 | 116 | RECOMMENDED FRO YOU 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | {{item.title}} 126 | {{item.buyNum}} 人付款 127 | 128 | 129 | ¥ 130 | {{item.price}} 131 | 132 | ¥{{item.market}} 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | -------------------------------------------------------------------------------- /pages/mem/mem.wxss: -------------------------------------------------------------------------------- 1 | .head { 2 | position: fixed; 3 | top: 0; 4 | left: 0; 5 | width: 100%; 6 | display: flex; 7 | align-items: center; 8 | padding-left: 30rpx; 9 | background-color: rgba(255, 255, 255, .97); 10 | z-index: 99999; 11 | } 12 | 13 | .user { 14 | position: relative; 15 | display: flex; 16 | align-items: center; 17 | justify-content: space-between; 18 | padding: 60rpx 20rpx 50rpx; 19 | background-position: center bottom; 20 | background-size: cover; 21 | background-repeat: no-repeat; 22 | background: linear-gradient(to bottom, rgba(255, 134, 124, 1), rgba(255, 134, 124, 1) 50%, rgba(255, 108, 130, 1)) 23 | } 24 | 25 | .user-box { 26 | display: flex; 27 | align-items: center; 28 | } 29 | 30 | .user-avatar { 31 | width: 120rpx; 32 | height: 120rpx; 33 | overflow: hidden; 34 | margin-right: 30rpx; 35 | } 36 | 37 | .user-info { 38 | flex: 1; 39 | display: flex; 40 | flex-direction: column; 41 | height: 120rpx; 42 | } 43 | 44 | .user-name { 45 | color: #fafafa; 46 | font-size: var(--biger); 47 | margin-bottom: 15rpx; 48 | } 49 | 50 | .user-level { 51 | display: flex; 52 | width: 190rpx; 53 | height: 42rpx; 54 | align-items: center; 55 | background-color: rgba(255, 237, 137, .8); 56 | } 57 | 58 | .user-level-dot { 59 | width: 42rpx; 60 | height: 42rpx; 61 | line-height: 42rpx; 62 | text-align: center; 63 | margin-right: 20rpx; 64 | background-color: rgba(255, 207, 37, .6); 65 | } 66 | 67 | .user-level-name { 68 | font-size: var(--mini); 69 | display: inline-block; 70 | opacity: .8; 71 | text-shadow: 1rpx 2rpx 3rpx rgba(10, 70, 120, .1); 72 | } 73 | 74 | .user-sign { 75 | display: flex; 76 | align-items: center; 77 | justify-content: center; 78 | height: 46rpx; 79 | color: #aaa; 80 | padding: 0 20rpx; 81 | background-color: rgba(239, 228, 208, .97); 82 | } 83 | 84 | .con { 85 | background-position: center bottom; 86 | background-size: cover; 87 | background-repeat: no-repeat; 88 | background-image: linear-gradient(#f8f9fb, #f5f6f7); 89 | padding-top: 20rpx; 90 | } 91 | 92 | .box { 93 | display: flex; 94 | flex-direction: column; 95 | justify-content: space-between; 96 | margin: 0 20rpx 20rpx; 97 | background-color: #fff; 98 | } 99 | 100 | .box-all { 101 | display: flex; 102 | align-items: center; 103 | justify-content: space-between; 104 | padding: 30rpx 35rpx; 105 | font-size: var(--big); 106 | font-weight: bold; 107 | border-bottom: 1rpx solid #f8f9fb; 108 | } 109 | 110 | .box-list { 111 | display: flex; 112 | flex-wrap: wrap; 113 | padding: 30rpx 0; 114 | } 115 | 116 | .box-item { 117 | flex: 1; 118 | display: flex; 119 | flex-direction: column; 120 | align-items: center; 121 | justify-content: center; 122 | } 123 | 124 | .box-warp { 125 | flex: initial; 126 | width: 25%; 127 | margin: 20rpx 0; 128 | } 129 | 130 | .box-item image { 131 | width: 56rpx; 132 | height: 56rpx; 133 | margin-bottom: 15rpx; 134 | } 135 | 136 | .box-warp image { 137 | width: 68rpx; 138 | height: 68rpx; 139 | } 140 | 141 | .money { 142 | display: flex; 143 | justify-content: space-between; 144 | padding: 20rpx 10rpx 25rpx 0; 145 | margin: 0 20rpx 20rpx; 146 | background-color: #fff; 147 | } 148 | 149 | .money-item { 150 | flex: 1; 151 | display: flex; 152 | align-items: center; 153 | justify-content: center; 154 | flex-direction: column; 155 | } 156 | 157 | .money-nums { 158 | height: 70rpx; 159 | line-height: 70rpx; 160 | color: #ff586d; 161 | font-size: var(--bigers); 162 | font-family: din; 163 | } 164 | 165 | .money-line { 166 | position: relative; 167 | flex-shrink: 0; 168 | width: 1rpx; 169 | background-color: #f2f2f2 170 | } 171 | 172 | .money-line image { 173 | position: absolute; 174 | left: 0; 175 | top: 50%; 176 | max-width: 12rpx; 177 | width: 12rpx; 178 | height: 17rpx; 179 | transform: translate(0, -50%); 180 | z-index: 10; 181 | } 182 | 183 | .adver { 184 | min-height: 180rpx; 185 | height: 180rpx; 186 | overflow: hidden; 187 | margin: 0 20rpx 20rpx; 188 | } 189 | 190 | .grid { 191 | display: flex; 192 | flex-direction: column; 193 | background-color: #fff; 194 | margin: 0 20rpx 20rpx; 195 | } 196 | 197 | .tit { 198 | display: flex; 199 | flex-direction: column; 200 | align-items: center; 201 | justify-content: center; 202 | margin: 50rpx 0 30rpx; 203 | } 204 | 205 | .tit-name { 206 | letter-spacing: 10rpx; 207 | font-weight: bold; 208 | } 209 | 210 | .tit-line { 211 | font-weight: lighter; 212 | margin: 0 5rpx; 213 | } 214 | 215 | .tit-tip { 216 | margin-top: 10rpx; 217 | font-size: var(--minier); 218 | } 219 | 220 | 221 | .hot { 222 | display: flex; 223 | flex-wrap: wrap; 224 | justify-content: space-between; 225 | margin: 0 20rpx; 226 | } 227 | 228 | .hot-box { 229 | width: 48.5%; 230 | padding-bottom: 20rpx; 231 | margin-bottom: 20rpx; 232 | overflow: hidden; 233 | background-color: rgba(255, 255, 255, .98); 234 | } 235 | 236 | .hot-box-img { 237 | height: 350rpx; 238 | overflow: hidden; 239 | } 240 | 241 | .hot-box-img image { 242 | max-height: 100%; 243 | } 244 | 245 | .hot-pd { 246 | padding: 0 20rpx; 247 | } 248 | 249 | 250 | .kill-good-name { 251 | font-weight: bold; 252 | white-space: nowrap; 253 | text-overflow: ellipsis; 254 | overflow: hidden; 255 | margin-top: 10rpx; 256 | } 257 | 258 | .kill-good-soal { 259 | font-size: var(--minier); 260 | } 261 | 262 | .kill-good-price { 263 | display: flex; 264 | margin-top: 13rpx; 265 | } 266 | 267 | .kill-good-now { 268 | color: #f78c2d; 269 | } 270 | 271 | .kill-good-symbol { 272 | font-weight: bold; 273 | font-size: var(--minier); 274 | } 275 | 276 | .kill-good-money { 277 | font-size: var(--biger); 278 | font-family: 'din'; 279 | font-weight: bold; 280 | } 281 | 282 | .kill-good-old { 283 | margin: 13rpx 0 0 5rpx; 284 | font-family: 'din'; 285 | font-size: var(--mini); 286 | text-decoration: line-through; 287 | } -------------------------------------------------------------------------------- /utils/http.js: -------------------------------------------------------------------------------- 1 | class Http { 2 | 3 | baseUrl = 'https://www.iwecore.cn/' 4 | 5 | constructor(arg) {} 6 | 7 | post = (url, data, sign, header = {}) => { 8 | if (wx.getStorageSync('token') && sign) { 9 | header.token = wx.getStorageSync('token') 10 | } 11 | return new Promise((resolve, reject) => { 12 | wx.request({ 13 | url: this.baseUrl + url, 14 | data: data, 15 | method: 'POST', 16 | header: { 17 | ...this._header, 18 | ...header 19 | }, 20 | success: res => resolve(res), 21 | fail: reject 22 | }) 23 | }) 24 | } 25 | 26 | get = (url, data, sign, header = {}) => { 27 | if (wx.getStorageSync('token') && sign) { 28 | header.token = wx.getStorageSync('token') 29 | } 30 | return new Promise((resolve, reject) => { 31 | wx.request({ 32 | url: this.baseUrl + url, 33 | data: data, 34 | method: 'GET', 35 | header: { 36 | ...this._header, 37 | ...header 38 | }, 39 | success: res => resolve(res), 40 | fail: reject 41 | }) 42 | }) 43 | } 44 | 45 | getSystem = (app) => { 46 | wx.getSystemInfo({ 47 | success: e => { 48 | app.local.winHeight = e.windowHeight 49 | app.local.winWidth = e.windowWidth 50 | app.local.StatusBar = e.statusBarHeight 51 | let custom = wx.getMenuButtonBoundingClientRect() 52 | app.local.CustomBar = custom.bottom + custom.top - e.statusBarHeight 53 | } 54 | }) 55 | } 56 | 57 | saveUserInfo = (info) => { 58 | if(!info) { 59 | return 60 | } 61 | this.post('saveUserInfo', { 62 | avatar_url: info.avatarUrl, 63 | nick_name: info.nickName, 64 | city: info.city, 65 | sex: info.gender, 66 | province: info.province 67 | }, true).then(res => { 68 | //console.log(res) 69 | }) 70 | } 71 | 72 | //签名 73 | getsign = (arr) => { 74 | let arrs = [] 75 | for(let item in arr) { 76 | arrs.push(item + '=' + arr[item] + '&') 77 | } 78 | arrs = arrs.sort() 79 | let signStr = '' 80 | for(let i=0; i { 91 | return this.rstr2hex(this.rstr_md5(this.str2rstr_utf8(a))) 92 | } 93 | 94 | hex_hmac_md5 = (a, b) => { 95 | return this.rstr2hex(this.rstr_hmac_md5(this.str2rstr_utf8(a), this.str2rstr_utf8(b))) 96 | } 97 | 98 | md5_vm_test = () => { 99 | return this.hex_md5("abc").toLowerCase() == "900150983cd24fb0d6963f7d28e17f72" 100 | } 101 | 102 | rstr_md5 = (a) => { 103 | return this.binl2rstr(this.binl_md5(this.rstr2binl(a), a.length * 8)) 104 | } 105 | 106 | rstr_hmac_md5 = (c, f) => { 107 | var e = this.rstr2binl(c); 108 | if (e.length > 16) { 109 | e = binl_md5(e, c.length * 8) 110 | } 111 | var a = Array(16), 112 | d = Array(16); 113 | for (var b = 0; b < 16; b++) { 114 | a[b] = e[b] ^ 909522486; 115 | d[b] = e[b] ^ 1549556828 116 | } 117 | var g = this.binl_md5(a.concat(this.rstr2binl(f)), 512 + f.length * 8); 118 | return this.binl2rstr(this.binl_md5(d.concat(g), 512 + 128)) 119 | } 120 | 121 | rstr2hex = (c) => { 122 | try { 123 | this.hexcase 124 | } catch (g) { 125 | this.hexcase = 0 126 | } 127 | var f = this.hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; 128 | var b = ""; 129 | var a; 130 | for (var d = 0; d < c.length; d++) { 131 | a = c.charCodeAt(d); 132 | b += f.charAt((a >>> 4) & 15) + f.charAt(a & 15) 133 | } 134 | return b 135 | } 136 | 137 | str2rstr_utf8 = (c) => { 138 | var b = ""; 139 | var d = -1; 140 | var a, e; 141 | while (++d < c.length) { 142 | a = c.charCodeAt(d); 143 | e = d + 1 < c.length ? c.charCodeAt(d + 1) : 0; 144 | if (55296 <= a && a <= 56319 && 56320 <= e && e <= 57343) { 145 | a = 65536 + ((a & 1023) << 10) + (e & 1023); 146 | d++ 147 | } 148 | if (a <= 127) { 149 | b += String.fromCharCode(a) 150 | } else { 151 | if (a <= 2047) { 152 | b += String.fromCharCode(192 | ((a >>> 6) & 31), 128 | (a & 63)) 153 | } else { 154 | if (a <= 65535) { 155 | b += String.fromCharCode(224 | ((a >>> 12) & 15), 128 | ((a >>> 6) & 63), 128 | (a & 63)) 156 | } else { 157 | if (a <= 2097151) { 158 | b += String.fromCharCode(240 | ((a >>> 18) & 7), 128 | ((a >>> 12) & 63), 128 | ((a >>> 6) & 63), 128 | (a & 63)) 159 | } 160 | } 161 | } 162 | } 163 | } 164 | return b 165 | } 166 | 167 | rstr2binl = (b) => { 168 | var a = Array(b.length >> 2); 169 | for (var c = 0; c < a.length; c++) { 170 | a[c] = 0 171 | } 172 | for (var c = 0; c < b.length * 8; c += 8) { 173 | a[c >> 5] |= (b.charCodeAt(c / 8) & 255) << (c % 32) 174 | } 175 | return a 176 | } 177 | 178 | binl2rstr = (b) => { 179 | var a = ""; 180 | for (var c = 0; c < b.length * 32; c += 8) { 181 | a += String.fromCharCode((b[c >> 5] >>> (c % 32)) & 255) 182 | } 183 | return a 184 | } 185 | 186 | binl_md5 = (p, k) => { 187 | p[k >> 5] |= 128 << ((k) % 32); 188 | p[(((k + 64) >>> 9) << 4) + 14] = k; 189 | var o = 1732584193; 190 | var n = -271733879; 191 | var m = -1732584194; 192 | var l = 271733878; 193 | for (var g = 0; g < p.length; g += 16) { 194 | var j = o; 195 | var h = n; 196 | var f = m; 197 | var e = l; 198 | o = this.md5_ff(o, n, m, l, p[g + 0], 7, -680876936); 199 | l = this.md5_ff(l, o, n, m, p[g + 1], 12, -389564586); 200 | m = this.md5_ff(m, l, o, n, p[g + 2], 17, 606105819); 201 | n = this.md5_ff(n, m, l, o, p[g + 3], 22, -1044525330); 202 | o = this.md5_ff(o, n, m, l, p[g + 4], 7, -176418897); 203 | l = this.md5_ff(l, o, n, m, p[g + 5], 12, 1200080426); 204 | m = this.md5_ff(m, l, o, n, p[g + 6], 17, -1473231341); 205 | n = this.md5_ff(n, m, l, o, p[g + 7], 22, -45705983); 206 | o = this.md5_ff(o, n, m, l, p[g + 8], 7, 1770035416); 207 | l = this.md5_ff(l, o, n, m, p[g + 9], 12, -1958414417); 208 | m = this.md5_ff(m, l, o, n, p[g + 10], 17, -42063); 209 | n = this.md5_ff(n, m, l, o, p[g + 11], 22, -1990404162); 210 | o = this.md5_ff(o, n, m, l, p[g + 12], 7, 1804603682); 211 | l = this.md5_ff(l, o, n, m, p[g + 13], 12, -40341101); 212 | m = this.md5_ff(m, l, o, n, p[g + 14], 17, -1502002290); 213 | n = this.md5_ff(n, m, l, o, p[g + 15], 22, 1236535329); 214 | o = this.md5_gg(o, n, m, l, p[g + 1], 5, -165796510); 215 | l = this.md5_gg(l, o, n, m, p[g + 6], 9, -1069501632); 216 | m = this.md5_gg(m, l, o, n, p[g + 11], 14, 643717713); 217 | n = this.md5_gg(n, m, l, o, p[g + 0], 20, -373897302); 218 | o = this.md5_gg(o, n, m, l, p[g + 5], 5, -701558691); 219 | l = this.md5_gg(l, o, n, m, p[g + 10], 9, 38016083); 220 | m = this.md5_gg(m, l, o, n, p[g + 15], 14, -660478335); 221 | n = this.md5_gg(n, m, l, o, p[g + 4], 20, -405537848); 222 | o = this.md5_gg(o, n, m, l, p[g + 9], 5, 568446438); 223 | l = this.md5_gg(l, o, n, m, p[g + 14], 9, -1019803690); 224 | m = this.md5_gg(m, l, o, n, p[g + 3], 14, -187363961); 225 | n = this.md5_gg(n, m, l, o, p[g + 8], 20, 1163531501); 226 | o = this.md5_gg(o, n, m, l, p[g + 13], 5, -1444681467); 227 | l = this.md5_gg(l, o, n, m, p[g + 2], 9, -51403784); 228 | m = this.md5_gg(m, l, o, n, p[g + 7], 14, 1735328473); 229 | n = this.md5_gg(n, m, l, o, p[g + 12], 20, -1926607734); 230 | o = this.md5_hh(o, n, m, l, p[g + 5], 4, -378558); 231 | l = this.md5_hh(l, o, n, m, p[g + 8], 11, -2022574463); 232 | m = this.md5_hh(m, l, o, n, p[g + 11], 16, 1839030562); 233 | n = this.md5_hh(n, m, l, o, p[g + 14], 23, -35309556); 234 | o = this.md5_hh(o, n, m, l, p[g + 1], 4, -1530992060); 235 | l = this.md5_hh(l, o, n, m, p[g + 4], 11, 1272893353); 236 | m = this.md5_hh(m, l, o, n, p[g + 7], 16, -155497632); 237 | n = this.md5_hh(n, m, l, o, p[g + 10], 23, -1094730640); 238 | o = this.md5_hh(o, n, m, l, p[g + 13], 4, 681279174); 239 | l = this.md5_hh(l, o, n, m, p[g + 0], 11, -358537222); 240 | m = this.md5_hh(m, l, o, n, p[g + 3], 16, -722521979); 241 | n = this.md5_hh(n, m, l, o, p[g + 6], 23, 76029189); 242 | o = this.md5_hh(o, n, m, l, p[g + 9], 4, -640364487); 243 | l = this.md5_hh(l, o, n, m, p[g + 12], 11, -421815835); 244 | m = this.md5_hh(m, l, o, n, p[g + 15], 16, 530742520); 245 | n = this.md5_hh(n, m, l, o, p[g + 2], 23, -995338651); 246 | o = this.md5_ii(o, n, m, l, p[g + 0], 6, -198630844); 247 | l = this.md5_ii(l, o, n, m, p[g + 7], 10, 1126891415); 248 | m = this.md5_ii(m, l, o, n, p[g + 14], 15, -1416354905); 249 | n = this.md5_ii(n, m, l, o, p[g + 5], 21, -57434055); 250 | o = this.md5_ii(o, n, m, l, p[g + 12], 6, 1700485571); 251 | l = this.md5_ii(l, o, n, m, p[g + 3], 10, -1894986606); 252 | m = this.md5_ii(m, l, o, n, p[g + 10], 15, -1051523); 253 | n = this.md5_ii(n, m, l, o, p[g + 1], 21, -2054922799); 254 | o = this.md5_ii(o, n, m, l, p[g + 8], 6, 1873313359); 255 | l = this.md5_ii(l, o, n, m, p[g + 15], 10, -30611744); 256 | m = this.md5_ii(m, l, o, n, p[g + 6], 15, -1560198380); 257 | n = this.md5_ii(n, m, l, o, p[g + 13], 21, 1309151649); 258 | o = this.md5_ii(o, n, m, l, p[g + 4], 6, -145523070); 259 | l = this.md5_ii(l, o, n, m, p[g + 11], 10, -1120210379); 260 | m = this.md5_ii(m, l, o, n, p[g + 2], 15, 718787259); 261 | n = this.md5_ii(n, m, l, o, p[g + 9], 21, -343485551); 262 | o = this.safe_add(o, j); 263 | n = this.safe_add(n, h); 264 | m = this.safe_add(m, f); 265 | l = this.safe_add(l, e) 266 | } 267 | return Array(o, n, m, l) 268 | } 269 | 270 | md5_cmn = (h, e, d, c, g, f) => { 271 | return this.safe_add(this.bit_rol(this.safe_add(this.safe_add(e, h), this.safe_add(c, f)), g), d) 272 | } 273 | 274 | md5_ff = (g, f, k, j, e, i, h) => { 275 | return this.md5_cmn((f & k) | ((~f) & j), g, f, e, i, h) 276 | } 277 | 278 | md5_gg = (g, f, k, j, e, i, h) => { 279 | return this.md5_cmn((f & j) | (k & (~j)), g, f, e, i, h) 280 | } 281 | 282 | md5_hh = (g, f, k, j, e, i, h) => { 283 | return this.md5_cmn(f ^ k ^ j, g, f, e, i, h) 284 | } 285 | 286 | md5_ii = (g, f, k, j, e, i, h) => { 287 | return this.md5_cmn(k ^ (f | (~j)), g, f, e, i, h) 288 | } 289 | 290 | safe_add = (a, d) => { 291 | var c = (a & 65535) + (d & 65535); 292 | var b = (a >> 16) + (d >> 16) + (c >> 16); 293 | return (b << 16) | (c & 65535) 294 | } 295 | 296 | bit_rol = (a, b) => { 297 | return (a << b) | (a >>> (32 - b)) 298 | } 299 | 300 | } 301 | 302 | module.exports = new Http() -------------------------------------------------------------------------------- /static/main.wxss: -------------------------------------------------------------------------------- 1 | page { 2 | background-color: #f7f8fb; 3 | font-size: 28rpx; 4 | color: #373737; 5 | font-family: -apple-system-font, "Helvetica Neue", Helvetica, sans-serif; 6 | /* Color 可以自定义相关配色 */ 7 | --red: #ff586d; 8 | --orange: #f37b1d; 9 | --yellow: #fbbd08; 10 | --olive: #8dc63f; 11 | --green: #39b54a; 12 | --cyan: #35c3ab; 13 | --blue: #0081ff; 14 | --purple: #6739b6; 15 | --mauve: #9c26b0; 16 | --pink: #e03997; 17 | --brown: #a5673f; 18 | --grey: #8799a3; 19 | --gray: #aaa; 20 | --black: #333; 21 | --white: #fff; 22 | --mini: 24rpx; 23 | --minier: 20rpx; 24 | --big: 32rpx; 25 | --biger: 36rpx; 26 | --bigers: 42rpx; 27 | --bigera: 60rpx; 28 | --bigerb: 80rpx; 29 | --gradualRed: linear-gradient(45deg, #f43f3b, #ec008c); 30 | --gradualOrange: linear-gradient(45deg, #ff9700, #ed1c24); 31 | --gradualGreen: linear-gradient(45deg, #83c97d, #2dc2a9); 32 | --gradualPurple: linear-gradient(45deg, #9000ff, #5e00ff); 33 | --gradualPink: linear-gradient(45deg, #ec008c, #6739b6); 34 | --gradualBlue: linear-gradient(45deg, #0081ff, #1cbbb4); 35 | } 36 | 37 | view, scroll-view, swiper, button, input, text, textarea, label, navigator, 38 | image { 39 | box-sizing: border-box; 40 | } 41 | 42 | ::-webkit-input-placeholder { 43 | color: var(--gray); 44 | font-family: -apple-system-font, "Helvetica Neue", Helvetica, sans-serif; 45 | } 46 | 47 | ::-webkit-scrollbar { 48 | width: 0; 49 | height: 0; 50 | opacity: 0; 51 | color: transparent; 52 | } 53 | 54 | .round { 55 | border-radius: 5000rpx; 56 | } 57 | 58 | .radius { 59 | border-radius: 6rpx; 60 | } 61 | 62 | .radius-top-left { 63 | border-top-left-radius: 30rpx; 64 | } 65 | 66 | .shadow { 67 | box-shadow: 0 2rpx 6rpx rgba(100, 100, 100, 0.07); 68 | } 69 | 70 | .shadow-all { 71 | box-shadow: 3rpx 6rpx 12rpx rgba(100, 100, 100, 0.07); 72 | } 73 | 74 | .shadow-warp { 75 | position: relative; 76 | box-shadow: 0 0 6rpx rgba(0, 0, 0, 0.06); 77 | } 78 | 79 | .shadow-warp:before, .shadow-warp:after { 80 | position: absolute; 81 | content: ""; 82 | top: 20rpx; 83 | bottom: 30rpx; 84 | left: 20rpx; 85 | width: 50%; 86 | box-shadow: 0 20rpx 10rpx rgba(0, 0, 0, 0.1); 87 | transform: rotate(-3deg); 88 | z-index: -1; 89 | } 90 | 91 | .shadow-warp:after { 92 | right: 20rpx; 93 | left: auto; 94 | transform: rotate(3deg); 95 | } 96 | 97 | /* 98 | css 滤镜 控制黑白底色gif的 99 | */ 100 | 101 | .gif-black { 102 | mix-blend-mode: screen; 103 | } 104 | 105 | .gif-white { 106 | mix-blend-mode: multiply; 107 | } 108 | 109 | /* 110 | 图片 111 | */ 112 | 113 | image { 114 | max-width: 100%; 115 | display: inline-block; 116 | position: relative; 117 | z-index: 0; 118 | } 119 | 120 | image.loading::before { 121 | content: ""; 122 | background-color: #f5f5f5; 123 | display: block; 124 | position: absolute; 125 | width: 100%; 126 | height: 100%; 127 | z-index: -2; 128 | } 129 | 130 | image.loading::after { 131 | content: "\e7f1"; 132 | font-family: "cuIcon"; 133 | position: absolute; 134 | top: 0; 135 | left: 0; 136 | width: 32rpx; 137 | height: 32rpx; 138 | line-height: 32rpx; 139 | right: 0; 140 | bottom: 0; 141 | z-index: -1; 142 | font-size: 32rpx; 143 | margin: auto; 144 | color: #ccc; 145 | -webkit-animation: icon-spin 2s infinite linear; 146 | animation: icon-spin 2s infinite linear; 147 | display: block; 148 | } 149 | 150 | /* 151 | 头部 152 | */ 153 | 154 | .head { 155 | display: block; 156 | position: relative; 157 | } 158 | 159 | .bar { 160 | position: fixed; 161 | top: 0; 162 | width: 100%; 163 | display: flex; 164 | align-items: center; 165 | justify-content: space-between; 166 | z-index: 9999; 167 | } 168 | 169 | .foot { 170 | position: fixed; 171 | bottom: 0; 172 | left: 0; 173 | right: 0; 174 | padding: 0; 175 | min-height: 100rpx; 176 | display: flex; 177 | justify-content: space-around; 178 | background-color: #26c1ad; 179 | height: calc(100rpx + env(safe-area-inset-bottom) / 2); 180 | padding-bottom: calc(env(safe-area-inset-bottom) / 2); 181 | z-index: 99999; 182 | } 183 | 184 | .foot-height { 185 | min-height: 100rpx; 186 | height: calc(100rpx + env(safe-area-inset-bottom) / 2); 187 | } 188 | 189 | .bar-back { 190 | display: flex; 191 | align-items: center; 192 | text-align: left; 193 | height: 100%; 194 | max-width: 100%; 195 | min-width: 90rpx; 196 | } 197 | 198 | .bar-back text { 199 | margin: 2rpx auto 0 20rpx; 200 | } 201 | 202 | .bar-back text::before { 203 | font-size: var(--big); 204 | } 205 | 206 | .bar-back view { 207 | vertical-align: middle 208 | } 209 | 210 | .bar-title { 211 | position: absolute; 212 | top: 0; 213 | left: 0; 214 | bottom: 0; 215 | right: 0; 216 | text-align: center; 217 | width: calc(100% - 440rpx); 218 | height: 60rpx; 219 | margin: auto; 220 | font-size: var(--big); 221 | line-height: 62rpx; 222 | cursor: none; 223 | pointer-events: none; 224 | text-overflow: ellipsis; 225 | white-space: nowrap; 226 | overflow: hidden; 227 | } 228 | 229 | .bar-title image { 230 | height: 60rpx; 231 | width: 240rpx; 232 | } 233 | 234 | /* 235 | 轮播 236 | */ 237 | 238 | swiper.square-dot .wx-swiper-dot { 239 | background-color: #fff; 240 | opacity: 0.4; 241 | width: 10rpx; 242 | height: 10rpx; 243 | border-radius: 20rpx; 244 | transition: all 0.3s ease-in-out 0s; 245 | } 246 | 247 | swiper.square-dot .wx-swiper-dot.wx-swiper-dot-active { 248 | opacity: 1; 249 | width: 30rpx; 250 | } 251 | 252 | swiper.round-dot .wx-swiper-dot { 253 | width: 10rpx; 254 | height: 10rpx; 255 | top: -4rpx; 256 | transition: all 0.3s ease-in-out 0s; 257 | position: relative; 258 | } 259 | 260 | swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active::after { 261 | content: ""; 262 | position: absolute; 263 | width: 10rpx; 264 | height: 10rpx; 265 | top: 0rpx; 266 | left: 0rpx; 267 | right: 0; 268 | bottom: 0; 269 | margin: auto; 270 | background-color: #fff; 271 | border-radius: 20rpx; 272 | } 273 | 274 | swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active { 275 | width: 18rpx; 276 | height: 18rpx; 277 | top: 0rpx; 278 | } 279 | 280 | .screen-swiper { 281 | min-height: 375rpx; 282 | } 283 | 284 | .screen-swiper image, .screen-swiper video, .swiper-item image, 285 | .swiper-item video { 286 | width: 100%; 287 | display: block; 288 | height: 100%; 289 | margin: 0; 290 | pointer-events: none; 291 | } 292 | 293 | .card-swiper { 294 | height: 420rpx; 295 | } 296 | 297 | .card-swiper swiper-item { 298 | width: 610rpx !important; 299 | left: 70rpx; 300 | box-sizing: border-box; 301 | padding: 40rpx 0rpx 70rpx; 302 | overflow: initial; 303 | } 304 | 305 | .card-swiper swiper-item .swiper-item { 306 | width: 100%; 307 | display: block; 308 | height: 100%; 309 | border-radius: 10rpx; 310 | transform: scale(0.9); 311 | transition: all 0.2s ease-in 0s; 312 | overflow: hidden; 313 | } 314 | 315 | .card-swiper swiper-item.cur .swiper-item { 316 | transform: none; 317 | transition: all 0.2s ease-in 0s; 318 | } 319 | 320 | .tower-swiper { 321 | height: 420rpx; 322 | position: relative; 323 | max-width: 750rpx; 324 | overflow: hidden; 325 | } 326 | 327 | .tower-swiper .tower-item { 328 | position: absolute; 329 | width: 300rpx; 330 | height: 380rpx; 331 | top: 0; 332 | bottom: 0; 333 | left: 50%; 334 | margin: auto; 335 | transition: all 0.2s ease-in 0s; 336 | opacity: 1; 337 | } 338 | 339 | .tower-swiper .tower-item.none { 340 | opacity: 0; 341 | } 342 | 343 | .tower-swiper .tower-item .swiper-item { 344 | width: 100%; 345 | height: 100%; 346 | border-radius: 6rpx; 347 | overflow: hidden; 348 | } 349 | 350 | /* 351 | 背景 352 | */ 353 | 354 | .bg-red { 355 | background-color: var(--red); 356 | color: #fff; 357 | } 358 | 359 | .bg-orange { 360 | background-color: var(--orange); 361 | color: #fff; 362 | } 363 | 364 | .bg-yellow { 365 | background-color: var(--yellow); 366 | color: var(--black); 367 | } 368 | 369 | .bg-olive { 370 | background-color: var(--olive); 371 | color: #fff; 372 | } 373 | 374 | .bg-green { 375 | background-color: var(--green); 376 | color: #fff; 377 | } 378 | 379 | .bg-cyan { 380 | background-color: var(--cyan); 381 | color: #fff; 382 | } 383 | 384 | .bg-blue { 385 | background-color: var(--blue); 386 | color: #fff; 387 | } 388 | 389 | .bg-purple { 390 | background-color: var(--purple); 391 | color: #fff; 392 | } 393 | 394 | .bg-mauve { 395 | background-color: var(--mauve); 396 | color: #fff; 397 | } 398 | 399 | .bg-pink { 400 | background-color: var(--pink); 401 | color: #fff; 402 | } 403 | 404 | .bg-brown { 405 | background-color: var(--brown); 406 | color: #fff; 407 | } 408 | 409 | .bg-grey { 410 | background-color: var(--grey); 411 | color: #fff; 412 | } 413 | 414 | .bg-gray { 415 | background-color: #f8f8f8; 416 | color: #666; 417 | } 418 | 419 | .bg-black { 420 | background-color: var(--black); 421 | color: #fff; 422 | } 423 | 424 | .bg-white { 425 | background-color: #fff; 426 | color: #666; 427 | } 428 | 429 | .bg-red.light { 430 | color: var(--red); 431 | background-color: #fadbd9; 432 | } 433 | 434 | .bg-orange.light { 435 | color: var(--orange); 436 | background-color: #fde6d2; 437 | } 438 | 439 | .bg-yellow.light { 440 | color: var(--yellow); 441 | background-color: #fef2ce; 442 | } 443 | 444 | .bg-olive.light { 445 | color: var(--olive); 446 | background-color: #e8f4d9; 447 | } 448 | 449 | .bg-green.light { 450 | color: var(--green); 451 | background-color: #d7f0db; 452 | } 453 | 454 | .bg-cyan.light { 455 | color: var(--cyan); 456 | background-color: #d2f1f0; 457 | } 458 | 459 | .bg-blue.light { 460 | color: var(--blue); 461 | background-color: #cce6ff; 462 | } 463 | 464 | .bg-purple.light { 465 | color: var(--purple); 466 | background-color: #e1d7f0; 467 | } 468 | 469 | .bg-mauve.light { 470 | color: var(--mauve); 471 | background-color: #ebd4ef; 472 | } 473 | 474 | .bg-pink.light { 475 | color: var(--pink); 476 | background-color: #f9d7ea; 477 | } 478 | 479 | .bg-brown.light { 480 | color: var(--brown); 481 | background-color: #ede1d9; 482 | } 483 | 484 | .bg-grey.light { 485 | color: var(--grey); 486 | background-color: #e7ebed; 487 | } 488 | 489 | .bg-gray.light { 490 | color: #666; 491 | background-color: #fadbd9; 492 | } 493 | 494 | .bg-gradual-red { 495 | background-image: var(--gradualRed); 496 | color: #fff; 497 | } 498 | 499 | .bg-gradual-orange { 500 | background-image: var(--gradualOrange); 501 | color: #fff; 502 | } 503 | 504 | .bg-gradual-green { 505 | background-image: var(--gradualGreen); 506 | color: #fff; 507 | } 508 | 509 | .bg-gradual-purple { 510 | background-image: var(--gradualPurple); 511 | color: #fff; 512 | } 513 | 514 | .bg-gradual-pink { 515 | background-image: var(--gradualPink); 516 | color: #fff; 517 | } 518 | 519 | .bg-gradual-blue { 520 | background-image: var(--gradualBlue); 521 | color: #fff; 522 | } 523 | 524 | .bg-img { 525 | background-size: cover; 526 | background-position: center; 527 | background-repeat: no-repeat; 528 | } 529 | 530 | .bg-mask { 531 | border-radius: inherit; 532 | width: 100%; 533 | height: 100%; 534 | display: block; 535 | background-color: rgba(0, 0, 0, 0.5); 536 | position: fixed; 537 | left: 0; 538 | right: 0; 539 | bottom: 0; 540 | top: 0; 541 | z-index: 999; 542 | } 543 | 544 | .bg-mask view, .bg-mask cover-view { 545 | z-index: 5; 546 | position: relative; 547 | } 548 | 549 | .bg-video { 550 | position: relative; 551 | } 552 | 553 | .bg-video video { 554 | display: block; 555 | height: 100%; 556 | width: 100%; 557 | -o-object-fit: cover; 558 | object-fit: cover; 559 | position: absolute; 560 | top: 0; 561 | z-index: 0; 562 | pointer-events: none; 563 | } 564 | 565 | /* 566 | 无数据 567 | */ 568 | 569 | .none { 570 | width: 100%; 571 | display: flex; 572 | flex-direction: column; 573 | align-items: center; 574 | margin-top: 300rpx; 575 | margin-bottom: 0; 576 | padding-bottom: 0; 577 | } 578 | 579 | .none image { 580 | width: 303rpx; 581 | height: 270rpx; 582 | } 583 | 584 | .none text { 585 | color: #ccc; 586 | font-size: 32rpx; 587 | margin: 45rpx auto 80rpx; 588 | } 589 | 590 | /* 591 | 加载更多 592 | */ 593 | 594 | .loading { 595 | width: 100%; 596 | padding: 30rpx 20rpx; 597 | display: flex; 598 | align-items: center; 599 | justify-content: center; 600 | } 601 | 602 | .loading view { 603 | width: 12px; 604 | height: 12px; 605 | margin: 0 20rpx; 606 | border-radius: 50%; 607 | } 608 | 609 | .loading-one { 610 | animation: load-one 1.5s infinite; 611 | background-color: #5c6bc0; 612 | } 613 | 614 | .loading-two { 615 | animation: load-two 1.5s infinite; 616 | animation-delay: 0.25s; 617 | background-color: #8bc34a; 618 | } 619 | 620 | .loading-three { 621 | animation: load-three 1.5s infinite; 622 | animation-delay: 0.5s; 623 | background-color: #ffb74d; 624 | } 625 | 626 | .loading-four { 627 | animation: load-four 1.5s infinite; 628 | animation-delay: 0.75s; 629 | background-color: #f44336; 630 | } 631 | 632 | @keyframes load-one { 633 | 75% { 634 | transform: scale(0); 635 | } 636 | } 637 | 638 | @keyframes load-two { 639 | 75% { 640 | transform: scale(0); 641 | } 642 | } 643 | 644 | @keyframes load-three { 645 | 75% { 646 | transform: scale(0); 647 | } 648 | } 649 | 650 | @keyframes load-four { 651 | 75% { 652 | transform: scale(0); 653 | } 654 | } 655 | 656 | /* 657 | 颜色 658 | */ 659 | 660 | .gray { 661 | color: var(--gray); 662 | } 663 | 664 | .grey { 665 | color: var(--grey); 666 | } 667 | 668 | .red { 669 | color: var(--red); 670 | } 671 | 672 | .orange { 673 | color: var(--orange); 674 | } 675 | 676 | .white { 677 | color: var(--white); 678 | } 679 | 680 | .blue { 681 | color: var(--blue); 682 | } 683 | 684 | .green { 685 | color: var(--green); 686 | } 687 | 688 | .bo-grey { 689 | border-color: var(--grey); 690 | } 691 | 692 | /* 693 | 字体大小 694 | */ 695 | 696 | .min { 697 | font-size: var(--mini); 698 | } 699 | 700 | .maxs { 701 | font-size: 30rpx; 702 | } 703 | 704 | .bold { 705 | font-weight: bold; 706 | } 707 | 708 | .dis { 709 | display: none; 710 | } 711 | 712 | .lt { 713 | float: left; 714 | } 715 | 716 | .rt { 717 | float: right; 718 | } 719 | -------------------------------------------------------------------------------- /app.wxss: -------------------------------------------------------------------------------- 1 | @import "static/main.wxss"; 2 | @import "static/icon.wxss"; 3 | 4 | @font-face { 5 | font-family: 'din'; 6 | src: url(data:font/truetype;charset=utf-8;base64,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AIP/9gCE//YAhf/2AIb/9gCH//YAAQAk//YADQAm//YAKv/2AC0ADAAy//YANP/2AFz/4QCI//YAk//2AJT/9gCV//YAlv/2AJf/9gDE//YAFgAm/9wAKv/cAC0ADAAy/9wANP/cADf/sAA4/+AAOf+6ADr/2AA8/7AAXP/EAIj/4ACT/9wAlP/cAJX/3ACW/9wAl//cAMT/3ADZ/2oA2v9qANz/agDd/2oAFgAR/5IAJP/OAC3/iABE//YARv/2AEf/9gBI//YASv/2AFL/9gBU//YAVv/2AIH/zgCC/84Ag//OAIT/zgCF/84Ahv/OAIf/zgCn//YAqP/2ALn/9gDF//YAAQAt/+gAAwAt/+wANv/wADz/7AAsABH/sAAk/8QAJv/sACr/7AAt/7AAMv/sADT/7ABE/7QARv+0AEf/tABI/7QASv+0AFD/ygBR/8oAUv+0AFP/ygBU/7QAVf/KAFb/tABY/8oAWf/KAFr/ygBb/8oAXP/KAF3/ygCB/8QAgv/EAIP/xACE/8QAhf/EAIb/xACH/8QAiP/sAJP/7ACU/+wAlf/sAJb/7ACX/+wAmf/sAKf/tACo/7QAuf+0AMT/7ADF/7QAAQAt/+AAKQAR/7AAJP/dACb/9gAq//YAMv/2ADT/9gBE/9gARv/YAEf/2ABI/9gASv/YAFD/7ABR/+wAUv/YAFP/7ABU/9gAVf/sAFb/2ABY/+wAW//sAFz/9gBd/+wAgf/dAIL/3QCD/90AhP/dAIX/3QCG/90Ah//dAIj/9gCT//YAlP/2AJX/9gCW//YAl//2AJn/9gCn/9gAqP/YALn/2ADE//YAxf/YACEAEf/OACT/9QAm//YAKv/2ADL/9gA0//YARP/YAEb/2ABH/9gASP/YAEr/2ABS/9gAVP/YAFb/2ACB//UAgv/1AIP/9QCE//UAhf/1AIb/9QCH//UAiP/2AJP/9gCU//YAlf/2AJb/9gCX//YAmf/2AKf/2ACo/9gAuf/YAMT/9gDF/9gADQAm//YAKv/2AC0ADAAy//YANP/2AFz/7QCI//YAk//2AJT/9gCV//YAlv/2AJf/9gDE//YAKQAR/7AAJP/YACb/9gAq//YALf/YADL/9gA0//YARP+wAEb/sABH/7AASP+wAEr/sABQ/9gAUf/YAFL/sABT/9gAVP+wAFX/2ABW/7AAWP/YAFv/2ABd/9gAgf/YAIL/2ACD/9gAhP/YAIX/2ACG/9gAh//YAIj/9gCT//YAlP/2AJX/9gCW//YAl//2AJn/9gCn/7AAqP+wALn/sADE//YAxf+wABcARP/0AEb/8QBH//YASP/xAFL/8QBa/+wAof/0AKL/9ACj//QApP/0AKX/9ACm//QAp//0AKn/8QCq//EAq//xAKz/8QCz//EAtP/xALX/8QC2//EAt//xAMX/8QAEAFn/9gBa//sAW//wAFz/9gANAA0AFAAR/84ARP/tAEb/7QBI/+0AUv/tAKf/7QCo/+0Axf/tANkAFADaABQA3AAUAN0AFAASAEb/7ABH/+wASP/sAEr/7ABS/+wAVP/sAKf/7ACo/+wAqf/sAKr/7ACr/+wArP/sALP/7AC0/+wAtf/sALb/7AC3/+wAxf/sAAsADf/EAEb/5wBI/+cAUv/sAFn/2ABa/+wAXP/pANn/xADa/8QA3P/EAN3/xAAEAFn/9gBa//sAW//sAFz/9gAWABH/iABE//YARv/eAEf/3gBI/94ASv/eAFL/3gBU/94AVv/2AKf/3gCo/94Aqf/eAKr/3gCr/94ArP/eALP/3gC0/94Atf/eALb/3gC3/94Auf/eAMX/3gAEAFb/8ABX//YAWf/2ANr/0AAHAET/+ABG//gASP/4AFL/+ACn//gAqP/4AMX/+AATABH/vABE//YARv/2AEj/9gBS//YAVv/2AKf/9gCo//YAqf/2AKr/9gCr//YArP/2ALP/9gC0//YAtf/2ALb/9gC3//YAuf/2AMX/9gARABH/ygBG//sASP/7AFL/+wCn//sAqP/7AKn/+wCq//sAq//7AKz/+wCz//sAtP/7ALX/+wC2//sAt//7ALn/+wDF//sAEABG/+wASP/sAFL/7ACn/+wAqP/sAKn/7ACq/+wAq//sAKz/7ACz/+wAtP/sALX/7AC2/+wAt//sALn/7ADF/+wAEgAR/7wARP/2AEb/9gBI//YAUv/2AKf/9gCo//YAqf/2AKr/9gCr//YArP/2ALP/9gC0//YAtf/2ALb/9gC3//YAuf/2AMX/9gALACb/9gAq//YAMv/2ADT/9gA3/8QAOf/dADr/8gA8/90AWf/vAFz/7wDE//gACwAm//YAKv/2ADL/9gA0//YAN//EADn/3QA6//IAPP/dAFn/7wBc//QAxP/4AAsAJv/2ACr/9gAy//YANP/2ADf/xAA5/90AOv/yADz/3QBZ/+8AXP/vAMT/9gAIACT/9gAt/+AAN//sADn/9gA6//YAO//2ADz/9gCH//gABwAk//YALf/gADf/7AA5//YAOv/2ADv/9gA8//YABgBE//QARv/0AEj/8QBS//EAp//0AMX/8QAKACT/sAAt/4gAVv/EAIH/sACC/7AAg/+wAIT/sACF/7AAhv+wAIf/sAAJACT/sAAt/4gAgf+wAIL/sACD/7AAhP+wAIX/sACG/7AAh/+wAAQAN/+WADn/sAA6/84APP+WAAIAEQAkACoAAAAtAC8ABwAyADMACgA1ADwADABGAEYAFABIAEkAFQBOAE8AFwBSAFIAGQBVAFcAGgBZAFwAHQCBAIYAIQCIAIgAJwCTAJcAKACoAKwALQCzALcAMgDZANoANwDcAN4AOQAAAAAAAQAAAADVpCcIAAAAAMGx6n0AAAAAwbHqfQ==) format('truetype'); 7 | font-weight: normal; 8 | font-style: normal; 9 | } --------------------------------------------------------------------------------