| @@ -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; | |||||
| } | |||||