| @@ -1,6 +1,10 @@ | |||
| { | |||
| "pages": [ | |||
| "pages/index/index", | |||
| "index/index", | |||
| "index/searchbar", | |||
| "index/passCar", | |||
| "index/user", | |||
| "pages/integralmall/integraHistory/index", | |||
| "pages/integralmall/payIntegcouponStatus/index", | |||
| "pages/integralmall/payIntegcoupondetail/index", | |||
| @@ -13,8 +17,6 @@ | |||
| "pages/complete/index", | |||
| "pages/topicDetail/index", | |||
| "pages/acSignIn/index", | |||
| "pages/main/index", | |||
| "pages/index/searchbar/index", | |||
| "pages/index/merchantList/index", | |||
| "pages/index/searchbar/detail/index", | |||
| "pages/bargain/bargainDatail/bargainDatail", | |||
| @@ -27,7 +29,6 @@ | |||
| "pages/bannerdetail/index", | |||
| "pages/getuserinfo/index", | |||
| "pages/phoneinput/phoneinput", | |||
| "pages/user/index", | |||
| "pages/user/myactivity/index", | |||
| "pages/coupon/detail/index", | |||
| "pages/rushToBuy/index", | |||
| @@ -38,7 +39,6 @@ | |||
| "pages/order/detail/index", | |||
| "pages/order/index/index", | |||
| "pages/ques/ques", | |||
| "pages/passCar/passCar", | |||
| "pages/getphoneInfo/index", | |||
| "pages/addPark/addPark", | |||
| "pages/orderquanma/index", | |||
| @@ -72,33 +72,35 @@ | |||
| "tabBar": { | |||
| "color": "#abb1be", | |||
| "selectedColor": "#FD782D", | |||
| "custom": true, | |||
| "list": [ | |||
| { | |||
| "pagePath": "pages/main/index", | |||
| "pagePath": "index/index", | |||
| "iconPath": "assets/images/home.png", | |||
| "selectedIconPath": "assets/images/home-a.png", | |||
| "text": "首页" | |||
| }, | |||
| { | |||
| "pagePath": "pages/index/searchbar/index", | |||
| "pagePath": "index/searchbar", | |||
| "iconPath": "assets/images/mendian.png", | |||
| "selectedIconPath": "assets/images/mendian-a.png", | |||
| "text": "门店" | |||
| }, | |||
| { | |||
| "pagePath": "pages/passCar/passCar", | |||
| "pagePath": "index/passCar", | |||
| "iconPath": "assets/images/park.png", | |||
| "selectedIconPath": "assets/images/park-a.png", | |||
| "text": "停车" | |||
| }, | |||
| { | |||
| "pagePath": "pages/user/index", | |||
| "pagePath": "index/user", | |||
| "iconPath": "assets/images/user.png", | |||
| "selectedIconPath": "assets/images/user-a.png", | |||
| "text": "我的" | |||
| } | |||
| ] | |||
| }, | |||
| "usingComponents": {}, | |||
| "window": { | |||
| "backgroundTextStyle": "dark", | |||
| "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", | |||
| "etcpCallbackUrl": "https://ciformall.youlane.cn/api/carCallback/etcpPaidCallback", | |||
| "ifHaveWebSocket": "0", | |||
| "ifStoreApp": "1", | |||
| "ifHaveCarModular": "1" | |||
| }, | |||
| "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; | |||
| } | |||