@@ -1,6 +1,10 @@ | |||||
{ | { | ||||
"pages": [ | "pages": [ | ||||
"pages/index/index", | "pages/index/index", | ||||
"index/index", | |||||
"index/searchbar", | |||||
"index/passCar", | |||||
"index/user", | |||||
"pages/integralmall/integraHistory/index", | "pages/integralmall/integraHistory/index", | ||||
"pages/integralmall/payIntegcouponStatus/index", | "pages/integralmall/payIntegcouponStatus/index", | ||||
"pages/integralmall/payIntegcoupondetail/index", | "pages/integralmall/payIntegcoupondetail/index", | ||||
@@ -13,8 +17,6 @@ | |||||
"pages/complete/index", | "pages/complete/index", | ||||
"pages/topicDetail/index", | "pages/topicDetail/index", | ||||
"pages/acSignIn/index", | "pages/acSignIn/index", | ||||
"pages/main/index", | |||||
"pages/index/searchbar/index", | |||||
"pages/index/merchantList/index", | "pages/index/merchantList/index", | ||||
"pages/index/searchbar/detail/index", | "pages/index/searchbar/detail/index", | ||||
"pages/bargain/bargainDatail/bargainDatail", | "pages/bargain/bargainDatail/bargainDatail", | ||||
@@ -27,7 +29,6 @@ | |||||
"pages/bannerdetail/index", | "pages/bannerdetail/index", | ||||
"pages/getuserinfo/index", | "pages/getuserinfo/index", | ||||
"pages/phoneinput/phoneinput", | "pages/phoneinput/phoneinput", | ||||
"pages/user/index", | |||||
"pages/user/myactivity/index", | "pages/user/myactivity/index", | ||||
"pages/coupon/detail/index", | "pages/coupon/detail/index", | ||||
"pages/rushToBuy/index", | "pages/rushToBuy/index", | ||||
@@ -38,7 +39,6 @@ | |||||
"pages/order/detail/index", | "pages/order/detail/index", | ||||
"pages/order/index/index", | "pages/order/index/index", | ||||
"pages/ques/ques", | "pages/ques/ques", | ||||
"pages/passCar/passCar", | |||||
"pages/getphoneInfo/index", | "pages/getphoneInfo/index", | ||||
"pages/addPark/addPark", | "pages/addPark/addPark", | ||||
"pages/orderquanma/index", | "pages/orderquanma/index", | ||||
@@ -72,33 +72,35 @@ | |||||
"tabBar": { | "tabBar": { | ||||
"color": "#abb1be", | "color": "#abb1be", | ||||
"selectedColor": "#FD782D", | "selectedColor": "#FD782D", | ||||
"custom": true, | |||||
"list": [ | "list": [ | ||||
{ | { | ||||
"pagePath": "pages/main/index", | |||||
"pagePath": "index/index", | |||||
"iconPath": "assets/images/home.png", | "iconPath": "assets/images/home.png", | ||||
"selectedIconPath": "assets/images/home-a.png", | "selectedIconPath": "assets/images/home-a.png", | ||||
"text": "首页" | "text": "首页" | ||||
}, | }, | ||||
{ | { | ||||
"pagePath": "pages/index/searchbar/index", | |||||
"pagePath": "index/searchbar", | |||||
"iconPath": "assets/images/mendian.png", | "iconPath": "assets/images/mendian.png", | ||||
"selectedIconPath": "assets/images/mendian-a.png", | "selectedIconPath": "assets/images/mendian-a.png", | ||||
"text": "门店" | "text": "门店" | ||||
}, | }, | ||||
{ | { | ||||
"pagePath": "pages/passCar/passCar", | |||||
"pagePath": "index/passCar", | |||||
"iconPath": "assets/images/park.png", | "iconPath": "assets/images/park.png", | ||||
"selectedIconPath": "assets/images/park-a.png", | "selectedIconPath": "assets/images/park-a.png", | ||||
"text": "停车" | "text": "停车" | ||||
}, | }, | ||||
{ | { | ||||
"pagePath": "pages/user/index", | |||||
"pagePath": "index/user", | |||||
"iconPath": "assets/images/user.png", | "iconPath": "assets/images/user.png", | ||||
"selectedIconPath": "assets/images/user-a.png", | "selectedIconPath": "assets/images/user-a.png", | ||||
"text": "我的" | "text": "我的" | ||||
} | } | ||||
] | ] | ||||
}, | }, | ||||
"usingComponents": {}, | |||||
"window": { | "window": { | ||||
"backgroundTextStyle": "dark", | "backgroundTextStyle": "dark", | ||||
"navigationBarBackgroundColor": "#FFFFFF", | "navigationBarBackgroundColor": "#FFFFFF", | ||||
@@ -0,0 +1,45 @@ | |||||
Component({ | |||||
data: { | |||||
selected: 0, | |||||
"color": "#abb1be", | |||||
"selectedColor": "#FD782D", | |||||
"list": [ | |||||
{ | |||||
"pagePath": "/index/index", | |||||
"iconPath": "../assets/images/home.png", | |||||
"selectedIconPath": "../assets/images/home-a.png", | |||||
"text": "首页" | |||||
}, | |||||
{ | |||||
"pagePath": "/index/searchbar", | |||||
"iconPath": "../assets/images/mendian.png", | |||||
"selectedIconPath": "../assets/images/mendian-a.png", | |||||
"text": "门店" | |||||
}, | |||||
{ | |||||
"pagePath": "/index/passCar", | |||||
"iconPath": "../assets/images/park.png", | |||||
"selectedIconPath": "../assets/images/park-a.png", | |||||
"text": "停车" | |||||
}, | |||||
{ | |||||
"pagePath": "/index/user", | |||||
"iconPath": "../assets/images/user.png", | |||||
"selectedIconPath": "../assets/images/user-a.png", | |||||
"text": "我的" | |||||
} | |||||
] | |||||
}, | |||||
attached() { | |||||
}, | |||||
methods: { | |||||
switchTab(e) { | |||||
const data = e.currentTarget.dataset | |||||
const url = data.path | |||||
wx.switchTab({url}) | |||||
this.setData({ | |||||
selected: data.index | |||||
}) | |||||
} | |||||
} | |||||
}) |
@@ -0,0 +1,3 @@ | |||||
{ | |||||
"component": true | |||||
} |
@@ -0,0 +1,8 @@ | |||||
<!--miniprogram/custom-tab-bar/index.wxml--> | |||||
<cover-view class="tab-bar"> | |||||
<cover-view class="tab-bar-border"></cover-view> | |||||
<cover-view wx:for="{{list}}" wx:key="index" class="tab-bar-item" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="switchTab"> | |||||
<cover-image src="{{selected === index ? item.selectedIconPath : item.iconPath}}"></cover-image> | |||||
<cover-view style="color: {{selected === index ? selectedColor : color}}">{{item.text}}</cover-view> | |||||
</cover-view> | |||||
</cover-view> |
@@ -0,0 +1,38 @@ | |||||
.tab-bar { | |||||
position: fixed; | |||||
bottom: 0; | |||||
left: 0; | |||||
right: 0; | |||||
height: 48px; | |||||
background: white; | |||||
display: flex; | |||||
padding-bottom: env(safe-area-inset-bottom); | |||||
} | |||||
.tab-bar-border { | |||||
background-color: rgba(0, 0, 0, 0.33); | |||||
position: absolute; | |||||
left: 0; | |||||
top: 0; | |||||
width: 100%; | |||||
height: 1px; | |||||
transform: scaleY(0.5); | |||||
} | |||||
.tab-bar-item { | |||||
flex: 1; | |||||
text-align: center; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
flex-direction: column; | |||||
} | |||||
.tab-bar-item cover-image { | |||||
width: 27px; | |||||
height: 27px; | |||||
} | |||||
.tab-bar-item cover-view { | |||||
font-size: 10px; | |||||
} |
@@ -21,6 +21,7 @@ | |||||
"etcpVersion": "release", | "etcpVersion": "release", | ||||
"etcpCallbackUrl": "https://ciformall.youlane.cn/api/carCallback/etcpPaidCallback", | "etcpCallbackUrl": "https://ciformall.youlane.cn/api/carCallback/etcpPaidCallback", | ||||
"ifHaveWebSocket": "0", | "ifHaveWebSocket": "0", | ||||
"ifStoreApp": "1", | |||||
"ifHaveCarModular": "1" | "ifHaveCarModular": "1" | ||||
}, | }, | ||||
"name": "富茂客官开发", | "name": "富茂客官开发", | ||||
@@ -0,0 +1,12 @@ | |||||
Component({ | |||||
pageLifetimes: { | |||||
show() { | |||||
if (typeof this.getTabBar === 'function' && | |||||
this.getTabBar()) { | |||||
this.getTabBar().setData({ | |||||
selected: 0 | |||||
}) | |||||
} | |||||
} | |||||
} | |||||
}) |
@@ -0,0 +1,3 @@ | |||||
{ | |||||
"usingComponents": {} | |||||
} |
@@ -0,0 +1 @@ | |||||
<view class="intro">组件</view> |
@@ -0,0 +1,4 @@ | |||||
.intro { | |||||
margin: 30px; | |||||
text-align: center; | |||||
} |
@@ -0,0 +1,768 @@ | |||||
const navigationBarHeight = (getApp().statusBarHeight + 50) + 'px' | |||||
const extConfig = wx.getExtConfigSync ? wx.getExtConfigSync() : {} | |||||
let app = getApp(); | |||||
const format = require("../../utils/util.js"); | |||||
let config = require("../../config/config.js"); | |||||
let Http = require("../../utils/HttpBasics"); | |||||
let Util = require("../../utils/util"); | |||||
const imgurl = require("../../utils/imgurl"); | |||||
Page({ | |||||
data: { | |||||
navigationBarHeight, | |||||
jianUrl: imgurl.jian.url, | |||||
jiaofeiwm: imgurl.jiaofeiwm.url, | |||||
parkUrl: imgurl.park.url, | |||||
guanliHr: imgurl.guanliHr.url, | |||||
qidaiUrl: imgurl.qidai.url, | |||||
addUrl: imgurl.add.url, | |||||
tingcheHr: imgurl.tingcheHr.url, | |||||
cheUrl: imgurl.che.url, | |||||
jiaofei: imgurl.jiaofei.url, | |||||
wentiHr: imgurl.wentiHr.url, | |||||
park: null, | |||||
carList: [], | |||||
payList: [], | |||||
addCar: null, | |||||
tcq: 2, | |||||
flag: "", | |||||
extraData: {}, | |||||
desc: '', | |||||
title: '', | |||||
indicatorDots: true, | |||||
autoplay: false, | |||||
interval: 5000, | |||||
duration: 1000, | |||||
current: 0, | |||||
stopFees: {}, | |||||
scroll: true, | |||||
ifHaveCarModular: "", | |||||
canIUse: wx.canIUse("navigator"), | |||||
showTicketModal: false, | |||||
ticketList: [], | |||||
noCoupon:imgurl.noCoupon.url, | |||||
loadingUrl: imgurl.loading.url, | |||||
allow_load: true, | |||||
curPageNum: 1, | |||||
curPageSize: 15, | |||||
curTotalpageNum: 0, | |||||
quantitle: '', | |||||
quanid: '', | |||||
gouHr: imgurl.gouHr.url, | |||||
totalTicketNum: 0, | |||||
}, | |||||
getMoreList(e) { | |||||
let totalNum = this.data.ticketList.length; | |||||
if (this.data.curPageNum < this.data.curTotalpageNum) { | |||||
this.setData({ | |||||
curPageNum: this.data.curPageNum+1 | |||||
}) | |||||
this.getTicketList(0 ,this.data.curPageNum); | |||||
} | |||||
}, | |||||
/** | |||||
* 选择使用的优惠券 | |||||
*/ | |||||
choicecoupon: function(e) { | |||||
/* wx.navigateBack(); | |||||
var pages = getCurrentPages(); | |||||
var prevPage = pages[pages.length - 2] //上一个页面 */ | |||||
var that = this; | |||||
var quantitle = e.currentTarget.dataset.title; | |||||
var quanid = e.currentTarget.dataset.id; | |||||
this.setData({ | |||||
quantitle: quantitle, | |||||
quanid: quanid, | |||||
showTicketModal: false, | |||||
}); | |||||
that.bindCoupon(that.data.quanid); | |||||
/* wx.setStorage({ | |||||
key: 'chosed', | |||||
data: 'chosed', | |||||
}) */ | |||||
}, | |||||
/* | |||||
*/ | |||||
getTicketList(key, pageNum) { | |||||
var that = this; | |||||
if (that.data.allow_load) { | |||||
wx.showLoading({ | |||||
title: "加载中" | |||||
}); | |||||
Http.get({ | |||||
url: config.api.couponOrderCarList, | |||||
data: { | |||||
pageNum: pageNum, | |||||
pageSize: 15, | |||||
couponOrderStatus: key | |||||
} | |||||
}).then(res => { | |||||
that.setData({ | |||||
curTotalpageNum: res.data.pages, | |||||
curPageNum: res.data.pageNum, | |||||
totalTicketNum: res.data.total | |||||
}) | |||||
res.data.list.map(file => { | |||||
file.expiredTime = format.formatTime( | |||||
file.expiredTime, | |||||
"yyyy-MM-dd hh:mm:ss" | |||||
); | |||||
}); | |||||
setTimeout(function () { | |||||
wx.hideLoading(); | |||||
}, 1200); | |||||
if (pageNum >= res.data.pages) { | |||||
that.setData({ | |||||
allow_load: false | |||||
}); | |||||
} | |||||
/** | |||||
* 先赋值后渲染页面 | |||||
* concat 不会改变原数组值 | |||||
* push 会改变原数组值,但不会一条一条插入,而是整个数组插入 | |||||
*/ | |||||
if (pageNum == 1) { | |||||
that.setData({ | |||||
ticketList: res.data.list, | |||||
curPageNum: pageNum | |||||
}); | |||||
} else { | |||||
that.setData({ | |||||
ticketList: that.data.ticketList.concat(res.data.list) | |||||
}); | |||||
} | |||||
// that.data.ticketList = that.data.ticketList.concat(res.data.list); | |||||
this.hideLoading(); | |||||
}) | |||||
.catch(err => { | |||||
setTimeout(function () { | |||||
wx.hideLoading(); | |||||
}, 1200); | |||||
wx.showToast({ | |||||
title: err.errMsg, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
}) | |||||
} else { | |||||
} | |||||
}, | |||||
//点击跳转到券详情页面 | |||||
gotouse: function (e) { | |||||
wx.navigateTo({ | |||||
url: `/pages/passCar/couponDetail/couponDetail?quancode=${ | |||||
e.currentTarget.dataset.quancode | |||||
}`, | |||||
success: function (res) { | |||||
// success | |||||
}, | |||||
fail: function () { | |||||
// fail | |||||
}, | |||||
complete: function () { | |||||
// complete | |||||
} | |||||
}); | |||||
}, | |||||
/** | |||||
* 车牌轮播滑动 | |||||
*/ | |||||
onSlideChangeEnd: function (e) { | |||||
var that = this; | |||||
/** | |||||
* 获得当前的车牌号码 | |||||
*/ | |||||
var listCardNum = (that.data.carList)[e.detail.current].carNumber; | |||||
that.setData({ | |||||
listCardNum: listCardNum | |||||
}); | |||||
/** | |||||
* 获得停车费用 | |||||
*/ | |||||
if (that.data.scroll) { | |||||
that.getStopFee(listCardNum); | |||||
} | |||||
}, | |||||
//停车费用为0 | |||||
paySuccess: function () { | |||||
wx.showModal({ | |||||
title: '支付成功', | |||||
content: '请尽快离场', | |||||
showCancel: false | |||||
}) | |||||
}, | |||||
gotomange: function () { | |||||
wx.navigateTo({ | |||||
url: '/pages/managelicenseplate/managelicenseplate', | |||||
}) | |||||
}, | |||||
bindfail: function (res) { | |||||
console.log(res) | |||||
}, | |||||
gotoetcp: function () { | |||||
wx.navigateToMiniProgram({ | |||||
appId: that.data.etcpAppId, | |||||
extraData: this.data.extraData, | |||||
envVersion: 'release', | |||||
path: "pages/main/main", | |||||
}) | |||||
}, | |||||
showquan: function () { | |||||
wx.navigateTo({ | |||||
url: '/pages/passCar/couponList/couponList', | |||||
}) | |||||
}, | |||||
gotodetail: function (e) { | |||||
wx.showModal({ | |||||
title: '缴费规则', | |||||
content: e.target.dataset.rule, | |||||
showCancel: false, | |||||
}) | |||||
}, | |||||
onShow: function (options) { | |||||
console.log(123) | |||||
var that = this; | |||||
that.setData({ | |||||
etcpAppId: extConfig.attr.etcpAppId, | |||||
etcpVersion: extConfig.attr.etcpVersion, | |||||
etcpCallbackUrl: extConfig.attr.etcpCallbackUrl, | |||||
ifHaveCarModular: extConfig.attr.ifHaveCarModular | |||||
}) | |||||
if (app.globalData.token) { | |||||
that.getList(); | |||||
that.init(); | |||||
} else { | |||||
that.init(); | |||||
} | |||||
/** | |||||
* 只有用户选择了优惠券 | |||||
* 才会进行券和车牌的绑定 | |||||
*/ | |||||
/* if (wx.getStorageSync("chosed") && that.data.quanid) { | |||||
that.getStopFee(that.data.listCardNum); | |||||
that.bindCoupon(that.data.quanid); | |||||
wx.setStorage({ | |||||
key: 'chosed', | |||||
data: '', | |||||
}) | |||||
}; */ | |||||
if (app.globalData.token) { | |||||
// that.initUsrCarList(); | |||||
that.initUsrCarList("flags"); | |||||
that.setData({ | |||||
current: 0 | |||||
}) | |||||
} | |||||
if (that.data.addCar) { | |||||
// 绑车牌 | |||||
if (app.globalData.carLogin) { | |||||
that.bindCar(that.data.addCar); | |||||
} else { | |||||
that.bindCar(that.data.addCar); | |||||
} | |||||
that.setData({ | |||||
addCar: null | |||||
}); | |||||
} | |||||
this.getTicketList(0, 1); | |||||
}, | |||||
cancelMove: function() { | |||||
console.log(111) | |||||
return false; | |||||
}, | |||||
onHide: function () { | |||||
this.setData({ | |||||
allow_load: true, | |||||
showTicketModal: false, | |||||
curPageNum: 1, | |||||
ticketList: [] | |||||
}) | |||||
}, | |||||
onLoad: function (options) { | |||||
var that = this; | |||||
/** | |||||
* 获得分享小程序的 | |||||
* title | |||||
* desc | |||||
*/ | |||||
Http.get({ | |||||
url: config.api.getWeapNote, | |||||
data: { | |||||
appId: config.weapp.AppId, | |||||
} | |||||
}) | |||||
.then(res => { | |||||
let weapNote = JSON.parse(res.data.weapNote); | |||||
that.setData({ | |||||
desc: weapNote.carpage.desc, | |||||
title: weapNote.carpage.title | |||||
}) | |||||
}) | |||||
.catch(err => { | |||||
console.log(err); | |||||
}) | |||||
// 登录 | |||||
var scene = decodeURIComponent(options.scene); | |||||
that.setData({ | |||||
scene: scene | |||||
}); | |||||
if (app.globalData.token) { } else { | |||||
// app.getLocation(); | |||||
that.userLogin() | |||||
} | |||||
}, | |||||
/** | |||||
* 用户登录 | |||||
*/ | |||||
userLogin: function () { | |||||
var that = this; | |||||
// 登录 | |||||
wx.login({ | |||||
success: ({ | |||||
code | |||||
}) => { | |||||
wx.getSystemInfo({ | |||||
success: function (res) { | |||||
that.setData({ | |||||
systemInfo: JSON.stringify(res) | |||||
}) | |||||
} | |||||
}) | |||||
var usrdata = { | |||||
appId: config.weapp.AppId, | |||||
code: code, | |||||
sceneAddress: app.globalData.sceneAddress, | |||||
scene: that.data.scene, | |||||
systemInfo: that.data.systemInfo | |||||
}; | |||||
if (app.globalData.locationInfo) { | |||||
usrdata = { | |||||
appId: config.weapp.AppId, | |||||
code: code, | |||||
sceneAddress: app.globalData.sceneAddress, | |||||
latitude: "" + app.globalData.locationInfo.latitude, | |||||
longitude: "" + app.globalData.locationInfo.longitude, | |||||
scene: that.data.scene, | |||||
systemInfo: that.data.systemInfo | |||||
}; | |||||
} | |||||
Http.post({ | |||||
url: config.api.login, | |||||
data: usrdata | |||||
}) | |||||
.then(res => { | |||||
app.globalData.token = res.data.token; | |||||
Http.setToken(res.data.token); | |||||
that.checkUserCarStatus(); | |||||
that.getList(); | |||||
that.init(); | |||||
that.initUsrCarList(); | |||||
return Http.get({ | |||||
url: config.api.checkUserStatus, | |||||
data: {} | |||||
}); | |||||
}) | |||||
.then(res => { }) | |||||
.catch(err => { | |||||
if (err.code == 11004) { | |||||
// 用户昵称未授权 | |||||
wx.redirectTo({ | |||||
url: "/pages/getuserinfo/index" | |||||
}); | |||||
} else { | |||||
wx.showModal({ | |||||
title: '提示', | |||||
content: err.errMsg, | |||||
showCancel: false | |||||
}) | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
}, | |||||
/** | |||||
* 检查用户是否有车 | |||||
*/ | |||||
checkUserCarStatus: function () { | |||||
var that = this; | |||||
Http.get({ | |||||
url: config.api.userCarCount, | |||||
data: {} | |||||
}).then(res => { | |||||
if (res.data > 0) { | |||||
// 用户名下有车 | |||||
app.globalData.phone = res.data.phone; | |||||
app.globalData.supportCar = true; | |||||
// 共同登录 | |||||
that.userCarLogin(); | |||||
} | |||||
}) | |||||
.catch(err => { }) | |||||
}, | |||||
jumpToAdd: function () { | |||||
wx.navigateTo({ | |||||
url: `/pages/addPark/addPark?flags=managepalte` | |||||
}); | |||||
}, | |||||
passc: function () { | |||||
wx.navigateTo({ | |||||
url: '/pages/ques/ques', | |||||
}) | |||||
}, | |||||
/** | |||||
* 券绑定车牌 | |||||
*/ | |||||
bindCoupon: function (quanid) { | |||||
var that = this; | |||||
/** | |||||
* etcp | |||||
*/ | |||||
var etcpData = { | |||||
etcpToken: app.globalData.etcpToken, | |||||
carNumber: that.data.listCardNum, | |||||
couponOrderId: quanid | |||||
}; | |||||
/** | |||||
* 停简单 | |||||
*/ | |||||
var tjdData = { | |||||
carNumber: that.data.listCardNum | |||||
}; | |||||
var postCouponData = app.globalData.parkVendor == 1 ? etcpData : tjdData; | |||||
Http.post({ | |||||
url: config.api.getCarCoupon, | |||||
data: postCouponData | |||||
}) | |||||
.then(res => { | |||||
that.getStopFee(that.data.listCardNum); | |||||
that.initUsrCarList(); | |||||
}) | |||||
.catch(err => { | |||||
if (err.message!=undefined) { | |||||
wx.showToast({ | |||||
title: err.message, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} | |||||
}) | |||||
}, | |||||
/** | |||||
* 选择优惠券 | |||||
*/ | |||||
// gotoquan: function () { | |||||
// let that = this; | |||||
// if (that.data.quanid) { | |||||
// wx.navigateTo({ | |||||
// url: `/pages/passCar/choicecoupon/choicecoupon?quanid=${that.data.quanid}`, | |||||
// }) | |||||
// } else { | |||||
// wx.navigateTo({ | |||||
// url: '/pages/passCar/choicecoupon/choicecoupon', | |||||
// }) | |||||
// } | |||||
// }, | |||||
closeTicketModal: function () { | |||||
this.setData({ | |||||
showTicketModal: false | |||||
}) | |||||
}, | |||||
/** | |||||
* 停车券 弹框 | |||||
*/ | |||||
openTicketModal: function () { | |||||
this.setData({ | |||||
showTicketModal: true, | |||||
allow_load: true, | |||||
ticketList: [], | |||||
curPageNum: 1, | |||||
}) | |||||
this.getTicketList(0, 1); | |||||
/* if (!this.data.ticketList.length){ | |||||
this.getTicketList(0, 1); | |||||
} */ | |||||
}, | |||||
//获取名下停车券列表 | |||||
getList() { | |||||
var that = this; | |||||
Http.get({ | |||||
url: config.api.couponOrderCarList + "?type=5&couponOrderStatus=0", | |||||
data: { | |||||
pageNum: 1, | |||||
pageSize: 15, | |||||
couponOrderStatus: 0 | |||||
} | |||||
}).then(res => { | |||||
that.setData({ | |||||
couponList: res.data.list | |||||
}); | |||||
}) | |||||
.catch(err => { | |||||
console.log(err) | |||||
}) | |||||
}, | |||||
/** | |||||
* 共同登录 | |||||
*/ | |||||
init: function (carNumber) { | |||||
var that = this; | |||||
app.parkInitCallback = token => { | |||||
that.initPark(); | |||||
that.getParkStatus(); | |||||
if (!app.globalData.carLogin) { | |||||
/** | |||||
* 判断是否授权手机号 | |||||
*/ | |||||
Http.get({ | |||||
url: config.api.checkPhoneStatus, | |||||
data: {} | |||||
}) | |||||
.then(res => { | |||||
Http.post({ | |||||
url: config.api.carInit, | |||||
data: { | |||||
phone: app.globalData.phone | |||||
} | |||||
}).then(res => { | |||||
app.globalData.carLogin = true; | |||||
app.globalData.parkVendor = res.data.vendor; | |||||
if (res.data.token) { | |||||
app.globalData.etcpToken = res.data.token; | |||||
} | |||||
/** | |||||
* 获得停车费用 | |||||
*/ | |||||
that.initUsrCarList("flags"); | |||||
}); | |||||
}) | |||||
.catch(err => { | |||||
if (err.code == 11005) { | |||||
// 用户手机未授权 | |||||
/** | |||||
* 将值传到用户手机号授权的页面 | |||||
* | |||||
*/ | |||||
wx.redirectTo({ | |||||
url: "/pages/getphoneInfo/index" | |||||
}); | |||||
} else if (err.code == 11006) { | |||||
// 用户手机已加密 | |||||
wx.redirectTo({ | |||||
url: "/pages/phoneinput/phoneinput" | |||||
}); | |||||
} else { | |||||
wx.showToast({ | |||||
title: err.errMsg, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
} | |||||
}) | |||||
} | |||||
}; | |||||
if (app.globalData.token && app.globalData.token != null) { | |||||
app.parkInitCallback(app.globalData.token); | |||||
} | |||||
}, | |||||
bindCar: function (carNum) { | |||||
var that = this; | |||||
// ETCP | |||||
var etcpData = { | |||||
etcpToken: app.globalData.etcpToken, | |||||
carNumber: carNum | |||||
}; | |||||
var tjdData = { | |||||
carNumber: carNum | |||||
}; | |||||
var postData = app.globalData.parkVendor == 1 ? etcpData : tjdData; | |||||
Http.post({ | |||||
url: config.api.bindCar, | |||||
data: postData | |||||
}) | |||||
.then(res => { | |||||
that.setData({ | |||||
addCar: null | |||||
}); | |||||
that.initUsrCarList(); | |||||
wx.showModal({ | |||||
title: "提示", | |||||
showCancel: false, | |||||
content: "绑车牌成功!", | |||||
success: function () { } | |||||
}); | |||||
}) | |||||
.catch(error => { | |||||
wx.showModal({ | |||||
title: "提示", | |||||
showCancel: false, | |||||
content: error.data.message, | |||||
success: function () { } | |||||
}); | |||||
}); | |||||
}, | |||||
/** | |||||
* 车场信息获取 | |||||
*/ | |||||
initPark: function () { | |||||
var that = this; | |||||
Http.get({ | |||||
url: config.api.getParkInfo, | |||||
data: {} | |||||
}) | |||||
.then(res => { | |||||
that.setData({ | |||||
park: res.data | |||||
}) | |||||
}) | |||||
.catch(err => { | |||||
console.log(err); | |||||
// wx.showToast({ | |||||
// title: err.message, | |||||
// icon: 'none', | |||||
// duration: 2000, | |||||
// mask: false | |||||
// }); | |||||
}) | |||||
}, | |||||
/** | |||||
* 车场状态获取 | |||||
*/ | |||||
getParkStatus: function () { | |||||
var that = this; | |||||
Http.get({ | |||||
url: config.api.getParkStatus, | |||||
}) | |||||
.then(res => { | |||||
console.log(res) | |||||
}) | |||||
.catch(err => { | |||||
console.log(err) | |||||
// wx.showToast({ | |||||
// title: err.message, | |||||
// icon:"none" | |||||
// }) | |||||
}) | |||||
}, | |||||
/** | |||||
* 绑定车获取 | |||||
*/ | |||||
initUsrCarList: function (flag) { | |||||
var that = this; | |||||
Http.get({ | |||||
url: config.api.getUserCarList, | |||||
data: {} | |||||
}).then(res => { | |||||
that.setData({ | |||||
carList: res.data | |||||
}); | |||||
/** | |||||
* flag ==flags | |||||
* 表示从首页onShow进来的 | |||||
*/ | |||||
if (flag == "flags" && res.data.length > 0) { | |||||
var listCardNum = res.data[0].carNumber; | |||||
that.setData({ | |||||
listCardNum: listCardNum | |||||
}) | |||||
/** | |||||
* 获得停车费用 | |||||
*/ | |||||
that.getStopFee(listCardNum); | |||||
} | |||||
}) | |||||
.catch(err => { | |||||
wx.showToast({ | |||||
title: err.message, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
}) | |||||
}, | |||||
/** | |||||
* 获得停车费用修改 | |||||
*/ | |||||
getStopFee: function (carNumber) { | |||||
let that = this; | |||||
let postData = | |||||
app.globalData.parkVendor == 1 ? { | |||||
etcpToken: app.globalData.etcpToken, | |||||
carNumber: carNumber | |||||
} : { | |||||
carNumber: carNumber, | |||||
outCarId: outCarId | |||||
}; | |||||
Http.post({ | |||||
url: config.api.getCarStopFee, | |||||
data: postData | |||||
}) | |||||
.then(res => { | |||||
console.log(res) | |||||
var extraDataStr = { | |||||
params: { | |||||
token: app.globalData.etcpToken, | |||||
syncId: res.data.orderId, | |||||
payType: 6, // 小程序支付 | |||||
CarNumber: carNumber, | |||||
returnUrl: that.data.etcpCallbackUrl, | |||||
source: "FUMAO-001", | |||||
actionId: "1" //操作ID,1:小程序支付 | |||||
} | |||||
}; | |||||
that.setData({ | |||||
extraData: extraDataStr, | |||||
stopFees: res.data, | |||||
timecha: Util.timecha(res.data.exitTime, res.data.entranceTime) | |||||
}); | |||||
that.setData({ | |||||
scroll: true | |||||
}) | |||||
}) | |||||
.catch(error => { | |||||
that.setData({ | |||||
stopFees: {}, | |||||
scroll: true | |||||
}) | |||||
}); | |||||
}, | |||||
/** | |||||
* 下拉刷新 | |||||
*/ | |||||
onPullDownRefresh: function (e) { | |||||
let that = this; | |||||
that.initUsrCarList("flags"); | |||||
that.setData({ | |||||
current:0 | |||||
}) | |||||
wx.stopPullDownRefresh(); | |||||
} | |||||
}); |
@@ -0,0 +1,8 @@ | |||||
{ | |||||
"component": true, | |||||
"usingComponents": { | |||||
"navbar": "../../../components/navbar/navbar" | |||||
}, | |||||
"navigationBarTitleText": "智能停车", | |||||
"enablePullDownRefresh": true | |||||
} |
@@ -0,0 +1,157 @@ | |||||
<navbar text="停车"></navbar> | |||||
<view class='container' wx:if="{{ifHaveCarModular == 1}}" style="padding-top:{{navigationBarHeight}}"> | |||||
<view class='top'> | |||||
<view class='header'> | |||||
<image src='{{parkUrl}}' mode="widthFix"></image>{{park.addr}} | |||||
(<text style='color:#f86661;'>{{park.number}}</text>车位)</view> | |||||
</view> | |||||
<view class='borderBox'> | |||||
<view class='passNumberBox'> | |||||
<!-- 有车牌的时候显示 --> | |||||
<view class='passUp'> | |||||
<view class='addicense_active' wx:if='{{carList.length>0}}'> | |||||
<swiper current="{{current}}" bindchange='onSlideChangeEnd' class='swiper swiper-box' circular='true' indicator-dots='{{indicatorDots}}' autoplay='{{autoplay}}' interval='1500' duration='1500'> | |||||
<block wx:for='{{carList}}' wx:key="unique"> | |||||
<swiper-item class="swiper-item" data-memberKeyword='{{item.carNumber}}'> | |||||
<view class='clearfix clearfix1'> | |||||
<text class='txt01'>{{item.carNumber}}</text> | |||||
</view> | |||||
</swiper-item> | |||||
</block> | |||||
</swiper> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view class='orderBox' wx:if="{{stopFees.orderId&&carList.length>0&&3>=carList.length}}"> | |||||
<view class='clearfix'> | |||||
<text class="fl">入场时间:</text> | |||||
<text class='fr time'>{{stopFees.entranceTime}}</text> | |||||
</view> | |||||
<view class='clearfix'> | |||||
<text class="fl">停车时长:</text> | |||||
<text class='fr time'>{{timecha}}</text> | |||||
</view> | |||||
<!-- <view class='coupon clearfix' bindtap='gotoquan' wx:if="{{couponList.length>0}}"> --> | |||||
<view class='coupon clearfix' bindtap='openTicketModal' wx:if="{{couponList.length>0}}"> | |||||
<text class='fl'><text class='jians'>券</text>优惠券:</text> | |||||
<view class="fr"> | |||||
<text wx:if="{{quantitle}}">{{quantitle}}</text> | |||||
<text wx:else>{{totalTicketNum}}张可用</text> | |||||
<image class='jiant' src='{{jianUrl}}' mode='widthFix'></image> | |||||
</view> | |||||
</view> | |||||
<view class="clearfix"> | |||||
<text class="fl">待缴费用:</text> | |||||
<text class='fr' style='color:#ff4949;'>{{stopFees.remainingFee}}元</text> | |||||
</view> | |||||
<!-- 停车费用大于0 --> | |||||
<view class="buy-view" wx:if="{{stopFees.orderId&&stopFees.remainingFee>0}}"> | |||||
<navigator bindfail="bindfail" path="pages/main/main" wx:if="{{canIUse}}" class='buy' target="miniProgram" open-type="navigate" app-id="{{etcpAppId}}" extra-data='{{extraData}}' version="{{etcpVersion}}"> | |||||
立即支付 | |||||
</navigator> | |||||
<view wx:if="{{!canIUse}}" class='buy' bindtap='gotoetcp'>立即支付</view> | |||||
</view> | |||||
<!-- 停车费用为0 --> | |||||
<view wx:if="{{stopFees.remainingFee==0}}" class='buy' bindtap='paySuccess'>立即支付</view> | |||||
</view> | |||||
<!-- 没有车牌的时候显示 --> | |||||
<view class='borderUp' bindtap='jumpToAdd' wx:if="{{carList.length==0}}"> | |||||
<view class="myCars"> | |||||
<!-- <image src='{{addUrl}}' mode="widthFix"></image> --> | |||||
添加车牌 | |||||
</view> | |||||
<text class='carNumber'>车辆入场后,才能绑车牌</text> | |||||
</view> | |||||
<view class='bottonBox'> | |||||
<view class='textStyle' bindtap='showquan'> | |||||
<image src='{{tingcheHr}}'></image> | |||||
我的停车券 | |||||
<view class='detail'> | |||||
<image src='{{jianUrl}}'></image> | |||||
</view> | |||||
</view> | |||||
<view class='textStyle' bindtap='gotomange'> | |||||
<image src='{{guanliHr}}'></image> | |||||
车辆管理 | |||||
<view class='detail'> | |||||
<image src='{{jianUrl}}'></image> | |||||
</view> | |||||
</view> | |||||
<view class='textStyle' bindtap='gotodetail' data-rule='{{park.stopFee}}'> | |||||
<image src='{{jiaofei}}'></image> | |||||
缴费规则 | |||||
<view class='detail'> | |||||
<image src='{{jianUrl}}'></image> | |||||
</view> | |||||
</view> | |||||
<view class='textStyle' bindtap='passc'> | |||||
<image src='{{wentiHr}}'></image> | |||||
常见问题 | |||||
<view class='detail'> | |||||
<image src='{{jianUrl}}'></image> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view class="con" wx:if="{{ifHaveCarModular == 0}}" style="padding-top:{{navigationBarHeight}}"> | |||||
<image class="img" src="{{parkUrl}}" mode="widthFix"></image> | |||||
<text class="txt1">智慧停车即将上线</text> | |||||
<text class="txt2">敬请期待</text> | |||||
</view> | |||||
<!-- --> | |||||
<view bindtap="closeTicketModal" class="gray-bg" catchtouchmove="cancelMove" wx:if="{{showTicketModal}}"></view> | |||||
<view class="ticket-modal" wx:if="{{showTicketModal}}"> | |||||
<view style='padding-top:0;'> | |||||
<view class="nocoupon" wx:if="{{ticketList.length==0}}" style="margin-top:100rpx;"> | |||||
<image src="{{noCoupon}}" mode="widthFix" /> | |||||
<text class="txt001">请您敬请期待</text> | |||||
<text class='txt002'>我们正在筹备一大波优惠活动</text> | |||||
<navigator class='nav' url="/pages/main/index" open-type="switchTab" hover-class="other-navigator-hover"> | |||||
<button hover-class='active'>前往首页看看</button> | |||||
</navigator> | |||||
</view> | |||||
<view wx:if="{{ticketList.length>0}}" class="ticket-title-tip"> | |||||
<text>停车券</text> | |||||
<icon bindtap="closeTicketModal" class="close-icon" type="cancel"></icon> | |||||
</view> | |||||
<scroll-view bindscrolltolower="getMoreList" scroll-y style="height:800rpx;"> | |||||
<view class='section' wx:for='{{ticketList}}' wx:key='{{index}}' bindtap="choicecoupon" data-title="{{item.title}}" data-id="{{item.id}}"> | |||||
<view class='mms'> | |||||
<!-- <text>{{index}}</text> --> | |||||
<!-- <image class='gou' wx:if="{{item.id==quanid}}" mode='widthFix' src='{{gouHr}}'></image> --> | |||||
<view class='detail_msg'> | |||||
<view class='info'> | |||||
<view class='title'> | |||||
<text>{{item.title}}</text> | |||||
</view> | |||||
<view class='subtitle'> | |||||
<text>{{item.subTitle}}</text> | |||||
</view> | |||||
<view class="btns"> | |||||
<text class='yuan' style='margin-right:10rpx;'>售价:{{item.salePrice/100}}元</text><text class='yuan' style='text-decoration:line-through' wx:if="{{item.unit==0}}">{{item.price/100}}元</text> | |||||
<text class='yuan' style='text-decoration:line-through' wx:if="{{item.unit==1}}">{{item.price/100}}小时</text> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<!-- <image class="liness" src='{{linessUrl}}' mode="widthFix"></image> --> | |||||
<view class='expiretime'> | |||||
<text class="txt1">有效期至:</text> | |||||
<text class="txt1">{{item.expiredTime}}</text> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</scroll-view> | |||||
<view class="loading" wx:if="{{loading}}"> | |||||
<image src="{{loadingUrl}}" mode="widthFix"></image>{{content}} | |||||
</view> | |||||
</view> | |||||
</view> |
@@ -0,0 +1,881 @@ | |||||
@import "../app.wxss"; | |||||
page { | |||||
background-color: #fff; | |||||
} | |||||
.container{ | |||||
padding-bottom: 60rpx; | |||||
} | |||||
.con text{ | |||||
display: block; | |||||
text-align: center; | |||||
font-size: 30rpx; | |||||
} | |||||
.header{ | |||||
width: 690rpx; | |||||
height: 80rpx; | |||||
font-size: 32rpx; | |||||
margin: 0 auto; | |||||
border-radius:16rpx; | |||||
line-height: 80rpx; | |||||
letter-spacing: 3rpx; | |||||
} | |||||
.header image{ | |||||
width: 60rpx; | |||||
vertical-align: middle; | |||||
margin-top:-5rpx; | |||||
margin-right:6rpx; | |||||
} | |||||
.top{ | |||||
border-bottom:2rpx solid #f8f8f8; | |||||
} | |||||
.headBox { | |||||
width: 690rpx; | |||||
margin: 30rpx auto 0; | |||||
box-sizing: border-box; | |||||
display: flex; | |||||
background-color: white; | |||||
} | |||||
.headBox image { | |||||
width: 150rpx; | |||||
height: 150rpx; | |||||
margin: 10rpx 30rpx 0 0; | |||||
border-radius: 16rpx; | |||||
} | |||||
.titleName { | |||||
width: 100%; | |||||
line-height: 35rpx; | |||||
height: 35rpx; | |||||
color: #666; | |||||
font-size: 32rpx; | |||||
word-break: break-all; | |||||
text-align: justify; | |||||
font-weight: bold; | |||||
} | |||||
::-webkit-scrollbar { | |||||
width: 0; | |||||
height: 0; | |||||
color: transparent; | |||||
} | |||||
.carLocation, .locationNumber { | |||||
display: inline-block; | |||||
height: 40rpx; | |||||
color: #999; | |||||
font-size: 24rpx; | |||||
line-height: 30rpx; | |||||
} | |||||
.carLocation { | |||||
width: 206rpx; | |||||
font-size: 28rpx; | |||||
} | |||||
.price { | |||||
width: 690rpx; | |||||
font-size: 28rpx; | |||||
color: #999; | |||||
margin: 10rpx auto 0; | |||||
} | |||||
.time { | |||||
color: #999 !important; | |||||
} | |||||
.price .fl { | |||||
width: 15%; | |||||
color: #333; | |||||
} | |||||
.price .fr { | |||||
width: 85%; | |||||
color: #999; | |||||
line-height: 40rpx; | |||||
font-size: 26rpx; | |||||
} | |||||
.titleName .fr { | |||||
color: #999; | |||||
font-size: 27rpx; | |||||
} | |||||
.borderBox { | |||||
width: 750rpx; | |||||
margin-top:30rpx; | |||||
} | |||||
.borderUp { | |||||
width: 680rpx; | |||||
margin: 0 auto; | |||||
font-size: 36rpx; | |||||
border: 2rpx dashed #FD832D; | |||||
border-radius: 16rpx; | |||||
padding-bottom: 40rpx; | |||||
height: 202rpx; | |||||
margin-top: 47rpx; | |||||
} | |||||
.addicense_active { | |||||
width: 690rpx; | |||||
/* box-shadow: 0 4rpx 20rpx 0 rgba(153, 153, 153, 0.35); */ | |||||
border-radius: 12rpx; | |||||
/* background: #02c0ff; *//* padding-bottom: 40rpx; */ | |||||
} | |||||
.myCar { | |||||
display: block; | |||||
text-align: center; | |||||
font-size: 34rpx; | |||||
color: #02c0ff; | |||||
letter-spacing: 0; | |||||
} | |||||
.carNumber { | |||||
display: block; | |||||
height: 50rpx; | |||||
line-height: 50rpx; | |||||
text-align: center; | |||||
font-size: 26rpx; | |||||
color: #999; | |||||
letter-spacing: 0; | |||||
margin-top: 10rpx; | |||||
} | |||||
.addBox { | |||||
width: 750rpx; | |||||
position: relative; | |||||
background-color: white; | |||||
} | |||||
.add { | |||||
position: absolute; | |||||
left: 50%; | |||||
top: 50%; | |||||
transform: translate(-50%, -50%); | |||||
font-size: 34rpx; | |||||
color: #666; | |||||
border: 2px dashed #eee; | |||||
padding: 30rpx 50rpx; | |||||
border-radius: 16rpx; | |||||
} | |||||
.add text { | |||||
font-size: 40rpx; | |||||
} | |||||
.bottonBox { | |||||
width: 750rpx; | |||||
margin-top: 34rpx; | |||||
margin-bottom: 80rpx; | |||||
border-top: 16rpx #f8f8f8 solid; | |||||
} | |||||
.bottonBox view:nth-of-type(1) image{ | |||||
height: 45rpx; | |||||
} | |||||
.textStyle { | |||||
background-color: white; | |||||
height: 88rpx; | |||||
line-height: 88rpx; | |||||
padding-left: 82rpx; | |||||
border-bottom: 1px #f8f8f8 solid; | |||||
position: relative; | |||||
font-size: 30rpx; | |||||
color: #333; | |||||
letter-spacing: 1.16rpx; | |||||
} | |||||
.textStyle image { | |||||
width: 40rpx; | |||||
height: 40rpx; | |||||
top: 24rpx; | |||||
left: 27rpx; | |||||
position: absolute; | |||||
} | |||||
.swiper { | |||||
position: relative; | |||||
margin: 0 auto; | |||||
height: 262rpx; | |||||
} | |||||
.swiper-item { | |||||
width: 365rpx; | |||||
font-size: 75rpx; | |||||
font-weight: 400; | |||||
text-align: center; | |||||
color: rgba(255, 255, 255, 1); | |||||
} | |||||
.swiper-item .clearfix1 { | |||||
background: linear-gradient(127deg,rgba(252,177,74,1) 0%,rgba(254,70,20,1) 100%); | |||||
border-radius: 12rpx; | |||||
padding: 6rpx; | |||||
} | |||||
.tche { | |||||
width: 685rpx; | |||||
height: 88rpx; | |||||
line-height: 88rpx; | |||||
margin: 0 auto; | |||||
background: #00c0ff; | |||||
border-radius: 60rpx; | |||||
position: relative; | |||||
margin-top: 30rpx; | |||||
} | |||||
.txt01 { | |||||
width: 667rpx; | |||||
height: 180rpx; | |||||
line-height: 180rpx; | |||||
float: left; | |||||
background: linear-gradient(127deg,rgba(252,177,74,1) 0%,rgba(254,70,20,1) 100%); | |||||
border-radius: 12rpx; | |||||
border: 3px solid #fff; | |||||
text-align: center; | |||||
font-size: 60rpx; | |||||
} | |||||
.passNumberBox { | |||||
width: 690rpx; | |||||
margin: 32rpx auto 0; | |||||
position: relative; | |||||
background-color: white; | |||||
} | |||||
.numberBox { | |||||
width: 100%; | |||||
} | |||||
.passNumber { | |||||
width: 400rpx; | |||||
height: 100rpx; | |||||
font-size: 32rpx; | |||||
font-weight: 600; | |||||
line-height: 100rpx; | |||||
left: 55rpx; | |||||
position: absolute; | |||||
} | |||||
.nopay { | |||||
height: 80rpx; | |||||
line-height: 80rpx; | |||||
font-weight: 400; | |||||
} | |||||
.number { | |||||
font-size: 48rpx; | |||||
color: #1f2d3d; | |||||
letter-spacing: 0; | |||||
line-height: 52rpx; | |||||
font-weight: 400; | |||||
} | |||||
.manage_plate { | |||||
width: 65%; | |||||
border-radius: 80rpx; | |||||
margin: 40rpx auto 0; | |||||
background: #02c0ff; | |||||
color: #fff; | |||||
text-align: center; | |||||
font-size: 30rpx; | |||||
} | |||||
.button_active { | |||||
opacity: 0.6; | |||||
} | |||||
.btn001 { | |||||
height: 88rpx; | |||||
line-height: 88rpx; | |||||
margin: 0 auto; | |||||
font-size: 30rpx; | |||||
font-weight: 400; | |||||
color: #fff; | |||||
background: none; | |||||
} | |||||
.parkPrice { | |||||
font-size: 30rpx; | |||||
font-weight: 500; | |||||
} | |||||
.deleteButton { | |||||
font-size: 28rpx; | |||||
line-height: 50rpx; | |||||
height: 50rpx; | |||||
top: 50%; | |||||
right: 30rpx; | |||||
position: absolute; | |||||
transform: translate(0, -50%); | |||||
color: white; | |||||
background-color: #00c0ff !important; | |||||
} | |||||
.deleteButton button { | |||||
background-color: #00c0ff !important; | |||||
} | |||||
.detail { | |||||
width: 32rpx; | |||||
height: 32rpx; | |||||
right: 34rpx; | |||||
top: 32rpx; | |||||
position: absolute; | |||||
} | |||||
.detail image { | |||||
width: 44rpx; | |||||
height: 44rpx; | |||||
position: absolute; | |||||
left: 0; | |||||
top: 0; | |||||
} | |||||
.voucher { | |||||
width: 90%; | |||||
padding: 0 5%; | |||||
background-color: #fff; | |||||
/* background-color: #cbcbcb; */ | |||||
height: 80rpx; | |||||
position: relative; | |||||
margin: 0 0 12rpx 0; | |||||
border-bottom: 2rpx #fff solid; | |||||
display: flex; | |||||
justify-content: space-between;; | |||||
} | |||||
.textV1, .textV2 { | |||||
height: 58rpx; | |||||
width: 100rpx; | |||||
padding-top: 26rpx; | |||||
text-align: center; | |||||
line-height: 80rxp; | |||||
font-size: 24rpx; | |||||
color: #333; | |||||
} | |||||
.textV2 { | |||||
margin-top: 0rpx; | |||||
padding: 0; | |||||
/* background-color: rgb(0, 192, 255); */ | |||||
border-radius: 10rpx; | |||||
width: 300rpx; | |||||
height: 80rpx; | |||||
line-height: 80rpx; | |||||
font-size: 20rpx; | |||||
border: 4rpx #fff solid; | |||||
margin-bottom: 20rpx; | |||||
} | |||||
.textV3 { | |||||
width: 225rpx; | |||||
} | |||||
.choice { | |||||
width: 80rpx; | |||||
height: 80rpx; | |||||
position: relative; | |||||
} | |||||
.choice image { | |||||
position: absolute; | |||||
left: 50%; | |||||
top: 50%; | |||||
transform: translate(-50%, -50%); | |||||
width: 30rpx; | |||||
height: 30rpx; | |||||
} | |||||
.buy-view { | |||||
background: #fff; | |||||
position: relative; | |||||
height: 88rpx; | |||||
margin-top: 30rpx; | |||||
} | |||||
.buy { | |||||
background: linear-gradient(127deg,rgba(252,177,74,1) 0%,rgba(254,70,20,1) 100%); | |||||
height: 88rpx; | |||||
width: 73%; | |||||
margin: 0 auto; | |||||
color: #fff; | |||||
font-size: 36rpx; | |||||
line-height: 88rpx; | |||||
border-radius: 60rpx; | |||||
position: relative; | |||||
z-index: 100; | |||||
text-align: center; | |||||
} | |||||
.buyBox { | |||||
height: 88rpx; | |||||
line-height: 88rpx; | |||||
width: 98%; | |||||
position: absolute; | |||||
left: 0; | |||||
right: 0; | |||||
bottom: 0; | |||||
top: 0; | |||||
z-index: 100000000; | |||||
border-radius: 60rpx; | |||||
} | |||||
.active { | |||||
opacity: 0.6; | |||||
} | |||||
.borderBox { | |||||
width: 750rpx; | |||||
} | |||||
.carmanage { | |||||
position: relative; | |||||
width: 690rpx; | |||||
margin: 15rpx auto 0; | |||||
height: 60rpx; | |||||
line-height: 60rpx; | |||||
/* border-bottom: 1rpx solid #eee; */ | |||||
} | |||||
.carmanage .fr { | |||||
font-size: 28rpx; | |||||
color: #888; | |||||
letter-spacing: 1.16rpx; | |||||
text-align: right; | |||||
} | |||||
.fl { | |||||
float: left; | |||||
} | |||||
.fr { | |||||
float: right; | |||||
} | |||||
.carmanage .fl { | |||||
width: 400rpx; | |||||
} | |||||
.carmanage .fr image { | |||||
position: absolute; | |||||
top: 0; | |||||
right: 0; | |||||
bottom: 0; | |||||
margin: auto; | |||||
width: 44rpx; | |||||
height: 44rpx; | |||||
} | |||||
.carmanage image { | |||||
width: 40rpx; | |||||
vertical-align: middle; | |||||
} | |||||
.mycar { | |||||
display: inline-block; | |||||
font-size: 33rpx; | |||||
color: #666; | |||||
line-height: 35rpx; | |||||
letter-spacing: 1.16rpx; | |||||
} | |||||
.num { | |||||
display: inline-block; | |||||
font-size: 26rpx; | |||||
color: #999; | |||||
letter-spacing: 0; | |||||
margin-left: 20rpx; | |||||
} | |||||
.orderBox { | |||||
padding: 0 45rpx; | |||||
position: relative; | |||||
} | |||||
.priceBox { | |||||
display: inline-block; | |||||
width: 355rpx; | |||||
} | |||||
.priceBox text { | |||||
color: #333; | |||||
font-size: 28rpx; | |||||
display: block; | |||||
text-align: left; | |||||
} | |||||
.payBox { | |||||
width: 250rpxpx; | |||||
} | |||||
.payBox button { | |||||
width: 230rpx; | |||||
border: 0; | |||||
font-size: 32rpx; | |||||
margin-top: 13rpx; | |||||
margin-right: 20rpx; | |||||
background-color: lightgreen; | |||||
color: white; | |||||
} | |||||
input { | |||||
outline: none; | |||||
border: none; | |||||
list-style: none; | |||||
} | |||||
button::after { | |||||
border: none; | |||||
} | |||||
.right { | |||||
display: inline-block; | |||||
width: 328rpx; | |||||
} | |||||
.textRight { | |||||
margin-left: 0; | |||||
margin-right: 25rpx; | |||||
text-align: left; | |||||
font-size: 30rpx !important; | |||||
color: #333 !important; | |||||
} | |||||
.myCars image { | |||||
width: 44rpx; | |||||
height: 44rpx; | |||||
vertical-align: middle; | |||||
margin-right: 14rpx; | |||||
} | |||||
.myCars { | |||||
font-size: 34rpx; | |||||
color: #02c0ff; | |||||
letter-spacing: 0; | |||||
text-align: center; | |||||
padding-top: 58rpx; | |||||
} | |||||
.dots { | |||||
position: absolute; | |||||
left: 0; | |||||
right: 0; | |||||
bottom: 19rpx; | |||||
display: flex; | |||||
justify-content: center; | |||||
height: 19rpx; | |||||
background: #fff; | |||||
} | |||||
.dots .dot { | |||||
margin: 0 8rpx; | |||||
width: 32rpx; | |||||
height: 14rpx; | |||||
background: #ccc; | |||||
border-radius: 8rpx; | |||||
transition: all 0.6s; | |||||
} | |||||
.dots .dot.active { | |||||
width: 49rpx; | |||||
height: 4rpx; | |||||
background: rgba(86, 189, 248, 1); | |||||
border-radius: 6rpx; | |||||
} | |||||
.coupon { | |||||
font-size: 28rpx; | |||||
color: #666; | |||||
} | |||||
.orderBox .fl { | |||||
line-height: 70rpx; | |||||
font-size: 28rpx; | |||||
color: #333; | |||||
} | |||||
.orderBox .fr { | |||||
line-height: 70rpx; | |||||
font-size: 28rpx; | |||||
color: #FD832D; | |||||
} | |||||
.jians { | |||||
font-size: 22rpx; | |||||
display: inline-block; | |||||
width: 34rpx; | |||||
height: 34rpx; | |||||
text-align: center; | |||||
background: #ff4949; | |||||
line-height: 34rpx; | |||||
color: #fff; | |||||
border-radius: 6rpx; | |||||
margin-right: 6rpx; | |||||
} | |||||
.jiant{ | |||||
display: inline-block; | |||||
width: 44rpx; | |||||
height: 44rpx; | |||||
vertical-align: middle; | |||||
margin-top: -6rpx; | |||||
margin-right: -10rpx; | |||||
} | |||||
.img { | |||||
display: block; | |||||
width: 211rpx; | |||||
margin: 168rpx auto 40rpx; | |||||
} | |||||
.txt1 { | |||||
font-size: 22rpx; | |||||
color: #A6A6A6; | |||||
letter-spacing: 0; | |||||
} | |||||
.txt2 { | |||||
display: block; | |||||
font-size: 28rpx; | |||||
color: #999; | |||||
letter-spacing: 0; | |||||
text-align: center; | |||||
line-height: 40rpx; | |||||
margin-top: 10rpx; | |||||
} | |||||
.gray-bg { | |||||
position: fixed; | |||||
left: 0; | |||||
top: 0; | |||||
width: 100%; | |||||
height: 100%; | |||||
z-index: 1000; | |||||
background: rgba(0,0,0,.2); | |||||
} | |||||
.ticket-modal { | |||||
position: fixed; | |||||
left: 50%; | |||||
top: 50%; | |||||
width: 80%; | |||||
height: 880rpx; | |||||
z-index: 10000; | |||||
transform: translate(-50%, -50%); | |||||
background: #fff; | |||||
} | |||||
.nocoupon image { | |||||
width: 300rpx; | |||||
display: block; | |||||
margin: 3% auto 0; | |||||
} | |||||
.txt001 { | |||||
display: block; | |||||
line-height: 48rpx; | |||||
font-size: 34rpx; | |||||
color: #333; | |||||
letter-spacing: 0; | |||||
text-align: center; | |||||
} | |||||
.txt002 { | |||||
display: block; | |||||
margin-top: 1%; | |||||
font-size: 28rpx; | |||||
color: #999; | |||||
letter-spacing: 0; | |||||
line-height: 40rpx; | |||||
text-align: center; | |||||
} | |||||
.nocoupon button { | |||||
background: linear-gradient(127deg,rgba(252,177,74,1) 0%,rgba(254,70,20,1) 100%); | |||||
color: #fff; | |||||
font-size: 30rpx; | |||||
width: 74%; | |||||
border-radius: 60rpx; | |||||
height: 78rpx; | |||||
line-height: 78rpx; | |||||
margin-top: 100rpx; | |||||
} | |||||
.loading { | |||||
text-align: center; | |||||
height: 80rpx; | |||||
line-height: 80rpx; | |||||
font-size: 26rpx; | |||||
color: #999; | |||||
} | |||||
.loading image { | |||||
width: 60rpx; | |||||
height: 60rpx; | |||||
vertical-align: middle; | |||||
margin-right: 10rpx; | |||||
} | |||||
.section { | |||||
position: relative; | |||||
width: 90%; | |||||
margin-left: 5%; | |||||
} | |||||
.mms { | |||||
width: 100%; | |||||
height: 180rpx !important; | |||||
background: #fff; | |||||
/* padding: 30rpx 0 0; */ | |||||
margin: 0 auto 40rpx; | |||||
/* border-radius: 16rpx; */ | |||||
/* border-top: 8rpx solid #02b7ff; */ | |||||
box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.10); | |||||
} | |||||
.detail_msg { | |||||
display: flex; | |||||
padding-top: 16rpx; | |||||
padding-bottom: 16rpx; | |||||
background: linear-gradient(127deg,rgba(252,177,74,1) 0%,rgba(254,70,20,1) 100%); | |||||
} | |||||
.logo { | |||||
width: 60rpx; | |||||
height: 60rpx; | |||||
/* border: 1px solid #f8f8f8; */ | |||||
border-radius: 50rpx; | |||||
display: block; | |||||
margin: 15rpx 20rpx 0 20rpx; | |||||
} | |||||
.logo image { | |||||
width: 60rpx; | |||||
height: 60rpx; | |||||
border-radius: 50%; | |||||
} | |||||
.info view:nth-child(1) { | |||||
display: flex; | |||||
justify-content: space-between; | |||||
padding: 0 4%; | |||||
margin-top: 15rpx; | |||||
} | |||||
.info { | |||||
width: 100%; | |||||
border-left: 1rpx #FFF dashed; | |||||
} | |||||
.info view:nth-child(1) text { | |||||
font-size: 32rpx; | |||||
line-height: 32rpx; | |||||
height: 32rpx; | |||||
color: #FFFFFF; | |||||
letter-spacing: 0; | |||||
width: 400rpx; | |||||
display: inline-block; | |||||
white-space: nowrap; | |||||
text-overflow: ellipsis; | |||||
overflow: hidden; | |||||
} | |||||
.info view:nth-child(2) { | |||||
padding-left: 4%; | |||||
font-size: 22rpx; | |||||
color: #FFFFFF; | |||||
letter-spacing: 0; | |||||
margin-top: 6rpx; | |||||
display: inline-block; | |||||
white-space: nowrap; | |||||
text-overflow: ellipsis; | |||||
overflow: hidden; | |||||
width: 400rpx; | |||||
} | |||||
.info view:nth-child(3) { | |||||
margin-left: 20rpx; | |||||
} | |||||
.active { | |||||
color: #fff; | |||||
opacity: 0.6; | |||||
/* background: #02c0ff; */ | |||||
} | |||||
.expiretime { | |||||
display: block; | |||||
width: 100%; | |||||
text-align: left; | |||||
text-indent: 1em; | |||||
height: 50rpx; | |||||
line-height: 50rpx; | |||||
font-size: 22rpx; | |||||
color: #A6A6A6; | |||||
letter-spacing: 0; | |||||
} | |||||
.ticket-title-tip { | |||||
position: relative; | |||||
width: 100%; | |||||
height: 76rpx; | |||||
line-height: 76rpx; | |||||
text-align: center; | |||||
color: #353535; | |||||
font-size: 34rpx; | |||||
} | |||||
.close-icon { | |||||
position: absolute; | |||||
right: 10rpx; | |||||
transform: translateY(16rpx); | |||||
} | |||||
.btns { | |||||
position: absolute; | |||||
right: 120rpx; | |||||
top: 50rpx; | |||||
height: 48rpx; | |||||
line-height: 48rpx; | |||||
text-align: right; | |||||
color: #FFF; | |||||
font-size: 40rpx; | |||||
} | |||||
.yuan { | |||||
color: #FFF; | |||||
font-size: 26rpx; | |||||
} | |||||
.gou { | |||||
position: absolute; | |||||
top:45rpx; | |||||
right: 30rpx; | |||||
width: 60rpx; | |||||
} | |||||
.swiper-box .wx-swiper-dots.wx-swiper-dots-horizontal{ | |||||
margin-bottom: 2rpx; | |||||
} | |||||
.swiper-box .wx-swiper-dot{ | |||||
width:40rpx; | |||||
display: inline-flex; | |||||
height: 6rpx; | |||||
margin-left: 10rpx; | |||||
border-radius:6rpx; | |||||
justify-content:space-between; | |||||
} | |||||
.swiper-box .wx-swiper-dot::before{ | |||||
content: ''; | |||||
flex-grow: 1; | |||||
background: #ccc8c8; | |||||
} | |||||
.swiper-box .wx-swiper-dot-active::before{ | |||||
background:#f6792b; | |||||
} |
@@ -0,0 +1,156 @@ | |||||
const navigationBarHeight = (getApp().statusBarHeight + 44) + 'px' | |||||
const Http = require("../../../utils/HttpBasics"); | |||||
const imgurl = require("../../../utils/imgurl"); | |||||
const config = require("../../../config/config"); | |||||
let app = getApp(); | |||||
Page({ | |||||
/** | |||||
* 页面的初始数据 | |||||
*/ | |||||
data: { | |||||
navigationBarHeight, | |||||
lists: [], | |||||
merchantVoList:[], | |||||
indexId: 0, | |||||
businessId:0, | |||||
windowHeight:"", | |||||
page:1, | |||||
isFirstPage:false, | |||||
isLastPage:false, | |||||
teljpgUrl: imgurl.teljpg.url, | |||||
}, | |||||
// 左侧点击事件 | |||||
jumpIndex(e) { | |||||
let that = this; | |||||
let index = e.currentTarget.dataset.menuindex; | |||||
that.setData({ | |||||
indexId: index, | |||||
businessId: index | |||||
}); | |||||
that.setData({ | |||||
page:1 | |||||
}) | |||||
that.getList(1, that.data.businessId); | |||||
}, | |||||
/** | |||||
* 跳转到门店列表的详情页面 | |||||
*/ | |||||
gotoDetail(e){ | |||||
wx.navigateTo({ | |||||
url: `/pages/index/searchbar/detail/index?id=${e.currentTarget.dataset.id}` | |||||
}) | |||||
}, | |||||
/** | |||||
* 生命周期函数--监听页面加载 | |||||
*/ | |||||
onLoad: function (options) { | |||||
let that = this; | |||||
that.getBussiness(); | |||||
that.getList(1, 0); | |||||
wx.showLoading({ | |||||
title: '加载中...', | |||||
}) | |||||
}, | |||||
onShow(){ | |||||
let that = this; | |||||
wx.getSystemInfo({ | |||||
success: function (res) { | |||||
console.log(res.windowHeight, navigationBarHeight); | |||||
that.setData({ | |||||
windowHeight: res.windowHeight + parseInt(navigationBarHeight) | |||||
}) | |||||
}, | |||||
}) | |||||
}, | |||||
getBussiness:function(){ | |||||
let that = this; | |||||
Http.get({ | |||||
url: config.api.businessList, | |||||
data:{ | |||||
filter:1 | |||||
} | |||||
}).then(res => { | |||||
that.setData({ | |||||
lists: [{ id: 0, title: "全部", type: 1 }].concat(res.data) | |||||
}); | |||||
}) | |||||
.catch(err => { | |||||
wx.showToast({ | |||||
title: err.errMsg, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
}) | |||||
}, | |||||
getList: function (page, businessId) { | |||||
let that = this; | |||||
let data; | |||||
if(businessId == 0){ | |||||
data = { | |||||
pageNum: page, | |||||
pageSize: 8 | |||||
} | |||||
}else{ | |||||
data = { | |||||
pageNum: page, | |||||
pageSize: 8, | |||||
businessId: businessId | |||||
} | |||||
} | |||||
Http.get({ | |||||
url: config.api.merchantList, | |||||
data: data | |||||
}).then(res => { | |||||
wx.hideLoading(); | |||||
if (page == 1) { | |||||
that.setData({ | |||||
merchantVoList: [], | |||||
}) | |||||
} | |||||
var tmpArr = that.data.merchantVoList; | |||||
tmpArr.push.apply(tmpArr, res.data.list); | |||||
// console.log(tmpArr) | |||||
that.setData({ | |||||
merchantVoList: tmpArr, | |||||
isFirstPage: res.data.isFirstPage, | |||||
isLastPage: res.data.isLastPage | |||||
}) | |||||
// console.log(that.data.merchantVoList) | |||||
}) | |||||
.catch(err => { | |||||
wx.hideLoading(); | |||||
wx.showToast({ | |||||
title: err.errMsg, | |||||
icon: 'none', | |||||
duration: 2000, | |||||
mask: false | |||||
}); | |||||
}) | |||||
}, | |||||
phone: function (e) { | |||||
let that = this; | |||||
if (e.currentTarget.dataset.merchantlinkphone) { | |||||
wx.makePhoneCall({ | |||||
phoneNumber: e.currentTarget.dataset.merchantlinkphone | |||||
}) | |||||
} | |||||
}, | |||||
/** | |||||
* 页面上拉触底事件的处理函数 | |||||
*/ | |||||
onReachBottom: function () { | |||||
let that = this; | |||||
that.data.page++; | |||||
that.setData({ | |||||
page: that.data.page | |||||
}); | |||||
console.log(that.data.page); | |||||
// 如果是最后一页 | |||||
//就不发送请求 | |||||
if (!that.data.isLastPage || that.data.isFirstPage && that.data.isLastPage){ | |||||
that.getList(that.data.page, that.data.businessId); | |||||
} | |||||
} | |||||
}) |
@@ -0,0 +1,8 @@ | |||||
{ | |||||
"navigationBarTitleText": "门店", | |||||
"navigationBarBackgroundColor": "#F4F5F9", | |||||
"navigationBarTextStyle": "black", | |||||
"usingComponents": { | |||||
"navbar": "../../../components/navbar/navbar" | |||||
} | |||||
} |
@@ -0,0 +1,43 @@ | |||||
<navbar text="门店"></navbar> | |||||
<!-- 左侧滚动栏 --> | |||||
<view style="padding-top:{{navigationBarHeight}}"> | |||||
<view class='under_line'></view> | |||||
<view style='float: left' class='left'> | |||||
<scroll-view scroll-y scroll-with-animation scroll-left="{{scrollLength}}" class='scrollY' style='height: {{windowHeight}}px;top:{{navigationBarHeight}}'> | |||||
<view class='all clear'> | |||||
<block wx:for="{{lists}}" wx:key="{{index}}"> | |||||
<view bindtap='jumpIndex' data-menuindex='{{item.id}}'> | |||||
<view class="{{indexId==item.id?'text-style':'text-styleHover'}}"> | |||||
<text class="{{indexId==item.id?'active1':''}}">{{item.title}}</text> | |||||
<text class="{{indexId==item.id?'active':''}}"></text> | |||||
</view> | |||||
</view> | |||||
</block> | |||||
</view> | |||||
</scroll-view> | |||||
</view> | |||||
<view class='lists'> | |||||
<view class='posi' wx:if="{{merchantVoList.length>0}}"> | |||||
<view class='posi_logo' wx:for="{{merchantVoList}}" wx:key="index"> | |||||
<view class='merchants' bindtap='gotoDetail' data-id='{{item.id}}'> | |||||
<view style=' margin-left: 24rpx;margin-top: 24rpx;'> | |||||
<image src='{{item.merchantImgUrl}}'></image> | |||||
</view> | |||||
<view class='leftBox'> | |||||
<view class='merchantName'>{{item.merchantName}}</view> | |||||
<view class='shopVo'> | |||||
<view class='shopVoList' > | |||||
<text wx:for="{{item.shopVoList}}" wx:key="{{index}}" wx:for-item="itemName">{{itemName.buildingName}}{{itemName.floorName}}--{{itemName.shopNumber}}</text> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<image wx:if="{{item.linkLinePhone}}" bindtap='phone' data-merchantLinkPhone='{{item.linkLinePhone}}' class="tel" src="{{teljpgUrl}}" mode="widthFix" /> | |||||
</view> | |||||
</view> | |||||
<view class='position' wx:if="{{merchantVoList.length==0}}"> | |||||
暂无数据 | |||||
</view> | |||||
</view> | |||||
</view> |
@@ -0,0 +1,158 @@ | |||||
.under_line{ | |||||
width: 100%; | |||||
} | |||||
.scrollY { | |||||
width: 134rpx; | |||||
position: fixed; | |||||
left: 0; | |||||
background:#F4F5F9; | |||||
} | |||||
.text-style { | |||||
position: relative; | |||||
width: 139rpx; | |||||
height: 100rpx; | |||||
line-height: 100rpx; | |||||
text-align: center; | |||||
font-size: 30rpx; | |||||
font-family: PingFangSC-Semibold; | |||||
color: #3C3C3C; | |||||
background: #FFFFFF; | |||||
font-weight:500; | |||||
} | |||||
.text-styleHover{ | |||||
position: relative; | |||||
width: 139rpx; | |||||
height: 100rpx; | |||||
line-height: 100rpx; | |||||
text-align: center; | |||||
font-size: 26rpx; | |||||
font-family: PingFangSC-Semibold; | |||||
color: #A6A6A6; | |||||
} | |||||
.text-style text{ | |||||
font-size: 26rpx; | |||||
} | |||||
.active1 { | |||||
font-size: 26rpx!important; | |||||
} | |||||
.active { | |||||
position: absolute; | |||||
left: 4rpx; | |||||
bottom: 0rpx; | |||||
top:0; | |||||
margin: auto; | |||||
width:12rpx; | |||||
height:24rpx; | |||||
background:linear-gradient(127deg,rgba(252,177,74,1) 0%,rgba(254,70,20,1) 100%); | |||||
border-radius:7rpx; | |||||
} | |||||
.posi { | |||||
position: relative; | |||||
width: 616rpx; | |||||
float: right; | |||||
} | |||||
.posi>view:nth-child(2) { | |||||
width: 100%; | |||||
display: flex; | |||||
justify-content: space-between; | |||||
box-sizing: border-box; | |||||
} | |||||
.posi>view:nth-child(2) text:nth-child(1) { | |||||
font-size: 30rpx; | |||||
color: #a9a9a9; | |||||
} | |||||
.posi>view:nth-child(2) text:nth-child(2) { | |||||
font-size: 30rpx; | |||||
color: #a9a9a9; | |||||
} | |||||
.posi_logo { | |||||
position: relative; | |||||
width:576rpx!important; | |||||
height:176rpx; | |||||
background:rgba(255,255,255,1); | |||||
box-shadow:0px 4rpx 8rpx 0px rgba(0,0,0,0.04); | |||||
border-radius:16rpx; | |||||
margin: 20rpx; | |||||
overflow: hidden; | |||||
} | |||||
.tel { | |||||
position: absolute; | |||||
right: 3%; | |||||
top: 0; | |||||
bottom: 0; | |||||
margin: auto; | |||||
width: 50rpx; | |||||
height: 50rpx; | |||||
} | |||||
.merchants{ | |||||
width: 90%; | |||||
display: flex; | |||||
background: #fff; | |||||
padding-right:5%; | |||||
overflow: hidden; | |||||
} | |||||
.position{ | |||||
text-align: center; | |||||
margin-top: 100rpx; | |||||
color: #999; | |||||
} | |||||
.leftBox{ | |||||
padding: 20rpx 0; | |||||
} | |||||
.merchants view:nth-child(1) image { | |||||
display: block; | |||||
width: 120rpx; | |||||
height: 120rpx; | |||||
border-radius: 16rpx; | |||||
} | |||||
.shopVo{ | |||||
margin-left: 20rpx; | |||||
} | |||||
.merchantName{ | |||||
color: #3C3C3C; | |||||
font-size: 32rpx; | |||||
margin-left: 20rpx; | |||||
width: 60%; | |||||
overflow: hidden; | |||||
text-overflow:ellipsis; | |||||
white-space: nowrap; | |||||
margin-top: 10rpx; | |||||
} | |||||
.shopVo text{ | |||||
float: left; | |||||
} | |||||
page { | |||||
padding: 0 0 30rpx; | |||||
} | |||||
.text{ | |||||
display: block; | |||||
width: 25%; | |||||
text-align: center; | |||||
} | |||||
.view view:nth-of-type(1) { | |||||
font-size: 28rpx; | |||||
color: #888; | |||||
} | |||||
.shopVoList{ | |||||
padding-left: 0!important; | |||||
display: inline-block!important; | |||||
width: 345rpx; | |||||
white-space: nowrap; | |||||
text-overflow: ellipsis; | |||||
overflow: hidden; | |||||
} | |||||
.shopVoList text{ | |||||
font-size: 20rpx!important; | |||||
color: #b8b8b8!important; | |||||
margin-right: 10rpx; | |||||
} |
@@ -0,0 +1,288 @@ | |||||
const navigationBarHeight = (getApp().statusBarHeight + 44) + 'px' | |||||
const extConfig = wx.getExtConfigSync ? wx.getExtConfigSync() : {} | |||||
var config = require("../../config/config.js"); | |||||
var app = getApp(); | |||||
const Http = require("../../utils/HttpBasics"); | |||||
const QR = require("../../utils/memberqrcode.js"); | |||||
const imgurl = require("../../utils/imgurl"); | |||||
const bgColor = require("../../utils/bgColor.js") | |||||
Page({ | |||||
/** | |||||
* 页面的初始数据 | |||||
*/ | |||||
data: { | |||||
navigationBarHeight, | |||||
banneColor: bgColor.colorFirst.user.banneColor, | |||||
levelBg: bgColor.colorFirst.user.levelBg, | |||||
view: bgColor.colorFirst.user.view, | |||||
redirectUrl: imgurl.redirect.url, | |||||
qrcodeUrl: imgurl.qrcode.url, | |||||
editUrl: imgurl.edit.url, | |||||
activeUrl: imgurl.active.url, | |||||
dingUrl: imgurl.ding.url, | |||||
quansUrl: imgurl.quans.url, | |||||
wmintegral: imgurl.wmintegral.url, | |||||
cardiconUrl: imgurl.cardicon.url, | |||||
myactivitygift: imgurl.myactivitygift.url, | |||||
myactivity: imgurl.myactivity.url, | |||||
cheUrl: imgurl.che.url, | |||||
giftUrl: imgurl.gift.url, | |||||
wmbarginicon: imgurl.wmbarginicon.url, | |||||
wmspellgroup: imgurl.wmspellgroup.url, | |||||
canIUse: wx.canIUse('official-account'), | |||||
mineFlag:"", | |||||
flag: 'hidden', | |||||
score: '0', | |||||
name: "", | |||||
birthdate: "", | |||||
sex: "", | |||||
showEdit: false, | |||||
ismember: false, | |||||
showQrcode: false, | |||||
canvasHidden: false, | |||||
maskHidden: true, | |||||
imagePath: '', | |||||
appVersion: "", | |||||
showmemberqrcode: false, | |||||
placeholder: '' | |||||
}, | |||||
checkUserStatus() { | |||||
let that = this; | |||||
Http.get({ | |||||
url: config.api.checkPhoneStatus, | |||||
data: {} | |||||
}).then(res => { | |||||
}).catch(err => { | |||||
wx.navigateTo({ | |||||
url: `/pages/getphoneInfo/index?mineFlag=mine`, | |||||
}) | |||||
}) | |||||
}, | |||||
/** | |||||
* 跳转到成长值的页面 | |||||
*/ | |||||
gotograde: function() { | |||||
wx.navigateTo({ | |||||
url: '/pages/czdetail/czdetail', | |||||
}) | |||||
}, | |||||
navigateTo() { | |||||
wx.navigateTo({ | |||||
url: `/pages/main/index` | |||||
}); | |||||
}, | |||||
showVersion: function() { | |||||
/** | |||||
* 长按显示版本号 | |||||
*/ | |||||
let that = this; | |||||
if (that.data.flag == 'hidden') { | |||||
that.setData({ | |||||
flag: 'show' | |||||
}); | |||||
} | |||||
}, | |||||
gotoedit: function() { | |||||
wx.navigateTo({ | |||||
url: '/pages/edit/edit', | |||||
}) | |||||
}, | |||||
onLoad() { | |||||
this.getLocation(); | |||||
this.updateScene(); | |||||
}, | |||||
/** | |||||
* 获得经纬度 | |||||
*/ | |||||
getLocation() { | |||||
let that = this; | |||||
wx.getLocation({ | |||||
type: "wgs84", | |||||
success: function(res) { | |||||
console.log(res) | |||||
if (res && res.longitude && res.latitude) { | |||||
Http.post({ | |||||
url: config.api.updateLBS, | |||||
data: { | |||||
latitude: res.latitude, | |||||
longitude: res.longitude | |||||
} | |||||
}).then(res => { | |||||
console.log(res) | |||||
}) | |||||
} | |||||
}, | |||||
fail: error => { | |||||
console.log(error); | |||||
} | |||||
}) | |||||
}, | |||||
/** | |||||
* 用户更新scene | |||||
*/ | |||||
updateScene(){ | |||||
Http.post({ | |||||
url: config.api.updateScene, | |||||
data: { | |||||
scene: app.globalData.scene | |||||
} | |||||
}).then(res => { | |||||
console.log(res) | |||||
}) | |||||
}, | |||||
/** | |||||
* 生命周期函数--监听页面显示 | |||||
*/ | |||||
onShow: function() { | |||||
let that = this; | |||||
that.checkUserStatus(); | |||||
that.setData({ | |||||
appVersion: extConfig.appVersion, | |||||
}) | |||||
/** | |||||
* couponNum | |||||
* couponNum2 | |||||
*/ | |||||
let num = wx.getStorageSync('couponNum'); | |||||
let num1 = wx.getStorageSync('couponNum2'); | |||||
wx.hideTabBarRedDot({ | |||||
index: 3 | |||||
}); | |||||
wx.hideTabBarRedDot({ | |||||
index: 3 | |||||
}); | |||||
if (num == 'couponNum1') { | |||||
wx.setStorage({ | |||||
key: 'couponNum', | |||||
data: "couponNum1", | |||||
}) | |||||
that.setData({ | |||||
couponNum: "couponNum1" | |||||
}) | |||||
} else if (num == 'couponNum') { | |||||
that.setData({ | |||||
couponNum: "couponNum" | |||||
}) | |||||
}; | |||||
if (num1 == 'couponNum3') { | |||||
wx.setStorage({ | |||||
key: 'couponNum2', | |||||
data: "couponNum3", | |||||
}) | |||||
that.setData({ | |||||
couponNum2: "couponNum3" | |||||
}) | |||||
} else if (num1 == 'couponNum2') { | |||||
that.setData({ | |||||
couponNum2: "couponNum2" | |||||
}); | |||||
}; | |||||
Http.get({ | |||||
url: config.api.getScore, | |||||
data: {} | |||||
}).then(res => { | |||||
if (res.data.address && res.data.name && res.data.sex && res.data.birthdate) { | |||||
that.setData({ | |||||
showEdit: true | |||||
}) | |||||
} | |||||
that.setData({ | |||||
score: res.data.score, | |||||
levelName: res.data.levelName, | |||||
}) | |||||
if (res.data.nickName) { | |||||
that.setData({ | |||||
ismember: true, | |||||
memberId: res.data.id | |||||
}) | |||||
var size = this.setCanvasSize(); | |||||
var initUrl = JSON.stringify({ | |||||
flagid: res.data.id | |||||
}); | |||||
that.createQrCode(initUrl, "mycanvas1", size.w, size.h); | |||||
} | |||||
}) | |||||
.catch(err => { | |||||
wx.showModal({ | |||||
title: '提示', | |||||
content: err.errMsg, | |||||
showCancel: false | |||||
}) | |||||
}) | |||||
//暂时注释 | |||||
// that.getrun(); | |||||
}, | |||||
hideQrcode: function() { | |||||
let that = this; | |||||
that.setData({ | |||||
showQrcode: false | |||||
}) | |||||
}, | |||||
//适配不同屏幕大小的canvas | |||||
setCanvasSize: function() { | |||||
var size = {}; | |||||
try { | |||||
var res = wx.getSystemInfoSync(); | |||||
var scale = 750 / 500; | |||||
//不同屏幕下canvas的适配比例;设计稿是750宽 | |||||
var width = res.windowWidth / scale; | |||||
var height = width; | |||||
//canvas画布为正方形 | |||||
size.w = width; | |||||
size.h = height; | |||||
} catch (e) { | |||||
// Do something when catch error | |||||
console.log("获取设备信息失败" + e); | |||||
} | |||||
return size; | |||||
}, | |||||
createQrCode: function(url, canvasId, cavW, cavH) { | |||||
//调用插件中的draw方法,绘制二维码图片 | |||||
QR.api.draw(url, canvasId, cavW, cavH); | |||||
}, | |||||
qrcode: function(e) { | |||||
var that = this; | |||||
that.setData({ | |||||
showQrcode: true | |||||
}) | |||||
wx.showToast({ | |||||
title: '生成中...', | |||||
icon: 'loading', | |||||
duration: 2000 | |||||
}); | |||||
var st = setTimeout(function() { | |||||
wx.hideToast() | |||||
var size = that.setCanvasSize(); | |||||
var url = JSON.stringify({ | |||||
END: "C", | |||||
TYPE: "memberCode", | |||||
ID: that.data.memberId, | |||||
}) | |||||
that.createQrCode(url, "mycanvas1", size.w, size.h); | |||||
that.setData({ | |||||
maskHidden: true | |||||
}); | |||||
clearTimeout(st); | |||||
}, 1000) | |||||
}, | |||||
close: function() { | |||||
this.setData({ | |||||
showmemberqrcode: false, | |||||
}) | |||||
} | |||||
}); | |||||
Component({ | |||||
pageLifetimes: { | |||||
show() { | |||||
if (typeof this.getTabBar === 'function' && | |||||
this.getTabBar()) { | |||||
this.getTabBar().setData({ | |||||
selected: 0 | |||||
}) | |||||
} | |||||
} | |||||
} | |||||
}) |
@@ -0,0 +1,9 @@ | |||||
{ | |||||
"usingComponents": { | |||||
"i-button": "../../dist/button/index", | |||||
"navbar": "../../components/navbar/navbar" | |||||
}, | |||||
"navigationBarBackgroundColor": "#FD832D", | |||||
"navigationBarTextStyle": "white", | |||||
"disableScroll": true | |||||
} |
@@ -0,0 +1,104 @@ | |||||
<navbar text="我的" background='#FD832D' color="white"></navbar> | |||||
<view class="user" style="padding-top:{{navigationBarHeight}};"> | |||||
<view class="top" style='background:{{banneColor}}'></view> | |||||
<view class="top-content"> | |||||
<view class='user_title '> | |||||
<view class="user-avatar" bindtap='gotoedit'> | |||||
<open-data class="open" type="userAvatarUrl"></open-data> | |||||
</view> | |||||
<view class="user-name" bindtap='gotoedit'> | |||||
<open-data class="name" type="userNickName" ></open-data> | |||||
<view class=' usre_level'style='background:{{levelBg}}'> | |||||
<text class='chengzhang '>{{levelName}}</text> | |||||
</view> | |||||
</view> | |||||
<view class="user-phone" bindtap='gotograde'> | |||||
<text class="my">我的</text> | |||||
<text class="chengzhang_h" >成长值{{score}}</text> | |||||
<text class="my my_line">|</text> | |||||
<!-- <text class="my">更多成长值</text> --> | |||||
<text class="view" style='color:{{view}}'>更多成长值</text> | |||||
</view> | |||||
<view class="user-btns"> | |||||
<!-- 我的订单 --> | |||||
<navigator url="/pages/order/index/index?id=all"> | |||||
<view class="user-btn app-border-bottom"> | |||||
<view> | |||||
<image class='icons' src="{{dingUrl}}" mode='widthFix'></image>我的订单</view> | |||||
</view> | |||||
</navigator> | |||||
<!-- 我的券包 --> | |||||
<navigator url="/pages/couponorder/index/index"> | |||||
<view class="user-btn app-border-bottom"> | |||||
<view> | |||||
<image class='icons' src="{{quansUrl}}" mode='widthFix'></image>我的券包</view> | |||||
<view> | |||||
<text class="couponnum" wx:if="{{couponNum=='couponNum'}}"></text> | |||||
</view> | |||||
</view> | |||||
</navigator> | |||||
<navigator url="/pages/cardorder/index/index"> | |||||
<view class="user-btn app-border-bottom"> | |||||
<view> | |||||
<image class='icons' src="{{cardiconUrl}}" mode='widthFix'></image>我的卡包</view> | |||||
<view> | |||||
<text class="couponnum" wx:if="{{couponNum2=='couponNum2'}}"></text> | |||||
</view> | |||||
</view> | |||||
</navigator> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view class='btns_bg'> | |||||
<view class="user-btns"> | |||||
<!-- 我的砍价 --> | |||||
<navigator url="/pages/bargain/bargain?from=myhtml" open-type="navigate"> | |||||
<view class="user-btn app-border-bottom"> | |||||
<view> | |||||
<image class='icons' src="{{wmbarginicon}}" mode='widthFix'></image>我的砍价</view> | |||||
</view> | |||||
</navigator> | |||||
<!-- 我的拼团 --> | |||||
<navigator url="/pages/spellGroup/spellGroup?from=myhtml" open-type="navigate"> | |||||
<view class="user-btn app-border-bottom"> | |||||
<view> | |||||
<image class='icons' src="{{wmspellgroup}}" mode='widthFix'></image>我的拼团</view> | |||||
</view> | |||||
</navigator> | |||||
<!-- 积分商城 --> | |||||
<navigator url="/pages/integralmall/index"> | |||||
<view class="user-btn app-border-bottom"> | |||||
<view> | |||||
<image class='icons' src="{{wmintegral}}" mode='widthFix'></image>积分商城</view> | |||||
</view> | |||||
</navigator> | |||||
<!-- 当商场开启使用折扣按钮的时候, --> | |||||
<navigator url="/pages/specialcourtesy/specialcourtesy"> | |||||
<view class="user-btn app-border-bottom"> | |||||
<view> | |||||
<image class='icons' src="{{giftUrl}}" mode='widthFix'></image>特享礼遇</view> | |||||
</view> | |||||
</navigator> | |||||
<navigator url="/pages/user/myactivity/index" open-type="navigate"> | |||||
<view class="user-btn app-border-bottom"> | |||||
<view> | |||||
<image class='icons' src="{{myactivity}}" mode='widthFix'></image>我的活动</view> | |||||
</view> | |||||
</navigator> | |||||
</view> | |||||
</view> | |||||
<view class="margin"></view> | |||||
<view bindlongtap='showVersion' class='version'> | |||||
<view wx:if="{{flag=='show'}}">版本号:{{appVersion}}</view> | |||||
<view wx:if="{{flag=='hidden'}}"></view> | |||||
</view> | |||||
<view class='of' wx:if="{{canIUse}}"> | |||||
<official-account class="gzh"></official-account> | |||||
</view> | |||||
</view> | |||||
<view class='showQrcode' bindtap='hideQrcode' wx:if="{{showQrcode}}"> | |||||
<view class="canvas-box"> | |||||
<canvas hidden="{{canvasHidden}}" style="height:500rpx;background:0 0 0 .6;margin-top:10rpx;" canvas-id="mycanvas1" /> | |||||
<text class='memberIds'>会员ID{{memberId}}</text> | |||||
</view> | |||||
</view> |
@@ -0,0 +1,392 @@ | |||||
page{ | |||||
overflow-y:visible!important; | |||||
height: 100%!important; | |||||
background: #f6f6f6; | |||||
} | |||||
.icons { | |||||
display: block; | |||||
width: 50rpx; | |||||
margin: 0 auto 10rpx; | |||||
} | |||||
.navigator-hover { | |||||
opacity: 1 !important; | |||||
background: #fff; | |||||
} | |||||
.version { | |||||
position: absolute; | |||||
right: 0; | |||||
width: 307rpx; | |||||
height: 50rpx; | |||||
bottom: 0; | |||||
text-align: center; | |||||
font-size: 15rpx; | |||||
color: #999; | |||||
} | |||||
.couponnum { | |||||
display: inline-block; | |||||
position: absolute; | |||||
top: 39rpx; | |||||
bottom: 0; | |||||
right: 20px; | |||||
width: 16rpx; | |||||
height: 16rpx; | |||||
border-radius: 50%; | |||||
background: red; | |||||
font-size: 22rpx; | |||||
} | |||||
.user-avatar open-data { | |||||
display: block; | |||||
width: 100%; | |||||
height: 100%; | |||||
} | |||||
.user-name{ | |||||
font-family: PingFangSC-Medium; | |||||
height: 42rpx; | |||||
margin-top:66rpx; | |||||
letter-spacing: 0.64rpx; | |||||
line-height: 44rpx; | |||||
font-size: 30rpx; | |||||
color: #3C3C3C; | |||||
font-weight:600; | |||||
display: flex; /*设置显示样式**/ | |||||
align-items: center; /**子view垂直居中*/ | |||||
vertical-align: center; /**垂直居中*/ | |||||
justify-content: center; /**内容居中*/ | |||||
flex-direction: row; | |||||
} | |||||
.user-phone { | |||||
font-family: PingFangSC-Regular; | |||||
letter-spacing: 0.64rpx; | |||||
line-height: 44rpx; | |||||
font-size: 36rpx; | |||||
color: #000; | |||||
padding:20rpx; | |||||
text-align: center; | |||||
} | |||||
.user-avatar { | |||||
position: absolute; | |||||
width: 128rpx; | |||||
height: 128rpx; | |||||
border-radius: 50%; | |||||
overflow: hidden; | |||||
top:-64rpx; | |||||
left: 300rpx; | |||||
} | |||||
.chengzhang { | |||||
font-size: 24rpx; | |||||
font-weight: 400; | |||||
color: #FFFFFF; | |||||
padding: 0 8rpx; | |||||
} | |||||
.view { | |||||
font-size: 24rpx; | |||||
} | |||||
.view image { | |||||
width: 12rpx; | |||||
vertical-align: middle; | |||||
margin-top: -6rpx; | |||||
} | |||||
.bannerbg { | |||||
width: 100%; | |||||
} | |||||
.bannerbg image { | |||||
display: block; | |||||
width: 100%; | |||||
} | |||||
.open01 { | |||||
display: block; | |||||
width: 120rpx; | |||||
height: 120rpx; | |||||
} | |||||
.user-btns{ | |||||
background: #fff; | |||||
display: flex; | |||||
text-align: center; | |||||
flex-wrap: wrap; | |||||
} | |||||
.user-btns navigator{ | |||||
width: 33.3%; | |||||
height: 160rpx; | |||||
} | |||||
.user-btns:nth-of-type(3){ | |||||
margin-bottom: 0; | |||||
} | |||||
.user-btns .user-btn { | |||||
font-size: 30rpx; | |||||
letter-spacing: 1.16rpx; | |||||
} | |||||
.top-content{ | |||||
width: 100%; | |||||
height: auto; | |||||
} | |||||
.user_title{ | |||||
position: relative; | |||||
width: 94%; | |||||
background: #fff; | |||||
border-radius: 16rpx; | |||||
margin: -100rpx auto 0; | |||||
padding: 10rpx 0; | |||||
box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.10); | |||||
} | |||||
.btns_bg{ | |||||
width: 94%; | |||||
background: #fff; | |||||
border-radius: 16rpx; | |||||
margin: 30rpx auto 0; | |||||
padding: 20rpx 0; | |||||
box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.10); | |||||
} | |||||
.user-btns .user-btn > view { | |||||
padding: 20rpx 10px ; | |||||
font-size: 28rpx; | |||||
color: #888; | |||||
letter-spacing: 1.16rpx; | |||||
text-align: center; | |||||
} | |||||
.iconfont { | |||||
position: absolute; | |||||
right: 0; | |||||
top: 0; | |||||
bottom: 0; | |||||
width: 30rpx; | |||||
height: 30rpx; | |||||
line-height: 44rpx; | |||||
color: #c7c7cc; | |||||
font-size: 44rpx; | |||||
margin: auto; | |||||
} | |||||
.look { | |||||
display: inline-block; | |||||
padding-right: 25rpx; | |||||
} | |||||
.user-out-btn { | |||||
background-color: #fff; | |||||
height: 100rpx; | |||||
line-height: 100rpx; | |||||
font-family: PingFangSC-Semibold; | |||||
font-size: 30rpx; | |||||
color: #000; | |||||
text-align: center; | |||||
border-radius: 0; | |||||
border: none; | |||||
} | |||||
.user-out-btn.button-hover { | |||||
background-color: rgba(237, 237, 237, 1); | |||||
} | |||||
.user-out-btn::after { | |||||
opacity: 0; | |||||
} | |||||
.gzh button::after { | |||||
border: none!important; | |||||
} | |||||
.gzh { | |||||
width: 100%; | |||||
height: 170rpx; | |||||
z-index: 10; | |||||
background: #fff; | |||||
border-radius: 16rpx; | |||||
overflow: hidden; | |||||
box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.15); | |||||
} | |||||
.act { | |||||
display: none; | |||||
} | |||||
.of { | |||||
width: 90%; | |||||
margin: 30rpx auto; | |||||
height: auto; | |||||
background: #fff; | |||||
border-radius: 16rpx; | |||||
overflow: hidden; | |||||
box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.15); | |||||
} | |||||
.activeimg { | |||||
width: 200rpx !important; | |||||
position: absolute; | |||||
bottom: 0; | |||||
right: 0; | |||||
z-index: 10000; | |||||
} | |||||
.edit { | |||||
width: 26rpx; | |||||
vertical-align: middle; | |||||
} | |||||
.qrcode{ | |||||
display: none; | |||||
} | |||||
.qrcode image { | |||||
width: 70rpx; | |||||
margin-right: 20rpx; | |||||
} | |||||
.edits { | |||||
margin-top: 44rpx; | |||||
} | |||||
.showQrcode { | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
right: 0; | |||||
bottom: 0; | |||||
z-index: 1000; | |||||
background: rgba(0, 0, 0, 0.6); | |||||
} | |||||
.qrcodes { | |||||
position: absolute; | |||||
width: 400rpx; | |||||
height: 440rpx; | |||||
top: 0; | |||||
left: 0; | |||||
right: 0; | |||||
bottom: 0; | |||||
border-radius: 15rpx; | |||||
margin: auto; | |||||
background: #fff; | |||||
text-align: center; | |||||
} | |||||
.qrcodes text { | |||||
text-align: center; | |||||
font-size: 26rpx; | |||||
display: inline-block; | |||||
line-height: 40rpx; | |||||
} | |||||
.container-box { | |||||
width: 100%; | |||||
height: 100%; | |||||
background: 0 0 0 0.6; | |||||
position: relative; | |||||
} | |||||
.img-box { | |||||
width: 500rpx; | |||||
margin: 200rpx auto 0; | |||||
background-color: #fff; | |||||
border-radius: 16rpx; | |||||
} | |||||
.img-box text { | |||||
display: block; | |||||
text-align: center; | |||||
font-size: 28rpx; | |||||
} | |||||
.img-box image { | |||||
display: block; | |||||
width: 500rpx; | |||||
} | |||||
.input-row { | |||||
border-bottom: 1rpx solid #e5e5e5; | |||||
border-top: 1rpx solid #e5e5e5; | |||||
display: flex; | |||||
align-items: center; | |||||
height: 100rpx; | |||||
padding: 0 32rpx; | |||||
background-color: #fff; | |||||
font-size: 34rpx; | |||||
color: #000; | |||||
} | |||||
.input-row input { | |||||
margin-left: 100rpx; | |||||
flex: 1; | |||||
} | |||||
.mybtn { | |||||
width: 686rpx; | |||||
margin: 60rpx auto; | |||||
} | |||||
.mask { | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
z-index: 3; | |||||
width: 100%; | |||||
height: 100%; | |||||
opacity: 0; | |||||
} | |||||
.canvas-box { | |||||
position: fixed; | |||||
width: 500rpx; | |||||
height: 587rpx; | |||||
overflow: hidden; | |||||
left: 0; | |||||
top: 0; | |||||
bottom: 0; | |||||
right: 0; | |||||
margin: auto; | |||||
background: #fff; | |||||
border-radius: 16rpx; | |||||
} | |||||
.showQrcode text{ | |||||
display: block; | |||||
text-align: center; | |||||
font-size: 28rpx; | |||||
} | |||||
.membercode { | |||||
margin-top: 20rpx; | |||||
} | |||||
.top{ | |||||
width: 100%; | |||||
height: 234rpx; | |||||
} | |||||
.usre_level{ | |||||
height:32rpx; | |||||
border-radius:9px 9px 9px 0px; | |||||
font-family:PingFangSC-Regular; | |||||
font-weight:400; | |||||
color:rgba(255,255,255,1); | |||||
line-height:32rpx; | |||||
float: left; | |||||
margin-top: 8rpx; | |||||
} | |||||
.my{ | |||||
font-size:24rpx; | |||||
font-family:PingFangSC-Regular; | |||||
font-weight:400; | |||||
color:rgba(166,166,166,1); | |||||
line-height:34rpx; | |||||
} | |||||
.chengzhang_h{ | |||||
color: #3C3C3C; | |||||
font-size:24rpx; | |||||
font-weight: 600; | |||||
} | |||||
.my_line{ | |||||
margin: 0 10rpx; | |||||
} | |||||
.usre_level{ | |||||
font-size:20rpx; | |||||
} | |||||
.name{ | |||||
float: left; | |||||
} |