commit 06b691e42ef5cc67019ab1c0863afbe17beac1a2
Author: 张慢慢 <994797151@qq.com>
Date: Mon May 24 13:47:10 2021 +0800
[更新上传]
diff --git a/亿时代-本时生活-2021-04-13/本时生活/.gitignore b/亿时代-本时生活-2021-04-13/本时生活/.gitignore
new file mode 100644
index 0000000..14ea590
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/.gitignore
@@ -0,0 +1,14 @@
+# Windows
+[Dd]esktop.ini
+Thumbs.db
+$RECYCLE.BIN/
+
+# macOS
+.DS_Store
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+
+# Node.js
+node_modules/
diff --git a/亿时代-本时生活-2021-04-13/本时生活/.vscode/settings.json b/亿时代-本时生活-2021-04-13/本时生活/.vscode/settings.json
new file mode 100644
index 0000000..3b66410
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "git.ignoreLimitWarning": true
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/api/err.js b/亿时代-本时生活-2021-04-13/本时生活/api/err.js
new file mode 100644
index 0000000..cee8984
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/api/err.js
@@ -0,0 +1,54 @@
+
+/**
+ * 处理错误信息
+ * @property {Object} errInfo
+ */
+
+const errInfo = (obj) =>{
+ if(obj.status_code == 401){
+ wx.showModal({
+ title : "登录提示",
+ content : "长时间未操作,登录已过期,请重新登录",
+ showCancel : false,
+ confirmColor: "#0b0041",
+ confirmText : "确定",
+ success : ()=>{
+ // 清理客户端登录缓存
+ wx.removeStorageSync("token")
+ // 返回首页
+ wx.redirectTo({
+ url: "/pages/index/index",
+ })
+ }
+ })
+ }else if(obj.status_code == 422){
+ wx.showToast({
+ title: obj.message,
+ icon : "none"
+ })
+ }else if(obj.status_code == 400 || obj.status_code == 0){
+ wx.showToast({
+ title: obj.message,
+ icon : "none"
+ })
+ }else if(obj.status_code == 404){
+ wx.showToast({
+ title: "接口地址不存在,请联系系统管理员",
+ icon : "none"
+ })
+ }else if(obj.status_code == 500){
+ wx.showToast({
+ title: "服务端:" + obj.message,
+ icon : "none"
+ })
+ }else {
+ wx.showToast({
+ title: "code:" + obj.status_code + ", msg:" + obj.message,
+ icon : "none"
+ })
+ }
+}
+
+module.exports = {
+ errInfo
+}
diff --git a/亿时代-本时生活-2021-04-13/本时生活/api/index.js b/亿时代-本时生活-2021-04-13/本时生活/api/index.js
new file mode 100644
index 0000000..094cfe5
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/api/index.js
@@ -0,0 +1,29 @@
+
+/*
+ * 亿时代 v1.0.0 (2020-07-02 09:25:32)
+ *https://card.ysd-bs.com/api/
+ */
+
+// 首页
+import index from "./interfaces/index"
+
+// 授权登录
+import enroll from "./interfaces/enroll"
+
+// 个人中心
+import user from "./interfaces/user"
+
+// 地址管理
+import address from "./interfaces/address"
+
+// 兑换订单
+import exchange from "./interfaces/exchange"
+
+
+export default{
+ index,
+ enroll,
+ user,
+ address,
+ exchange
+}
diff --git a/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/address.js b/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/address.js
new file mode 100644
index 0000000..93a8e76
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/address.js
@@ -0,0 +1,39 @@
+
+import {req} from "../request"
+
+//我的地址列表
+const index = () => req({url: "addresses"})
+
+//获取省
+const create = () => req({url: "addresses/create"})
+
+// 获取市级列表
+const children = (psn) => req({url: "areas/children", data: {psn: psn}})
+
+// 获取已有地址信息
+const edit = (addressId) => req({url: "addresses/" + addressId + '/edit'})
+
+
+// 创建地址保存
+const add = (name, mobile, province_id, city_id, district_id, address, def) => req({url: "addresses/store", method: "POST", data: {name: name, mobile: mobile, province_id: province_id, city_id: city_id, district_id: district_id, address: address, def: def}})
+
+// 编辑地址保存
+const keep = (addressId,name, mobile, province_id, city_id, district_id, address) => req({url: "addresses/" + addressId + '/update', method: "POST", data: {name: name, mobile: mobile, province_id: province_id, city_id: city_id, district_id: district_id, address: address}})
+
+// 设为默认地址
+const setdef = (addressId) => req({url: "addresses/" + addressId + '/setdef', method: "POST"})
+
+// 删除地址
+const remove = (addressId) => req({url: "addresses/" + addressId + '/destroy', method: "DELETE"})
+
+
+export default({
+ index,
+ create,
+ children,
+ edit,
+ add,
+ keep,
+ setdef,
+ remove
+})
diff --git a/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/enroll.js b/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/enroll.js
new file mode 100644
index 0000000..0805d56
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/enroll.js
@@ -0,0 +1,18 @@
+
+import {req} from "../request"
+
+//微信授权登录
+const record = (code, iv, encryptedData) => req({url: "auth/openwx", method: "POST", data: {code: code, iv: iv, encryptedData: encryptedData}})
+
+//微信手机授权
+const bindmobile = (code, iv, mobile) => req({url: "auth/bindmobile", method: "POST", data: {code: code, iv: iv, mobile: mobile}})
+
+//切换手机授权
+const tel = (wechatUser_id, username) => req({url: "auth/loginbymobile", method: "POST", data: {wechatUser_id: wechatUser_id,username: username}})
+
+
+export default({
+ record,
+ bindmobile,
+ tel
+})
diff --git a/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/exchange.js b/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/exchange.js
new file mode 100644
index 0000000..e390db9
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/exchange.js
@@ -0,0 +1,21 @@
+
+import {req} from "../request"
+
+//兑换订单列表
+const index = (type) => req({url: "orders/index", data: {type: type}})
+
+//兑换订单详情
+const show = (orderid) => req({url: "orders/show?", data: {orderid: orderid}})
+
+//取消兑换订单
+const cancel = (orderid) => req({url: "orders/cancel?orderid=" + orderid , method: "POST"})
+
+//兑换订单支付
+const payments = (orderid) => req({url: "payments/order?orderid=" + orderid})
+
+export default({
+ index,
+ show,
+ cancel,
+ payments
+})
diff --git a/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/index.js b/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/index.js
new file mode 100644
index 0000000..30037ff
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/index.js
@@ -0,0 +1,97 @@
+
+import {req} from "../request"
+
+//首页权益
+const index = (area_name, user_lng, user_lat) => req({url: "home", data: {area_name: area_name, user_lng: user_lng, user_lat:user_lat}})
+
+//白金+钻石权益
+const choice = (type, area_name, user_lng, user_lat) => req({url: "home/group", data: {type: type,area_name: area_name, user_lng: user_lng, user_lat:user_lat}})
+
+//权益分类
+const classify = (category_id) => req({url: "categories/" + category_id})
+
+//周五福利详情
+const welfares = (welfare_id) => req({url: "welfare/" + welfare_id})
+
+//市区选择
+const idxCity = (province_id) => req({url: "areas/citys?province_id=" + province_id || ''})
+
+//活动商品列表
+const redwine = () => req({url: "redwine/index"})
+
+//活动商品详情
+const redwinePay = (goodId) => req({url: "redwine/" + goodId + "/pay", method: "POST"})
+
+//活动商品订单提交
+const payment = (good_id, param_id, address_id, islogistics) => req({url: "redwine/payment", method: "POST", data: {good_id: good_id, param_id: param_id, address_id: address_id, islogistics: islogistics}})
+
+//活动商品订单
+const activityOrder = (type, page) => req({url: "activity/orders", data: {type: type, page: page}})
+
+//活动商品取消订单
+const cance = (orderId) => req({url: "activity/orders/" + orderId + '/cancel', method: "POST"})
+
+//活动商品支付订单
+const repay = (orderId) => req({url: "redwine/" + orderId + '/repay', method: "POST"})
+
+//活动商品订单详情
+const ordersInfo = (orderId) => req({url: "activity/orders/" + orderId + '/info', method: "POST"})
+
+// 权益详情
+const rightShow = (right_id, address_id, num, is_deliver) => req({url: "orders/create/", data: {right_id: right_id, address_id: address_id || '', num: num || '', is_deliver: is_deliver}})
+
+// 权益购买提交
+const rightStore = (right_id, address_id, is_deliver, qty) => req({url: "orders/store/", method: "POST", data: {right_id: right_id, address_id: address_id || '', is_deliver: is_deliver, qty: qty || ''}})
+
+// 微信权益购买信息
+const wechat = (trade_no) => req({url: "payments/wechat?",method: "POST", data: {trade_no: trade_no}})
+
+// 沃支付权益购买信息
+const wopay = (trade_no) => req({url: "unicom/buy?", data: {trade_no: trade_no}})
+
+//获取openid地址-web
+const unionpay = (callback_url, callback_type, right_id) => req({url: "unionpay/openid", data: {callback_url: callback_url, callback_type: callback_type, right_id: right_id}})
+
+//领取权益优惠券
+const receiveCode = (openid, event_no, right_id) => req({url: "unionpay/code", data: {openid: openid, event_no: event_no, right_id: right_id}})
+
+//领取权益优惠券
+const unionCode = (openid) => req({url: "unionpay/union_openid", data: {openid: openid}, method: "POST"})
+
+//所有城市-最新无字母
+const newCity = () => req({url: "ajax/all_right_citys"})
+
+//市区选择-最新无字母
+const newidxCity = (code) => req({url: "ajax/all_right_children", data: {code: code}})
+
+//周五福利-获取支付信息
+const fridayInfo = (orderId) => req({url: "welfare/order/" + orderId})
+
+//周五福利-支付
+const fridayPay = (trade_no) => req({url: "payments/welfare/wechat",method: "POST", data: {trade_no: trade_no}})
+
+export default({
+ index,
+ choice,
+ classify,
+ welfares,
+ idxCity,
+ redwine,
+ redwinePay,
+ payment,
+ activityOrder,
+ cance,
+ repay,
+ ordersInfo,
+ rightShow,
+ rightStore,
+ wechat,
+ wopay,
+ unionpay,
+ receiveCode,
+ unionCode,
+ newCity,
+ newidxCity,
+ fridayInfo,
+ fridayPay
+})
diff --git a/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/user.js b/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/user.js
new file mode 100644
index 0000000..60925c3
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/api/interfaces/user.js
@@ -0,0 +1,73 @@
+
+import {req} from "../request"
+
+//用户信息
+const index = () => req({url: "user"})
+
+//切换用户登录
+const mobiles = () => req({url: "user/mobiles"})
+
+//卡券
+const coupon = (status) => req({url: "coupons?status=" + status})
+
+//卡券分组
+const couponArr = (activityId, status, page) => req({url: "coupons/list", data:{activityId : activityId, status : status, page : page}})
+
+//卡券详情
+const couponinfo = (coupon_id, user_lng, user_lat) => req({url: "coupons/show", data:{coupon_id : coupon_id, user_lng : user_lng, user_lat : user_lat}})
+
+//卡券二维码
+const qrcode = (coupon_id) => req({url: "coupons/qrcode", data:{coupon_id : coupon_id}})
+
+//卡券二维码
+const barcode = (coupon_id) => req({url: "coupons/" + coupon_id + '/barcode'})
+
+//门店列表
+const stores = (coupon_id, province_id, city_id, district_id, title, user_lng, user_lat, page) => req({url: "coupons/new_stores", method: "POST", data:{coupon_id : coupon_id, province_id : province_id || '', city_id : city_id || '', district_id : district_id || '', title : title || '', user_lng : user_lng, user_lat : user_lat, page : page}})
+
+//门店详情
+const storesShow = (store_id, user_lng, user_lat) => req({url: "coupons/store/show", data:{store_id : store_id, user_lng : user_lng, user_lat : user_lat}})
+
+//省市区
+const areas = (psn) => req({url: "areas/children?psn=" + psn})
+
+// 加入微信卡包
+const jssdk = (coupon_id) => req({url: "coupons/jssdk?coupon_id=" + coupon_id})
+
+// 积分卡激活
+const cards = (code, pass) => req({url: "user/cards/activate", method: "POST", data:{code : code, pass : pass}})
+
+// 积分账变记录
+const logs = (type, page) => req({url: "account/logs", data:{type : type, page : page}})
+
+// 冻结列表
+const ungrants = (type,) => req({url: "account/ungrants", data:{type : type}})
+
+// 发送短信
+const send = (mobile, channel, type) => req({url: "sms/send", method: "POST", data:{mobile : mobile, channel : channel, type : type}})
+
+// 领取红包
+const unicom = (mobile, channel, code) => req({url: "unicom/get", method: "POST", data:{mobile : mobile, channel : channel, code : code}})
+
+// 获取商家券信息
+const merchant_card = (coupon_id) => req({url: "coupons/merchant_card", method: "GET", data:{coupon_id : coupon_id}})
+
+export default({
+ index,
+ mobiles,
+ coupon,
+ couponArr,
+ couponinfo,
+ qrcode,
+ barcode,
+ stores,
+ storesShow,
+ areas,
+ jssdk,
+ cards,
+ logs,
+ ungrants,
+ send,
+ unicom,
+ merchant_card
+})
diff --git a/亿时代-本时生活-2021-04-13/本时生活/api/request.js b/亿时代-本时生活-2021-04-13/本时生活/api/request.js
new file mode 100644
index 0000000..7365d7c
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/api/request.js
@@ -0,0 +1,66 @@
+import {errInfo} from './err'
+import {updToken} from './updateToken'
+
+// 请求方式配置
+// https://card.ysd-bs.com
+const api = "https://lifetest.ysd-bs.com/api/" //正式地址
+const header = {
+ "Accept" : "application/json"
+}
+
+/**
+ * 请求
+ * @property {Object} req
+ */
+
+const req = (obj) => {
+ // header
+ if(obj.token){
+ header.Authorization = obj.token || ''
+ } else {
+ header.Authorization = wx.getStorageSync("token") || ""
+ }
+
+ // 处理请求信息
+ return new Promise((resolve, reject) => {
+ // 组合header
+ obj.header = {
+ "Accept" : "application/json",
+ "Authorization" : wx.getStorageSync("token") || ""
+ }
+
+ wx.request({
+ url : api + obj.url,
+ header : obj.header || {},
+ method : obj.method || 'GET',
+ data : obj.data || {},
+ success : res => {
+ // 更新token
+ if (res.header.Authorization) updToken(res.header.Authorization)
+ // 处理信息
+ if (res.data.status_code == 200) {
+ resolve(res.data)
+ } else {
+ if (res.data.status_code == 401 || res.data.status_code == 400) {
+ reject({
+ login : false,
+ codeBeen: false
+ })
+ }
+ errInfo(res.data)
+ }
+ },
+ fail: err => {
+ wx.showToast({
+ title : err.errMsg,
+ icon : "none"
+ })
+ reject(err)
+ }
+ })
+ })
+}
+
+module.exports = {
+ req
+}
diff --git a/亿时代-本时生活-2021-04-13/本时生活/api/updateToken.js b/亿时代-本时生活-2021-04-13/本时生活/api/updateToken.js
new file mode 100644
index 0000000..8207d76
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/api/updateToken.js
@@ -0,0 +1,17 @@
+
+/**
+ * 更新token
+ * @property {String} updToken
+ */
+
+const updToken = (token) =>{
+ // 更新全局存储器
+ getApp().globalData.token = token
+ // 更新客户端登录缓存
+ wx.setStorageSync('token', token)
+}
+
+module.exports = {
+ updToken
+}
+
diff --git a/亿时代-本时生活-2021-04-13/本时生活/app.js b/亿时代-本时生活-2021-04-13/本时生活/app.js
new file mode 100644
index 0000000..b567e1d
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/app.js
@@ -0,0 +1,70 @@
+
+/*
+ * 亿时代
+ */
+
+import api from "api/index"
+
+var QQMapWX = require('utils/qqmap-wx-jssdk.min.js');
+var qqmapsdk;
+
+App({
+ onLaunch() {
+ // 获取系统信息
+ this.globalData.statusBarHeight = wx.getSystemInfoSync().statusBarHeight
+
+ // 检查用户登录状态
+ const token = wx.getStorageSync("token")
+ if (token) {
+ this.globalData.isUser = true
+ }
+
+ this.qqmapsdk = new QQMapWX({
+ key: '4KYBZ-LCAKF-QWOJN-NIDNZ-FZHLZ-2XFW7'
+ })
+
+ // 版本更新提示
+ const updateManager = wx.getUpdateManager()
+
+ updateManager.onUpdateReady(function () {
+ wx.showModal({
+ title : "更新提示",
+ content : "新版本已经准备好,是否重启应用?",
+ confirmText : "重启",
+ cancelColor : "#555",
+ confirmColor: "#26589f",
+ success: res => {
+ if (res.confirm) {
+ updateManager.applyUpdate()
+ }
+ }
+ })
+ })
+
+
+ // 获取系统信息
+ wx.getSystemInfo({
+ success: res=>{
+ this.globalData.systInfo = {
+ statusBarHeight: res.statusBarHeight,
+ safeArea : res.safeArea
+ }
+ }
+ })
+ // 挂载api
+ wx.$api = api
+ },
+ globalData: {
+ isUser : false,
+ userInfo : null,
+ token : "",
+ statusBarHeight : 0,
+ userCurrent : 0,
+ wechatUser : '',
+ city : "",
+ atcity : "",
+ adcode : '',
+ longitude : '',
+ latitude : ''
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/app.json b/亿时代-本时生活-2021-04-13/本时生活/app.json
new file mode 100644
index 0000000..b0928fd
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/app.json
@@ -0,0 +1,68 @@
+{
+ "pages": [
+ "pages/index/index",
+ "pages/user/user",
+ "pages/coupon/coupon",
+ "pages/couponDetails/couponDetails",
+ "pages/store/store",
+ "pages/storeDetails/storeDetails",
+ "pages/chooseTel/chooseTel",
+ "pages/login/login",
+ "pages/couponArr/couponArr",
+ "pages/rights/rights",
+ "pages/activity/activity",
+ "pages/activityInfo/activityInfo",
+ "pages/address/address",
+ "pages/address_form/address_form",
+ "pages/activityOrder/activityOrder",
+ "pages/activityData/activityData",
+ "pages/order/order",
+ "pages/orderData/orderData",
+ "pages/activate/activate",
+ "pages/account/account",
+ "pages/switchcity/switchcity",
+ "pages/webView/webView",
+ "pages/packet/packet",
+ "pages/frozen/frozen",
+ "pages/welfare/welfare",
+ "pages/classify/classify"
+ ],
+ "window": {
+ "backgroundTextStyle": "light",
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTitleText": "亿时代",
+ "navigationBarTextStyle": "black"
+ },
+ "tabBar": {
+ "list": [
+ {
+ "pagePath": "pages/index/index",
+ "text": "首页",
+ "iconPath": "/static/tabBarIcon/00.png",
+ "selectedIconPath": "/static/tabBarIcon/00_active.png"
+ },
+ {
+ "pagePath": "pages/user/user",
+ "text": "我的",
+ "iconPath": "/static/tabBarIcon/01.png",
+ "selectedIconPath": "/static/tabBarIcon/01_active.png"
+ }
+ ],
+ "color": "#b6b9bb",
+ "selectedColor": "#000",
+ "borderStyle": "white"
+ },
+ "style": "v2",
+ "sitemapLocation": "sitemap.json",
+ "permission": {
+ "scope.userLocation": {
+ "desc": "你的位置信息将用于小程序位置接口的效果展示"
+ }
+ },
+ "plugins": {
+ "sendCoupon": {
+ "version" : "1.2.0",
+ "provider": "wxf3f436ba9bd4be7b"
+ }
+ }
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/app.wxss b/亿时代-本时生活-2021-04-13/本时生活/app.wxss
new file mode 100644
index 0000000..00d27c0
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/app.wxss
@@ -0,0 +1,96 @@
+/**app.wxss**/
+page {
+ background: #f7f7f7;
+}
+
+/* 下边框 */
+.uni-border-top,
+.uni-border-bottom {
+ position: relative;
+}
+
+.uni-border-top::after,
+.uni-border-bottom::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ width: 100%;
+ height: 2rpx;
+ background: #f3f3f3;
+}
+
+.uni-border-top::after {
+ top: 0;
+}
+
+.uni-border-bottom::after {
+ bottom: 0;
+}
+
+/*
+ * 文字截取
+ */
+
+.nowrap {
+ max-width: 100%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+.nowrap-multi {
+ display: -webkit-box;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 2;
+}
+
+/*
+ * 水平居中
+ */
+
+.pack-center {
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-pack: center;
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ z-index: -1;
+}
+
+/*
+* 页面信息提醒
+*/
+
+.pages-hint {
+ text-align: center;
+ color: #747788;
+ font-size: 28rpx;
+ background: white;
+}
+
+.pages-hint image {
+ width: 188rpx;
+ height: 188rpx;
+}
+
+
+
+/* 上拉加载 */
+.pagesLoding{
+ text-align: center;
+ line-height: 90rpx;
+ color: gray;
+}
+
+.pagesLoding-icon{
+ width: 28rpx;
+ height: 28rpx;
+ vertical-align: middle;
+ margin-right: 10rpx;
+ margin-bottom: 3rpx;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/account/account.js b/亿时代-本时生活-2021-04-13/本时生活/pages/account/account.js
new file mode 100644
index 0000000..0f66061
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/account/account.js
@@ -0,0 +1,83 @@
+// pages/account/account.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ type : '', //卡类型
+ number : '', //账户余额
+ accounts : '', //账户列表
+ blockeds : '', //待发放余额
+ page : {}, //分页信息
+ lodingStats : false, //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ type : options.type
+ })
+ },
+
+ onShow() {
+ // 获取账变记录
+ this.accountInfo();
+ },
+
+ /**
+ * 账变记录
+ */
+ accountInfo(page) {
+ wx.$api.user.logs(this.data.type, page).then(res=>{
+ //判断金卡、银卡、钻石卡
+ let number
+ if(this.data.type == "silver") {
+ number = res.data.account.silver
+ } else if(this.data.type == "gold") {
+ number = res.data.account.gold
+ } else if(this.data.type == "drill") {
+ number = res.data.account.drill
+ } else {
+ return
+ }
+
+ let listArr = this.data.accounts,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+
+ this.setData({
+ number : number,
+ blockeds : res.data.blockeds,
+ accounts : newData,
+ page : res.data.page
+ })
+ })
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取账变记录
+ this.accountInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取账变记录
+ this.accountInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/account/account.json b/亿时代-本时生活-2021-04-13/本时生活/pages/account/account.json
new file mode 100644
index 0000000..54ed85e
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/account/account.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "账变记录",
+ "navigationBarBackgroundColor": "#dfb48b",
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/account/account.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/account/account.wxml
new file mode 100644
index 0000000..676387b
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/account/account.wxml
@@ -0,0 +1,57 @@
+
+
+
+ 白金账户余额
+
+ 钻石账户余额
+
+
+
+ 可用余额
+ {{number}}
+ 可用余额,入账记录
+
+
+ 待发放
+ {{blockeds}}
+ 立即查询
+
+
+
+
+
+ 入账记录
+
+
+
+ {{item.title}}
+
+
+ {{item.variable}}
+
+
+
+
+ 有效期:
+ {{item.created_at}} 至 {{item.expired_at}}
+
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 抱歉,目前暂无内容~
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/account/account.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/account/account.wxss
new file mode 100644
index 0000000..d643194
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/account/account.wxss
@@ -0,0 +1,155 @@
+/* 积分 */
+.integra-cont-name {
+ padding: 40rpx 20rpx 10rpx;
+ font-weight: 600;
+}
+
+.integra-list {
+ background: #fff;
+ border-radius: 10rpx;
+ width: calc(100% - 40rpx);
+ margin: 20rpx;
+ box-sizing: border-box;
+}
+
+.integra-top {
+ padding: 30rpx 20rpx 0;
+ background-color: #dfb48b;
+ border-radius: 0 0 100rpx 100rpx;
+}
+
+.integra-name {
+ color: #fff;
+ font-size: 32rpx;
+ margin-bottom: 30rpx;
+}
+
+.integra-title {
+ margin-bottom: 20rpx;
+}
+
+.integra-number {
+ font-size: 40rpx;
+}
+
+.integra-btn {
+ font-size: 28rpx;
+ margin-top: 20rpx;
+ color: #adadad;
+ display: flex;
+}
+
+.integra-btn text {
+ color: #dfb48b;
+}
+
+.integra-btn image {
+ width: 36rpx;
+ height: 36rpx;
+ margin-top: 2rpx;
+}
+
+.integra-blue {
+ color: #317afa;
+}
+
+.integra-info {
+ background-color: #fff;
+ text-align: center;
+ border-radius: 20rpx;
+ display: flex;
+ box-shadow: 0 10rpx 10rpx rgba(0, 0, 0, .1);
+ padding: 30rpx 20rpx;
+ box-sizing: border-box;
+ text-align: left;
+}
+
+.integra-right {
+ flex: 2;
+ position: relative;
+}
+
+.integra-right::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ top: 0;
+ background-color: #eeeeee;
+ width: 2rpx;
+ height: 100%;
+}
+
+.integra-right:first-child {
+ padding-right: 20rpx;
+ box-sizing: border-box;
+}
+
+.integra-right:last-child {
+ padding-left: 30rpx;
+ box-sizing: border-box;
+}
+
+.integra-right:first-child::after {
+ display: none;
+}
+
+.integra-list {
+ padding: 30rpx 20rpx;
+ position: relative;
+ box-sizing: border-box;
+}
+
+.integra-list::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 2rpx;
+ background: #eaeaea;
+}
+
+.integra-list:last-child::after {
+ display: none;
+}
+
+.integra-text {
+ display: flex;
+ margin-bottom: 20rpx;
+}
+
+.integra-title {
+ flex: 1;
+ font-size: 30rpx;
+ display: flex;
+}
+
+.integra-title text {
+ flex: 1;
+}
+
+.integra-title image {
+ width: 36rpx;
+ height: 36rpx;
+}
+
+.integra-oints {
+ color: #f0a479;
+}
+
+.integra-date {
+ display: flex;
+}
+
+.integra-time:last-child{
+ box-sizing: border-box;
+}
+
+.integra-time {
+ color: #999;
+ font-size: 28rpx;
+}
+
+.integra-time text {
+ color: #000;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activate/activate.js b/亿时代-本时生活-2021-04-13/本时生活/pages/activate/activate.js
new file mode 100644
index 0000000..c080a14
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activate/activate.js
@@ -0,0 +1,70 @@
+
+/*
+ * 本时生活
+ */
+
+const app = getApp()
+
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ carmi: '' //卡密
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ },
+
+ /**
+ * 卡激活
+ */
+ cardform(e) {
+ let code = e.detail.value.code,
+ pass = this.data.carmi
+
+ wx.$api.user.cards(code, pass).then(res=>{
+ if(res.data.type == "silver") {
+ app.globalData.userCurrent = 0
+ }else if(res.data.type == "gold") {
+ app.globalData.userCurrent = 1
+ }else if(res.data.type == "drill") {
+ app.globalData.userCurrent = 2
+ }else {
+ return
+ }
+
+ // 写入缓存
+ wx.setStorage({
+ key : 'current',
+ data : app.globalData.userCurrent
+ })
+
+ wx.showToast({
+ title: res.data.message,
+ icon : 'none'
+ })
+ setTimeout(()=>{
+ wx.switchTab({
+ url: '/pages/user/user'
+ })
+ },2000)
+ })
+ },
+
+ /**
+ * 获取卡密
+ */
+ carmiTab(e){
+ var number = e.detail.value
+ var change = number.replace(/(\d{4})(?=\d)/g, "$1-");//replace(/\s/g,'');
+ this.setData({
+ carmi: change
+ })
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activate/activate.json b/亿时代-本时生活-2021-04-13/本时生活/pages/activate/activate.json
new file mode 100644
index 0000000..286a508
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activate/activate.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "卡激活"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activate/activate.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/activate/activate.wxml
new file mode 100644
index 0000000..57ddcfd
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activate/activate.wxml
@@ -0,0 +1,29 @@
+
+
+
+
+ 消费红包【储值卡】
+
+
+ 温馨提示:
+
+ 尊敬的会员:储值后,将开启您,愉快的消费之旅!
+
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activate/activate.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/activate/activate.wxss
new file mode 100644
index 0000000..157abdd
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activate/activate.wxss
@@ -0,0 +1,129 @@
+/* 卡激活 */
+.activate-back {
+ width: 100%;
+ height: 100vh;
+ left: 0;
+ top: 0;
+ position: relative;
+}
+
+.activate-img {
+ position: relative;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 2;
+}
+
+.activate-cont {
+ position: absolute;
+ top: 0;
+ left: 0;
+ padding: 60rpx;
+ width: 100%;
+ box-sizing: border-box;
+ z-index: 9;
+}
+
+.activate-title {
+ font-size: 60rpx;
+ font-weight: 600;
+ text-align: center;
+ margin: 20rpx 0 100rpx;
+}
+
+.activate-label, .activate-pass {
+ margin-bottom: 60rpx;
+}
+
+.activate-label label, .activate-pass label {
+ margin-bottom: 40rpx;
+ display: block;
+ font-weight: 600;
+ font-size: 34rpx;
+}
+
+.activate-label input, .activate-pass input {
+ background: rgba(255, 255, 255, .3);
+ border-radius: 60rpx;
+ height: 90rpx;
+ line-height: 90rpx;
+ padding: 0 1rem;
+ box-sizing: border-box;
+ box-shadow: inset -2px 2px 4px 1.5px rgba(0, 0, 0, 0.7);
+}
+
+.activate-label input {
+ width: 100%;
+}
+
+.activate-label text {
+ display: block;
+ font-size: 32rpx;
+ margin-top: 10rpx;
+ font-weight: normal;
+}
+
+.activate-entry {
+ display: flex;
+ line-height: 80rpx;
+ color: #fff;
+ font-weight: 600;
+}
+
+.activate-entry input {
+ background: #fff;
+ border-radius: 60rpx;
+ width: calc(25% - 1rem);
+ margin: 0 .5rem;
+ height: 80rpx;
+ line-height: 80rpx;
+}
+
+.activate-btn {
+ width: 100%;
+ height: 90rpx;
+ border: none;
+ margin: 2rem 0 2.2rem;
+}
+
+.activate-btn button {
+ width: 100% !important;
+ height: 100%;
+ line-height: 90rpx;
+ border-radius: 50rpx;
+ background: #000;
+ border: none;
+ font-size: 40rpx;
+ color: #fff;
+ margin: 0;
+ padding: 0;
+}
+
+.activate-tips {
+ color: #000;
+ font-weight: 600;
+ font-size: 32rpx;
+}
+
+.activate-tips-text {
+ line-height: 46rpx;
+ margin-top: 20rpx;
+}
+
+.activate-tips-img {
+ width: 240rpx;
+ height: 240rpx;
+ border-radius: 50%;
+ margin: 2rem auto 0;
+}
+
+.activate-tips-img image {
+ width: 100%;
+ height: 100%;
+}
+
+.activate-tips-text {
+ text-indent: 2rem;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activity/activity.js b/亿时代-本时生活-2021-04-13/本时生活/pages/activity/activity.js
new file mode 100644
index 0000000..997570f
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activity/activity.js
@@ -0,0 +1,53 @@
+
+/*
+ * 本时生活
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ isUser : false, //用户登录状态
+ indexArr : '', //商品列表
+ page : '', //下一页
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ if(app.globalData.isUser){
+ this.setData({
+ isUser: app.globalData.isUser
+ })
+ }
+
+ wx.$api.index.redwine().then(res=>{
+ this.setData({
+ indexArr : res.data.data,
+ page : res.data.page
+ })
+ })
+ },
+
+ /**
+ * 处理未登录时的转跳
+ */
+ userNav(e){
+ let pageUrl = e.currentTarget.dataset.url
+ if(this.data.isUser){
+ wx.navigateTo({
+ url: pageUrl
+ })
+ }else{
+ // 去登录
+ wx.navigateTo({
+ url: "/pages/login/login?way=activity"
+ })
+ }
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activity/activity.json b/亿时代-本时生活-2021-04-13/本时生活/pages/activity/activity.json
new file mode 100644
index 0000000..951f122
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activity/activity.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "产品活动"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activity/activity.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/activity/activity.wxml
new file mode 100644
index 0000000..24137bd
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activity/activity.wxml
@@ -0,0 +1,7 @@
+
+
+ 商品列表
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activity/activity.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/activity/activity.wxss
new file mode 100644
index 0000000..f9ea2f9
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activity/activity.wxss
@@ -0,0 +1,36 @@
+/* 活动列表 */
+.activityTitle {
+ background: #000;
+ color: #fff;
+ border-radius: 40rpx 14rpx 14rpx 40rpx;
+ margin: 20rpx 24rpx 0;
+ padding: 10rpx;
+ width: 190rpx;
+ box-sizing: border-box;
+ display: flex;
+ font-size: 28rpx;
+}
+
+.activityTitle image {
+ width: 40rpx;
+ height: 40rpx;
+ margin-right: 5rpx;
+}
+
+.activityList {
+ width: calc(100% - 40rpx);
+ margin: 30rpx 20rpx;
+ box-sizing: border-box;
+ position: relative;
+ padding-top: 40%;
+}
+
+/* 5:2 */
+.activityList image {
+ border-radius: 10rpx;
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activityData/activityData.js b/亿时代-本时生活-2021-04-13/本时生活/pages/activityData/activityData.js
new file mode 100644
index 0000000..517cd4c
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activityData/activityData.js
@@ -0,0 +1,138 @@
+
+/*
+ * 本时生活
+ */
+
+const app = getApp()
+
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ statusHeight : app.globalData.statusBarHeight,
+ order : '' //订单详情
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+
+ // 获取商品活动订单详情
+ this.orderInfo(options.id);
+ },
+
+ /**
+ * 商品活动订单详情
+ */
+ orderInfo(id) {
+ wx.$api.index.ordersInfo(id).then(res=>{
+ this.setData({
+ order : res.data
+ })
+ })
+ },
+
+ /**
+ * 取消订单
+ */
+ orderDelete(e) {
+ let orderId = e.currentTarget.dataset.id
+ wx.showModal({
+ title : '订单取消',
+ content : '确认取消吗?',
+ success : res=> {
+ if (res.confirm) {
+ wx.$api.index.cance(orderId).then(res=>{
+ wx.showToast({
+ title: res.data,
+ icon : 'none'
+ })
+ setTimeout(()=>{
+ wx.reLaunch({
+ url: '/pages/activityOrder/activityOrder',
+ })
+ },2000)
+ })
+ } else if (res.cancel) {
+ wx.showToast({
+ title : '取消',
+ icon : 'loading',
+ duration: 1000
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 订单支付
+ */
+ orderPay(e) {
+ let orderId = e.currentTarget.dataset.id
+
+ wx.login({
+ success: res=> {
+ wx.$api.index.repay(orderId).then(res=>{
+ let payInfo = JSON.parse(res.data.json)
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ wx.showToast({
+ title: '支付成功',
+ icon : 'success'
+ })
+ setTimeout(()=>{
+ wx.reLaunch({
+ url: '/pages/activityOrder/activityOrder',
+ })
+ },2000)
+ }
+ },
+ fail : res=>{
+ wx.reLaunch({
+ url: '/pages/activityOrder/activityOrder',
+ })
+ }
+ })
+ })
+ }
+ })
+ },
+
+ /**
+ * 返回上一页
+ */
+ orderRun() {
+ wx.navigateBack({
+ delta: 1
+ })
+ },
+
+ /**
+ * 复制快递单号
+ */
+ copyText (e) {
+ let text = e.currentTarget.dataset.text
+ wx.setClipboardData({
+ data : text,
+ success : res=> {
+ wx.getClipboardData({
+ success: res => {
+ wx.showToast({
+ title: '复制成功'
+ })
+ }
+ })
+ }
+ })
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activityData/activityData.json b/亿时代-本时生活-2021-04-13/本时生活/pages/activityData/activityData.json
new file mode 100644
index 0000000..87ee6d0
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activityData/activityData.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "订单详情",
+ "navigationBarBackgroundColor": "#f57e32",
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activityData/activityData.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/activityData/activityData.wxml
new file mode 100644
index 0000000..350576b
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activityData/activityData.wxml
@@ -0,0 +1,115 @@
+
+
+ {{order.status_text}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 收货人:{{order.address.name}}
+ {{order.address.mobile}}
+
+ {{order.address.province}}{{order.address.city}}{{order.address.district}}{{order.address.info}}
+
+
+
+
+
+
+
+ {{order.title}}
+ ¥{{order.param.price}}
+ ×{{order.param.number}}
+
+
+
+
+
+
+
+
+
+
+
+
+ ¥{{item.amount}}
+
+
+ 超市券满减券
+
+ 赠
+
+
+ {{item.title}}
+
+ 卡数(张)
+ x {{item.number}}
+
+
+
+
+
+
+
+
+
+
+ 赠
+
+
+ {{item.title}}
+ {{item.subtitle}}
+ 原价:{{item.amount}}元
+
+ 活动:0.00元
+ x {{item.number}}
+
+
+
+
+
+
+
+ 订单号
+ {{order.order_id}}
+
+
+
+
+
+ 物流公司
+ {{order.ex_type_text}}
+
+
+
+
+ 快递单号
+ {{order.ex_no}}
+
+
+
+
+
+ 实际支付
+ ¥{{order.amount}}
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activityData/activityData.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/activityData/activityData.wxss
new file mode 100644
index 0000000..e50e247
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activityData/activityData.wxss
@@ -0,0 +1,427 @@
+
+/*
+ * 亿时代
+ */
+ .order-statl{
+ background-color: #f57e32;
+ padding: 0 30rpx 10rpx;
+ color: white;
+ line-height: 90rpx;
+ height: 90rpx;
+ position: relative;
+}
+
+.order-statl-icon{
+ width: 80rpx;
+ height: 80rpx;
+ vertical-align: middle;
+ position: absolute;
+ right: 30rpx;
+ top: 5rpx;
+}
+
+ /* 收货人信息 */
+.order-address{
+ padding: 30rpx 30rpx 30rpx 100rpx;
+ position: relative;
+ background: white;
+}
+
+.order-address-back{
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ vertical-align:bottom;
+}
+
+.order-address-name{
+ padding-right: 300rpx;
+ position: relative;
+ font-size: 33rpx;
+ padding-bottom: 10rpx;
+}
+
+.order-address-name text{
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 280rpx;
+ text-align: right;
+}
+
+.order-address-text{
+ color: #464854;
+ font-size: 26rpx;
+}
+
+.address-icon,
+.arrows-right{
+ position: absolute;
+}
+
+.address-icon{
+ height: 42rpx;
+ width: 42rpx;
+ left: 30rpx;
+ top: calc(50% - 26rpx);
+ top: -webkit-calc(50% - 26rpx);
+}
+
+.arrows-right{
+ height: 28rpx;
+ width: 28rpx;
+ right: 30rpx;
+ top: calc(50% - 19rpx);
+ top: -webkit-calc(50% - 19rpx);
+}
+
+.order-add-address{
+ text-align: center;
+ padding: 30rpx 0;
+}
+
+.order-add-address navigator{
+ display: inline-block;
+ background: #e92344;
+ color: white;
+ line-height: 60rpx;
+ padding: 0 30rpx;
+ margin-right: 20rpx;
+}
+
+/* 订单商品 */
+
+.order-content{
+ border-bottom: solid 100rpx transparent;
+}
+
+.order-goods{
+ margin-bottom: 20rpx;
+}
+
+.goods-goods-mall{
+ padding: 20rpx 30rpx 0 30rpx;
+ line-height: 50rpx;
+}
+
+.goods-goods-mall image{
+ width: 48rpx;
+ height: 48rpx;
+ vertical-align: middle;
+ margin-right: 15rpx;
+ margin-bottom: 2rpx;
+}
+
+.goods-goods-li{
+ padding: 20rpx 30rpx;
+ position: relative;
+ border-bottom: solid 1rpx #f2f2f2;
+ min-height: 130rpx;
+ background: white;
+}
+
+.goods-goods-li:last-child{
+ border-bottom: none;
+}
+
+.goods-img{
+ position: absolute;
+ top: 20rpx;
+ left: 30rpx;
+ height: 130rpx;
+ width: 130rpx;
+ background: #f5f6fa;
+}
+
+.goods-body{
+ padding-left: 150rpx;
+}
+
+.goods-name{
+ font-weight: bold;
+ padding: 10rpx 0 20rpx;
+}
+
+.goods-price{
+ color: #e92344;
+}
+
+.goods-qty{
+ color: gray;
+ font-weight: normal;
+ padding-left: 10rpx;
+ font-size: 28rpx;
+}
+
+.goods-params{
+ color: gray;
+ padding-bottom: 20rpx;
+ font-size: 28rpx;
+}
+
+/* 统计信息 */
+
+.order-total{
+ background: white;
+ margin: 20rpx 0;
+}
+
+.order-total-li{
+ padding: 0 30rpx;
+ line-height: 90rpx;
+ position: relative;
+ font-size: 28rpx;
+}
+
+.order-total-li::before{
+ position: absolute;
+ content: " ";
+ left: 30rpx;
+ bottom: 0;
+ right: 0;
+ height: 1rpx;
+ background: #f2f2f2;
+}
+
+.order-total-li:last-child::before{
+ display: none;
+}
+
+.order-total-li text{
+ float: right;
+ color: #999;
+}
+
+.order-total-li .redCor {
+ color: #e92344;
+ font-size: 32rpx;
+}
+
+
+
+/* 购物券 */
+.goodsCoupon {
+ background: #fff;
+ padding: 20rpx;
+ box-sizing: border-box;
+ position: relative;
+}
+
+.goodsCoupon-right {
+ width: calc(100% - 270rpx);
+ position: absolute;
+ left: 250rpx;
+ top: 20rpx;
+ right: 20rpx;
+}
+
+.goodsCoupon-text {
+ color: #999;
+ font-size: 26rpx;
+ margin-bottom: 24rpx;
+}
+
+.goodsCoupon-name {
+ margin-bottom: 40rpx;
+ font-size: 32rpx;
+}
+
+.goodsCoupon-name-box {
+ margin-bottom: 10rpx;
+}
+
+.goodsCoupon-sheet {
+ display: flex;
+ font-size: 28rpx;
+ color: #999;
+}
+
+.goodsCoupon-cost {
+ color: #000;
+ font-size: 28rpx;
+ margin: 14rpx 0;
+}
+
+.goodsCoupon-price {
+ font-size: 28rpx;
+ color: #f57e32;
+}
+
+.goodsCoupon-sheet view {
+ display: inline-block;
+ flex: 1;
+}
+
+.goodsCoupon-sheet text {
+ font-size: 24rpx;
+ line-height: 40rpx;
+ padding-right: 6rpx;
+}
+
+
+.goodsCoupon-left {
+ position: relative;
+ width: 200rpx;
+ height: 130rpx;
+}
+
+.goodsCoupon-box {
+ width: 200rpx;
+ height: 200rpx;
+}
+
+.goodsBox-img {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.goodsCoupon-img {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.goodsCoupon-number {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 2;
+ width: 100%;
+ text-align: center;
+ font-size: 40rpx;
+ color: #f57e32;
+ height: 94rpx;
+ line-height: 94rpx;
+ font-weight: 600;
+}
+
+.goodsCoupon-number text {
+ font-size: 28rpx;
+}
+
+.goodsCoupon-btn {
+ position: absolute;
+ right: 10rpx;
+ left: 10rpx;
+ bottom: 4rpx;
+ z-index: 2;
+ background: #f57e32;
+ color: #fff;
+ font-size: 24rpx;
+ width: calc(100% - 20rpx);
+ text-align: center;
+ height: 40rpx;
+ line-height: 40rpx;
+ border-radius: 30rpx;
+ transform: scale(0.83, 0.83);
+}
+
+.goodsCoupon-tips {
+ position: absolute;
+ top: -4rpx;
+ left: 10rpx;
+ z-index: 2;
+ color: #fff;
+ transform: rotate(-45deg);
+}
+
+.goodsCoupon-tips text {
+ transform: scale(0.83, 0.83);
+ font-size: 24rpx;
+ display: inline-block;
+}
+
+.goodsBox-tips {
+ display: inline-block;
+ width: 49rpx;
+ padding: 8rpx 0 6rpx 0;
+ background: #EDBA19;
+ top: -10rpx;
+ left: 10rpx;
+ position: absolute;
+ text-align: center;
+ border-top-left-radius: 4rpx;
+ font-size: 24rpx;
+ color: #ffff;
+ transform: scale(.9, .9);
+}
+
+.goodsBox-tips:before, .goodsBox-tips:after {
+ content: "";
+ position: absolute;
+}
+
+.goodsBox-tips:before {
+ height: 0;
+ width: 0;
+ border-bottom: 10rpx solid #745800;
+ border-right: 10rpx solid transparent;
+ right: -10rpx;
+ top: 0;
+}
+
+.goodsBox-tips:after {
+ height: 0;
+ width: 0;
+ border-left: 25rpx solid #EDBA19;
+ border-right: 25rpx solid #EDBA19;
+ border-bottom: 25rpx solid transparent;
+ bottom: -22rpx;
+ left: 0;
+}
+
+.goodsLabel {
+ background: #fff;
+ text-align: right;
+ padding: 20rpx;
+ font-size: 32rpx;
+}
+
+.goodsLabel text {
+ font-weight: 600;
+}
+
+
+/* 底部工具栏 */
+.order-data-footer{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ border-top: solid 1rpx #f2f2f2;
+ padding-top: 17rpx;
+ padding-right: 30rpx;
+ padding-left: 30rpx;
+ height: 83rpx;
+ background: white;
+ display: flex;
+ flex-wrap: wrap;
+ flex-direction:row-reverse;
+}
+
+.order-data-footer.iphoneX {
+ padding-bottom: 30rpx;
+}
+
+.order-btn{
+ margin-left: 20rpx;
+ height: 54rpx;
+ line-height: 50rpx;
+ box-sizing: border-box;
+ border:solid 1rpx #747788;
+ padding: 0 20rpx;
+ font-size: 26rpx;
+ border-radius: 40rpx;
+ margin-top: 10rpx;
+}
+
+.order-btn-back {
+ border-color: #f57e32;
+ color: #f57e32;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activityInfo/activityInfo.js b/亿时代-本时生活-2021-04-13/本时生活/pages/activityInfo/activityInfo.js
new file mode 100644
index 0000000..45cfc96
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activityInfo/activityInfo.js
@@ -0,0 +1,183 @@
+
+/*
+ * 本时生活
+ */
+
+const app = getApp()
+
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ isUser : false, //用户登录状态
+ indexId : '', //tab状态
+ indexArr : '', //商品列表
+ page : '', //下一页
+ address : '', //收货地址
+ goodId : '', //商品id
+ goodCont : '', //商品信息
+ params : '', //商品数量组
+ paramsIndex : 0,
+ platIndex : 0, //选择提交方式下标
+ platformCp :[ //选择提交数组
+ {
+ id : 0,
+ name : '快递'
+ },
+ {
+ id : 1,
+ name : '自提'
+ }
+ ],
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+
+ // this.setData({
+ // goodId: options.id
+ // })
+
+ if(app.globalData.isUser){
+ this.setData({
+ isUser: app.globalData.isUser
+ })
+ }
+
+ // 活动商品列表
+ wx.$api.index.redwine().then(res=>{
+ this.setData({
+ indexArr : res.data.data,
+ indexId : res.data.data[1].id,
+ page : res.data.page
+ })
+
+ // 获取商品信息
+ this.redwineInfo(res.data.data[1].id)
+ })
+ },
+
+ /**
+ * 商品信息
+ */
+ redwineInfo(id) {
+ wx.$api.index.redwinePay(id).then(res=>{
+ this.setData({
+ address : res.data.address,
+ goodCont : res.data.good,
+ params : res.data.params,
+ paramsIndex : res.data.params.findIndex(val => val.def == 1)
+ })
+ })
+ },
+
+ /**
+ * 商品数量选择
+ */
+ goodsNumber(e) {
+ let onType = e.currentTarget.dataset.type,
+ atIndex = this.data.paramsIndex
+ // atIndex = this.data.params.findIndex(val => val.number == this.data.qty)
+ if(onType == 'plus' && atIndex < this.data.params.length - 1){
+ atIndex++
+ }else if(onType == 'remove' && atIndex >= 1){
+ atIndex--
+ }else{
+ return
+ }
+ this.setData({
+ paramsIndex: atIndex
+ })
+ },
+
+ /**
+ * 选择提交方式
+ */
+ platBind(e) {
+ this.setData({
+ platIndex : e.detail.value
+ })
+ },
+
+ /**
+ * 订单提交
+ */
+ submitOrder() {
+ let good_id = this.data.indexId,
+ param_id = this.data.params[this.data.paramsIndex].id,
+ address_id = this.data.address.id,
+ islogistics = this.data.platIndex
+
+ wx.login({
+ success: res=> {
+ wx.$api.index.payment(good_id, param_id, address_id, islogistics).then(res=>{
+ let payInfo = JSON.parse(res.data.json)
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ wx.showToast({
+ title: '支付成功',
+ icon : 'success'
+ })
+ setTimeout(()=>{
+ wx.reLaunch({
+ url: '/pages/activityOrder/activityOrder',
+ })
+ },2000)
+ }
+ },
+ fail : res=>{
+ wx.reLaunch({
+ url: '/pages/activityOrder/activityOrder',
+ })
+ }
+ })
+ })
+ }
+ })
+ },
+
+ /**
+ * 选择tab
+ */
+ orderTab(e) {
+ let indexId = e.currentTarget.dataset.id
+ if (indexId != this.data.indexId) {
+ this.setData({
+ indexId : indexId
+ })
+ }
+ // 获取商品信息
+ this.redwineInfo(indexId)
+ },
+
+ /**
+ * 点击图片放大
+ */
+ clickImg(e) {
+ let imgUrl = e.currentTarget.dataset.img
+ wx.previewImage({
+ urls : [imgUrl], //需要预览的图片http链接列表,注意是数组
+ current : '' // 当前显示图片的http链接,默认是第一个
+ })
+ },
+
+ /**
+ * 处理未登录时的转跳
+ */
+ loginGo(e){
+ wx.navigateTo({
+ url: "/pages/login/login?way=activity"
+ })
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activityInfo/activityInfo.json b/亿时代-本时生活-2021-04-13/本时生活/pages/activityInfo/activityInfo.json
new file mode 100644
index 0000000..f7eceee
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activityInfo/activityInfo.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "商品购买"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activityInfo/activityInfo.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/activityInfo/activityInfo.wxml
new file mode 100644
index 0000000..625063a
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activityInfo/activityInfo.wxml
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+ 收货人:{{address.name}}{{address.mobile}}
+
+ 收货地址:{{address.all_address}}
+
+
+
+
+
+ 添加地址
+
+
+
+
+
+
+
+
+
+
+ {{item.classtitle}}
+
+
+
+
+
+
+ 平安好车主超级福利专享
+
+
+
+
+
+
+
+ {{goodCont.title}}
+ {{goodCont.subtitle}}
+
+ ¥{{params[paramsIndex].price}}
+
+ -
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+ ¥{{item.amount}}
+
+
+ 比优特电子券
+
+ 赠
+
+
+ {{item.title}}
+
+ 卡数(张)
+ x {{item.number}}
+
+
+
+
+
+
+
+
+
+
+ 赠
+
+
+ {{item.title}}
+ {{item.subtitle}}
+ 原价:{{item.amount}}元
+
+ 活动:0.00元
+ x {{item.number}}
+
+
+
+
+
+
+
+ 小计¥{{params[paramsIndex].amount}}
+
+
+
+ 请选择提交方式
+
+
+
+ {{platformCp[platIndex].name}}
+
+
+
+
+
+
+
+ 快递
+
+ 免运费 包邮
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activityInfo/activityInfo.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/activityInfo/activityInfo.wxss
new file mode 100644
index 0000000..bca5656
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activityInfo/activityInfo.wxss
@@ -0,0 +1,575 @@
+/* 收货地址 */
+.borderBottom {
+
+ border-bottom: 110rpx solid transparent;
+}
+
+.order-address {
+ padding: 20rpx 80rpx 30rpx 100rpx;
+ position: relative;
+ background: white;
+}
+
+.order-address-back {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ vertical-align: bottom;
+}
+
+.order-address-name {
+ padding-right: 300rpx;
+ position: relative;
+ font-size: 33rpx;
+ padding-bottom: 10rpx;
+}
+
+.order-address-name text {
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 280rpx;
+ text-align: right;
+}
+
+.order-address-text {
+ color: #464854;
+ font-size: 26rpx;
+}
+
+.address-icon,
+.arrows-right {
+ position: absolute;
+}
+
+.address-icon {
+ height: 42rpx;
+ width: 42rpx;
+ left: 30rpx;
+ top: calc(50% - 26rpx);
+ top: -webkit-calc(50% - 26rpx);
+}
+
+.arrows-right {
+ height: 28rpx;
+ width: 28rpx;
+ right: 30rpx;
+ top: calc(50% - 19rpx);
+ top: -webkit-calc(50% - 19rpx);
+}
+
+.order-add-address {
+ text-align: center;
+ padding: 30rpx 0;
+}
+
+.order-add-address navigator {
+ display: inline-block;
+ background: #f57e32;
+ color: white;
+ line-height: 60rpx;
+ padding: 0 30rpx;
+ margin-right: 20rpx;
+ font-size: 28rpx;
+ border-radius: 4rpx;
+}
+
+
+.order-add-address-img {
+ width: 25rpx;
+ height: 25rpx;
+ margin-right: 10rpx;
+ vertical-align: -2rpx;
+}
+
+/* 订单商品 */
+
+.order-goods {
+ margin: 0 0 20rpx;
+}
+
+.order-content {
+ border-bottom: solid 100rpx transparent;
+}
+
+.goods-goods-mall {
+ padding: 20rpx 30rpx 0 30rpx;
+ line-height: 50rpx;
+}
+
+.goods-goods-mall image {
+ width: 48rpx;
+ height: 48rpx;
+ vertical-align: middle;
+ margin-right: 15rpx;
+ margin-bottom: 2rpx;
+}
+
+.goods-goods-li {
+ padding: 20rpx 30rpx;
+ position: relative;
+ background: white;
+ display: flex;
+ height: 200rpx;
+}
+
+.goods-img {
+ position: absolute;
+ top: 20rpx;
+ left: 20rpx;
+ height: 200rpx;
+ width: 200rpx;
+ background: #f5f6fa;
+ border-radius: 4rpx;
+}
+
+.goods-body {
+ padding-left: 220rpx;
+ width: calc(100% - 220rpx);
+}
+
+.goods-name {
+ font-weight: bold;
+ padding-bottom: 20rpx;
+ font-size: 32rpx;
+}
+
+.goods-cont {
+ display: flex;
+}
+
+.goods-text {
+ color: #999;
+ font-size: 28rpx;
+ margin-bottom: 40rpx;
+}
+
+.goods-price {
+ flex: 1;
+ line-height: 50rpx;
+ font-size: 36rpx;
+ font-weight: 600;
+ color: #f57e32;
+}
+
+.goods-price text {
+ font-size: 26rpx;
+}
+
+.good-number {
+ display: flex;
+ width: 180rpx;
+ text-align: center;
+ height: 50rpx;
+}
+
+.good-number-btn {
+ width: 50rpx;
+ color: #000;
+ font-weight: 600;
+}
+
+.good-number-input {
+ flex: 1;
+ margin: 0 6rpx;
+ height: 50rpx;
+ line-height: 50rpx;
+ color: #000;
+ font-size: 26rpx;
+}
+
+.good-number-input {
+ background: #f7f7f7;
+ font-size: 24rpx;
+}
+
+.good-number-btn {
+ background: #f0f0f0;
+}
+
+/* 购物券 */
+.goodsCoupon {
+ background: #fff;
+ padding: 20rpx;
+ box-sizing: border-box;
+ position: relative;
+}
+
+.goodsCoupon-right {
+ width: calc(100% - 270rpx);
+ position: absolute;
+ left: 250rpx;
+ top: 30rpx;
+ right: 20rpx;
+}
+
+.goodsCoupon-name {
+ margin-bottom: 30rpx;
+ font-size: 32rpx;
+}
+
+.goodsCoupon-text {
+ color: #999;
+ font-size: 26rpx;
+ margin-bottom: 24rpx;
+}
+
+.goodsCoupon-name-box {
+ margin-bottom: 10rpx;
+}
+
+.goodsCoupon-sheet {
+ display: flex;
+ font-size: 30rpx;
+ color: #999;
+}
+
+.goodsCoupon-cost {
+ color: #000;
+ font-size: 28rpx;
+ margin: 14rpx 0;
+}
+
+.goodsCoupon-price {
+ font-size: 28rpx;
+ color: #f57e32;
+}
+
+.goodsCoupon-box-right {
+ top: 16rpx;
+}
+
+.goodsCoupon-sheet view {
+ display: inline-block;
+ flex: 1;
+}
+
+.goodsCoupon-sheet text {
+ font-size: 24rpx;
+ line-height: 44rpx;
+ padding-right: 6rpx;
+}
+
+.goodsCoupon-left {
+ position: relative;
+ width: 200rpx;
+ height: 140rpx;
+}
+
+.goodsCoupon-box {
+ width: 200rpx;
+ height: 200rpx;
+}
+
+.goodsBox-img {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.goodsCoupon-img {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.goodsCoupon-number {
+ position: absolute;
+ top: 20rpx;
+ left: 0;
+ z-index: 2;
+ width: 100%;
+ text-align: center;
+ font-size: 40rpx;
+ color: #fff;
+ font-weight: 600;
+ text-shadow: 2rpx 2rpx 2rpx #d69e50;
+}
+
+.goodsCoupon-number text {
+ font-size: 28rpx;
+}
+
+.goodsCoupon-btn {
+ position: absolute;
+ right: 10rpx;
+ left: 10rpx;
+ bottom: 20rpx;
+ z-index: 2;
+ background-image: linear-gradient(#eacf90, #f7e09f, #ce9e4d);
+ color: #000;
+ font-size: 24rpx;
+ width: calc(100% - 20rpx);
+ text-align: center;
+ height: 40rpx;
+ line-height: 40rpx;
+ border-radius: 30rpx;
+ transform: scale(0.83, 0.83);
+}
+
+.goodsCoupon-tips {
+ position: absolute;
+ top: 6rpx;
+ left: 14rpx;
+ z-index: 2;
+ color: #fff;
+ transform: rotate(-48deg);
+}
+
+.goodsCoupon-tips text {
+ transform: scale(0.83, 0.83);
+ font-size: 24rpx;
+ display: inline-block;
+}
+
+.goodsBox-tips {
+ display: inline-block;
+ width: 49rpx;
+ padding: 8rpx 0 6rpx 0;
+ background: #EDBA19;
+ top: -10rpx;
+ left: 10rpx;
+ position: absolute;
+ text-align: center;
+ border-top-left-radius: 4rpx;
+ font-size: 24rpx;
+ color: #ffff;
+ transform: scale(.9, .9);
+}
+
+.goodsBox-tips:before,
+.goodsBox-tips:after {
+ content: "";
+ position: absolute;
+}
+
+.goodsBox-tips:before {
+ height: 0;
+ width: 0;
+ border-bottom: 10rpx solid #745800;
+ border-right: 10rpx solid transparent;
+ right: -10rpx;
+ top: 0;
+}
+
+.goodsBox-tips:after {
+ height: 0;
+ width: 0;
+ border-left: 25rpx solid #EDBA19;
+ border-right: 25rpx solid #EDBA19;
+ border-bottom: 25rpx solid transparent;
+ bottom: -22rpx;
+ left: 0;
+}
+
+.goodsLabel {
+ background: #fff;
+ text-align: right;
+ padding: 20rpx;
+ font-size: 26rpx;
+}
+
+.goodsLabel text {
+ font-weight: 600;
+ font-size: 30rpx;
+ padding-left: 10rpx;
+ color: #f57e32;
+}
+
+/* 底部工具栏 */
+
+.order-footer,
+.order-login-footer {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ border-top: solid 1rpx #f2f2f2;
+ height: 100rpx;
+ line-height: 100rpx;
+ z-index: 99;
+}
+
+.order-footer {
+ background: white;
+}
+
+.order-login-footer {
+ background: #f57e32;
+ text-align: center;
+ color: #fff;
+}
+
+.order-footer-total {
+ padding-right: calc(30vw + 30rpx);
+ padding-right: -webkit-calc(30vw + 30rpx);
+ padding-left: 30rpx;
+ color: #737787;
+ font-size: 28rpx;
+}
+
+.order-footer-total text {
+ color: #f57e32;
+}
+
+.order-footer-total-price {
+ font-weight: bold;
+ font-size: 30rpx;
+}
+
+.order-footer-btn[size="mini"] {
+ width: 30vw;
+ background: #f57e32;
+ color: white;
+ border-radius: 0;
+ height: 100rpx;
+ line-height: 100rpx;
+ font-size: 30rpx;
+ position: absolute;
+ top: 0;
+ right: 0;
+}
+
+.order-footer-btn:after {
+ border: none;
+}
+
+.order-footer-btn.insufficient {
+ background: #737787;
+ text-align: center;
+}
+
+.order-textarea {
+ padding: 20rpx;
+}
+
+
+.rightsLabel {
+ background: #fff;
+ display: flex;
+ padding: 20rpx;
+ color: #6f7880;
+ font-size: 30rpx;
+ margin: 20rpx 0;
+}
+
+.rightsLabel .rightsLabel-left {
+ flex: 1;
+ color: #747d86;
+}
+
+.rightsLabel-black {
+ padding-top: 30rpx;
+}
+
+.rightsLabel-range {
+ display: flex;
+ color: #000;
+ font-weight: 600;
+}
+
+.rightsLabel-row {
+ width: 38rpx;
+ height: 38rpx;
+ margin: 2rpx 0 0 6rpx;
+}
+
+.rightsLabel-black .rightsLabel-right {
+ color: #000;
+ font-weight: 600;
+ font-size: 32rpx;
+}
+
+.rightsLabel-black .rightsLabel-left {
+ color: #000;
+}
+
+
+.rightsLabel-pay {
+ color: #000;
+}
+
+.rightsLabel-pay .rightsLabel-left {
+ flex: 1;
+}
+
+.rightsLabel-free {
+ color: #999;
+ padding-right: 20rpx;
+}
+
+/* tab */
+.order-tab {
+ display: flex;
+ background: #fff;
+ padding: 20rpx 0 25rpx;
+ color: #999;
+}
+
+.order-tab-item {
+ flex: 2;
+ text-align: center;
+ position: relative;
+}
+
+.order-tab-item::after {
+ position: absolute;
+ left: calc(50% - 50rpx);
+ bottom: -25rpx;
+ width: 100rpx;
+ height: 4rpx;
+ border-radius: 20rpx;
+ content: '';
+ background: transparent;
+}
+
+.order-tab-item.active {
+ color: #e2952b;
+ font-weight: 600;
+}
+
+.order-tab-item.active::after {
+ background: #e2952b;
+}
+
+/* 提示 */
+.goods-tips {
+ background: #fffbec;
+ color: #e2952b;
+ padding: 20rpx;
+ box-sizing: border-box;
+ font-size: 29rpx;
+ display: flex;
+ position: relative;
+}
+
+.goods-tips::after,
+.goods-tips::before {
+ position: absolute;
+ content: '';
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 2rpx;
+ background: #fef5d1;
+}
+
+.goods-tips::after {
+ bottom: 0;
+}
+
+.goods-tips::before {
+ top: 0;
+}
+
+.goods-tips image {
+ width: 30rpx;
+ height: 30rpx;
+ margin-right: 14rpx;
+ margin-top: 3rpx;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activityOrder/activityOrder.js b/亿时代-本时生活-2021-04-13/本时生活/pages/activityOrder/activityOrder.js
new file mode 100644
index 0000000..72b9f69
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activityOrder/activityOrder.js
@@ -0,0 +1,146 @@
+// pages/activityOrder/activityOrder.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ stateType : '', //状态
+ counts : '', //数量
+ orderArr : [], //列表
+ page : {}, //下一页
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+
+ // 获取商品活动订单
+ this.orderInfo();
+ },
+
+ /**
+ * 商品活动订单
+ */
+ orderInfo(page) {
+ wx.$api.index.activityOrder(this.data.stateType, page).then(res=>{
+ let listArr = this.data.orderArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ counts : res.data.count,
+ orderArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * tabs
+ */
+ orderTab(e){
+ if(this.data.stateType != e.currentTarget.dataset.state){
+ this.setData({
+ stateType: e.currentTarget.dataset.state
+ })
+
+ // 获取商品活动订单
+ this.orderInfo()
+
+ wx.pageScrollTo({
+ scrollTop: 0
+ })
+ }
+ },
+
+ /**
+ * 取消订单
+ */
+ orderDelete(e) {
+ let orderId = e.currentTarget.dataset.id
+ wx.showModal({
+ title : '订单取消',
+ content : '确认取消吗?',
+ success : res=> {
+ if (res.confirm) {
+ wx.$api.index.cance(orderId).then(res=>{
+ // 获取商品活动订单
+ this.orderInfo()
+
+ wx.showToast({
+ title: res.data,
+ icon : 'none'
+ })
+ })
+ } else if (res.cancel) {
+ wx.showToast({
+ title : '取消',
+ icon : 'loading',
+ duration: 1000
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 订单支付
+ */
+ orderPay(e) {
+ let orderId = e.currentTarget.dataset.id
+
+ wx.login({
+ success: res=> {
+ wx.$api.index.repay(orderId).then(res=>{
+ let payInfo = JSON.parse(res.data.json)
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ wx.showToast({
+ title: '支付成功',
+ icon : 'success'
+ })
+ setTimeout(()=>{
+ wx.redirectTo({
+ url: '/pages/activityOrder/activityOrder',
+ })
+ },2000)
+ }
+ },
+ fail : res=>{
+ wx.redirectTo({
+ url: '/pages/activityOrder/activityOrder',
+ })
+ }
+ })
+ })
+ }
+ })
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ this.orderInfo(pageNumber)
+ }
+ }
+
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activityOrder/activityOrder.json b/亿时代-本时生活-2021-04-13/本时生活/pages/activityOrder/activityOrder.json
new file mode 100644
index 0000000..f825b95
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activityOrder/activityOrder.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "我的订单",
+ "enablePullDownRefresh": true
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activityOrder/activityOrder.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/activityOrder/activityOrder.wxml
new file mode 100644
index 0000000..0fce770
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activityOrder/activityOrder.wxml
@@ -0,0 +1,66 @@
+
+
+
+ 全部
+
+
+ 未支付
+ {{counts.init}}
+
+
+ 已支付
+ {{counts.paid}}
+
+
+ 已发货
+ {{counts.send}}
+
+
+
+
+
+
+
+
+ {{item.activity_name}}
+
+
+ {{item.order_id}}
+ {{item.status_text}}
+ {{item.status_text}}
+ {{item.status_text}}
+
+
+
+
+ {{item.title}}
+
+ ¥{{item.price}} × {{item.number}}
+
+
+ 礼盒
+ 购物券
+
+
+
+
+ 订单详情
+ 取消订单
+ 立即支付
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+ 暂无订单
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/activityOrder/activityOrder.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/activityOrder/activityOrder.wxss
new file mode 100644
index 0000000..3abc3ae
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/activityOrder/activityOrder.wxss
@@ -0,0 +1,228 @@
+/*
+ * 亿时代
+ */
+
+.order-tab {
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ display: flex;
+ height: 80rpx;
+ line-height: 80rpx;
+ z-index: 9;
+ background: white;
+}
+
+.order-tab-item {
+ font-size: 28rpx;
+ width: 25%;
+ text-align: center;
+ border-bottom: solid 2rpx #f7f7f7;
+ color: #464854;
+ background: white;
+ position: relative;
+}
+
+.order-tab-item.active {
+ color: #f57e32;
+}
+
+.order-tab-item::after {
+ content: '';
+ position: absolute;
+ width: 30rpx;
+ height: 4rpx;
+ background: transparent;
+ left: calc(50% - 15rpx);
+ bottom: -2rpx;
+}
+
+.order-tab-item.active::after {
+ background: #f57e32;
+}
+
+.state-tips {
+ position: absolute;
+ top: 10rpx;
+ right: 14rpx;
+ background: #e92706;
+ color: #fff;
+ font-size: 24rpx;
+ transform: scale(.7, .7);
+ border-radius: 60rpx 60rpx 60rpx 0;
+ width: 48rpx;
+ height: 34rpx;
+ line-height: 34rpx;
+}
+
+/* 订单列表 */
+
+.order-content {
+ padding: 80rpx 0 20rpx 0;
+}
+
+.order-content-li {
+ background: white;
+ margin-top: 20rpx;
+ position: relative;
+}
+
+.order-name {
+ background: #fff;
+ padding: 20rpx;
+ box-sizing: border-box;
+ border-bottom: solid 1rpx #f3f3f3;
+ display: flex;
+}
+
+.order-name image {
+ background: linear-gradient(#000, #000);
+ background-blend-mode: lighten;
+ background-size: cover;
+ width: 26rpx;
+ height: 26rpx;
+ border-radius: 50%;
+ margin: 8rpx 14rpx 0 0;
+}
+
+.order-store {
+ padding: 20rpx;
+ border-bottom: solid 1rpx #f3f3f3;
+ display: flex;
+}
+
+.order-goods-tips {
+ display: flex;
+}
+
+.order-goods-tips text {
+ display: inline-block;
+ background: #e92706;
+ color: #fff;
+ border-radius: 20rpx;
+ padding: 0 20rpx;
+ height: 42rpx;
+ line-height: 42rpx;
+ font-size: 24rpx;
+ transform: scale(.8, .8);
+}
+
+text.order-goods-tips-color {
+ background: #e6b329;
+}
+
+.order-store-stateText {
+ color: #e6b329;
+ font-size: 26rpx;
+}
+
+.order-store-stateText.red {
+ color: #e92344;
+}
+
+.order-store-stateText.green {
+ color: #79b300;
+}
+
+.order-store-title {
+ flex: 1;
+ color: #999;
+ font-size: 28rpx;
+}
+
+.order-store-orderid {
+ color: #747788;
+ font-size: 25rpx;
+}
+
+.order-store-title text {
+ color: white;
+ font-size: 24rpx;
+ background: #e92344;
+ margin-right: 10rpx;
+ padding: 0 10rpx;
+}
+
+.order-goods {
+ padding: 20rpx;
+ box-sizing: border-box;
+ position: relative;
+}
+
+.order-goods-cover {
+ width: 150rpx;
+ height: 150rpx;
+ vertical-align: top;
+ border-radius: 4rpx;
+}
+
+.order-goods-content {
+ position: absolute;
+ left: 190rpx;
+ top: 20rpx;
+ right: 20rpx;
+ width: calc(100% - 210rpx);
+}
+
+.order-goods-content-name {
+ margin-bottom: 15rpx;
+ font-size: 28rpx;
+ font-weight: 600;
+}
+
+.order-goods-content-price {
+ color: #747788;
+ display: flex;
+ margin-bottom: 14rpx;
+ font-size: 28rpx;
+}
+
+.order-goods-content-price text {
+ color: #f57e32;
+ display: inline-block;
+ margin-right: 10rpx;
+ font-size: 30rpx;
+}
+
+.order-total {
+ padding: 20rpx;
+ box-sizing: border-box;
+ font-size: 26rpx;
+ line-height: 50rpx;
+ color: #747788;
+ display: flex;
+}
+
+.order-total view {
+ margin-right: 30rpx;
+}
+
+.order-total text {
+ color: #e92344;
+ font-weight: bold;
+}
+
+.order-btns {
+ font-size: 25rpx;
+ display: flex;
+ padding: 20rpx;
+ box-sizing: border-box;
+ flex-wrap: wrap;
+ flex-direction: row-reverse;
+}
+
+.order-btn {
+ margin-left: 20rpx;
+ height: 52rpx;
+ line-height: 50rpx;
+ box-sizing: border-box;
+ border: solid 1rpx #747788;
+ padding: 0 20rpx;
+ border-radius: 30rpx;
+}
+
+.order-btn-back {
+ border-color: #f57e32;
+ color: #f57e32;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/address/address.js b/亿时代-本时生活-2021-04-13/本时生活/pages/address/address.js
new file mode 100644
index 0000000..20bc164
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/address/address.js
@@ -0,0 +1,102 @@
+// pages/address/address.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ type : '', //来源类型
+ addressArr : [] //收货地址
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ type: options.type
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow(){
+ this.addressInfo();
+ },
+
+ /* 地址列表
+ */
+ addressInfo(){
+ wx.$api.address.index().then(res=>{
+ this.setData({
+ addressArr: res.data
+ })
+ })
+ },
+
+ /**
+ * 删除地址
+ */
+ addressRemove(e){
+ let id = e.target.dataset.id,
+ index = e.target.dataset.index,
+ list = this.data.addressArr
+
+ list.splice(index,1)
+
+ wx.showModal({
+ title : '提示',
+ content : '是否删除地址',
+ success : res=> {
+ if (res.confirm) {
+ wx.showLoading({
+ title: '删除中',
+ })
+ wx.$api.address.remove(id).then(res=>{
+ this.setData({
+ addressArr: list
+ })
+ wx.showToast({
+ title: res.data,
+ icon : "none"
+ })
+
+ wx.hideLoading()
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 设为默认地址
+ */
+ addressDefault(e){
+ let id = e.currentTarget.dataset.id
+
+ wx.$api.address.setdef(id).then(res=>{
+ this.addressInfo();
+ wx.showToast({
+ title: res.data,
+ icon : "none"
+ })
+ })
+ },
+
+ /**
+ * 选择地址
+ */
+ selectAddress(e){
+ let atAdds = this.data.addressArr[e.currentTarget.dataset.index]
+
+ let pages = getCurrentPages(),
+ prepage = pages[pages.length-2]
+
+ prepage.setData({
+ address: atAdds
+ })
+
+ wx.navigateBack()
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/address/address.json b/亿时代-本时生活-2021-04-13/本时生活/pages/address/address.json
new file mode 100644
index 0000000..36ec88b
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/address/address.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "我的地址"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/address/address.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/address/address.wxml
new file mode 100644
index 0000000..181f38e
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/address/address.wxml
@@ -0,0 +1,40 @@
+
+
+ {{item.name}}{{item.mobile}}
+
+
+ 默认
+
+ {{item.all_address}}
+
+
+
+
+ 选择地址
+
+
+
+ 删除
+ 编辑
+
+
+ 设为默认地址
+
+
+
+
+ 默认地址
+
+
+
+
+
+
+
+
+ 还未添加收货地址
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/address/address.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/address/address.wxss
new file mode 100644
index 0000000..47effc5
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/address/address.wxss
@@ -0,0 +1,112 @@
+
+/**
+ * 亿时代
+ */
+
+ .address-list{
+ border-bottom: 110rpx solid transparent;
+}
+
+.address{
+ padding: 20rpx 30rpx;
+ border-bottom: solid 20rpx #f2f2f2;
+ background: white;
+}
+
+.address-name{
+ font-size: 32rpx;
+ line-height: 50rpx;
+}
+
+.address-name text{
+ color: #747788;
+ padding-left: 10rpx;
+ font-size: 28rpx;
+}
+
+.address-info{
+ padding-bottom: 20rpx;
+ display: flex;
+}
+
+.address-tool{
+ overflow: hidden;
+}
+
+.address-info-tag{
+ background: #30bb29;
+ margin-right: 20rpx;
+ padding: 0 10rpx;
+ height: 32rpx;
+ line-height: 32rpx;
+ color: white;
+ font-size: 22rpx;
+ border-radius: 4rpx;
+ margin-top: 6rpx;
+}
+
+.address-tool-btn{
+ margin-left: 30rpx;
+ float: right;
+ border:solid 1rpx #c0c0c0;
+ height: 46rpx;
+ line-height: 44rpx;
+ padding: 0 30rpx;
+ border-radius: 6rpx;
+ font-size: 24rpx;
+}
+
+.address-tool-btn.yellow {
+ border:solid 1rpx #f57e32;
+ color: #f57e32;
+ padding: 0 14rpx;
+ height: 50rpx;
+ line-height: 50rpx;
+}
+
+.address-tool-btn.acitve{
+ float: left;
+ margin-left: 0;
+ padding: 0;
+ border: none;
+ color: #747788;
+ font-size: 26rpx;
+}
+
+.address-tool-btn.acitve image{
+ margin-right: 10rpx;
+ vertical-align: -7rpx;
+}
+
+.address-tool-btn image {
+ width: 30rpx;
+ height: 30rpx;
+ margin-right: 4rpx;
+ vertical-align: -6rpx;
+}
+
+/* footer */
+
+.address-footer{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ padding-left: 30rpx;
+ padding-right: 30rpx;
+ background: white;
+ z-index: 9;
+ height: 110rpx;
+}
+
+.address-footer navigator{
+ width: 100%;
+ line-height: 80rpx;
+ height: 80rpx;
+ margin: 15rpx 0;
+ text-align: center;
+ background: #f57e32;
+ font-size: 30rpx;
+ color: white;
+ border-radius: 10rpx
+}
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/address_form/address_form.js b/亿时代-本时生活-2021-04-13/本时生活/pages/address_form/address_form.js
new file mode 100644
index 0000000..5df69f0
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/address_form/address_form.js
@@ -0,0 +1,240 @@
+
+/*
+ * 本时生活
+ */
+
+const app = getApp()
+
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ addressInfo: '',
+ type : '', //类型
+ addressId : '',
+ defaultVal :'',
+ name : '',
+ mobile : '',
+ address : '',
+
+ //省份选择
+ areas : [],
+ areaSn : '',
+ areaIndex : 0,
+
+ //市级选择
+ cityList : [],
+ cityId : 0,
+ cityIndex : 0,
+
+ //区域选择
+ regiList : [],
+ regiId : 0,
+ regiIndex : 0,
+
+ cityLayer : false
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ type : options.type
+ })
+ if (options.type == 'Add') {
+ wx.setNavigationBarTitle({
+ title: '添加收货地址'
+ })
+ // 获取位置
+ wx.getLocation({
+ type: 'gcj02',
+ success: res=> {
+ this.setData({
+ longitude : res.longitude,
+ latitude : res.latitude
+ })
+ // 解析坐标
+ getApp().qqmapsdk.reverseGeocoder({
+ location: {
+ latitude : res.latitude,
+ longitude : res.longitude
+ },
+ success: res=>{
+ if(res.message == "query ok"){
+ let addressInfo = res.result.address_component
+ let areaIndex = this.data.areas.findIndex(val => val.name == addressInfo.province)
+ this.setData({
+ areaIndex : areaIndex
+ })
+ this.getProvince()
+ }else{
+ wx.showToast({
+ title: res.message,
+ icon : 'none'
+ })
+ }
+ }
+ })
+ }
+ })
+ this.getProvince()
+ } else if (options.type == 'Compile') {
+ wx.setNavigationBarTitle({
+ title: '编辑收货地址'
+ })
+ this.setData({
+ addressId: options.id
+ })
+ this.getUserAddress()
+ }
+ },
+
+ /**
+ * 获取收货人信息
+ */
+ getUserAddress(){
+ wx.$api.address.edit(this.data.addressId).then(res=>{
+ let areasValue = res.data.provinces.findIndex(val=> val.name == res.data.address.province_name),
+ cityValue = res.data.cities.findIndex(val=> val.name == res.data.address.city_name),
+ regiValue = res.data.districts.findIndex(val=> val.name == res.data.address.district_name)
+ this.setData({
+ name : res.data.address.name,
+ mobile : res.data.address.mobile,
+ areas : res.data.provinces,
+ cityList : res.data.cities,
+ regiList : res.data.districts,
+ areaIndex : areasValue,
+ cityIndex : cityValue,
+ regiIndex : regiValue,
+ areaSn : res.data.address.province_id,
+ cityId : res.data.address.city_id,
+ regiId : res.data.address.district_id,
+ address : res.data.address.address,
+ defaultList : res.data.address,
+ isDefault : res.data.address.is_default
+ })
+ })
+ },
+
+ /**
+ * 获取省信息
+ */
+ getProvince() {
+ wx.$api.address.create().then(res=>{
+ let areaArr = res.data.provinces,
+ areaIndex = this.data.areaIndex
+ this.citylist(areaArr[areaIndex].code)
+ this.setData({
+ areaSn : areaArr[areaIndex].code,
+ areas : areaArr
+ })
+ })
+ },
+
+ /**
+ * 所在省份
+ */
+ areasChange(e) {
+ let area = this.data.areas,
+ index = e.detail.value,
+ atcode = area[index].code
+ if (index != this.data.areaIndex) {
+ this.setData({
+ areaIndex : index,
+ areaSn : atcode
+ })
+
+ // 获取市级列表
+ this.citylist(atcode)
+ }
+ },
+
+ /**
+ * 市级列表
+ */
+ citylist(code) {
+ wx.$api.address.children(code).then(res=>{
+ let cityArr = res.data
+ this.regilist(cityArr[0].code)
+ this.setData({
+ cityId : cityArr[0].code,
+ cityList : cityArr,
+ cityIndex : 0
+ })
+ })
+ },
+
+ /**
+ * 市级下拉筛选
+ */
+ city(e) {
+ let city = this.data.cityList,
+ index = e.detail.value,
+ citycode = city[index].code
+ if (index != this.data.areaIndex) {
+ this.setData({
+ cityIndex: index,
+ cityId : citycode
+ })
+
+ // 获取市级列表
+ this.regilist(citycode)
+ }
+ },
+
+
+ /**
+ * 区列表
+ */
+ regilist(areaCode) {
+ wx.$api.address.children(areaCode).then(res=>{
+ this.setData({
+ regiList : res.data,
+ regiId : res.data[0].code,
+ regiIndex : 0
+ })
+ })
+ },
+
+ /**
+ * 区下拉筛选
+ */
+ regi(e) {
+ let newIndex = e.detail.value
+ this.setData({
+ regiIndex : newIndex,
+ regiId : this.data.regiList[newIndex].code
+ })
+ },
+
+ /**
+ * 保存信息
+ */
+ siteform(e) {
+ if(this.data.type == 'Compile') {
+ // 编辑地址
+ wx.$api.address.keep(this.data.addressId, e.detail.value.name, e.detail.value.mobile, this.data.areaSn, this.data.cityId, this.data.regiId, e.detail.value.address).then(res=>{
+ wx.navigateBack()
+ })
+ } else {
+ // 创建地址
+ wx.$api.address.add(e.detail.value.name, e.detail.value.mobile, this.data.areaSn, this.data.cityId, this.data.regiId, e.detail.value.address, this.data.defaultVal).then(res=>{
+ wx.navigateBack()
+ })
+ }
+ },
+
+ /**
+ * 设为默认地址
+ */
+ addressDefault(e) {
+ let val = e.detail.value
+ this.setData({
+ defaultVal: val
+ })
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/address_form/address_form.json b/亿时代-本时生活-2021-04-13/本时生活/pages/address_form/address_form.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/address_form/address_form.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/address_form/address_form.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/address_form/address_form.wxml
new file mode 100644
index 0000000..065679a
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/address_form/address_form.wxml
@@ -0,0 +1,71 @@
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/address_form/address_form.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/address_form/address_form.wxss
new file mode 100644
index 0000000..7b78406
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/address_form/address_form.wxss
@@ -0,0 +1,148 @@
+/**
+ * 亿时代
+ */
+
+.site-form {
+ background: white;
+ display: block;
+}
+
+.site-btn {
+ padding: 20rpx 30rpx;
+}
+
+.site-input {
+ padding: 0 30rpx 0 200rpx;
+ position: relative;
+ line-height: 90rpx;
+ min-height: 90rpx;
+}
+
+.site-input label {
+ position: absolute;
+ left: 30rpx;
+ top: 0;
+}
+
+.site-input input {
+ height: 90rpx;
+}
+
+.site-input image {
+ width: 38rpx;
+ height: 38rpx;
+ position: absolute;
+ right: 20rpx;
+ top: calc(50% - 19rpx);
+}
+
+.conneColor {
+ width: calc(100%- 100rpx);
+}
+
+.site-input::before {
+ position: absolute;
+ bottom: 0;
+ left: 30rpx;
+ right: 0;
+ height: 1rpx;
+ content: "";
+ background: #e4e6f2;
+}
+
+.site-input:last-child::before {
+ display: none;
+}
+
+.tui-picker-detail {
+ width: 33%;
+}
+
+.site-btn button[size="mini"] {
+ width: 100%;
+ background: #f57e32;
+ height: 80rpx;
+ line-height: 80rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+}
+
+/* pickerView */
+
+.pickerView-back {
+ background: rgba(0, 0, 0, .3);
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ display: none;
+}
+
+.pickerView-back.active {
+ display: block;
+}
+
+.pickerView-layer {
+ position: fixed;
+ bottom: -571rpx;
+ left: 0;
+ width: 100%;
+ background: white;
+ transition: all .3s;
+}
+
+.pickerView-layer.active {
+ bottom: 0;
+}
+
+.pickerView-btn {
+ line-height: 90rpx;
+ font-size: 30rpx;
+ padding: 0 30rpx;
+ display: flex;
+ justify-content: space-between;
+}
+
+.pickerView {
+ height: 480rpx;
+ padding: 0 10rpx;
+}
+
+.pickerView-name {
+ line-height: 80rpx;
+ padding: 0 20rpx;
+ text-align: center;
+}
+
+.pickerView-mask {
+ border-top: solid 1rpx #e4e6f2;
+}
+
+.pickerView-indicator {
+ height: 80rpx;
+}
+
+.pickerView-determine {
+ color: #f57e32;
+}
+
+.pickerView-cancel {
+ color: #747788;
+}
+
+.site-switch {
+ font-size: 32rpx;
+ margin: 30rpx;
+ display: flex;
+ line-height: 40rpx;
+}
+
+.site-switch text {
+ flex: 1;
+}
+
+.site-switch-active {
+ color: #797979;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/chooseTel/chooseTel.js b/亿时代-本时生活-2021-04-13/本时生活/pages/chooseTel/chooseTel.js
new file mode 100644
index 0000000..8a25ceb
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/chooseTel/chooseTel.js
@@ -0,0 +1,151 @@
+
+/*
+ * 本时生活
+ */
+
+const app = getApp()
+
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ wechatUserId: "",
+ loginCode : "",
+ userInfo : "",
+ isLogin : false,
+ iv : '',
+ enData : '',
+ loginTel : [] //用户手机号
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+
+ // 登录方式-活动
+ this.setData({
+ way : options.way
+ })
+
+ if(options.type == "mobiles") {
+ wx.$api.user.mobiles().then(res=>{
+ this.setData({
+ loginTel : res.data
+ })
+ })
+ }else {
+ // 获取用户手机列表
+ const logintel = wx.getStorageSync("users")
+
+ this.setData({
+ loginTel : logintel
+ })
+ }
+ },
+
+ /**
+ * 生命周期函数--页面显示
+ */
+ onShow() {
+ wx.login({
+ success: res => {
+ this.setData({
+ loginCode: res.code
+ })
+ }
+ })
+ },
+
+ /**
+ * 绑定手机号码
+ */
+ mobile(e){
+ if(e.detail.errMsg == "getPhoneNumber:ok"){
+ this.setData({
+ isLogin : true,
+ iv : e.detail.iv,
+ enData : e.detail.encryptedData
+ })
+ this.binMobel()
+ }else{
+ wx.showToast({
+ title: '拒绝了手机号码授权',
+ icon : 'none'
+ })
+ }
+ },
+
+ /**
+ * 绑定手机号码
+ */
+ binMobel(){
+ let code = this.data.loginCode,
+ iv = this.data.iv,
+ mobile = this.data.enData
+
+ wx.$api.enroll.bindmobile(code, iv, mobile).then(res=>{
+ this.setData({
+ isLogin: false
+ })
+
+ getApp().globalData.token = res.data.token
+
+ // 更新全局存储器用户状态
+ getApp().globalData.isUser = true
+
+
+ // 写入缓存
+ wx.setStorage({
+ key : 'token',
+ data : res.data.token
+ })
+
+ if(this.data.way == "activity") {
+ // 回到活动首页
+ wx.reLaunch({
+ url: '/pages/activityInfo/activityInfo'
+ })
+ } else {
+ // 回到个人中心
+ wx.switchTab({
+ url: '/pages/user/user'
+ })
+ }
+ })
+ },
+
+ /**
+ * 点击账号登录
+ */
+ loginGo(e) {
+ let username = e.currentTarget.dataset.name,
+ wechatUser_id = app.globalData.wechatUser
+
+ wx.$api.enroll.tel(wechatUser_id, username).then(res=>{
+ app.globalData.token = res.data.token
+ app.globalData.isUser = true
+
+ // 写入缓存
+ wx.setStorage({
+ key : 'token',
+ data : res.data.token
+ })
+
+ if(this.data.way == "activity") {
+ // 回到活动首页
+ wx.reLaunch({
+ url: '/pages/activityInfo/activityInfo'
+ })
+ } else {
+ // 回到个人中心
+ wx.switchTab({
+ url: '/pages/user/user'
+ })
+ }
+ })
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/chooseTel/chooseTel.json b/亿时代-本时生活-2021-04-13/本时生活/pages/chooseTel/chooseTel.json
new file mode 100644
index 0000000..42c8728
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/chooseTel/chooseTel.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "绑定手机号"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/chooseTel/chooseTel.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/chooseTel/chooseTel.wxml
new file mode 100644
index 0000000..012a561
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/chooseTel/chooseTel.wxml
@@ -0,0 +1,26 @@
+
+
+ 切换手机号登录
+ 轻触账户以登录
+
+
+
+
+
+
+
+ {{item.username}}
+
+ 当前登录
+
+
+
+
+
+
+
+ 您还没有绑定手机号
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/chooseTel/chooseTel.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/chooseTel/chooseTel.wxss
new file mode 100644
index 0000000..317a7bd
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/chooseTel/chooseTel.wxss
@@ -0,0 +1,75 @@
+/* 切换手机号 */
+.chooseTel-title {
+ background: #fff;
+ padding: 40rpx 30rpx;
+ color: #999;
+}
+
+.chooseTel-title text {
+ font-size: 36rpx;
+ font-weight: 600;
+ margin-bottom: 20rpx;
+ display: block;
+ color: #000;
+}
+
+.chooseList {
+ display: flex;
+ background: #fff;
+ line-height: 100rpx;
+ padding: 20rpx;
+ box-sizing: border-box;
+}
+
+.chooseList-left {
+ display: flex;
+}
+
+.chooseList-img {
+ width: 90rpx;
+ height: 90rpx;
+ border-radius: 50%;
+ margin-right: 30rpx;
+}
+
+.chooseList-btn {
+ font-size: 24rpx;
+ background: #00c12d;
+ border-radius: 30rpx;
+ height: 42rpx;
+ line-height: 42rpx;
+ color: #fff;
+ padding: 0 15rpx;
+ margin-top: 28rpx;
+ margin-left: 30rpx;
+}
+
+.chooseAdd {
+ width: calc(100% - 60rpx);
+ margin: 60rpx auto 0;
+ background: #fff;
+ border-radius: 50rpx;
+ line-height: 80rpx;
+ height: 80rpx;
+ text-align: center;
+ box-shadow: 0 0 10rpx rgba(0, 0,0, .05);
+ padding: 0;
+}
+
+.chooseTips {
+ background: #fff;
+ text-align: center;
+ padding: 30rpx 0 50rpx;
+}
+
+.chooseTips image {
+ width: 400rpx;
+ height: 350rpx;
+ display: block;
+ margin: 0 auto 20rpx;
+}
+
+.chooseTips text {
+ font-size: 34rpx;
+ color: #999;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/classify/classify.js b/亿时代-本时生活-2021-04-13/本时生活/pages/classify/classify.js
new file mode 100644
index 0000000..c886244
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/classify/classify.js
@@ -0,0 +1,84 @@
+/*
+ * 本时生活
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ noticeData : '', //公告
+ infoData : '', //权益数据
+ content : '', //内容简介
+ noticeShow : '', //公告开关
+ infoItems : [], //卡券专区
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.indexNav(options.id)
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow () {
+
+ },
+
+ /**
+ * 卡权益分类
+ */
+ indexNav(id) {
+ wx.$api.index.classify(id).then(res=>{
+ this.setData({
+ noticeData : res.data.notice,
+ infoData : res.data.info,
+ infoItems : res.data.items,
+ content : res.data.info.content.replace(/\
{
+ if(!err.login){
+ // 写入缓存
+ wx.setStorage({
+ key : 'token',
+ data : ''
+ })
+ }
+ })
+ },
+
+ /**
+ * 须知展开收起状态
+ */
+ noticeTap() {
+ this.setData({
+ noticeShow : !this.data.noticeShow
+ })
+ },
+
+ /**
+ * 处理未登录时的转跳
+ */
+ userNav(e){
+ let id = e.currentTarget.dataset.id
+ wx.getStorage({
+ key : 'token',
+ success:res=>{
+ wx.navigateTo({
+ url: '/pages/rights/rights?rightsId=' + id
+ })
+ },
+ fail: (err) => {
+ wx.navigateTo({
+ url: "/pages/login/login"
+ })
+ }
+ })
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/classify/classify.json b/亿时代-本时生活-2021-04-13/本时生活/pages/classify/classify.json
new file mode 100644
index 0000000..15b8460
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/classify/classify.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {},
+ "navigationBarBackgroundColor": "#000000",
+ "navigationBarTextStyle": "white",
+ "navigationBarTitleText": "卡券权益"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/classify/classify.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/classify/classify.wxml
new file mode 100644
index 0000000..4b41042
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/classify/classify.wxml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+ {{infoData.two_title}}
+
+
+ {{infoData.three_title == null ? '' : infoData.three_title}}
+
+
+ {{infoData.two_description}}
+
+
+
+
+
+
+
+
+
+ {{noticeData}}
+
+
+
+
+
+ 卡券专区
+
+
+
+ {{item.label}}
+
+
+
+
+
+
+ {{item.title}}
+ {{item.subtitle}}
+
+
+
+
+
+
+ 抱歉, 暂无内容
+
+
+
+
+
+
+
+
+
+
+ 购买前请仔细阅读内容介绍
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/classify/classify.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/classify/classify.wxss
new file mode 100644
index 0000000..0997bb1
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/classify/classify.wxss
@@ -0,0 +1,319 @@
+/* 卡券权益 */
+.cont {
+ width: 100%;
+ overflow: hidden;
+}
+
+.contBack {
+ position: relative;
+ width: 200%;
+ height: 400rpx;
+ left: -50%;
+ text-align: center;
+ background: #000000;
+ border-radius: 0 0 100% 100%;
+ overflow: hidden;
+}
+
+.contBack::after {
+ width: 100%;
+ height: 30rpx;
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ z-index: 2;
+ content: '';
+ background-image: linear-gradient(transparent, rgba(0,0,0,.25));
+}
+
+.classBack {
+ position: absolute;
+ left: 30%;
+ right: 30%;
+ width: 40%;
+ top: 40rpx;
+}
+
+.classCircle {
+ position: relative;
+}
+
+.classCircle::after,
+.contBack::before {
+ position: absolute;
+ border-radius: 50%;
+ content: '';
+ z-index: 1;
+ background-color: rgba(255,255,255,.1);
+}
+
+.classCircle::after {
+ left: 20%;
+ top: -20rpx;
+ width: 260rpx;
+ height: 260rpx;
+}
+
+.contBack::before {
+ right: 20%;
+ top: 55%;
+ width: 300rpx;
+ height: 300rpx;
+}
+
+.rightsCont {
+ position: absolute;
+ z-index: 3;
+ left: calc(30% - 2rpx);
+ right: calc(30% - 2rpx);
+ width: calc(40% + 4rpx);
+ top: 58rpx;
+}
+
+.rightsCont-title {
+ color: #63320a;
+ font-size: 60rpx;
+ margin: 60rpx 0 20rpx;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+}
+
+.rightsCont-btn {
+ background-color: #f4dfcc;
+ width: 100%;
+ line-height: 70rpx;
+ font-size: 38rpx;
+ color: #2d2d2d;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+}
+
+.rightsCont-tips {
+ color: #fff;
+}
+
+/* 须知 */
+.notice,
+.indexNews,
+.special {
+ border-radius: 10rpx;
+ padding: 25rpx 20rpx;
+ box-sizing: border-box;
+ background: #fff;
+ margin: 30rpx 20rpx;
+}
+
+.indexColor {
+ background: #c4c4c4;
+}
+
+.noticeTitle {
+ color: #747d86;
+ display: flex;
+ line-height: 46rpx;
+}
+
+.noticeTitle-flex {
+ flex: 1;
+ display: flex;
+ font-size: 30rpx;
+ color: #000;
+}
+
+.noticeTitle-img {
+ width: 46rpx;
+ height: 46rpx;
+ margin-right: 20rpx;
+}
+
+.noticeText {
+ font-size: 26rpx;
+ height: 0;
+ overflow: hidden;
+}
+
+.noticeText.active {
+ height: auto;
+}
+
+.noticeText-top {
+ margin: 30rpx 0 10rpx;
+ font-weight: 600;
+}
+
+.noticeText-cont {
+ line-height: 60rpx;
+}
+
+.noticeTitle-row {
+ width: 32rpx;
+ height: 32rpx;
+ margin-top: 6rpx;
+ transform:rotate(-180deg);
+}
+
+.noticeTitle-row.active {
+ transform: rotate(90deg);
+}
+
+
+/* 公告 */
+.indexNews {
+ display: flex;
+ font-size: 28rpx;
+ line-height: 46rpx;
+}
+
+.indexNews image {
+ width: 42rpx;
+ height: 42rpx;
+ margin: 4rpx 20rpx 0 0;
+}
+
+/* 卡券专区 */
+.special-list {
+ margin: 20rpx -10rpx 0;
+ flex-wrap: wrap;
+ display: flex;
+}
+
+.special-label {
+ margin: 10rpx;
+ width: calc(50% - 20rpx);
+ height: 330rpx;
+ flex: 0 0 calc(50% - 20rpx);
+ border: 4rpx solid #fb9b00;
+ background-color: #ffe0b8;
+ border-radius: 10rpx;
+ text-align: center;
+ padding: 20rpx 0;
+ box-sizing: border-box;
+ position: relative;
+}
+
+.special-label:last-child {
+ margin-bottom: 0;
+}
+
+.special-rebate {
+ position: absolute;
+ top: -30rpx;
+ right: 10rpx;
+ background: #fe0002;
+ color: #fff;
+ border-radius: 30rpx;
+ line-height: 52rpx;
+ height: 52rpx;
+ font-size: 26rpx;
+ padding: 0 20rpx;
+ font-weight: 600;
+}
+
+.welfareCont-top{
+ white-space: nowrap;
+ flex-direction: row;
+ align-items: center;
+ justify-content: space-around;
+ width: 100%;
+ padding: 0 10rpx;
+ box-sizing: border-box;
+ margin: 10rpx 0;
+}
+
+.welfareCont-list-img {
+ border: 2rpx solid #eccc69;
+ border-radius: 50%;
+ width: 100rpx;
+ height: 100rpx;
+ display: inline-block;
+ margin: 0 10rpx;
+ overflow: hidden;
+}
+
+.welfareCont-list-img image {
+ width: 100%;
+ height: 100%;
+}
+
+
+.special-text {
+ padding: 0 15rpx;
+ box-sizing: border-box;
+ position: relative;
+ font-size: 26rpx;
+ border-top: 4rpx dashed #fb9b00;
+ margin-top: 20rpx;
+ padding-top: 20rpx;
+}
+
+.special-name {
+ color: #6f4a2d;
+ font-weight: 600;
+ font-size: 28rpx;
+}
+
+.special-tips {
+ background-color: #242424;
+ color: #fff;
+ border-radius: 10rpx;
+ padding: 4rpx 20rpx;
+ line-height: 46rpx;
+ height: 46rpx;
+ margin-top: 20rpx;
+ font-size: 24rpx;
+ display: inline-block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+/* 滚动 */
+/*首页跑马灯效果*/
+@keyframes around {
+ from {
+ margin-left: 60rpx;
+ }
+
+ to {
+ /* var接受传入的变量 */
+ margin-left: var(--marqueeWidth--);
+ }
+}
+
+.marquee_container {
+ width: calc(100% - 40rpx);
+ overflow: hidden;
+}
+
+.marquee_container:hover {
+ /* 不起作用 */
+ animation-play-state: paused;
+}
+
+.marquee_text {
+ font-size: 28rpx;
+ display: inline-block;
+ white-space: nowrap;
+}
+
+.marquee_text.active {
+ animation-name: around;
+ animation-duration: 20s;
+ /*过渡时间*/
+ animation-iteration-count: infinite;
+ animation-timing-function: linear;
+}
+
+
+/* 权益提示 */
+.legalTips {
+ text-align: center;
+ font-size: 26rpx;
+ color: #999;
+}
+
+.legalTips image {
+ width: 180rpx;
+ height: 180rpx;
+ display: block;
+ margin: 0 auto;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/coupon/coupon.js b/亿时代-本时生活-2021-04-13/本时生活/pages/coupon/coupon.js
new file mode 100644
index 0000000..18a1096
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/coupon/coupon.js
@@ -0,0 +1,96 @@
+// pages/coupon/coupon.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ couponArr : '',
+ coupons : [],
+ count : '',
+ couponLabel : [
+ { title : "未使用", used: 0 },
+ { title : "已使用", used: 1 },
+ { title : "已过期", used: 2 }
+ ],
+ stateType : '0', //卡券状态
+ barHeight : getApp().globalData.statusBarHeight,
+ type : ''
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ type : options.type
+ })
+ },
+
+ /**
+ * tabs
+ */
+ orderTab(e){
+ if(this.data.stateType != e.currentTarget.dataset.state){
+ this.setData({
+ stateType: e.currentTarget.dataset.state
+ })
+
+ // 获取卡权益
+ this.couponInfo()
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow () {
+ // 获取列表
+ this.couponInfo();
+ },
+
+ /**
+ * 卡券列表
+ */
+ couponInfo() {
+ wx.$api.user.coupon(this.data.stateType).then(res=>{
+ this.setData({
+ count : res.data.count,
+ coupons : res.data.list
+ })
+ })
+ },
+
+ /**
+ * 去使用卡券
+ */
+ // applyTap(e) {
+ // let id = e.currentTarget.dataset.id
+ // wx.navigateTo({
+ // url: '/pages/couponDetails/couponDetails?id=' + id
+ // })
+ // },
+
+ /**
+ * 查看优惠券分组
+ */
+ couponTap(e) {
+ let id = e.currentTarget.dataset.id,
+ status = e.currentTarget.dataset.status
+ wx.navigateTo({
+ url: '/pages/couponArr/couponArr?id=' + id + '&status=' + status
+ })
+ },
+
+ publicTap() {
+ if(this.data.type == 'couponPublic'){
+ wx.switchTab({
+ url: '/pages/user/user'
+ })
+ }else {
+ wx.navigateBack({
+ delta: 1
+ })
+ }
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/coupon/coupon.json b/亿时代-本时生活-2021-04-13/本时生活/pages/coupon/coupon.json
new file mode 100644
index 0000000..0de239e
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/coupon/coupon.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationStyle" : "custom"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/coupon/coupon.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/coupon/coupon.wxml
new file mode 100644
index 0000000..ad60812
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/coupon/coupon.wxml
@@ -0,0 +1,71 @@
+
+
+
+
+
+ {{item.title}}
+ ({{count.init}}张)
+ ({{count.used}}张)
+ ({{count.pass}}张)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.name}}
+ {{item.startTime}} 至 {{item.endTime}}
+ 活动来源: {{item.activity_name}}
+ 使用时间:{{item.used_at}}
+
+
+
+ 去使用
+
+
+
+
+
+
+
+
+
+ 查看全部{{item.count}}张卡券
+
+
+
+
+
+
+
+
+
+ 暂无优惠券
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/coupon/coupon.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/coupon/coupon.wxss
new file mode 100644
index 0000000..95086d2
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/coupon/coupon.wxss
@@ -0,0 +1,247 @@
+.publicHeader {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 9;
+ width: 100%;
+ height: 90px;
+ display: flex;
+ line-height: 44px;
+ background: #fff;
+ text-align: center;
+}
+
+.publicHeader-icon {
+ width: 20px;
+ height: 20px;
+ position: absolute;
+ left: 20rpx;
+ z-index: 9;
+ margin-top: 12px;
+}
+
+.publicHeader-title {
+ width: 100%;
+ text-align: center;
+}
+
+/* 优惠券 */
+.couponTab {
+ display: flex;
+ background: #fff;
+ position: fixed;
+ width: 100%;
+ left: 0;
+ height: 100rpx;
+ top: 90px;
+ z-index: 99;
+}
+
+.couponTab-label {
+ flex: 3;
+ text-align: center;
+ position: relative;
+ padding: 10rpx 0 0;
+ font-size: 26rpx;
+}
+
+.couponTab-label::after {
+ position: absolute;
+ content: '';
+ left: calc(50% - 20rpx);
+ bottom: 0;
+ width: 40rpx;
+ background: transparent;
+ height: 6rpx;
+ border-radius: 30%;
+}
+
+.couponTab-label.active {
+ color: #f57e32
+}
+
+.couponTab-label.active::after {
+ background: #f57e32
+}
+
+.couponTab-label view {
+ font-size: 24rpx;
+ margin-top: 6rpx;
+}
+
+
+/* 列表 */
+.coupon {
+ margin-top: 170px;
+}
+
+.couponCont {
+ margin: 0 20rpx 20rpx;
+ width: calc(100% - 40rpx);
+ border-radius: 10rpx;
+ overflow: hidden;
+}
+
+.couponList {
+ background: #fff;
+ width: 100%;
+ height: 160rpx;
+ position: relative;
+}
+
+.couponList-left {
+ position: relative;
+ left: 0;
+ top: 0;
+ width: 160rpx;
+ height: 160rpx;
+}
+
+.couponList-img {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+}
+
+.couponList-icon {
+ position: absolute;
+ left: calc(50% - 56rpx);
+ top: calc(50% - 50rpx);
+ z-index: 2;
+ width: 100rpx;
+ height: 100rpx;
+ background: #fff;
+ border-radius: 50%;
+ padding: 20rpx;
+ box-sizing: border-box;
+}
+
+.couponList-icon image {
+ width: 100%;
+ height: 100%;
+}
+
+.couponList-center {
+ position: absolute;
+ left: 180rpx;
+ top: 35rpx;
+ width: calc(100% - 330rpx);
+}
+
+.couponList-center.active {
+ top: 15rpx;
+}
+
+.couponList-title {
+ margin-bottom: 10rpx;
+ font-size: 28rpx;
+ font-weight: 600;
+}
+
+.couponList-time,
+.couponList-used {
+ font-size: 24rpx;
+ color: grey;
+}
+
+.couponList-used {
+ margin-top: 14rpx;
+ color: grey;
+}
+
+.couponList-right {
+ background: #ee8e44;
+ color: #fff;
+ border-radius: 30rpx;
+ width: 110rpx;
+ text-align: center;
+ height: 50rpx;
+ line-height: 50rpx;
+ position: absolute;
+ right: 20rpx;
+ top: 55rpx;
+ font-size: 24rpx;
+}
+
+.couponList-right.active {
+ background: #dddddd;
+}
+
+.couponMore {
+ font-size: 28rpx;
+ color: #686868;
+ position: relative;
+ height: 120rpx;
+}
+
+.couponMore::after,
+.couponMore::before {
+ position: absolute;
+ content: '';
+ height: 20rpx;
+ border-radius: 10rpx;
+ background: #fff;
+ box-shadow: 0 0 20rpx rgba(0, 0, 0, .1);
+ z-index: 1;
+ height: 30rpx;
+}
+
+.couponMore::after {
+ width: calc(100% - 40rpx);
+ top: 70rpx;
+ left: 20rpx;
+}
+
+.couponMore::before {
+ width: calc(100% - 80rpx);
+ top: 90rpx;
+ left: 40rpx;
+}
+
+.couponMore-text {
+ display: flex;
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ z-index: 99;
+ height: 80rpx;
+ border-radius: 0 0 10rpx 10rpx;
+ line-height: 80rpx;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ background: #fff;
+ box-shadow: 0 0 10rpx rgba(0, 0, 0, .1);
+}
+
+.couponMore-title {
+ flex: 1;
+}
+
+.couponMore-arrow {
+ width: 28rpx;
+ height: 28rpx;
+ margin-top: 26rpx;
+}
+
+.couponCont.active .couponList-img,
+.couponCont.active .couponList-icon {
+ -webkit-filter: grayscale(100%);
+ -moz-filter: grayscale(100%);
+ -ms-filter: grayscale(100%);
+ -o-filter: grayscale(100%);
+ filter: grayscale(100%);
+ filter: gray;
+}
+
+.coupoTips {
+ position: absolute;
+ top: 22rpx;
+ right: 20rpx;
+ z-index: 99;
+ width: 120rpx;
+ height: 120rpx;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/couponArr/couponArr.js b/亿时代-本时生活-2021-04-13/本时生活/pages/couponArr/couponArr.js
new file mode 100644
index 0000000..51856a7
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/couponArr/couponArr.js
@@ -0,0 +1,78 @@
+// pages/couponArr/couponArr.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ id : '',
+ status : '',
+ couponArr : '', //卡券组列表
+ page : 1, //分页
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ id : options.id,
+ status : options.status
+ })
+
+ // 获取卡券组列表
+ this.couponInfo();
+ },
+
+ /**
+ * 卡券组列表
+ */
+ couponInfo(page) {
+ wx.$api.user.couponArr(this.data.id, this.data.status, page || '').then(res=>{
+ let listArr = this.data.couponArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ couponArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取团购列表
+ this.couponInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ this.couponInfo(pageNumber)
+ }
+ }
+
+ /**
+ * 去使用卡券
+ */
+ // applyTap(e) {
+ // let id = e.currentTarget.dataset.id
+ // wx.navigateTo({
+ // url: '/pages/couponDetails/couponDetails?id=' + id
+ // })
+ // }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/couponArr/couponArr.json b/亿时代-本时生活-2021-04-13/本时生活/pages/couponArr/couponArr.json
new file mode 100644
index 0000000..977aa6f
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/couponArr/couponArr.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "我的卡券"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/couponArr/couponArr.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/couponArr/couponArr.wxml
new file mode 100644
index 0000000..55ac026
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/couponArr/couponArr.wxml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.name}}
+ {{item.startTime}} 至 {{item.endTime}}
+ 活动来源: {{item.activity_name}}
+ 使用时间:{{item.used_at}}
+
+
+
+ 去使用
+
+
+
+
+
+
+
+
+
+ 查看全部{{item.count}}张卡券
+
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无优惠券
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/couponArr/couponArr.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/couponArr/couponArr.wxss
new file mode 100644
index 0000000..874341a
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/couponArr/couponArr.wxss
@@ -0,0 +1,173 @@
+
+/* 列表 */
+.coupon {
+ margin: 20rpx 0;
+}
+
+.couponCont {
+ margin: 0 20rpx 20rpx;
+ width: calc(100% - 40rpx);
+ border-radius: 10rpx;
+ overflow: hidden;
+}
+
+.couponList {
+ background: #fff;
+ width: 100%;
+ height: 160rpx;
+ position: relative;
+}
+
+.couponList-left {
+ position: relative;
+ left: 0;
+ top: 0;
+ width: 160rpx;
+ height: 160rpx;
+}
+
+.couponList-img {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+}
+
+.couponList-icon {
+ position: absolute;
+ left: calc(50% - 56rpx);
+ top: calc(50% - 50rpx);
+ z-index: 2;
+ width: 100rpx;
+ height: 100rpx;
+ background: #fff;
+ border-radius:50%;
+ padding: 20rpx;
+ box-sizing: border-box;
+}
+
+.couponList-icon image {
+ width: 100%;
+ height: 100%;
+}
+
+.couponList-center {
+ position: absolute;
+ left: 180rpx;
+ top: 35rpx;
+ width: calc(100% - 330rpx);
+}
+
+.couponList-center.active {
+ top: 15rpx;
+}
+
+.couponList-title {
+ margin-bottom: 10rpx;
+ font-size: 28rpx;
+ font-weight: 600;
+}
+
+.couponList-time, .couponList-used {
+ font-size: 24rpx;
+ color: grey;
+}
+
+.couponList-used {
+ margin-top: 14rpx;
+}
+
+.couponList-right {
+ background: #ee8e44;
+ color: #fff;
+ border-radius: 30rpx;
+ width: 110rpx;
+ text-align: center;
+ height: 50rpx;
+ line-height: 50rpx;
+ position: absolute;
+ right: 20rpx;
+ top: 55rpx;
+ font-size: 24rpx;
+}
+
+.couponList-right.active {
+ background: #dddddd;
+}
+
+.couponMore {
+ font-size: 28rpx;
+ color: #686868;
+ position: relative;
+ height: 120rpx;
+}
+
+.couponMore::after, .couponMore::before {
+ position: absolute;
+ content: '';
+ height: 20rpx;
+ border-radius: 10rpx;
+ background: #fff;
+ box-shadow: 0 0 20rpx rgba(0, 0,0, .1);
+ z-index: 1;
+ height: 30rpx;
+}
+
+.couponMore::after {
+ width: calc(100% - 40rpx);
+ top: 70rpx;
+ left: 20rpx;
+}
+
+.couponMore::before {
+ width: calc(100% - 80rpx);
+ top: 90rpx;
+ left: 40rpx;
+ }
+
+.couponMore-text {
+ display: flex;
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ z-index: 99;
+ height: 80rpx;
+ border-radius: 0 0 10rpx 10rpx;
+ line-height: 80rpx;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ background: #fff;
+ box-shadow: 0 0 10rpx rgba(0, 0,0, .1);
+}
+
+.couponMore-title {
+ flex: 1;
+}
+
+.couponMore-arrow {
+ width: 28rpx;
+ height: 28rpx;
+ margin-top: 26rpx;
+}
+
+
+.couponCont.active .couponList-img, .couponCont.active .couponList-icon {
+ -webkit-filter: grayscale(100%);
+ -moz-filter: grayscale(100%);
+ -ms-filter: grayscale(100%);
+ -o-filter: grayscale(100%);
+ filter: grayscale(100%);
+ filter: gray;
+}
+
+.coupoTips {
+ position: absolute;
+ top: 22rpx;
+ right: 20rpx;
+ z-index: 99;
+ width: 120rpx;
+ height: 120rpx;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/couponDetails/couponDetails.js b/亿时代-本时生活-2021-04-13/本时生活/pages/couponDetails/couponDetails.js
new file mode 100644
index 0000000..e75b43c
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/couponDetails/couponDetails.js
@@ -0,0 +1,213 @@
+// pages/couponDetails/couponDetails.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ id : 0, //优惠券id
+ longitude : 0, //经度
+ latitude : 0, //纬度
+ details : '', //优惠券信息
+ stores : [], //商家列表
+ content : '', //内容介绍
+ remark : '', //使用须知
+ qrcode : '', //二维码
+ barcode : '', //条形码
+ merchantcardinfo:'', //商家券信息
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+
+ onLoad (options) {
+
+ // 优惠券id
+ this.setData({
+ id :options.id
+ })
+
+ // 获取二维码
+ this.detailsCode()
+
+ // 获取条形码
+ this.detailsBarcode()
+ },
+
+ onShow(){
+ this.getCity();
+
+ // 检查定位是否为空
+ // if(this.data.latitude == 0 && this.data.longitude == 0){
+ // wx.getSetting({
+ // success: res=>{
+ // this.getCity()
+ // }
+ // })
+ // }
+ },
+
+ /**
+ * 获取城市信息
+ */
+ getCity(){
+ wx.getLocation({
+ success: res => {
+ this.setData({
+ latitude : res.latitude,
+ longitude : res.longitude
+ })
+
+ },
+ complete: () => {
+ // 获取详情信息
+ this.detailsInfo();
+ }
+ })
+ },
+
+ /**
+ * 二维码
+ */
+ detailsCode() {
+ let coupon_id = this.data.id
+ wx.$api.user.qrcode(coupon_id).then(res=>{
+ this.setData({
+ qrcode : res.data.qrcode
+ })
+ })
+ },
+
+ /**
+ * 条形码
+ */
+ detailsBarcode() {
+ let coupon_id = this.data.id
+ wx.$api.user.barcode(coupon_id).then(res=>{
+ this.setData({
+ barcode : res.data.barcode
+ })
+ })
+ },
+
+ /**
+ * 详情信息
+ */
+ detailsInfo() {
+ let coupon_id = this.data.id,
+ user_lng = this.data.longitude,
+ user_lat = this.data.latitude
+ wx.$api.user.couponinfo(coupon_id, user_lng, user_lat).then(res=>{
+ let stores = res.data.stores
+ stores.map(res=>{
+ let distance = res.distance
+ if(res.distance > 1000){
+ distance = (distance / 1000) + "km"
+ }else{
+ distance = distance + "m"
+ }
+ res.km = distance
+ })
+
+ this.setData({
+ details : res.data.info,
+ stores : stores,
+ remark : res.data.info.right.remark.replace(/\
{
+ if(res.tapIndex==0){
+ wx.makePhoneCall({
+ phoneNumber: tel
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 查看门店详情页
+ */
+ detailsTap(e) {
+ let store_id = e.currentTarget.dataset.id,
+ user_lng = this.data.longitude,
+ user_lat = this.data.latitude
+
+ wx.navigateTo({
+ url: '/pages/storeDetails/storeDetails?store_id=' + store_id + '&user_lng=' + user_lng + '&user_lat=' + user_lat,
+ })
+ },
+
+ /**
+ * 加入微信卡包
+ */
+ join(e) {
+ let cardId = this.data.id
+ wx.$api.user.jssdk(cardId).then(res=>{
+ let pay = JSON.parse(res.data)
+ wx.addCard({
+ cardList : pay,
+ success : res => {
+ // 获取详情信息
+ this.detailsInfo();
+ },fail : res=> {
+ }
+ })
+ })
+ },
+
+ /**
+ * 商家券信息
+ */
+ getMerchantCardInfo(){
+ let coupon_id = this.data.id
+ wx.$api.user.merchant_card(coupon_id).then(res=>{
+ this.setData({
+ merchantcardinfo : res.data
+ })
+ })
+ },
+
+ /**
+ * 小程序插件领取
+ */
+ getcoupon(params) {
+ let detail = params.detail
+ if(detail.errcode !=='OK'){
+ wx.showToast({
+ title : detail.errmsg,
+ icon : 'none'
+ })
+ }else{
+ if(detail.send_coupon_result[0].code !=='SUCCESS'){
+ wx.showToast({
+ title : detail.send_coupon_result[0].message,
+ icon : 'none'
+ })
+ }else{
+ wx.showToast({
+ title : '领取成功',
+ icon : 'none'
+ })
+ }
+
+ }
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/couponDetails/couponDetails.json b/亿时代-本时生活-2021-04-13/本时生活/pages/couponDetails/couponDetails.json
new file mode 100644
index 0000000..649c84c
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/couponDetails/couponDetails.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "send-coupon": "plugin://sendCoupon/send-coupon"
+ },
+ "navigationBarTitleText": "卡券详情"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/couponDetails/couponDetails.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/couponDetails/couponDetails.wxml
new file mode 100644
index 0000000..0ab2f15
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/couponDetails/couponDetails.wxml
@@ -0,0 +1,114 @@
+
+
+
+
+ {{details.name}}
+
+
+ 有效期: {{details.startTime}} - {{details.endTime}}
+
+
+ 活动来源 : {{details.activity_name}}
+
+ 劵码
+
+
+
+ {{details.code}}
+
+
+
+
+ 请出示以上券码给网点工作人员
+
+
+
+
+
+ 已加入微信卡包
+
+
+ 加入微信卡包
+
+
+
+
+
+
+ 已加入微信卡包
+
+
+ 加入微信卡包
+
+
+
+
+
+
+
+
+ 适用门店
+
+
+ 查看所有
+
+
+
+
+
+ 您尚未授权本时生活开启定位服务
+ 不能看到附近的商家哦,点击下方按钮开启
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+
+ {{item.address}}
+ {{item.km}}
+
+
+
+
+
+
+
+
+
+ 暂无门店
+
+
+
+
+
+
+
+
+
+ 使用须知
+
+
+
+
+
+
+
+
+
+
+ 内容介绍
+
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/couponDetails/couponDetails.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/couponDetails/couponDetails.wxss
new file mode 100644
index 0000000..82d7ede
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/couponDetails/couponDetails.wxss
@@ -0,0 +1,215 @@
+/* 卡券详情 */
+.details {
+ background: #fff;
+ margin: 20rpx;
+ width: calc(100% - 40rpx);
+ border-radius: 20rpx;
+ padding: 30rpx;
+ box-sizing: border-box;
+ box-shadow: 0 0 20rpx rgba(0, 0,0, .1);
+}
+
+.detailsTop {
+ border-bottom: 2rpx dashed #c8c8c8;
+ padding-bottom: 40rpx;
+}
+
+.detailsTop-name {
+ font-size: 36rpx;
+ font-weight: 600;
+ margin-bottom: 20rpx;
+}
+
+.detailsTop-time {
+ color: #7e7e7e;
+ font-size: 26rpx;
+}
+
+.detailsCode {
+ text-align: center;
+ padding: 0 0 20rpx;
+ margin: 40rpx 0 30rpx;
+}
+
+.detailsCode image {
+ width: 300rpx;
+ height: 300rpx;
+ margin-bottom: 30rpx;
+}
+
+.detailsCode-text, .detailsStore-row {
+ color: #949494;
+ font-size: 28rpx;
+}
+
+.detailsCode-text {
+ text-align: center;
+ font-size: 32rpx;
+ font-weight: 600;
+ color: #000;
+}
+
+.detailsCode-text text {
+ color: #999;
+ font-weight: normal;
+ font-size: 26rpx;
+}
+
+.detailsStore {
+ border-top: 2rpx #c8c8c8 solid;
+ padding-top: 40rpx;
+}
+
+.detailsStore-top, .detailsStore-row {
+ display: flex;
+ line-height: 30rpx;
+ margin-bottom: 20rpx;
+}
+
+.detailsStore-title {
+ flex: 1;
+ font-weight: 600;
+}
+
+.detailsStore-row image {
+ width: 26rpx;
+ height: 26rpx;
+ margin: 3rpx 0 0 6rpx;
+}
+
+.detailsStore-list {
+ position: relative;
+ margin-bottom: 40rpx;
+}
+
+.detailsStore-list:last-child {
+ margin-bottom: 0;
+}
+
+.detailsStore-logo {
+ width: 100rpx;
+ height: 100rpx;
+ border-radius: 10rpx;
+}
+
+.detailsStore-cont {
+ position: absolute;
+ left: 130rpx;
+ top: 0;
+ width: calc(100% - 130rpx);
+ display: flex;
+}
+
+.detailsStore-left {
+ width: calc(100% - 90rpx);
+ margin-right: 30rpx;
+}
+
+.detailsStore-tel {
+ width: 60rpx;
+ height: 60rpx;
+ margin-top: 25rpx;
+}
+
+.detailsStore-place {
+ font-size: 24rpx;
+ line-height: 40rpx;
+ color: #5a5a5a;
+ display: flex;
+}
+
+.detailsStore-place text {
+ flex: 1;
+ display: inline-block;
+ font-size: 28rpx;
+ margin-right: 20rpx;
+}
+
+
+.detailsStore-name {
+ margin-bottom: 20rpx;
+}
+
+.detailsText {
+ padding: 30rpx 30rpx 20rpx;
+ box-sizing: border-box;
+}
+
+.detailsText-title {
+ font-size: 32rpx;
+ font-weight: 600;
+ margin-bottom: 20rpx;
+}
+
+.detailsText-tips {
+ font-size: 26rpx;
+ line-height: 50rpx;
+ color: #555557;
+ padding-bottom: 20rpx;
+}
+
+.detailsCode-join {
+ color: #ee8e44;
+ font-size: 24rpx;
+ border-radius: 50rpx;
+ border: 2rpx solid #ee8e44;
+ padding: 10rpx 20rpx;
+ display: inline-block;
+ margin-top: 30rpx;
+}
+
+.detailsCode-join.active {
+ border: 2rpx solid #999;
+ color: #999;
+}
+
+.source{
+ margin: 30rpx 0;
+ font-size: 28rpx;
+}
+
+.location {
+ background: white;
+ width: 100%;
+ text-align: center;
+ margin: 60rpx 0 0;
+}
+
+.location text {
+ font-size: 28rpx;
+ display: block;
+ line-height: 46rpx;
+ color: #999;
+}
+
+.location-btn[size="mini"] {
+ background-color: #ee8e44;
+ color: #fff;
+ font-size: 26rpx;
+ line-height: 66rpx;
+ margin-top: 30rpx;
+}
+
+.location-img {
+ width: 150rpx;
+ height: 120rpx;
+ margin-bottom: 20rpx;
+}
+
+.detailsBar {
+ text-align: center;
+ padding: 0 50rpx;
+ box-sizing: border-box;
+ margin-top: 60rpx;
+ margin-bottom: 40rpx;
+}
+
+
+.detailsBar image {
+ width: 100%;
+}
+
+.detailsBar .detailsCode-text {
+ margin-bottom: 10px;
+ color: #000;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/frozen/frozen.js b/亿时代-本时生活-2021-04-13/本时生活/pages/frozen/frozen.js
new file mode 100644
index 0000000..725a08e
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/frozen/frozen.js
@@ -0,0 +1,40 @@
+/*
+ * 本时生活
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ type : '', //类型
+ frozenData : [], //数组列表
+ blockeds : '', //待发放金额
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ type : options.type,
+ blockeds : options.blockeds
+ })
+ // 获取冻结列表
+ this.frozenInfo()
+ },
+
+ /**
+ * 冻结列表
+ */
+ frozenInfo() {
+ wx.$api.user.ungrants(this.data.type).then(res=>{
+ this.setData({
+ frozenData: res.data
+ })
+ })
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/frozen/frozen.json b/亿时代-本时生活-2021-04-13/本时生活/pages/frozen/frozen.json
new file mode 100644
index 0000000..aa6068c
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/frozen/frozen.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "待发放"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/frozen/frozen.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/frozen/frozen.wxml
new file mode 100644
index 0000000..25b4fb9
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/frozen/frozen.wxml
@@ -0,0 +1,28 @@
+
+
+
+ 待发放(额度)
+ {{blockeds}}
+
+ 待发放期数详情
+ 共 {{frozenData.length}} 期
+
+
+ 分期
+
+
+ 第{{item.num}}期
+ 发放时间:{{item.start_at}}
+
+
+ +{{item.variable}}
+ 发放额度
+
+
+
+
+
+
+
+ 抱歉,目前暂无内容~
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/frozen/frozen.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/frozen/frozen.wxss
new file mode 100644
index 0000000..adcbeee
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/frozen/frozen.wxss
@@ -0,0 +1,101 @@
+/* 待发放 */
+.frozenTop {
+ background: #3e3c37;
+ color: #e7e4d5;
+ margin: 20rpx;
+ padding: 40rpx;
+ box-sizing: border-box;
+ border-radius: 20rpx;
+ font-size: 34rpx;
+ position: relative;
+ overflow: hidden;
+}
+
+.frozenTop-number {
+ font-size: 40rpx;
+ font-weight: 600;
+ margin-top: 30rpx;
+}
+
+.frozenTop-tips {
+ position: absolute;
+ top: 0;
+ right: 0;
+ background: #030200;
+ color: #fff;
+ font-size: 28rpx;
+ padding: 12rpx 20rpx;
+ border-radius: 0 0 20rpx 20rpx;
+ display: flex;
+}
+
+.frozenTop-tips image {
+ width: 30rpx;
+ height: 30rpx;
+ margin: 4rpx 10rpx 0 0;
+}
+
+.frozenTop-btn {
+ position: absolute;
+ top: 110rpx;
+ right: 40rpx;
+ background: #dab684;
+ color: #fff;
+ font-size: 28rpx;
+ border-radius: 80rpx;
+ padding: 8rpx 30rpx;
+}
+
+.frozenCont {
+ background-color: #fff;
+ margin: 30rpx 20rpx;
+ border-radius: 20rpx;
+ font-size: 36rpx;
+}
+
+.frozenTitle {
+ padding: 20rpx;
+ box-sizing: border-box;
+ color: #9c9c9c;
+}
+
+.frozenList {
+ padding: 20rpx;
+ display: flex;
+ font-size: 32rpx;
+}
+
+.frozenList-left {
+ flex: 1;
+ line-height: 50rpx;
+}
+
+.frozenList-number {
+ line-height: 50rpx;
+ text-align: center;
+}
+
+.frozenList-name {
+ display: flex;
+}
+
+.frozenList-name image {
+ width: 32rpx;
+ height: 32rpx;
+ margin: 10rpx 10rpx 0 0;
+}
+
+.frozenList-time {
+ padding-left: 40rpx;
+}
+
+.frozenList-variable,
+.frozenList-time {
+ font-size: 26rpx;
+ color: #aaaaaa;
+}
+
+.frozenList-yellow {
+ color: #317afa;
+ font-weight: 600;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.js b/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.js
new file mode 100644
index 0000000..e060074
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.js
@@ -0,0 +1,240 @@
+
+/*
+ * 本时生活
+ */
+
+const app = getApp()
+
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ swiperCurrent :0,
+ current :0, //轮播图当前的下标
+ dots :true,
+ cityAll : '',
+ statusBarHeight : getApp().globalData.systInfo.statusBarHeight,
+ longitude : 0, //经度
+ latitude : 0, //纬度
+ adverts : [], //轮播图
+ stateType : "silver",
+ cardArr : [], //权益数组
+ activities : [], //周五福利
+ isUser : false, //用户登录状态
+ noticeData : '', //首页公告
+ loading : true, //骨架屏加载
+ address : {
+ city: "", //市
+ area: "", //区
+ city_code: "", //市编号
+ area_code: "" //区编号
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow () {
+ this.locaTion()
+ // 获取用户登录状态
+ this.setData({
+ isUser : getApp().globalData.isUser
+ })
+ },
+
+ /**
+ * 获取位置
+ */
+ locaTion(){
+ wx.getLocation({
+ success: res => {
+ this.setData({
+ latitude : res.latitude,
+ longitude : res.longitude
+ })
+
+ },
+ complete: () => {
+ // 获取卡权益
+ this.indexInfo();
+ }
+ })
+ },
+
+ /**
+ * 卡权益
+ */
+ indexInfo() {
+ if(this.data.stateType == 'shaky') {
+ wx.$api.index.index(this.data.city, this.data.longitude, this.data.latitude).then(res=>{
+ this.setData({
+ adverts : res.data.adverts,
+ cardArr : res.data.rights,
+ activities : res.data.activities,
+ noticeData : res.data.notice,
+ loading : false,
+ address : {
+ city: res.data.location.city_name,
+ area: res.data.location.district_name || "",
+ city_code: res.data.location.city_id,
+ area_code: res.data.location.district_id || ""
+ }
+ })
+ wx.stopPullDownRefresh()
+ }).catch(err=>{
+ if(!err.login){
+ // 写入缓存
+ wx.setStorage({
+ key : 'token',
+ data : ''
+ })
+ }
+ })
+ } else {
+ wx.$api.index.choice(this.data.stateType,this.data.city, this.data.longitude, this.data.latitude).then(res=>{
+ this.setData({
+ adverts : res.data.adverts,
+ cardArr : res.data.categorys,
+ noticeData : res.data.notice,
+ cityName : res.data.city_name,
+ loading : false,
+ address : {
+ city: res.data.location.city_name,
+ area: res.data.location.district_name || "",
+ city_code: res.data.location.city_id,
+ area_code: res.data.location.district_id || ""
+ }
+ })
+
+ wx.stopPullDownRefresh()
+ }).catch(err=>{
+ if(!err.login){
+ // 写入缓存
+ wx.setStorage({
+ key : 'token',
+ data : ''
+ })
+ }
+ })
+ }
+ },
+
+
+ /**
+ * tabs
+ */
+ orderTab(e){
+ if(this.data.stateType != e.currentTarget.dataset.state){
+ this.setData({
+ stateType: e.currentTarget.dataset.state
+ })
+ // 获取卡权益
+ this.indexInfo()
+
+ // 重置轮播图
+ this.setData({
+ current : 0,
+ swiperCurrent: 0
+ });
+ }
+ },
+
+ /**
+ * 处理未登录时的转跳
+ */
+ userNav(e){
+ let id = e.currentTarget.dataset.id
+ wx.getStorage({
+ key : 'token',
+ success:res=>{
+ wx.navigateTo({
+ url: '/pages/classify/classify?id=' + id
+ })
+ },
+ fail: (err) => {
+ wx.navigateTo({
+ url: "/pages/login/login"
+ })
+ }
+ })
+ },
+
+ /**
+ * 点击图片放大
+ */
+ clickImg(e) {
+ if(e.currentTarget.dataset.img == "") return
+ let imgUrl = [e.currentTarget.dataset.img]
+ wx.previewImage({
+ urls : imgUrl, //需要预览的图片http链接列表,注意是数组
+ current : imgUrl[0] // 当前显示图片的http链接,默认是第一个
+ })
+ },
+
+ /**
+ * 周五福利抢购
+ */
+ Snapup(e) {
+ let canBuy = e.currentTarget.dataset.can,
+ canText = e.currentTarget.dataset.text,
+ canId = e.currentTarget.dataset.id
+ if(!canBuy) {
+ wx.showToast({
+ title : canText,
+ icon : 'none',
+ duration: 2000
+ })
+ return
+ }
+
+ // 跳转分类页
+ wx.navigateTo({
+ url: '/pages/welfare/welfare?id=' + canId
+ })
+ },
+
+ /**
+ * 活动中心权益跳转详情
+ */
+ rightNav(e) {
+ let id = e.currentTarget.dataset.id
+ wx.getStorage({
+ key : 'token',
+ success:res=>{
+ wx.navigateTo({
+ url: '/pages/rights/rights?id=' + id
+ })
+ },
+ fail: (err) => {
+ wx.navigateTo({
+ url: "/pages/login/login"
+ })
+ }
+ })
+ },
+
+ /**
+ * 下拉刷新
+ */
+ onPullDownRefresh(){
+ // 获取卡权益
+ this.indexInfo();
+ this.locaTion();
+ },
+
+ /**
+ * 防止swiper控件卡死
+ */
+ swiperChange(e){
+ if (this.data.current == 0 && this.data.swiperCurrent>1 ) {//卡死时,重置current为正确索引
+ this.setData({ current: this.data.swiperCurrent });
+ }
+ else {//正常轮转时,记录正确页码索引
+ this.setData({ swiperCurrent: e.detail.current });
+ }
+
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.json b/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.json
new file mode 100644
index 0000000..2d21589
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.json
@@ -0,0 +1,10 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "",
+ "navigationBarBackgroundColor": "#000000",
+ "backgroundColor": "#f4f4f4",
+ "navigationBarTextStyle": "white",
+ "navigationStyle" : "custom",
+ "backgroundTextStyle" : "dark",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.skeleton.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.skeleton.wxml
new file mode 100644
index 0000000..f3b4dfc
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.skeleton.wxml
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+ 哈尔滨市南岗区
+
+
+
+
+
+ 活动中心
+
+ 白金会员
+
+ 钻石会员
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 您的预约已成功,请点击继续办理
+
+
+
+
+
+
+ 抱歉, 此地区暂无权益
+
+
+
+
+ 周五会员福利日
+
+
+
+
+
+
+ 15
+ 元
+
+ 全车型洗车券
+
+
+
+
+ 每周五:
+ 08:00:00 开抢
+ [限量100份] [剩余97份]
+
+
+
+ 抢
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.skeleton.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.skeleton.wxss
new file mode 100644
index 0000000..be722ac
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.skeleton.wxss
@@ -0,0 +1,94 @@
+/*
+此文件为开发者工具生成,生成时间: 2021/4/22 下午3:55:40
+
+在 H:\工作项目\亿时代-本时生活-2021-04-13\本时生活\pages\index\index.wxss 中引入样式
+```
+@import "./index.skeleton.wxss";
+```
+
+更多详细信息可以参考文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/skeleton.html
+*/
+.sk-transparent {
+ color: transparent !important;
+ }
+.sk-text-30-0000-789 {
+ background-image: linear-gradient(transparent 30.0000%, #EEEEEE 0%, #EEEEEE 70.0000%, transparent 0%) !important;
+ background-size: 100% 80.0000rpx;
+ position: relative !important;
+ }
+.sk-text {
+ background-origin: content-box !important;
+ background-clip: content-box !important;
+ background-color: transparent !important;
+ color: transparent !important;
+ background-repeat: repeat-y !important;
+ }
+.sk-text-32-2222-11 {
+ background-image: linear-gradient(transparent 32.2222%, #EEEEEE 0%, #EEEEEE 67.7778%, transparent 0%) !important;
+ background-size: 100% 90.0000rpx;
+ position: relative !important;
+ }
+.sk-text-32-2222-270 {
+ background-image: linear-gradient(transparent 32.2222%, #EEEEEE 0%, #EEEEEE 67.7778%, transparent 0%) !important;
+ background-size: 100% 90.0000rpx;
+ position: relative !important;
+ }
+.sk-text-14-2857-898 {
+ background-image: linear-gradient(transparent 14.2857%, #EEEEEE 0%, #EEEEEE 85.7143%, transparent 0%) !important;
+ background-size: 100% 39.2000rpx;
+ position: relative !important;
+ }
+.sk-text-14-2857-980 {
+ background-image: linear-gradient(transparent 14.2857%, #EEEEEE 0%, #EEEEEE 85.7143%, transparent 0%) !important;
+ background-size: 100% 39.2000rpx;
+ position: relative !important;
+ }
+.sk-text-14-2857-662 {
+ background-image: linear-gradient(transparent 14.2857%, #EEEEEE 0%, #EEEEEE 85.7143%, transparent 0%) !important;
+ background-size: 100% 39.2000rpx;
+ position: relative !important;
+ }
+.sk-text-14-2857-553 {
+ background-image: linear-gradient(transparent 14.2857%, #EEEEEE 0%, #EEEEEE 85.7143%, transparent 0%) !important;
+ background-size: 100% 39.2000rpx;
+ position: relative !important;
+ }
+.sk-text-13-6364-777 {
+ background-image: linear-gradient(transparent 13.6364%, #EEEEEE 0%, #EEEEEE 86.3636%, transparent 0%) !important;
+ background-size: 100% 44.0000rpx;
+ position: relative !important;
+ }
+.sk-text-13-6364-28 {
+ background-image: linear-gradient(transparent 13.6364%, #EEEEEE 0%, #EEEEEE 86.3636%, transparent 0%) !important;
+ background-size: 100% 44.0000rpx;
+ position: relative !important;
+ }
+.sk-text-22-7273-273 {
+ background-image: linear-gradient(transparent 22.7273%, #EEEEEE 0%, #EEEEEE 77.2727%, transparent 0%) !important;
+ background-size: 100% 44.0000rpx;
+ position: relative !important;
+ }
+.sk-image {
+ background: #EFEFEF !important;
+ }
+.sk-pseudo::before, .sk-pseudo::after {
+ background: #EFEFEF !important;
+ background-image: none !important;
+ color: transparent !important;
+ border-color: transparent !important;
+ }
+.sk-pseudo-rect::before, .sk-pseudo-rect::after {
+ border-radius: 0 !important;
+ }
+.sk-pseudo-circle::before, .sk-pseudo-circle::after {
+ border-radius: 50% !important;
+ }
+.sk-container {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ background-color: transparent;
+ }
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.wxml
new file mode 100644
index 0000000..db5acf4
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.wxml
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
+
+
+ {{address.city}}{{address.area}}
+
+
+
+
+
+
+
+
+ 活动中心
+
+ 白金会员
+
+ 钻石会员
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{noticeData}}
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+ {{item.label}}
+
+
+
+
+
+ 抱歉, 此地区暂无权益
+
+
+
+
+
+
+ 周五会员福利日
+
+
+
+
+
+ {{item.price}} 元
+ {{item.title}}
+
+
+
+
+ 每周五:
+ {{item.start_time}} 开抢
+ {{item.end_time}} 结束
+ [限量{{item.stock}}份] [剩余{{item.surplus}}份]
+
+
+
+ 抢
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+ {{item.label}}
+
+
+
+
+
+ 抱歉, 此地区暂无权益
+
+
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.wxss
new file mode 100644
index 0000000..177c5b0
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/index/index.wxss
@@ -0,0 +1,544 @@
+/* 首页 */
+page {
+ background: #fff;
+}
+
+.indexTab {
+ position: fixed;
+ display: flex;
+ width: 100%;
+ height: 90rpx;
+ line-height: 90rpx;
+ z-index: 999;
+ padding: 0 40rpx;
+ top: 80rpx;
+ box-sizing: border-box;
+ background-color: #07081d;
+}
+
+.indexTab-lable {
+ text-align: center;
+ flex: 3;
+ color: #fff;
+ position: relative;
+}
+
+.indexTab-lable.active {
+ background-image: -webkit-linear-gradient(left, #e4dab7, #d9b672);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ font-weight: 600;
+ font-size: 38rpx;
+}
+
+/* 轮播图 */
+.indexBanner {
+ height: 360rpx;
+ position: relative;
+ padding-top: 20rpx;
+}
+
+.indexBanner::after {
+ position: absolute;
+ left: 0;
+ top: 0;
+ height: 240rpx;
+ width: 100%;
+ content: '';
+ background: #07081d;
+ border-radius: 0 0 200rpx 200rpx;
+}
+
+.banner {
+ position: relative;
+ padding-top: 48%;
+ width: calc(100% - 100rpx);
+ background: white;
+ margin: 0 50rpx;
+ border-radius: 30rpx;
+ overflow: hidden;
+ z-index: 99;
+}
+
+.banner-swiper {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.banner-img {
+ width: 100%;
+ height: 100%;
+ vertical-align: top;
+}
+
+/* 指示点 */
+.dots {
+ margin: 30rpx 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+}
+
+.dots view {
+ width: 14rpx;
+ height: 14rpx;
+ margin: 0 6rpx;
+ border-radius: 50%;
+ background-color: #c5c5c5;
+}
+
+.dots .active {
+ width: 24rpx;
+ border-radius: 40rpx;
+ background-color: #f46851;
+}
+
+/* 提示 */
+.indexNews {
+ background: #dddddd;
+ padding: 25rpx 40rpx;
+ display: flex;
+ font-size: 28rpx;
+}
+
+.indexNews image {
+ width: 34rpx;
+ height: 34rpx;
+ margin: 4rpx 20rpx 0 0;
+}
+
+/* 权益列表 */
+.cardArr {
+ padding: 40rpx 30rpx 30rpx;
+ box-sizing: border-box;
+ overflow: hidden;
+}
+
+.cardArr-top {
+ flex-wrap: wrap;
+ display: flex;
+}
+
+.indexCard {
+ width: 33.33%;
+ text-align: center;
+ position: relative;
+ flex: 0 0 33.3333%;
+ margin-bottom: 40rpx;
+}
+
+.indexCard-img {
+ width: 140rpx;
+ height: 140rpx;
+ border-radius: 50%;
+}
+
+.activity-tips {
+ position: absolute;
+ top: -10rpx;
+ right: 10rpx;
+ z-index: 9;
+ background-image: -webkit-linear-gradient(left, #ff0000, #ff0000);
+ color: #fff;
+ font-size: 24rpx;
+ padding: 0 18rpx;
+ height: 40rpx;
+ line-height: 40rpx;
+ border-radius: 20rpx;
+ animation: zy 2.5s .15s linear infinite;
+ -moz-animation: zy 2.5s .15s linear infinite;
+ -webkit-animation: zy 2.5s .15s linear infinite;
+ -o-animation: zy 2.5s .15s linear infinite;
+}
+
+.indexCard-tips {
+ background-image: -webkit-linear-gradient(left, #ef354c, #ef001e);
+ color: #fff300;
+ height: 34rpx;
+ line-height: 32rpx;
+ padding: 0 10rpx;
+ right: 25rpx;
+}
+
+@keyframes zy {
+ 10% {
+ transform: rotate(15deg);
+ }
+
+ 20% {
+ transform: rotate(-10deg);
+ }
+
+ 30% {
+ transform: rotate(5deg);
+ }
+
+ 40% {
+ transform: rotate(-5deg);
+ }
+
+ 50%,
+ 100% {
+ transform: rotate(0deg);
+ }
+}
+
+.indexCard-title {
+ font-weight: 600;
+ margin: 5rpx 20rpx;
+ font-size: 30rpx;
+}
+
+.indexCard-remark {
+ font-size: 26rpx;
+ color: #8a8a8a;
+}
+
+/* 新增活动权利列表样式 */
+.activity-remark {
+ background-color: #000000;
+ display: inline-block;
+ border-radius: 40rpx;
+ height: 38rpx;
+ line-height: 38rpx;
+ padding: 0 10rpx;
+}
+
+.activity-remark text {
+ display: block;
+ background-image: -webkit-linear-gradient(left, #e4dab7, #d9b672);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ font-size: 22rpx;
+}
+
+
+/* 定位 */
+
+.locationPicker {
+ background: #000;
+ color: #fff;
+ height: 80rpx;
+ line-height: 80rpx;
+ position: fixed;
+ width: 100%;
+ z-index: 1009;
+ top: 0;
+ left: 0;
+}
+
+.locationPicker-icon {
+ width: 38rpx;
+ height: 38rpx;
+ float: left;
+ vertical-align: middle;
+ margin: 22rpx 10rpx 0 20rpx;
+}
+
+.locationPicker-region-icon {
+ width: 44rpx;
+ height: 44rpx;
+ margin-top: 12rpx;
+}
+
+.cityCont {
+ width: 60%;
+ display: flex;
+}
+
+.cityCont view {
+ max-width: calc(100% - 50rpx);
+}
+
+.cityCont image {
+ width: 50rpx;
+ height: 50rpx;
+ margin-top: 16rpx;
+}
+
+/* 权益提示 */
+.legalTips {
+ text-align: center;
+ font-size: 28rpx;
+ color: #999;
+ padding: 80rpx;
+ margin: 0 auto;
+}
+
+.legalTips image {
+ width: 240rpx;
+ height: 180rpx;
+ display: block;
+ margin: 0 auto 40rpx;
+}
+
+/* 滚动 */
+/*首页跑马灯效果*/
+@keyframes around {
+ from {
+ margin-left: 60rpx;
+ }
+
+ to {
+ /* var接受传入的变量 */
+ margin-left: var(--marqueeWidth--);
+ }
+}
+
+.marquee_container {
+ width: calc(100% - 40rpx);
+ overflow: hidden;
+}
+
+.marquee_container:hover {
+ /* 不起作用 */
+ animation-play-state: paused;
+}
+
+.marquee_text {
+ font-size: 28rpx;
+ display: inline-block;
+ white-space: nowrap;
+}
+
+.marquee_text.active {
+ animation-name: around;
+ animation-duration: 20s;
+ /*过渡时间*/
+ animation-iteration-count: infinite;
+ animation-timing-function: linear;
+}
+
+/* 福利日 */
+
+.Welfare {
+ text-align: center;
+}
+
+.WelfareTitle {
+ display: inline-block;
+ background-color: #020202;
+ border-radius: 20rpx 20rpx 10rpx 10rpx;
+ height: 68rpx;
+ line-height: 68rpx;
+ padding: 0 50rpx;
+}
+
+.WelfareTitle text,
+.WelfareList-btn text {
+ background-image: -webkit-linear-gradient(left, #e4dab7, #d9b672);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+}
+
+.WelfareTitle text {
+ font-weight: 600;
+ font-size: 38rpx;
+}
+
+.WelfareList {
+ background-color: #020202;
+ border-radius: 20rpx;
+ padding: 40rpx 30rpx;
+ box-sizing: border-box;
+ position: relative;
+ overflow: hidden;
+}
+
+.WelfareList::after {
+ position: absolute;
+ content: '';
+ top: -60rpx;
+ right: 0;
+ background-image: -moz-linear-gradient(right, rgba(255, 255, 255, .2), rgba(0, 0, 0, 0));
+ background-image: -webkit-linear-gradient(right, rgba(255, 255, 255, .2), rgba(0, 0, 0, 0));
+ background-image: linear-gradient(right, rgba(255, 255, 255, .2), rgba(0, 0, 0, 0));
+ width: 200rpx;
+ height: 200rpx;
+ border-radius: 50%;
+}
+
+.WelfareList-back {
+ position: relative;
+ width: 100%;
+ height: 220rpx;
+ padding: 30rpx;
+ box-sizing: border-box;
+ margin-bottom: 40rpx;
+}
+
+.WelfareList-back:last-child {
+ margin: 0;
+}
+
+.WelfareList-img {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+}
+
+.WelfareList-img.active {
+ -webkit-filter: grayscale(100%);
+ -moz-filter: grayscale(100%);
+ -ms-filter: grayscale(100%);
+ -o-filter: grayscale(100%);
+ filter: grayscale(100%);
+ filter: gray;
+}
+
+.WelfareList-left,
+.WelfareList-right,
+.WelfareList-btn {
+ position: absolute;
+ z-index: 2;
+ left: 0;
+}
+
+.WelfareList-left {
+ top: -4rpx;
+ width: 180rpx;
+ font-weight: 600;
+ display:table;
+ height: 226rpx;
+}
+
+.cell {
+ display:table-cell;
+ vertical-align:middle;
+}
+
+.WelfareList-left-title {
+ font-size: 28rpx;
+ word-break:normal;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+}
+
+.WelfareList-left .WelfareList-left-price {
+ font-size: 40rpx;
+}
+
+.WelfareList-left text {
+ font-size: 28rpx;
+ font-weight: 600;
+}
+
+.WelfareList-right {
+ line-height: 44rpx;
+ width: 100%;
+ padding-left: 200rpx;
+ padding-right: 160rpx;
+ box-sizing: border-box;
+ text-align: left;
+ display: flex;
+}
+
+.WelfareList-cont {
+ width: 100%;
+ margin-top: -8rpx;
+}
+
+.WelfareList-btn {
+ left: auto;
+ top: 55rpx;
+ right: 30rpx;
+ background-color: #020202;
+ width: 110rpx;
+ height: 110rpx;
+ text-align: center;
+ line-height: 110rpx;
+ border-radius: 50%;
+ overflow: hidden;
+}
+
+.WelfareList-btn::after {
+ position: absolute;
+ content: '';
+ top: -50rpx;
+ left: 0;
+ background-image: -moz-linear-gradient(right, rgba(255, 255, 255, .25), rgba(0, 0, 0, 0));
+ background-image: -webkit-linear-gradient(right, rgba(255, 255, 255, .25), rgba(0, 0, 0, 0));
+ background-image: linear-gradient(right, rgba(255, 255, 255, .25), rgba(0, 0, 0, 0));
+ width: 100rpx;
+ height: 100rpx;
+ border-radius: 50%;
+}
+
+.WelfareList-btn.active {
+ background-color: #9c9c9c;
+}
+
+.WelfareList-btn.active::before {
+ position: absolute;
+ content: '';
+ width: 100%;
+ height: 4rpx;
+ background-color: #cecece;
+ left: 0;
+ top: 50%;
+ transform:rotate(45deg);
+}
+
+.WelfareList-btn.active text {
+ background-image: -moz-linear-gradient(#c3c3c3);
+ background-image: -webkit-linear-gradient(#c3c3c3);
+ background-image: linear-gradient(#c3c3c3);
+ -webkit-text-fill-color: #c3c3c3;
+}
+
+
+.WelfareList-btn text {
+ font-weight: 600;
+ font-size: 54rpx;
+}
+
+.WelfareList-all {
+ font-size: 24rpx;
+}
+
+.WelfareList-text {
+ font-size: 28rpx;
+}
+
+.light {
+ cursor: pointer;
+ position: absolute;
+ left: -100%;
+ top: 0;
+ width: 40px;
+ height: 100%;
+ background: rgba(255, 255, 255, 0);
+ transform: skewx(25deg);
+ -webkit-transition: all .5s ease-in;
+ -moz-transition: all .5s ease-in;
+ -o-transition: all .5s ease-in;
+ transition: all .5s ease-in;
+ animation-name: example;
+ animation-duration: 3.5s;
+ animation-iteration-count: infinite;
+}
+
+
+@keyframes example {
+ 0% {
+ left: -100%;
+ background: rgba(255, 255, 255, .4);
+ }
+
+ 50% {
+ left: -50%;
+ background: rgba(255, 255, 255, .7);
+ }
+
+ 100% {
+ left: 100%;
+ background: rgba(255, 255, 255, 0);
+ }
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/login/login.js b/亿时代-本时生活-2021-04-13/本时生活/pages/login/login.js
new file mode 100644
index 0000000..5c792e3
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/login/login.js
@@ -0,0 +1,124 @@
+/*
+ * 本时生活
+ */
+
+const app = getApp()
+
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ isLogin : false,
+ loginCode : "", //code
+ userInfo : {}, //用户
+ iv : '',
+ encryptedData : '',
+ way : '' //登录方式-活动
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 登录方式-活动
+ this.setData({
+ way : options.way
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow () {
+ wx.login({
+ success: res => {
+ this.setData({
+ loginCode: res.code
+ })
+ }
+ })
+ },
+
+ /**
+ * 登录
+ */
+ userInfo(e){
+ if(e.detail.errMsg == "getUserInfo:ok"){
+ this.setData({
+ isLogin : true,
+ userInfo : e.detail.rawData,
+ iv : e.detail.iv,
+ encryptedData : e.detail.encryptedData
+ })
+
+ // 检查用户登录Code是否过期
+ wx.checkSession({
+ success: res=>{
+ this.userLogin()
+ },
+ fail: err=>{
+ // 登录过期重新获取code
+ wx.login({
+ success: res=>{
+ this.setData({
+ loginCode: res.code
+ })
+ // 登录
+ this.userLogin()
+ }
+ })
+ }
+ })
+ }else{
+ wx.showToast({
+ title: '拒绝了登录授权',
+ icon : 'none'
+ })
+ }
+ },
+
+ /**
+ * 用户登录
+ */
+ userLogin(){
+ let code = this.data.loginCode,
+ iv = this.data.iv,
+ encryptedData = this.data.encryptedData
+
+ wx.$api.enroll.record(code, iv, encryptedData).then(res=>{
+ getApp().globalData.token = res.data.token
+
+ // 更新全局存储器用户状态
+ getApp().globalData.isUser = true
+
+
+ // 写入缓存
+ wx.setStorage({
+ key : 'token',
+ data : res.data.token
+ })
+
+ // 存入缓存
+ app.globalData.userInfo = res.data.users
+ app.globalData.wechatUser = res.data.wechatUser_id
+
+ this.setData({
+ isLogin: false
+ })
+
+ wx.navigateTo({
+ url: "/pages/chooseTel/chooseTel?way=" + this.data.way
+ })
+
+ // 写入缓存
+ wx.setStorage({
+ key : 'users',
+ data : res.data.users
+ })
+ })
+ }
+
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/login/login.json b/亿时代-本时生活-2021-04-13/本时生活/pages/login/login.json
new file mode 100644
index 0000000..c67fc7a
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/login/login.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "微信授权",
+ "navigationBarBackgroundColor": "#000000",
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/login/login.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/login/login.wxml
new file mode 100644
index 0000000..d72aee6
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/login/login.wxml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/login/login.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/login/login.wxss
new file mode 100644
index 0000000..e36d466
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/login/login.wxss
@@ -0,0 +1,36 @@
+/* 登录 */
+
+page {
+ background: #000;
+}
+
+.loginImg {
+ position: relative;
+ height: 100vh;
+ width: 100%;
+}
+
+.loginImg image {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.loginBtn[size="mini"]{
+ background: #33f800;
+ color: #000;
+ width: 240rpx;
+ height: 86rpx;
+ line-height: 76rpx;
+ border-radius: 30rpx;
+ position: absolute;
+ bottom: 5vh;
+ left: calc(50% - 120rpx);
+ padding: 0;
+ margin: 0;
+ border: 4rpx solid #fff;
+ box-sizing: border-box;
+ font-size: 36rpx;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/order/order.js b/亿时代-本时生活-2021-04-13/本时生活/pages/order/order.js
new file mode 100644
index 0000000..69d81f8
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/order/order.js
@@ -0,0 +1,187 @@
+// pages/activityOrder/activityOrder.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ stateType : 'all', //状态
+ counts : '', //数量
+ orderArr : [], //列表
+ page : {}, //下一页
+ lodingStats : false, //加载状态
+ pay : {
+ payTips : 1, //支付方式
+ payState : false, //支付状态
+ orderId : '', //支付订单
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ stateType: options.stateType
+ })
+ },
+
+ onShow() {
+ // 获取商品活动订单
+ this.orderInfo();
+ },
+
+ /**
+ * 商品活动订单
+ */
+ orderInfo(page) {
+ wx.$api.exchange.index(this.data.stateType, page).then(res=>{
+ let listArr = this.data.orderArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ counts : res.data.count,
+ orderArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * tabs
+ */
+ orderTab(e){
+ if(this.data.stateType != e.currentTarget.dataset.state){
+ this.setData({
+ stateType: e.currentTarget.dataset.state
+ })
+
+ // 获取商品活动订单
+ this.orderInfo()
+
+ wx.pageScrollTo({
+ scrollTop: 0
+ })
+ }
+ },
+
+ /**
+ * 取消订单
+ */
+ orderDelete(e) {
+ let orderId = e.currentTarget.dataset.id
+ wx.showModal({
+ title : '订单取消',
+ content : '确认取消吗?',
+ success : res=> {
+ if (res.confirm) {
+ wx.$api.exchange.cancel(orderId).then(res=>{
+ // 获取商品活动订单
+ this.orderInfo()
+
+ wx.showToast({
+ title: res.data,
+ icon : 'none'
+ })
+ })
+ } else if (res.cancel) {
+ wx.showToast({
+ title : '取消',
+ icon : 'loading',
+ duration: 1000
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 支付提交
+ */
+ orderPay() {
+ wx.$api.exchange.payments(this.data.pay.orderId).then(res=>{
+ // payTips为1的时候为微信支付
+ if(this.data.pay.payTips == 1) {
+ wx.$api.index.wechat(res.data.trade_no).then(res=>{
+ let payInfo = JSON.parse(res.data)
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ wx.showToast({
+ title: '支付成功',
+ icon : 'success'
+ })
+ setTimeout(()=>{
+ wx.reLaunch({
+ url: '/pages/coupon/coupon?type=couponPublic'
+ })
+ },2000)
+ }
+ },
+ fail : res=>{
+ wx.redirectTo({
+ url: '/pages/order/order?stateType=unpay'
+ })
+ }
+ })
+ })
+ }
+ // payTips为2的时候为沃钱包支付
+ if(this.data.pay.payTips == 2) {
+ const newUrl = "https://lifetest.ysd-bs.com/unicom/payment?trade_no=" + res.data.trade_no
+ let url= encodeURIComponent(newUrl)
+ wx.navigateTo({
+ // 跳转到webview页面
+ url: `/pages/webView/webView?url=${url}`
+ });
+ }
+
+ this.setData({
+ ['pay.payState']: false
+ })
+ })
+
+ },
+
+ /**
+ * 支付选择弹出
+ */
+ submitPay(e) {
+ this.setData({
+ ['pay.payState']: !this.data.pay.payState,
+ ['pay.orderId'] : e.currentTarget.dataset.id
+ })
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ this.orderInfo(pageNumber)
+ }
+ },
+
+ /**
+ * 选择支付方式
+ */
+ radioChange(e) {
+ this.setData({
+ ['pay.payTips']: e.detail.value
+ })
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/order/order.json b/亿时代-本时生活-2021-04-13/本时生活/pages/order/order.json
new file mode 100644
index 0000000..a06e085
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/order/order.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "兑换订单"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/order/order.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/order/order.wxml
new file mode 100644
index 0000000..b282543
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/order/order.wxml
@@ -0,0 +1,94 @@
+
+
+
+ 全部
+
+
+ 待支付
+
+
+
+ 待发货
+
+
+
+
+ 已发货
+
+
+
+
+
+
+
+
+
+ {{item.orderid}}
+ {{item.state_text}}
+ {{item.state_text}}
+ {{item.state_text}}
+
+
+
+
+ {{item.items.title}}
+
+ 红包电子券
+ 实物券
+
+
+ ¥{{item.items.price}} × {{item.items.qty}}
+
+
+
+
+ 订单详情
+
+ 取消订单
+ 立即支付
+
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+ 暂无订单
+
+
+
+
+ 请选择支付方式
+
+
+
+
+ 微信支付
+
+
+
+
+
+
+ 沃钱包支付
+
+
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/order/order.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/order/order.wxss
new file mode 100644
index 0000000..0904a21
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/order/order.wxss
@@ -0,0 +1,319 @@
+/*
+ * 亿时代
+ */
+
+.order-tab {
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ display: flex;
+ height: 80rpx;
+ line-height: 80rpx;
+ z-index: 9;
+ background: white;
+}
+
+.order-tab-item {
+ font-size: 28rpx;
+ width: 25%;
+ text-align: center;
+ border-bottom: solid 2rpx #f7f7f7;
+ color: #464854;
+ background: white;
+ position: relative;
+}
+
+.order-tab-item.active {
+ color: #f57e32;
+}
+
+.order-tab-item::after {
+ content: '';
+ position: absolute;
+ width: 30rpx;
+ height: 4rpx;
+ background: transparent;
+ left: calc(50% - 15rpx);
+ bottom: -2rpx;
+}
+
+.order-tab-item.active::after {
+ background: #f57e32;
+}
+
+.state-tips {
+ position: absolute;
+ top: 10rpx;
+ right: 14rpx;
+ background: #e92706;
+ color: #fff;
+ font-size: 24rpx;
+ transform: scale(.7, .7);
+ border-radius: 60rpx 60rpx 60rpx 0;
+ width: 48rpx;
+ height: 34rpx;
+ line-height: 34rpx;
+}
+
+/* 订单列表 */
+
+.order-content {
+ padding: 80rpx 0 20rpx 0;
+}
+
+.order-content-li {
+ background: white;
+ margin-top: 20rpx;
+ position: relative;
+}
+
+.order-name {
+ background: #fff;
+ padding: 20rpx;
+ box-sizing: border-box;
+ border-bottom: solid 1rpx #f3f3f3;
+ display: flex;
+}
+
+.order-name image {
+ background: linear-gradient(#000, #000);
+ background-blend-mode: lighten;
+ background-size: cover;
+ width: 26rpx;
+ height: 26rpx;
+ border-radius: 50%;
+ margin: 8rpx 14rpx 0 0;
+}
+
+.order-store {
+ padding: 20rpx;
+ border-bottom: solid 1rpx #f3f3f3;
+ display: flex;
+}
+
+.order-goods-tips {
+ display: flex;
+}
+
+.order-goods-tips text {
+ display: inline-block;
+ background: #e92706;
+ color: #fff;
+ border-radius: 20rpx;
+ padding: 0 20rpx;
+ height: 42rpx;
+ line-height: 42rpx;
+ font-size: 24rpx;
+ transform: scale(.8, .8);
+}
+
+text.order-goods-tips-color {
+ background: #e6b329;
+}
+
+.order-store-stateText {
+ color: #e6b329;
+ font-size: 26rpx;
+}
+
+.order-store-stateText.red {
+ color: #e92344;
+}
+
+.order-store-stateText.green {
+ color: #79b300;
+}
+
+.order-store-title {
+ flex: 1;
+ color: #999;
+ font-size: 28rpx;
+}
+
+.order-store-orderid {
+ color: #747788;
+ font-size: 25rpx;
+}
+
+.order-store-title text {
+ color: white;
+ font-size: 24rpx;
+ background: #e92344;
+ margin-right: 10rpx;
+ padding: 0 10rpx;
+}
+
+.order-goods {
+ padding: 20rpx;
+ box-sizing: border-box;
+ position: relative;
+}
+
+.order-goods-cover {
+ width: 150rpx;
+ height: 150rpx;
+ vertical-align: top;
+ border-radius: 4rpx;
+}
+
+.order-goods-content {
+ position: absolute;
+ left: 190rpx;
+ top: 20rpx;
+ right: 20rpx;
+ width: calc(100% - 210rpx);
+}
+
+.order-goods-content-name {
+ margin-bottom: 10rpx;
+ font-size: 30rpx;
+ font-weight: 600;
+}
+
+.order-goods-content-price {
+ color: #747788;
+ display: flex;
+ margin-top: 10rpx;
+ font-size: 28rpx;
+}
+
+.order-goods-content-price text {
+ color: #f57e32;
+ display: inline-block;
+ margin-right: 10rpx;
+ font-size: 30rpx;
+}
+
+.order-total {
+ padding: 20rpx;
+ box-sizing: border-box;
+ font-size: 26rpx;
+ line-height: 50rpx;
+ color: #747788;
+ display: flex;
+}
+
+.order-total view {
+ margin-right: 30rpx;
+}
+
+.order-total text {
+ color: #e92344;
+ font-weight: bold;
+}
+
+.order-btns {
+ font-size: 25rpx;
+ display: flex;
+ padding: 20rpx;
+ box-sizing: border-box;
+ flex-wrap: wrap;
+ flex-direction: row-reverse;
+}
+
+.order-btn {
+ margin-left: 20rpx;
+ height: 52rpx;
+ line-height: 50rpx;
+ box-sizing: border-box;
+ border: solid 1rpx #747788;
+ padding: 0 20rpx;
+ border-radius: 30rpx;
+}
+
+.order-btn-back {
+ border-color: #f57e32;
+ color: #f57e32;
+}
+
+.orderVirtual {
+ background: #f57e32;
+ color: #fff;
+ border-radius: 4rpx;
+ display: inline-block;
+ font-size: 24rpx;
+ padding: 2rpx 8rpx
+}
+
+.orderVirtual.active {
+ background: #88be2d;
+}
+
+/* 选择支付方式 */
+.payWayBack {
+ position: fixed;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0, 0, 0, .4);
+ left: 0;
+ top: 0;
+ z-index: 98;
+ display: none;
+}
+
+.payWayBack.active {
+ display: block;
+}
+
+.payWay {
+ position: fixed;
+ z-index: 99;
+ left: 0;
+ bottom: -100%;
+ width: 100%;
+ background-color: #fff;
+ padding: 60rpx 50rpx 120rpx;
+ box-sizing: border-box;
+ border-top: 2rpx solid #f0f0f0;
+ transition: .2s;
+}
+
+.payWay.active {
+ bottom: 0;
+}
+
+.payWay-name {
+ font-weight: 600;
+ font-size: 30rpx;
+ margin-bottom: 80rpx;
+}
+
+.payContList-label {
+ display: flex;
+ margin-bottom: 40rpx;
+ border-bottom: 2rpx solid #f6f6f6;
+ padding-bottom: 40rpx;
+}
+
+.payContList-label:last-child {
+ border:none
+}
+
+.payContList-label-name {
+ flex: 1;
+ font-size: 32rpx;
+ display: flex;
+ line-height: 46rpx;
+}
+
+.payContList-label-img {
+ width: 46rpx;
+ height: 46rpx;
+ margin-right: 20rpx;
+}
+
+radio {
+ transform:scale(0.8);
+}
+
+.payWayBtn {
+ background: #eacf88;
+ text-align: center;
+ line-height: 80rpx !important;
+ border-radius: 10rpx;
+ margin-top: 80rpx;
+ width: 100% !important;
+ padding: 0;
+ font-size: 32rpx;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/orderData/orderData.js b/亿时代-本时生活-2021-04-13/本时生活/pages/orderData/orderData.js
new file mode 100644
index 0000000..03debea
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/orderData/orderData.js
@@ -0,0 +1,134 @@
+
+/*
+ * 本时生活
+ */
+
+const app = getApp()
+
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ statusHeight : app.globalData.statusBarHeight,
+ order : '' //订单详情
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 获取商品活动订单详情
+ this.orderInfo(options.id);
+ },
+
+ /**
+ * 商品活动订单详情
+ */
+ orderInfo(id) {
+ wx.$api.exchange.show(id).then(res=>{
+ this.setData({
+ order : res.data
+ })
+ })
+ },
+
+ /**
+ * 取消订单
+ */
+ orderDelete(e) {
+ let orderId = e.currentTarget.dataset.id
+ wx.showModal({
+ title : '订单取消',
+ content : '确认取消吗?',
+ success : res=> {
+ if (res.confirm) {
+ wx.$api.exchange.cancel(orderId).then(res=>{
+ wx.reLaunch({
+ url: '/pages/order/order'
+ })
+
+ wx.showToast({
+ title: res.data,
+ icon : 'none'
+ })
+ })
+ } else if (res.cancel) {
+ wx.showToast({
+ title : '取消',
+ icon : 'loading',
+ duration: 1000
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 支付提交
+ */
+ orderPay(e) {
+ let orderid = e.currentTarget.dataset.id
+ wx.$api.exchange.payments(orderid).then(res=>{
+ wx.$api.index.wechat(res.data.trade_no).then(res=>{
+ let payInfo = JSON.parse(res.data)
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ wx.showToast({
+ title: '支付成功',
+ icon : 'success'
+ })
+ setTimeout(()=>{
+ wx.reLaunch({
+ url: '/pages/coupon/coupon?type=couponPublic'
+ })
+ },2000)
+ }
+ },
+ fail : res=>{
+ wx.reLaunch({
+ url: '/pages/order/order?stateType=unpay'
+ })
+ }
+ })
+ })
+ })
+
+ },
+
+ /**
+ * 返回上一页
+ */
+ orderRun() {
+ wx.navigateBack({
+ delta: 1
+ })
+ },
+
+ /**
+ * 复制快递单号
+ */
+ copyText (e) {
+ let text = e.currentTarget.dataset.text
+ wx.setClipboardData({
+ data : text,
+ success : res=> {
+ wx.getClipboardData({
+ success: res => {
+ wx.showToast({
+ title: '复制成功'
+ })
+ }
+ })
+ }
+ })
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/orderData/orderData.json b/亿时代-本时生活-2021-04-13/本时生活/pages/orderData/orderData.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/orderData/orderData.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/orderData/orderData.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/orderData/orderData.wxml
new file mode 100644
index 0000000..5b93712
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/orderData/orderData.wxml
@@ -0,0 +1,63 @@
+
+
+ {{order.state_text}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 收货人:{{order.express.name}}
+ {{order.express.mobile}}
+
+ {{order.express.address}}
+
+
+
+
+
+
+
+ {{order.items.title}}
+ ¥{{order.items.price}}
+ ×{{order.items.qty}}
+
+
+
+
+
+
+
+ 权益类型
+ {{order.type_text}}
+
+
+ 订单号
+ {{order.orderid}}
+
+
+ 下单时间
+ {{order.created_at}}
+
+
+
+
+ 实际支付
+ ¥{{order.amount}}
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/orderData/orderData.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/orderData/orderData.wxss
new file mode 100644
index 0000000..ccf95fa
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/orderData/orderData.wxss
@@ -0,0 +1,241 @@
+
+/*
+ * 亿时代
+ */
+ .order-statl{
+ background-color: #f57e32;
+ padding: 0 30rpx 10rpx;
+ color: white;
+ line-height: 90rpx;
+ height: 90rpx;
+ position: relative;
+}
+
+.order-statl-icon{
+ width: 80rpx;
+ height: 80rpx;
+ vertical-align: middle;
+ position: absolute;
+ right: 30rpx;
+ top: 5rpx;
+}
+
+ /* 收货人信息 */
+.order-address{
+ padding: 30rpx 30rpx 40rpx 100rpx;
+ position: relative;
+ background: white;
+}
+
+.order-address-back{
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ vertical-align:bottom;
+}
+
+.order-address-name{
+ padding-right: 300rpx;
+ position: relative;
+ font-size: 33rpx;
+ padding-bottom: 10rpx;
+}
+
+.order-address-name text{
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 280rpx;
+ text-align: right;
+}
+
+.order-address-text{
+ color: #464854;
+ font-size: 26rpx;
+}
+
+.address-icon,
+.arrows-right{
+ position: absolute;
+}
+
+.address-icon{
+ height: 42rpx;
+ width: 42rpx;
+ left: 30rpx;
+ top: calc(50% - 26rpx);
+ top: -webkit-calc(50% - 26rpx);
+}
+
+.arrows-right{
+ height: 28rpx;
+ width: 28rpx;
+ right: 30rpx;
+ top: calc(50% - 19rpx);
+ top: -webkit-calc(50% - 19rpx);
+}
+
+.order-add-address{
+ text-align: center;
+ padding: 30rpx 0;
+}
+
+.order-add-address navigator{
+ display: inline-block;
+ background: #e92344;
+ color: white;
+ line-height: 60rpx;
+ padding: 0 30rpx;
+ margin-right: 20rpx;
+}
+
+/* 订单商品 */
+
+.order-content{
+ border-bottom: solid 100rpx transparent;
+}
+
+.order-goods{
+ margin-bottom: 20rpx;
+}
+
+.goods-goods-mall{
+ padding: 20rpx 30rpx 0 30rpx;
+ line-height: 50rpx;
+}
+
+.goods-goods-mall image{
+ width: 48rpx;
+ height: 48rpx;
+ vertical-align: middle;
+ margin-right: 15rpx;
+ margin-bottom: 2rpx;
+}
+
+.goods-goods-li{
+ padding: 20rpx 30rpx;
+ position: relative;
+ border-bottom: solid 1rpx #f2f2f2;
+ min-height: 130rpx;
+ background: white;
+}
+
+.goods-goods-li:last-child{
+ border-bottom: none;
+}
+
+.goods-img{
+ position: absolute;
+ top: 20rpx;
+ left: 30rpx;
+ height: 130rpx;
+ width: 130rpx;
+ background: #f5f6fa;
+}
+
+.goods-body{
+ padding-left: 150rpx;
+}
+
+.goods-name{
+ font-weight: bold;
+ padding: 10rpx 0 20rpx;
+}
+
+.goods-price{
+ color: #e92344;
+}
+
+.goods-qty{
+ color: gray;
+ font-weight: normal;
+ padding-left: 10rpx;
+ font-size: 28rpx;
+}
+
+.goods-params{
+ color: gray;
+ padding-bottom: 20rpx;
+ font-size: 28rpx;
+}
+
+/* 统计信息 */
+
+.order-total{
+ background: white;
+ margin: 20rpx 0;
+}
+
+.order-total-li{
+ padding: 0 30rpx;
+ line-height: 90rpx;
+ position: relative;
+ font-size: 28rpx;
+}
+
+.order-total-li::before{
+ position: absolute;
+ content: " ";
+ left: 30rpx;
+ bottom: 0;
+ right: 0;
+ height: 1rpx;
+ background: #f2f2f2;
+}
+
+.order-total-li:last-child::before{
+ display: none;
+}
+
+.order-total-li text{
+ float: right;
+ color: #999;
+}
+
+.order-total-li .redCor {
+ color: #e92344;
+ font-size: 32rpx;
+}
+
+.order-type text {
+ color: #e92344;
+}
+
+/* 底部工具栏 */
+.order-data-footer{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ border-top: solid 1rpx #f2f2f2;
+ padding-top: 17rpx;
+ padding-right: 30rpx;
+ padding-left: 30rpx;
+ height: 83rpx;
+ background: white;
+ display: flex;
+ flex-wrap: wrap;
+ flex-direction:row-reverse;
+}
+
+.order-data-footer.iphoneX {
+ padding-bottom: 30rpx;
+}
+
+.order-btn{
+ margin-left: 20rpx;
+ height: 54rpx;
+ line-height: 50rpx;
+ box-sizing: border-box;
+ border:solid 1rpx #747788;
+ padding: 0 20rpx;
+ font-size: 26rpx;
+ border-radius: 40rpx;
+ margin-top: 10rpx;
+}
+
+.order-btn-back {
+ border-color: #f57e32;
+ color: #f57e32;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/packet/packet.js b/亿时代-本时生活-2021-04-13/本时生活/pages/packet/packet.js
new file mode 100644
index 0000000..528c03e
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/packet/packet.js
@@ -0,0 +1,140 @@
+// pages/packet/packet.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ mobile : '', //手机号码
+ code : '',
+ iscode : null, //用于存放验证码接口里获取到的code
+ codename : '获取验证码',
+ countDownNum: '',
+ popContHide : false, //领取成功弹出
+ popData : '', //领取金额
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+
+ },
+
+ /**
+ * 获取手机号码
+ */
+ getNameValue(e) {
+ this.setData({
+ mobile: e.detail.value
+ })
+ },
+
+ /**
+ * 获取验证码
+ */
+ getCodeValue(e) {
+ this.setData({
+ code: e.detail.value
+ })
+ },
+
+ /**
+ * code
+ */
+ codeBind(e){
+ let mobile = this.data.mobile,
+ myreg = /^(14[0-9]|13[0-9]|15[0-9]|17[0-9]|18[0-9])\d{8}$$/
+
+ var _this = this
+
+ if (mobile == "") {
+ wx.showToast({
+ title : '手机号不能为空',
+ icon : 'none',
+ duration : 1000
+ })
+ return false;
+ }else if (!myreg.test(mobile)) {
+ wx.showToast({
+ title : '请输入正确的手机号',
+ icon : 'none',
+ duration : 1000
+ })
+ return false;
+ }else{
+ wx.$api.user.send(mobile,'DEFAULT','unicom').then(res=>{
+ wx.showToast({
+ title : '发送成功',
+ icon : 'success',
+ duration: 2000
+ })
+ var num = 61;
+ var timer = setInterval(function () {
+ num--;
+ if (num <= 0) {
+ clearInterval(timer);
+ _this.setData({
+ codename : '重新发送',
+ disabled : false
+ })
+
+ } else {
+ _this.setData({
+ codename : num + "s后重新获取",
+ disabled : true
+ })
+ }
+ }, 1000)
+ })
+ }
+ },
+
+ /**
+ * 立即领取
+ */
+ forgetlogin(e) {
+ let mobile = this.data.mobile,
+ code = this.data.code,
+ that = this,
+ countDownNum = 5 //获取倒计时初始值
+
+ that.setData({
+ countDownNum: countDownNum
+ })
+
+ wx.$api.user.unicom(mobile,'DEFAULT',code).then(res=>{
+ that.setData({
+ popContHide : !this.data.popContHide,
+ popData : res.data
+ })
+ var timerPop = setInterval(function () {
+ countDownNum--;
+ that.setData({
+ countDownNum: countDownNum
+ })
+ if (countDownNum <= 0) {
+ clearInterval(timerPop);
+ that.setData({
+ countDownNum: 0
+ })
+ wx.switchTab({
+ url: '/pages/user/user'
+ })
+ }
+ }, 1000)
+ })
+ },
+
+ /**
+ * 关闭弹窗
+ */
+ popContHide() {
+ this.setData({
+ popContHide : !this.data.popContHide
+ })
+ wx.switchTab({
+ url: '/pages/user/user'
+ })
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/packet/packet.json b/亿时代-本时生活-2021-04-13/本时生活/pages/packet/packet.json
new file mode 100644
index 0000000..fa7e476
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/packet/packet.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "联通红包"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/packet/packet.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/packet/packet.wxml
new file mode 100644
index 0000000..2e8b7f0
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/packet/packet.wxml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+ 请输入办理业务手机号
+ 例:185XXXX0001
+
+
+
+
+
+
+
+
+
+ 领取成功,共领取{{popData}},可在账户中查看
+ 我知道了 ({{countDownNum}})
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/packet/packet.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/packet/packet.wxss
new file mode 100644
index 0000000..2d01234
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/packet/packet.wxss
@@ -0,0 +1,223 @@
+/* 红包领取 */
+.packetCont-img {
+ width: 100vw;
+ height: 100vh;
+ position: fixed;
+}
+
+.packetCont-title {
+ width: 100vw;
+ position: absolute;
+ z-index: 1;
+ left: 0;
+ top: 0;
+ text-align: center;
+ margin-top: 60rpx;
+}
+
+.packetText {
+ position: absolute;
+ top: 16%;
+ left: 40rpx;
+ right: 40rpx;
+ text-align: center;
+}
+
+.packetText-form {
+ background: rgba(255, 255, 255, .7);
+ border-radius: 30rpx;
+ padding: 40rpx 40rpx 70rpx 40rpx;
+ box-sizing: border-box;
+ color: #000;
+ text-align: left;
+ margin-bottom: 100rpx;
+ position: relative;
+}
+
+.packetText-tips {
+ margin: 0 auto;
+ display: block;
+}
+
+.packetText-title {
+ font-weight: 600;
+ font-size: 26rpx;
+ padding: 0 10rpx 40rpx 10rpx;
+}
+
+.packetText-title-name {
+ font-size: 38rpx;
+ margin-bottom: 10rpx;
+}
+
+.packetText-label {
+ background-color: #fff;
+ border-radius: 80rpx;
+ margin-bottom: 60rpx;
+ box-shadow: 0 10rpx 10rpx rgba(0, 0, 0, .4);
+ display: flex;
+ padding: 25rpx 30rpx;
+ box-sizing: border-box;
+}
+
+.packetText-label image {
+ width: 40rpx;
+ height: 40rpx;
+ margin-top: 2rpx;
+ margin-right: 30rpx;
+}
+
+.packetText-label button {
+ border: none;
+ background-color: transparent;
+ width: auto !important;
+ padding: 0;
+ font-weight: normal;
+ font-size: 32rpx;
+}
+
+.inputs-input {
+ position: relative;
+ padding-left: 30rpx;
+}
+
+.inputs-code {
+ position: relative;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ flex: 1;
+ margin-right: 30rpx;
+}
+.inputs-input::after,
+.inputs-code::after {
+ position: absolute;
+ content: '';
+ top: 0;
+ background: #000;
+ width: 4rpx;
+ height: 100%;
+}
+
+.inputs-input::after {
+ left: 0;
+}
+
+.inputs-code::after {
+ right: 0;
+}
+
+.packetText-cozy {
+ font-weight: 600;
+ font-size: 26rpx;
+}
+
+.packetText-cozy text {
+ display: block;
+ margin: 15rpx 0;
+ position: relative;
+ padding-left: 30rpx;
+}
+
+.packetText-cozy text::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ top: 12rpx;
+ background-color: #000;
+ width: 12rpx;
+ height: 12rpx;
+ border-radius: 50%;
+}
+
+.packetText-cozy-name {
+ font-size: 34rpx;
+}
+
+.packetText-btn {
+ width: 100%;
+ text-align: center;
+ height: 90rpx;
+ position: absolute;
+ bottom: -40rpx;
+ left: 0;
+}
+
+.packetText-btn button {
+ line-height: 90rpx;
+ border-radius: 25rpx;
+ background-image: radial-gradient(#fdcf7c 50%,#fdebb8);
+ border: none;
+ font-size: 38rpx;
+ color: #fff;
+ margin: 0 auto;
+ padding: 0;
+}
+
+.packetText-btn text{
+ background: linear-gradient(to bottom, #e38b3c, #cb6418);
+ -webkit-background-clip: text;
+ color: transparent;
+}
+
+.packetText-btn image {
+ width: 34rpx;
+ height: 34rpx;
+ vertical-align: -4rpx;
+ margin-left: 14rpx;
+}
+
+/* 弹出 */
+.popBack {
+ position: fixed;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ background-color: rgba(0, 0, 0, .8);
+ z-index: 8;
+ display: none;
+}
+
+.popCont {
+ position: fixed;
+ z-index: 9;
+ width: 100vw;
+ height: 100vh;
+ text-align: center;
+ display: none;
+}
+
+.popCont-text {
+ padding: 0 10rpx;
+ box-sizing: border-box;
+ position: absolute;
+ z-index: 10;
+ left: 20%;
+ top: 340px;
+ width: 60%;
+}
+
+.popBack.active,
+.popCont.active {
+ display: block;
+}
+
+.popCont-name {
+ margin-bottom: 50rpx;
+ font-size: 30rpx;
+}
+
+.popCont-name text {
+ font-size: 40rpx;
+ color: #fd5238;
+ padding: 0 10rpx;
+}
+
+.popCont-btn {
+ background-color: #ffea37;
+ color: #ff3900;
+ display: inline-block;
+ border-radius: 80rpx;
+ padding: 20rpx 70rpx;
+ box-shadow: 0 10rpx 10rpx rgba(196, 160, 0, 0.4);
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/rights/rights.js b/亿时代-本时生活-2021-04-13/本时生活/pages/rights/rights.js
new file mode 100644
index 0000000..9eebacd
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/rights/rights.js
@@ -0,0 +1,353 @@
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ address : '', //默认收货地址
+ allAddress : '', //收货地址列表
+ groupId : '', //权益id
+ detail : '', //权益详情
+ amount : '', //总金额
+ moreAmount : '', //产品金额
+ score : '', //应付总积分
+ freight : '', //运费
+ num : 1, //购买的数量
+ content : '', //内容介绍
+ notification: '', //重要提示
+ remark : '', //使用须知
+ noticeShow : false, //须知显示状态
+ addressShow : false, //收货地址显示
+ getType : '', //是否显示自提
+ platIndex : 0, //选择提交方式下标
+ isdeliver : '',
+ platformCp : [], //选择提交数组
+ pointMoreShow: false,
+ from : '',
+ typeNo : '',
+ uniUrl : '', //跳转h5页面
+ openid : '',
+ webShow : false,
+ rightsTap : false,
+ disabled : false,
+ payWayIndex : 0,
+ payWay :[
+ {value: 0, name: "微信支付"},
+ {value: 1, name: "沃钱包支付"}
+ ]
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ this.setData({
+ groupId : options.rightsId || options.id,
+ typeWeb : options.type,
+ getType : options.getType,
+ openid : options.openid || ''
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+ // 获取详情
+ this.rightsInfo();
+ },
+
+ /**
+ * 详情
+ */
+ rightsInfo() {
+ wx.$api.index.rightShow(this.data.groupId, this.data.address.id, this.data.num, this.data.isdeliver).then(res=>{
+ let obj = res.data.detail.express
+ let defGet = res.data.detail.def_get
+ let arr = new Array
+
+ arr = Object.keys(obj).map(val=>{
+ return { ...obj[val], ...{key: val} }
+ })
+
+ this.setData({
+ address : res.data.address,
+ allAddress : res.data.all_address,
+ detail : res.data.detail,
+ num : res.data.num,
+ freight : res.data.freight,
+ platformCp : arr,
+ from : res.data.detail.from,
+ amount : res.data.total,
+ moreAmount : res.data.amount,
+ score : res.data.score,
+ typeNo : res.data.detail.type_no,
+ remark : res.data.detail.remark.replace(/\
{
+ this.setData({
+ uniUrl : encodeURIComponent(res.data)
+ })
+ })
+ }
+ }
+ }).catch(err=>{
+ if(!err.login){
+ wx.showModal({
+ title : '用户登录已过期',
+ content : '请重新登录',
+ showCancel : false,
+ success : res => {
+ if (res.confirm) {
+ wx.redirectTo({
+ url: '/pages/login/login'
+ })
+ }
+ }
+ })
+ }
+ })
+ },
+
+ /**
+ * 商品数量加减
+ */
+ goodsNumber(e){
+ let num = this.data.num
+ if (e.currentTarget.dataset.type == 'plus'){
+ num ++;
+ }else{
+ if (num > 1){
+ num --;
+ }else{
+ wx.showToast({
+ title : '商品数量不能小于1',
+ icon : 'none'
+ })
+ }
+ }
+ this.setData({
+ num : num
+ })
+
+ // 获取详情
+ this.rightsInfo()
+ },
+ /**
+ * 输入商品数量
+ */
+ goodsNumberInput(e){
+ let goodsNum = e.detail.value
+ if (goodsNum > 0){
+ this.setData({
+ num : goodsNum
+ })
+ }else{
+ wx.showToast({
+ title : '商品数量不能小于1',
+ icon : 'none'
+ })
+ this.setData({
+ num : goodsNum
+ })
+ }
+
+ // 获取详情
+ this.rightsInfo()
+ },
+
+ /**
+ * 须知展开收起状态
+ */
+ noticeTap() {
+ this.setData({
+ noticeShow : !this.data.noticeShow
+ })
+ },
+
+ /**
+ * 选择提交方式
+ */
+ platBind(e) {
+ this.setData({
+ platIndex : e.detail.value,
+ isdeliver : this.data.platformCp[e.detail.value].value
+ })
+ // 获取详情
+ this.rightsInfo()
+ },
+
+ /**
+ * 收货地址弹出
+ */
+ addressTap() {
+ this.setData({
+ addressShow : true
+ })
+ },
+
+ /**
+ * 收货地址收起
+ */
+ addressHide() {
+ this.setData({
+ addressShow : false
+ })
+ },
+
+ /**
+ * 选择收货地址
+ */
+ selectAddress(e){
+ let new_addressId = e.currentTarget.dataset.id,
+ addressId = this.data.address.id
+ if (new_addressId != addressId) {
+ this.setData({
+ address : e.currentTarget.dataset.index,
+ addressShow : false
+ })
+ }else{
+ this.setData({
+ addressShow : false
+ })
+ }
+
+ // 获取详情
+ this.rightsInfo()
+ },
+
+ /**
+ * 普通商品支付提交
+ */
+ ordinary() {
+ this.submitOrder();
+ this.setData({
+ disabled : true
+ })
+ },
+
+ /**
+ * 只有银联商品获取
+ */
+ unionOrder() {
+ // 更新openid
+ wx.$api.index.unionCode(this.data.openid).then(res=>{})
+ this.submitOrder();
+ },
+
+ /**
+ * 支付选择
+ */
+ payBind(e) {
+ this.setData({
+ payWayIndex: e.detail.value
+ })
+ },
+
+ /**
+ * 支付提交
+ */
+ submitOrder() {
+ if(this.data.isdeliver.length == 0) {
+ this.setData({
+ isdeliver: this.data.detail.def_get
+ })
+ }
+ let right_id = this.data.detail.right_id,
+ address_id = this.data.address.id,
+ is_deliver = this.data.isdeliver,
+ qty = this.data.num
+
+ wx.$api.index.rightStore(right_id, address_id, is_deliver, qty).then(res=>{
+ if(res.data.canPay == false) {
+ wx.showToast({
+ title : '支付成功',
+ icon : 'success',
+ duration: 2000
+ })
+ setTimeout(()=>{
+ wx.reLaunch({
+ url: '/pages/order/order'
+ })
+ },3000)
+ this.setData({
+ rightsTap: true
+ })
+ }else {
+ // payWayIndex为0的时候为微信支付
+ if(this.data.payWayIndex == 0) {
+ wx.$api.index.wechat(res.data.trade_no).then(res=>{
+ let payInfo = JSON.parse(res.data)
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ wx.showToast({
+ title: '支付成功',
+ icon : 'success'
+ })
+ setTimeout(()=>{
+ wx.reLaunch({
+ url: '/pages/coupon/coupon?type=couponPublic'
+ })
+ },3000)
+ }
+ },
+ fail : res=>{
+ wx.reLaunch({
+ url: '/pages/order/order?stateType=unpay'
+ })
+ }
+ })
+ })
+ }
+ // payWayIndex为1的时候为沃钱包支付
+ if(this.data.payWayIndex == 1) {
+ const newUrl = "https://lifetest.ysd-bs.com/unicom/payment?trade_no=" + res.data.trade_no
+ let url= encodeURIComponent(newUrl)
+ wx.navigateTo({
+ // 跳转到webview页面
+ url: `/pages/webView/webView?url=${url}`
+ });
+ }
+ }
+ })
+ },
+
+
+ /**
+ * 新增收货地址
+ */
+ addSelect() {
+ wx.navigateTo({
+ url: '/pages/address/address?type=selectAddress'
+ })
+ this.setData({
+ addressShow : false
+ })
+ },
+
+ /**
+ * 新增收货地址
+ */
+ pointMoreTap() {
+ this.setData({
+ pointMoreShow : !this.data.pointMoreShow
+ })
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/rights/rights.json b/亿时代-本时生活-2021-04-13/本时生活/pages/rights/rights.json
new file mode 100644
index 0000000..3e0f2bc
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/rights/rights.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText" : "卡券权益",
+ "navigationBarBackgroundColor": "#151619",
+ "navigationBarTextStyle" : "white"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/rights/rights.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/rights/rights.wxml
new file mode 100644
index 0000000..757ff2d
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/rights/rights.wxml
@@ -0,0 +1,214 @@
+
+
+
+ 立即领取
+
+
+ 立即购买
+ 立即购买
+
+
+
+
+
+
+
+
+
+
+
+
+ 重要提示
+
+
+
+
+
+ {{pointMoreShow == true ? '收起' : '展开'}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{detail.four_title}}
+
+
+
+
+
+
+
+ {{detail.three_title}}
+
+
+
+
+
+
+ 数量
+
+ -
+
+ +
+
+
+
+
+
+
+ {{detail.attribute.form_price}}
+ ¥{{moreAmount}}
+
+
+ 电子券
+ {{detail.qty}}张
+
+
+
+
+
+
+ 请选择提交方式
+
+
+
+ {{platformCp[platIndex].name}}
+
+
+
+
+
+
+ 收货地址
+
+
+ {{address.all_address}}
+
+
+
+
+
+ 添加收货地址
+
+
+
+
+ 快递运费
+ ¥{{freight}}
+
+
+
+
+
+
+ {{detail.attribute.form_type}}
+ ¥{{detail.score}}
+
+
+ {{detail.attribute.form_pay}}
+ ¥{{amount}}
+
+
+
+
+
+
+ 请选择支付方式
+
+
+
+ {{payWay[payWayIndex].name}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 购买前请仔细阅读使用须知、内容介绍
+
+
+
+
+ 购买须知
+
+
+
+
+ 内容介绍
+
+
+
+
+
+
+
+
+
+
+
+ 请选择收货地址
+ 新增收货地址
+
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/rights/rights.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/rights/rights.wxss
new file mode 100644
index 0000000..0625c65
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/rights/rights.wxss
@@ -0,0 +1,606 @@
+page {
+ background-color: #f7f7f7;
+}
+
+.cont {
+ width: 100%;
+ overflow: hidden;
+}
+
+
+/* 卡券权益 */
+.contBack {
+ position: relative;
+ width: 200%;
+ height: 400rpx;
+ left: -50%;
+ text-align: center;
+ background: #000000;
+ border-radius: 0 0 100% 100%;
+ overflow: hidden;
+}
+
+/* .contBack::after {
+ width: 100%;
+ height: 30rpx;
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ z-index: 2;
+ content: '';
+ background-image: linear-gradient(transparent, rgba(0,0,0,.25));
+} */
+
+.classBack {
+ position: absolute;
+ left: 30%;
+ right: 30%;
+ width: 40%;
+ top: 40rpx;
+}
+
+.classCircle {
+ position: relative;
+}
+
+.classCircle::after,
+.contBack::before {
+ position: absolute;
+ border-radius: 50%;
+ content: '';
+ z-index: 1;
+ background-color: rgba(255,255,255,.1);
+}
+
+.classCircle::after {
+ left: 20%;
+ top: -20rpx;
+ width: 260rpx;
+ height: 260rpx;
+}
+
+.contBack::before {
+ right: 20%;
+ top: 55%;
+ width: 300rpx;
+ height: 300rpx;
+}
+
+.rightsCont {
+ position: absolute;
+ z-index: 3;
+ left: calc(30% - 2rpx);
+ right: calc(30% - 2rpx);
+ width: calc(40% + 4rpx);
+ top: 58rpx;
+}
+
+.rightsCont-btn {
+ background-color: #f4dfcc;
+ width: 100%;
+ line-height: 70rpx;
+ font-size: 38rpx;
+ color: #694425;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+}
+
+.rightsCont-tips {
+ color: #fff;
+}
+
+.rightsNumber {
+ display: flex;
+ width: 100%;
+ margin: 30px 0 20px;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+}
+
+.rightsNumber text {
+ display: inline-block;
+ flex: 1;
+}
+
+.rightsAdd {
+ display: flex;
+}
+
+.rightsAdd-btn {
+ background: #eaeaea;
+ color: #535353;
+ border-radius: 50%;
+ text-align: center;
+ width: 50rpx;
+ height: 50rpx;
+ line-height: 45rpx;
+ font-size: 40rpx;
+ font-weight: 600;
+}
+
+.rightsAdd-input {
+ width: 100rpx;
+ text-align: center;
+ font-size: 28rpx;
+ line-height: 50rpx;
+}
+
+.rightsTips {
+ padding: 0 30rpx;
+ color: #ff5b5d;
+ font-size: 28rpx;
+ font-weight: 600;
+}
+
+.rightsList,
+.notice,
+.detailsStore {
+ background: white;
+ margin: 30rpx;
+ border-radius: 10rpx;
+ padding: 10rpx 0;
+ box-sizing: border-box;
+ box-shadow: 0 0 30rpx rgba(0,0,0,.15);
+}
+
+.rightsLabel,
+.rightsLabel-pay {
+ display: flex;
+ padding: 20rpx;
+ color: #6f7880;
+ font-size: 30rpx;
+}
+
+.rightsLabel .rightsLabel-left {
+ flex: 1;
+ color: #747d86;
+}
+
+.rightsLabel-black {
+ padding-top: 30rpx;
+}
+
+.rightsLabel-range {
+ display: flex;
+ color: #000;
+ font-weight: 600;
+}
+
+.rightsLabel-row {
+ width: 38rpx;
+ height: 38rpx;
+ margin: 2rpx 0 0 6rpx;
+}
+
+.rightsLabel-black .rightsLabel-right,
+.rightsLabel-red {
+ color: #ff5b5d;
+ font-weight: 600;
+ font-size: 32rpx;
+}
+
+.rightsLabel-black .rightsLabel-left {
+ color: #000;
+}
+
+.rightsLabel-score {
+ font-weight: 600;
+ color: #000;
+ font-size: 38rpx;
+}
+
+.rightsLabel-pay {
+ color: #000;
+}
+
+.rightsLabel-pay .rightsLabel-left {
+ flex: 1;
+}
+
+.notice {
+ padding: 20rpx;
+}
+
+.noticeTitle {
+ display: flex;
+}
+
+.noticeTitle-flex {
+ flex: 1;
+ display: flex;
+ font-size: 30rpx;
+ line-height: 46rpx;
+}
+
+.noticeTitle-img {
+ width: 46rpx;
+ height: 46rpx;
+ margin-right: 20rpx;
+}
+
+.noticeText {
+ font-size: 26rpx;
+ height: 0;
+ overflow: hidden;
+}
+
+.noticeText.active {
+ height: auto;
+}
+
+.noticeText-top {
+ margin: 30rpx 0 10rpx;
+ font-weight: 600;
+}
+
+.noticeText-cont {
+ line-height: 60rpx;
+}
+
+.noticeTitle-row {
+ width: 46rpx;
+ height: 46rpx;
+}
+
+.noticeTitle-row.active {
+ transform: rotate(90deg);
+}
+
+/* 门店 */
+.detailsStore {
+ padding: 20rpx;
+}
+
+.detailsStore-top {
+ display: flex;
+ line-height: 30rpx;
+ margin-bottom: 20rpx;
+}
+
+.detailsStore-see {
+ color: #dfae2e;
+ border: 2rpx solid #dfae2e;
+ border-radius: 10rpx;
+ font-size: 28rpx;
+ margin-top: 30rpx;
+ height: 80rpx;
+ line-height: 80rpx;
+ text-align: center;
+}
+
+.detailsStore-see text {
+ display: inline-block;
+}
+
+.detailsStore-see image {
+ width: 50rpx;
+ height: 50rpx;
+ margin-left: 10rpx;
+}
+
+/* 购买按钮 */
+.rightsBtn {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100rpx;
+ z-index: 9;
+ background: #fff;
+}
+
+.rightsBtn button,
+.rightsBtn text {
+ display: block;
+ margin: 12rpx 30rpx;
+ width: calc(100% - 60rpx) !important;
+ height: 74rpx !important;
+ line-height: 74rpx !important;
+ padding: 0;
+ background: #eacf88;
+ text-align: center;
+ border-radius: 60rpx;
+ font-size: 30rpx;
+}
+
+
+.rightsBtn.active text {
+ background: #dedede;
+ color: #888;
+}
+
+/* 选择收货地址 */
+.addressBack {
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ background: rgba(0, 0, 0, .4);
+ z-index: 10;
+ width: 100%;
+ height: 100%;
+ display: none;
+}
+
+.addressBack.active {
+ display: block;
+}
+
+.addressCont {
+ position: fixed;
+ left: 0;
+ bottom: -1000%;
+ transition: .2s;
+ background: #fff;
+ z-index: 11;
+ width: 100%;
+}
+
+.addressCont.active {
+ bottom: 0;
+}
+
+.addressCont-title {
+ height: 90rpx;
+ line-height: 90rpx;
+ display: flex;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ font-size: 28rpx;
+ font-weight: 600;
+}
+
+.addressCont-left {
+ flex: 1;
+}
+
+.addressCont-right {
+ color: #309ded;
+}
+
+.header-classify {
+ white-space: nowrap;
+ box-sizing: border-box;
+ height: 600rpx;
+}
+
+.addressCont-list {
+ padding: 30rpx 20rpx;
+ box-sizing: border-box;
+ font-size: 30rpx;
+ overflow: hidden;
+ position: relative;
+}
+
+.addressCont-top {
+ display: flex;
+ margin-bottom: 10rpx;
+}
+
+.addressCont-name {
+ font-weight: 600;
+}
+
+.addressCont-text {
+ color: #666;
+ width: calc(100% - 160rpx);
+}
+
+.addressCont-list:last-child {
+ border: none;
+}
+
+.rightsLabel-address {
+ display: flex;
+}
+
+.rightsLabel-address text {
+ display: inline-block;
+ width: calc(100% - 46rpx);
+}
+
+.rightsLabel-address .rightsLabel-right {
+ display: flex;
+ font-size: 28rpx;
+}
+
+.address-tool {
+ display: flex;
+ float: right;
+}
+
+.address-tool-btn {
+ font-size: 24rpx;
+ margin-top: 20rpx;
+ border: 2rpx solid #666;
+ color: #666;
+ border-radius: 6rpx;
+ text-align: center;
+ height: 50rpx;
+ line-height: 50rpx;
+ padding: 0 20rpx;
+ margin-right: 20rpx;
+ display: flex;
+}
+
+.address-tool-btn-del {
+ color: #dfae2e;
+ border-color: #dfae2e;
+}
+
+.address-tool-icon {
+ width: 120rpx;
+ height: 54rpx;
+ line-height: 54rpx;
+ border-radius: 4rpx;
+ text-align: center;
+ color: #fff;
+ position: absolute;
+ top: 45rpx;
+ right: 10rpx;
+ background: #dfae2e;
+ transform: scale(.9, .9);
+ font-size: 24rpx;
+}
+
+.rightsPoint {
+ position: fixed;
+ left: 0;
+ bottom: 100rpx;
+ background: #fff;
+ z-index: 9;
+ width: 100%;
+ padding: 20rpx 20rpx 10rpx;
+ box-sizing: border-box;
+}
+
+.rightsPoint-cont {
+ width: 100%;
+ background: #fff8e5;
+ border: 2rpx solid #f2ecde;
+ border-radius: 10rpx;
+ position: relative;
+ max-height: 50vh;
+ overflow-y: scroll;
+}
+
+.rightsPoint-top {
+ font-size: 28rpx;
+ display: flex;
+ padding: 20rpx;
+ box-sizing: border-box;
+ font-weight: 600;
+}
+
+.rightsPoint-top image {
+ width: 36rpx;
+ height: 36rpx;
+ margin-right: 10rpx;
+}
+
+.rightsPoint-text {
+ padding: 0 20rpx;
+ box-sizing: border-box;
+ font-size: 24rpx;
+ line-height: 44rpx;
+ height: 90rpx;
+ transition: height 25s;
+ overflow: hidden;
+}
+
+.rightsPoint-text.active {
+ height: auto;
+ transition: 2s;
+}
+
+.rightsPoint-text view {
+ position: relative;
+ padding-left: 40rpx;
+}
+
+.rightsPoint-text view::after {
+ position: absolute;
+ content: '';
+ left: 10rpx;
+ top: 20rpx;
+ background: #000;
+ width: 10rpx;
+ height: 10rpx;
+ border-radius: 50%;
+}
+
+.rightsPoint-bolck {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: calc(100% - 40rpx);
+}
+
+.pointMore {
+ text-align: center;
+ width: 100%;
+ background: #fff8e5;
+ height: 80rpx;
+ line-height: 82rpx;
+ position: relative;
+ margin-top: 10rpx;
+}
+
+.pointMore::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 2rpx;
+ background: #f2ecde;
+}
+
+.pointMore text {
+ font-size: 28rpx;
+ color: #c38e00;
+ animation: dong 1.8s infinite;
+ display: inline-block;
+}
+
+.pointMore image {
+ width: 30rpx;
+ height: 30rpx;
+ margin-left: 4rpx;
+ vertical-align: -4rpx;
+ animation: dong 1.8s infinite;
+}
+
+@keyframes dong {
+ 0% {
+ transform: translate(0px, 0px);
+ }
+
+ 50% {
+ transform: translate(0px, -6rpx);
+ }
+
+ 100% {
+ transform: translate(0px, 0px);
+ }
+}
+
+.webBack {
+ position: fixed;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ z-index: 9999;
+ background-color: #fff;
+ text-align: center;
+ display: none;
+}
+
+.webBack.active {
+ display: block;
+}
+
+.welfareCont-top{
+ white-space: nowrap;
+ flex-direction: row;
+ align-items: center;
+ justify-content: space-around;
+ width: 100%;
+ padding: 0 10rpx;
+ box-sizing: border-box;
+ margin: 50rpx 0 20rpx;
+}
+
+.welfareCont-list-img {
+ border-radius: 50%;
+ width: 120rpx;
+ height: 120rpx;
+ display: inline-block;
+ margin: 0 15rpx;
+ overflow: hidden;
+}
+
+.welfareCont-list-img image {
+ width: 100%;
+ height: 100%;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/store/store.js b/亿时代-本时生活-2021-04-13/本时生活/pages/store/store.js
new file mode 100644
index 0000000..9e841c8
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/store/store.js
@@ -0,0 +1,213 @@
+// pages/store/store.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ stores : [], //门店列表
+ id : 0, //优惠券id
+ searchText : '', //搜索关键字
+ longitude : 0, //经度
+ latitude : 0, //纬度
+ //省份选择
+ areas : [],
+ areaIndex : 0,
+ //市级选择
+ cityList : [],
+ cityIndex : 0,
+ //区域选择
+ regiList : [],
+ regiIndex : 0,
+
+ page : {}, //下一页
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 优惠券id
+ this.setData({
+ id :options.id
+ })
+
+ // 获取位置
+ wx.getLocation({
+ type: 'gcj02',
+ success: res=> {
+ this.setData({
+ longitude : res.longitude,
+ latitude : res.latitude
+ })
+ // 解析坐标
+ getApp().qqmapsdk.reverseGeocoder({
+ location: {
+ latitude : res.latitude,
+ longitude : res.longitude
+ },
+ success: res=>{
+ if(res.message == "query ok"){
+ let addressInfo = res.result.address_component
+ // 获取门店列表
+ this.storesInfo(addressInfo);
+ }else{
+ wx.showToast({
+ title: res.message,
+ icon : 'none'
+ })
+ }
+ }
+ })
+ }
+ })
+ },
+
+ /**
+ * 选择城市信息
+ */
+ regi(e){
+ let chantType = e.currentTarget.dataset.type,
+ chantIndex = e.detail.value,
+ name = ""
+
+ if(chantType == "area"){
+ name = "areaIndex"
+ }else if(chantType == "city"){
+ name = "cityIndex"
+ this.getAreas(this.data.cityList[chantIndex].code, "")
+ }else if(chantType == "regi"){
+ name = "regiIndex"
+ }
+
+ this.setData({
+ [name] : chantIndex
+ })
+
+ // 获取门店列表
+ this.storesInfo()
+ },
+
+ /**
+ * 门店列表
+ */
+ storesInfo(addressInfo, page) {
+ let coupon_id = this.data.id,
+ user_lng = this.data.longitude,
+ user_lat = this.data.latitude,
+ province_id = "",
+ city_id = "",
+ district_id = "",
+ title = this.data.searchText || "",
+ areaIndex = this.data.areaIndex,
+ cityIndex = this.data.cityIndex,
+ regiIndex = this.data.regiIndex,
+ cityList = this.data.cityList,
+ areas = this.data.areas,
+ regiList = this.data.regiList
+
+ if(!addressInfo){
+ province_id = areas[areaIndex].code
+ city_id = cityList[cityIndex].code
+ district_id = regiList[regiIndex].code
+ }
+
+ wx.$api.user.stores(coupon_id, province_id, city_id, district_id, title, user_lng, user_lat, page).then(res=>{
+ let stores = this.data.stores,
+ newData = []
+ if(page == 1 || page == undefined) stores = []
+ newData = stores.concat(res.data.stores.data)
+
+ newData.map(res=>{
+ let distance = res.distance
+ if(res.distance > 1000){
+ distance = (distance / 1000) + "km"
+ }else{
+ distance = distance + "m"
+ }
+ res.km = distance
+ })
+
+ if(addressInfo){
+ cityList = res.data.citys
+ areas = res.data.provinces
+
+ areaIndex = areas.findIndex(val => val.name == addressInfo.province)
+ cityIndex = cityList.findIndex(val => val.name == addressInfo.city)
+ // this.getAreas(cityList[cityIndex].code, addressInfo.district)
+ this.getAreas(cityList[cityIndex].code, '')
+
+ }
+ this.setData({
+ areas : areas,
+ stores : newData,
+ cityList : cityList,
+ areaIndex : areaIndex,
+ cityIndex : cityIndex,
+ page : res.data.stores.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 获取区级信息
+ */
+ getAreas(sn, areas){
+ wx.$api.user.areas(sn).then(res=>{
+ let regiList = res.data,
+ regiIndex = 0
+
+ if(areas) regiIndex = regiList.findIndex(val => val.name == areas)
+
+ this.setData({
+ regiList : regiList,
+ regiIndex : regiIndex
+ })
+ })
+ },
+
+ /**
+ * 查看门店详情页
+ */
+ detailsTap(e) {
+ let store_id = e.currentTarget.dataset.id,
+ user_lng = this.data.longitude,
+ user_lat = this.data.latitude
+
+ wx.navigateTo({
+ url: '/pages/storeDetails/storeDetails?store_id=' + store_id + '&user_lng=' + user_lng + '&user_lat=' + user_lat,
+ })
+ },
+
+ /**
+ * 搜索门店
+ */
+ searchForm(e) {
+ this.setData({
+ searchText : e.detail.value.search
+ })
+
+ // 获取门店列表
+ this.storesInfo()
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ this.setData({
+ page: pageNumber
+ })
+ this.storesInfo('', pageNumber)
+ }
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/store/store.json b/亿时代-本时生活-2021-04-13/本时生活/pages/store/store.json
new file mode 100644
index 0000000..e0dff17
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/store/store.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "门店列表"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/store/store.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/store/store.wxml
new file mode 100644
index 0000000..1abd8e7
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/store/store.wxml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+ {{areas[areaIndex].name}}
+
+
+
+
+
+
+
+ {{cityList[cityIndex].name}}
+
+
+
+
+
+
+
+ {{regiList[regiIndex].name}}
+
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+ {{item.address}}
+ {{item.km}}
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无商家
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/store/store.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/store/store.wxss
new file mode 100644
index 0000000..93b8b97
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/store/store.wxss
@@ -0,0 +1,136 @@
+/* 搜索 */
+.search {
+ background: #fff;
+ position: fixed;
+ width: 100%;
+ left: 0;
+ top: 0;
+ height: 110rpx;
+ z-index: 99;
+}
+
+.searchCont {
+ background: #f7f7f7;
+ border-radius: 50rpx;
+ height: 80rpx;
+ line-height: 80rpx;
+ font-size: 28rpx;
+ margin: 20rpx 20rpx 0;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ display: flex;
+}
+
+.searchCont image {
+ width: 34rpx;
+ height: 34rpx;
+ margin: 24rpx 20rpx 0 0;
+}
+
+.searchCont input {
+ height: 100%;
+ width: calc(100% - 150rpx);
+}
+
+.searchCont button {
+ background: transparent;
+ width: 100rpx !important;
+ text-align: right;
+ padding: 0 !important;
+ margin: 0 !important;
+ height: 80rpx;
+ line-height: 80rpx;
+ font-size: 30rpx;
+ color: #ff9b1a;
+}
+
+/* 筛选 */
+.screen {
+ background: #fff;
+ position: fixed;
+ width: 100%;
+ left: 0;
+ top: 110rpx;
+ height: 90rpx;
+ overflow: hidden;
+ z-index: 99;
+}
+
+.screenLabel {
+ float: left;
+ width: calc(33.33% - 20rpx);
+ text-align: center;
+ color: #5f5f5f;
+ line-height: 90rpx;
+ font-size: 28rpx;
+ margin: 0 10rpx;
+}
+
+.screenLabel picker {
+ width: calc(100% - 17rpx);
+ position: relative;
+}
+
+.screenLabel-arrow {
+ position: absolute;
+ right: 0;
+ top: calc(50% - 17rpx);
+ width: 34rpx;
+ height: 34rpx;
+}
+
+/* 门店列表 */
+
+.storeList {
+ background: #fff;
+ padding: 20rpx;
+ box-sizing: border-box;
+ margin-top: 220rpx;
+ padding-bottom: 40rpx;
+}
+
+.detailsStore-list {
+ position: relative;
+ margin-bottom: 40rpx;
+}
+
+.detailsStore-list:last-child {
+ margin-bottom: 0;
+}
+
+.detailsStore-logo {
+ width: 120rpx;
+ height: 120rpx;
+ border-radius: 10rpx;
+}
+
+.detailsStore-cont {
+ position: absolute;
+ left: 150rpx;
+ top: 10rpx;
+ width: calc(100% - 150rpx);
+}
+
+.detailsStore-tel {
+ width: 60rpx;
+ height: 60rpx;
+ margin-top: 25rpx;
+}
+
+.detailsStore-place {
+ font-size: 24rpx;
+ line-height: 40rpx;
+ color: #5a5a5a;
+ display: flex;
+}
+
+.detailsStore-place text {
+ flex: 1;
+ display: inline-block;
+ font-size: 28rpx;
+ margin-right: 20rpx;
+}
+
+.detailsStore-name {
+ margin-bottom: 20rpx;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/storeDetails/storeDetails.js b/亿时代-本时生活-2021-04-13/本时生活/pages/storeDetails/storeDetails.js
new file mode 100644
index 0000000..62f651f
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/storeDetails/storeDetails.js
@@ -0,0 +1,62 @@
+// pages/storeDetails/storeDetails.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ storeinfo : '', //门店详情
+ distance : 0,
+ longitude : 0,
+ latitude : 0
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+
+ wx.$api.user.storesShow(options.store_id, options.user_lng, options.user_lat).then(res=>{
+ let distance = res.data.distance
+
+ if(distance > 1000){
+ distance = (distance / 1000) + "km"
+ }else{
+ distance = distance + "m"
+ }
+
+ this.setData({
+ storeinfo : res.data,
+ distance : distance
+ })
+ })
+ },
+
+ /**
+ * 拨打电话
+ */
+ tel(e) {
+ let tel = this.data.storeinfo.mobile
+ wx.showActionSheet({
+ itemList : ['呼叫商家'],
+ success : res =>{
+ if(res.tapIndex==0){
+ wx.makePhoneCall({
+ phoneNumber: tel
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 导航
+ */
+ siteMap(){
+ wx.openLocation({
+ latitude : parseFloat(this.data.storeinfo.latitude),
+ longitude : parseFloat(this.data.storeinfo.longitude),
+ address : this.data.storeinfo.address
+ })
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/storeDetails/storeDetails.json b/亿时代-本时生活-2021-04-13/本时生活/pages/storeDetails/storeDetails.json
new file mode 100644
index 0000000..5bd1958
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/storeDetails/storeDetails.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "门店详情"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/storeDetails/storeDetails.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/storeDetails/storeDetails.wxml
new file mode 100644
index 0000000..aa896e8
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/storeDetails/storeDetails.wxml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ {{storeinfo.title}}
+
+
+
+
+
+ {{storeinfo.address}}
+ 距您 {{distance}}
+
+
+
+
+
+
+
+
+ 营业时间
+ {{storeinfo.open_time}}
+ 00:00
+
+
+
+
+
+
+
+
+
+ 去导航
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/storeDetails/storeDetails.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/storeDetails/storeDetails.wxss
new file mode 100644
index 0000000..53be56d
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/storeDetails/storeDetails.wxss
@@ -0,0 +1,102 @@
+/* 门店详情 */
+.detailsImg {
+ position: relative;
+ width: 100%;
+ padding-top: 60%;
+}
+
+.detailsImg image {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.detailsCont {
+ background: #fff;
+}
+
+.detailsName {
+ font-size: 34rpx;
+ padding: 30rpx;
+ font-weight: 600;
+ box-sizing: border-box;
+}
+
+.detailsLabel {
+ display: flex;
+ padding: 30rpx;
+ box-sizing: border-box;
+ position: relative;
+}
+
+.detailsLabel::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ top: 0;
+ background: #e7e7e7;
+ width: 100%;
+ height: 2rpx;
+}
+
+.detailsLabel-left {
+ width: calc(100%- 40rpx);
+ display: flex;
+ flex: 1;
+ color: #5e5e5e;
+}
+
+.detailsLabel-left image {
+ width: 40rpx;
+ height: 40rpx;
+ margin: 20rpx 20rpx 0 0;
+}
+
+.detailsLabel-tel {
+ width: 60rpx;
+ height: 60rpx;
+ margin-top: 14rpx;
+}
+
+.detailsLabel-name {
+ font-size: 26rpx;
+ width: calc(100% - 110rpx);
+ margin-right: 10rpx;
+}
+
+.detailsLabel-name text {
+ font-weight: 600;
+ font-size: 30rpx;
+ display: block;
+ margin-bottom: 10rpx;
+}
+
+.detailsLabel-add {
+ width: 34rpx;
+ height: 34rpx;
+ margin-top: 24rpx;
+}
+
+.detailsBtn {
+ background: #fff;
+ width: 100%;
+ height: 120rpx;
+ text-align: center;
+ left: 0;
+ bottom: 0;
+ position: fixed;
+ padding: 20rpx;
+ box-sizing: border-box;
+}
+
+.detailsBtn-cont {
+ width: 100%;
+ background: #ef8e41;
+ color: #fff;
+ height: 80rpx;
+ line-height: 80rpx;
+ text-align: center;
+ border-radius: 50rpx;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/switchcity/switchcity.js b/亿时代-本时生活-2021-04-13/本时生活/pages/switchcity/switchcity.js
new file mode 100644
index 0000000..de4c22d
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/switchcity/switchcity.js
@@ -0,0 +1,180 @@
+// 获取城市
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ winHeight : 0, //可视高度
+ cityList : [], //城市列表
+ adcode : 0, //城市code
+ scrollTop : 0, //置顶高度
+ scrollTopId : '', //置顶id
+ searchLetter: [], //热门城市
+ regionShow : false, //区域显示开关
+ city : '', //城市名称
+ area : '', //区域名称
+ cityName : '', //定位城市名称
+ defaultcity : '', //定位区域名称
+ defaultregi : '', //区域名称
+ regiList : [], //区域列表
+ address : {
+ city_code: "",
+ area_code: ""
+ }
+ },
+
+ onLoad(e) {
+ wx.getLocation({
+ success: res => {
+ // 解析坐标
+ getApp().qqmapsdk.reverseGeocoder({
+ location: {
+ latitude : res.latitude,
+ longitude : res.longitude
+ },
+ success: res=>{
+ this.setData({
+ defaultcity : res.result.ad_info.city,
+ defaultregi : res.result.ad_info.district
+ })
+ }
+ })
+ },
+ fail: res => {}
+ })
+
+ if(e.area === '') e.area_code = '0'
+
+ this.setData({
+ address : {
+ area_code: e.area_code,
+ city_code: e.city_code,
+ area: e.area,
+ city: e.city
+ }
+ })
+
+ // 获取全部城市
+ this.local();
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onShow() {},
+
+ /**
+ * 全部城市
+ */
+ local() {
+ wx.$api.index.newCity().then(res=>{
+ this.setData({
+ cityList : res.data
+ })
+ // 获取区级列表
+ this.regilist(this.data.address.city_code)
+ }).catch(err=>{
+ if(!err.login){
+ // 写入缓存
+ wx.setStorage({
+ key : 'token',
+ data : ''
+ })
+ }
+ })
+ },
+
+ /**
+ * 城市字母
+ */
+ clickLetter (e) {
+ var showLetter = e.currentTarget.dataset.letter;
+ this.setData({
+ showLetter : showLetter,
+ isShowLetter: true,
+ scrollTopId : showLetter,
+ })
+ var that = this;
+ setTimeout(function () {
+ that.setData({
+ isShowLetter: false
+ })
+ }, 1000)
+ },
+
+ /**
+ * 选择城市
+ */
+ bindCity(e) {
+ let stairid = e.currentTarget.dataset.citycode,
+ city = e.currentTarget.dataset.city
+
+ this.setData({
+ address: {
+ city_code: stairid,
+ city: city
+ }
+ })
+
+ // 获取区级列表
+ this.regilist(stairid)
+ },
+
+ /**
+ * 地区列表
+ */
+ regilist(areaCode) {
+ wx.$api.index.newidxCity(areaCode).then(res=>{
+ res.data.unshift({ code: '0', name:'全部'})
+ this.setData({
+ regiList : res.data
+ })
+ })
+ },
+
+ /**
+ * 选择市区返回
+ */
+ regionOpt (e) {
+ let area_name = e.currentTarget.dataset.city
+ var pages = getCurrentPages();
+ var prevPage = pages[pages.length - 2];
+
+ if(area_name === '全部') area_name = this.data.address.city
+
+ prevPage.setData({
+ city: area_name
+ })
+ wx.navigateBack({
+ delta: 1
+ })
+ },
+
+ /**
+ * 选择定位城市返回
+ */
+ nowLocation () {
+ var pages = getCurrentPages();
+ var prevPage = pages[pages.length - 2];
+
+ prevPage.setData({
+ cityName: this.data.defaultcity,
+ city : this.data.defaultregi
+ })
+ wx.navigateBack({
+ delta: 1
+ })
+ },
+
+ /**
+ * 点击当前回到顶部
+ */
+ hotCity () {
+ this.setData({
+ scrollTop: 0,
+ })
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/switchcity/switchcity.json b/亿时代-本时生活-2021-04-13/本时生活/pages/switchcity/switchcity.json
new file mode 100644
index 0000000..1ac166c
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/switchcity/switchcity.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "切换城市"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/switchcity/switchcity.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/switchcity/switchcity.wxml
new file mode 100644
index 0000000..5ee18b1
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/switchcity/switchcity.wxml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ {{showLetter}}
+
+
+
+
+ 当前定位:{{defaultcity}}{{defaultregi}}
+
+ 当前定位:
+
+
+
+
+
+
+
+ 黑龙江省
+ {{address.city}}
+ {{address.area ? address.area : '请选择区域'}}
+
+
+
+
+
+ {{item.name}}
+
+
+
+
+
+
+
+
+
+
+
+ {{item.name}}
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/switchcity/switchcity.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/switchcity/switchcity.wxss
new file mode 100644
index 0000000..db5b69e
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/switchcity/switchcity.wxss
@@ -0,0 +1,399 @@
+page {
+ background: #fff;
+}
+
+.hotcity-top {
+ border-bottom: 20rpx #f5f5f5 solid;
+}
+
+.searchLetter {
+ position: fixed;
+ right: 0;
+ width: 50rpx;
+ text-align: center;
+ justify-content: center;
+ display: flex;
+ flex-direction: column;
+ color: #666;
+ z-index: 1;
+}
+
+.searchLetter view {
+ margin-top: 20rpx;
+}
+
+.touchClass {
+ background-color: #fff;
+ color: #fff;
+ padding-top: 46rpx;
+}
+
+.showSlectedLetter {
+ background-color: rgba(0, 0, 0, 0.5);
+ color: #fff;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ margin: -100rpx;
+ width: 200rpx;
+ height: 200rpx;
+ border-radius: 20rpx;
+ font-size: 52rpx;
+ z-index: 1;
+}
+
+.selection {
+ display: flex;
+ width: 100%;
+ flex-direction: column;
+}
+
+.selection.active .item_city {
+ color: #e83339;
+}
+
+.item_letter {
+ display: flex;
+ background-color: #f5f5f5;
+ height: 60rpx;
+ padding-left: 34rpx;
+ align-items: center;
+ font-size: 24rpx;
+ color: #666;
+}
+
+.item_city {
+ position: relative;
+ display: flex;
+ height: 100rpx;
+ padding-left: 34rpx;
+ align-items: center;
+ border-bottom: 1rpx solid #eaeaea;
+ font-size: 26rpx;
+ color: #666;
+}
+
+.checkImg {
+ width: 28rpx;
+ height: 28rpx;
+ position: absolute;
+ right: 20rpx;
+ top: 38rpx;
+ display: none;
+}
+
+.checkImg.active {
+ display: block;
+}
+
+.thisCityName {
+ display: inline-block;
+ border: 1rpx solid #1c74c6;
+ border-radius: 8rpx;
+ padding: 10rpx;
+ font-size: 24rpx;
+ color: #1c74c6;
+ text-align: center;
+ min-width: 149.5rpx;
+ margin: 20rpx 0 20rpx 30rpx;
+}
+
+.thishotText {
+ color: #1c74c6;
+ font-size: 20rpx;
+ margin: 0 !important;
+}
+
+.slectCity {
+ border-color: #1c74c6 !important;
+}
+
+.slectCity view {
+ color: #1c74c6 !important;
+}
+
+.weui-grid {
+ position: relative;
+ float: left;
+ padding: 10rpx 0;
+ width: 149.5rpx;
+ box-sizing: border-box;
+ border: 1rpx solid #ececec;
+ border-radius: 8rpx;
+ margin: 10rpx 12rpx;
+}
+
+.weui-grid__label {
+ display: block;
+ text-align: center;
+ color: #333;
+ font-size: 24rpx;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+
+
+/* 热门城市 */
+
+.searchLetter {
+ position: fixed;
+ right: 0;
+ width: 50rpx;
+ text-align: center;
+ justify-content: center;
+ display: flex;
+ flex-direction: column;
+ color: #666;
+ z-index: 1;
+}
+
+.searchLetter view {
+ margin-top: 20rpx;
+}
+
+.touchClass {
+ background-color: #fff;
+ color: #fff;
+ padding-top: 46rpx;
+}
+
+.showSlectedLetter {
+ background-color: rgba(0, 0, 0, 0.5);
+ color: #fff;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ margin: -100rpx;
+ width: 200rpx;
+ height: 200rpx;
+ border-radius: 20rpx;
+ font-size: 52rpx;
+ z-index: 1;
+}
+
+/* 公共标题 */
+.hotcity {
+ position: fixed;
+ width: 100%;
+ left: 0;
+ top: 0;
+ z-index: 1000;
+ background-color: #fff;
+ font-size: 28rpx;
+ height: 90rpx;
+}
+
+.hotcity-location {
+ color: #999;
+ padding: 10px;
+ box-sizing: border-box;
+ display: flex;
+ line-height: 54rpx;
+}
+
+.hotcity-location text {
+ color: #1c74c6;
+ display: inline-block;
+ padding: 0 10rpx;
+ font-size: 26rpx;
+ height: 54rpx;
+ line-height: 54rpx;
+ border-radius: 6rpx;
+ margin-left: 10rpx;
+ flex: 1;
+}
+
+.hotcity-location image {
+ width: 34rpx;
+ height: 34rpx;
+ margin: 10rpx 10rpx 0 0;
+}
+
+.hotcity-choice {
+ padding: 10px 10px 0 10px;
+ box-sizing: border-box;
+ color: #1c74c6;
+ border-top: 1rpx solid #ededed;
+}
+
+
+/* 区域选择 */
+.region {
+ position: fixed;
+ z-index: 1000;
+ left: 0;
+ top: 178rpx;
+ width: 100%;
+ height: calc(100% - 178rpx);
+ padding-left: 280rpx;
+ box-sizing: border-box;
+ background: #f5f5f5;
+}
+
+.region.active {
+ display: block;
+}
+
+.region .item_city {
+ padding-left: 10rpx;
+}
+
+.city-name {
+ background: #f5f5f5;
+ line-height: 60rpx;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+ font-size: 28rpx;
+}
+
+.region .item_city {
+ padding: 0 0 0 20rpx;
+ box-sizing: border-box;
+ font-weight: normal;
+ font-size: 24rpx;
+ height: 102rpx;
+}
+
+/* 开启定位 */
+.location-btn[size="mini"] {
+ background-color: #ee8e44;
+ color: #fff;
+ font-size: 24rpx;
+ line-height: 54rpx;
+ margin: 0 0 0 20rpx;
+}
+
+/* 搜索框 */
+.weui-search-bar {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 50px;
+ padding: 0 10px;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ box-sizing: border-box;
+ background-color: #f5f5f5;
+ border-top: 1rpx solid #f1f1f1;
+ border-bottom: 1rpx solid #f1f1f1;
+}
+
+.weui-icon-search_in-box {
+ position: absolute;
+ left: 10px;
+ top: 6px;
+}
+
+.weui-search-bar__form {
+ -webkit-box-flex: 1;
+ height: 32px;
+ line-height: 32px;
+ margin-top: 7px;
+ -webkit-flex: auto;
+ flex: auto;
+ border-radius: 5px;
+ background: #FFFFFF;
+ border: 1rpx solid #f1f1f1;
+}
+
+.weui-search-bar__box {
+ position: relative;
+ padding-left: 30px;
+ padding-right: 30px;
+ height: 32px;
+ width: 100%;
+ box-sizing: border-box;
+ z-index: 1;
+}
+
+.weui-search-bar__input {
+ height: 32px;
+ line-height: 32px;
+ font-size: 14px;
+ padding-left: 10rpx;
+}
+
+.weui-search-bar__cancel-btn {
+ margin-left: 10px;
+ line-height: 50px;
+ color: #09BB07;
+ white-space: nowrap;
+ font-size: 30rpx;
+}
+
+
+.scrollLeft {
+ position: fixed;
+ top: 178rpx;
+ height: calc(100% - 178rpx);
+ left: 0;
+ width: 260rpx;
+ z-index: 1001;
+ border-right: 1rpx solid #f1f1f1;
+ background-color: #fff;
+}
+
+
+.newLetter {
+ position: fixed;
+ top: 90rpx;
+ left: 0;
+ width: 100%;
+ height: 90rpx;
+ line-height: 90rpx;
+ background-color: #fff;
+ z-index: 1001;
+ font-size: 28rpx;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+}
+
+.newLetter::before {
+ position: absolute;
+ content: '';
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 2rpx;
+ background: #f1f1f1;
+}
+
+.newLetter::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 2rpx;
+ background: #f1f1f1;
+}
+
+.newLetter text {
+ display: inline-block;
+ position: relative;
+ margin-right: 20rpx;
+ padding: 0 10rpx;
+}
+
+.newLetter text.active {
+ color: #e83339;
+}
+
+.newLetter text.active::before {
+ position: absolute;
+ content: '';
+ left: 0;
+ bottom: -2rpx;
+ width: 100%;
+ height: 4rpx;
+ background: #e83339;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/user/user.js b/亿时代-本时生活-2021-04-13/本时生活/pages/user/user.js
new file mode 100644
index 0000000..cd92fd6
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/user/user.js
@@ -0,0 +1,174 @@
+
+/*
+ * 本时生活
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ isUser : false, //用户登录状态
+ currentId : '', //轮播下标
+ infos : '', //用户信息
+ order : '', //订单信息
+ account : '',
+ // 卡轮播
+ swiper: {
+ imgUrls: [
+ {
+ id : 0,
+ src : '/static/img/user_card_00.png',
+ color : '#676869',
+ type : 'silver'
+ },
+ {
+ id : 2,
+ src : '/static/img/user_card_02.png',
+ color : '#192b4c',
+ type : 'drill'
+ }
+ ],
+ autoplay: false,
+ interval: 5000,
+ duration: 1000,
+ current : 0
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ },
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow () {
+ // 检查用户是否已登录
+ const current = wx.getStorageSync("current")
+ this.setData({
+ currentId: current
+ })
+
+ if(wx.getStorageSync("token") == ""){
+ this.setData({
+ infos : '',
+ order : '',
+ account : '',
+ isUser : false
+ })
+ return
+ }
+
+ this.setData({
+ isUser : getApp().globalData.isUser
+ })
+
+ // 获取用户信息
+ this.userInfo();
+ },
+
+ /**
+ * 用户信息
+ */
+ userInfo() {
+ wx.$api.user.index().then(res=>{
+ this.setData({
+ infos : res.data.info,
+ order : res.data.order,
+ account : res.data.info.account
+ })
+ }).catch(err=>{
+ if(!err.login){
+ this.setData({
+ infos : '',
+ order : '',
+ account : '',
+ isUser : false
+ })
+ }
+ })
+ },
+
+ /**
+ * 处理未登录时的转跳
+ */
+ userNav(e){
+ let pageUrl = e.currentTarget.dataset.url
+ if(this.data.isUser){
+ wx.navigateTo({
+ url: pageUrl
+ })
+ }else{
+ // 去登录
+ wx.navigateTo({
+ url: "/pages/login/login"
+ })
+ }
+ },
+
+ /**
+ * 判断是否新用户
+ */
+ userLogin(){
+ if(app.globalData.token != '') {
+ wx.navigateTo({
+ url: '/pages/chooseTel/chooseTel'
+ })
+ }else {
+ wx.navigateTo({
+ url: '/pages/login/login',
+ })
+ }
+ },
+
+ /**
+ * 切换用户
+ */
+ switchParty() {
+ wx.navigateTo({
+ url: '/pages/chooseTel/chooseTel?type=mobiles'
+ })
+ },
+
+ /**
+ * 左箭头
+ */
+ prevImg () {
+ var swiper = this.data.swiper;
+ var current = swiper.current;
+
+ swiper.current = current > 0 ? current - 1 : swiper.imgUrls.length - 1;
+ this.setData({
+ swiper: swiper,
+ })
+ },
+
+ /**
+ * 右箭头
+ */
+ nextImg () {
+ var swiper = this.data.swiper;
+ var current = swiper.current;
+ swiper.current = current < (swiper.imgUrls.length - 1) ? current + 1 : 0;
+ this.setData({
+ swiper: swiper,
+ })
+ },
+
+ /**
+ * 敬请期待
+ */
+ await() {
+ wx.showToast({
+ title : '努力开发中~',
+ icon : 'none',
+ duration: 1000
+ })
+ }
+
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/user/user.json b/亿时代-本时生活-2021-04-13/本时生活/pages/user/user.json
new file mode 100644
index 0000000..7d66fe4
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/user/user.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "个人中心"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/user/user.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/user/user.wxml
new file mode 100644
index 0000000..050ca0d
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/user/user.wxml
@@ -0,0 +1,171 @@
+
+
+
+
+
+ {{infos.identity.identity_id == 0 ? '普通用户':'惠生活会员'}}
+
+
+
+ {{infos.nickname}}
+
+
+ {{infos.username}}
+
+
+
+
+ 切换账号
+
+
+
+
+
+
+
+
+ 去登录
+
+
+
+
+
+
+
+ 我的会员卡
+
+
+
+
+
+ 可用余额:
+ {{account.silver}}
+ {{account.gold}}
+ {{account.drill}}
+
+
+
+
+
+
+
+
+
+
+ 滑动切换,查看更多权益
+
+
+
+
+
+
+ 我的服务
+
+
+
+
+
+ 我的卡券
+
+
+
+
+
+ 红包领取
+
+
+
+
+
+
+ 收货地址
+
+
+
+
+
+ 实体卡激活
+
+
+
+
+
+
+ 兑换订单
+
+
+
+
+
+
+
+ 所有订单
+
+
+
+
+
+ 待支付
+
+
+
+
+
+ 待发货
+
+
+
+
+
+ 已发货
+
+
+
+
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/user/user.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/user/user.wxss
new file mode 100644
index 0000000..ad9d9ce
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/user/user.wxss
@@ -0,0 +1,228 @@
+/* 个人中心 */
+.userHead {
+ display: flex;
+ padding: 30rpx;
+ box-sizing: border-box;
+ background: white;
+}
+
+.userHead-img {
+ width: 135rpx;
+ height: 135rpx;
+ border-radius: 50%;
+ position: relative;
+}
+
+.userHead-img image {
+ position: absolute;
+ left: 22rpx;
+ top: 0;
+ width: 110rpx;
+ height: 110rpx;
+ border-radius: 50%;
+}
+
+.no-userHead {
+ width: 120rpx;
+ height: 120rpx;
+}
+
+.userHead-img view {
+ display: inline-block;
+ position: absolute;
+ bottom: 0;
+ left: 10rpx;
+ background: #c6c6c6;
+ border-radius: 30rpx;
+ color: #fff;
+ font-size: 24rpx;
+ padding: 4rpx 0;
+ text-align: center;
+ width: 130rpx;
+ display: inline-block;
+ z-index: 99;
+}
+
+.userHead-img view.active {
+ width: 144rpx;
+ left: 8rpx;
+ background: #000;
+ color: #fff;
+}
+
+.userHead-text {
+ margin-left: 30rpx;
+ width: calc(100% - 340rpx);
+}
+
+.userHead-switch {
+ border: 2rpx solid #000;
+ border-radius: 50rpx;
+ font-size: 24rpx;
+ height: 58rpx;
+ line-height: 58rpx;
+ width: 160rpx;
+ margin-top: 30rpx;
+ display: flex;
+}
+
+.userHead-switch image {
+ width: 30rpx;
+ height: 30rpx;
+ margin: 15rpx 6rpx 0 12rpx;
+}
+
+.userHead-name {
+ margin: 10rpx 0 20rpx;
+ font-size: 32rpx;
+ font-weight: 600;
+}
+
+
+.userHead-login {
+ border: 2rpx solid #313131;
+ border-radius: 6rpx;
+ font-size: 28rpx;
+ padding: 8rpx 30rpx;
+ margin-top: 30rpx;
+ display: inline-block;
+}
+
+.userHead-tel {
+ font-size: 28rpx;
+}
+
+/* 轮播图 */
+.userCard {
+ background: white;
+ padding-bottom: 30rpx;
+ margin-bottom: 20rpx;
+}
+
+.userCard-title {
+ font-size: 32rpx;
+ font-weight: 600;
+ padding: 30rpx 30rpx 0;
+ margin: 20rpx 0;
+}
+
+.userCard-cont {
+ padding: 30rpx 80rpx;
+ box-sizing: border-box;
+ position: relative;
+}
+
+.userCard-clip {
+ position: relative;
+ padding-top: 55%;
+ width: 100%;
+}
+
+/* .userCard-clip::after {
+ content: '';
+ left: 10%;
+ top: 0;
+ background: rgba(0, 0, 0, .5);
+ position: absolute;
+ z-index: 1;
+ width: 80%;
+ height: 90%;
+ border-radius: 20px;
+} */
+
+.userCard-swiper {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 9;
+}
+
+.userCard-item {
+ padding: 0 10rpx;
+ box-sizing: border-box;
+}
+
+.userCard-img {
+ width: 100%;
+ height: 100%;
+ background-size: 100% 100%;
+}
+
+.userCard-parice {
+ position: absolute;
+ z-index: 9;
+ left: 30rpx;
+ bottom: 50rpx;
+ color: #f79210;
+ font-weight: 600;
+ font-size: 36rpx;
+}
+
+.userCard-arrow-left, .userCard-arrow-right {
+ width: 50rpx;
+ height: 50rpx;
+ position: absolute;
+ top: calc(50% - 25rpx);
+}
+
+.userCard-arrow-left {
+ right: 10rpx;
+}
+
+.userCard-arrow-right {
+ left: 10rpx;
+}
+
+.userCard-tips {
+ background: #f0f4fa;
+ border-radius: 30rpx;
+ width: 360rpx;
+ text-align: center;
+ margin: 0 auto;
+ color: #b4bbc4;
+ font-size: 26rpx;
+ padding: 14rpx 0;
+}
+
+.userCard-tips image {
+ width: 20rpx;
+ height: 20rpx;
+}
+
+.userOrder {
+ overflow: hidden;
+ margin-top: 40rpx;
+}
+
+.userOrder-label {
+ float: left;
+ width: 25%;
+ text-align: center;
+ font-size: 28rpx;
+}
+
+.userOrder-label-new .userOrder-label {
+ width: 25%;
+}
+
+.userOrder-icon {
+ width: 94rpx;
+ height: 94rpx;
+ background: #000;
+ border-radius: 50%;
+ padding: 18rpx;
+ box-sizing: border-box;
+ margin: 0 auto 10rpx;
+}
+
+.userOrder-icon.active {
+ background: #000;
+}
+
+.userOrder-icon image {
+ width: 100%;
+ height: 100%;
+}
+
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/webView/webView.js b/亿时代-本时生活-2021-04-13/本时生活/pages/webView/webView.js
new file mode 100644
index 0000000..721259a
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/webView/webView.js
@@ -0,0 +1,68 @@
+// pages/webView/webView.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ url:''
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ url : decodeURIComponent(options.url)
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/webView/webView.json b/亿时代-本时生活-2021-04-13/本时生活/pages/webView/webView.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/webView/webView.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/webView/webView.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/webView/webView.wxml
new file mode 100644
index 0000000..77a6354
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/webView/webView.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/webView/webView.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/webView/webView.wxss
new file mode 100644
index 0000000..baae063
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/webView/webView.wxss
@@ -0,0 +1 @@
+/* pages/webView/webView.wxss */
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/welfare/welfare.js b/亿时代-本时生活-2021-04-13/本时生活/pages/welfare/welfare.js
new file mode 100644
index 0000000..d69a27e
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/welfare/welfare.js
@@ -0,0 +1,127 @@
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ noticeShow : false, //须知显示状态
+ pointMoreShow : false, //重要提示显示状态
+ groupId : '', //权益id
+ contData : '', //全局内容
+ rightData : '', //权益详情
+ content : '', //内容介绍
+ notification : '', //重要提示
+ remark : '', //使用须知
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ groupId : options.id
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+ // 获取详情
+ this.rightsInfo();
+ },
+
+ /**
+ * 详情
+ */
+ rightsInfo() {
+ wx.$api.index.welfares(this.data.groupId).then(res=>{
+ this.setData({
+ contData : res.data,
+ rightData : res.data.right,
+ remark : res.data.remark.replace(/\
{
+ if(!err.login){
+ wx.showModal({
+ title : '用户登录已过期',
+ content : '请重新登录',
+ showCancel : false,
+ success : res => {
+ if (res.confirm) {
+ wx.redirectTo({
+ url: '/pages/login/login'
+ })
+ }
+ }
+ })
+ }
+ })
+ },
+
+ /**
+ * 须知展开收起状态
+ */
+ noticeTap() {
+ this.setData({
+ noticeShow : !this.data.noticeShow
+ })
+ },
+
+ /**
+ * 重要提示展开收起状态
+ */
+ pointMoreTap() {
+ this.setData({
+ pointMoreShow : !this.data.pointMoreShow
+ })
+ },
+
+ /**
+ * 普通商品支付提交
+ */
+ ordinary() {
+ this.submitOrder();
+ this.setData({
+ disabled : true
+ })
+ },
+
+ /**
+ * 支付提交
+ */
+ submitOrder() {
+ let welfareId = this.data.contData.welfare_id
+ wx.$api.index.fridayInfo(welfareId).then(res=>{
+ wx.$api.index.fridayPay(res.data.trade_no).then(res=>{
+ let payInfo = JSON.parse(res.data)
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ wx.showToast({
+ title: '支付成功',
+ icon : 'success'
+ })
+ setTimeout(()=>{
+ wx.reLaunch({
+ url: '/pages/coupon/coupon?type=couponPublic'
+ })
+ },3000)
+ }
+ },
+ fail : res=>{
+ wx.reLaunch({
+ url: '/pages/order/order?stateType=unpay'
+ })
+ }
+ })
+ })
+ })
+ }
+})
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/welfare/welfare.json b/亿时代-本时生活-2021-04-13/本时生活/pages/welfare/welfare.json
new file mode 100644
index 0000000..c805305
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/welfare/welfare.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents": {},
+ "navigationBarTitleText": "支付详情",
+ "navigationBarBackgroundColor": "#ededed"
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/welfare/welfare.wxml b/亿时代-本时生活-2021-04-13/本时生活/pages/welfare/welfare.wxml
new file mode 100644
index 0000000..910f9bb
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/welfare/welfare.wxml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+ 重要提示
+
+
+
+
+
+ {{pointMoreShow == true ? '收起' : '展开'}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{rightData.title}}
+ {{rightData.subtitle}}
+
+
+
+
+
+
+ {{contData.attribute.form_price}}
+ ¥{{contData.total}}
+
+
+ {{contData.attribute.form_qty}}
+ 1张
+
+
+ {{contData.attribute.form_type}}
+ ¥{{contData.score}}
+
+
+
+
+
+
+ {{contData.attribute.form_pay}}
+ ¥{{contData.price}}
+
+
+
+
+
+
+ 支付方式
+ 微信支付
+
+
+
+
+
+
+
+
+ 购买前请仔细阅读内容介绍
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/pages/welfare/welfare.wxss b/亿时代-本时生活-2021-04-13/本时生活/pages/welfare/welfare.wxss
new file mode 100644
index 0000000..a9556cd
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/pages/welfare/welfare.wxss
@@ -0,0 +1,567 @@
+/* 卡券权益 */
+.welfare {
+ text-align: center;
+ width: 100%;
+ background-color: #fff;
+ padding: 30rpx;
+ box-sizing: border-box;
+}
+
+.welfareCont-top{
+ flex-wrap: wrap;
+ flex-direction: column;
+ margin: 10rpx 0;
+}
+
+.welfareCont-list-img {
+ border: 2rpx solid #eccc69;
+ border-radius: 50%;
+ width: 100rpx;
+ height: 100rpx;
+ display: inline-block;
+ margin: 0 10rpx;
+}
+
+.welfareCont-text {
+ position: relative;
+ padding: 20rpx 50rpx;
+ box-sizing: border-box;
+ width: 100%;
+ display: grid;
+ border-top: 4rpx dashed #ebcc68;
+}
+
+.welfareCont-tips {
+ background-color: #000000;
+ color: #ffd88d;
+ border-radius: 10rpx;
+ margin-top: 20rpx;
+ height: 54rpx;
+ line-height: 54rpx;
+ font-size: 27rpx;
+ display: inline-block;
+ font-weight: 600;
+ padding: 0 20rpx;
+}
+
+.welfareCont {
+ background: #fcf9e8;
+ border: 2rpx solid #eac85c;
+ border-radius: 20rpx;
+ display: inline-block;
+ text-align: center;
+ box-sizing: border-box;
+}
+
+
+.rightsNumber {
+ display: flex;
+ width: 100%;
+ margin: 30px 0 20px;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+}
+
+.rightsNumber text {
+ display: inline-block;
+ flex: 1;
+}
+
+.rightsAdd {
+ display: flex;
+}
+
+.rightsAdd-btn {
+ background: #eaeaea;
+ color: #535353;
+ border-radius: 50%;
+ text-align: center;
+ width: 50rpx;
+ height: 50rpx;
+ line-height: 45rpx;
+ font-size: 40rpx;
+ font-weight: 600;
+}
+
+.rightsAdd-input {
+ width: 100rpx;
+ text-align: center;
+ font-size: 28rpx;
+ line-height: 50rpx;
+}
+
+.rightsTips {
+ padding: 0 30rpx;
+ color: #ff5b5d;
+ font-size: 28rpx;
+ font-weight: 600;
+}
+
+.rightsList,
+.notice,
+.detailsStore {
+ background: white;
+ margin: 30rpx;
+ border-radius: 10rpx;
+ padding: 10rpx 0;
+ box-sizing: border-box;
+}
+
+.rightsLabel,
+.rightsLabel-pay {
+ display: flex;
+ padding: 20rpx;
+ color: #6f7880;
+ font-size: 30rpx;
+}
+
+.rightsLabel .rightsLabel-left {
+ flex: 1;
+ color: #747d86;
+}
+
+.rightsLabel-black {
+ padding-top: 30rpx;
+}
+
+.rightsLabel-range {
+ display: flex;
+ color: #000;
+ font-weight: 600;
+}
+
+.rightsLabel-row {
+ width: 38rpx;
+ height: 38rpx;
+ margin: 2rpx 0 0 6rpx;
+}
+
+.rightsLabel-black .rightsLabel-right,
+.rightsLabel-red {
+ color: #ff5b5d;
+ font-size: 32rpx;
+}
+
+.rightsLabel-black .rightsLabel-left {
+ color: #000;
+}
+
+.rightsLabel-score {
+ font-weight: 600;
+ color: #000;
+ font-size: 38rpx;
+}
+
+.rightsLabel-pay {
+ color: #000;
+}
+
+.rightsLabel-pay .rightsLabel-left {
+ flex: 1;
+}
+
+.notice {
+ padding: 20rpx;
+}
+
+.noticeTitle {
+ display: flex;
+ margin-bottom: 20rpx;
+}
+
+.noticeTitle-flex {
+ flex: 1;
+ display: flex;
+ font-size: 30rpx;
+ line-height: 46rpx;
+}
+
+.noticeTitle-img {
+ width: 46rpx;
+ height: 46rpx;
+ margin-right: 20rpx;
+}
+
+.noticeText {
+ font-size: 26rpx;
+ height: 0;
+ overflow: hidden;
+}
+
+.noticeText.active {
+ height: auto;
+}
+
+.noticeText-top {
+ margin: 30rpx 0 10rpx;
+ font-weight: 600;
+}
+
+.noticeText-cont {
+ line-height: 60rpx;
+ color: #666;
+}
+
+.noticeTitle-row {
+ width: 46rpx;
+ height: 46rpx;
+}
+
+.noticeTitle-row.active {
+ transform: rotate(90deg);
+}
+
+/* 门店 */
+.detailsStore {
+ padding: 20rpx;
+}
+
+.detailsStore-top {
+ display: flex;
+ line-height: 30rpx;
+ margin-bottom: 20rpx;
+}
+
+.detailsStore-see {
+ color: #dfae2e;
+ border: 2rpx solid #dfae2e;
+ border-radius: 10rpx;
+ font-size: 28rpx;
+ margin-top: 30rpx;
+ height: 80rpx;
+ line-height: 80rpx;
+ text-align: center;
+}
+
+.detailsStore-see text {
+ display: inline-block;
+}
+
+.detailsStore-see image {
+ width: 50rpx;
+ height: 50rpx;
+ margin-left: 10rpx;
+}
+
+/* 购买按钮 */
+.rightsBtn {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100rpx;
+ z-index: 9;
+ background: #fff;
+}
+
+.rightsBtn button,
+.rightsBtn text {
+ display: block;
+ margin: 12rpx 30rpx;
+ width: calc(100% - 60rpx) !important;
+ height: 74rpx !important;
+ line-height: 74rpx !important;
+ padding: 0;
+ background: #eacf88;
+ text-align: center;
+ border-radius: 60rpx;
+ font-size: 30rpx;
+}
+
+
+.rightsBtn.active text {
+ background: #dedede;
+ color: #888;
+}
+
+/* 选择收货地址 */
+.addressBack {
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ background: rgba(0, 0, 0, .4);
+ z-index: 10;
+ width: 100%;
+ height: 100%;
+ display: none;
+}
+
+.addressBack.active {
+ display: block;
+}
+
+.addressCont {
+ position: fixed;
+ left: 0;
+ bottom: -1000%;
+ transition: .2s;
+ background: #fff;
+ z-index: 11;
+ width: 100%;
+}
+
+.addressCont.active {
+ bottom: 0;
+}
+
+.addressCont-title {
+ height: 90rpx;
+ line-height: 90rpx;
+ display: flex;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ font-size: 28rpx;
+ font-weight: 600;
+}
+
+.addressCont-left {
+ flex: 1;
+}
+
+.addressCont-right {
+ color: #309ded;
+}
+
+.header-classify {
+ white-space: nowrap;
+ box-sizing: border-box;
+ height: 600rpx;
+}
+
+.addressCont-list {
+ padding: 30rpx 20rpx;
+ box-sizing: border-box;
+ font-size: 30rpx;
+ overflow: hidden;
+ position: relative;
+}
+
+.addressCont-top {
+ display: flex;
+ margin-bottom: 10rpx;
+}
+
+.addressCont-name {
+ font-weight: 600;
+}
+
+.addressCont-text {
+ color: #666;
+ width: calc(100% - 160rpx);
+}
+
+.addressCont-list:last-child {
+ border: none;
+}
+
+.rightsLabel-address {
+ display: flex;
+}
+
+.rightsLabel-address text {
+ display: inline-block;
+ width: calc(100% - 46rpx);
+}
+
+.rightsLabel-address .rightsLabel-right {
+ display: flex;
+ font-size: 28rpx;
+}
+
+.address-tool {
+ display: flex;
+ float: right;
+}
+
+.address-tool-btn {
+ font-size: 24rpx;
+ margin-top: 20rpx;
+ border: 2rpx solid #666;
+ color: #666;
+ border-radius: 6rpx;
+ text-align: center;
+ height: 50rpx;
+ line-height: 50rpx;
+ padding: 0 20rpx;
+ margin-right: 20rpx;
+ display: flex;
+}
+
+.address-tool-btn-del {
+ color: #dfae2e;
+ border-color: #dfae2e;
+}
+
+.address-tool-icon {
+ width: 120rpx;
+ height: 54rpx;
+ line-height: 54rpx;
+ border-radius: 4rpx;
+ text-align: center;
+ color: #fff;
+ position: absolute;
+ top: 45rpx;
+ right: 10rpx;
+ background: #dfae2e;
+ transform: scale(.9, .9);
+ font-size: 24rpx;
+}
+
+.rightsPoint {
+ position: fixed;
+ left: 0;
+ bottom: 100rpx;
+ background: #fff;
+ z-index: 9;
+ width: 100%;
+ padding: 20rpx 20rpx 10rpx;
+ box-sizing: border-box;
+}
+
+.rightsPoint-cont {
+ width: 100%;
+ background: #fcf9e8;
+ border: 2rpx solid #ecd390;
+ border-radius: 10rpx;
+ position: relative;
+ max-height: 50vh;
+ overflow-y: scroll;
+}
+
+.rightsPoint-top {
+ font-size: 28rpx;
+ display: flex;
+ padding: 20rpx;
+ box-sizing: border-box;
+ font-weight: 600;
+}
+
+.rightsPoint-top image {
+ width: 36rpx;
+ height: 36rpx;
+ margin-right: 10rpx;
+}
+
+.rightsPoint-text {
+ padding: 0 20rpx;
+ box-sizing: border-box;
+ font-size: 24rpx;
+ line-height: 44rpx;
+ height: 90rpx;
+ transition: height 25s;
+ overflow: hidden;
+}
+
+.rightsPoint-text.active {
+ height: auto;
+ transition: 2s;
+}
+
+.rightsPoint-text view {
+ position: relative;
+ padding-left: 40rpx;
+}
+
+.rightsPoint-text view::after {
+ position: absolute;
+ content: '';
+ left: 10rpx;
+ top: 20rpx;
+ background: #000;
+ width: 10rpx;
+ height: 10rpx;
+ border-radius: 50%;
+}
+
+.rightsPoint-bolck {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: calc(100% - 40rpx);
+}
+
+.pointMore {
+ text-align: center;
+ width: 100%;
+ background: #fff8e5;
+ height: 80rpx;
+ line-height: 82rpx;
+ position: relative;
+ margin-top: 10rpx;
+}
+
+.pointMore::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 2rpx;
+ background: #ecd390;
+}
+
+.pointMore text {
+ font-size: 28rpx;
+ color: #c38e00;
+ animation: dong 1.8s infinite;
+ display: inline-block;
+}
+
+.pointMore image {
+ width: 30rpx;
+ height: 30rpx;
+ margin-left: 4rpx;
+ vertical-align: -4rpx;
+ animation: dong 1.8s infinite;
+}
+
+@keyframes dong {
+ 0% {
+ transform: translate(0px, 0px);
+ }
+
+ 50% {
+ transform: translate(0px, -6rpx);
+ }
+
+ 100% {
+ transform: translate(0px, 0px);
+ }
+}
+
+.rightsCont-btn {
+ display:inline-block;
+ text-align: center;
+ background-image: linear-gradient(to right, #eaaaa8, #f4e5c2, #eaaaa8);
+ box-shadow: 0 0 10rpx rgba(233, 166, 166, .9);
+ border-radius: 30px;
+ padding: 5rpx;
+ line-height: 40rpx;
+}
+
+.rightsCont-btn text {
+ border-radius: 30px;
+ width: 100%;
+ height: 100%;
+ display: block;
+ padding: 10rpx 20rpx;
+ box-sizing: border-box;
+ background: linear-gradient(#fefcfa, #f9f0db, #f7ebcf);
+ font-size: 30rpx;
+}
+
+.webBack {
+ position: fixed;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ z-index: 9999;
+ background-color: #fff;
+ text-align: center;
+ display: none;
+}
+
+.webBack.active {
+ display: block;
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/project.config.json b/亿时代-本时生活-2021-04-13/本时生活/project.config.json
new file mode 100644
index 0000000..042a07e
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/project.config.json
@@ -0,0 +1,135 @@
+{
+ "description": "项目配置文件",
+ "packOptions": {
+ "ignore": []
+ },
+ "setting": {
+ "urlCheck": false,
+ "es6": true,
+ "enhance": false,
+ "postcss": true,
+ "preloadBackgroundData": false,
+ "minified": true,
+ "newFeature": false,
+ "coverView": true,
+ "nodeModules": false,
+ "autoAudits": false,
+ "showShadowRootInWxmlPanel": true,
+ "scopeDataCheck": false,
+ "uglifyFileName": false,
+ "checkInvalidKey": true,
+ "checkSiteMap": true,
+ "uploadWithSourceMap": true,
+ "compileHotReLoad": false,
+ "useMultiFrameRuntime": true,
+ "useApiHook": true,
+ "useApiHostProcess": false,
+ "babelSetting": {
+ "ignore": [],
+ "disablePlugins": [],
+ "outputPath": ""
+ },
+ "enableEngineNative": false,
+ "bundle": false,
+ "useIsolateContext": true,
+ "useCompilerModule": true,
+ "userConfirmedUseCompilerModuleSwitch": false,
+ "userConfirmedBundleSwitch": false,
+ "packNpmManually": false,
+ "packNpmRelationList": [],
+ "minifyWXSS": true
+ },
+ "compileType": "miniprogram",
+ "libVersion": "2.12.1",
+ "appid": "wxb2e3e8091d9feac3",
+ "projectname": "%E4%BA%BF%E6%97%B6%E4%BB%A3",
+ "debugOptions": {
+ "hidedInDevtools": []
+ },
+ "scripts": {},
+ "isGameTourist": false,
+ "simulatorType": "wechat",
+ "simulatorPluginLibVersion": {},
+ "condition": {
+ "plugin": {
+ "list": []
+ },
+ "game": {
+ "list": []
+ },
+ "gamePlugin": {
+ "list": []
+ },
+ "miniprogram": {
+ "list": [
+ {
+ "id": 0,
+ "name": "pages/user/user",
+ "pathName": "pages/user/user",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 1,
+ "name": "pages/activityInfo/activityInfo",
+ "pathName": "pages/activityInfo/activityInfo",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "pages/activityOrder/activityOrder",
+ "pathName": "pages/activityOrder/activityOrder",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 3,
+ "name": "pages/activate/activate",
+ "pathName": "pages/activate/activate",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "pages/index/index",
+ "pathName": "pages/index/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 5,
+ "name": "pages/login/login",
+ "pathName": "pages/login/login",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "pages/coupon/coupon",
+ "pathName": "pages/coupon/coupon",
+ "query": "",
+ "scene": null
+ },
+ {
+ "name": "pages/frozen/frozen",
+ "pathName": "pages/frozen/frozen",
+ "query": "",
+ "scene": null
+ },
+ {
+ "name": "pages/account/account",
+ "pathName": "pages/account/account",
+ "query": "",
+ "scene": null
+ },
+ {
+ "name": "pages/packet/packet",
+ "pathName": "pages/packet/packet",
+ "query": "",
+ "scene": null
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/project.private.config.json b/亿时代-本时生活-2021-04-13/本时生活/project.private.config.json
new file mode 100644
index 0000000..2acbc37
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/project.private.config.json
@@ -0,0 +1,103 @@
+{
+ "setting": {},
+ "condition": {
+ "plugin": {
+ "list": []
+ },
+ "game": {
+ "list": []
+ },
+ "gamePlugin": {
+ "list": []
+ },
+ "miniprogram": {
+ "list": [
+ {
+ "id": 0,
+ "name": "pages/user/user",
+ "pathName": "pages/user/user",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 1,
+ "name": "pages/activityInfo/activityInfo",
+ "pathName": "pages/activityInfo/activityInfo",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "pages/activityOrder/activityOrder",
+ "pathName": "pages/activityOrder/activityOrder",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 3,
+ "name": "pages/activate/activate",
+ "pathName": "pages/activate/activate",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "pages/index/index",
+ "pathName": "pages/index/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 5,
+ "name": "pages/login/login",
+ "pathName": "pages/login/login",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "pages/coupon/coupon",
+ "pathName": "pages/coupon/coupon",
+ "query": "",
+ "scene": null
+ },
+ {
+ "name": "pages/frozen/frozen",
+ "pathName": "pages/frozen/frozen",
+ "query": "",
+ "scene": null
+ },
+ {
+ "name": "pages/account/account",
+ "pathName": "pages/account/account",
+ "query": "",
+ "scene": null
+ },
+ {
+ "name": "pages/packet/packet",
+ "pathName": "pages/packet/packet",
+ "query": "",
+ "scene": null
+ },
+ {
+ "name": "pages/welfare/welfare",
+ "pathName": "pages/welfare/welfare",
+ "query": "",
+ "scene": null
+ },
+ {
+ "name": "pages/classify/classify",
+ "pathName": "pages/classify/classify",
+ "query": "",
+ "scene": null
+ },
+ {
+ "name": "pages/order/order",
+ "pathName": "pages/order/order",
+ "query": "",
+ "scene": null
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/sitemap.json b/亿时代-本时生活-2021-04-13/本时生活/sitemap.json
new file mode 100644
index 0000000..ca02add
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/sitemap.json
@@ -0,0 +1,7 @@
+{
+ "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+ "rules": [{
+ "action": "allow",
+ "page": "*"
+ }]
+}
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/Check.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/Check.png
new file mode 100644
index 0000000..414ff3b
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/Check.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/Point_icon.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/Point_icon.png
new file mode 100644
index 0000000..7eee5a3
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/Point_icon.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/activity_icon.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/activity_icon.png
new file mode 100644
index 0000000..6d54870
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/activity_icon.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/add.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/add.png
new file mode 100644
index 0000000..ad2ed18
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/add.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/address_icon.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/address_icon.png
new file mode 100644
index 0000000..70ca205
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/address_icon.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_down.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_down.png
new file mode 100644
index 0000000..8731b7a
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_down.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_left.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_left.png
new file mode 100644
index 0000000..94a76ab
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_left.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_right.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_right.png
new file mode 100644
index 0000000..d965a47
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_right.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_right_black.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_right_black.png
new file mode 100644
index 0000000..ca0d51d
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_right_black.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_tips.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_tips.png
new file mode 100644
index 0000000..d42d882
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/arrow_tips.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/choice.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/choice.png
new file mode 100644
index 0000000..18d62fa
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/choice.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/indexSite.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/indexSite.png
new file mode 100644
index 0000000..11d5a8b
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/indexSite.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/integra_icon00.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/integra_icon00.png
new file mode 100644
index 0000000..969f039
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/integra_icon00.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/integra_icon01.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/integra_icon01.png
new file mode 100644
index 0000000..18f25e8
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/integra_icon01.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/location.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/location.png
new file mode 100644
index 0000000..186b0e4
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/location.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/news_icon.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/news_icon.png
new file mode 100644
index 0000000..2e4c687
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/news_icon.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/notice_icon.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/notice_icon.png
new file mode 100644
index 0000000..0975820
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/notice_icon.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/order_icon_00.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/order_icon_00.png
new file mode 100644
index 0000000..b1e0d85
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/order_icon_00.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/order_icon_01.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/order_icon_01.png
new file mode 100644
index 0000000..70b7f9b
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/order_icon_01.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/order_icon_02.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/order_icon_02.png
new file mode 100644
index 0000000..b70aedd
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/order_icon_02.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/refresh_loding.gif b/亿时代-本时生活-2021-04-13/本时生活/static/icon/refresh_loding.gif
new file mode 100644
index 0000000..5bb90fd
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/refresh_loding.gif differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/rightsArrow.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/rightsArrow.png
new file mode 100644
index 0000000..80006e1
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/rightsArrow.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/secrch_icon.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/secrch_icon.png
new file mode 100644
index 0000000..edd6bd6
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/secrch_icon.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/select.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/select.png
new file mode 100644
index 0000000..96b56f1
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/select.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/select_avtive.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/select_avtive.png
new file mode 100644
index 0000000..dc76782
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/select_avtive.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/site_icon.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/site_icon.png
new file mode 100644
index 0000000..94eb9a4
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/site_icon.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/storeArrow.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/storeArrow.png
new file mode 100644
index 0000000..4afb92b
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/storeArrow.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/switch.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/switch.png
new file mode 100644
index 0000000..1d8d0ea
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/switch.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/tel.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/tel.png
new file mode 100644
index 0000000..744f34e
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/tel.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/icon/time_icon.png b/亿时代-本时生活-2021-04-13/本时生活/static/icon/time_icon.png
new file mode 100644
index 0000000..8e1f37f
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/icon/time_icon.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/activate-back.jpg b/亿时代-本时生活-2021-04-13/本时生活/static/img/activate-back.jpg
new file mode 100644
index 0000000..90deb1d
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/activate-back.jpg differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/activity_coupon.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/activity_coupon.png
new file mode 100644
index 0000000..415fa79
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/activity_coupon.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/address_back.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/address_back.png
new file mode 100644
index 0000000..9f10b85
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/address_back.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/arrow.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/arrow.png
new file mode 100644
index 0000000..b34fba0
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/arrow.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/card_img.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/card_img.png
new file mode 100644
index 0000000..d47c28c
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/card_img.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/card_top.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/card_top.png
new file mode 100644
index 0000000..fa0fd23
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/card_top.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/class_back_01.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/class_back_01.png
new file mode 100644
index 0000000..c2b492b
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/class_back_01.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_icon_00.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_icon_00.png
new file mode 100644
index 0000000..0b9e8a6
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_icon_00.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_icon_01.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_icon_01.png
new file mode 100644
index 0000000..ac023d8
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_icon_01.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_img.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_img.png
new file mode 100644
index 0000000..0b00e8f
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_img.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_tips.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_tips.png
new file mode 100644
index 0000000..76794c2
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_tips.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_tips_00.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_tips_00.png
new file mode 100644
index 0000000..96fc51e
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_tips_00.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_tips_01.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_tips_01.png
new file mode 100644
index 0000000..f526638
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/coupon_tips_01.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/default_cover.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/default_cover.png
new file mode 100644
index 0000000..30800b7
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/default_cover.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/frozen_time.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/frozen_time.png
new file mode 100644
index 0000000..a96fedc
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/frozen_time.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/gift_box.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/gift_box.png
new file mode 100644
index 0000000..eed5968
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/gift_box.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/grant_icon.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/grant_icon.png
new file mode 100644
index 0000000..72c945d
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/grant_icon.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/legal_tips.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/legal_tips.png
new file mode 100644
index 0000000..7bb436f
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/legal_tips.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/location_img.jpg b/亿时代-本时生活-2021-04-13/本时生活/static/img/location_img.jpg
new file mode 100644
index 0000000..6d34eab
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/location_img.jpg differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/login_img.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/login_img.png
new file mode 100644
index 0000000..365bddc
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/login_img.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/null_icon.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/null_icon.png
new file mode 100644
index 0000000..de104c3
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/null_icon.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/packet.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/packet.png
new file mode 100644
index 0000000..6d00000
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/packet.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/packetText_icon.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/packetText_icon.png
new file mode 100644
index 0000000..893418f
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/packetText_icon.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/packetText_top.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/packetText_top.png
new file mode 100644
index 0000000..8b1c42e
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/packetText_top.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/packet_arr.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/packet_arr.png
new file mode 100644
index 0000000..4134220
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/packet_arr.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/packet_title.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/packet_title.png
new file mode 100644
index 0000000..5d3acef
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/packet_title.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/pointMore-up.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/pointMore-up.png
new file mode 100644
index 0000000..646061d
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/pointMore-up.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/pointMore.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/pointMore.png
new file mode 100644
index 0000000..4c9b807
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/pointMore.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/receive.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/receive.png
new file mode 100644
index 0000000..9a15bdb
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/receive.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/refresh_loding.gif b/亿时代-本时生活-2021-04-13/本时生活/static/img/refresh_loding.gif
new file mode 100644
index 0000000..5bb90fd
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/refresh_loding.gif differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/rights_back_02.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/rights_back_02.png
new file mode 100644
index 0000000..c6d7960
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/rights_back_02.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/rights_top.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/rights_top.png
new file mode 100644
index 0000000..6f0467c
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/rights_top.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/staff_null.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/staff_null.png
new file mode 100644
index 0000000..350081b
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/staff_null.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/tel_img.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/tel_img.png
new file mode 100644
index 0000000..f97d934
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/tel_img.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/userCoupon.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/userCoupon.png
new file mode 100644
index 0000000..ce5220b
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/userCoupon.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_00.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_00.png
new file mode 100644
index 0000000..c24b234
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_00.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_01.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_01.png
new file mode 100644
index 0000000..e20bf9d
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_01.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_02.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_02.png
new file mode 100644
index 0000000..4d0d78e
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_02.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_03.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_03.png
new file mode 100644
index 0000000..41ea591
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_03.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_04.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_04.png
new file mode 100644
index 0000000..c1f6a53
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_04.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_05.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_05.png
new file mode 100644
index 0000000..b7dfcd3
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_05.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_06.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_06.png
new file mode 100644
index 0000000..349c143
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/userOrder_06.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/userSite.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/userSite.png
new file mode 100644
index 0000000..fa79790
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/userSite.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/user_card_00.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/user_card_00.png
new file mode 100644
index 0000000..f8ba00a
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/user_card_00.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/user_card_01.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/user_card_01.png
new file mode 100644
index 0000000..4921fcb
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/user_card_01.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/user_card_02.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/user_card_02.png
new file mode 100644
index 0000000..d6682c1
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/user_card_02.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/welfare_back.png b/亿时代-本时生活-2021-04-13/本时生活/static/img/welfare_back.png
new file mode 100644
index 0000000..8921b38
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/welfare_back.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/wqb.jpg b/亿时代-本时生活-2021-04-13/本时生活/static/img/wqb.jpg
new file mode 100644
index 0000000..6c92cef
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/wqb.jpg differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/img/wx.jpg b/亿时代-本时生活-2021-04-13/本时生活/static/img/wx.jpg
new file mode 100644
index 0000000..fcb00a1
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/img/wx.jpg differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/tabBarIcon/00.png b/亿时代-本时生活-2021-04-13/本时生活/static/tabBarIcon/00.png
new file mode 100644
index 0000000..ab1675c
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/tabBarIcon/00.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/tabBarIcon/00_active.png b/亿时代-本时生活-2021-04-13/本时生活/static/tabBarIcon/00_active.png
new file mode 100644
index 0000000..0519763
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/tabBarIcon/00_active.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/tabBarIcon/01.png b/亿时代-本时生活-2021-04-13/本时生活/static/tabBarIcon/01.png
new file mode 100644
index 0000000..2f8d049
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/tabBarIcon/01.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/static/tabBarIcon/01_active.png b/亿时代-本时生活-2021-04-13/本时生活/static/tabBarIcon/01_active.png
new file mode 100644
index 0000000..d4ec6b3
Binary files /dev/null and b/亿时代-本时生活-2021-04-13/本时生活/static/tabBarIcon/01_active.png differ
diff --git a/亿时代-本时生活-2021-04-13/本时生活/utils/qqmap-wx-jssdk.min.js b/亿时代-本时生活-2021-04-13/本时生活/utils/qqmap-wx-jssdk.min.js
new file mode 100644
index 0000000..8fa1477
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/utils/qqmap-wx-jssdk.min.js
@@ -0,0 +1 @@
+var ERROR_CONF = { KEY_ERR: 311, KEY_ERR_MSG: 'key格式错误', PARAM_ERR: 310, PARAM_ERR_MSG: '请求参数信息有误', SYSTEM_ERR: 600, SYSTEM_ERR_MSG: '系统错误', WX_ERR_CODE: 1000, WX_OK_CODE: 200 }; var BASE_URL = 'https://apis.map.qq.com/ws/'; var URL_SEARCH = BASE_URL + 'place/v1/search'; var URL_SUGGESTION = BASE_URL + 'place/v1/suggestion'; var URL_GET_GEOCODER = BASE_URL + 'geocoder/v1/'; var URL_CITY_LIST = BASE_URL + 'district/v1/list'; var URL_AREA_LIST = BASE_URL + 'district/v1/getchildren'; var URL_DISTANCE = BASE_URL + 'distance/v1/'; var URL_DIRECTION = BASE_URL + 'direction/v1/'; var MODE = { driving: 'driving', transit: 'transit' }; var EARTH_RADIUS = 6378136.49; var Utils = { safeAdd(x, y) { var lsw = (x & 0xffff) + (y & 0xffff); var msw = (x >> 16) + (y >> 16) + (lsw >> 16); return (msw << 16) | (lsw & 0xffff) }, bitRotateLeft(num, cnt) { return (num << cnt) | (num >>> (32 - cnt)) }, md5cmn(q, a, b, x, s, t) { return this.safeAdd(this.bitRotateLeft(this.safeAdd(this.safeAdd(a, q), this.safeAdd(x, t)), s), b) }, md5ff(a, b, c, d, x, s, t) { return this.md5cmn((b & c) | (~b & d), a, b, x, s, t) }, md5gg(a, b, c, d, x, s, t) { return this.md5cmn((b & d) | (c & ~d), a, b, x, s, t) }, md5hh(a, b, c, d, x, s, t) { return this.md5cmn(b ^ c ^ d, a, b, x, s, t) }, md5ii(a, b, c, d, x, s, t) { return this.md5cmn(c ^ (b | ~d), a, b, x, s, t) }, binlMD5(x, len) { x[len >> 5] |= 0x80 << (len % 32); x[((len + 64) >>> 9 << 4) + 14] = len; var i; var olda; var oldb; var oldc; var oldd; var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; for (i = 0; i < x.length; i += 16) { olda = a; oldb = b; oldc = c; oldd = d; a = this.md5ff(a, b, c, d, x[i], 7, -680876936); d = this.md5ff(d, a, b, c, x[i + 1], 12, -389564586); c = this.md5ff(c, d, a, b, x[i + 2], 17, 606105819); b = this.md5ff(b, c, d, a, x[i + 3], 22, -1044525330); a = this.md5ff(a, b, c, d, x[i + 4], 7, -176418897); d = this.md5ff(d, a, b, c, x[i + 5], 12, 1200080426); c = this.md5ff(c, d, a, b, x[i + 6], 17, -1473231341); b = this.md5ff(b, c, d, a, x[i + 7], 22, -45705983); a = this.md5ff(a, b, c, d, x[i + 8], 7, 1770035416); d = this.md5ff(d, a, b, c, x[i + 9], 12, -1958414417); c = this.md5ff(c, d, a, b, x[i + 10], 17, -42063); b = this.md5ff(b, c, d, a, x[i + 11], 22, -1990404162); a = this.md5ff(a, b, c, d, x[i + 12], 7, 1804603682); d = this.md5ff(d, a, b, c, x[i + 13], 12, -40341101); c = this.md5ff(c, d, a, b, x[i + 14], 17, -1502002290); b = this.md5ff(b, c, d, a, x[i + 15], 22, 1236535329); a = this.md5gg(a, b, c, d, x[i + 1], 5, -165796510); d = this.md5gg(d, a, b, c, x[i + 6], 9, -1069501632); c = this.md5gg(c, d, a, b, x[i + 11], 14, 643717713); b = this.md5gg(b, c, d, a, x[i], 20, -373897302); a = this.md5gg(a, b, c, d, x[i + 5], 5, -701558691); d = this.md5gg(d, a, b, c, x[i + 10], 9, 38016083); c = this.md5gg(c, d, a, b, x[i + 15], 14, -660478335); b = this.md5gg(b, c, d, a, x[i + 4], 20, -405537848); a = this.md5gg(a, b, c, d, x[i + 9], 5, 568446438); d = this.md5gg(d, a, b, c, x[i + 14], 9, -1019803690); c = this.md5gg(c, d, a, b, x[i + 3], 14, -187363961); b = this.md5gg(b, c, d, a, x[i + 8], 20, 1163531501); a = this.md5gg(a, b, c, d, x[i + 13], 5, -1444681467); d = this.md5gg(d, a, b, c, x[i + 2], 9, -51403784); c = this.md5gg(c, d, a, b, x[i + 7], 14, 1735328473); b = this.md5gg(b, c, d, a, x[i + 12], 20, -1926607734); a = this.md5hh(a, b, c, d, x[i + 5], 4, -378558); d = this.md5hh(d, a, b, c, x[i + 8], 11, -2022574463); c = this.md5hh(c, d, a, b, x[i + 11], 16, 1839030562); b = this.md5hh(b, c, d, a, x[i + 14], 23, -35309556); a = this.md5hh(a, b, c, d, x[i + 1], 4, -1530992060); d = this.md5hh(d, a, b, c, x[i + 4], 11, 1272893353); c = this.md5hh(c, d, a, b, x[i + 7], 16, -155497632); b = this.md5hh(b, c, d, a, x[i + 10], 23, -1094730640); a = this.md5hh(a, b, c, d, x[i + 13], 4, 681279174); d = this.md5hh(d, a, b, c, x[i], 11, -358537222); c = this.md5hh(c, d, a, b, x[i + 3], 16, -722521979); b = this.md5hh(b, c, d, a, x[i + 6], 23, 76029189); a = this.md5hh(a, b, c, d, x[i + 9], 4, -640364487); d = this.md5hh(d, a, b, c, x[i + 12], 11, -421815835); c = this.md5hh(c, d, a, b, x[i + 15], 16, 530742520); b = this.md5hh(b, c, d, a, x[i + 2], 23, -995338651); a = this.md5ii(a, b, c, d, x[i], 6, -198630844); d = this.md5ii(d, a, b, c, x[i + 7], 10, 1126891415); c = this.md5ii(c, d, a, b, x[i + 14], 15, -1416354905); b = this.md5ii(b, c, d, a, x[i + 5], 21, -57434055); a = this.md5ii(a, b, c, d, x[i + 12], 6, 1700485571); d = this.md5ii(d, a, b, c, x[i + 3], 10, -1894986606); c = this.md5ii(c, d, a, b, x[i + 10], 15, -1051523); b = this.md5ii(b, c, d, a, x[i + 1], 21, -2054922799); a = this.md5ii(a, b, c, d, x[i + 8], 6, 1873313359); d = this.md5ii(d, a, b, c, x[i + 15], 10, -30611744); c = this.md5ii(c, d, a, b, x[i + 6], 15, -1560198380); b = this.md5ii(b, c, d, a, x[i + 13], 21, 1309151649); a = this.md5ii(a, b, c, d, x[i + 4], 6, -145523070); d = this.md5ii(d, a, b, c, x[i + 11], 10, -1120210379); c = this.md5ii(c, d, a, b, x[i + 2], 15, 718787259); b = this.md5ii(b, c, d, a, x[i + 9], 21, -343485551); a = this.safeAdd(a, olda); b = this.safeAdd(b, oldb); c = this.safeAdd(c, oldc); d = this.safeAdd(d, oldd) } return [a, b, c, d] }, binl2rstr(input) { var i; var output = ''; var length32 = input.length * 32; for (i = 0; i < length32; i += 8) { output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xff) } return output }, rstr2binl(input) { var i; var output = []; output[(input.length >> 2) - 1] = undefined; for (i = 0; i < output.length; i += 1) { output[i] = 0 } var length8 = input.length * 8; for (i = 0; i < length8; i += 8) { output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << (i % 32) } return output }, rstrMD5(s) { return this.binl2rstr(this.binlMD5(this.rstr2binl(s), s.length * 8)) }, rstrHMACMD5(key, data) { var i; var bkey = this.rstr2binl(key); var ipad = []; var opad = []; var hash; ipad[15] = opad[15] = undefined; if (bkey.length > 16) { bkey = this.binlMD5(bkey, key.length * 8) } for (i = 0; i < 16; i += 1) { ipad[i] = bkey[i] ^ 0x36363636; opad[i] = bkey[i] ^ 0x5c5c5c5c } hash = this.binlMD5(ipad.concat(this.rstr2binl(data)), 512 + data.length * 8); return this.binl2rstr(this.binlMD5(opad.concat(hash), 512 + 128)) }, rstr2hex(input) { var hexTab = '0123456789abcdef'; var output = ''; var x; var i; for (i = 0; i < input.length; i += 1) { x = input.charCodeAt(i); output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f) } return output }, str2rstrUTF8(input) { return unescape(encodeURIComponent(input)) }, rawMD5(s) { return this.rstrMD5(this.str2rstrUTF8(s)) }, hexMD5(s) { return this.rstr2hex(this.rawMD5(s)) }, rawHMACMD5(k, d) { return this.rstrHMACMD5(this.str2rstrUTF8(k), str2rstrUTF8(d)) }, hexHMACMD5(k, d) { return this.rstr2hex(this.rawHMACMD5(k, d)) }, md5(string, key, raw) { if (!key) { if (!raw) { return this.hexMD5(string) } return this.rawMD5(string) } if (!raw) { return this.hexHMACMD5(key, string) } return this.rawHMACMD5(key, string) }, getSig(requestParam, sk, feature, mode) { var sig = null; var requestArr = []; Object.keys(requestParam).sort().forEach(function (key) { requestArr.push(key + '=' + requestParam[key]) }); if (feature == 'search') { sig = '/ws/place/v1/search?' + requestArr.join('&') + sk } if (feature == 'suggest') { sig = '/ws/place/v1/suggestion?' + requestArr.join('&') + sk } if (feature == 'reverseGeocoder') { sig = '/ws/geocoder/v1/?' + requestArr.join('&') + sk } if (feature == 'geocoder') { sig = '/ws/geocoder/v1/?' + requestArr.join('&') + sk } if (feature == 'getCityList') { sig = '/ws/district/v1/list?' + requestArr.join('&') + sk } if (feature == 'getDistrictByCityId') { sig = '/ws/district/v1/getchildren?' + requestArr.join('&') + sk } if (feature == 'calculateDistance') { sig = '/ws/distance/v1/?' + requestArr.join('&') + sk } if (feature == 'direction') { sig = '/ws/direction/v1/' + mode + '?' + requestArr.join('&') + sk } sig = this.md5(sig); return sig }, location2query(data) { if (typeof data == 'string') { return data } var query = ''; for (var i = 0; i < data.length; i++) { var d = data[i]; if (!!query) { query += ';' } if (d.location) { query = query + d.location.lat + ',' + d.location.lng } if (d.latitude && d.longitude) { query = query + d.latitude + ',' + d.longitude } } return query }, rad(d) { return d * Math.PI / 180.0 }, getEndLocation(location) { var to = location.split(';'); var endLocation = []; for (var i = 0; i < to.length; i++) { endLocation.push({ lat: parseFloat(to[i].split(',')[0]), lng: parseFloat(to[i].split(',')[1]) }) } return endLocation }, getDistance(latFrom, lngFrom, latTo, lngTo) { var radLatFrom = this.rad(latFrom); var radLatTo = this.rad(latTo); var a = radLatFrom - radLatTo; var b = this.rad(lngFrom) - this.rad(lngTo); var distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLatFrom) * Math.cos(radLatTo) * Math.pow(Math.sin(b / 2), 2))); distance = distance * EARTH_RADIUS; distance = Math.round(distance * 10000) / 10000; return parseFloat(distance.toFixed(0)) }, getWXLocation(success, fail, complete) { wx.getLocation({ type: 'gcj02', success: success, fail: fail, complete: complete }) }, getLocationParam(location) { if (typeof location == 'string') { var locationArr = location.split(','); if (locationArr.length === 2) { location = { latitude: location.split(',')[0], longitude: location.split(',')[1] } } else { location = {} } } return location }, polyfillParam(param) { param.success = param.success || function () { }; param.fail = param.fail || function () { }; param.complete = param.complete || function () { } }, checkParamKeyEmpty(param, key) { if (!param[key]) { var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + key + '参数格式有误'); param.fail(errconf); param.complete(errconf); return true } return false }, checkKeyword(param) { return !this.checkParamKeyEmpty(param, 'keyword') }, checkLocation(param) { var location = this.getLocationParam(param.location); if (!location || !location.latitude || !location.longitude) { var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' location参数格式有误'); param.fail(errconf); param.complete(errconf); return false } return true }, buildErrorConfig(errCode, errMsg) { return { status: errCode, message: errMsg } }, handleData(param, data, feature) { if (feature == 'search') { var searchResult = data.data; var searchSimplify = []; for (var i = 0; i < searchResult.length; i++) { searchSimplify.push({ id: searchResult[i].id || null, title: searchResult[i].title || null, latitude: searchResult[i].location && searchResult[i].location.lat || null, longitude: searchResult[i].location && searchResult[i].location.lng || null, address: searchResult[i].address || null, category: searchResult[i].category || null, tel: searchResult[i].tel || null, adcode: searchResult[i].ad_info && searchResult[i].ad_info.adcode || null, city: searchResult[i].ad_info && searchResult[i].ad_info.city || null, district: searchResult[i].ad_info && searchResult[i].ad_info.district || null, province: searchResult[i].ad_info && searchResult[i].ad_info.province || null }) } param.success(data, { searchResult: searchResult, searchSimplify: searchSimplify }) } else if (feature == 'suggest') { var suggestResult = data.data; var suggestSimplify = []; for (var i = 0; i < suggestResult.length; i++) { suggestSimplify.push({ adcode: suggestResult[i].adcode || null, address: suggestResult[i].address || null, category: suggestResult[i].category || null, city: suggestResult[i].city || null, district: suggestResult[i].district || null, id: suggestResult[i].id || null, latitude: suggestResult[i].location && suggestResult[i].location.lat || null, longitude: suggestResult[i].location && suggestResult[i].location.lng || null, province: suggestResult[i].province || null, title: suggestResult[i].title || null, type: suggestResult[i].type || null }) } param.success(data, { suggestResult: suggestResult, suggestSimplify: suggestSimplify }) } else if (feature == 'reverseGeocoder') { var reverseGeocoderResult = data.result; var reverseGeocoderSimplify = { address: reverseGeocoderResult.address || null, latitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lat || null, longitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lng || null, adcode: reverseGeocoderResult.ad_info && reverseGeocoderResult.ad_info.adcode || null, city: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.city || null, district: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.district || null, nation: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.nation || null, province: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.province || null, street: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street || null, street_number: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street_number || null, recommend: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.recommend || null, rough: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.rough || null }; if (reverseGeocoderResult.pois) { var pois = reverseGeocoderResult.pois; var poisSimplify = []; for (var i = 0; i < pois.length; i++) { poisSimplify.push({ id: pois[i].id || null, title: pois[i].title || null, latitude: pois[i].location && pois[i].location.lat || null, longitude: pois[i].location && pois[i].location.lng || null, address: pois[i].address || null, category: pois[i].category || null, adcode: pois[i].ad_info && pois[i].ad_info.adcode || null, city: pois[i].ad_info && pois[i].ad_info.city || null, district: pois[i].ad_info && pois[i].ad_info.district || null, province: pois[i].ad_info && pois[i].ad_info.province || null }) } param.success(data, { reverseGeocoderResult: reverseGeocoderResult, reverseGeocoderSimplify: reverseGeocoderSimplify, pois: pois, poisSimplify: poisSimplify }) } else { param.success(data, { reverseGeocoderResult: reverseGeocoderResult, reverseGeocoderSimplify: reverseGeocoderSimplify }) } } else if (feature == 'geocoder') { var geocoderResult = data.result; var geocoderSimplify = { title: geocoderResult.title || null, latitude: geocoderResult.location && geocoderResult.location.lat || null, longitude: geocoderResult.location && geocoderResult.location.lng || null, adcode: geocoderResult.ad_info && geocoderResult.ad_info.adcode || null, province: geocoderResult.address_components && geocoderResult.address_components.province || null, city: geocoderResult.address_components && geocoderResult.address_components.city || null, district: geocoderResult.address_components && geocoderResult.address_components.district || null, street: geocoderResult.address_components && geocoderResult.address_components.street || null, street_number: geocoderResult.address_components && geocoderResult.address_components.street_number || null, level: geocoderResult.level || null }; param.success(data, { geocoderResult: geocoderResult, geocoderSimplify: geocoderSimplify }) } else if (feature == 'getCityList') { var provinceResult = data.result[0]; var cityResult = data.result[1]; var districtResult = data.result[2]; param.success(data, { provinceResult: provinceResult, cityResult: cityResult, districtResult: districtResult }) } else if (feature == 'getDistrictByCityId') { var districtByCity = data.result[0]; param.success(data, districtByCity) } else if (feature == 'calculateDistance') { var calculateDistanceResult = data.result.elements; var distance = []; for (var i = 0; i < calculateDistanceResult.length; i++) { distance.push(calculateDistanceResult[i].distance) } param.success(data, { calculateDistanceResult: calculateDistanceResult, distance: distance }) } else if (feature == 'direction') { var direction = data.result.routes; param.success(data, direction) } else { param.success(data) } }, buildWxRequestConfig(param, options, feature) { var that = this; options.header = { "content-type": "application/json" }; options.method = 'GET'; options.success = function (res) { var data = res.data; if (data.status === 0) { that.handleData(param, data, feature) } else { param.fail(data) } }; options.fail = function (res) { res.statusCode = ERROR_CONF.WX_ERR_CODE; param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)) }; options.complete = function (res) { var statusCode = +res.statusCode; switch (statusCode) { case ERROR_CONF.WX_ERR_CODE: { param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)); break } case ERROR_CONF.WX_OK_CODE: { var data = res.data; if (data.status === 0) { param.complete(data) } else { param.complete(that.buildErrorConfig(data.status, data.message)) } break } default: { param.complete(that.buildErrorConfig(ERROR_CONF.SYSTEM_ERR, ERROR_CONF.SYSTEM_ERR_MSG)) } } }; return options }, locationProcess(param, locationsuccess, locationfail, locationcomplete) { var that = this; locationfail = locationfail || function (res) { res.statusCode = ERROR_CONF.WX_ERR_CODE; param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)) }; locationcomplete = locationcomplete || function (res) { if (res.statusCode == ERROR_CONF.WX_ERR_CODE) { param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg)) } }; if (!param.location) { that.getWXLocation(locationsuccess, locationfail, locationcomplete) } else if (that.checkLocation(param)) { var location = Utils.getLocationParam(param.location); locationsuccess(location) } } }; class QQMapWX { constructor(options) { if (!options.key) { throw Error('key值不能为空') } this.key = options.key }; search(options) { var that = this; options = options || {}; Utils.polyfillParam(options); if (!Utils.checkKeyword(options)) { return } var requestParam = { keyword: options.keyword, orderby: options.orderby || '_distance', page_size: options.page_size || 10, page_index: options.page_index || 1, output: 'json', key: that.key }; if (options.address_format) { requestParam.address_format = options.address_format } if (options.filter) { requestParam.filter = options.filter } var distance = options.distance || "1000"; var auto_extend = options.auto_extend || 1; var region = null; var rectangle = null; if (options.region) { region = options.region } if (options.rectangle) { rectangle = options.rectangle } var locationsuccess = function (result) { if (region && !rectangle) { requestParam.boundary = "region(" + region + "," + auto_extend + "," + result.latitude + "," + result.longitude + ")"; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'search') } } else if (rectangle && !region) { requestParam.boundary = "rectangle(" + rectangle + ")"; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'search') } } else { requestParam.boundary = "nearby(" + result.latitude + "," + result.longitude + "," + distance + "," + auto_extend + ")"; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'search') } } wx.request(Utils.buildWxRequestConfig(options, { url: URL_SEARCH, data: requestParam }, 'search')) }; Utils.locationProcess(options, locationsuccess) }; getSuggestion(options) { var that = this; options = options || {}; Utils.polyfillParam(options); if (!Utils.checkKeyword(options)) { return } var requestParam = { keyword: options.keyword, region: options.region || '全国', region_fix: options.region_fix || 0, policy: options.policy || 0, page_size: options.page_size || 10, page_index: options.page_index || 1, get_subpois: options.get_subpois || 0, output: 'json', key: that.key }; if (options.address_format) { requestParam.address_format = options.address_format } if (options.filter) { requestParam.filter = options.filter } if (options.location) { var locationsuccess = function (result) { requestParam.location = result.latitude + ',' + result.longitude; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'suggest') } wx.request(Utils.buildWxRequestConfig(options, { url: URL_SUGGESTION, data: requestParam }, "suggest")) }; Utils.locationProcess(options, locationsuccess) } else { if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'suggest') } wx.request(Utils.buildWxRequestConfig(options, { url: URL_SUGGESTION, data: requestParam }, "suggest")) } }; reverseGeocoder(options) { var that = this; options = options || {}; Utils.polyfillParam(options); var requestParam = { coord_type: options.coord_type || 5, get_poi: options.get_poi || 0, output: 'json', key: that.key }; if (options.poi_options) { requestParam.poi_options = options.poi_options } var locationsuccess = function (result) { requestParam.location = result.latitude + ',' + result.longitude; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'reverseGeocoder') } wx.request(Utils.buildWxRequestConfig(options, { url: URL_GET_GEOCODER, data: requestParam }, 'reverseGeocoder')) }; Utils.locationProcess(options, locationsuccess) }; geocoder(options) { var that = this; options = options || {}; Utils.polyfillParam(options); if (Utils.checkParamKeyEmpty(options, 'address')) { return } var requestParam = { address: options.address, output: 'json', key: that.key }; if (options.region) { requestParam.region = options.region } if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'geocoder') } wx.request(Utils.buildWxRequestConfig(options, { url: URL_GET_GEOCODER, data: requestParam }, 'geocoder')) }; getCityList(options) { var that = this; options = options || {}; Utils.polyfillParam(options); var requestParam = { output: 'json', key: that.key }; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'getCityList') } wx.request(Utils.buildWxRequestConfig(options, { url: URL_CITY_LIST, data: requestParam }, 'getCityList')) }; getDistrictByCityId(options) { var that = this; options = options || {}; Utils.polyfillParam(options); if (Utils.checkParamKeyEmpty(options, 'id')) { return } var requestParam = { id: options.id || '', output: 'json', key: that.key }; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'getDistrictByCityId') } wx.request(Utils.buildWxRequestConfig(options, { url: URL_AREA_LIST, data: requestParam }, 'getDistrictByCityId')) }; calculateDistance(options) { var that = this; options = options || {}; Utils.polyfillParam(options); if (Utils.checkParamKeyEmpty(options, 'to')) { return } var requestParam = { mode: options.mode || 'walking', to: Utils.location2query(options.to), output: 'json', key: that.key }; if (options.from) { options.location = options.from } if (requestParam.mode == 'straight') { var locationsuccess = function (result) { var locationTo = Utils.getEndLocation(requestParam.to); var data = { message: "query ok", result: { elements: [] }, status: 0 }; for (var i = 0; i < locationTo.length; i++) { data.result.elements.push({ distance: Utils.getDistance(result.latitude, result.longitude, locationTo[i].lat, locationTo[i].lng), duration: 0, from: { lat: result.latitude, lng: result.longitude }, to: { lat: locationTo[i].lat, lng: locationTo[i].lng } }) } var calculateResult = data.result.elements; var distanceResult = []; for (var i = 0; i < calculateResult.length; i++) { distanceResult.push(calculateResult[i].distance) } return options.success(data, { calculateResult: calculateResult, distanceResult: distanceResult }) }; Utils.locationProcess(options, locationsuccess) } else { var locationsuccess = function (result) { requestParam.from = result.latitude + ',' + result.longitude; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'calculateDistance') } wx.request(Utils.buildWxRequestConfig(options, { url: URL_DISTANCE, data: requestParam }, 'calculateDistance')) }; Utils.locationProcess(options, locationsuccess) } }; direction(options) { var that = this; options = options || {}; Utils.polyfillParam(options); if (Utils.checkParamKeyEmpty(options, 'to')) { return } var requestParam = { output: 'json', key: that.key }; if (typeof options.to == 'string') { requestParam.to = options.to } else { requestParam.to = options.to.latitude + ',' + options.to.longitude } var SET_URL_DIRECTION = null; options.mode = options.mode || MODE.driving; SET_URL_DIRECTION = URL_DIRECTION + options.mode; if (options.from) { options.location = options.from } if (options.mode == MODE.driving) { if (options.from_poi) { requestParam.from_poi = options.from_poi } if (options.heading) { requestParam.heading = options.heading } if (options.speed) { requestParam.speed = options.speed } if (options.accuracy) { requestParam.accuracy = options.accuracy } if (options.road_type) { requestParam.road_type = options.road_type } if (options.to_poi) { requestParam.to_poi = options.to_poi } if (options.from_track) { requestParam.from_track = options.from_track } if (options.waypoints) { requestParam.waypoints = options.waypoints } if (options.policy) { requestParam.policy = options.policy } if (options.plate_number) { requestParam.plate_number = options.plate_number } } if (options.mode == MODE.transit) { if (options.departure_time) { requestParam.departure_time = options.departure_time } if (options.policy) { requestParam.policy = options.policy } } var locationsuccess = function (result) { requestParam.from = result.latitude + ',' + result.longitude; if (options.sig) { requestParam.sig = Utils.getSig(requestParam, options.sig, 'direction', options.mode) } wx.request(Utils.buildWxRequestConfig(options, { url: SET_URL_DIRECTION, data: requestParam }, 'direction')) }; Utils.locationProcess(options, locationsuccess) } }; module.exports = QQMapWX;
\ No newline at end of file
diff --git a/亿时代-本时生活-2021-04-13/本时生活/utils/util.js b/亿时代-本时生活-2021-04-13/本时生活/utils/util.js
new file mode 100644
index 0000000..dbadbb8
--- /dev/null
+++ b/亿时代-本时生活-2021-04-13/本时生活/utils/util.js
@@ -0,0 +1,19 @@
+const formatTime = date => {
+ const year = date.getFullYear()
+ const month = date.getMonth() + 1
+ const day = date.getDate()
+ const hour = date.getHours()
+ const minute = date.getMinutes()
+ const second = date.getSeconds()
+
+ return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
+}
+
+const formatNumber = n => {
+ n = n.toString()
+ return n[1] ? n : '0' + n
+}
+
+module.exports = {
+ formatTime: formatTime
+}
diff --git a/手太欠/物业小程序/物业小程序/api/err.js b/手太欠/物业小程序/物业小程序/api/err.js
new file mode 100644
index 0000000..cee8984
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/api/err.js
@@ -0,0 +1,54 @@
+
+/**
+ * 处理错误信息
+ * @property {Object} errInfo
+ */
+
+const errInfo = (obj) =>{
+ if(obj.status_code == 401){
+ wx.showModal({
+ title : "登录提示",
+ content : "长时间未操作,登录已过期,请重新登录",
+ showCancel : false,
+ confirmColor: "#0b0041",
+ confirmText : "确定",
+ success : ()=>{
+ // 清理客户端登录缓存
+ wx.removeStorageSync("token")
+ // 返回首页
+ wx.redirectTo({
+ url: "/pages/index/index",
+ })
+ }
+ })
+ }else if(obj.status_code == 422){
+ wx.showToast({
+ title: obj.message,
+ icon : "none"
+ })
+ }else if(obj.status_code == 400 || obj.status_code == 0){
+ wx.showToast({
+ title: obj.message,
+ icon : "none"
+ })
+ }else if(obj.status_code == 404){
+ wx.showToast({
+ title: "接口地址不存在,请联系系统管理员",
+ icon : "none"
+ })
+ }else if(obj.status_code == 500){
+ wx.showToast({
+ title: "服务端:" + obj.message,
+ icon : "none"
+ })
+ }else {
+ wx.showToast({
+ title: "code:" + obj.status_code + ", msg:" + obj.message,
+ icon : "none"
+ })
+ }
+}
+
+module.exports = {
+ errInfo
+}
diff --git a/手太欠/物业小程序/物业小程序/api/index.js b/手太欠/物业小程序/物业小程序/api/index.js
new file mode 100644
index 0000000..7fd6867
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/api/index.js
@@ -0,0 +1,26 @@
+
+/*
+ * 张慢慢
+ * 物业 v1.0.0 (2020-11-23 09:25:32)
+ * http://community.wilfw.xyz/api/
+ */
+
+import auth from "./interfaces/auth"
+import index from "./interfaces/index"
+import file from "./interfaces/file"
+import users from "./interfaces/users"
+import life from "./interfaces/life"
+import address from "./interfaces/address"
+import repair from "./interfaces/repair"
+import integral from "./interfaces/integral"
+
+export default{
+ auth,
+ index,
+ file,
+ users,
+ life,
+ address,
+ repair,
+ integral
+}
diff --git a/手太欠/物业小程序/物业小程序/api/interfaces/address.js b/手太欠/物业小程序/物业小程序/api/interfaces/address.js
new file mode 100644
index 0000000..8ab2ee7
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/api/interfaces/address.js
@@ -0,0 +1,20 @@
+
+import {req} from "../request"
+
+const index = () => req({url: "user/addresses"})//我的地址列表
+const province = data => req({url: "user/addresses/create", data: data}) //获取省市区层级信息
+const add = data => req({url: "user/addresses",method: "POST", data: data}) //创建地址保存
+const edit = (address_id) => req({url: "user/addresses/" + address_id + "/edit"})// 获取已有地址信息
+const remove = (address_id) => req({url: "user/addresses/" + address_id, method: "DELETE"})// 删除地址
+const keep = (address_id, data) => req({url: "user/addresses/" + address_id, method: "PUT", data: data}) //编辑地址保存
+const setdef = (address_id) => req({url: "user/addresses/" + address_id + '/default', method: "POST"})// 设为默认地址
+
+export default({
+ index,
+ province,
+ add,
+ edit,
+ remove,
+ keep,
+ setdef
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/api/interfaces/auth.js b/手太欠/物业小程序/物业小程序/api/interfaces/auth.js
new file mode 100644
index 0000000..0f05fc6
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/api/interfaces/auth.js
@@ -0,0 +1,10 @@
+
+import {req} from "../request"
+
+const authLogin = data => req({url: "auth/mini", method: "POST", data: data}) //微信手机号授权登录
+const authHead = (header, data) => req({header:header, url: "auth/mini/info", method: "POST", data: data}) //微信头像授权登录
+
+export default({
+ authLogin,
+ authHead
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/api/interfaces/file.js b/手太欠/物业小程序/物业小程序/api/interfaces/file.js
new file mode 100644
index 0000000..3e8532c
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/api/interfaces/file.js
@@ -0,0 +1,14 @@
+
+/*
+ * 图图片上传公用接口
+ */
+import {upload} from "../request"
+
+const uploadImg = (imgPaht, data) => upload({url: "storage", method: "POST", key: "file", path: imgPaht, data: data}) //上传图片
+
+const uploadVideo = (imgPaht, data) => upload({url: "storage/video", method: "POST", key: "file", path: imgPaht, data: data}) //上传视频
+
+export default({
+ uploadImg,
+ uploadVideo
+})
diff --git a/手太欠/物业小程序/物业小程序/api/interfaces/index.js b/手太欠/物业小程序/物业小程序/api/interfaces/index.js
new file mode 100644
index 0000000..9ed4664
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/api/interfaces/index.js
@@ -0,0 +1,75 @@
+
+import {req} from "../request"
+
+const index = () => req({url: ""})//首页
+const search = data => req({url: "goods/lists", data: data}) //商品搜索
+const notice = data => req({url: "articles/notice", data: data}) //公告列表
+const serviceNav = () => req({url: "appointments"}) //家政服务分类+banner
+const servicelist = data => req({url: "appointments/lists", data: data}) //家政服务列表
+const serviceInfo = appointment_id => req({url: "appointments/" + appointment_id}) //家政服务详情
+const carList = data => req({url: "appointmentservices/car", data: data}) //洗车行列表
+const haircutList = data => req({url: "appointmentservices/haircut", data: data}) //美发列表
+const appointForm = (appointment_service_id, data) => req({url: "appointments/" + appointment_service_id + "/appoint", method: "POST", data: data}) //预约美发+汽车表单
+const makeShow = log => req({url: "appointments/" + log + '/log'}) //美发+汽车 预约详情
+const homeList = data => req({url: "user/appointment", data: data}) //家政服务预约记录
+const diningList = (subscribe_id) => req({url: "user/restaurants/subscribes/" + subscribe_id}) //餐厅预约记录-产看
+const hourseForm = (appointment_id, data) => req({url: "appointments/" + appointment_id + "/service", method: "POST", data: data}) //家政服务预约支付
+const hourseInfo = log_id => req({url: "appointments/" + log_id + "/paymentorder"}) //家政服务预约记录订单返回
+const hourseShow = log_id => req({url: "appointments/" + log_id + "/order"}) //家政服务预约详情
+const appointment = (log_id, data) => req({url: "user/appointment/" + log_id + "/comment", method: "POST", data: data}) //家政服务预约-评价
+const foodSort = () => req({url: "restaurants"}) //社区餐饮-左侧分类
+const foodsList = (restaurant_id, data) => req({url: "restaurants/" + restaurant_id + "/foods", data: data}) //社区餐饮-右侧分类
+const foodMake = (restaurant_id, data) => req({url: "restaurants/" + restaurant_id + "/subscribe", method: "POST", data: data}) //社区餐饮-在线预约
+const footsSure = (restaurant_id, data) => req({url: "restaurants/" + restaurant_id + "/makesure", method: "POST", data: data}) //社区餐饮-表单提交
+const footsForm = (restaurant_id, data) => req({url: "restaurants/" + restaurant_id + "/pay", method: "POST", data: data}) //社区餐饮-表单支付
+
+const goods = () => req({url: "goods"}) //商城-左侧分类
+const goodsList = data => req({url: "goods/lists", data: data}) //商城-右侧列表
+const actives = data => req({url: "goods/actives", data: data}) //商城-优惠活动
+const activesInfo = (goods_id) => req({url: "goods/" + goods_id}) //商品详情
+const receive = (coupon_id) => req({url: "coupons/" + coupon_id + '/receive', method: "POST"}) //领取优惠券
+const addcard = data => req({url: "carts/add", method: "POST", data: data}) //添加购物车
+const makesure = data => req({url: "goods/makesure", method: "POST", data: data}) //订单确认
+const orderPay = data => req({url: "goods/order", method: "POST", data: data}) //订单下单支付
+const carts = () => req({url: "carts"}) //购物车列表
+const setnum = data => req({url: "carts/setnum", method: "POST", data: data}) //修改购物车列表-数量变化
+const cartDel = (rowid) => req({url: "carts/" + rowid, method: "DELETE"}) //购物车删除
+const cartMake = data => req({url: "carts/makesure", method: "POST", data: data}) //购物车下单-确认
+const cartOrder = data => req({url: "carts/order", method: "POST", data: data}) //购物车下单-支付
+
+export default({
+ index,
+ search,
+ notice,
+ serviceNav,
+ servicelist,
+ serviceInfo,
+ carList,
+ haircutList,
+ appointForm,
+ makeShow,
+ homeList,
+ diningList,
+ hourseForm,
+ hourseInfo,
+ hourseShow,
+ appointment,
+ foodSort,
+ foodsList,
+ foodMake,
+ footsSure,
+ footsForm,
+ goods,
+ goodsList,
+ actives,
+ activesInfo,
+ receive,
+ addcard,
+ makesure,
+ orderPay,
+ carts,
+ setnum,
+ cartDel,
+ cartMake,
+ cartOrder
+})
diff --git a/手太欠/物业小程序/物业小程序/api/interfaces/integral.js b/手太欠/物业小程序/物业小程序/api/interfaces/integral.js
new file mode 100644
index 0000000..948607c
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/api/interfaces/integral.js
@@ -0,0 +1,19 @@
+
+import {req} from "../request"
+
+const index = data => req({url: "scoremall", data: data}) //积分商城列表
+const details = (score_id) => req({url: "scoremall/" + score_id}) //积分商城详情
+const makesure = data => req({url: "scoremall/makesure", data: data}) //积分订单-确认
+const orderMake = data => req({url: "scoremall/exchange", method: "POST", data: data}) //积分订单-确认
+const orderTake = data => req({url: "user/account/exchange", data: data}) //兑换记录
+const orderSee = (id) => req({url: "user/account/exchange/" + id}) //兑换记录-查看
+
+
+export default({
+ index,
+ details,
+ makesure,
+ orderMake,
+ orderTake,
+ orderSee
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/api/interfaces/life.js b/手太欠/物业小程序/物业小程序/api/interfaces/life.js
new file mode 100644
index 0000000..6184d3f
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/api/interfaces/life.js
@@ -0,0 +1,26 @@
+
+import {req} from "../request"
+
+const index = () => req({url: "categories"}) //周边 - 分类
+const articles = data => req({url: "articles", data: data}) //周边 - 列表
+const details = (article_id) => req({url: "articles/" + article_id}) //周边 - 列表详情
+const comment = (article_id, data) => req({url: "articles/" + article_id + "/comment", method: "POST", data: data}) //周边 - 评论
+
+const roomSort = () => req({url: "categories/rooms"}) //房屋租赁 - 分类
+const rooms = data => req({url: "rooms", data: data}) //房屋租赁 - 列表
+const roomDetails = (room_id) => req({url: "rooms/" + room_id}) //房屋租赁 - 列表详情
+const roomComment = (room_id, data) => req({url: "rooms/" + room_id + "/comment", method: "POST", data: data}) //房屋租赁 - 评论
+
+const commentDel = (comment_id) => req({url: "comments/" + comment_id, method: "DELETE"}) //评论-删除
+
+export default({
+ index,
+ articles,
+ details,
+ comment,
+ rooms,
+ roomSort,
+ roomDetails,
+ roomComment,
+ commentDel
+})
diff --git a/手太欠/物业小程序/物业小程序/api/interfaces/repair.js b/手太欠/物业小程序/物业小程序/api/interfaces/repair.js
new file mode 100644
index 0000000..3f3314a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/api/interfaces/repair.js
@@ -0,0 +1,24 @@
+
+import {req} from "../request"
+
+const check = () => req({url: "house/check"}) //检查房屋信息
+const feelog = data => req({url: "house/feelog", data: data}) //房屋缴费记录
+const unfee = () => req({url: "house/unfee"}) //房屋代缴
+const fee = data => req({url: "house/fee", method: "POST", data: data}) //房屋缴费
+const feeInfo = (fee_id) => req({url: "house/feelog/" + fee_id}) //房屋缴费记录详情
+const repairForm = (data) => req({url: "repairs", method: "POST", data: data}) //维修表单提交
+const repairsList= data => req({url: "repairs", data: data}) //维修记录
+const repairShow = (repair_id) => req({url: "repairs/" + repair_id}) //维修记录详情
+const comment = (repair_id, data) => req({url: "repairs/" + repair_id + "/comment", method: "POST", data: data}) //维修记录评价
+
+export default({
+ check,
+ feelog,
+ unfee,
+ fee,
+ feeInfo,
+ repairForm,
+ repairsList,
+ repairShow,
+ comment
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/api/interfaces/users.js b/手太欠/物业小程序/物业小程序/api/interfaces/users.js
new file mode 100644
index 0000000..1495fd1
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/api/interfaces/users.js
@@ -0,0 +1,83 @@
+
+import {req} from "../request"
+
+const index = () => req({url: "user/index"}) //获取个人信息
+const setting = () => req({url: "user/settings"}) //用户设置
+const create = () => req({url: "userhouse/create"}) //我的小区添加
+const ajaxes = data => req({url: "ajaxes/housedictionaries", method: "POST", data: data}) //我的小区添加联动
+const house = data => req({url: "userhouse", method: "POST", data: data}) //我的小区添加保存
+const houseList = data => req({url: "userhouse", data: data}) //我的小区添加
+const carAdd = data => req({url: "user/carlicense", method: "POST", data: data}) //我的车辆添加
+const cartList = data => req({url: "user/carlicense", data: data}) //我的车辆列表
+const cartDel = (license_id) => req({url: "user/carlicense/" + license_id, method: "DELETE"}) //我的车辆删除
+const avatar = data => req({url: "user/settings/info/avatar", method: "PUT", data: data}) //头像
+const nickname = data => req({url: "user/settings/info/nickname", method: "PUT", data: data}) //昵称
+const makeTab = () => req({url: "categories/appointmentservice"}) //我的预约分类
+const makeTList = (data) => req({url: "user/appointment/service", data: data}) //我的车辆删除
+const lifeList = data => req({url: "user/publish/service", data: data}) //我的发布-生活周边列表
+const lifeIssue = data => req({url: "user/publish/service", method: "POST", data: data}) //我的发布-生活周边发布
+
+const roomList = data => req({url: "user/publish/room", data: data}) //我的发布-房屋列表
+const roomIssue = data => req({url: "user/publish/room", method: "POST", data: data}) //我的发布-周边发布
+
+const guide = () => req({url: "serviceguide"}) //使用指南
+const mobile = () => req({url: "servicemobile"}) //物业电话
+
+const suggest = () => req({url: "categories/suggest"}) //投诉建议分类
+const suggList = data => req({url: "suggests", data: data}) //投诉建议列表
+const suggForm = data => req({url: "suggests", method: "POST", data: data}) //投诉建议表单
+
+const takeList = data => req({url: "user/restaurants/order", data: data}) //外送订单列表
+const serveList = data => req({url: "user/restaurants/subscribes", data: data}) //外送订单列表
+
+const process = data => req({url: "user/orders", data: data}) // 商城订单
+const failed = data => req({url: "user/orders/groups", data: data}) // 拼团订单
+const advance = data => req({url: "user/orders/advances", data: data}) // 预售订单
+const details = (order_id) => req({url: "user/orders/" + order_id}) // 商城订单-详情
+const cancel = (order_id) => req({url: "user/orders/" + order_id + "/cancel", method: "POST"}) // 商城订单-取消订单
+const sign = (order_id) => req({url: "user/orders/" + order_id + "/sign", method: "POST"}) // 商城订单-签收订单
+const del = (order_id) => req({url: "user/orders/" + order_id, method: "DELETE"}) // 商城订单-删除订单
+const pay = (order_id,data) => req({url: "user/orders/" + order_id + "/pay", method: "POST", data: data}) // 商城订单-支付订单
+
+const account = (order_id,data) => req({url: "user/account", data: data}) // 我的积分
+
+const deposit = (order_id,data) => req({url: "user/orders/" + order_id + "/deposit", method: "POST", data: data}) // 支付定金
+const finish = (order_id,data) => req({url: "user/orders/" + order_id + "/finish", method: "POST", data: data}) // 支付尾款
+
+export default({
+ index,
+ setting,
+ create,
+ ajaxes,
+ house,
+ houseList,
+ carAdd,
+ cartList,
+ cartDel,
+ avatar,
+ nickname,
+ makeTab,
+ makeTList,
+ lifeList,
+ lifeIssue,
+ roomList,
+ roomIssue,
+ guide,
+ mobile,
+ suggest,
+ suggList,
+ suggForm,
+ takeList,
+ serveList,
+ process,
+ failed,
+ advance,
+ details,
+ cancel,
+ sign,
+ del,
+ pay,
+ account,
+ deposit,
+ finish
+})
diff --git a/手太欠/物业小程序/物业小程序/api/request.js b/手太欠/物业小程序/物业小程序/api/request.js
new file mode 100644
index 0000000..80fad13
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/api/request.js
@@ -0,0 +1,145 @@
+import {errInfo} from './err'
+import {updToken} from './updateToken'
+
+// 请求方式配置
+const api = "https://community.wilfw.xyz/api/" //正式地址
+const header = {
+ "Accept" : "application/json"
+}
+
+/**
+ * 请求
+ * @property {Object} req
+ */
+
+const req = (obj) => {
+ // 处理请求信息
+ return new Promise((resolve, reject) => {
+ // 组合header
+ if(obj.header && obj.header['Authorization']){
+ obj.header['Accept'] = "application/json"
+ }else{
+ obj.header = {
+ "Accept" : "application/json",
+ "Authorization" : wx.getStorageSync("token") || ""
+ }
+ }
+
+ // 处理数据请求
+ wx.showLoading({
+ title: "加载中..",
+ mask : true
+ })
+
+ wx.request({
+ url : api + obj.url,
+ header : obj.header || {},
+ method : obj.method || 'GET',
+ data : obj.data || {},
+ success : res => {
+ if(res.header.Authorization){
+ // 更新全局存储器
+ getApp().globalData.token = res.header.Authorization
+ // 更新客户端登录缓存
+ wx.setStorageSync('token', res.header.Authorization)
+ }
+
+ wx.hideLoading();
+
+ if(res.data.status_code == 200){
+ resolve(res.data)
+ }else if(res.data.status_code == 401 || res.data.status_code == 0){
+ wx.showModal({
+ title : "登录提示",
+ content : "长时间未操作,登录已过期,请重新登录",
+ showCancel : false,
+ confirmColor: "#3ec28e",
+ success : res=>{
+ if(res.confirm){
+ // 重置全局存储器
+ getApp().globalData.token = ""
+ getApp().globalData.isUser = false
+ // 清理客户端登录缓存
+ wx.removeStorageSync("token")
+ // 返回用户状态
+ reject({isUser: false})
+ }
+ }
+ })
+ }else if(res.data.status_code == 404){
+ wx.showToast({
+ title: "接口地址不存在,请联系系统管理员",
+ icon : "none"
+ })
+ }else{
+ wx.showToast({
+ title: res.data.message,
+ icon : "none"
+ })
+ }
+ },
+ fail : err => {
+ wx.showToast({
+ title: "服务端错误",
+ icon : "none"
+ })
+ reject(err)
+ }
+ })
+ })
+}
+
+
+/**
+ * 上传
+ * @property {Object} upload
+ */
+
+const upload = (obj) => {
+ // header
+ header.Authorization = wx.getStorageSync("token") || ""
+ // 处理上传信息
+ return new Promise((resolve, reject) => {
+ wx.showLoading({
+ title: "上传中..",
+ mask: true
+ })
+ wx.uploadFile({
+ url : api + obj.url,
+ header : header,
+ name : obj.key || "",
+ filePath: obj.path || "",
+ formData: obj.data || {},
+ success : res=>{
+ wx.hideLoading();
+ // 处理返回值
+ let jsonData = JSON.parse(res.data)
+ // 更新token
+ if (res.header.Authorization) updToken(res.header.Authorization)
+ // 处理信息
+ if (jsonData.status_code == 200) {
+ resolve(jsonData.data)
+ } else {
+ if (jsonData.status_code == 401) {
+ reject({
+ login: false
+ })
+ }
+ errInfo(jsonData)
+ }
+ },
+ fail : err=>{
+ wx.showToast({
+ title : err.errMsg,
+ icon : "none"
+ })
+ reject(err)
+ }
+ })
+ })
+}
+
+module.exports = {
+ req,
+ upload
+}
diff --git a/手太欠/物业小程序/物业小程序/api/updateToken.js b/手太欠/物业小程序/物业小程序/api/updateToken.js
new file mode 100644
index 0000000..8207d76
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/api/updateToken.js
@@ -0,0 +1,17 @@
+
+/**
+ * 更新token
+ * @property {String} updToken
+ */
+
+const updToken = (token) =>{
+ // 更新全局存储器
+ getApp().globalData.token = token
+ // 更新客户端登录缓存
+ wx.setStorageSync('token', token)
+}
+
+module.exports = {
+ updToken
+}
+
diff --git a/手太欠/物业小程序/物业小程序/app.js b/手太欠/物业小程序/物业小程序/app.js
new file mode 100644
index 0000000..7bbcf89
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/app.js
@@ -0,0 +1,40 @@
+
+/*
+ * 手太欠
+ * 物业
+ */
+
+import api from "api/index"
+
+App({
+ onLaunch() {
+ // 获取系统信息
+ this.globalData.statusBarHeight = wx.getSystemInfoSync().statusBarHeight
+
+ // 检查用户登录状态
+ const token = wx.getStorageSync("token")
+
+ if(token){
+ this.globalData.isUser = true
+ }
+
+ // 获取系统信息
+ wx.getSystemInfo({
+ success: res=>{
+ this.globalData.systInfo = {
+ statusBarHeight: res.statusBarHeight,
+ safeArea : res.safeArea
+ }
+ }
+ })
+
+ // 挂载api
+ wx.$api = api
+ },
+ globalData: {
+ isUser : false,
+ userInfo : null,
+ statusBarHeight : 0,
+ token : ""
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/app.json b/手太欠/物业小程序/物业小程序/app.json
new file mode 100644
index 0000000..fb2f6b9
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/app.json
@@ -0,0 +1,109 @@
+{
+ "pages": [
+ "pages/index/index",
+ "pages/repair/repair",
+ "pages/life/life",
+ "pages/user/user",
+ "pages/categories/categories",
+ "pages/search/search",
+ "pages/details/details",
+ "pages/carts_order/carts_order",
+ "pages/address/address",
+ "pages/address_form/address_form",
+ "pages/notice/notice",
+ "pages/domestic/domestic",
+ "pages/haircut/haircut",
+ "pages/washCar/washCar",
+ "pages/publicForm/publicForm",
+ "pages/makeForm/makeForm",
+ "pages/makeDetails/makeDetails",
+ "pages/paySuccess/paySuccess",
+ "pages/makeSuccess/makeSuccess",
+ "pages/reserveSee/reserveSee",
+ "pages/manyPay/manyPay",
+ "pages/cart/cart",
+ "pages/historyPay/historyPay",
+ "pages/repairPay/repairPay",
+ "pages/repairMond/repairMond",
+ "pages/historyMond/historyMond",
+ "pages/works/works_img/works_img",
+ "pages/repairSpeed/repairSpeed",
+ "pages/periphery/periphery",
+ "pages/lifeDetails/lifeDetails",
+ "pages/login/login",
+ "pages/userVillage/userVillage",
+ "pages/userVillage_form/userVillage_form",
+ "pages/userSetup/userSetup",
+ "pages/userSetup_form/userSetup_form",
+ "pages/userCart/userCart",
+ "pages/userCart_form/userCart_form",
+ "pages/lease/lease",
+ "pages/userOrder/userOrder",
+ "pages/userOrder_data/userOrder_data",
+ "pages/userRelease/userRelease",
+ "pages/userRelease_form/userRelease_form",
+ "pages/userMake/userMake",
+ "pages/user_guide/user_guide",
+ "pages/user_tel/user_tel",
+ "pages/user_feedback/user_feedback",
+ "pages/user_feedback_from/user_feedback_from",
+ "pages/user_wallet/user_wallet",
+ "pages/userHouse/userHouse",
+ "pages/integral/integral",
+ "pages/repairSuccess/repairSuccess",
+ "pages/historyShow/historyShow",
+ "pages/dining/dining",
+ "pages/diningData/diningData",
+ "pages/diningOrder/diningOrder",
+ "pages/demo/demo",
+ "pages/integralData/integralData",
+ "pages/integralOrder/integralData",
+ "pages/integralSee/integralSee",
+ "pages/mobile/mobile",
+ "pages/diningSee/diningSee"
+ ],
+ "window": {
+ "backgroundTextStyle": "light",
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTitleText": "Weixin",
+ "navigationBarTextStyle": "black"
+ },
+ "tabBar": {
+ "list": [
+ {
+ "pagePath": "pages/index/index",
+ "text": "社区服务",
+ "iconPath": "/static/tabBarIcon/00.png",
+ "selectedIconPath": "/static/tabBarIcon/00_active.png"
+ },
+ {
+ "pagePath": "pages/repair/repair",
+ "text": "缴费报修",
+ "iconPath": "/static/tabBarIcon/01.png",
+ "selectedIconPath": "/static/tabBarIcon/01_active.png"
+ },
+ {
+ "pagePath": "pages/life/life",
+ "text": "便民生活",
+ "iconPath": "/static/tabBarIcon/02.png",
+ "selectedIconPath": "/static/tabBarIcon/02_active.png"
+ },
+ {
+ "pagePath": "pages/user/user",
+ "text": "个人生活",
+ "iconPath": "/static/tabBarIcon/03.png",
+ "selectedIconPath": "/static/tabBarIcon/03_active.png"
+ }
+ ],
+ "color": "#2e2d2b",
+ "selectedColor": "#67d053",
+ "borderStyle": "white"
+ },
+ "style": "v2",
+ "sitemapLocation": "sitemap.json",
+ "permission": {
+ "scope.userLocation": {
+ "desc": "你的位置信息将用于小程序位置接口的效果展示"
+ }
+ }
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/app.wxss b/手太欠/物业小程序/物业小程序/app.wxss
new file mode 100644
index 0000000..81b8bba
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/app.wxss
@@ -0,0 +1,146 @@
+/**app.wxss**/
+page {
+ background-color: #f5f5f5;
+}
+
+/*
+ * 文字截取
+ */
+
+.nowrap {
+ max-width: 100%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+.nowrap-multi {
+ display: -webkit-box;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 2;
+}
+
+/*
+* 水平居中
+*/
+
+.pack-center {
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-pack: center;
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ z-index: -1;
+}
+
+/*
+* 页面信息提醒
+*/
+
+.pages-hint,
+.pages-loding {
+ text-align: center;
+ color: #747788;
+ font-size: 28rpx;
+ background: white;
+}
+
+.pages-hint image {
+ width: 188rpx;
+ height: 188rpx;
+}
+
+.pages-loding image {
+ width: 38rpx;
+ height: 38rpx;
+}
+
+.pagesLoding {
+ text-align: center;
+ padding: 40rpx 0;
+}
+
+/* 一像素下边框 */
+.uni-border-down,
+.uni-border-top {
+ position: relative;
+}
+
+.uni-border-down::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ bottom: 0;
+ background: #f2f2f2;
+ height: 2rpx;
+ width: 100%;
+}
+
+/* 一像素上边框 */
+.uni-border-top::before {
+ position: absolute;
+ content: '';
+ left: 0;
+ top: 0;
+ background: #f2f2f2;
+ height: 2rpx;
+ width: 100%;
+}
+
+.uni-border-down:last-child::after,
+.uni-border-top:last-child::before {
+ display: none;
+}
+
+/*
+* 水平居中
+*/
+
+.pack-center {
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-pack: center;
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ z-index: -1;
+}
+
+/*
+* 页面信息提醒
+*/
+
+.pages-hint {
+ text-align: center;
+ color: #747788;
+ font-size: 28rpx;
+ background: white;
+}
+
+.pages-hint image {
+ width: 188rpx;
+ height: 188rpx;
+}
+
+/* 白背景与边距 */
+.ce-white {
+ background-color: white;
+}
+
+/* padding边距 */
+.ce-padding {
+ padding: 20rpx;
+ box-sizing: border-box;
+}
+
+/* 圆角 */
+.ce-radius {
+ border-radius: 14rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/commpent/image-cropper-master/image-cropper.js b/手太欠/物业小程序/物业小程序/commpent/image-cropper-master/image-cropper.js
new file mode 100644
index 0000000..6957179
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/commpent/image-cropper-master/image-cropper.js
@@ -0,0 +1,1120 @@
+Component({
+ properties: {
+ /**
+ * 图片路径
+ */
+ 'imgSrc': {
+ type: String
+ },
+ /**
+ * 裁剪框高度
+ */
+ 'height': {
+ type: Number,
+ value: 200
+ },
+ /**
+ * 裁剪框宽度
+ */
+ 'width': {
+ type: Number,
+ value: 200
+ },
+ /**
+ * 裁剪框最小尺寸
+ */
+ 'min_width': {
+ type: Number,
+ value: 100
+ },
+ 'min_height': {
+ type: Number,
+ value: 100
+ },
+ /**
+ * 裁剪框最大尺寸
+ */
+ 'max_width': {
+ type: Number,
+ value: 300
+ },
+ 'max_height': {
+ type: Number,
+ value: 300
+ },
+ /**
+ * 裁剪框禁止拖动
+ */
+ 'disable_width': {
+ type: Boolean,
+ value: false
+ },
+ 'disable_height': {
+ type: Boolean,
+ value: false
+ },
+ /**
+ * 锁定裁剪框比例
+ */
+ 'disable_ratio':{
+ type: Boolean,
+ value: false
+ },
+ /**
+ * 生成的图片尺寸相对剪裁框的比例
+ */
+ 'export_scale': {
+ type: Number,
+ value: 3
+ },
+ /**
+ * 生成的图片质量0-1
+ */
+ 'quality': {
+ type: Number,
+ value: 1
+ },
+ 'cut_top': {
+ type: Number,
+ value: null
+ },
+ 'cut_left': {
+ type: Number,
+ value: null
+ },
+ /**
+ * canvas上边距(不设置默认不显示)
+ */
+ 'canvas_top': {
+ type: Number,
+ value: null
+ },
+ /**
+ * canvas左边距(不设置默认不显示)
+ */
+ 'canvas_left': {
+ type: Number,
+ value: null
+ },
+ /**
+ * 图片宽度
+ */
+ 'img_width': {
+ type: null,
+ value: null
+ },
+ /**
+ * 图片高度
+ */
+ 'img_height': {
+ type: null,
+ value: null
+ },
+ /**
+ * 图片缩放比
+ */
+ 'scale': {
+ type: Number,
+ value: 1
+ },
+ /**
+ * 图片旋转角度
+ */
+ 'angle': {
+ type: Number,
+ value: 0
+ },
+ /**
+ * 最小缩放比
+ */
+ 'min_scale': {
+ type: Number,
+ value: 0.5
+ },
+ /**
+ * 最大缩放比
+ */
+ 'max_scale': {
+ type: Number,
+ value: 2
+ },
+ /**
+ * 是否禁用旋转
+ */
+ 'disable_rotate': {
+ type: Boolean,
+ value: false
+ },
+ /**
+ * 是否限制移动范围(剪裁框只能在图片内)
+ */
+ 'limit_move':{
+ type: Boolean,
+ value: false
+ }
+ },
+ data: {
+ el: 'image-cropper', //暂时无用
+ info: wx.getSystemInfoSync(),
+ MOVE_THROTTLE:null,//触摸移动节流settimeout
+ MOVE_THROTTLE_FLAG: true,//节流标识
+ INIT_IMGWIDTH: 0, //图片设置尺寸,此值不变(记录最初设定的尺寸)
+ INIT_IMGHEIGHT: 0, //图片设置尺寸,此值不变(记录最初设定的尺寸)
+ TIME_BG: null,//背景变暗延时函数
+ TIME_CUT_CENTER:null,
+ _touch_img_relative: [{
+ x: 0,
+ y: 0
+ }], //鼠标和图片中心的相对位置
+ _flag_cut_touch:false,//是否是拖动裁剪框
+ _hypotenuse_length: 0, //双指触摸时斜边长度
+ _flag_img_endtouch: false, //是否结束触摸
+ _flag_bright: true, //背景是否亮
+ _canvas_overflow:true,//canvas缩略图是否在屏幕外面
+ _canvas_width:200,
+ _canvas_height:200,
+ origin_x: 0.5, //图片旋转中心
+ origin_y: 0.5, //图片旋转中心
+ _cut_animation: false,//是否开启图片和裁剪框过渡
+ _img_top: wx.getSystemInfoSync().windowHeight / 2, //图片上边距
+ _img_left: wx.getSystemInfoSync().windowWidth / 2, //图片左边距
+ watch: {
+ //监听截取框宽高变化
+ width(value, that) {
+ if (value < that.data.min_width){
+ that.setData({
+ width: that.data.min_width
+ });
+ }
+ that._computeCutSize();
+ },
+ height(value, that) {
+ if (value < that.data.min_height) {
+ that.setData({
+ height: that.data.min_height
+ });
+ }
+ that._computeCutSize();
+ },
+ angle(value, that){
+ //停止居中裁剪框,继续修改图片位置
+ that._moveStop();
+ if(that.data.limit_move){
+ if (that.data.angle % 90) {
+ that.setData({
+ angle: Math.round(that.data.angle / 90) * 90
+ });
+ return;
+ }
+ }
+ },
+ _cut_animation(value, that){
+ //开启过渡300毫秒之后自动关闭
+ clearTimeout(that.data._cut_animation_time);
+ if (value){
+ that.data._cut_animation_time = setTimeout(()=>{
+ that.setData({
+ _cut_animation:false
+ });
+ },300)
+ }
+ },
+ limit_move(value, that){
+ if (value) {
+ if (that.data.angle%90){
+ that.setData({
+ angle: Math.round(that.data.angle / 90)*90
+ });
+ }
+ that._imgMarginDetectionScale();
+ !that.data._canvas_overflow && that._draw();
+ }
+ },
+ canvas_top(value, that){
+ that._canvasDetectionPosition();
+ },
+ canvas_left(value, that){
+ that._canvasDetectionPosition();
+ },
+ imgSrc(value, that){
+ that.pushImg();
+ },
+ cut_top(value, that) {
+ that._cutDetectionPosition();
+ if (that.data.limit_move) {
+ !that.data._canvas_overflow && that._draw();
+ }
+ },
+ cut_left(value, that) {
+ that._cutDetectionPosition();
+ if (that.data.limit_move) {
+ !that.data._canvas_overflow && that._draw();
+ }
+ }
+ }
+ },
+ attached() {
+ this.data.info = wx.getSystemInfoSync();
+ //启用数据监听
+ this._watcher();
+ this.data.INIT_IMGWIDTH = this.data.img_width;
+ this.data.INIT_IMGHEIGHT = this.data.img_height;
+ this.setData({
+ _canvas_height: this.data.height,
+ _canvas_width: this.data.width,
+ });
+ this._initCanvas();
+ this.data.imgSrc && (this.data.imgSrc = this.data.imgSrc);
+ //根据开发者设置的图片目标尺寸计算实际尺寸
+ this._initImageSize();
+ //设置裁剪框大小>设置图片尺寸>绘制canvas
+ this._computeCutSize();
+ //检查裁剪框是否在范围内
+ this._cutDetectionPosition();
+ //检查canvas是否在范围内
+ this._canvasDetectionPosition();
+ //初始化完成
+ this.triggerEvent('load', {
+ cropper: this
+ });
+ },
+ methods: {
+ /**
+ * 上传图片
+ */
+ upload() {
+ let that = this;
+ wx.chooseImage({
+ count: 1,
+ sizeType: ['original', 'compressed'],
+ sourceType: ['album', 'camera'],
+ success(res) {
+ const tempFilePaths = res.tempFilePaths[0];
+ that.pushImg(tempFilePaths);
+ wx.showLoading({
+ title: '加载中...'
+ })
+ }
+ })
+ },
+ /**
+ * 返回图片信息
+ */
+ getImg(getCallback) {
+ this._draw(()=>{
+ wx.canvasToTempFilePath({
+ width: this.data.width * this.data.export_scale,
+ height: Math.round(this.data.height * this.data.export_scale),
+ destWidth: this.data.width * this.data.export_scale,
+ destHeight: Math.round(this.data.height) * this.data.export_scale,
+ fileType: 'png',
+ quality: this.data.quality,
+ canvasId: this.data.el,
+ success: (res) => {
+ getCallback({
+ url: res.tempFilePath,
+ width: this.data.width * this.data.export_scale,
+ height: this.data.height * this.data.export_scale
+ });
+ }
+ }, this)
+ });
+ },
+ /**
+ * 设置图片动画
+ * {
+ * x:10,//图片在原有基础上向下移动10px
+ * y:10,//图片在原有基础上向右移动10px
+ * angle:10,//图片在原有基础上旋转10deg
+ * scale:0.5,//图片在原有基础上增加0.5倍
+ * }
+ */
+ setTransform(transform) {
+ if (!transform) return;
+ if (!this.data.disable_rotate){
+ this.setData({
+ angle: transform.angle ? this.data.angle + transform.angle : this.data.angle
+ });
+ }
+ var scale = this.data.scale;
+ if (transform.scale) {
+ scale = this.data.scale + transform.scale;
+ scale = scale <= this.data.min_scale ? this.data.min_scale : scale;
+ scale = scale >= this.data.max_scale ? this.data.max_scale : scale;
+ }
+ this.data.scale = scale;
+ let cutX = this.data.cut_left;
+ let cutY = this.data.cut_top;
+ if (transform.cutX){
+ this.setData({
+ cut_left: cutX + transform.cutX
+ });
+ this.data.watch.cut_left(null, this);
+ }
+ if (transform.cutY){
+ this.setData({
+ cut_top: cutY + transform.cutY
+ });
+ this.data.watch.cut_top(null, this);
+ }
+ this.data._img_top = transform.y ? this.data._img_top + transform.y : this.data._img_top;
+ this.data._img_left = transform.x ? this.data._img_left + transform.x : this.data._img_left;
+ //图像边缘检测,防止截取到空白
+ this._imgMarginDetectionScale();
+ //停止居中裁剪框,继续修改图片位置
+ this._moveDuring();
+ this.setData({
+ scale: this.data.scale,
+ _img_top: this.data._img_top,
+ _img_left: this.data._img_left
+ });
+ !this.data._canvas_overflow && this._draw();
+ //可以居中裁剪框了
+ this._moveStop();//结束操作
+ },
+ /**
+ * 设置剪裁框位置
+ */
+ setCutXY(x,y){
+ this.setData({
+ cut_top: y,
+ cut_left:x
+ });
+ },
+ /**
+ * 设置剪裁框尺寸
+ */
+ setCutSize(w,h){
+ this.setData({
+ width: w,
+ height:h
+ });
+ this._computeCutSize();
+ },
+ /**
+ * 设置剪裁框和图片居中
+ */
+ setCutCenter() {
+ let cut_top = (this.data.info.windowHeight - this.data.height) * 0.5;
+ let cut_left = (this.data.info.windowWidth - this.data.width) * 0.5;
+ //顺序不能变
+ this.setData({
+ _img_top: this.data._img_top - this.data.cut_top + cut_top,
+ cut_top: cut_top, //截取的框上边距
+ _img_left: this.data._img_left - this.data.cut_left + cut_left,
+ cut_left: cut_left, //截取的框左边距
+ });
+ },
+ _setCutCenter(){
+ let cut_top = (this.data.info.windowHeight - this.data.height) * 0.5;
+ let cut_left = (this.data.info.windowWidth - this.data.width) * 0.5;
+ this.setData({
+ cut_top: cut_top, //截取的框上边距
+ cut_left: cut_left, //截取的框左边距
+ });
+ },
+ /**
+ * 设置剪裁框宽度-即将废弃
+ */
+ setWidth(width) {
+ this.setData({
+ width: width
+ });
+ this._computeCutSize();
+ },
+ /**
+ * 设置剪裁框高度-即将废弃
+ */
+ setHeight(height) {
+ this.setData({
+ height: height
+ });
+ this._computeCutSize();
+ },
+ /**
+ * 是否锁定旋转
+ */
+ setDisableRotate(value){
+ this.data.disable_rotate = value;
+ },
+ /**
+ * 是否限制移动
+ */
+ setLimitMove(value){
+ this.setData({
+ _cut_animation: true,
+ limit_move: !!value
+ });
+ },
+ /**
+ * 初始化图片,包括位置、大小、旋转角度
+ */
+ imgReset() {
+ this.setData({
+ scale: 1,
+ angle: 0,
+ _img_top: wx.getSystemInfoSync().windowHeight / 2,
+ _img_left: wx.getSystemInfoSync().windowWidth / 2,
+ })
+ },
+ /**
+ * 加载(更换)图片
+ */
+ pushImg(src) {
+ if (src) {
+ this.setData({
+ imgSrc: src
+ });
+ //发现是手动赋值直接返回,交给watch处理
+ return;
+ }
+
+ // getImageInfo接口传入 src: '' 会导致内存泄漏
+
+ if (!this.data.imgSrc) return;
+ wx.getImageInfo({
+ src: this.data.imgSrc,
+ success: (res) => {
+ this.data.imageObject = res;
+ //图片非本地路径需要换成本地路径
+ if (this.data.imgSrc.search(/tmp/) == -1){
+ this.setData({
+ imgSrc: res.path
+ });
+ }
+ //计算最后图片尺寸
+ this._imgComputeSize();
+ if (this.data.limit_move) {
+ //限制移动,不留空白处理
+ this._imgMarginDetectionScale();
+ }
+ this._draw();
+ },
+ fail: (err) => {
+ this.setData({
+ imgSrc: ''
+ });
+ }
+ });
+ },
+ imageLoad(e){
+ setTimeout(()=>{
+ this.triggerEvent('imageload', this.data.imageObject);
+
+ },1000)
+ },
+ /**
+ * 设置图片放大缩小
+ */
+ setScale(scale) {
+ if (!scale) return;
+ this.setData({
+ scale: scale
+ });
+ !this.data._canvas_overflow && this._draw();
+ },
+ /**
+ * 设置图片旋转角度
+ */
+ setAngle(angle) {
+ if (!angle) return;
+ this.setData({
+ _cut_animation: true,
+ angle: angle
+ });
+ this._imgMarginDetectionScale();
+ !this.data._canvas_overflow && this._draw();
+ },
+ _initCanvas() {
+ //初始化canvas
+ if (!this.data.ctx){
+ this.data.ctx = wx.createCanvasContext("image-cropper", this);
+ }
+ },
+ /**
+ * 根据开发者设置的图片目标尺寸计算实际尺寸
+ */
+ _initImageSize(){
+ //处理宽高特殊单位 %>px
+ if (this.data.INIT_IMGWIDTH && typeof this.data.INIT_IMGWIDTH == "string" && this.data.INIT_IMGWIDTH.indexOf("%") != -1) {
+ let width = this.data.INIT_IMGWIDTH.replace("%", "");
+ this.data.INIT_IMGWIDTH = this.data.img_width = this.data.info.windowWidth / 100 * width;
+ }
+ if (this.data.INIT_IMGHEIGHT && typeof this.data.INIT_IMGHEIGHT == "string" && this.data.INIT_IMGHEIGHT.indexOf("%") != -1) {
+ let height = this.data.img_height.replace("%", "");
+ this.data.INIT_IMGHEIGHT = this.data.img_height = this.data.info.windowHeight / 100 * height;
+ }
+ },
+ /**
+ * 检测剪裁框位置是否在允许的范围内(屏幕内)
+ */
+ _cutDetectionPosition(){
+ let _cutDetectionPositionTop = () => {
+ //检测上边距是否在范围内
+ if (this.data.cut_top < 0) {
+ this.setData({
+ cut_top: 0
+ });
+ }
+ if (this.data.cut_top > this.data.info.windowHeight - this.data.height) {
+ this.setData({
+ cut_top: this.data.info.windowHeight - this.data.height
+ });
+ }
+ }, _cutDetectionPositionLeft = () => {
+ //检测左边距是否在范围内
+ if (this.data.cut_left < 0) {
+ this.setData({
+ cut_left: 0
+ });
+ }
+ if (this.data.cut_left > this.data.info.windowWidth - this.data.width) {
+ this.setData({
+ cut_left: this.data.info.windowWidth - this.data.width
+ });
+ }
+ };
+ //裁剪框坐标处理(如果只写一个参数则另一个默认为0,都不写默认居中)
+ if (this.data.cut_top == null && this.data.cut_left == null) {
+ this._setCutCenter();
+ } else if (this.data.cut_top != null && this.data.cut_left != null){
+ _cutDetectionPositionTop();
+ _cutDetectionPositionLeft();
+ } else if (this.data.cut_top != null && this.data.cut_left == null) {
+ _cutDetectionPositionTop();
+ this.setData({
+ cut_left: (this.data.info.windowWidth - this.data.width) / 2
+ });
+ } else if (this.data.cut_top == null && this.data.cut_left != null) {
+ _cutDetectionPositionLeft();
+ this.setData({
+ cut_top: (this.data.info.windowHeight - this.data.height) / 2
+ });
+ }
+ },
+ /**
+ * 检测canvas位置是否在允许的范围内(屏幕内)如果在屏幕外则不开启实时渲染
+ * 如果只写一个参数则另一个默认为0,都不写默认超出屏幕外
+ */
+ _canvasDetectionPosition(){
+ if(this.data.canvas_top == null && this.data.canvas_left == null) {
+ this.data._canvas_overflow = false;
+ this.setData({
+ canvas_top: -5000,
+ canvas_left: -5000
+ });
+ }else if(this.data.canvas_top != null && this.data.canvas_left != null) {
+ if (this.data.canvas_top < - this.data.height || this.data.canvas_top > this.data.info.windowHeight) {
+ this.data._canvas_overflow = true;
+ } else {
+ this.data._canvas_overflow = false;
+ }
+ }else if(this.data.canvas_top != null && this.data.canvas_left == null) {
+ this.setData({
+ canvas_left: 0
+ });
+ } else if (this.data.canvas_top == null && this.data.canvas_left != null) {
+ this.setData({
+ canvas_top: 0
+ });
+ if (this.data.canvas_left < -this.data.width || this.data.canvas_left > this.data.info.windowWidth) {
+ this.data._canvas_overflow = true;
+ } else {
+ this.data._canvas_overflow = false;
+ }
+ }
+ },
+ /**
+ * 图片边缘检测-位置
+ */
+ _imgMarginDetectionPosition(scale) {
+ if (!this.data.limit_move) return;
+ let left = this.data._img_left;
+ let top = this.data._img_top;
+ var scale = scale || this.data.scale;
+ let img_width = this.data.img_width;
+ let img_height = this.data.img_height;
+ if (this.data.angle / 90 % 2) {
+ img_width = this.data.img_height;
+ img_height = this.data.img_width;
+ }
+ left = this.data.cut_left + img_width * scale / 2 >= left ? left : this.data.cut_left + img_width * scale / 2;
+ left = this.data.cut_left + this.data.width - img_width * scale / 2 <= left ? left : this.data.cut_left + this.data.width - img_width * scale / 2;
+ top = this.data.cut_top + img_height * scale / 2 >= top ? top : this.data.cut_top + img_height * scale / 2;
+ top = this.data.cut_top + this.data.height - img_height * scale / 2 <= top ? top : this.data.cut_top + this.data.height - img_height * scale / 2;
+ this.setData({
+ _img_left: left,
+ _img_top: top,
+ scale: scale
+ })
+ },
+ /**
+ * 图片边缘检测-缩放
+ */
+ _imgMarginDetectionScale(){
+ if (!this.data.limit_move)return;
+ let scale = this.data.scale;
+ let img_width = this.data.img_width;
+ let img_height = this.data.img_height;
+ if (this.data.angle / 90 % 2) {
+ img_width = this.data.img_height;
+ img_height = this.data.img_width;
+ }
+ if (img_width * scale < this.data.width){
+ scale = this.data.width / img_width;
+ }
+ if (img_height * scale < this.data.height) {
+ scale = Math.max(scale,this.data.height / img_height);
+ }
+ this._imgMarginDetectionPosition(scale);
+ },
+ _setData(obj) {
+ let data = {};
+ for (var key in obj) {
+ if (this.data[key] != obj[key]){
+ data[key] = obj[key];
+ }
+ }
+ this.setData(data);
+ return data;
+ },
+ /**
+ * 计算图片尺寸
+ */
+ _imgComputeSize() {
+ let img_width = this.data.img_width,
+ img_height = this.data.img_height;
+ if (!this.data.INIT_IMGHEIGHT && !this.data.INIT_IMGWIDTH) {
+ //默认按图片最小边 = 对应裁剪框尺寸
+ img_width = this.data.imageObject.width;
+ img_height = this.data.imageObject.height;
+ if (img_width / img_height > this.data.width / this.data.height){
+ img_height = this.data.height;
+ img_width = this.data.imageObject.width / this.data.imageObject.height * img_height;
+ }else{
+ img_width = this.data.width;
+ img_height = this.data.imageObject.height / this.data.imageObject.width * img_width;
+ }
+ } else if (this.data.INIT_IMGHEIGHT && !this.data.INIT_IMGWIDTH) {
+ img_width = this.data.imageObject.width / this.data.imageObject.height * this.data.INIT_IMGHEIGHT;
+ } else if (!this.data.INIT_IMGHEIGHT && this.data.INIT_IMGWIDTH) {
+ img_height = this.data.imageObject.height / this.data.imageObject.width * this.data.INIT_IMGWIDTH;
+ }
+ this.setData({
+ img_width: img_width,
+ img_height: img_height
+ });
+ },
+ //改变截取框大小
+ _computeCutSize() {
+ if (this.data.width > this.data.info.windowWidth) {
+ this.setData({
+ width: this.data.info.windowWidth,
+ });
+ } else if (this.data.width + this.data.cut_left > this.data.info.windowWidth){
+ this.setData({
+ cut_left: this.data.info.windowWidth - this.data.cut_left,
+ });
+ };
+ if (this.data.height > this.data.info.windowHeight) {
+ this.setData({
+ height: this.data.info.windowHeight,
+ });
+ } else if (this.data.height + this.data.cut_top > this.data.info.windowHeight){
+ this.setData({
+ cut_top: this.data.info.windowHeight - this.data.cut_top,
+ });
+ }
+ !this.data._canvas_overflow && this._draw();
+ },
+ //开始触摸
+ _start(event) {
+ this.data._flag_img_endtouch = false;
+ if (event.touches.length == 1) {
+ //单指拖动
+ this.data._touch_img_relative[0] = {
+ x: (event.touches[0].clientX - this.data._img_left),
+ y: (event.touches[0].clientY - this.data._img_top)
+ }
+ } else {
+ //双指放大
+ let width = Math.abs(event.touches[0].clientX - event.touches[1].clientX);
+ let height = Math.abs(event.touches[0].clientY - event.touches[1].clientY);
+ this.data._touch_img_relative = [{
+ x: (event.touches[0].clientX - this.data._img_left),
+ y: (event.touches[0].clientY - this.data._img_top)
+ }, {
+ x: (event.touches[1].clientX - this.data._img_left),
+ y: (event.touches[1].clientY - this.data._img_top)
+ }];
+ this.data._hypotenuse_length = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));
+ }
+ !this.data._canvas_overflow && this._draw();
+ },
+ _move_throttle(){
+ //安卓需要节流
+ if (this.data.info.platform =='android'){
+ clearTimeout(this.data.MOVE_THROTTLE);
+ this.data.MOVE_THROTTLE = setTimeout(() => {
+ this.data.MOVE_THROTTLE_FLAG = true;
+ }, 1000 / 40)
+ return this.data.MOVE_THROTTLE_FLAG;
+ }else{
+ this.data.MOVE_THROTTLE_FLAG = true;
+ }
+ },
+ _move(event) {
+ if (this.data._flag_img_endtouch || !this.data.MOVE_THROTTLE_FLAG) return;
+ this.data.MOVE_THROTTLE_FLAG = false;
+ this._move_throttle();
+ this._moveDuring();
+ if (event.touches.length == 1) {
+ //单指拖动
+ let left = (event.touches[0].clientX - this.data._touch_img_relative[0].x),
+ top = (event.touches[0].clientY - this.data._touch_img_relative[0].y);
+ //图像边缘检测,防止截取到空白
+ this.data._img_left = left;
+ this.data._img_top = top;
+ this._imgMarginDetectionPosition();
+ this.setData({
+ _img_left: this.data._img_left,
+ _img_top: this.data._img_top
+ });
+ } else {
+ //双指放大
+ let width = (Math.abs(event.touches[0].clientX - event.touches[1].clientX)),
+ height = (Math.abs(event.touches[0].clientY - event.touches[1].clientY)),
+ hypotenuse = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2)),
+ scale = this.data.scale * (hypotenuse / this.data._hypotenuse_length),
+ current_deg = 0;
+ scale = scale <= this.data.min_scale ? this.data.min_scale : scale;
+ scale = scale >= this.data.max_scale ? this.data.max_scale : scale;
+ //图像边缘检测,防止截取到空白
+ this.data.scale = scale;
+ this._imgMarginDetectionScale();
+ //双指旋转(如果没禁用旋转)
+ let _touch_img_relative = [{
+ x: (event.touches[0].clientX - this.data._img_left),
+ y: (event.touches[0].clientY - this.data._img_top)
+ }, {
+ x: (event.touches[1].clientX - this.data._img_left),
+ y: (event.touches[1].clientY - this.data._img_top)
+ }];
+ if (!this.data.disable_rotate){
+ let first_atan = 180 / Math.PI * Math.atan2(_touch_img_relative[0].y, _touch_img_relative[0].x);
+ let first_atan_old = 180 / Math.PI * Math.atan2(this.data._touch_img_relative[0].y, this.data._touch_img_relative[0].x);
+ let second_atan = 180 / Math.PI * Math.atan2(_touch_img_relative[1].y, _touch_img_relative[1].x);
+ let second_atan_old = 180 / Math.PI * Math.atan2(this.data._touch_img_relative[1].y, this.data._touch_img_relative[1].x);
+ //当前旋转的角度
+ let first_deg = first_atan - first_atan_old,
+ second_deg = second_atan - second_atan_old;
+ if (first_deg != 0) {
+ current_deg = first_deg;
+ } else if (second_deg != 0) {
+ current_deg = second_deg;
+ }
+ }
+ this.data._touch_img_relative = _touch_img_relative;
+ this.data._hypotenuse_length = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));
+ //更新视图
+ this.setData({
+ angle: this.data.angle + current_deg,
+ scale: this.data.scale
+ });
+ }
+ !this.data._canvas_overflow && this._draw();
+ },
+ //结束操作
+ _end(event) {
+ this.data._flag_img_endtouch = true;
+ this._moveStop();
+ },
+ //点击中间剪裁框处理
+ _click(event) {
+ if (!this.data.imgSrc) {
+ //调起上传
+ this.upload();
+ return;
+ }
+ this._draw(()=>{
+ let x = event.detail ? event.detail.x : event.touches[0].clientX;
+ let y = event.detail ? event.detail.y : event.touches[0].clientY;
+ if ((x >= this.data.cut_left && x <= (this.data.cut_left + this.data.width)) && (y >= this.data.cut_top && y <= (this.data.cut_top + this.data.height))) {
+ //生成图片并回调
+ wx.canvasToTempFilePath({
+ width: this.data.width * this.data.export_scale,
+ height: Math.round(this.data.height * this.data.export_scale),
+ destWidth: this.data.width * this.data.export_scale,
+ destHeight: Math.round(this.data.height) * this.data.export_scale,
+ fileType: 'png',
+ quality: this.data.quality,
+ canvasId: this.data.el,
+ success: (res) => {
+ this.triggerEvent('tapcut', {
+ url: res.tempFilePath,
+ width: this.data.width * this.data.export_scale,
+ height: this.data.height * this.data.export_scale
+ });
+ }
+ }, this)
+ }
+ });
+ },
+ //渲染
+ _draw(callback) {
+ if (!this.data.imgSrc) return;
+ let draw = () => {
+ //图片实际大小
+ let img_width = this.data.img_width * this.data.scale * this.data.export_scale;
+ let img_height = this.data.img_height * this.data.scale * this.data.export_scale;
+ //canvas和图片的相对距离
+ var xpos = this.data._img_left - this.data.cut_left;
+ var ypos = this.data._img_top - this.data.cut_top;
+ //旋转画布
+ this.data.ctx.translate(xpos * this.data.export_scale, ypos * this.data.export_scale);
+ this.data.ctx.rotate(this.data.angle * Math.PI / 180);
+ this.data.ctx.drawImage(this.data.imgSrc, -img_width / 2, -img_height / 2, img_width, img_height);
+ this.data.ctx.draw(false, () => {
+ callback && callback();
+ });
+ }
+ if (this.data.ctx.width != this.data.width || this.data.ctx.height != this.data.height){
+ //优化拖动裁剪框,所以必须把宽高设置放在离用户触发渲染最近的地方
+ this.setData({
+ _canvas_height: this.data.height,
+ _canvas_width: this.data.width,
+ },()=>{
+ //延迟40毫秒防止点击过快出现拉伸或裁剪过多
+ setTimeout(() => {
+ draw();
+ }, 40);
+ });
+ }else{
+ draw();
+ }
+ },
+ //裁剪框处理
+ _cutTouchMove(e) {
+ if (this.data._flag_cut_touch && this.data.MOVE_THROTTLE_FLAG) {
+ if (this.data.disable_ratio && (this.data.disable_width || this.data.disable_height)) return;
+ //节流
+ this.data.MOVE_THROTTLE_FLAG = false;
+ this._move_throttle();
+ let width = this.data.width,
+ height = this.data.height,
+ cut_top = this.data.cut_top,
+ cut_left = this.data.cut_left,
+ size_correct = () => {
+ width = width <= this.data.max_width ? width >= this.data.min_width ? width : this.data.min_width : this.data.max_width;
+ height = height <= this.data.max_height ? height >= this.data.min_height ? height : this.data.min_height : this.data.max_height;
+ },
+ size_inspect = () => {
+ if ((width > this.data.max_width || width < this.data.min_width || height > this.data.max_height || height < this.data.min_height) && this.data.disable_ratio) {
+ size_correct();
+ return false;
+ } else {
+ size_correct();
+ return true;
+ }
+ };
+ height = this.data.CUT_START.height + ((this.data.CUT_START.corner > 1 && this.data.CUT_START.corner < 4 ? 1 : -1) * (this.data.CUT_START.y - e.touches[0].clientY));
+ switch (this.data.CUT_START.corner) {
+ case 1:
+ width = this.data.CUT_START.width + this.data.CUT_START.x - e.touches[0].clientX;
+ if (this.data.disable_ratio) {
+ height = width / (this.data.width / this.data.height)
+ }
+ if (!size_inspect()) return;
+ cut_left = this.data.CUT_START.cut_left - (width - this.data.CUT_START.width);
+ break
+ case 2:
+ width = this.data.CUT_START.width + this.data.CUT_START.x - e.touches[0].clientX;
+ if (this.data.disable_ratio) {
+ height = width / (this.data.width / this.data.height)
+ }
+ if (!size_inspect()) return;
+ cut_top = this.data.CUT_START.cut_top - (height - this.data.CUT_START.height)
+ cut_left = this.data.CUT_START.cut_left - (width - this.data.CUT_START.width)
+ break
+ case 3:
+ width = this.data.CUT_START.width - this.data.CUT_START.x + e.touches[0].clientX;
+ if (this.data.disable_ratio) {
+ height = width / (this.data.width / this.data.height)
+ }
+ if (!size_inspect()) return;
+ cut_top = this.data.CUT_START.cut_top - (height - this.data.CUT_START.height);
+ break
+ case 4:
+ width = this.data.CUT_START.width - this.data.CUT_START.x + e.touches[0].clientX;
+ if (this.data.disable_ratio) {
+ height = width / (this.data.width / this.data.height)
+ }
+ if (!size_inspect()) return;
+ break
+ }
+ if (!this.data.disable_width && !this.data.disable_height) {
+ this.setData({
+ width: width,
+ cut_left: cut_left,
+ height: height,
+ cut_top: cut_top,
+ })
+ } else if (!this.data.disable_width) {
+ this.setData({
+ width: width,
+ cut_left: cut_left
+ })
+ } else if (!this.data.disable_height) {
+ this.setData({
+ height: height,
+ cut_top: cut_top
+ })
+ }
+ this._imgMarginDetectionScale();
+ }
+ },
+ _cutTouchStart(e) {
+ let currentX = e.touches[0].clientX;
+ let currentY = e.touches[0].clientY;
+ let cutbox_top4 = this.data.cut_top + this.data.height - 30;
+ let cutbox_bottom4 = this.data.cut_top + this.data.height + 20;
+ let cutbox_left4 = this.data.cut_left + this.data.width - 30;
+ let cutbox_right4 = this.data.cut_left + this.data.width + 30;
+
+ let cutbox_top3 = this.data.cut_top - 30;
+ let cutbox_bottom3 = this.data.cut_top + 30;
+ let cutbox_left3 = this.data.cut_left + this.data.width - 30;
+ let cutbox_right3 = this.data.cut_left + this.data.width + 30;
+
+ let cutbox_top2 = this.data.cut_top - 30;
+ let cutbox_bottom2 = this.data.cut_top + 30;
+ let cutbox_left2 = this.data.cut_left - 30;
+ let cutbox_right2 = this.data.cut_left + 30;
+
+ let cutbox_top1 = this.data.cut_top + this.data.height - 30;
+ let cutbox_bottom1 = this.data.cut_top + this.data.height + 30;
+ let cutbox_left1 = this.data.cut_left - 30;
+ let cutbox_right1 = this.data.cut_left + 30;
+ if (currentX > cutbox_left4 && currentX < cutbox_right4 && currentY > cutbox_top4 && currentY < cutbox_bottom4) {
+ this._moveDuring();
+ this.data._flag_cut_touch = true;
+ this.data._flag_img_endtouch = true;
+ this.data.CUT_START = {
+ width: this.data.width,
+ height: this.data.height,
+ x: currentX,
+ y: currentY,
+ corner: 4
+ }
+ } else if (currentX > cutbox_left3 && currentX < cutbox_right3 && currentY > cutbox_top3 && currentY < cutbox_bottom3) {
+ this._moveDuring();
+ this.data._flag_cut_touch = true;
+ this.data._flag_img_endtouch = true;
+ this.data.CUT_START = {
+ width: this.data.width,
+ height: this.data.height,
+ x: currentX,
+ y: currentY,
+ cut_top: this.data.cut_top,
+ cut_left: this.data.cut_left,
+ corner: 3
+ }
+ } else if (currentX > cutbox_left2 && currentX < cutbox_right2 && currentY > cutbox_top2 && currentY < cutbox_bottom2) {
+ this._moveDuring();
+ this.data._flag_cut_touch = true;
+ this.data._flag_img_endtouch = true;
+ this.data.CUT_START = {
+ width: this.data.width,
+ height: this.data.height,
+ cut_top: this.data.cut_top,
+ cut_left: this.data.cut_left,
+ x: currentX,
+ y: currentY,
+ corner: 2
+ }
+ } else if (currentX > cutbox_left1 && currentX < cutbox_right1 && currentY > cutbox_top1 && currentY < cutbox_bottom1) {
+ this._moveDuring();
+ this.data._flag_cut_touch = true;
+ this.data._flag_img_endtouch = true;
+ this.data.CUT_START = {
+ width: this.data.width,
+ height: this.data.height,
+ cut_top: this.data.cut_top,
+ cut_left: this.data.cut_left,
+ x: currentX,
+ y: currentY,
+ corner: 1
+ }
+ }
+ },
+ _cutTouchEnd(e) {
+ this._moveStop();
+ this.data._flag_cut_touch = false;
+ },
+ //停止移动时需要做的操作
+ _moveStop() {
+ //清空之前的自动居中延迟函数并添加最新的
+ clearTimeout(this.data.TIME_CUT_CENTER);
+ this.data.TIME_CUT_CENTER = setTimeout(() => {
+ //动画启动
+ if (!this.data._cut_animation) {
+ this.setData({
+ _cut_animation: true
+ });
+ }
+ this.setCutCenter();
+ }, 1000)
+ //清空之前的背景变化延迟函数并添加最新的
+ clearTimeout(this.data.TIME_BG);
+ this.data.TIME_BG = setTimeout(() => {
+ if (this.data._flag_bright) {
+ this.setData({
+ _flag_bright: false
+ });
+ }
+ }, 2000)
+ },
+ //移动中
+ _moveDuring() {
+ //清空之前的自动居中延迟函数
+ clearTimeout(this.data.TIME_CUT_CENTER);
+ //清空之前的背景变化延迟函数
+ clearTimeout(this.data.TIME_BG);
+ //高亮背景
+ if (!this.data._flag_bright) {
+ this.setData({
+ _flag_bright: true
+ });
+ }
+ },
+ //监听器
+ _watcher() {
+ Object.keys(this.data).forEach(v => {
+ this._observe(this.data, v, this.data.watch[v]);
+ })
+ },
+ _observe(obj, key, watchFun) {
+ var val = obj[key];
+ Object.defineProperty(obj, key, {
+ configurable: true,
+ enumerable: true,
+ set:(value) => {
+ val = value;
+ watchFun && watchFun(val, this);
+ },
+ get() {
+ if (val && '_img_top|img_left||width|height|min_width|max_width|min_height|max_height|export_scale|cut_top|cut_left|canvas_top|canvas_left|img_width|img_height|scale|angle|min_scale|max_scale'.indexOf(key)!=-1){
+ let ret = parseFloat(parseFloat(val).toFixed(3));
+ if (typeof val == "string" && val.indexOf("%") != -1){
+ ret+='%';
+ }
+ return ret;
+ }
+ return val;
+ }
+ })
+ },
+ _preventTouchMove() {
+ }
+ }
+})
diff --git a/手太欠/物业小程序/物业小程序/commpent/image-cropper-master/image-cropper.json b/手太欠/物业小程序/物业小程序/commpent/image-cropper-master/image-cropper.json
new file mode 100644
index 0000000..32640e0
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/commpent/image-cropper-master/image-cropper.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/commpent/image-cropper-master/image-cropper.wxml b/手太欠/物业小程序/物业小程序/commpent/image-cropper-master/image-cropper.wxml
new file mode 100644
index 0000000..12079bb
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/commpent/image-cropper-master/image-cropper.wxml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/手太欠/物业小程序/物业小程序/commpent/image-cropper-master/image-cropper.wxss b/手太欠/物业小程序/物业小程序/commpent/image-cropper-master/image-cropper.wxss
new file mode 100644
index 0000000..b5ef0c0
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/commpent/image-cropper-master/image-cropper.wxss
@@ -0,0 +1,123 @@
+.image-cropper{
+ background:rgba(14, 13, 13,.8);
+ position: fixed;
+ top:0;
+ left:0;
+ width:100vw;
+ height:100vh;
+ z-index: 1;
+}
+.main{
+ position: absolute;
+ width:100vw;
+ height:100vh;
+ overflow: hidden;
+}
+.content{
+ z-index: 9;
+ position: absolute;
+ width:100vw;
+ height:100vh;
+ display: flex;
+ flex-direction:column;
+ pointer-events:none;
+}
+.bg_black{
+ background: rgba(0, 0, 0, 0.8)!important;
+}
+.bg_gray{
+ background: rgba(0, 0, 0, 0.45);
+ transition-duration: .35s;
+}
+.content>.content_top{
+ pointer-events:none;
+}
+.content>.content_middle{
+ display: flex;
+ height: 200px;
+ width:100%;
+}
+.content_middle_middle{
+ width:200px;
+ box-sizing:border-box;
+ position: relative;
+ transition-duration: .3s;
+}
+.content_middle_right{
+ flex: auto;
+}
+.content>.content_bottom{
+ flex: auto;
+}
+.image-cropper .img{
+ z-index: 2;
+ top:0;
+ left:0;
+ position: absolute;
+ border:none;
+ width:100%;
+ backface-visibility: hidden;
+ transform-origin:center;
+}
+.image-cropper-canvas{
+ position: fixed;
+ background: white;
+ width:150px;
+ height:150px;
+ z-index: 10;
+ top:-200%;
+ pointer-events:none;
+}
+.border{
+ background: white;
+ pointer-events:auto;
+ position:absolute;
+}
+.border-top-left{
+ left:-2.5px;
+ top:-2.5px;
+ height:2.5px;
+ width:33rpx;
+}
+.border-top-right{
+ right:-2.5px;
+ top:-2.5px;
+ height:2.5px;
+ width:33rpx;
+}
+.border-right-top{
+ top:-1px;
+ width:2.5px;
+ height:30rpx;
+ right:-2.5px;
+}
+.border-right-bottom{
+ width:2.5px;
+ height:30rpx;
+ right:-2.5px;
+ bottom:-1px;
+}
+.border-bottom-left{
+ height:2.5px;
+ width:33rpx;
+ bottom:-2.5px;
+ left:-2.5px;
+}
+.border-bottom-right{
+ height:2.5px;
+ width:33rpx;
+ bottom:-2.5px;
+ right:-2.5px;
+}
+.border-left-top{
+ top:-1px;
+ width:2.5px;
+ height:30rpx;
+ left:-2.5px;
+}
+.border-left-bottom{
+ width:2.5px;
+ height:30rpx;
+ left:-2.5px;
+ bottom:-1px;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/commpent/value-panel/delete.svg b/手太欠/物业小程序/物业小程序/commpent/value-panel/delete.svg
new file mode 100644
index 0000000..192513a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/commpent/value-panel/delete.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/commpent/value-panel/value-panel.js b/手太欠/物业小程序/物业小程序/commpent/value-panel/value-panel.js
new file mode 100644
index 0000000..92279ad
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/commpent/value-panel/value-panel.js
@@ -0,0 +1,48 @@
+Component({
+ externalClasses: ['v-panel'],
+ properties: {
+ isShow: {
+ type: Boolean,
+ value: false,
+ },
+ buttonBorder: {
+ type: String,
+ value: "1px solid #ccc"
+ },
+ backgroundColor: {
+ type: String,
+ value: "#fff"
+ },
+ //1为省份键盘,其它为英文键盘
+ keyBoardType: {
+ type: Number,
+ value: 1,
+ }
+ },
+ data: {
+ keyVehicle1: '陕京津沪冀豫云辽',
+ keyVehicle2: '黑湘皖鲁新苏浙赣',
+ keyVehicle3: '鄂桂甘晋蒙吉闽贵',
+ keyVehicle4: '粤川青藏琼宁渝',
+ keyNumber: '1234567890',
+ keyEnInput1: 'QWERTYUIOP',
+ keyEnInput2: 'ASDFGHJKL',
+ keyEnInput3: 'ZXCVBNM',
+ },
+ methods: {
+ vehicleTap: function (event) {
+ let val = event.target.dataset.value;
+ switch (val) {
+ case 'delete':
+ this.triggerEvent('delete');
+ this.triggerEvent('inputchange');
+ break;
+ case 'ok':
+ this.triggerEvent('ok');
+ break;
+ default:
+ this.triggerEvent('inputchange', val);
+ }
+ },
+ }
+});
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/commpent/value-panel/value-panel.json b/手太欠/物业小程序/物业小程序/commpent/value-panel/value-panel.json
new file mode 100644
index 0000000..7e37c03
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/commpent/value-panel/value-panel.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/commpent/value-panel/value-panel.wxml b/手太欠/物业小程序/物业小程序/commpent/value-panel/value-panel.wxml
new file mode 100644
index 0000000..d554e03
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/commpent/value-panel/value-panel.wxml
@@ -0,0 +1,36 @@
+
+
+
+
+ {{item}}
+
+
+ {{item}}
+
+
+ {{item}}
+
+
+ {{item}}
+
+
+
+
+
+ {{item}}
+
+
+ {{item}}
+
+
+ {{item}}
+
+ 删除
+
+
+
+ {{item}}
+ 确定
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/commpent/value-panel/value-panel.wxss b/手太欠/物业小程序/物业小程序/commpent/value-panel/value-panel.wxss
new file mode 100644
index 0000000..88f7891
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/commpent/value-panel/value-panel.wxss
@@ -0,0 +1,71 @@
+:host {
+ width: 100%;
+}
+
+.vehicle-panel {
+ width: 100%;
+ position: fixed;
+ bottom: 0;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ z-index: 1000;
+ padding: 20rpx;
+ box-sizing: border-box;
+}
+
+.vehicle-panel-row {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.vehicle-panel-row-last {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.vehicle-panel-row-button {
+ background-color: #52b96a;
+ color: white;
+ margin: 5rpx;
+ padding: 5rpx;
+ width: 80rpx;
+ height: 80rpx;
+ text-align: center;
+ line-height: 80rpx;
+ border-radius: 10rpx;
+}
+
+.vehicle-panel-row-button-number {
+ background-color: #52b96a;
+}
+
+.vehicle-panel-row-button-last {
+ width: 90rpx;
+ height: 90rpx;
+ line-height: 90rpx;
+}
+
+.vehicle-hover {
+ background-color: #ccc;
+}
+
+.vehicle-panel-row-button-img {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.vehicle-en-button-delete {
+ width: 40rpx;
+ height: 40rpx;
+}
+
+.vehicle-panel-ok {
+ background-color: #00801e;
+ color: #fff;
+ width: 150rpx;
+ height: 80rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/address/address.js b/手太欠/物业小程序/物业小程序/pages/address/address.js
new file mode 100644
index 0000000..94296e2
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/address/address.js
@@ -0,0 +1,100 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ addressArr : [], //地址列表
+ type : '', //来源类型
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ type: options.type
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow () {
+ // 获取地址列表
+ this.addressInfo();
+ },
+
+ /**
+ * 地址列表
+ */
+ addressInfo () {
+ wx.$api.address.index().then(res=>{
+ this.setData({
+ addressArr : res.data
+ })
+ })
+ },
+
+ /**
+ * 删除地址
+ */
+ addressRemove(e){
+ let id = e.target.dataset.id,
+ index = e.target.dataset.index,
+ list = this.data.addressArr
+
+ list.splice(index,1)
+
+ wx.showModal({
+ title : '提示',
+ content : '是否删除地址',
+ success : res=> {
+ if (res.confirm) {
+ wx.showLoading({
+ title: '删除中',
+ })
+ wx.$api.address.remove(id).then(res=>{
+ this.setData({
+ addressArr: list
+ })
+ wx.hideLoading()
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 设为默认地址
+ */
+ addressDefault(e){
+ let id = e.currentTarget.dataset.id
+ wx.$api.address.setdef(id).then(res=>{
+ // 获取地址列表
+ this.addressInfo();
+ })
+ },
+
+ /**
+ * 选择地址
+ */
+ selectAddress(e){
+ let atAdds = this.data.addressArr[e.currentTarget.dataset.index]
+
+ let pages = getCurrentPages(),
+ prepage = pages[pages.length-2]
+
+ prepage.setData({
+ address: atAdds
+ })
+
+ wx.navigateBack()
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/address/address.json b/手太欠/物业小程序/物业小程序/pages/address/address.json
new file mode 100644
index 0000000..31ac116
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/address/address.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "收货地址"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/address/address.wxml b/手太欠/物业小程序/物业小程序/pages/address/address.wxml
new file mode 100644
index 0000000..d28e166
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/address/address.wxml
@@ -0,0 +1,53 @@
+
+
+
+
+ {{item.name}}
+ {{item.mobile}}
+
+
+ {{item.full_address}}
+
+
+
+
+
+ 设为默认地址
+
+
+
+
+ 默认地址
+
+
+
+
+ 选择地址
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+ 还未添加收货地址
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/address/address.wxss b/手太欠/物业小程序/物业小程序/pages/address/address.wxss
new file mode 100644
index 0000000..cabfb32
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/address/address.wxss
@@ -0,0 +1,94 @@
+/* 收货地址 */
+.address {
+ border-bottom: 110rpx solid transparent;
+ margin: 20rpx;
+}
+
+.address-li {
+ color: #696969;
+ margin-bottom: 20rpx;
+}
+
+.address-title, .address-tool, .address-icon, .address-edit {
+ display: flex;
+}
+
+.address-nmae, .address-tips {
+ flex: 1;
+}
+
+.address-text {
+ font-size: 28rpx;
+ margin: 20rpx 0;
+}
+
+.address-tool {
+ position: relative;
+ padding-top: 20rpx;
+ font-size: 28rpx;
+}
+
+/* .address-tool::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ top: 0;
+ background-color: #edecf1;
+ width: 100%;
+ height: 2rpx;
+} */
+
+.address-edit {
+ margin-left: 40rpx;
+}
+
+.address-edit image {
+ width: 32rpx;
+ height: 32rpx;
+ margin: 2rpx 10rpx 0 0;
+}
+
+
+.address-tool-btn{
+ height: 46rpx;
+ line-height: 44rpx;
+ border-radius: 6rpx;
+}
+
+.address-tool-btn.yellow {
+ color: #f57e32;
+}
+
+.address-tool-btn image {
+ width: 34rpx;
+ height: 34rpx;
+ margin-right: 10rpx;
+ vertical-align: -6rpx;
+}
+
+
+/* footer */
+
+.address-footer{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ padding-left: 30rpx;
+ padding-right: 30rpx;
+ background: white;
+ z-index: 9;
+ height: 110rpx;
+}
+
+.address-footer navigator{
+ width: 100%;
+ line-height: 80rpx;
+ height: 80rpx;
+ margin: 15rpx 0;
+ text-align: center;
+ background: #67d053;
+ font-size: 30rpx;
+ color: white;
+ border-radius: 10rpx
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/address_form/address_form.js b/手太欠/物业小程序/物业小程序/pages/address_form/address_form.js
new file mode 100644
index 0000000..36113b1
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/address_form/address_form.js
@@ -0,0 +1,214 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ id : '', //列表id
+ type : '', //类型 Add为新增地址 Compile为修改地址
+ saveArr : [], //省级列表
+ saveIndex : 0, //省级index
+ saveId : '', //省级id
+ cityArr : [], //城市列表
+ cityIndex : 0, //城市index
+ cityId : 0, //城市id
+ regiArr : [], //区域列表
+ regiIndex : 0, //区域index
+ regiId : 0, //区域id
+ defaultVal : '', //是否为默认地址
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ type : options.type,
+ id : options.id
+ })
+ if (options.type == 'Add') {
+ wx.setNavigationBarTitle({
+ title: '添加收货地址'
+ })
+
+ // 获取省级信息列表
+ this.getProvince()
+ } else if (options.type == 'Compile') {
+ wx.setNavigationBarTitle({
+ title: '编辑收货地址'
+ })
+ // 获取地址编辑信息
+ this.getUserAddress(options.id)
+ }
+ },
+
+ /**
+ * 地址编辑信息
+ */
+ getUserAddress(id){
+ wx.$api.address.edit(id).then(res=>{
+ console.log(res)
+ let saveValue = res.data.provinces.findIndex(val=> val.name == res.data.address.province_name),
+ cityValue = res.data.cities.findIndex(val=> val.name == res.data.address.city_name),
+ regiValue = res.data.districts.findIndex(val=> val.name == res.data.address.district_name)
+ this.setData({
+ name : res.data.address.name,
+ mobile : res.data.address.mobile,
+ saveArr : res.data.provinces,
+ cityArr : res.data.cities,
+ regiArr : res.data.districts,
+ saveIndex : saveValue,
+ cityIndex : cityValue,
+ regiIndex : regiValue,
+ saveId : res.data.address.province_id,
+ cityId : res.data.address.city_id,
+ regiId : res.data.address.district_id,
+ address : res.data.address.address,
+ defaultVal : res.data.address.default
+ })
+ })
+ },
+
+ /**
+ * 省级信息列表
+ */
+ getProvince() {
+ wx.$api.address.province().then(res=>{
+ let saveArr = res.data,
+ saveIndex = this.data.saveIndex
+ this.setData({
+ saveArr : saveArr,
+ saveId : saveArr[saveIndex].id,
+ })
+
+ // 获取市级列表
+ this.citylist(saveArr[saveIndex].id)
+ })
+ },
+
+ /**
+ * 省份选择-筛选
+ */
+ areasChange(e) {
+ let save = this.data.saveArr,
+ index = e.detail.value,
+ atsave = save[index].id
+ if (index != this.data.saveIndex) {
+ this.setData({
+ saveIndex : index,
+ saveId : atsave
+ })
+
+ // 获取市级列表
+ this.citylist(atsave)
+ }
+ },
+
+ /**
+ * 市级列表
+ */
+ citylist(id) {
+ wx.$api.address.province({parent_id: id}).then(res=>{
+ let cityArr = res.data
+ this.setData({
+ cityArr : cityArr,
+ cityId : cityArr[0].id,
+ cityIndex : 0
+ })
+ // 获取区域列表
+ this.regilist(cityArr[0].id)
+ })
+ },
+
+ /**
+ * 城市选择-筛选
+ */
+ city(e) {
+ let city = this.data.cityArr,
+ index = e.detail.value,
+ atcity = city[index].id
+ if (index != this.data.saveIndex) {
+ this.setData({
+ cityIndex: index,
+ cityId : atcity
+ })
+
+ // 获取市级列表
+ this.regilist(atcity)
+ }
+ },
+
+ /**
+ * 区域列表
+ */
+ regilist(id) {
+ wx.$api.address.province({parent_id: id}).then(res=>{
+ this.setData({
+ regiArr : res.data,
+ regiId : res.data[0].id,
+ regiIndex : 0
+ })
+ })
+ },
+
+ /**
+ * 区域选择-筛选
+ */
+ regi(e) {
+ let newIndex = e.detail.value
+ this.setData({
+ regiIndex : newIndex,
+ regiId : this.data.regiArr[newIndex].id
+ })
+ },
+
+ /**
+ * 保存信息
+ */
+ siteform(e) {
+ if(this.data.type == 'Compile') {
+ // 编辑地址
+ wx.$api.address.keep(this.data.id,{
+ name : e.detail.value.name,
+ mobile : e.detail.value.mobile,
+ province_id : this.data.saveId,
+ city_id : this.data.cityId,
+ district_id : this.data.regiId,
+ address : e.detail.value.address,
+ is_default : this.data.defaultVal
+ }).then(res=>{
+ wx.navigateBack()
+ })
+ } else {
+ // 创建地址
+ wx.$api.address.add({
+ name : e.detail.value.name,
+ mobile : e.detail.value.mobile,
+ province_id : this.data.saveId,
+ city_id : this.data.cityId,
+ district_id : this.data.regiId,
+ address : e.detail.value.address,
+ is_default : this.data.defaultVal
+ }).then(res=>{
+ wx.navigateBack()
+ })
+ }
+ },
+
+ /**
+ * 设为默认地址
+ */
+ addressDefault(e) {
+ let val = e.detail.value
+ this.setData({
+ defaultVal: val
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/address_form/address_form.json b/手太欠/物业小程序/物业小程序/pages/address_form/address_form.json
new file mode 100644
index 0000000..31ac116
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/address_form/address_form.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "收货地址"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/address_form/address_form.wxml b/手太欠/物业小程序/物业小程序/pages/address_form/address_form.wxml
new file mode 100644
index 0000000..e52240e
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/address_form/address_form.wxml
@@ -0,0 +1,66 @@
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/address_form/address_form.wxss b/手太欠/物业小程序/物业小程序/pages/address_form/address_form.wxss
new file mode 100644
index 0000000..3edabfa
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/address_form/address_form.wxss
@@ -0,0 +1,140 @@
+
+/**
+ * 张慢慢
+ * 物业
+ */
+
+ .site-form{
+ margin: 20rpx;
+ display: block;
+ overflow: hidden;
+}
+
+.site-btn{
+ margin: 40rpx 0;
+}
+
+.site-input{
+ padding: 0 30rpx 0 200rpx;
+ position: relative;
+ line-height: 100rpx;
+ min-height: 100rpx;
+}
+
+.site-input label{
+ position: absolute;
+ left: 30rpx;
+ top: 0;
+}
+
+.site-input input{
+ height: 100rpx;
+}
+
+.site-input::before{
+ position: absolute;
+ bottom: 0;
+ left: 30rpx;
+ right: 0;
+ height: 1rpx;
+ content: "";
+ background: #e4e6f2;
+}
+
+.site-input:last-child::before{
+ display: none;
+}
+
+.tui-picker-detail{
+ width: 33%;
+}
+
+.site-btn button[size="mini"]{
+ width: 100%;
+ background: #52b96a;
+ height: 90rpx;
+ line-height: 90rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+}
+
+/* pickerView */
+
+.pickerView-back{
+ background: rgba(0, 0, 0, .3);
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ display: none;
+}
+
+.pickerView-back.active{
+ display: block;
+}
+
+.pickerView-layer{
+ position: fixed;
+ bottom: -571rpx;
+ left: 0;
+ width: 100%;
+ background: white;
+ transition: all .3s;
+}
+
+.pickerView-layer.active{
+ bottom: 0;
+}
+
+.pickerView-btn{
+ line-height: 90rpx;
+ font-size: 30rpx;
+ padding: 0 30rpx;
+ display: flex;
+ justify-content:space-between;
+}
+
+.pickerView{
+ height: 480rpx;
+ padding: 0 10rpx;
+}
+
+.pickerView-name{
+ line-height: 80rpx;
+ padding: 0 20rpx;
+ text-align: center;
+}
+
+.pickerView-mask{
+ border-top: solid 1rpx #e4e6f2;
+}
+
+.pickerView-indicator{
+ height: 80rpx;
+}
+
+.pickerView-determine{
+ color: #3ec28e;
+}
+
+.pickerView-cancel{
+ color: #747788;
+}
+
+
+
+.site-input image {
+ width: 38rpx;
+ height: 38rpx;
+ position: absolute;
+ right: 20rpx;
+ top: calc(50% - 19rpx);
+}
+
+.site-switch {
+ position: absolute;
+ right: 0;
+ top: 0;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/cart/cart.js b/手太欠/物业小程序/物业小程序/pages/cart/cart.js
new file mode 100644
index 0000000..ac02e36
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/cart/cart.js
@@ -0,0 +1,271 @@
+/*
+ * 张慢慢
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ bagList : [], //商品列表
+ pagesLoding : false, //加载
+ bagOrderLoading : false, //按钮支付状态
+ address : '', //当前收货地址
+ allPrice : '0.00',
+ bagId : '', //选中商品列表
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ isUser : app.globalData.isUser
+ })
+
+ if(!app.globalData.isUser) return
+
+ // 获取购物车列表
+ this.getCards();
+ },
+
+ /**
+ * 购物车列表
+ */
+ getCards(){
+ this.setData({
+ bagOrderLoading : false,
+ allCheckbox : false,
+ bagNumber : 0,
+ allPrice : '0.00'
+ })
+ wx.$api.index.carts().then(res=>{
+ console.log(res)
+ this.setData({
+ bagList : res.data,
+ pagesLoding : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 单选
+ */
+ checkbox(e){
+ let goodsIndex = e.currentTarget.dataset.goods,
+ goodsList = this.data.bagList,
+ checkbox = goodsList[goodsIndex].is_check,
+ sellerLength = 0
+
+ goodsList[goodsIndex].is_check = !checkbox
+
+ for(let i of goodsList){
+ if(i.is_check){
+ sellerLength++
+ if(sellerLength == goodsList.length){
+ this.setData({
+ allCheckbox: true
+ })
+ }
+ }else{
+ if(this.data.allCheckbox){
+ this.setData({
+ allCheckbox: false
+ })
+ }
+ }
+ }
+
+ this.setData({
+ bagList: goodsList
+ })
+
+ this.totalPrice()
+ },
+
+ /**
+ * 全选
+ */
+ allCheckbox(){
+ let bagList = this.data.bagList,
+ allCheckbox = this.data.allCheckbox
+
+ allCheckbox = !allCheckbox
+
+ for(let i of bagList){
+ i.is_check = allCheckbox
+ }
+
+ this.setData({
+ allCheckbox : allCheckbox,
+ bagList : bagList
+ })
+
+ this.totalPrice()
+ },
+
+ /**
+ * 商品数量加减
+ */
+ goodsNumber(e){
+ let goodsIndex = e.currentTarget.dataset.goods,
+ goodsNumber = this.data.bagList[goodsIndex].qty
+
+ if (e.currentTarget.dataset.type == 'plus'){
+ goodsNumber = Number(goodsNumber) + 1
+ }else{
+ if (goodsNumber > 1){
+ goodsNumber = Number(goodsNumber) - 1
+ }else{
+ wx.showToast({
+ title : '商品数量不能小于1',
+ icon : 'none'
+ })
+ }
+ }
+
+ this.setnumNumber(goodsIndex, goodsNumber)
+ },
+ /**
+ * 输入商品数量
+ */
+ goodsNumberInput(e){
+ let goodsIndex = e.currentTarget.dataset.goods,
+ setnumNumber = this.data.bagList[goodsIndex].qty,
+ inputValue = Number()
+
+ if (e.detail.value > 0){
+ inputValue = Number(e.detail.value)
+ }else{
+ wx.showToast({
+ title : '商品数量不能小于1',
+ icon : 'none'
+ })
+ inputValue = Number(setnumNumber)
+ }
+
+ this.setnumNumber(goodsIndex, inputValue)
+ },
+ /**
+ * 更新商品数量
+ */
+ setnumNumber(goodsIndex, setnumNumber){
+ let atGoods = this.data.bagList,
+ rowId = atGoods[goodsIndex].rowid
+
+ wx.$api.index.setnum({
+ rowId : rowId,
+ qty : setnumNumber
+ }).then(res=>{
+ atGoods[goodsIndex].qty = res.status
+ this.setData({
+ bagList: atGoods
+ })
+ this.totalPrice()
+ })
+ },
+
+ /**
+ * 计算价格
+ */
+ totalPrice() {
+ let bagNumber = 0,
+ allPrice = 0,
+ bagIdArr = [],
+ goodsList = this.data.bagList
+
+ for (let i of goodsList){
+ if(i.is_check){
+ bagNumber = bagNumber + Number(i.qty)
+ allPrice = allPrice + (Number(i.qty) * i.price)
+ bagIdArr.push(i.rowid)
+ }
+ }
+
+ this.setData({
+ bagNumber : bagNumber,
+ allPrice : allPrice.toFixed(2),
+ bagId : bagIdArr
+ })
+ },
+
+ /**
+ * 结算
+ */
+ bagOrder(){
+ if(this.data.bagId.length > 0){
+ this.setData({
+ bagOrderLoading : true
+ })
+ var bagIds = JSON.stringify(this.data.bagId)
+ wx.redirectTo({
+ url: '../carts_order/carts_order?bagIds=' + bagIds + '&paytype=bagType'
+ })
+ }else{
+ this.setData({
+ bagOrderLoading : false
+ })
+ if(this.data.bagId.length < 0){
+ wx.showToast({
+ title: '购物车内暂无商品~',
+ icon : 'none'
+ })
+ return
+ }
+ wx.showToast({
+ title: '请选择结算商品~',
+ icon : 'none'
+ })
+ }
+ },
+
+ /**
+ * 菜单
+ */
+ actionSheet(e){
+ let goodIndex = e.currentTarget.dataset.goods,
+ goodRowid = e.currentTarget.dataset.rowid,
+ goodsList = this.data.bagList,
+ allCheckbox = this.data.allCheckbox
+
+ wx.showActionSheet({
+ itemList: ['删除'],
+ success : res=>{
+ if(res.tapIndex == 0){
+ wx.$api.index.cartDel(goodRowid).then(res=>{
+ if(res.status == "SUCCESS"){
+ goodsList.splice([goodIndex],1)
+
+ if (goodsList.length == 0){
+ allCheckbox = false
+ }
+
+ this.setData({
+ allCheckbox : allCheckbox,
+ bagList : goodsList
+ })
+
+ this.totalPrice()
+
+ wx.showToast({
+ title: '已删除'
+ })
+ }
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 刷新
+ */
+ onPullDownRefresh(){
+ this.getCards()
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/cart/cart.json b/手太欠/物业小程序/物业小程序/pages/cart/cart.json
new file mode 100644
index 0000000..ebffbff
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/cart/cart.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "购物车"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/cart/cart.wxml b/手太欠/物业小程序/物业小程序/pages/cart/cart.wxml
new file mode 100644
index 0000000..d345bc5
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/cart/cart.wxml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+ {{item.value}}
+
+ ¥{{item.price}}
+
+ -
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 购物车空空如也,快去首页购物吧~
+
+ 去购物
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/cart/cart.wxss b/手太欠/物业小程序/物业小程序/pages/cart/cart.wxss
new file mode 100644
index 0000000..37339b8
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/cart/cart.wxss
@@ -0,0 +1,329 @@
+
+/* footer */
+
+.bag-footer{
+ border-bottom: solid 1rpx #e5e7f3;
+ border-top: solid 1rpx #e5e7f3;
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ padding: 0 20rpx;
+ height: 100rpx;
+ box-sizing: border-box;
+ display: flex;
+}
+
+.bag-footer,
+.bag-header{
+ background: white;
+ z-index: 9;
+}
+
+.bag-footer-price{
+ font-size: 32rpx;
+ line-height: 100rpx;
+ margin-right: 40rpx;
+}
+
+.bag-footer-price text{
+ color: #cea760;
+ padding-left: 10rpx;
+ font-weight: 600;
+}
+
+.bag-footer-rests{
+ color: #747788;
+ font-size: 26rpx;
+}
+
+.bag-footer-btn[size="mini"]{
+ width: 200rpx;
+ height: 76rpx;
+ line-height: 76rpx;
+ padding: 0;
+ border-radius: 40rpx;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ color: white;
+ font-size: 32rpx;
+ margin-top: 13rpx;
+ font-weight: normal;
+}
+
+.bag-footer-btn::after{
+ border: none;
+}
+
+.bag-footer-select {
+ position: absolute;
+ left: 20rpx;
+ top: 0;
+ line-height: 100rpx;
+}
+
+.bag-footer-right {
+ display: flex;
+ position: absolute;
+ right: 20rpx;
+ top: 0;
+ height: 100rpx;
+}
+
+/* checkbox */
+
+.checkbox{
+ height: 40rpx;
+ width: 40rpx;
+ line-height: 40rpx;
+ display: inline-block;
+ padding-top: 54rpx;
+ padding-right: 30rpx;
+}
+
+.checkbox.sellerCheckbox,
+.checkbox.allCheckbox{
+ padding-top: 0;
+}
+
+.checkbox.allCheckbox{
+ padding-right: 10rpx;
+}
+
+.checkbox checkbox{
+ vertical-align: top;
+ margin-top: -2rpx;
+}
+
+.checkbox checkbox .wx-checkbox-input{
+ background: white;
+ border-radius: 50%;
+ border:solid 3rpx #464854;
+ height: 34rpx;
+ width: 34rpx;
+}
+
+.checkbox checkbox .wx-checkbox-input.wx-checkbox-input-checked{
+ background: #3ec28e;
+ border-color: #3ec28e;
+}
+
+.checkbox checkbox .wx-checkbox-input.wx-checkbox-input-checked:before{
+ color: white;
+ line-height: 34rpx;
+ text-align: center;
+ width: 34rpx;
+ height: 34rpx;
+ font-size:32rpx;
+}
+
+/* 内容区域 */
+
+.bag-content{
+ margin: 20rpx;
+}
+
+.bag-content-mall{
+ padding-bottom: 20rpx;
+}
+
+.bag-content-mall-name{
+ line-height: 80rpx;
+ padding: 0 30rpx;
+ border-bottom: solid 1rpx #e5e7f3;
+}
+
+.bag-content-mall-goods{
+ position: relative;
+ padding: 30rpx 20rpx;
+ box-sizing: border-box;
+}
+
+.mall-good-cover{
+ width: 148rpx;
+ height: 148rpx;
+ background: #f5f6fa;
+ vertical-align: top;
+}
+
+.mall-good-content{
+ position: absolute;
+ top: 30rpx;
+ left: 268rpx;
+ right: 20rpx;
+ z-index: 9;
+}
+
+.mall-good-value{
+ color: #747788;
+ font-size: 26rpx;
+ line-height: 48rpx;
+ width: 80%;
+}
+
+.mall-good-title{
+ line-height: 40rpx;
+ width: 80%;
+}
+
+.mall-good-price{
+ color: #f85d6b;
+ padding-top: 14rpx;
+ line-height: 48rpx;
+ font-weight: bold;
+ padding-right: 200rpx;
+ position: relative;
+}
+
+.mall-good-number{
+ display: flex;
+ position: absolute;
+ right: 0;
+ top: 18rpx;
+ width: 180rpx;
+ font-weight: normal;
+ text-align: center;
+ height: 50rpx;
+}
+
+.mall-good-number-btn{
+ width: 50rpx;
+}
+
+.mall-good-number-input{
+ flex: 1;
+ margin: 0 6rpx;
+ height: 50rpx;
+ line-height: 50rpx;
+}
+
+.mall-good-number-input,
+.mall-good-number-btn{
+ background: #f5f6fa;
+ color: #464854;
+}
+
+.mall-good-more{
+ height: 148rpx;
+ line-height: 148rpx;
+ width: 36rpx;
+ padding: 0 30rpx;
+ position: absolute;
+ top: -10rpx;
+ right: -20rpx;
+ z-index: 99;
+}
+
+.mall-good-more image{
+ width: 100%;
+ vertical-align: middle;
+}
+
+
+
+/* 猜你喜欢 */
+.link-title{
+ padding: 20rpx 25rpx;
+ text-align: center;
+ font-weight: bold;
+ background: linear-gradient(to right, red, #df3e8e);
+ -webkit-background-clip: text;
+ color: transparent;
+ font-size: 32rpx;
+ line-height: 70rpx;
+}
+
+.link-title-icon{
+ width: 36rpx;
+ height: 36rpx;
+ vertical-align: middle;
+ margin-right: 10rpx;
+ margin-bottom: 6rpx;
+}
+
+/* 产品列表 */
+.link-products{
+ padding: 0 15rpx 10rpx 15rpx;
+ display: flex;
+ flex-wrap: wrap;
+}
+
+.link-product{
+ background: white;
+ width: calc(50% - 20rpx);
+ box-sizing: border-box;
+ margin: 0 10rpx 20rpx 10rpx;
+ border-radius: 6rpx;
+ overflow: hidden;
+}
+
+.link-product-img{
+ position: relative;
+ width: 100%;
+ padding-top: 100%;
+ background: #ddd;
+}
+
+.link-product-img-src{
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.link-product-text{
+ padding: 15rpx 20rpx;
+}
+
+.link-product-picer{
+ position: relative;
+ height: 52rpx;
+ line-height: 52rpx;
+ padding-right: 72rpx;
+ color: #f85d6b;
+ font-weight: bold;
+ font-size: 32rpx;
+}
+
+.link-product-card{
+ position: absolute;
+ right: 0;
+ top: 0;
+ background: #f85d6b;
+ width: 28rpx;
+ height: 28rpx;
+ padding: 12rpx;
+ border-radius: 50%;
+ z-index: 1;
+}
+
+.link-product-title{
+ height: 50rpx;
+ line-height: 50rpx;
+ margin-bottom: 15rpx;
+}
+
+/* 购物车为空 */
+.cart-hint {
+ background: #fff;
+ padding: 40rpx 0;
+ text-align: center;
+ color: #767676;
+ font-size: 26rpx;
+}
+
+.cart-hint-img {
+ width: 240rpx;
+ height: 240rpx;
+}
+
+.cart-hint-click {
+ width: 200rpx;
+ height: 70rpx;
+ line-height: 70rpx;
+ text-align: center;
+ border-radius: 80rpx;
+ border: 2rpx solid #fe4b51;
+ color: #fe4b51;
+ margin: 40rpx auto 0;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/carts_order/carts_order.js b/手太欠/物业小程序/物业小程序/pages/carts_order/carts_order.js
new file mode 100644
index 0000000..f08a09e
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/carts_order/carts_order.js
@@ -0,0 +1,311 @@
+/*
+ * 张慢慢
+ * 物业
+ */
+
+const app = getApp()
+
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ statusBarHeight : app.globalData.statusBarHeight,
+ paramsId : '', //商品规格ID
+ ordersId : '', //拼团id
+ qty : '', //商品数量
+ type : '', //商品类型
+ payType : '', //商品下单类型
+ groupId : '', //拼团商品自动成团ID
+ address : '', //当前收货地址
+ paramsInfo : [], //商品信息
+ couponsArr : [], //购物券
+ myDefault : '', //默认优惠券
+ mycouponsVal : 0, //优惠券Vlaue
+ freight : '', //运费
+ price : '', //商品总价格
+ amount : '', //商品最后价格
+ bagIds : [], //购物车集合
+ minus : '', //满减专享-优惠
+ orderInfo : '', //积分详情,
+ full : '', //预售价格
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(e) {
+ console.log(e)
+ this.setData({
+ ordersId : e.ordersid,
+ paramsId : e.params_id,
+ qty : e.qty,
+ type : e.type
+ })
+
+ if(e.paytype == "bagType") {
+ var listData = JSON.parse(e.bagIds)
+ this.setData({
+ payType : e.paytype,
+ bagIds : listData
+ })
+ }
+
+ // 获取商品订单
+ this.orderPay()
+ },
+
+ /**
+ *商品订单
+ */
+ orderPay(){
+ // bagType为购物车下单
+ if(this.data.payType == "bagType"){
+ wx.$api.index.cartMake({
+ rowIds: this.data.bagIds
+ }).then(res=>{
+ let mycoupons = res.data.coupons,
+ mycouponsValue = 0
+ mycoupons.unshift({
+ ended_at : "",
+ price : "",
+ coupon_id : "",
+ started_at : "",
+ title : "不使用优惠"
+ })
+ mycouponsValue = mycoupons.findIndex(value=> value.title == res.data.coupons.title)
+ this.setData({
+ address : res.data.address,
+ paramsInfo : res.data.params,
+ couponsArr : mycoupons,
+ freight : res.data.freight,
+ price : res.data.price,
+ type : res.data.type
+ })
+ })
+ } else if (this.data.type == "integral") {
+ wx.$api.integral.makesure({
+ params_id: this.data.paramsId,
+ qty : this.data.qty
+ }).then(res=>{
+ this.setData({
+ orderInfo : res.data,
+ address : res.data.address,
+ paramsInfo : res.data.params,
+ freight : res.data.freight,
+ price : res.data.price,
+ })
+ })
+ } else {
+ wx.$api.index.makesure({
+ params_id: this.data.paramsId,
+ qty : this.data.qty
+ }).then(res=>{
+ let mycoupons = res.data.coupons,
+ mycouponsValue = 0
+ mycoupons.unshift({
+ ended_at : "",
+ price : "",
+ coupon_id : "",
+ started_at : "",
+ title : "不使用优惠"
+ })
+ mycouponsValue = mycoupons.findIndex(value=> value.title == res.data.coupons.title)
+
+ console.log(res)
+ this.setData({
+ address : res.data.address,
+ paramsInfo : res.data.params,
+ couponsArr : mycoupons,
+ freight : res.data.freight,
+ minus : res.data.minus,
+ price : res.data.price,
+ full : res.data.full
+ })
+ })
+ }
+ },
+
+ /**
+ * 商品券
+ */
+ goodsBind(e){
+ let coupons = this.data.couponsArr,
+ index = e.detail.value,
+ couponsId = coupons[index].coupon_id
+
+ if(couponsId == "") couponsId = "none"
+
+ this.setData({
+ mycouponsVal: index,
+ myDefault : coupons[index],
+ amount : this.data.price - coupons[index].price
+ })
+ },
+
+ /**
+ * 积分兑换
+ */
+ submitIntegral() {
+ let paramsId = this.data.paramsId,
+ qty = this.data.qty,
+ addressId = this.data.address.address_id
+ wx.$api.integral.orderMake({
+ params_id : paramsId,
+ qty : qty,
+ address : addressId
+ }).then(res=>{
+ wx.redirectTo({
+ url: '/pages/integralOrder/integralData'
+ })
+ })
+ },
+
+ /**
+ * 订单支付
+ */
+ submitOrder() {
+ let paramsId = this.data.paramsId,
+ bagIds = this.data.bagIds,
+ qty = this.data.qty,
+ addressId = this.data.address.address_id,
+ couponId = this.data.myDefault.user_coupon_id,
+ type = this.data.type,
+ ordersId = this.data.ordersId
+
+ // 获取code
+ wx.login({
+ success: res=>{
+ if(this.data.payType == 'bagType') {
+ wx.$api.index.cartOrder({
+ rowIds : bagIds,
+ address : addressId,
+ type : type,
+ code : res.code,
+ coupon : couponId || ''
+ }).then(res=>{
+ console.log(res)
+ if(res.data.is_pay == true) {
+ let payInfo = JSON.parse(res.data.payment)
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Process'
+ })
+ }
+ },
+ fail : res=>{
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Process'
+ })
+ }
+ })
+ } else {
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Process'
+ })
+ }
+ })
+ } else {
+ wx.$api.index.orderPay({
+ params_id : paramsId,
+ qty : qty,
+ address : addressId,
+ type : type,
+ code : res.code,
+ coupon : couponId || '',
+ grouporder : ordersId
+ }).then(res=>{
+ if(res.data.is_pay == true) {
+ let payInfo = JSON.parse(res.data.payment)
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ if(this.data.type == 'group') {
+ setTimeout(()=>{
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Failed'
+ })
+ },2000)
+ } else if (this.data.type == 'advance') {
+ setTimeout(()=>{
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Presale'
+ })
+ },2000)
+ } else {
+ setTimeout(()=>{
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Process'
+ })
+ },2000)
+ }
+ }
+ },
+ fail : res=>{
+ if(this.data.type == 'group') {
+ wx.showToast({
+ title: '已取消拼团支付',
+ icon : 'none'
+ })
+ wx.navigateBack({
+ delta: 1,
+ })
+ } else if (this.data.type == 'advance') {
+ setTimeout(()=>{
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Presale'
+ })
+ },2000)
+ } else {
+ setTimeout(()=>{
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Process'
+ })
+ },2000)
+ }
+ }
+ })
+ } else {
+ if(this.data.type == 'group') {
+ wx.showToast({
+ title: '已取消拼团支付',
+ icon : 'none'
+ })
+ wx.navigateBack({
+ delta: 1,
+ })
+ } else if (this.data.type == 'advance') {
+ setTimeout(()=>{
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Presale'
+ })
+ },2000)
+ } else {
+ setTimeout(()=>{
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Process'
+ })
+ },2000)
+ }
+ }
+ })
+ }
+ }
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/carts_order/carts_order.json b/手太欠/物业小程序/物业小程序/pages/carts_order/carts_order.json
new file mode 100644
index 0000000..f7ad23b
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/carts_order/carts_order.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "确认订单"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/carts_order/carts_order.wxml b/手太欠/物业小程序/物业小程序/pages/carts_order/carts_order.wxml
new file mode 100644
index 0000000..e2ffb0a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/carts_order/carts_order.wxml
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+ {{address.name}}{{address.mobile}}
+
+
+ 默认{{address.full_address}}
+
+
+
+ 添加收货地址
+
+
+
+
+
+
+
+ 商品{{index + 1}}
+
+
+
+ {{item.title}}
+ ×{{item.qty}}
+
+ {{item.value}}
+ ¥{{item.price}}
+
+
+
+
+
+
+ 积分兑换
+
+
+
+ {{orderInfo.goods.title}}
+ ×{{orderInfo.qty}}
+
+ {{orderInfo.goods.value}}
+ {{orderInfo.goods.price}} 积分
+
+
+
+
+
+
+
+ 优惠券 请选择优惠券
+
+
+ {{couponsArr[mycouponsVal].title}}
+ -¥{{myDefault.title}}
+
+
+
+
+
+ 商品金额
+ ¥{{minus.goodsPrice}}
+
+
+ 商品金额
+ ¥{{full}}
+
+
+ 商品金额
+ ¥{{orderInfo.cost}}
+
+
+ 商品金额
+ ¥{{price}}
+
+
+ 满减专享
+ -¥{{minus.minus}}
+
+
+ 运费
+ ¥{{freight}}
+
+
+ 实付金额
+ ¥{{mycouponsVal == 0 ? price : amount}}
+
+
+ 消耗积分
+ {{orderInfo.goods.price}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/carts_order/carts_order.wxss b/手太欠/物业小程序/物业小程序/pages/carts_order/carts_order.wxss
new file mode 100644
index 0000000..bb34286
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/carts_order/carts_order.wxss
@@ -0,0 +1,217 @@
+/* 边距 */
+.gauge {
+ border-bottom: 120rpx solid transparent;
+}
+
+/* 收货地址 */
+.order-address{
+ position: relative;
+ margin: 20rpx;
+}
+
+.order-address-back{
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ vertical-align:bottom;
+}
+
+.order-address-name {
+ font-size: 34rpx;
+ margin-bottom: 20rpx;
+ width: calc(100% - 46rpx);
+}
+
+.order-address-name text {
+ padding-left: 30rpx;
+}
+
+.order-address-text{
+ color: #636363;
+ font-size: 30rpx;
+ margin-bottom: 10rpx;
+ width: calc(100% - 46rpx);
+}
+
+.order-address-text text {
+ display: inline-block;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ color: #fff;
+ font-size: 24rpx;
+ border-radius: 50rpx;
+ width: 80rpx;
+ text-align: center;
+ line-height: 40rpx;
+ margin-right: 20rpx;
+}
+
+.arrows-right{
+ position: absolute;
+ height: 32rpx;
+ width: 32rpx;
+ right: 10rpx;
+ top: 60rpx;
+}
+
+.order-add-address {
+ padding: 20rpx 0;
+}
+
+/* 商品列表 */
+
+.order-goods {
+ padding: 0 20rpx;
+ box-sizing: border-box;
+}
+
+.goods-goods-li {
+ overflow: hidden;
+ position: relative;
+ height: 240rpx;
+ margin-bottom: 20rpx;
+}
+
+.goods-img {
+ width: 140rpx;
+ height: 140rpx;
+ position: absolute;
+ border-radius: 10rpx;
+ left: 20rpx;
+ top: 78rpx;
+}
+
+.goods-tips {
+ display: inline-block;
+ position: absolute;
+ top: 0;
+ left: 0;
+ padding: 0 20rpx;
+ height: 48rpx;
+ line-height: 48rpx;
+ font-size: 26rpx;
+ color: #fff;
+ background-color: #67d053;
+ border-radius: 0 0 30rpx 0;
+}
+
+.goods-body {
+ position: absolute;
+ left: 190rpx;
+ right: 20rpx;
+ top: 74rpx;
+ width: calc(100% - 210rpx);
+}
+
+.goods-name {
+ display: flex;
+}
+
+.goods-title {
+ width: 70%;
+ flex: 1;
+ margin-right: 40rpx;
+}
+
+.goods-params {
+ font-size: 26rpx;
+ color: #969696;
+ margin: 10rpx 0 14rpx;
+}
+
+.goods-price {
+ font-size: 32rpx;
+}
+
+.goods-price text {
+ font-size: 24rpx;
+}
+
+/* 订单信息 */
+.order-total {
+ margin: 0 20rpx;
+}
+
+.order-total-li{
+ line-height: 90rpx;
+ display: flex;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+}
+
+.order-total-name {
+ flex: 1;
+ font-size: 28rpx;
+}
+
+.order-total-name text{
+ display: inline-block;
+ border: 2rpx solid #ebb9c5;
+ padding: 0 10rpx;
+ height: 40rpx;
+ line-height: 40rpx;
+ font-size: 24rpx;
+ color: #ce141f;
+ margin-left: 10rpx;
+}
+
+.coupon-picker-icon {
+ width: 40rpx;
+ height: 40rpx;
+ margin: 25rpx 0 25rpx;
+}
+
+.order-total-red text {
+ color: #ce141f;
+}
+
+.coupon-picker-text {
+ color: #999;
+ display: flex;
+ font-size: 28rpx;
+}
+
+
+/* 底部工具栏 */
+
+.order-footer{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ border-top: solid 1rpx #f2f2f2;
+ height: 100rpx;
+ line-height: 100rpx;
+ z-index: 99;
+ background: white;
+}
+
+.order-footer-total{
+ padding-right: calc(30vw + 30rpx);
+ padding-right: -webkit-calc(30vw + 30rpx);
+ padding-left: 30rpx;
+ color: #737787;
+ font-size: 28rpx;
+}
+
+.order-footer-total text{
+ color: #cea760;
+}
+
+.order-footer-total-price{
+ font-weight: bold;
+ font-size: 30rpx;
+}
+
+.order-footer-btn[size="mini"]{
+ width: 26vw;
+ background-color: #52b96a;
+ color: white;
+ border-radius: 40rpx;
+ height: 74rpx;
+ line-height: 74rpx;
+ font-size: 30rpx;
+ position: absolute;
+ top: 15rpx;
+ right: 20rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/categories/categories.js b/手太欠/物业小程序/物业小程序/pages/categories/categories.js
new file mode 100644
index 0000000..b626a69
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/categories/categories.js
@@ -0,0 +1,195 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ isUser : false,
+ positionId : 0, //固定分类id
+ categoryId : 0 , //分类id
+ discountId : '', //优惠活动id
+ type : '', //分类类型
+ stairTitle : '', //商品标题
+ adverts : [], //商品轮播
+ positions : [], //商品分类固定
+ categories : [], //商品分类
+ activesArr : [], //优惠活动列表
+ activesType : 'group', //优惠活动类型
+ page : {}, //分页信息
+ lodingStats : false //加载状态
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad () {
+ if(app.globalData.isUser){
+ this.setData({
+ isUser: app.globalData.isUser
+ })
+ }
+
+ // 拉取分类数据
+ this.category()
+ },
+
+ /**
+ * 商品列表
+ */
+ listInfo(page){
+ if(this.data.type == 'discountId') {
+ wx.$api.index.actives({
+ type : this.data.activesType,
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.stairArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ stairArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ } else {
+ wx.$api.index.goodsList({
+ position_id: this.data.positionId,
+ category_id: this.data.categoryId,
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.stairArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ stairArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ }
+ },
+
+ /**
+ * 获取分类
+ */
+ category(){
+ wx.$api.index.goods().then(res=>{
+ this.setData({
+ adverts : res.data.adverts,
+ categories : res.data.categories,
+ positions : res.data.positions,
+ stairTitle : res.data.positions[0].position,
+ positionId : res.data.positions[0].position_id
+ })
+
+ // 获取商品列表
+ this.listInfo();
+ })
+ },
+
+ /**
+ * 更新分类
+ */
+ stairNav(e){
+ let categoryid = e.currentTarget.dataset.id,
+ index = e.currentTarget.dataset.index,
+ type = e.currentTarget.dataset.type
+
+ this.setData({
+ type : type
+ })
+
+ if(this.data.positionId != categoryid || this.data.categoryId != categoryid){
+ if(type == 'position') {
+ let positionsNew = this.data.positions
+ this.setData({
+ positionId : categoryid,
+ stairTitle : positionsNew[index].position,
+ categoryId : '',
+ discountId : '',
+ })
+ } else if (type == 'category') {
+ let positionsNew = this.data.categories
+ this.setData({
+ categoryId : categoryid,
+ stairTitle : positionsNew[index].title,
+ positionId : '',
+ discountId : '',
+ })
+ } else if (type == 'discountId') {
+ this.setData({
+ discountId : categoryid,
+ categoryId : '',
+ positionId : ''
+ })
+
+
+ }
+ // 获取商品列表
+ this.listInfo();
+ }
+ },
+
+ /**
+ * 优惠活动-更新分类
+ */
+ activesTap(e) {
+ this.setData({
+ activesType : e.currentTarget.dataset.type
+ })
+ // 获取服务列表
+ this.listInfo();
+ },
+
+ /**
+ * 处理未登录时的转跳
+ */
+ userNav(e){
+ let pageUrl = e.currentTarget.dataset.url
+ if(this.data.isUser){
+ wx.navigateTo({
+ url: pageUrl
+ })
+ }else{
+ // 去登录
+ wx.navigateTo({
+ url: "../login/login"
+ })
+ }
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取服务列表
+ this.listInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取服务列表
+ this.listInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/categories/categories.json b/手太欠/物业小程序/物业小程序/pages/categories/categories.json
new file mode 100644
index 0000000..9921702
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/categories/categories.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "社区商城"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/categories/categories.wxml b/手太欠/物业小程序/物业小程序/pages/categories/categories.wxml
new file mode 100644
index 0000000..5f6b38d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/categories/categories.wxml
@@ -0,0 +1,100 @@
+
+
+
+
+ 请输入商品名搜索
+
+
+
+
+
+
+ {{item.position}}
+
+
+ 优惠活动
+
+
+ {{item.title}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 拼团
+
+
+ 秒杀
+
+
+ 满减
+
+
+ 预售
+
+
+ {{stairTitle}}
+
+
+
+
+
+ {{item.title}}
+ {{item.sold}} 件已售
+
+ ¥{{item.price}}
+ ¥{{item.active_price}}
+
+
+
+
+
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+ 暂无商品
+
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/categories/categories.wxss b/手太欠/物业小程序/物业小程序/pages/categories/categories.wxss
new file mode 100644
index 0000000..f93a71b
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/categories/categories.wxss
@@ -0,0 +1,356 @@
+/* 轮播图 */
+.advertsBanner {
+ position: relative;
+ height: 260rpx;
+ width: 100%;
+ border-radius: 10rpx;
+ overflow: hidden;
+}
+
+.adverts-swiper {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.adverts-img {
+ width: 100%;
+ height: 100%;
+ vertical-align: top;
+}
+
+/* 搜索 */
+
+.search {
+ height: 100rpx;
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ z-index: 999;
+ padding: 11rpx 25rpx;
+ box-sizing: border-box;
+ background: white;
+}
+
+.search-nav {
+ background: #f7f7f7;
+ height: 74rpx;
+ line-height: 74rpx;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+ width: 100%;
+ border-radius: 10rpx;
+ color: #b8b7bc;
+ font-size: 28rpx;
+ border: #67d053 2rpx solid;
+}
+
+.search-nav-icon {
+ width: 32rpx;
+ height: 32rpx;
+ vertical-align: middle;
+ margin-bottom: 4rpx;
+}
+
+
+
+/* 一级分类 */
+.stair-nav {
+ position: fixed;
+ top: 120rpx;
+ left: 0;
+ background: white;
+ height: calc(100vh - 100rpx);
+ width: 180rpx;
+ text-align: center;
+ z-index: 9;
+}
+
+::-webkit-scrollbar {
+ width: 0;
+ height: 0;
+ color: transparent;
+ display: none;
+}
+
+.stair-nav-li {
+ line-height: 100rpx;
+ font-size: 30rpx;
+ border-top: solid 1rpx #f5f5f5;
+}
+
+.stair-nav-li.active {
+ background: #f3f3f3;
+ color: #67d053;
+ position: relative;
+}
+
+.stair-nav-li.active::before {
+ position: absolute;
+ content: "";
+ left: 5rpx;
+ top: 35rpx;
+ height: 30rpx;
+ background: #67d053;
+ width: 6rpx;
+ border-radius: 20rpx;
+}
+
+/* 二级分类 */
+
+.level-content {
+ position: fixed;
+ top: 120rpx;
+ bottom: 30rpx;
+ left: 0;
+ right: 20rpx;
+ margin-left: 200rpx;
+ width: calc(100vw - 220rpx);
+ width: -webkit-calc(100vw - 220rpx);
+ height: calc(100vh - 150rpx);
+}
+
+.level-advert {
+ position: relative;
+ border-radius: 14rpx;
+ width: 100%;
+ padding-top: 50%;
+ overflow: hidden;
+ margin-bottom: 20rpx;
+}
+
+.level-advert image {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+}
+
+.levelList-title {
+ background-color: #fff;
+ color: #2c2c2c;
+ width: 100%;
+ padding: 20rpx;
+ box-sizing: border-box;
+ font-weight: 600;
+ font-size: 30rpx;
+}
+
+.level-nav {
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: 20rpx;
+}
+
+.level-nav-li {
+ display: flex;
+ width: 100%;
+ border-radius: 14rpx;
+ background-color: #fff;
+ padding: 20rpx;
+ box-sizing: border-box;
+ margin-bottom: 20rpx;
+}
+
+.level-nav-li:last-child {
+ margin-bottom: 0;
+ padding-bottom: 0;
+}
+
+.level-nav-cont {
+ width: calc(100% - 80rpx);
+ flex: 1;
+ position: relative;
+}
+
+.level-nav-cover {
+ width: 160rpx;
+ height: 160rpx;
+}
+
+.level-nav-text {
+ position: absolute;
+ left: 190rpx;
+ right: 20rpx;
+ top: 0;
+ width: calc(100% - 210rpx);
+}
+
+.level-nav-name {
+ font-size: 28rpx;
+}
+
+.level-nav-number {
+ margin: 10rpx 0 20rpx;
+ font-size: 26rpx;
+ color: #a0a0a0;
+}
+
+.level-nav-price {
+ display: flex;
+ line-height: 54rpx;
+ font-size: 26rpx;
+ color: #9e9e9e;
+}
+
+.level-nav-price-prime {
+ color: #d42e3b;
+ font-size: 30rpx;
+ font-weight: 600;
+ display: flex;
+}
+
+.level-nav-price-prime>text {
+ font-size: 24rpx;
+}
+
+.level-nav-price-cost {
+ margin: 0 0 0 10rpx;
+ text-decoration: line-through;
+ font-size: 24rpx;
+ color: #999;
+ font-weight: normal;
+ padding-top: 4rpx;
+}
+
+.level-nav-car {
+ width: 60rpx;
+ height: 60rpx;
+ border-radius: 50%;
+ background-color: #eafff0;
+ padding: 12rpx;
+ box-sizing: border-box;
+ margin-top: 100rpx;
+}
+
+.level-nav-car image {
+ width: 100%;
+ height: 100%;
+}
+
+/* 漂浮工具框 */
+.level-footer {
+ background-color: #f3f3f3;
+ color: #fff;
+ border-radius: 50rpx 0 0 50rpx;
+ position: fixed;
+ bottom: 80rpx;
+ right: 0;
+ z-index: 1002;
+ height: 90rpx;
+ display: flex;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+}
+
+.level-footer-label {
+ width: 90rpx;
+ height: 90rpx;
+ position: relative;
+}
+
+.level-footer-label::after {
+ position: absolute;
+ content: '';
+ left: 10rpx;
+ top: 25%;
+ height: 50%;
+ width: 2rpx;
+ background-color: #e4e4e4;
+}
+
+.level-footer-label:first-child::after {
+ display: none;
+}
+
+.level-footer-label image {
+ width: 50rpx;
+ height: 50rpx;
+ position: absolute;
+ left: 40rpx;
+ top: 20rpx;
+}
+
+.level-footer-label:first-child image {
+ left: 10rpx;
+}
+
+.level-footer-label text {
+ position: absolute;
+ background: #cc141f;
+ border-radius: 50%;
+ width: 36rpx;
+ height: 36rpx;
+ line-height: 36rpx;
+ top: 10rpx;
+ right: 10rpx;
+ text-align: center;
+ font-size: 24rpx;
+ color: #fff;
+ transform: scale(0.83, 0.83);
+ display: inline-block;
+}
+
+/* 暂无数据 */
+.level-tips {
+ background-color: #fafafa;
+ text-align: center;
+ border-radius: 10rpx;
+ margin-top: 20rpx;
+ font-size: 26rpx;
+ color: #a5a5a5;
+ padding: 40rpx 0;
+ width: 100%;
+}
+
+.level-tips image {
+ width: 160rpx;
+ height: 160rpx;
+ display: block;
+ margin: 0 auto 20rpx;
+}
+
+/* 优惠活动 */
+.discount-tab {
+ background-color: #fff;
+ line-height: 80rpx;
+ height: 80rpx;
+ margin-bottom: 20rpx;
+ border-radius: 10rpx;
+ display: flex;
+ font-size: 30rpx;
+ width: 100%;
+}
+
+.discount-list {
+ border-radius: 10rpx;
+ background-color: #fff;
+ padding: 10rpx 20rpx;
+ box-sizing: border-box;
+}
+
+.discount-tab-item {
+ text-align: center;
+ flex: 4;
+ position: relative;
+}
+
+.discount-tab-item.active{
+ color: #cc141f;
+ font-weight: 600;
+}
+
+.discount-tab-item.active:after {
+ position: absolute;
+ content: '';
+ left: calc(50% - 15rpx);
+ bottom: 0;
+ width: 30rpx;
+ height: 6rpx;
+ border-radius: 100rpx;
+ background: #f36069;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/demo/demo.js b/手太欠/物业小程序/物业小程序/pages/demo/demo.js
new file mode 100644
index 0000000..2434400
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/demo/demo.js
@@ -0,0 +1,45 @@
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ datetimeTo: "2021/01/05 15:05:00", // 秒杀开始时间
+ outTime: "" // 剩下的时间(天时分秒)
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ let timer = setInterval(() => { //注意箭头函数!!
+ this.setData({
+ outTime: getTimeLeft(this.data.datetimeTo) //使用了util.getTimeLeft
+ });
+ if (this.data.outTime == "0天0时0分0秒") {
+ clearInterval(timer);
+ }
+ }, 1000);
+ }
+})
+
+//取倒计时(天时分秒)
+const getTimeLeft = (datetimeTo)=> {
+ // 计算目标与现在时间差(毫秒)
+ let time1 = new Date(datetimeTo).getTime();
+ let time2 = new Date().getTime();
+ let mss = time1 - time2;
+
+ // 将时间差(毫秒)格式为:天时分秒
+ let days = parseInt(mss / (1000 * 60 * 60 * 24));
+ let hours = parseInt((mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
+ let minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60));
+ let seconds = parseInt((mss % (1000 * 60)) / 1000);
+
+ return days + "天" + hours + "时" + minutes + "分" + seconds + "秒"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/demo/demo.json b/手太欠/物业小程序/物业小程序/pages/demo/demo.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/demo/demo.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/demo/demo.wxml b/手太欠/物业小程序/物业小程序/pages/demo/demo.wxml
new file mode 100644
index 0000000..bf167a3
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/demo/demo.wxml
@@ -0,0 +1,6 @@
+
+
+ 倒计时
+ 开始时间:{{datetimeTo}}
+ 距离开始:{{outTime || "-"}}
+
diff --git a/手太欠/物业小程序/物业小程序/pages/demo/demo.wxss b/手太欠/物业小程序/物业小程序/pages/demo/demo.wxss
new file mode 100644
index 0000000..34a6ff2
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/demo/demo.wxss
@@ -0,0 +1 @@
+/* pages/demo/demo.wxss */
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/details/details.js b/手太欠/物业小程序/物业小程序/pages/details/details.js
new file mode 100644
index 0000000..7805f6a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/details/details.js
@@ -0,0 +1,368 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+const outTime = require('../../utils/outTime.js')
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ isUser : false, //用户登录状态
+ activesData : '', //商品详情
+ activesContent : '', //商品简介
+ atAttribute : '', //规格默认
+ paramsArr : [], //规格数组
+ attach : '', //满减数据
+ explain : '', //预售说明
+ couponsArr : '', //优惠券数组
+ goodsSize : false, //普通商品弹出层
+ couponLayShow : false, //优惠券弹出层
+ goodsNumber : 1, //商品数量
+ statusBarHeight : 0, //状态栏高度
+ detailsId : '', //商品id
+ type : '', //商品类型
+ datetimeTo : "", //秒杀开始时间
+ outTime : "", //剩下的时间(天时分秒)
+ deliver : '', //预计什么时间送达
+ people : [], //拼团数组
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ statusBarHeight : app.globalData.statusBarHeight,
+ detailsId : options.id
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow () {
+
+ if(app.globalData.isUser){
+ this.setData({
+ isUser: app.globalData.isUser
+ })
+ }
+
+ // 获取商品详情
+ this.actives();
+ },
+
+ /**
+ * 商品详情
+ */
+ actives() {
+ wx.$api.index.activesInfo(this.data.detailsId).then(res=>{
+ if(res.data.active.type == 'seckill') {
+ // 秒杀倒计时
+ this.setData({
+ seckillTimeTo: res.data.times
+ })
+ outTime.countDown(this)
+ }
+
+ if(res.data.active.type == 'minus') {
+ // 满减数据
+ this.setData({
+ attach : res.data.attach
+ })
+ }
+
+ if(res.data.active.type == 'advance') {
+ // 预售说明
+ this.setData({
+ explain : res.data.explain
+ })
+ }
+
+ if(res.data.active.type == 'group') {
+ // 拼团数组
+ let peopleArr = res.data.groups
+ this.setData({
+ people: peopleArr
+ })
+
+ // 列表倒计时
+ if(res.data.groups){
+ var data = this.data.people
+ //列表获取到数据进行遍历
+ for (var i = 0; i < data.length; i++) {
+ var end_time = data[i].surplus.replace(/-/g, '/')
+ outTime.outTime(this, end_time, i)
+ }
+ }
+ }
+
+ if(this.data.type == 'common' || res.data.active.type == 'common') {
+ let params = res.data.active.params,
+ paramsIndex = params.findIndex(element => (element.params_id == res.data.active.first.params_id))
+ params[paramsIndex].checked = true
+
+ this.setData({
+ atAttribute : res.data.active.first,
+ couponsArr : res.data.coupons,
+ paramsArr : params
+ })
+ } else {
+ let params = res.data.active.activeParams,
+ paramsIndex = params.findIndex(element => (element.active_params_id == res.data.active.activeFirst.active_params_id))
+ params[paramsIndex].checked = true
+ this.setData({
+ atAttribute : res.data.active.activeFirst,
+ paramsArr : params
+ })
+ }
+
+ this.setData({
+ activesData : res.data,
+ type : res.data.active.type,
+ deliver : res.data.deliver_explain,
+ activesContent : res.data.content.replace(/\
{
+ // 获取商品详情
+ this.actives();
+ this.setData({
+ couponLayShow: false
+ })
+ })
+ } else {
+ // 去登录
+ wx.navigateTo({
+ url: "/pages/login/login"
+ })
+ }
+ },
+
+ /**
+ * 产品数量
+ */
+ goodsNumber(e){
+ console.log(e.currentTarget.dataset.type)
+ let type = e.currentTarget.dataset.type,
+ atNumber = this.data.goodsNumber
+
+ if(type == "plus"){
+ if(atNumber < this.data.atAttribute.stock){
+ atNumber++
+ }else{
+ wx.showToast({
+ title: "商品数量不足",
+ icon : "none"
+ })
+ }
+ }else if(type == "remove"){
+ if(atNumber > 1){
+ atNumber--
+ }else{
+ wx.showToast({
+ title: "商品数量不能小于1",
+ icon : "none"
+ })
+ }
+ }
+ this.setData({
+ goodsNumber: atNumber
+ })
+ },
+
+ /**
+ * 输入产品数量
+ */
+ goodsNumberInput(e){
+ let value = e.detail.value,
+ atNumber = this.data.goodsNumber
+
+ if(value > 1){
+ if(value <= this.data.atAttribute.stock){
+ atNumber = value
+ }else{
+ atNumber = this.data.atAttribute.stock
+ wx.showToast({
+ title: "商品数量不足",
+ icon : "none"
+ })
+ }
+ }else{
+ wx.showToast({
+ title: "商品数量不能小于1",
+ icon : "none"
+ })
+ }
+ this.setData({
+ goodsNumber: atNumber
+ })
+ },
+
+ /**
+ * 加入购物车
+ */
+ addBag(){
+ if(app.globalData.isUser){
+ wx.$api.index.addcard({
+ params_id: this.data.atAttribute.params_id,
+ qty : this.data.goodsNumber
+ }).then(res=>{
+ // 获取商品详情
+ this.actives();
+ })
+
+ } else {
+ // 去登录
+ wx.navigateTo({
+ url: "/pages/login/login"
+ })
+ }
+ this.setData({
+ goodsSize : false
+ })
+ },
+
+ /**
+ * 立即购买
+ */
+ buy() {
+ if (app.globalData.isUser){
+ wx.navigateTo({
+ url: '/pages/carts_order/carts_order?params_id=' + this.data.atAttribute.params_id + '&qty=' + this.data.goodsNumber + '&type=' + this.data.type
+ })
+ } else {
+ // 去登录
+ wx.navigateTo({
+ url: "/pages/login/login"
+ })
+ }
+
+ this.setData({
+ goodsSize : false
+ })
+ // wx.navigateTo({
+ // url: '/pages/carts_order/carts_order',
+ // })
+ },
+
+ /**
+ * 处理未登录时的转跳
+ */
+ userNav(e){
+ let pageUrl = e.currentTarget.dataset.url
+ if(this.data.isUser){
+ wx.navigateTo({
+ url: pageUrl
+ })
+ }else{
+ // 去登录
+ wx.navigateTo({
+ url: "../login/login"
+ })
+ }
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+ let parent_id = this.data.info.user_id || ""
+
+ return({
+ title : this.data.info.title,
+ path : '/pages/details/details?id=' + this.data.info.goods_id + '&parent_id=' + parent_id + '&nameList=share' + '&type=' + this.data.type,
+ imageUrl: this.data.info.cover
+ })
+ },
+
+ /**
+ * 回到首页
+ */
+ collectTap() {
+ wx.switchTab({
+ url: '/pages/index/index'
+ })
+ }
+
+})
diff --git a/手太欠/物业小程序/物业小程序/pages/details/details.json b/手太欠/物业小程序/物业小程序/pages/details/details.json
new file mode 100644
index 0000000..f1e5f06
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/details/details.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "商品详情"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/details/details.wxml b/手太欠/物业小程序/物业小程序/pages/details/details.wxml
new file mode 100644
index 0000000..a418587
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/details/details.wxml
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 限时秒杀
+
+ ¥{{activesData.price}}
+ ¥{{activesData.seckillsCommonPrice}}
+
+
+
+
+ 距离结束还剩
+ {{seckillClock}}
+
+
+ {{activesData.title}}
+
+ ¥{{activesData.price}}
+ 满减专享:满{{attach.full}} 元 减{{attach.reduction}}元
+ 商品定金:{{atAttribute.deposit}} 元
+
+
+
+
+
+
+
+ 预售说明
+
+
+
+
+
+ 预售开始{{explain.started_at}}
+
+
+
+
+
+ 支付定金{{explain.active_range}}
+
+
+
+
+
+ 支付尾款{{explain.rest_range}}
+
+
+
+
+
+ 等待发货{{explain.deliver}}
+
+
+
+
+
+
+
+
+ 直接参团 立即拼成
+ 更多参团
+
+
+
+
+ {{item.nickname}}
+
+
+ 还差{{item.count || '-'}}人成团
+ 剩余{{item.endtime}}
+
+
+ 去参团
+
+
+
+
+
+
+
+
+
+ 已选
+ {{atAttribute.value}}
+
+
+
+
+
+ 优惠券
+
+
+ 请选择优惠券
+
+
+
+
+
+
+
+ 配送
+ {{deliver == '' ? '暂无配送信息' : deliver}}
+
+
+
+
+ 库存
+ {{activesData.stock}}件
+
+
+
+
+
+
+
+ 产品详情
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ¥{{atAttribute.price}}
+ 已选:{{atAttribute.value}}
+
+ 规格
+
+
+ {{item.value}}
+
+
+ {{item.value}}
+
+
+
+ 数量
+
+ -
+
+ +
+
+
+
+
+
+
+
+
+
+
+ 优惠券
+
+
+
+
+
+
+
+ ¥{{item.price}}
+
+
+
+
+ {{item.title}}
+
+
+ {{item.ended_at}}到期
+
+
+
+ 已领取
+
+
+ 立即领取
+
+
+ 店铺优惠券
+
+
+
+
+
+
+ 关闭
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/details/details.wxss b/手太欠/物业小程序/物业小程序/pages/details/details.wxss
new file mode 100644
index 0000000..a5bcdfe
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/details/details.wxss
@@ -0,0 +1,839 @@
+/* 产品轮播 */
+
+.banner {
+ overflow: hidden;
+ position: relative;
+ padding-top: 100%;
+}
+
+.swiperCont,
+.swiperImg {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+/* 商品名称 */
+.detailsCont {
+ border-radius: 20rpx 20rpx 0 0;
+ position: relative;
+ top: -10rpx;
+}
+
+.detailsCont-text {
+ height: 100rpx;
+ line-height: 50rpx;
+ font-weight: 600;
+ padding: 10rpx;
+}
+
+
+.detailsCont-price {
+ display: flex;
+ font-size: 26rpx;
+ color: #9e9e9e;
+}
+
+.detailsCont-price-prime {
+ color: #d42e3b;
+ font-size: 48rpx;
+ font-weight: 600;
+}
+
+.detailsCont-price-prime>text {
+ font-size: 28rpx;
+}
+
+.detailsCont-price-cost {
+ margin-left: 20rpx;
+ text-decoration: line-through;
+ padding-top: 20rpx;
+}
+
+.detailsCollect {
+ position: absolute;
+ right: 0;
+ top: 20rpx;
+ background-color: #eafff0;
+ color: #67d053;
+ text-align: center;
+ border-radius: 40rpx 0 0 40rpx;
+ font-size: 28rpx;
+ padding: 4rpx 20rpx;
+ border: none;
+ width: auto !important;
+}
+
+.detailsCollect.active {
+ top: 140rpx;
+}
+
+
+/* 规格 */
+
+.detailsSpecs {
+ margin: 20rpx 0;
+ background: white;
+}
+
+.specs {
+ border-bottom: 2rpx solid #ececec;
+ padding: 25rpx 20rpx;
+ display: flex;
+}
+
+.specs>view {
+ display: flex;
+ width: 100%;
+}
+
+.specsName {
+ flex: 1;
+ display: flex;
+ color: #000;
+ font-size: 28rpx;
+ width: 60% !important;
+}
+
+.specsName text {
+ display: inline-block;
+ width: calc(100% - 160rpx);
+}
+
+.specsTitle {
+ color: #6a6a6a;
+ margin-right: 20rpx;
+ width: 100rpx;
+}
+
+.specsImg {
+ width: 24rpx;
+ height: 24rpx;
+ margin-top: 6rpx;
+}
+
+.specsCoupon {
+ display: flex;
+}
+
+.Coupon-label {
+ color: #cea760;
+ margin-right: 20rpx;
+}
+
+/* 商品详情 */
+
+.detailsBrief {
+ padding: 20rpx;
+ box-sizing: border-box;
+ border-bottom: solid 100rpx #f5f6fa;
+ background: white;
+}
+
+.detailsBrief-title {
+ font-weight: 600;
+ margin-bottom: 20rpx;
+}
+
+.goods-info-footer {
+ border-bottom: solid 40rpx transparent;
+ line-height: 40rpx;
+ text-align: center;
+ font-size: 24rpx;
+ color: #747788;
+ padding-top: 20rpx;
+}
+
+
+/* 秒杀商品名称 */
+.seckillCont {
+ position: relative;
+}
+
+.seckillCont-top {
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ width: 100%;
+ height: 120rpx;
+ color: #fff;
+ display: flex;
+}
+
+.seckillCont-left {
+ width: calc(100% - 240rpx);
+ display: flex;
+ position: relative;
+}
+
+.seckillCont-clock {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ width: 90rpx;
+ height: 90rpx;
+}
+
+.seckillCont-name {
+ background-color: #ba8e3d;
+ color: #fff;
+ width: 80rpx;
+ height: 80rpx;
+ line-height: 30rpx;
+ padding-top: 10rpx;
+ box-sizing: border-box;
+ font-size: 28rpx;
+ text-align: center;
+ margin: 20rpx;
+ box-sizing: border-box;
+ border-radius: 10rpx;
+}
+
+.seckillCont-name text {
+ display: block;
+}
+
+.seckillCont-text {
+ width: 88%;
+ padding: 20rpx;
+ box-sizing: border-box;
+}
+
+.seckillCont-text text {
+ max-height: 100rpx;
+}
+
+.detailslCont-price {
+ padding: 0 20rpx 20rpx;
+}
+
+.detailslCont-number {
+ color: #cc141c;
+ font-size: 34rpx;
+ font-weight: 600;
+}
+
+.detailslCont-const {
+ color: #999;
+ margin-top: 20rpx;
+ font-size: 28rpx;
+}
+
+.detailslCont-const text {
+ color: #c29647;
+}
+
+.seckillCont-price-prime {
+ font-size: 44rpx;
+ padding-top: 12rpx;
+}
+
+.seckillCont-price-prime text {
+ font-size: 24rpx;
+}
+
+.seckillCont-price-cost {
+ font-size: 26rpx;
+ text-decoration: line-through;
+ color: #efd19c;
+}
+
+.seckillCont-right {
+ width: 240rpx;
+ text-align: center;
+ color: #c18c2c;
+ background-color: #ecd7b1;
+ padding: 20rpx 0;
+}
+
+.seckillCont-end {
+ font-size: 24rpx;
+ color: #c59a4b;
+ margin-bottom: 10rpx;
+}
+
+/* 底部菜单栏 */
+
+.footer {
+ background: #fff;
+ height: 100rpx;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ z-index: 99;
+ width: 100%;
+ display: flex;
+ box-shadow: 0 -3rpx 3rpx 0 rgba(0, 0, 0, 0.05);
+}
+
+.footerLeft {
+ display: flex;
+ width: 200rpx;
+}
+
+
+.footerLeft-img {
+ width: 50rpx;
+ height: 50rpx;
+ padding: 25rpx;
+}
+
+.footerLeft-icon {
+ position: relative;
+}
+
+.cartCount {
+ position: absolute;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ border-radius: 50%;
+ width: 36rpx;
+ height: 36rpx;
+ line-height: 36rpx;
+ top: 14rpx;
+ right: 10rpx;
+ text-align: center;
+ font-size: 24rpx;
+ color: #fff;
+ transform: scale(0.83, 0.83);
+}
+
+.footerRight {
+ width: calc(100% - 250rpx);
+ margin: 10rpx 10rpx;
+}
+
+.footerBtn {
+ width: calc(50% - 5rpx);
+ float: left;
+ text-align: center;
+ color: #fff;
+ height: 78rpx;
+ background: #fff;
+ line-height: 78rpx;
+ font-size: 28rpx;
+ border: 2rpx #e5bb6e solid;
+}
+
+.footerCar {
+ border-radius: 10rpx 0 0 10rpx;
+ color: #c4953f;
+}
+
+.footerBuy {
+ border-radius: 0 10rpx 10rpx 0;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ border-color: transparent;
+}
+
+.buyOne {
+ border-radius: 10rpx;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ border-color: transparent;
+}
+
+/* 规格弹出 */
+
+.goods-size-back {
+ position: fixed;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ background: rgba(0, 0, 0, 0.3);
+ z-index: 9;
+ display: none;
+}
+
+.goods-size-back.active {
+ display: block;
+}
+
+.goods-size-content {
+ position: fixed;
+ bottom: -100%;
+ left: 0;
+ width: 100%;
+ background: white;
+ z-index: 100;
+ transition: all 0.2s;
+}
+
+.goods-size-content.active {
+ padding-bottom: 20rpx;
+ bottom: 0;
+}
+
+.goods-size-img {
+ position: absolute;
+ left: 15rpx;
+ top: -40rpx;
+ background: white;
+ width: 200rpx;
+ height: 200rpx;
+ padding: 15rpx;
+ box-sizing: border-box;
+ border-radius: 6rpx;
+}
+
+.goods-size-img image {
+ width: 100%;
+ height: 100%;
+}
+
+.goods-size-info {
+ padding: 30rpx 30rpx 30rpx 230rpx;
+ height: 160rpx;
+ box-sizing: border-box;
+}
+
+.goods-size-info-price {
+ line-height: 60rpx;
+ font-size: 32rpx;
+ color: #e92344;
+ font-weight: bold;
+}
+
+.goods-size-info-price text {
+ font-size: 26rpx;
+}
+
+.goods-size-info-text {
+ line-height: 40rpx;
+ color: #747788;
+ font-size: 26rpx;
+}
+
+.goods-size-specs {
+ padding: 10rpx 30rpx;
+}
+
+.goods-size-title {
+ color: #747788;
+ font-size: 26rpx;
+}
+
+.goods-size-tag {
+ padding: 0 20rpx 20rpx 20rpx;
+}
+
+.goods-size-tag-text {
+ border: #e0e0e0 2rpx solid;
+ color: #999;
+ margin: 20rpx 10rpx 0 10rpx;
+ line-height: 50rpx;
+ padding: 0 15rpx;
+ display: inline-block;
+ font-size: 24rpx;
+ border-radius: 10rpx;
+}
+
+.goods-size-tag-text.active {
+ color: #26b00b;
+ border: #26b00b 2rpx solid;
+}
+
+.goods-size-number {
+ padding: 10rpx 30rpx 80rpx 30rpx;
+ line-height: 60rpx;
+ color: #747788;
+}
+
+.goods-number {
+ display: flex;
+ float: right;
+}
+
+.goods-number-btn {
+ text-align: center;
+ width: 60rpx;
+}
+
+.goods-number-input {
+ text-align: center;
+ width: 80rpx;
+ height: 60rpx;
+ line-height: 60rpx;
+ color: #464854;
+ margin: 0 6rpx;
+}
+
+.goods-number-btn,
+.goods-number-input {
+ background: #f5f6fa;
+}
+
+.goods-size-btn {
+ padding: 0 20rpx;
+ box-sizing: border-box;
+ height: 100rpx;
+ width: calc(100% - 200rpx);
+}
+
+.footer-size-btn {
+ width: 100% !important;
+}
+
+.goods-size-btn view {
+ text-align: center;
+ line-height: 80rpx;
+ font-size: 28rpx;
+ background: #e5bb6e;
+ color: white;
+ width: calc(50% - 4rpx);
+ float: left;
+ border: 2rpx solid #e5bb6e;
+}
+
+.goods-size-btn .bag {
+ background: white;
+ color: #c4953f;
+}
+
+.footOne {
+ width: 100% !important;
+ margin-top: 10rpx;
+ border-radius: 50rpx;
+}
+
+/* 优惠券 */
+
+.coupon-back,
+.share-back {
+ position: fixed;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ background: rgba(0, 0, 0, .4);
+ z-index: 9;
+ display: none;
+}
+
+.coupon-back.active,
+.share-back.active {
+ display: block;
+}
+
+.coupon-content {
+ position: fixed;
+ bottom: -100%;
+ left: 0;
+ width: 100%;
+ background: white;
+ z-index: 100;
+ transition: all 0.2s;
+ height: 50vh;
+
+}
+
+.coupon-content.active {
+ bottom: 0;
+}
+
+.coupon-content {
+ background: white;
+}
+
+.couponTitle {
+ background: #fff;
+ border-bottom: #f6f6f6 2rpx solid;
+ height: 80rpx;
+ line-height: 80rpx;
+ padding: 0 20rpx;
+ text-align: center;
+ color: #c18a2c;
+}
+
+.couponTitle view {
+ color: #898989;
+ font-size: 28rpx;
+}
+
+.couponList {
+ margin: 20rpx 20rpx 40rpx;
+}
+
+.couponListCont {
+ border-radius: 10rpx;
+ box-shadow: 0 0 10rpx rgba(253, 156, 156, 0.2);
+ background: #fff9ee;
+ color: #ca9435;
+ padding: 40rpx 20rpx 20rpx 0;
+ display: flex;
+ margin-bottom: 30rpx;
+ position: relative;
+}
+
+.couponListCont-left {
+ text-align: center;
+ width: 220rpx;
+ font-size: 24rpx;
+ margin-top: 16rpx;
+}
+
+.couponListCont-price {
+ font-size: 40rpx;
+}
+
+.couponListCont-price text {
+ font-size: 24rpx;
+}
+
+.couponListCont-right {
+ width: calc(100% - 300rpx);
+ margin: 0 40rpx;
+ position: relative;
+}
+
+.couponListCont-right::after {
+ position: absolute;
+ left: -40rpx;
+ top: 0;
+ height: 100%;
+ background: #fff3de;
+ width: 2rpx;
+ content: '';
+}
+
+.couponListCont-text {
+ font-size: 26rpx;
+}
+
+.couponListCont-time {
+ font-size: 24rpx;
+ margin-top: 10rpx;
+ display: flex;
+ line-height: 40rpx;
+}
+
+.couponListCont-draw {
+ background: #dcad5e;
+ color: #fff;
+ border-radius: 10rpx;
+ height: 50rpx;
+ line-height: 50rpx;
+ width: 130rpx;
+ text-align: center;
+ font-size: 22rpx;
+ margin-top: 8rpx;
+}
+
+.couponListCont-draw.active {
+ background: #fde6e6;
+ color: #fe9595;
+}
+
+.couponListCont-tips {
+ position: absolute;
+ top: 0;
+ left: 0;
+ background: #ffe5ba;
+ color: #b77200;
+ border-radius: 14rpx 0 14rpx 0;
+ height: 38rpx;
+ line-height: 38rpx;
+ font-size: 24rpx;
+ padding: 0 25rpx;
+}
+
+.couponTable-list {
+ height: 45rpx;
+ line-height: 48rpx;
+ display: flex;
+ font-size: 28rpx;
+ color: #313131;
+ margin-bottom: 20rpx;
+}
+
+.couponTable-list:last-child {
+ margin: 0;
+}
+
+.couponTable-list>view {
+ background: #fff0f0;
+ color: #d42e3b;
+ border-radius: 30rpx;
+ font-size: 24rpx;
+ display: inline-block;
+ margin-right: 20rpx;
+ padding: 0 20rpx;
+ height: 45rpx;
+ line-height: 45rpx;
+}
+
+.couponTable-list>text {
+ font-weight: 600;
+ padding: 0 8rpx;
+}
+
+.couponHide {
+ background: #fff;
+ height: 120px;
+ padding-top: 25rpx;
+}
+
+.couponHide>text {
+ background: #e6e6e6;
+ color: #999;
+ font-weight: 600;
+ height: 80rpx;
+ font-size: 28rpx;
+ line-height: 80rpx;
+ text-align: center;
+ border-radius: 50rpx;
+ display: block;
+ margin: 0 30rpx;
+}
+
+.couponsList-title {
+ font-size: 32rpx;
+ font-weight: 600;
+ margin-bottom: 20rpx;
+}
+
+/* 团购 */
+.groupPlayer {
+ background-color: #fff;
+ margin: 20rpx 0;
+ padding: 20rpx;
+ box-sizing: border-box;
+}
+
+.dts-collage-title {
+ font-size: 26rpx;
+ position: relative;
+ padding-bottom: 20rpx;
+ display: flex;
+ color: #999;
+}
+
+.dts-collage-title::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ bottom: 0;
+ background: #f2f2f2;
+ height: 2rpx;
+ width: 100%;
+}
+
+.dts-collage-title text {
+ font-size: 28rpx;
+ flex: 1;
+ display: inline-block;
+ font-weight: 600;
+ color: #313131;
+}
+
+.dts-collage-li {
+ width: 100%;
+ box-sizing: border-box;
+ display: flex;
+ margin-top: 30rpx;
+}
+
+.dts-collage-img {
+ width: 80rpx;
+ height: 80rpx;
+ border-radius: 50%;
+ margin: 5rpx 20rpx 0 0;
+}
+
+.dts-collage-name {
+ width: calc(100% - 520rpx);
+ line-height: 90rpx;
+}
+
+
+.dts-collage-tem {
+ width: 240rpx;
+ margin: 10rpx 40rpx 0 0;
+ font-size: 24rpx;
+ text-align: right;
+ color: #999;
+}
+
+.dts-collage-tem view {
+ font-size: 28rpx;
+ margin-bottom: 10rpx;
+ color: #000;
+}
+
+.red-color {
+ color: #c29647;
+ padding: 0 5rpx;
+}
+
+.dts-collage-btn {
+ width: 120rpx;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ color: #fff;
+ margin-top: 20rpx;
+ border-radius: 80rpx;
+ height: 54rpx;
+ line-height: 54rpx;
+ text-align: center;
+ font-size: 26rpx;
+}
+
+/* 预售说明 */
+.sale {
+ background-color: #fff;
+ margin: 20rpx 0;
+}
+
+.saleTitle {
+ padding: 20rpx;
+ font-size: 28rpx;
+ font-weight: 600;
+}
+
+.saleList {
+ display: flex;
+ padding: 10rpx 0 20rpx;
+}
+
+.saleLabel {
+ flex: 3;
+ text-align: center;
+ position: relative;
+}
+
+.saleLabel::after {
+ position: absolute;
+ content: '';
+ left: -10%;
+ top: 32rpx;
+ background-color: #bde8b4;
+ width: 20%;
+ height: 2rpx;
+}
+
+.saleLabel:first-child::after {
+ display: none;
+}
+
+.saleList-img {
+ width: 64rpx;
+ height: 64rpx;
+ border-radius: 50%;
+ background-color: #67cf52;
+ padding: 15rpx;
+ box-sizing: border-box;
+ margin: 0 auto 10rpx;
+}
+
+.saleList-img image {
+ width: 100%;
+ height: 100%;
+}
+
+.saleList-title {
+ font-size: 26rpx;
+}
+
+.saleList-title text {
+ display: block;
+ margin-top: 10rpx;
+ font-size: 24rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/dining/dining.js b/手太欠/物业小程序/物业小程序/pages/dining/dining.js
new file mode 100644
index 0000000..4b94457
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/dining/dining.js
@@ -0,0 +1,325 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ isUser : false,
+ bagShow : false, //购物袋弹出
+ goodsSize : false, //规格弹出层
+ sortData : "", //餐饮左侧数据
+ sortIndex : '', //餐饮左侧index
+ stairArr : [], //商品列表
+ categoryId : 0, //分类id
+ page : {}, //分页信息
+ lodingStats : false, //加载状态
+
+ atpParamsIndex : 0, //当前选择规格的下标
+ atGoods : {}, //当前选择的商品
+ cartSizeNumbet : 1, //多规格数量
+ orderCart : [], //加入购物车的商品
+ orderCartNumber: 0, //购物车商品数量
+ toolPrice : 0 //购物车商品总价格
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {},
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow () {
+ if(app.globalData.isUser){
+ this.setData({
+ isUser: app.globalData.isUser
+ })
+ }
+
+ // 获取家政服务分类
+ this.classify();
+ },
+
+ /**
+ * 家政服务列表
+ */
+ listInfo(page){
+ wx.$api.index.foodsList(this.data.sortData.restaurant_id,{
+ category_id: this.data.categoryId,
+ page : page || ''
+ }).then(res=>{
+ console.log(res)
+ let listArr = this.data.stairArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ stairArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 家政服务分类
+ */
+ classify() {
+ wx.$api.index.foodSort().then(res=>{
+ this.setData({
+ sortData : res.data,
+ categoryId : res.data.category[0].category_id,
+ sortIndex : res.data.category[0].title
+ })
+
+ // 获取服务列表
+ this.listInfo();
+ })
+ },
+
+ /**
+ * 更新分类
+ */
+ stairNav(e){
+ let categoryid = e.currentTarget.dataset.id,
+ index = e.currentTarget.dataset.index,
+ categoriesNew = this.data.sortData.category
+ if(this.data.categoryId != categoryid){
+ this.setData({
+ categoryId : categoryid,
+ sortIndex : categoriesNew[index].title
+ })
+ // 获取服务列表
+ this.listInfo();
+ }
+ },
+
+ /**
+ * 商品规格层
+ */
+ removerSizeLay(e) {
+ let atGoods = e.currentTarget.dataset.goods
+ this.setData({
+ goodsSize : !this.data.goodsSize,
+ atGoods : atGoods
+ })
+ },
+
+ /**
+ * 选择规格
+ */
+ selectSize(e){
+ let index = e.currentTarget.dataset.index
+ if(index === this.data.atpParamsIndex) return
+ this.setData({
+ atpParamsIndex: index,
+ cartSizeNumbet: 1, //切换规格时初始化产品数量
+ })
+ },
+
+ /**
+ * 规格数量调整
+ */
+ sizeNumber(e){
+ let cartSizeNub = this.data.cartSizeNumbet,
+ type = e.currentTarget.dataset.type,
+ atSize = this.data.atGoods.params[this.data.atpParamsIndex] //预留有库存检查规格库存
+
+ if(type == "plus"){
+ cartSizeNub++
+ }else if(type == "remove"){
+ if(cartSizeNub > 1){
+ cartSizeNub--
+ }else{
+ wx.showToast({
+ title: "产品数量不能小于1",
+ icon : "none"
+ })
+ }
+ }
+ this.setData({
+ cartSizeNumbet: cartSizeNub
+ })
+ },
+
+ /**
+ * 加入购物车
+ */
+ addCart(e){
+ let goodIndex = e.currentTarget.dataset.goods,
+ type = e.currentTarget.dataset.type,
+ stairArr = this.data.stairArr,
+ cart = this.data.orderCart
+
+ if(type == "plus"){
+ if(stairArr[goodIndex].params.length > 1){
+ this.setData({
+ atGoods : stairArr[goodIndex],
+ goodsSize: true
+ })
+ return
+ }
+ if(stairArr[goodIndex].value){
+ stairArr[goodIndex].value ++
+ cart.find(val => val.foods_id == stairArr[goodIndex].foods_id).value = stairArr[goodIndex].value
+ }else{
+ stairArr[goodIndex].value = 1
+ stairArr[goodIndex].size = stairArr[goodIndex].params[0]
+ cart.push(stairArr[goodIndex])
+ }
+ }else if(type == "remove"){
+ stairArr[goodIndex].value --
+ cart.find(val => val.foods_id == stairArr[goodIndex].foods_id).value = stairArr[goodIndex].value
+ }else if(type == "sizePlus"){
+ let goods = {},
+ adGoods = this.data.atGoods,
+ goodsSize = this.data.atGoods.params[this.data.atpParamsIndex],
+ goodNumber = this.data.cartSizeNumbet
+
+ goods.size = goodsSize
+ goods.value = goodNumber
+
+ if(cart.length >= 1){
+ let cartIndex = cart.findIndex(val => val.size.params_id == goodsSize.params_id)
+ if(cartIndex < 0){
+ cart.push({...goods,...adGoods})
+ }else{
+ cart[cartIndex].value = goodNumber + cart[cartIndex].value
+ }
+ }else{
+ cart.push({...goods,...adGoods})
+ }
+ this.setData({
+ goodsSize : false
+ })
+ }
+ this.setData({
+ orderCart : cart,
+ stairArr : stairArr,
+ cartSizeNumbet : 1 //加入购物车后初始化产品数量
+ })
+
+ this.goodNumber()
+ },
+
+ /**
+ * 计算商品数量和价格
+ */
+ goodNumber(){
+ let cart = this.data.orderCart,
+ number = 0,
+ price = 0
+
+ for(let i in cart){
+ number = number + cart[i].value
+ if(cart[i].size){
+ price = price + cart[i].value * cart[i].size.price
+ }else{
+ price = price + cart[i].value * cart[i].price
+ }
+ }
+
+ this.setData({
+ orderCartNumber: number,
+ toolPrice : price
+ })
+ },
+
+ /**
+ * 购物袋弹出
+ */
+ bagTap() {
+ this.setData({
+ bagShow : !this.data.bagShow
+ })
+ },
+
+ /**
+ * 购物车数量增减
+ */
+ cartNumbet(e){
+ let atCart = this.data.orderCart,
+ type = e.currentTarget.dataset.type,
+ index = e.currentTarget.dataset.index,
+ stairArr = this.data.stairArr
+
+ // 同步列表数量
+ if(atCart.length > 0){
+ let stairArrIndex = stairArr.findIndex(val => atCart[index].foods_id == val.foods_id)
+ if(stairArr[stairArrIndex].value){
+ stairArr[stairArrIndex].value = atCart[index].value
+ }
+ }
+ // 处理数量增减
+ if(type == "plus"){
+ atCart[index].value ++
+ }else if(type == "remove"){
+ if(atCart[index].value <= 1){
+ let stairArrIndex = stairArr.findIndex(val => atCart[index].foods_id == val.foods_id)
+ stairArr[stairArrIndex].value = 0
+ atCart.splice(index, 1)
+ }else{
+ atCart[index].value --
+ }
+ }
+ this.goodNumber()
+ this.setData({
+ orderCart: atCart,
+ stairArr : stairArr
+ })
+ },
+
+ /**
+ * 提交数据信息
+ */
+ submitOrder(){
+ let OrderCart = this.data.orderCart,
+ params = new Array
+
+ if (app.globalData.isUser){
+ OrderCart.map(val=>{
+ params.push({
+ params_id: val.size.params_id,
+ qty : val.value
+ })
+ })
+
+ // 存储参订订单信息
+ wx.setStorageSync('params', params)
+
+ wx.navigateTo({
+ url: '/pages/diningData/diningData?id=' + this.data.sortData.restaurant_id
+ })
+ } else {
+ // 去登录
+ wx.navigateTo({
+ url: "/pages/login/login"
+ })
+ }
+ },
+
+ /**
+ * 处理未登录时的转跳
+ */
+ userNav(e){
+ let pageUrl = e.currentTarget.dataset.url
+ if(this.data.isUser){
+ wx.navigateTo({
+ url: pageUrl
+ })
+ }else{
+ // 去登录
+ wx.navigateTo({
+ url: "../login/login"
+ })
+ }
+ },
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/dining/dining.json b/手太欠/物业小程序/物业小程序/pages/dining/dining.json
new file mode 100644
index 0000000..51fcd0c
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/dining/dining.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "社区餐饮"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/dining/dining.wxml b/手太欠/物业小程序/物业小程序/pages/dining/dining.wxml
new file mode 100644
index 0000000..1f78134
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/dining/dining.wxml
@@ -0,0 +1,110 @@
+
+
+
+ {{sortData.title}}
+
+
+
+ {{sortData.address}}
+ 订桌
+
+
+
+
+
+
+
+ {{item.title}}
+
+
+
+
+
+ {{sortIndex}}
+
+
+
+ {{item.title}}
+
+ ¥{{item.price}}
+
+
+ 选择规格
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ¥{{atGoods.params[atpParamsIndex].price}}
+ 已选:{{atGoods.params[atpParamsIndex].value}}
+
+ 规格
+
+ {{item.value}}
+
+
+ 数量
+
+
+
+
+
+
+
+ 加入购物车
+
+
+
+
+
+
+
+
+
+
+ {{item.title}} - {{item.size.value}}
+ ¥{{item.size ? item.size.price : item.price}}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/dining/dining.wxss b/手太欠/物业小程序/物业小程序/pages/dining/dining.wxss
new file mode 100644
index 0000000..74f32da
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/dining/dining.wxss
@@ -0,0 +1,569 @@
+/* 社区餐厅 */
+page {
+ background-color: #f7f7f7;
+}
+
+.publicBanner {
+ width: 100%;
+ height: 260rpx;
+ position: fixed;
+ left: 0;
+ top: 0;
+}
+
+.publicTap {
+ position: absolute;
+ top: 100rpx;
+ left: 20rpx;
+ right: 20rpx;
+ box-shadow: 2rpx 2rpx 20rpx rgba(0, 0, 0, .2);
+ height: 260rpx;
+}
+
+.public-name {
+ font-weight: 600;
+}
+
+.public-text {
+ display: flex;
+ border-top: 2rpx solid #efefef;
+}
+
+.public-img {
+ width: 90rpx;
+ height: 90rpx;
+ border-radius: 50%;
+ margin: 20rpx 0 20rpx 20rpx;
+}
+
+.public-text .public-text-name {
+ flex: 1;
+ width: calc(100% - 340rpx);
+ display: inline-block;
+ font-size: 30rpx;
+ line-height: 44rpx;
+ padding: 10rpx 20rpx 20rpx;
+ box-sizing: border-box;
+ color: #616161;
+}
+
+.public-text-name .public-address {
+ height: 90rpx;
+}
+
+.public-text-name .public-userNav {
+ display: block;
+ background-image: linear-gradient(to left, #e5bb6e, #cea760);
+ color: #fff;
+ font-size: 24rpx;
+ width: 90rpx;
+ text-align: center;
+ border-radius: 10rpx;
+ margin-top: 10rpx;
+}
+
+/* 一级分类 */
+.stair-nav{
+ position: fixed;
+ top: 390rpx;
+ left: 0;
+ background: white;
+ height: calc(100vh - 490rpx);
+ width: 180rpx;
+ text-align: center;
+ z-index: 9;
+ padding-bottom: 40rpx;
+ box-sizing: border-box;
+}
+
+::-webkit-scrollbar{
+ width: 0;
+ height: 0;
+ color: transparent;
+ display:none;
+}
+
+.stair-nav-li{
+ line-height: 100rpx;
+ font-size: 30rpx;
+ border-top: solid 1rpx #f5f5f5;
+}
+
+.stair-nav-li.active{
+ background: #f5f5f5;
+ color: #67d053;
+ position: relative;
+}
+
+.stair-nav-li.active::before{
+ position: absolute;
+ content: "";
+ left: 0;
+ top: 35rpx;
+ height: 30rpx;
+ background: #67d053;
+ width: 8rpx;
+ border-radius: 20rpx;
+}
+
+/* 二级分类 */
+
+.level-content{
+ position: fixed;
+ top: 390rpx;
+ left: 20rpx;
+ right: 20rpx;
+ margin-left: 180rpx;
+ width: calc(100vw - 220rpx);
+ width: -webkit-calc(100vw - 220rpx);
+ height: calc(100vh - 490rpx);
+ background-color: white;
+ padding-bottom: 40rpx;
+ box-sizing: border-box;
+}
+
+.levelList-title {
+ color: #2c2c2c;
+ padding: 10rpx 10rpx 20rpx;
+ font-weight: 600;
+}
+
+.level-nav{
+ display: flex;
+ flex-wrap:wrap;
+ padding: 20rpx;
+ background: white;
+ box-sizing: border-box;
+ border-radius: 14rpx;
+}
+
+.level-nav-li {
+ display: flex;
+ width: 100%;
+ padding-bottom: 40rpx;
+ margin-top: 40rpx;
+}
+
+.level-nav-li:last-child {
+ margin-bottom: 0;
+ padding-bottom: 20rpx;
+}
+
+.level-nav-cont {
+ width: calc(100% - 80rpx);
+ position: relative;
+}
+
+.level-nav-cover {
+ width: 120rpx;
+ height: 120rpx;
+ border-radius: 10rpx;
+}
+
+.level-nav-text {
+ position: absolute;
+ left: 140rpx;
+ right: 0;
+ top: 0;
+ width: calc(100% - 140rpx);
+}
+
+.level-nav-price {
+ display: flex;
+ font-size: 26rpx;
+ color: #9e9e9e;
+ margin-top: 30rpx;
+}
+
+.level-nav-price-prime {
+ color: #000;
+ font-size: 38rpx;
+ flex: 1;
+}
+
+.level-nav-price-prime>text {
+ font-size: 24rpx;
+}
+
+.mall-good-number {
+ text-align: right;
+ width: 160rpx;
+ overflow: hidden;
+}
+
+.mall-good-number-btn {
+ width: 50rpx;
+ height: 50rpx;
+ float: right;
+}
+
+.mall-good-number-input {
+ float: right;
+ width: 60rpx;
+ height: 50rpx;
+ color: #000;
+ font-size: 32rpx;
+ text-align: center;
+}
+
+.level-nav-car {
+ width: 50rpx;
+ height: 50rpx;
+ text-align: center;
+ font-size: 34rpx;
+ box-sizing: border-box;
+ margin-top: 70rpx;
+}
+
+
+
+
+/* 底部工具栏 */
+
+.level-footer {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ border-top: solid 1rpx #f5f5f5;
+ height: 100rpx;
+ line-height: 100rpx;
+ z-index: 99;
+ background: #f5f5f5;
+}
+
+.level-footer-total{
+ padding-right: calc(30vw + 30rpx);
+ padding-right: -webkit-calc(30vw + 30rpx);
+ padding-left: 30rpx;
+ color: #737787;
+}
+
+.level-footer-total text{
+ color: #000;
+ font-size: 32rpx;
+}
+
+.level-bag {
+ background-color: white;
+ width: 90rpx;
+ height: 90rpx;
+ border-radius: 50%;
+ box-shadow: 0 0 20rpx rgba(0, 0, 0, .2);
+ position: absolute;
+ top: -10rpx;
+ z-index: 99;
+}
+
+.level-bag image {
+ width: 40rpx;
+ height: 40rpx;
+ margin: 25rpx;
+}
+
+.level-footer-total-price{
+ font-weight: bold;
+ font-size: 32rpx;
+ position: absolute;
+ padding-left: 120rpx;
+ color: #000;
+}
+
+.level-bag-number {
+ position: absolute;
+ top: -10rpx;
+ right: -10rpx;
+ background-image: linear-gradient(to left, #e5bb6e, #cea760);
+ width: 45rpx;
+ height: 45rpx;
+ line-height: 45rpx;
+ border-radius: 50%;
+ font-size: 24rpx;
+ transform: scale(.8) ;
+ text-align: center;
+}
+
+.level-bag-number text {
+ color: #fff;
+}
+
+.level-footer-btn[size="mini"]{
+ width: 26vw;
+ background-image: linear-gradient(to right, #e5bb6e, #cea760);
+ color: white;
+ height: 100%;
+ line-height: 100rpx;
+ font-size: 32rpx;
+ position: absolute;
+ top: 0;
+ right: 0;
+ border-radius: 0;
+}
+
+.mall-good-many {
+ background-color: #67d053;
+ color: #fff;
+ width: 140rpx;
+ height: 54rpx;
+ line-height: 54rpx;
+ text-align: center;
+ border-radius: 50rpx;
+ margin-left: 20rpx;
+}
+
+.levelBack {
+ position: fixed;
+ width: 100%;
+ height: 100%;
+ background-color: rgba(0, 0, 0, .5);
+ left: 0;
+ top: 0;
+ z-index: 1008;
+}
+
+.levelEject {
+ position: fixed;
+ background-color: white;
+ left: 15%;
+ right: 15%;
+ top: 100rpx;
+ border-radius: 20rpx;
+ z-index: 1009;
+ padding: 20rpx 0;
+ box-sizing: border-box;
+}
+
+.levelImg {
+ position: relative;
+ padding-top: 50%;
+ width: 50%;
+ margin: 0 auto;
+}
+
+.levelImg image {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+}
+
+
+/* 规格弹出 */
+
+.goods-size-back {
+ position: fixed;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ background: rgba(0, 0, 0, 0.3);
+ z-index: 9;
+ display: none;
+}
+
+.goods-size-back.active {
+ display: block;
+}
+
+.goods-size-content {
+ position: fixed;
+ bottom: -100%;
+ left: 0;
+ width: 100%;
+ background: white;
+ z-index: 100;
+ transition: all 0.2s;
+}
+
+.goods-size-content.active {
+ bottom: 0;
+}
+
+.goods-size-img {
+ position: absolute;
+ left: 15rpx;
+ top: -40rpx;
+ background: white;
+ width: 200rpx;
+ height: 200rpx;
+ padding: 15rpx;
+ box-sizing: border-box;
+ border-radius: 6rpx;
+}
+
+.goods-size-img image {
+ width: 100%;
+ height: 100%;
+}
+
+.goods-size-info {
+ padding: 30rpx 30rpx 30rpx 230rpx;
+ height: 160rpx;
+ box-sizing: border-box;
+}
+
+.goods-size-info-price {
+ line-height: 60rpx;
+ font-size: 32rpx;
+ color: #e92344;
+ font-weight: bold;
+}
+
+.goods-size-info-price text {
+ font-size: 26rpx;
+}
+
+.goods-size-info-text {
+ line-height: 40rpx;
+ color: #747788;
+ font-size: 26rpx;
+}
+
+.goods-size-specs {
+ padding: 10rpx 30rpx;
+}
+
+.goods-size-title {
+ color: #747788;
+ font-size: 26rpx;
+}
+
+.goods-size-tag {
+ padding: 0 20rpx 20rpx 20rpx;
+}
+
+.goods-size-tag-text {
+ background: #f5f6fa;
+ color: #999;
+ margin: 20rpx 10rpx 0 10rpx;
+ line-height: 50rpx;
+ padding: 0 15rpx;
+ display: inline-block;
+ font-size: 24rpx;
+ border-radius: 10rpx;
+}
+
+.goods-size-tag-text.active {
+ color: #fff;
+ background: #db3839;
+}
+
+.goods-size-number {
+ padding: 10rpx 30rpx 80rpx 30rpx;
+ line-height: 60rpx;
+ color: #747788;
+}
+
+.goods-number {
+ float: right;
+}
+
+.goods-number-btn {
+ text-align: center;
+ width: 60rpx;
+}
+
+.goods-number-input {
+ text-align: center;
+ width: 80rpx;
+ height: 60rpx;
+ line-height: 60rpx;
+ color: #464854;
+ margin: 0 6rpx;
+}
+
+.goods-number-btn,
+.goods-number-input {
+ background: #f5f6fa;
+}
+
+.goods-size-btn view {
+ text-align: center;
+ line-height: 80rpx;
+ font-size: 28rpx;
+ color: white;
+ width: 50%;
+ float: left;
+}
+
+.scoreBtn {
+ width: calc(100% - 40rpx);
+ margin: 16rpx 20rpx;
+ text-align: center;
+ color: #fff;
+ height: 70rpx;
+ line-height: 70rpx;
+ font-size: 28rpx;
+ background: #ff2153;
+ border-radius: 100rpx;
+}
+
+/* 购物袋弹出 */
+
+.bagBack {
+ position: fixed;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ background: rgba(0, 0, 0, 0.63);
+ z-index: 94;
+ display: none;
+}
+
+.bagBack.active {
+ display: block;
+}
+
+.bagCont {
+ position: fixed;
+ width: 100%;
+ left: 0;
+ bottom: 100rpx;
+ height: 50vh;
+ overflow-y: scroll;
+ z-index: 97;
+ display: none;
+ background: white;
+}
+
+.bagCont.active {
+ display: block;
+}
+
+.bagList {
+ position: relative;
+ padding: 30rpx;
+ box-sizing: border-box;
+}
+
+.bagList-img {
+ width: 130rpx;
+ height: 130rpx;
+ border-radius: 10rpx;
+}
+
+.bagList-cont {
+ width: calc(100% - 190rpx);
+ position: absolute;
+ left: 190rpx;
+ right: 0;
+ top: 30rpx;
+ display: flex;
+}
+
+.bagList-info {
+ width: calc(100% - 200rpx);
+}
+
+.bagList-number {
+ width: 170rpx;
+ overflow: hidden;
+ margin-top: 80rpx;
+}
+
+.bagList-name {
+ font-size: 36rpx;
+ margin-bottom: 40rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/diningData/diningData.js b/手太欠/物业小程序/物业小程序/pages/diningData/diningData.js
new file mode 100644
index 0000000..c4ac1c6
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/diningData/diningData.js
@@ -0,0 +1,90 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ address : '', //我的地址
+ amount : 0, //总价格
+ paramsArr : [], //商品列表
+ id : '', //订单id
+ params : [], //提交商品列表
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ let params = wx.getStorageSync("params")
+
+ this.setData({
+ id : options.id,
+ params : params
+ })
+
+ // 获取餐厅订单确认
+ this.footOrder(options.id, params)
+ },
+
+ /**
+ * 餐厅订单确认
+ */
+ footOrder(id, params){
+ wx.$api.index.footsSure(id,{params : params}).then(res=>{
+ console.log(res)
+ this.setData({
+ address : res.data.address,
+ amount : res.data.amount,
+ paramsArr : res.data.params
+ })
+ })
+ },
+
+ /**
+ * 餐厅订单提交
+ */
+ submitOrder(){
+ wx.login({
+ success: res=>{
+ wx.$api.index.footsForm(this.data.id,{
+ address: this.data.address.address_id,
+ params : this.data.params,
+ code : res.code
+ }).then(res=>{
+ let payInfo = JSON.parse(res.data.payment),
+ logId = res.data.orderId
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ wx.showToast({
+ title: '支付成功',
+ icon : 'success'
+ })
+ wx.redirectTo({
+ url: '/pages/paySuccess/paySuccess?&dingPay=' + logId + '&dingPrice=' + this.data.amount + '&type=dingType'
+ })
+ }
+ },
+ fail : res=>{
+ wx.redirectTo({
+ url: '/pages/diningOrder/diningOrder?state=UNPAY'
+ })
+ }
+ })
+
+ })
+ }
+ })
+ },
+
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/diningData/diningData.json b/手太欠/物业小程序/物业小程序/pages/diningData/diningData.json
new file mode 100644
index 0000000..b8bde30
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/diningData/diningData.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "餐厅订单确认"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/diningData/diningData.wxml b/手太欠/物业小程序/物业小程序/pages/diningData/diningData.wxml
new file mode 100644
index 0000000..a06b76c
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/diningData/diningData.wxml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+ {{address.name}}{{address.mobile}}
+
+
+ 默认{{address.full_address}}
+
+
+
+
+
+ 添加收货地址
+
+
+
+
+
+
+
+
+
+
+
+ {{item.foods.title}}
+ ×{{item.qty}}
+
+ {{item.value}}
+ ¥{{item.price}}
+
+
+
+
+
+
+
+ 总计
+ ¥{{amount}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/diningData/diningData.wxss b/手太欠/物业小程序/物业小程序/pages/diningData/diningData.wxss
new file mode 100644
index 0000000..abc2539
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/diningData/diningData.wxss
@@ -0,0 +1,199 @@
+/* 边距 */
+.gauge {
+ border-bottom: 120rpx solid transparent;
+}
+
+/* 收货地址 */
+.order-address{
+ position: relative;
+}
+
+.order-address-back{
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ vertical-align:bottom;
+}
+
+.order-address-name {
+ font-size: 34rpx;
+ margin-bottom: 20rpx;
+ width: calc(100% - 46rpx);
+}
+
+.order-address-name text {
+ padding-left: 30rpx;
+}
+
+.order-address-text{
+ color: #636363;
+ font-size: 30rpx;
+ margin-bottom: 10rpx;
+ width: calc(100% - 46rpx);
+}
+
+.order-address-text text {
+ display: inline-block;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ color: #fff;
+ font-size: 24rpx;
+ border-radius: 50rpx;
+ width: 80rpx;
+ text-align: center;
+ line-height: 40rpx;
+ margin-right: 20rpx;
+}
+
+.arrows-right{
+ position: absolute;
+ height: 32rpx;
+ width: 32rpx;
+ right: 10rpx;
+ top: 60rpx;
+}
+
+/* 商品列表 */
+
+.order-goods {
+ padding: 20rpx;
+ box-sizing: border-box;
+ background-color: #fff;
+ margin: 20rpx 0;
+}
+
+.goods-goods-li {
+ position: relative;
+ height: 140rpx;
+ margin-bottom: 30rpx;
+}
+
+.goods-goods-li:last-child {
+ margin-bottom: 0 ;
+}
+
+.goods-img {
+ width: 140rpx;
+ height: 140rpx;
+ position: absolute;
+ border-radius: 10rpx;
+ left: 20rpx;
+ top: 0;
+}
+
+.goods-body {
+ position: absolute;
+ left: 190rpx;
+ right: 20rpx;
+ top: 0;
+ width: calc(100% - 210rpx);
+}
+
+.goods-name {
+ display: flex;
+}
+
+.goods-title {
+ width: 70%;
+ flex: 1;
+ margin-right: 40rpx;
+}
+
+.goods-params {
+ font-size: 26rpx;
+ color: #969696;
+ margin: 10rpx 0 14rpx;
+}
+
+.goods-price {
+ font-size: 36rpx;
+}
+
+.goods-price text {
+ font-size: 24rpx;
+}
+
+/* 订单信息 */
+
+.order-total-li{
+ line-height: 90rpx;
+ display: flex;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+}
+
+.order-total-name {
+ flex: 1;
+ font-size: 28rpx;
+}
+
+.order-total-name text{
+ display: inline-block;
+ border: 2rpx solid #ebb9c5;
+ padding: 0 10rpx;
+ height: 40rpx;
+ line-height: 40rpx;
+ font-size: 24rpx;
+ color: #ce141f;
+ margin-left: 10rpx;
+}
+
+.coupon-picker-icon {
+ width: 40rpx;
+ height: 40rpx;
+ margin: 25rpx 0 25rpx;
+}
+
+.order-total-red text {
+ color: #ce141f;
+}
+
+.coupon-picker-text {
+ color: #999;
+ display: flex;
+}
+
+
+/* 底部工具栏 */
+
+.order-footer{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ border-top: solid 1rpx #f2f2f2;
+ height: 100rpx;
+ line-height: 100rpx;
+ z-index: 99;
+ background: white;
+}
+
+.order-footer-total{
+ padding-right: calc(30vw + 30rpx);
+ padding-right: -webkit-calc(30vw + 30rpx);
+ padding-left: 30rpx;
+ color: #737787;
+ font-size: 28rpx;
+}
+
+.order-footer-total text{
+ color: #cea760;
+}
+
+.order-footer-total-price{
+ font-weight: bold;
+ font-size: 30rpx;
+}
+
+.order-footer-btn[size="mini"]{
+ width: 26vw;
+ background-color: #52b96a;
+ color: white;
+ border-radius: 40rpx;
+ height: 74rpx;
+ line-height: 74rpx;
+ font-size: 30rpx;
+ position: absolute;
+ top: 15rpx;
+ right: 20rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/diningOrder/diningOrder.js b/手太欠/物业小程序/物业小程序/pages/diningOrder/diningOrder.js
new file mode 100644
index 0000000..96c8cc4
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/diningOrder/diningOrder.js
@@ -0,0 +1,91 @@
+/*
+ * 张慢慢
+ * 物业
+ */
+
+const app = getApp()
+
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ takeArr : [], //外送订单数组
+ reserveArr : [], //餐厅预定数组
+ page : {}, //分页信息
+ lodingStats : false, //加载状态
+ state : '',
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ state: options.state || 'ALL'
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ // 获取列表
+ this.dataInfo()
+ },
+
+ /**
+ * 列表
+ */
+ dataInfo(page) {
+ wx.$api.users.takeList({page : page || '',state : this.data.state}).then(res=>{
+ console.log(res.data.data)
+ let listArr = this.data.takeArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ takeArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * tab选择列表
+ */
+ orderTab(e) {
+ this.setData({
+ state : e.currentTarget.dataset.state
+ })
+ // 获取列表
+ this.dataInfo();
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取列表
+ this.dataInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取服务列表
+ this.dataInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/diningOrder/diningOrder.json b/手太欠/物业小程序/物业小程序/pages/diningOrder/diningOrder.json
new file mode 100644
index 0000000..3a7e72d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/diningOrder/diningOrder.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "enablePullDownRefresh" : true,
+ "navigationBarTitleText": "餐厅订单"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/diningOrder/diningOrder.wxml b/手太欠/物业小程序/物业小程序/pages/diningOrder/diningOrder.wxml
new file mode 100644
index 0000000..d0fdcf6
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/diningOrder/diningOrder.wxml
@@ -0,0 +1,64 @@
+
+
+
+ 全部订单
+
+
+ 待付款
+
+
+ 待收货
+
+
+ 已完成
+
+
+
+
+
+
+
+
+
+ {{item.restaurant.title}}
+
+
+ {{item.state}}
+
+
+ {{item.state}}
+
+
+ {{item.state}}
+
+
+
+
+
+
+ {{scrollItem.title}}
+
+
+ 共{{item.sum}}件
+
+
+ {{item.orderid}}
+ 合计:¥{{item.amount}}
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/diningOrder/diningOrder.wxss b/手太欠/物业小程序/物业小程序/pages/diningOrder/diningOrder.wxss
new file mode 100644
index 0000000..8815b24
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/diningOrder/diningOrder.wxss
@@ -0,0 +1,194 @@
+page {
+ background: #f7f7f7;
+}
+
+/* tab */
+.periphery-tab {
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ display: flex;
+ height: 80rpx;
+ line-height: 80rpx;
+ z-index: 9;
+ background: white;
+ border-bottom: 2rpx solid #e1e1e1;
+}
+
+.periphery-tab-item {
+ font-size: 30rpx;
+ width: 50%;
+ text-align: center;
+ color: #000;
+ background: white;
+ display: inline-block;
+ position: relative;
+}
+
+.periphery-tab-item.active {
+ color: #cea760;
+}
+
+.periphery-tab-item::after {
+ position: absolute;
+ content: '';
+ background-color: transparent;
+ width: 50rpx;
+ height: 6rpx;
+ left: calc(50% - 25rpx);
+ bottom: 2rpx;
+ border-radius: 20rpx;
+}
+
+.periphery-tab-item.active::after {
+ background-color: #cea760;
+}
+
+/* 外送列表 */
+.periphery-content {
+ margin: 100rpx 20rpx 0;
+}
+
+.peripheryList {
+ margin: 20rpx 0;
+}
+
+.peripheryList-head {
+ display: flex;
+ line-height: 80rpx;
+}
+
+.peripheryList-name {
+ flex: 1;
+ display: flex;
+}
+
+.peripheryList-img {
+ width: 80rpx;
+ height: 80rpx;
+ border-radius: 50%;
+ margin-right: 20rpx;
+}
+
+.peripheryList-cont {
+ display: flex;
+ height: 230rpx;
+ position: relative;
+ margin-top: 20rpx;
+ padding-bottom: 20rpx;
+}
+
+.peripheryList-cont::after,
+.peripheryList-cont::before {
+ position: absolute;
+ content: '';
+ left: 0;
+ background-color: #f7f7f7;
+ width: 100%;
+ height: 2rpx;
+}
+
+.peripheryList-cont::after{
+ top: 0;
+}
+
+.peripheryList-cont::before{
+ bottom: 0;
+}
+
+.peripheryList-tabs {
+ white-space: nowrap;
+ width: calc(100% - 120rpx);
+ margin: 30rpx 0 10rpx;
+}
+
+.peripheryList-tabs-item {
+ display: inline-block;
+ margin-right: 20rpx;
+ font-size: 28rpx;
+ width: 140rpx;
+ height: 140rpx;
+ text-align: center;
+}
+
+.peripheryList-stor {
+ width: 140rpx;
+ height: 140rpx;
+ border-radius: 10rpx;
+ margin-bottom: 10rpx;
+}
+
+.peripheryList-sum {
+ width: 100rpx;
+ text-align: center;
+ writing-mode:horizontal-tb;
+ padding: 40rpx 20rpx 40rpx 40rpx;
+ box-sizing: border-box;
+ position: relative;
+ margin-left: 20rpx;
+}
+
+.peripheryList-sum::after {
+ position: absolute;
+ width: 2rpx;
+ height: 50%;
+ background-color: #e7e7e7;
+ content: '';
+ left: 0;
+ top: 20%;
+}
+
+.peripheryList-label {
+ display: flex;
+ padding-top: 20rpx;
+ font-size: 28rpx;
+ color: #999;
+}
+
+.peripheryList-time {
+ flex: 1;
+}
+
+.peripheryList-price text {
+ color: #ce141f;
+}
+
+/* 餐厅预定 */
+.leaseList-head {
+ display: flex;
+ line-height: 70rpx;
+}
+
+.leaseList-img {
+ width: 70rpx;
+ height: 70rpx;
+ border-radius: 50%;
+ margin-right: 20rpx;
+}
+
+.leaseList-cont {
+ margin-top: 30rpx;
+}
+
+.leaseList-text {
+ display: flex;
+}
+
+.leaseList-line {
+ padding: 0 30rpx;
+ color: #999;
+}
+
+.leaseList-label>text {
+ padding-left: 20rpx;
+ color: #999;
+}
+
+.peripheryList-state.green {
+ color: #49c066;
+}
+
+.peripheryList-state.red {
+ color: #ce141f;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/diningSee/diningSee.js b/手太欠/物业小程序/物业小程序/pages/diningSee/diningSee.js
new file mode 100644
index 0000000..f0da1b2
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/diningSee/diningSee.js
@@ -0,0 +1,67 @@
+/*
+ * 张慢慢
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ reserveArr : [], //餐厅预定数组
+ page : {}, //分页信息
+ lodingStats : false, //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 获取列表
+ this.dataInfo()
+ },
+
+ /**
+ * 列表
+ */
+ dataInfo(page) {
+ wx.$api.users.serveList({page : page || ''}).then(res=>{
+ console.log(res.data.data)
+ let listArr = this.data.reserveArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ reserveArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取列表
+ this.dataInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取服务列表
+ this.dataInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/diningSee/diningSee.json b/手太欠/物业小程序/物业小程序/pages/diningSee/diningSee.json
new file mode 100644
index 0000000..1336c3a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/diningSee/diningSee.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "餐厅预定",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/diningSee/diningSee.wxml b/手太欠/物业小程序/物业小程序/pages/diningSee/diningSee.wxml
new file mode 100644
index 0000000..6c3e609
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/diningSee/diningSee.wxml
@@ -0,0 +1,30 @@
+
+
+
+
+
+ {{item.restaurant.title}}
+
+
+
+ 人数({{item.number}})
+ /
+ 时间({{item.subscribe_at}})
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/diningSee/diningSee.wxss b/手太欠/物业小程序/物业小程序/pages/diningSee/diningSee.wxss
new file mode 100644
index 0000000..c912c64
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/diningSee/diningSee.wxss
@@ -0,0 +1,43 @@
+
+/* 餐厅预定 */
+.leaseList {
+ margin-top: 20rpx;
+}
+
+.leaseList-head {
+ display: flex;
+ line-height: 70rpx;
+}
+
+.leaseList-img {
+ width: 70rpx;
+ height: 70rpx;
+ border-radius: 50%;
+ margin-right: 20rpx;
+}
+
+.leaseList-cont {
+ margin-top: 30rpx;
+}
+
+.leaseList-text {
+ display: flex;
+}
+
+.leaseList-line {
+ padding: 0 30rpx;
+ color: #999;
+}
+
+.leaseList-label>text {
+ padding-left: 20rpx;
+ color: #999;
+}
+
+.peripheryList-state.green {
+ color: #49c066;
+}
+
+.peripheryList-state.red {
+ color: #ce141f;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/domestic/domestic.js b/手太欠/物业小程序/物业小程序/pages/domestic/domestic.js
new file mode 100644
index 0000000..3665991
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/domestic/domestic.js
@@ -0,0 +1,108 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ advertsArr : [], //家政服务banner
+ categoriesArr : [], //家政服务分类
+ categoriesIndex: '', //家政服务分类index
+ stairArr : [], //家政列表
+ categoryId : 0, //分类id
+ page : {}, //分页信息
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 获取家政服务分类
+ this.classify();
+ },
+
+ /**
+ * 家政服务列表
+ */
+ listInfo(page){
+ wx.$api.index.servicelist({
+ category_id: this.data.categoryId,
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.stairArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ stairArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 家政服务分类
+ */
+ classify() {
+ wx.$api.index.serviceNav().then(res=>{
+ this.setData({
+ advertsArr : res.data.adverts,
+ categoriesArr : res.data.categories,
+ categoryId : res.data.categories[0].category_id,
+ categoriesIndex: res.data.categories[0].title
+ })
+
+ // 获取服务列表
+ this.listInfo();
+ })
+ },
+
+ /**
+ * 更新分类
+ */
+ stairNav(e){
+ let categoryid = e.currentTarget.dataset.id,
+ index = e.currentTarget.dataset.index,
+ categoriesNew = this.data.categoriesArr
+ if(this.data.categoryId != categoryid){
+ this.setData({
+ categoryId : categoryid,
+ categoriesIndex : categoriesNew[index].title
+ })
+
+ // 获取服务列表
+ this.listInfo();
+ }
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取服务列表
+ this.listInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取服务列表
+ this.listInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/domestic/domestic.json b/手太欠/物业小程序/物业小程序/pages/domestic/domestic.json
new file mode 100644
index 0000000..a71a889
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/domestic/domestic.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "家政服务"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/domestic/domestic.wxml b/手太欠/物业小程序/物业小程序/pages/domestic/domestic.wxml
new file mode 100644
index 0000000..af19753
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/domestic/domestic.wxml
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+
+
+
+
+ {{categoriesIndex}}
+
+
+
+ {{item.title}}
+ {{item.description}}
+
+
+ {{item.price}}/{{item.unit}}
+
+ 优选家政
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/domestic/domestic.wxss b/手太欠/物业小程序/物业小程序/pages/domestic/domestic.wxss
new file mode 100644
index 0000000..4bd0de2
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/domestic/domestic.wxss
@@ -0,0 +1,205 @@
+page {
+ background-color: #fff;
+}
+
+/* 搜索 */
+
+.search {
+ height: 100rpx;
+ position: relative;
+ left: 0;
+ top: 0;
+ width: 100%;
+ z-index: 999;
+ padding: 11rpx 25rpx;
+ box-sizing: border-box;
+ background: white;
+}
+
+.search-nav {
+ background: #f7f7f7;
+ height: 74rpx;
+ line-height: 74rpx;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+ width: 100%;
+ border-radius: 10rpx;
+ color: #b8b7bc;
+ font-size: 28rpx;
+ border: #67d053 2rpx solid;
+}
+
+.search-nav-icon {
+ width: 32rpx;
+ height: 32rpx;
+ vertical-align: middle;
+ margin-bottom: 4rpx;
+}
+
+/* 轮播图 */
+.advertsBanner {
+ position: relative;
+ height: 320rpx;
+ width: calc(100%- 40rpx);
+ margin: 20rpx;
+ border-radius: 10rpx;
+ overflow: hidden;
+}
+
+.adverts-swiper {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.adverts-img {
+ width: 100%;
+ height: 100%;
+ vertical-align: top;
+}
+
+
+/* 一级分类 */
+.stair-nav {
+ position: fixed;
+ top: 370rpx;
+ left: 0;
+ background: #f3f3f3;
+ height: 100vh;
+ width: 180rpx;
+ text-align: center;
+ z-index: 9;
+}
+
+::-webkit-scrollbar {
+ width: 0;
+ height: 0;
+ color: transparent;
+ display: none;
+}
+
+.stair-nav-li {
+ line-height: 100rpx;
+ font-size: 30rpx;
+ border-top: solid 1rpx #f5f5f5;
+}
+
+.stair-nav-li.active {
+ background: white;
+ color: #67d053;
+ position: relative;
+}
+
+.stair-nav-li.active::before {
+ position: absolute;
+ content: "";
+ left: 5rpx;
+ top: 35rpx;
+ height: 30rpx;
+ background: #67d053;
+ width: 6rpx;
+ border-radius: 20rpx;
+}
+
+/* 二级分类 */
+
+.level-content {
+ position: fixed;
+ top: 370rpx;
+ right: 20rpx;
+ margin-left: 180rpx;
+ width: calc(100vw - 200rpx);
+ width: -webkit-calc(100vw - 200rpx);
+ height: 100vh;
+}
+
+.levelList-title {
+ color: #2c2c2c;
+ padding: 10rpx 0 20rpx;
+ font-weight: 600;
+}
+
+.level-nav {
+ display: flex;
+ flex-wrap: wrap;
+ padding: 20rpx 0 20rpx 40rpx;
+ background: white;
+ box-sizing: border-box;
+ border-radius: 14rpx;
+}
+
+.level-nav-li {
+ width: 100%;
+ padding-bottom: 40rpx;
+ margin-top: 40rpx;
+ height: 180rpx;
+}
+
+.level-nav-li:last-child {
+ margin-bottom: 0;
+ padding-bottom: 20rpx;
+}
+
+.level-nav-cont {
+ width: 100%;
+ flex: 1;
+ position: relative;
+ height: 220rpx;
+}
+
+.level-nav-cover {
+ width: 180rpx;
+ height: 135rpx;
+}
+
+.level-nav-text {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ width: 100%;
+}
+
+.level-nav-number {
+ margin: 20rpx 0;
+ font-size: 28rpx;
+ color: #a0a0a0;
+ line-height: 40rpx;
+}
+
+
+.level-nav-time {
+ display: flex;
+ line-height: 50rpx;
+}
+
+.level-nav-tips {
+ width: 120rpx;
+ border-radius: 10rpx;
+ text-align: center;
+ height: 50rpx;
+ line-height: 50rpx;
+ color: #fff;
+ font-size: 24rpx;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+}
+
+.level-nav-price {
+ display: flex;
+ font-size: 30rpx;
+ color: #646464;
+ font-weight: 600;
+ flex: 1;
+}
+
+.level-nav-price text {
+ color: #cc141f;
+}
+
+.level-pages {
+ position: absolute;
+ top: calc(50% - 400rpx);
+ left: 30%;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/haircut/haircut.js b/手太欠/物业小程序/物业小程序/pages/haircut/haircut.js
new file mode 100644
index 0000000..1f6da9d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/haircut/haircut.js
@@ -0,0 +1,94 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ isUser : app.globalData.isUser, //用户登录状态
+ advertsArr : [], //洗车行banner
+ haircutArr : [], //洗车行列表
+ page : {}, //分页信息
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad () {
+ // 获取美发行列表
+ this.hairInfo();
+ },
+
+ onShow(){
+ this.setData({
+ isUser : getApp().globalData.isUser
+ })
+ },
+
+ /**
+ * 美发行列表
+ */
+ hairInfo(page){
+ wx.$api.index.haircutList({
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.haircutArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.service.data)
+ this.setData({
+ advertsArr : res.data.adverts,
+ haircutArr : newData,
+ page : res.data.service.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 处理未登录时的转跳
+ */
+ userNav(e){
+ let pageUrl = e.currentTarget.dataset.url
+ if(this.data.isUser){
+ wx.navigateTo({
+ url: pageUrl
+ })
+ }else{
+ // 去登录
+ wx.navigateTo({
+ url: "/pages/login/login"
+ })
+ }
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取美发行列表
+ this.hairInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取美发行列表
+ this.hairInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/haircut/haircut.json b/手太欠/物业小程序/物业小程序/pages/haircut/haircut.json
new file mode 100644
index 0000000..754c2f4
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/haircut/haircut.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "美发理发",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/haircut/haircut.wxml b/手太欠/物业小程序/物业小程序/pages/haircut/haircut.wxml
new file mode 100644
index 0000000..83d6395
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/haircut/haircut.wxml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+ {{item.description}}
+
+
+ {{item.address}}
+ 立即预约
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/haircut/haircut.wxss b/手太欠/物业小程序/物业小程序/pages/haircut/haircut.wxss
new file mode 100644
index 0000000..766be28
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/haircut/haircut.wxss
@@ -0,0 +1,87 @@
+/* 美容美发 */
+.haircut {
+ margin: 20rpx;
+}
+
+.haircut-banner {
+ position: relative;
+ padding-top: 38%;
+ width: 100%;
+ overflow: hidden;
+}
+
+.banner-swiper {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+}
+
+.banner-img {
+ width: 100%;
+ height: 100%;
+ vertical-align: top;
+}
+.haircut-li {
+ margin-top: 20rpx;
+ position: relative;
+}
+
+.haircut-img {
+ position: relative;
+ width: 190rpx;
+ height: 190rpx;
+ border-radius: 10rpx;
+ overflow: hidden;
+}
+
+.haircut-img image {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+}
+
+.haircut-cont {
+ position: absolute;
+ left: 240rpx;
+ top: 20rpx;
+ right: 20rpx;
+ width: calc(100% - 260rpx);
+}
+
+.haircut-name {
+ font-weight: 600;
+}
+
+.haircut-text {
+ font-size: 28rpx;
+ color: #929292;
+ margin: 10rpx 0 16rpx;
+ height: 70rpx;
+}
+
+.haircut-site {
+ display: flex;
+ font-size: 28rpx;
+}
+
+.haircut-site-name {
+ line-height: 50rpx;
+ flex: 1;
+ color: #595959;
+ margin-right: 10rpx;
+}
+
+.haircut-site-btn {
+ width: 130rpx;
+ border-radius: 50rpx;
+ text-align: center;
+ height: 50rpx;
+ line-height: 50rpx;
+ color: #fff;
+ font-size: 24rpx;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/historyMond/historyMond.js b/手太欠/物业小程序/物业小程序/pages/historyMond/historyMond.js
new file mode 100644
index 0000000..c29c874
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/historyMond/historyMond.js
@@ -0,0 +1,73 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ repairsArr : [], //记录列表
+ page : {}, //分页信息
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow () {
+ // 获取维修记录
+ this.repairsInfo();
+ },
+
+ /**
+ * 维修记录
+ */
+ repairsInfo(page) {
+ wx.$api.repair.repairsList({page : page || ''}).then(res=>{
+ console.log(res)
+ let listArr = this.data.repairsArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ repairsArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取维修记录
+ this.repairsInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取维修记录
+ this.repairsInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/historyMond/historyMond.json b/手太欠/物业小程序/物业小程序/pages/historyMond/historyMond.json
new file mode 100644
index 0000000..c327460
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/historyMond/historyMond.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "历史报修"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/historyMond/historyMond.wxml b/手太欠/物业小程序/物业小程序/pages/historyMond/historyMond.wxml
new file mode 100644
index 0000000..a36aa69
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/historyMond/historyMond.wxml
@@ -0,0 +1,37 @@
+
+
+ 报修记录
+
+
+
+ 报修时间
+ 报修房屋
+ 报修进度
+
+
+ {{item.created_at}}
+ {{item.address}}
+ {{item.state_text}}
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
+
+
+
+
+ 去报修
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/historyMond/historyMond.wxss b/手太欠/物业小程序/物业小程序/pages/historyMond/historyMond.wxss
new file mode 100644
index 0000000..20e0e6c
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/historyMond/historyMond.wxss
@@ -0,0 +1,81 @@
+/* 历史报修 */
+.record {
+ margin-bottom: solid 110rpx transparent;
+}
+
+.historyTitle {
+ position: relative;
+ padding: 30rpx 40rpx;
+ color: #5d5d5d;
+ font-size: 28rpx;
+}
+
+.historyTitle::after {
+ position: absolute;
+ content: '';
+ left: 20rpx;
+ top: calc(50% - 5rpx);
+ width: 10rpx;
+ height: 10rpx;
+ border-radius: 50%;
+ background-color: #67d053;
+}
+
+.recordList,
+.recordTop {
+ display: flex;
+}
+
+.recordTop {
+ line-height: 90rpx;
+}
+
+.recordList .recordList-name,
+.recordTop .recordList-name {
+ flex: 3;
+ text-align: center;
+}
+
+.recordTop .recordList-name {
+ font-size: 32rpx;
+ font-weight: 600;
+}
+
+.recordList .recordList-name {
+ font-size: 28rpx;
+ padding: 30rpx 0;
+}
+
+.recordList-green {
+ color: #52b96a;
+}
+
+.recordList-grey {
+ color: #b9b9b9;
+}
+
+.evaluate-btn {
+ background-color: #fff;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ z-index: 99;
+ width: 100%;
+ height: 110rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 15rpx;
+ box-sizing: border-box;
+}
+
+.evaluate-btn-make {
+ width: 100%;
+ background: #52b96a;
+ height: 84rpx;
+ line-height: 84rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ text-align: center;
+ border-radius: 50rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/historyPay/historyPay.js b/手太欠/物业小程序/物业小程序/pages/historyPay/historyPay.js
new file mode 100644
index 0000000..55ac988
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/historyPay/historyPay.js
@@ -0,0 +1,76 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ feelogArr : [], //缴费记录列表
+ amount : 0, //缴费金额
+ page : {}, //分页信息
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ amount : options.price
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ // 获取缴费记录
+ this.checkInfo();
+ },
+
+ /**
+ * 缴费记录
+ */
+ checkInfo (page) {
+ wx.$api.repair.feelog({page : page || ''}).then(res=>{
+ let listArr = this.data.feelogArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ feelogArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取缴费记录
+ this.checkInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取缴费记录
+ this.checkInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/historyPay/historyPay.json b/手太欠/物业小程序/物业小程序/pages/historyPay/historyPay.json
new file mode 100644
index 0000000..715ba37
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/historyPay/historyPay.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "历史缴费",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/historyPay/historyPay.wxml b/手太欠/物业小程序/物业小程序/pages/historyPay/historyPay.wxml
new file mode 100644
index 0000000..69a2fc9
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/historyPay/historyPay.wxml
@@ -0,0 +1,45 @@
+
+
+ 缴费记录
+
+
+
+
+ 缴费年限
+ 缴费时间
+ 缴费金额
+ 缴费房屋
+
+
+ {{item.years}}
+ {{item.paid_at}}
+ {{item.price}}
+ {{item.house.title}}
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+ 暂无记录
+
+
+
+
+ 待缴金额
+ ¥{{amount}}元
+
+
+
+
+
+ 去缴费
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/historyPay/historyPay.wxss b/手太欠/物业小程序/物业小程序/pages/historyPay/historyPay.wxss
new file mode 100644
index 0000000..f75af11
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/historyPay/historyPay.wxss
@@ -0,0 +1,102 @@
+/* 历史缴费 */
+.historyTitle {
+ position: relative;
+ padding: 30rpx 40rpx;
+ color: #5d5d5d;
+ font-size: 28rpx;
+}
+
+.historyTitle::after {
+ position: absolute;
+ content: '';
+ left: 20rpx;
+ top: calc(50% - 5rpx);
+ width: 10rpx;
+ height: 10rpx;
+ border-radius: 50%;
+ background-color: #67d053;
+}
+
+.village {
+ text-align: center;
+ line-height: 90rpx;
+}
+
+.recordList,
+.recordTop {
+ display: flex;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+}
+
+.recordTop {
+ line-height: 90rpx;
+ background-color: #eee;
+}
+
+.recordList .recordList-name,
+.recordTop .recordList-name {
+ flex: 3;
+ text-align: center;
+}
+
+.recordTop .recordList-name {
+ font-size: 30rpx;
+ font-weight: 600;
+}
+
+.recordList .recordList-name {
+ font-size: 28rpx;
+ padding: 30rpx 0;
+}
+
+.recordList .recordList-name:last-child {
+ text-align: right;
+}
+
+.pages-hint-text {
+ padding-bottom: 40rpx;
+}
+
+/* 待缴费 */
+.stayPay {
+ display: flex;
+ margin: 30rpx 0 110rpx;
+ line-height: 90rpx;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+}
+
+.stayPay-name {
+ flex: 1;
+}
+
+.stayPay-price {
+ color: #d02e35;
+}
+
+.evaluate-btn {
+ background-color: #fff;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ z-index: 99;
+ width: 100%;
+ height: 110rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 15rpx;
+ box-sizing: border-box;
+}
+
+.evaluate-btn-make {
+ width: 100%;
+ background: #52b96a;
+ height: 84rpx;
+ line-height: 84rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ text-align: center;
+ border-radius: 50rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/historyShow/historyShow.js b/手太欠/物业小程序/物业小程序/pages/historyShow/historyShow.js
new file mode 100644
index 0000000..55990a5
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/historyShow/historyShow.js
@@ -0,0 +1,36 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ feeData: '', //详情数据
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+
+ // 获取缴费记录详情
+ this.fee(options.id)
+ },
+
+ /**
+ * 缴费记录详情
+ */
+ fee (id) {
+ wx.$api.repair.feeInfo(id).then(res=>{
+ console.log(res)
+ this.setData({
+ feeData : res.data
+ })
+ })
+ },
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/historyShow/historyShow.json b/手太欠/物业小程序/物业小程序/pages/historyShow/historyShow.json
new file mode 100644
index 0000000..1a893f2
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/historyShow/historyShow.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "记录详情"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/historyShow/historyShow.wxml b/手太欠/物业小程序/物业小程序/pages/historyShow/historyShow.wxml
new file mode 100644
index 0000000..44c39eb
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/historyShow/historyShow.wxml
@@ -0,0 +1,37 @@
+
+ 缴费金额
+ ¥{{feeData.price}}
+
+
+
+ 当前状态
+ {{feeData.state_text}}
+
+
+ 费用年份
+ {{feeData.year}}年
+
+
+ 付款方式
+ 微信支付
+
+
+ 交易金额
+ ¥{{feeData.price}}
+
+
+ 小区名称
+ {{feeData.house.title}}
+
+
+
+
+
+ 缴费时间
+ {{feeData.paid_at}}
+
+
+ 交易单号
+ {{feeData.orderId}}
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/historyShow/historyShow.wxss b/手太欠/物业小程序/物业小程序/pages/historyShow/historyShow.wxss
new file mode 100644
index 0000000..542e26e
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/historyShow/historyShow.wxss
@@ -0,0 +1,40 @@
+/* 缴费记录详情 */
+.recordPrice {
+ text-align: center;
+ color: #636363;
+ padding: 60rpx 0;
+ font-size: 28rpx;
+}
+
+.recordPrice text {
+ color: #000;
+ font-size: 60rpx;
+ display: block;
+ margin-top: 10rpx;
+}
+
+.recordList {
+ margin-bottom: 20rpx;
+ font-size: 28rpx;
+}
+
+.recordList-label {
+ display: flex;
+ padding: 20rpx 0;
+}
+
+.recordList-label text {
+ flex: 1;
+ display: block;
+ color: #969696;
+ width: 200rpx;
+}
+
+.recordList-label-name {
+ width: calc(100% - 200rpx);
+ text-align: right;
+}
+
+.recordList-label-price {
+ color: #d42e3b;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/index/index.js b/手太欠/物业小程序/物业小程序/pages/index/index.js
new file mode 100644
index 0000000..ee95082
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/index/index.js
@@ -0,0 +1,46 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ adverts : [], //首页banner
+ articles: [], //首页公告
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 获取首页信息
+ this.userInfo();
+ },
+
+ /**
+ * 首页信息
+ */
+ userInfo() {
+ wx.$api.index.index().then(res=>{
+ this.setData({
+ adverts : res.data.adverts,
+ articles: res.data.articles
+ })
+ })
+ },
+
+ /**
+ * 首页公告
+ */
+ contents(e) {
+ wx.navigateTo({
+ url: '../lifeDetails/lifeDetails?id=' + e.currentTarget.dataset.id + '&type=periphery',
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/index/index.json b/手太欠/物业小程序/物业小程序/pages/index/index.json
new file mode 100644
index 0000000..3f64512
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/index/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "首页"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/index/index.wxml b/手太欠/物业小程序/物业小程序/pages/index/index.wxml
new file mode 100644
index 0000000..faa1a19
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/index/index.wxml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 物业公告
+
+
+
+
+ {{item.title}}
+
+
+
+ 更多
+
+
+
+
+
+
+
+ 社区服务
+
+
+
+
+ 社区商城
+ 日用 百货
+
+
+
+
+
+ 社区餐饮
+ 美食 冷饮
+
+
+
+
+
+ 家政服务
+ 家政 保洁
+
+
+
+
+
+ 美发理发
+ 美容 美发
+
+
+
+
+
+ 洗车行
+ 洗车 保养
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/index/index.wxss b/手太欠/物业小程序/物业小程序/pages/index/index.wxss
new file mode 100644
index 0000000..9db8855
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/index/index.wxss
@@ -0,0 +1,158 @@
+/* logo */
+.navTop {
+ position: relative;
+ height: 90rpx;
+}
+
+.logo {
+ width: 120px;
+ height: 27px;
+ position: absolute;
+ left: 0;
+ top: 16rpx;
+}
+
+.navNotice-icon {
+ position: absolute;
+ top: 20rpx;
+ right: 10rpx;
+ width: 14rpx;
+ height: 14rpx;
+ border-radius: 50%;
+ background-color: #c73228;
+}
+
+.navNotice-img {
+ position: absolute;
+ top: 20rpx;
+ right: 0;
+ width: 42rpx;
+ height: 42rpx;
+}
+
+.navNotice-img image {
+ width: 100%;
+ height: 100%;
+}
+
+/* 轮播图 */
+.banner {
+ position: relative;
+ padding-top: 48%;
+ width: 100%;
+ border-radius: 10rpx;
+ overflow: hidden;
+}
+
+.banner-swiper {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.banner-img {
+ width: 100%;
+ height: 100%;
+ vertical-align: top;
+}
+
+/* 公告 */
+.notice {
+ margin-top: 20rpx;
+ height: 60rpx;
+ display: flex;
+}
+
+.notice-img {
+ margin: 8rpx 10rpx 0 0;
+ font-weight: 600;
+ font-size: 30rpx;
+ display: flex;
+}
+
+.notice-img text {
+ color: #b8372f;
+}
+
+.notice-img image {
+ width: 30rpx;
+ height: 30rpx;
+ margin: 6rpx 6rpx 0 0;
+}
+
+.notice-cont {
+ width: calc(100% - 190rpx);
+ display: flex;
+ line-height: 60rpx;
+ font-size: 28rpx;
+}
+
+.notice-name {
+ color: #b8372f;
+ font-weight: 600;
+ width: 80rpx;
+ font-size: 32rpx;
+}
+
+.notice-swiper {
+ width: calc(100% - 124rpx);
+ height: 60rpx;
+}
+
+.notice-more {
+ width: 120rpx;
+ text-align: right;
+ position: relative;
+}
+
+.notice-more::after {
+ position: absolute;
+ content: '';
+ left: 30rpx;
+ top: 25%;
+ width: 2rpx;
+ height: 50%;
+ background-color: #c1c1c1;
+}
+
+/* 服务 */
+.service {
+ margin: 20rpx 0;
+}
+
+.service-list {
+ overflow: hidden;
+ padding: 20rpx 0;
+}
+
+.service-label {
+ width: 33.33%;
+ float: left;
+ text-align: center;
+ margin: 20rpx 0;
+}
+
+.service-img {
+ width: 80rpx;
+ height: 80rpx;
+ margin: 0 atuo;
+}
+
+.service-title {
+ padding: 30rpx 30rpx 0;
+ font-weight: 600;
+ font-size: 32rpx;
+}
+
+.service-name {
+ font-size: 28rpx;
+}
+
+.service-name text {
+ display: block;
+ font-size: 24rpx;
+ color: #c1c1c1;
+ margin-top: 10rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/integral/integral.js b/手太欠/物业小程序/物业小程序/pages/integral/integral.js
new file mode 100644
index 0000000..464a78a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integral/integral.js
@@ -0,0 +1,69 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ integralArr : [], //积分商城列表
+ page : {}, //分页信息
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 获取积分商品列表
+ this.integral();
+ },
+
+ /**
+ * 积分商品列表
+ */
+ integral(page) {
+ wx.$api.integral.index({
+ page : page || ''
+ }).then(res=>{
+ console.log(res.data.data)
+ let listArr = this.data.integralArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ integralArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取积分商品列表
+ this.integral();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取积分商品列表
+ this.integral(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/integral/integral.json b/手太欠/物业小程序/物业小程序/pages/integral/integral.json
new file mode 100644
index 0000000..bc4e88b
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integral/integral.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText" : "积分商城"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/integral/integral.wxml b/手太欠/物业小程序/物业小程序/pages/integral/integral.wxml
new file mode 100644
index 0000000..0e5f713
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integral/integral.wxml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ {{item.goods_title}}
+
+ 兑换
+
+
+
+
+
+
+ {{item.goods_score}}积分¥{{item.goods_cost}}
+
+
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/integral/integral.wxss b/手太欠/物业小程序/物业小程序/pages/integral/integral.wxss
new file mode 100644
index 0000000..54b19c1
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integral/integral.wxss
@@ -0,0 +1,76 @@
+/* 积分商城 */
+.integral {
+ margin: 20rpx;
+}
+
+.integral-list {
+ position: relative;
+ margin-bottom: 20rpx;
+}
+
+.integral-img {
+ width: 150rpx;
+ height: 150rpx;
+ border-radius: 10rpx;
+}
+
+.integral-cont {
+ position: absolute;
+ padding-left: 200rpx;
+ padding-right: 20rpx;
+ box-sizing: border-box;
+ top: 20rpx;
+ left: 0;
+ width: 100%;
+}
+
+.integral-label {
+ display: flex;
+ margin: 10rpx 0 20rpx;
+}
+
+.integral-label-text,
+.integral-label-img {
+ height: 40rpx;
+ line-height: 40rpx;
+ border-radius: 10rpx;
+ color: #fff;
+ font-size: 24rpx;
+ padding: 0 10rpx;
+}
+
+.integral-label-text {
+ background-color: #fdb101;
+}
+
+.integral-label-img {
+ margin-left: 10rpx;
+ background-color: #fd8601;
+}
+
+.integral-label-img image {
+ width: 30rpx;
+ height: 30rpx;
+ margin: 5rpx 0;
+}
+
+.integral-price {
+ display: flex;
+}
+
+.integral-cost {
+ flex: 1;
+ color: #cc141c;
+}
+
+.integral-cost text {
+ font-size: 26rpx;
+ text-decoration: line-through;
+ color: #9e9e9e;
+ padding-left: 10rpx;
+}
+
+.integral-number {
+ font-size: 28rpx;
+ color: #7c7c7c;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/integralData/integralData.js b/手太欠/物业小程序/物业小程序/pages/integralData/integralData.js
new file mode 100644
index 0000000..67ece87
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integralData/integralData.js
@@ -0,0 +1,165 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ integralInfo : '', //商品详情
+ integralId : '', //商品id
+ content : '', //商品介绍
+ atAttribute : '', //规格默认
+ paramsArr : [], //规格数组
+ goodsNumber : 1, //商品数量
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ integralId : options.id
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ // 获取商品详情
+ this.integrals();
+ },
+
+ /**
+ * 商品详情
+ */
+ integrals() {
+ wx.$api.integral.details(this.data.integralId).then(res=>{
+ console.log(res.data)
+ let params = res.data.params,
+ paramsIndex = params.findIndex(element => (element.params_id == res.data.first.params_id))
+ params[paramsIndex].checked = true
+
+ this.setData({
+ integralInfo : res.data,
+ paramsArr : params,
+ atAttribute : res.data.first,
+ content : res.data.content.replace(/\
1){
+ atNumber--
+ }else{
+ wx.showToast({
+ title: "商品数量不能小于1",
+ icon : "none"
+ })
+ }
+ }
+ this.setData({
+ goodsNumber: atNumber
+ })
+ },
+
+ /**
+ * 输入产品数量
+ */
+ goodsNumberInput(e){
+ let value = e.detail.value,
+ atNumber = this.data.goodsNumber
+
+ if(value > 1){
+ if(value <= this.data.atAttribute.stock){
+ atNumber = value
+ }else{
+ atNumber = this.data.atAttribute.stock
+ wx.showToast({
+ title: "商品数量不足",
+ icon : "none"
+ })
+ }
+ }else{
+ wx.showToast({
+ title: "商品数量不能小于1",
+ icon : "none"
+ })
+ }
+ this.setData({
+ goodsNumber: atNumber
+ })
+ },
+
+ /**
+ * 立即购买
+ */
+ buy() {
+ console.log(this.data.atAttribute.params_id)
+ if (app.globalData.isUser){
+ wx.navigateTo({
+ url: '/pages/carts_order/carts_order?params_id=' + this.data.atAttribute.params_id + '&qty=' + this.data.goodsNumber + '&type=integral'
+ })
+ } else {
+ // 去登录
+ wx.navigateTo({
+ url: "/pages/login/login"
+ })
+ }
+
+ this.setData({
+ goodsSize : false
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/integralData/integralData.json b/手太欠/物业小程序/物业小程序/pages/integralData/integralData.json
new file mode 100644
index 0000000..a849435
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integralData/integralData.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "积分商品详情"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/integralData/integralData.wxml b/手太欠/物业小程序/物业小程序/pages/integralData/integralData.wxml
new file mode 100644
index 0000000..1a7bafe
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integralData/integralData.wxml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{integralInfo.title}}
+
+ {{integralInfo.score}}积分
+ ¥{{integralInfo.price}}
+
+
+
+
+
+
+
+
+ 已选
+ {{atAttribute.value}}
+
+
+
+
+
+ 已售
+ {{integralInfo.sold}}件
+
+
+
+
+
+
+
+ 产品详情
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{atAttribute.price}}积分
+ 已选:{{atAttribute.value}}
+
+ 规格
+
+ {{item.value}}
+
+
+ 数量
+
+ -
+
+ +
+
+
+
+
+
diff --git a/手太欠/物业小程序/物业小程序/pages/integralData/integralData.wxss b/手太欠/物业小程序/物业小程序/pages/integralData/integralData.wxss
new file mode 100644
index 0000000..2207ed3
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integralData/integralData.wxss
@@ -0,0 +1,848 @@
+/* 产品轮播 */
+
+.banner {
+ overflow: hidden;
+ position: relative;
+ padding-top: 100%;
+}
+
+.swiperCont,
+.swiperImg {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+/* 商品名称 */
+.detailsCont {
+ border-radius: 20rpx 20rpx 0 0;
+ position: relative;
+ top: -10rpx;
+}
+
+.detailsCont-text {
+ height: 100rpx;
+ line-height: 50rpx;
+ font-weight: 600;
+ padding: 10rpx;
+}
+
+
+.detailsCont-price {
+ display: flex;
+ font-size: 26rpx;
+ color: #9e9e9e;
+}
+
+.detailsCont-price-prime {
+ color: #d42e3b;
+ font-size: 48rpx;
+ font-weight: 600;
+}
+
+.detailsCont-price-prime>text {
+ font-size: 28rpx;
+}
+
+.detailsCont-price-cost {
+ margin-left: 20rpx;
+ text-decoration: line-through;
+ padding-top: 20rpx;
+}
+
+.detailsCollect {
+ position: absolute;
+ right: 0;
+ top: 20rpx;
+ background-color: #eafff0;
+ color: #67d053;
+ text-align: center;
+ border-radius: 40rpx 0 0 40rpx;
+ font-size: 28rpx;
+ padding: 4rpx 20rpx;
+}
+
+.detailsCollect.active {
+ top: 140rpx;
+}
+
+
+/* 规格 */
+
+.detailsSpecs {
+ margin: 20rpx 0;
+ background: white;
+}
+
+.specs {
+ border-bottom: 2rpx solid #ececec;
+ padding: 25rpx 20rpx;
+ display: flex;
+}
+
+.specs>view {
+ display: flex;
+ width: 100%;
+}
+
+.specsName {
+ flex: 1;
+ display: flex;
+ color: #000;
+ font-size: 28rpx;
+ width: 60% !important;
+}
+
+.specsName text {
+ display: inline-block;
+ width: calc(100% - 160rpx);
+}
+
+.specsTitle {
+ color: #6a6a6a;
+ margin-right: 20rpx;
+ width: 100rpx;
+}
+
+.specsImg {
+ width: 24rpx;
+ height: 24rpx;
+ margin-top: 6rpx;
+}
+
+.specsCoupon {
+ display: flex;
+}
+
+.Coupon-label {
+ color: #cea760;
+ margin-right: 20rpx;
+}
+
+/* 商品详情 */
+
+.detailsBrief {
+ padding: 20rpx;
+ box-sizing: border-box;
+ border-bottom: solid 100rpx #f5f6fa;
+ background: white;
+}
+
+.detailsBrief-title {
+ font-weight: 600;
+ margin-bottom: 20rpx;
+}
+
+.goods-info-footer {
+ border-bottom: solid 40rpx transparent;
+ line-height: 40rpx;
+ text-align: center;
+ font-size: 24rpx;
+ color: #747788;
+ padding-top: 20rpx;
+}
+
+
+/* 秒杀商品名称 */
+.seckillCont {
+ position: relative;
+}
+
+.seckillCont-top {
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ width: 100%;
+ height: 120rpx;
+ color: #fff;
+ display: flex;
+}
+
+.seckillCont-left {
+ width: calc(100% - 240rpx);
+ display: flex;
+ position: relative;
+}
+
+.seckillCont-clock {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ width: 90rpx;
+ height: 90rpx;
+}
+
+.seckillCont-name {
+ background-color: #ba8e3d;
+ color: #fff;
+ width: 80rpx;
+ height: 80rpx;
+ line-height: 30rpx;
+ padding-top: 10rpx;
+ box-sizing: border-box;
+ font-size: 28rpx;
+ text-align: center;
+ margin: 20rpx;
+ box-sizing: border-box;
+ border-radius: 10rpx;
+}
+
+.seckillCont-name text {
+ display: block;
+}
+
+.seckillCont-text {
+ width: 88%;
+ padding: 20rpx;
+ box-sizing: border-box;
+}
+
+.seckillCont-text text {
+ max-height: 100rpx;
+}
+
+.detailslCont-price {
+ padding: 0 20rpx 20rpx;
+}
+
+.detailslCont-number {
+ color: #cc141c;
+ font-size: 34rpx;
+ font-weight: 600;
+}
+
+.detailslCont-number text {
+ padding-right: 10rpx
+}
+
+
+.detailslCont-const {
+ color: #999;
+ margin-top: 20rpx;
+ font-size: 28rpx;
+}
+
+.detailslCont-const text {
+ color: #c29647;
+}
+
+.seckillCont-price-prime {
+ font-size: 44rpx;
+ padding-top: 12rpx;
+}
+
+.seckillCont-price-prime text {
+ font-size: 24rpx;
+}
+
+.seckillCont-price-cost {
+ font-size: 26rpx;
+ text-decoration: line-through;
+ color: #efd19c;
+}
+
+.seckillCont-right {
+ width: 240rpx;
+ text-align: center;
+ color: #c18c2c;
+ background-color: #ecd7b1;
+ padding: 20rpx 0;
+}
+
+.seckillCont-end {
+ font-size: 24rpx;
+ color: #c59a4b;
+ margin-bottom: 10rpx;
+}
+
+/* 底部菜单栏 */
+
+.footer {
+ background: #fff;
+ height: 100rpx;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ z-index: 99;
+ width: 100%;
+ display: flex;
+ box-shadow: 0 -3rpx 3rpx 0 rgba(0, 0, 0, 0.05);
+}
+
+.footerLeft {
+ display: flex;
+ width: 200rpx;
+}
+
+
+.footerLeft-img {
+ width: 50rpx;
+ height: 50rpx;
+ padding: 25rpx;
+}
+
+.footerLeft-icon {
+ position: relative;
+}
+
+.cartCount {
+ position: absolute;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ border-radius: 50%;
+ width: 36rpx;
+ height: 36rpx;
+ line-height: 36rpx;
+ top: 14rpx;
+ right: 10rpx;
+ text-align: center;
+ font-size: 24rpx;
+ color: #fff;
+ transform: scale(0.83, 0.83);
+}
+
+.footerRight {
+ width: calc(100% - 250rpx);
+ margin: 10rpx 10rpx;
+}
+
+.footerBtn {
+ width: calc(50% - 4rpx);
+ float: left;
+ text-align: center;
+ color: #fff;
+ height: 70rpx;
+ background: #fff;
+ line-height: 70rpx;
+ font-size: 28rpx;
+ border: 2rpx #e5bb6e solid;
+}
+
+.footerCar {
+ border-radius: 10rpx 0 0 10rpx;
+ color: #c4953f;
+}
+
+.footerBuy {
+ border-radius: 0 10rpx 10rpx 0;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ border-color: transparent;
+}
+
+.buyOne {
+ border-radius: 10rpx;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ border-color: transparent;
+}
+
+/* 规格弹出 */
+
+.goods-size-back {
+ position: fixed;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ background: rgba(0, 0, 0, 0.3);
+ z-index: 9;
+ display: none;
+}
+
+.goods-size-back.active {
+ display: block;
+}
+
+.goods-size-content {
+ position: fixed;
+ bottom: -100%;
+ left: 0;
+ width: 100%;
+ background: white;
+ z-index: 100;
+ transition: all 0.2s;
+}
+
+.goods-size-content.active {
+ padding-bottom: 20rpx;
+ bottom: 0;
+}
+
+.goods-size-img {
+ position: absolute;
+ left: 15rpx;
+ top: -40rpx;
+ background: white;
+ width: 200rpx;
+ height: 200rpx;
+ padding: 15rpx;
+ box-sizing: border-box;
+ border-radius: 6rpx;
+}
+
+.goods-size-img image {
+ width: 100%;
+ height: 100%;
+}
+
+.goods-size-info {
+ padding: 30rpx 30rpx 30rpx 230rpx;
+ height: 160rpx;
+ box-sizing: border-box;
+}
+
+.goods-size-info-price {
+ line-height: 60rpx;
+ font-size: 32rpx;
+ color: #e92344;
+ font-weight: bold;
+}
+
+.goods-size-info-price text {
+ font-size: 26rpx;
+}
+
+.goods-size-info-text {
+ line-height: 40rpx;
+ color: #747788;
+ font-size: 26rpx;
+}
+
+.goods-size-specs {
+ padding: 10rpx 30rpx;
+}
+
+.goods-size-title {
+ color: #747788;
+ font-size: 26rpx;
+}
+
+.goods-size-tag {
+ padding: 0 20rpx 20rpx 20rpx;
+}
+
+.goods-size-tag-text {
+ border: #e0e0e0 2rpx solid;
+ color: #999;
+ margin: 20rpx 10rpx 0 10rpx;
+ line-height: 50rpx;
+ padding: 0 15rpx;
+ display: inline-block;
+ font-size: 24rpx;
+ border-radius: 10rpx;
+}
+
+.goods-size-tag-text.active {
+ color: #26b00b;
+ border: #26b00b 2rpx solid;
+}
+
+.goods-size-number {
+ padding: 10rpx 30rpx 80rpx 30rpx;
+ line-height: 60rpx;
+ color: #747788;
+}
+
+.goods-number {
+ display: flex;
+ float: right;
+}
+
+.goods-number-btn {
+ text-align: center;
+ width: 60rpx;
+}
+
+.goods-number-input {
+ text-align: center;
+ width: 80rpx;
+ height: 60rpx;
+ line-height: 60rpx;
+ color: #464854;
+ margin: 0 6rpx;
+}
+
+.goods-number-btn,
+.goods-number-input {
+ background: #f5f6fa;
+}
+
+.goods-size-btn {
+ padding: 0 20rpx;
+ box-sizing: border-box;
+ height: 100rpx;
+ width: 100%;
+}
+
+.footer-size-btn {
+ width: 100% !important;
+}
+
+.goods-size-btn view {
+ text-align: center;
+ line-height: 80rpx;
+ font-size: 28rpx;
+ background: #e5bb6e;
+ color: white;
+ width: 100%;
+ float: left;
+ border: 2rpx solid #e5bb6e;
+}
+
+.goods-size-btn .bag {
+ background: white;
+ color: #c4953f;
+}
+
+.footOne {
+ width: 100% !important;
+ margin-top: 10rpx;
+ border-radius: 50rpx;
+}
+
+/* 优惠券 */
+
+.coupon-back,
+.share-back {
+ position: fixed;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ background: rgba(0, 0, 0, .4);
+ z-index: 9;
+ display: none;
+}
+
+.coupon-back.active,
+.share-back.active {
+ display: block;
+}
+
+.coupon-content {
+ position: fixed;
+ bottom: -100%;
+ left: 0;
+ width: 100%;
+ background: white;
+ z-index: 100;
+ transition: all 0.2s;
+ height: 50vh;
+
+}
+
+.coupon-content.active {
+ bottom: 0;
+}
+
+.coupon-content {
+ background: white;
+}
+
+.couponTitle {
+ background: #fff;
+ border-bottom: #f6f6f6 2rpx solid;
+ height: 80rpx;
+ line-height: 80rpx;
+ padding: 0 20rpx;
+ text-align: center;
+ color: #c18a2c;
+}
+
+.couponTitle view {
+ color: #898989;
+ font-size: 28rpx;
+}
+
+.couponList {
+ margin: 20rpx 20rpx 40rpx;
+}
+
+.couponListCont {
+ border-radius: 10rpx;
+ box-shadow: 0 0 10rpx rgba(253, 156, 156, 0.2);
+ background: #fff9ee;
+ color: #ca9435;
+ padding: 40rpx 20rpx 20rpx 0;
+ display: flex;
+ margin-bottom: 30rpx;
+ position: relative;
+}
+
+.couponListCont-left {
+ text-align: center;
+ width: 220rpx;
+ font-size: 24rpx;
+ margin-top: 16rpx;
+}
+
+.couponListCont-price {
+ font-size: 40rpx;
+}
+
+.couponListCont-price text {
+ font-size: 24rpx;
+}
+
+.couponListCont-right {
+ width: calc(100% - 300rpx);
+ margin: 0 40rpx;
+ position: relative;
+}
+
+.couponListCont-right::after {
+ position: absolute;
+ left: -40rpx;
+ top: 0;
+ height: 100%;
+ background: #fff3de;
+ width: 2rpx;
+ content: '';
+}
+
+.couponListCont-text {
+ font-size: 26rpx;
+}
+
+.couponListCont-time {
+ font-size: 24rpx;
+ margin-top: 10rpx;
+ display: flex;
+ line-height: 40rpx;
+}
+
+.couponListCont-draw {
+ background: #dcad5e;
+ color: #fff;
+ border-radius: 10rpx;
+ height: 50rpx;
+ line-height: 50rpx;
+ width: 130rpx;
+ text-align: center;
+ font-size: 22rpx;
+ margin-top: 8rpx;
+}
+
+.couponListCont-draw.active {
+ background: #fde6e6;
+ color: #fe9595;
+}
+
+.couponListCont-tips {
+ position: absolute;
+ top: 0;
+ left: 0;
+ background: #ffe5ba;
+ color: #b77200;
+ border-radius: 14rpx 0 14rpx 0;
+ height: 38rpx;
+ line-height: 38rpx;
+ font-size: 24rpx;
+ padding: 0 25rpx;
+}
+
+.couponTable-list {
+ height: 45rpx;
+ line-height: 48rpx;
+ display: flex;
+ font-size: 28rpx;
+ color: #313131;
+ margin-bottom: 20rpx;
+}
+
+.couponTable-list:last-child {
+ margin: 0;
+}
+
+.couponTable-list>view {
+ background: #fff0f0;
+ color: #d42e3b;
+ border-radius: 30rpx;
+ font-size: 24rpx;
+ display: inline-block;
+ margin-right: 20rpx;
+ padding: 0 20rpx;
+ height: 45rpx;
+ line-height: 45rpx;
+}
+
+.couponTable-list>text {
+ font-weight: 600;
+ padding: 0 8rpx;
+}
+
+.couponHide {
+ background: #fff;
+ height: 120px;
+ padding-top: 25rpx;
+}
+
+.couponHide>text {
+ background: #e6e6e6;
+ color: #999;
+ font-weight: 600;
+ height: 80rpx;
+ font-size: 28rpx;
+ line-height: 80rpx;
+ text-align: center;
+ border-radius: 50rpx;
+ display: block;
+ margin: 0 30rpx;
+}
+
+.couponsList-title {
+ font-size: 32rpx;
+ font-weight: 600;
+ margin-bottom: 20rpx;
+}
+
+/* 团购 */
+.groupPlayer {
+ background-color: #fff;
+ margin: 20rpx 0;
+ padding: 20rpx;
+ box-sizing: border-box;
+}
+
+.dts-collage-title {
+ font-size: 26rpx;
+ position: relative;
+ padding-bottom: 20rpx;
+ display: flex;
+ color: #999;
+}
+
+.dts-collage-title::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ bottom: 0;
+ background: #f2f2f2;
+ height: 2rpx;
+ width: 100%;
+}
+
+.dts-collage-title text {
+ font-size: 28rpx;
+ flex: 1;
+ display: inline-block;
+ font-weight: 600;
+ color: #313131;
+}
+
+.dts-collage-li {
+ width: 100%;
+ box-sizing: border-box;
+ display: flex;
+ margin-top: 30rpx;
+}
+
+.dts-collage-img {
+ width: 80rpx;
+ height: 80rpx;
+ border-radius: 50%;
+ margin: 5rpx 20rpx 0 0;
+}
+
+.dts-collage-name {
+ width: calc(100% - 520rpx);
+ line-height: 90rpx;
+}
+
+
+.dts-collage-tem {
+ width: 240rpx;
+ margin: 10rpx 40rpx 0 0;
+ font-size: 24rpx;
+ text-align: right;
+ color: #999;
+}
+
+.dts-collage-tem view {
+ font-size: 28rpx;
+ margin-bottom: 10rpx;
+ color: #000;
+}
+
+.red-color {
+ color: #c29647;
+ padding: 0 5rpx;
+}
+
+.dts-collage-btn {
+ width: 120rpx;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ color: #fff;
+ margin-top: 20rpx;
+ border-radius: 80rpx;
+ height: 54rpx;
+ line-height: 54rpx;
+ text-align: center;
+ font-size: 26rpx;
+}
+
+/* 预售说明 */
+.sale {
+ background-color: #fff;
+ margin: 20rpx 0;
+}
+
+.saleTitle {
+ padding: 20rpx;
+ font-size: 28rpx;
+ font-weight: 600;
+}
+
+.saleList {
+ display: flex;
+ padding: 10rpx 0 20rpx;
+}
+
+.saleLabel {
+ flex: 3;
+ text-align: center;
+ position: relative;
+}
+
+.saleLabel::after {
+ position: absolute;
+ content: '';
+ left: -10%;
+ top: 32rpx;
+ background-color: #bde8b4;
+ width: 20%;
+ height: 2rpx;
+}
+
+.saleLabel:first-child::after {
+ display: none;
+}
+
+.saleList-img {
+ width: 64rpx;
+ height: 64rpx;
+ border-radius: 50%;
+ background-color: #67cf52;
+ padding: 15rpx;
+ box-sizing: border-box;
+ margin: 0 auto 10rpx;
+}
+
+.saleList-img image {
+ width: 100%;
+ height: 100%;
+}
+
+.saleList-title {
+ font-size: 26rpx;
+}
+
+.saleList-title text {
+ display: block;
+ margin-top: 10rpx;
+ font-size: 24rpx;
+}
+
+.detailslCont-cols {
+ text-decoration: line-through;
+ color: #9e9e9e;
+ margin-top: 10rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/integralOrder/integralData.js b/手太欠/物业小程序/物业小程序/pages/integralOrder/integralData.js
new file mode 100644
index 0000000..9d9ed35
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integralOrder/integralData.js
@@ -0,0 +1,68 @@
+/*
+ * 张慢慢
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ scoreorders : '', //兑换记录列表
+ page : {}, //分页信息
+ lodingStats : false, //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 获取兑换记录
+ this.scoreorderInfo();
+ },
+ /**
+ * 兑换记录
+ */
+ scoreorderInfo(page) {
+ wx.$api.integral.orderTake({
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.scoreorders,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ scoreorders : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取兑换记录
+ this.scoreorderInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取兑换记录
+ this.scoreorderInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/integralOrder/integralData.json b/手太欠/物业小程序/物业小程序/pages/integralOrder/integralData.json
new file mode 100644
index 0000000..1b33604
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integralOrder/integralData.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "积分兑换记录",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/integralOrder/integralData.wxml b/手太欠/物业小程序/物业小程序/pages/integralOrder/integralData.wxml
new file mode 100644
index 0000000..decd27d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integralOrder/integralData.wxml
@@ -0,0 +1,31 @@
+
+
+
+ {{item.paid_at}}({{item.state_text}})
+
+ {{items.title}}
+
+
+
+ {{items.value}}
+ x{{items.qty}}
+ -{{items.score}}积分
+
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无兑换记录
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/integralOrder/integralData.wxss b/手太欠/物业小程序/物业小程序/pages/integralOrder/integralData.wxss
new file mode 100644
index 0000000..24c725d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integralOrder/integralData.wxss
@@ -0,0 +1,69 @@
+/*
+ * 张慢慢
+ * 物业
+ */
+
+ .records{
+ background: white;
+ margin: 20rpx;
+ width: calc(100% - 40rpx);
+ padding: 20rpx;
+ box-sizing: border-box;
+ border-radius: 10rpx;
+}
+
+.records-time {
+ font-size: 28rpx;
+ padding-bottom: 20rpx;
+ border-bottom: solid 1px #f2f2f2;
+ color: #999;
+ margin-bottom: 20rpx;
+}
+
+.recordsCont {
+ display: flex;
+ font-size: 28rpx;
+}
+
+.recordsCont-img {
+ width: 100rpx;
+ height: 100rpx;
+ margin-right: 20rpx;
+}
+
+.recordsCont-text {
+ position: relative;
+ width: calc(100% - 120rpx);
+ padding-right: 180rpx;
+ box-sizing: border-box;
+}
+
+.recordsCont-name {
+ font-weight: bold;
+ padding-bottom: 20rpx;
+}
+
+.recordsCont-value{
+ line-height: 50rpx;
+}
+
+.recordsCont-integral{
+ color: #0ba96a;
+ position: absolute;
+ top: calc(50% - 30rpx);
+ line-height: 60rpx;
+ right: 0;
+ width: 180rpx;
+ text-align: right;
+ font-weight: bold;
+}
+
+.recordsCont-integral image {
+ width: 20rpx;
+ height: 20rpx;
+}
+
+.recordsCont0number {
+ color: #999;
+ line-height: 50rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/integralSee/integralSee.js b/手太欠/物业小程序/物业小程序/pages/integralSee/integralSee.js
new file mode 100644
index 0000000..72d1988
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integralSee/integralSee.js
@@ -0,0 +1,39 @@
+/*
+ * 张慢慢
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ id : '', //兑换ID
+ scoreordercont : '', //兑换详情
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ id : options.id || ""
+ })
+
+ // 获取兑换详情
+ this.scoreorderInfo(options.id);
+ },
+ /**
+ * 兑换详情
+ */
+ scoreorderInfo() {
+ wx.$api.integral.orderSee(this.data.id).then(res=>{
+ console.log(res)
+ this.setData({
+ scoreordercont : res.data
+ })
+ })
+ }
+})
diff --git a/手太欠/物业小程序/物业小程序/pages/integralSee/integralSee.json b/手太欠/物业小程序/物业小程序/pages/integralSee/integralSee.json
new file mode 100644
index 0000000..222850d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integralSee/integralSee.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "兑换记录详情"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/integralSee/integralSee.wxml b/手太欠/物业小程序/物业小程序/pages/integralSee/integralSee.wxml
new file mode 100644
index 0000000..570c72e
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integralSee/integralSee.wxml
@@ -0,0 +1,29 @@
+
+
+
+ 兑换成功
+
+
+
+ {{item.title}}
+
+
+
+ {{item.value}}
+ x{{item.qty}}
+
+
+
+ 消耗积分{{item.score}}
+
+
+
+ 兑换时间{{scoreordercont.paid_at}}
+
+
+ 兑换流水号{{scoreordercont.orderid}}
+
+
+ 订单状态{{scoreordercont.state_text}}
+
+
diff --git a/手太欠/物业小程序/物业小程序/pages/integralSee/integralSee.wxss b/手太欠/物业小程序/物业小程序/pages/integralSee/integralSee.wxss
new file mode 100644
index 0000000..e5e452c
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/integralSee/integralSee.wxss
@@ -0,0 +1,172 @@
+/*
+ * 张慢慢
+ * 物业
+ */
+
+ .scoredata-top {
+ background: #fff;
+ text-align: center;
+ font-size: 32rpx;
+ color: #ff5400;
+ padding: 30rpx 0;
+}
+
+.scoredata-top-img {
+ width: 200rpx;
+ height: 140rpx;
+ margin: 0 auto 10rpx;
+ display: block;
+}
+
+.scoredata-cont{
+ background: #fff;
+ margin-top: 20rpx;
+ padding: 20rpx;
+ box-sizing: border-box;
+}
+
+.scoredata-goods {
+ display: flex;
+}
+
+.scoredata-img {
+ width: 90rpx;
+ height: 90rpx;
+ margin-right: 20rpx;
+ vertical-align: top;
+}
+
+.scoredata-text {
+ width: calc(100% - 110rpx);
+ display: flex;
+ justify-content: space-between;
+ line-height: 90rpx;
+}
+
+.scoredata-value{
+ padding-right: 20rpx;
+ flex: 1;
+}
+
+.scoredata-number {
+ color: #999;
+}
+
+.scoredata-label {
+ margin-top: 20rpx;
+}
+
+.scoredata-label, .scoredata-tips {
+ display: flex;
+ font-size: 26rpx;
+ line-height: 54rpx;
+}
+
+.scoredata-label>text, .scoredata-tips>text {
+ display: inline-block;
+ flex: 1;
+ color: #999;
+}
+
+.scoredata-tips {
+ color: #999;
+ border-top: 2rpx solid #f2f2f2;
+ margin-top: 15rpx;
+ padding-top: 15rpx;
+}
+
+.scoredata-name{
+ font-weight: bold;
+ padding-bottom: 20rpx;
+}
+
+/* 物流信息 */
+
+.logistics-list {
+ position: relative;
+ padding-left: 80rpx;
+ padding-right: 20rpx;
+ overflow: hidden;
+ background-color: white;
+}
+
+.logistics-list::before {
+ position: absolute;
+ left: 40rpx;
+ top: 0;
+ content: "";
+ width: 2rpx;
+ height: 100%;
+ background: #eeeeee;
+ z-index: 2;
+}
+
+.logistics-label{
+ position: relative;
+ padding-top: 20rpx;
+ padding-bottom: 20rpx;
+ font-size: 26rpx;
+ color: #aeaeae;
+ border-bottom: solid 2rpx #f2f2f2;
+}
+
+.logistics-label:nth-child(1) {
+ color: #3ec28e;
+}
+
+.logistics-label::before {
+ position: absolute;
+ left: -48rpx;
+ top: calc( 50% - 7rpx );
+ content: "";
+ width: 14rpx;
+ height: 14rpx;
+ border: solid 2rpx #fff;
+ background: #c1c1c1;
+ z-index: 9;
+ border-radius: 50%;
+}
+
+
+.logistics-label:nth-child(1)::before {
+ border: solid 2rpx #0ba96a;
+ background: #3ec28e;
+}
+
+
+.logistics-label:nth-child(1)::after {
+ position: absolute;
+ left: -40rpx;
+ top: 0;
+ content: "";
+ width: 2rpx;
+ height: calc( 50% - 7rpx);
+ background: #fff;
+ z-index: 3;
+ border-radius: 50%;
+}
+
+.no-message {
+ padding-left: 20rpx;
+ color: #999;
+ font-size: 26rpx;
+}
+
+.logistics-label-time{
+ margin-top: 10rpx;
+}
+
+.logistics-block{
+ padding: 20rpx;
+ margin-top: 20rpx;
+ background-color: white;
+}
+
+.logistics-company{
+ background-color: #0ba96a;
+ color: white;
+ padding: 20rpx;
+ border-radius: 10rpx;
+ line-height: 50rpx;
+ font-size: 28rpx;
+}
diff --git a/手太欠/物业小程序/物业小程序/pages/lease/lease.js b/手太欠/物业小程序/物业小程序/pages/lease/lease.js
new file mode 100644
index 0000000..54531f6
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/lease/lease.js
@@ -0,0 +1,116 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ classifyId : "", //tab分类
+ scrollLeft : 0, //距离左边距
+ classifyInfo: [], //分类名称
+ peripheryArr: [], //列表数组
+ page : {}, //分页信息
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 获取分类
+ this.classify();
+ },
+
+ /**
+ * 房屋租赁列表
+ */
+ periphery(page) {
+ wx.$api.life.rooms({
+ category_id: this.data.classifyId,
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.peripheryArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ peripheryArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 分类
+ */
+ classify() {
+ wx.$api.life.roomSort().then(res=>{
+ this.setData({
+ classifyInfo: res.data,
+ classifyId : res.data[0].category_id
+ })
+
+ // 获取房屋租赁列表
+ this.periphery();
+ })
+ },
+
+ /**
+ * tabs
+ */
+ orderTab(e){
+ // 获取屏幕宽度
+ let classifyid = e.currentTarget.dataset.id,
+ screenWidth = wx.getSystemInfoSync().screenWidth,
+ offsetLeft = e.currentTarget.offsetLeft
+
+ if ((screenWidth / 2) < offsetLeft){
+ this.setData({
+ scrollLeft: screenWidth / 2
+ })
+ }else{
+ this.setData({
+ scrollLeft: 0
+ })
+ }
+
+ if(this.data.classifyId != classifyid){
+ this.setData({
+ classifyId : classifyid || ""
+ })
+ // 获取房屋租赁列表
+ this.periphery();
+ }
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取房屋租赁列表
+ this.periphery();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取房屋租赁列表
+ this.periphery(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/lease/lease.json b/手太欠/物业小程序/物业小程序/pages/lease/lease.json
new file mode 100644
index 0000000..6e2abfd
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/lease/lease.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText" : "房屋租赁",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/lease/lease.wxml b/手太欠/物业小程序/物业小程序/pages/lease/lease.wxml
new file mode 100644
index 0000000..3d971db
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/lease/lease.wxml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+ 发布人:{{item.contact_hide}}
+
+
+ {{item.price}} 元/月
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/lease/lease.wxss b/手太欠/物业小程序/物业小程序/pages/lease/lease.wxss
new file mode 100644
index 0000000..035a2dd
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/lease/lease.wxss
@@ -0,0 +1,96 @@
+/* 房屋租赁 */
+.header-classify {
+ white-space: nowrap;
+ box-sizing: border-box;
+}
+
+.periphery-tab {
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ display: flex;
+ height: 80rpx;
+ line-height: 80rpx;
+ z-index: 9;
+ background: white;
+ border-bottom: 2rpx solid #e1e1e1;
+}
+
+.periphery-tab-item {
+ font-size: 30rpx;
+ width: 50%;
+ text-align: center;
+ color: #000;
+ background: white;
+ display: inline-block;
+ position: relative;
+}
+
+.periphery-tab-item.active {
+ color: #cea760;
+}
+
+.periphery-tab-item::after {
+ position: absolute;
+ content: '';
+ background-color: transparent;
+ width: 50rpx;
+ height: 6rpx;
+ left: calc(50% - 25rpx);
+ bottom: 2rpx;
+ border-radius: 20rpx;
+}
+
+.periphery-tab-item.active::after {
+ background-color: #cea760;
+}
+
+/* 列表 */
+.periphery-content {
+ margin: 100rpx 20rpx 0;
+}
+
+.peripheryList {
+ position: relative;
+ margin-bottom: 20rpx;
+}
+
+.peripheryList-img {
+ position: relative;
+ width: 220rpx;
+ height: 165rpx;
+ border-radius: 10rpx;
+ overflow: hidden;
+}
+
+.peripheryList-img image {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.peripheryList-cont {
+ position: absolute;
+ left: 260rpx;
+ top: 20rpx;
+ right: 20rpx;
+ width: calc(100% - 280rpx);
+}
+
+.peripheryList-text {
+ font-size: 28rpx;
+ color: #5c5c5c;
+ margin-top: 10rpx;
+}
+
+.peripheryList-price {
+ color: #cc141c;
+ margin-top: 25rpx;
+}
+
+.peripheryList-price text {
+ font-size: 24rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/life/life.js b/手太欠/物业小程序/物业小程序/pages/life/life.js
new file mode 100644
index 0000000..4285dd0
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/life/life.js
@@ -0,0 +1,66 @@
+// pages/life/life.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/life/life.json b/手太欠/物业小程序/物业小程序/pages/life/life.json
new file mode 100644
index 0000000..fc9a51a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/life/life.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "便民生活"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/life/life.wxml b/手太欠/物业小程序/物业小程序/pages/life/life.wxml
new file mode 100644
index 0000000..11c6aa6
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/life/life.wxml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ 便民生活
+ 房屋租赁
+
+
+
+
+
+ 便民生活
+ 生活周边
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/life/life.wxss b/手太欠/物业小程序/物业小程序/pages/life/life.wxss
new file mode 100644
index 0000000..9cb57a4
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/life/life.wxss
@@ -0,0 +1,86 @@
+/* 便民生活 */
+.life {
+ padding: 30rpx 20rpx;
+}
+
+.lifeLabel {
+ position: relative;
+ width: 100%;
+ padding-top: 43%;
+ border-radius: 10rpx;
+ overflow: hidden;
+ margin-bottom: 30rpx;
+ color: #fff;
+}
+
+.lifeLabel-img {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ z-index: 9;
+}
+
+.lifeLabel-text, .lifeLabel-cont {
+ position: absolute;
+ width: 100%;
+ z-index: 10;
+}
+
+.lifeLabel-text {
+ right: 80rpx;
+ top: 50rpx;
+ text-align: right;
+}
+
+.lifeLabel-cont {
+ top: 20rpx;
+ text-align: center;
+}
+
+.lifeLabel-name {
+ font-size: 54rpx;
+ margin-top: 14rpx;
+}
+
+.lifeLabel-text .lifeLabel-tips, .lifeLabel-cont .lifeLabel-tips {
+ display: inline-block;
+ font-size: 26rpx;
+ font-weight: 600;
+ height: 44rpx;
+ line-height: 44rpx;
+}
+
+.lifeLabel-text .lifeLabel-tips {
+ position: relative;
+ background-color: #a79e5b;
+ padding: 0 25rpx;
+}
+
+.lifeLabel-text .lifeLabel-tips::after, .lifeLabel-text .lifeLabel-tips::before {
+ position: absolute;
+ content: '';
+ width: 0;
+ height: 0;
+ border-top: 22rpx solid transparent;
+ border-bottom: 22rpx solid transparent;
+ top: 0;
+}
+
+.lifeLabel-text .lifeLabel-tips::after {
+ border-left: 10rpx solid #41334d;
+ left: 0;
+}
+
+.lifeLabel-text .lifeLabel-tips::before {
+ border-right: 10rpx solid #41334d;
+ right: 0;
+}
+
+.lifeLabel-cont .lifeLabel-tips {
+ background-color: #fff;
+ color: #4b4cb8;
+ border-radius: 30rpx;
+ padding: 0 14rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/lifeDetails/lifeDetails.js b/手太欠/物业小程序/物业小程序/pages/lifeDetails/lifeDetails.js
new file mode 100644
index 0000000..521e0ec
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/lifeDetails/lifeDetails.js
@@ -0,0 +1,122 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ type : '', //详情页 periphery为周边详情;house为房屋出租详情
+ articleId : '', //详情id
+ detailsCont : '', //详情内容
+ articleContent : '', //详情内容简介
+ publish : false, //评论状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ type : options.type,
+ articleId : options.id
+ })
+
+ // 获取周边详情
+ this.detailsInfo();
+ },
+
+ /**
+ * 周边详情
+ */
+ detailsInfo() {
+ if(this.data.type == 'periphery') {
+ wx.$api.life.details(this.data.articleId).then(res=>{
+ console.log(res)
+ this.setData({
+ detailsCont : res.data,
+ articleContent : res.data.content.replace(/\
{
+ console.log(res)
+ this.setData({
+ detailsCont : res.data,
+ articleContent : res.data.content.replace(/\
{
+ this.setData({
+ publish : !this.data.publish
+ })
+ // 获取周边详情
+ this.detailsInfo();
+ })
+ } else {
+ wx.$api.life.roomComment(articleId, {content: content}).then(res=>{
+ this.setData({
+ publish : !this.data.publish
+ })
+ // 获取房屋租赁详情
+ this.detailsInfo();
+ })
+ }
+ },
+
+ /**
+ * 删除评论内容
+ */
+ delTap(e) {
+ let comment_id = e.currentTarget.dataset.id
+ wx.showModal({
+ title : '提示',
+ content : '是否删除地址',
+ success : res=> {
+ if (res.confirm) {
+ wx.showLoading({
+ title: '删除中',
+ })
+ wx.$api.life.commentDel(comment_id).then(res=>{
+ // 获取详情
+ this.detailsInfo();
+ })
+ }
+ }
+ })
+ }
+
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/lifeDetails/lifeDetails.json b/手太欠/物业小程序/物业小程序/pages/lifeDetails/lifeDetails.json
new file mode 100644
index 0000000..7533edb
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/lifeDetails/lifeDetails.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "详情"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/lifeDetails/lifeDetails.wxml b/手太欠/物业小程序/物业小程序/pages/lifeDetails/lifeDetails.wxml
new file mode 100644
index 0000000..335e2a1
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/lifeDetails/lifeDetails.wxml
@@ -0,0 +1,65 @@
+
+
+ {{detailsCont.title}}
+
+
+
+ {{detailsCont.contact_hide}}
+
+ ¥{{detailsCont.price}}
+
+
+
+
+
+ {{detailsCont.title}}
+ {{detailsCont.created_at}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 评价
+
+
+
+
+ {{item.user_id.nickname}}
+ 删除评论
+
+ {{item.content}}
+ {{item.created_at}}
+
+
+
+
+
+
+
+
+
+ 写评论
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/lifeDetails/lifeDetails.wxss b/手太欠/物业小程序/物业小程序/pages/lifeDetails/lifeDetails.wxss
new file mode 100644
index 0000000..7300c58
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/lifeDetails/lifeDetails.wxss
@@ -0,0 +1,223 @@
+
+/* 便民生活详情 */
+.workBanner {
+ margin-top: 20rpx;
+ position: relative;
+ padding-top: 100%;
+ width: 100%;
+}
+.workBanner-img {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.details-title {
+ margin: 20rpx 0;
+}
+
+.details-name {
+ font-weight: 600;
+}
+
+.details-price {
+ font-size: 28rpx;
+ margin-top: 20rpx;
+ display: flex;
+ line-height: 70rpx;
+}
+
+.details-price-head {
+ flex: 1;
+ display: flex;
+}
+
+.details-price-head image {
+ width: 70rpx;
+ height: 70rpx;
+ margin-right: 20rpx;
+ border-radius: 50%;
+}
+
+.details-price-time {
+ color: #d42e3b;
+ font-weight: 600;
+}
+
+
+/* 简介 */
+.details-brief {
+ margin-bottom: 20rpx;
+ font-weight: 600;
+}
+
+.details-cont {
+ text-align: center;
+ margin-top: 20rpx;
+}
+
+.details-time {
+ color: #8d8d8d;
+}
+
+.details-text {
+ margin-bottom: 20rpx;
+ font-size: 28rpx;
+}
+
+/* 评价 */
+.evaluate {
+ border-bottom: solid 110rpx transparent;
+ margin-bottom: 20rpx;
+}
+
+.evaluate-li {
+ display: flex;
+ margin-top: 40rpx;
+ padding-bottom: 40rpx;
+ background-color: white;
+}
+
+.evaluate-li:last-child {
+ padding-bottom: 0;
+}
+
+.evaluate-head {
+ width: 100rpx;
+ height: 100rpx;
+ border-radius: 50%;
+}
+
+.evaluate-cont {
+ width: calc(100% - 130rpx);
+ margin-left: 30rpx;
+ font-size: 28rpx;
+}
+
+.evaluate-name {
+ color: #666d86;
+ display: flex;
+ line-height: 44rpx;
+}
+
+.evaluate-name text {
+ display: block;
+ flex: 1;
+ font-size: 32rpx;
+}
+
+.evaluate-text {
+ margin: 20rpx 0;
+}
+
+.evaluate-tiem {
+ font-size: 26rpx;
+ color: #999;
+}
+
+.evaluate-del {
+ font-size: 26rpx;
+ color: #52b96a;
+}
+
+
+.public-btn {
+ width: 100%;
+ background: #52b96a;
+ height: 90rpx;
+ line-height: 90rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ border-radius: 100rpx;
+ margin: 40rpx 0;
+}
+
+.evaluate-btn {
+ background-color: #fff;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ z-index: 99;
+ width: 100%;
+ height: 110rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 15rpx;
+ box-sizing: border-box;
+}
+
+.evaluate-btn-name {
+ background: #eeeff1;
+ color: #9a9b9d;
+ width: 100%;
+ height: 100%;
+ line-height: 80rpx;
+ border-radius: 100rpx;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ display: flex;
+}
+
+.evaluate-btn-name image {
+ width: 32rpx;
+ height: 32rpx;
+ margin: 24rpx 20rpx 0 0;
+}
+
+.evaluate-btn-make {
+ width: 100%;
+ background: #52b96a;
+ height: 84rpx;
+ line-height: 84rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ text-align: center;
+ border-radius: 50rpx;
+}
+
+/* 评论弹出 */
+.commentCont {
+ position: fixed;
+ width: 100%;
+ bottom: 0;
+ left: 0;
+ z-index: 1002;
+ padding-bottom: 100rpx;
+ box-sizing: border-box;
+ background-color: #fff;
+ display: block;
+}
+
+.commentCont-btn[size="mini"] {
+ position: absolute;
+ right: 10rpx;
+ bottom: 10rpx;
+ top: 10rpx;
+ width: 100rpx;
+ margin-left: 10rpx;
+ background: #52b96a;
+ color: #fff;
+ height: 70rpx;
+ line-height: 70rpx;
+ padding: 0;
+ font-size: 28rpx;
+}
+
+.commentCont-btn::after {
+ display: none;
+}
+
+.commentCont-input {
+ position: absolute;
+ left: 10rpx;
+ top: 0;
+ width: calc(100% - 140rpx);
+ height: 90%;
+ display: block;
+ padding: 0 10rpx;
+ box-sizing: border-box;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/login/login.js b/手太欠/物业小程序/物业小程序/pages/login/login.js
new file mode 100644
index 0000000..923a2f8
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/login/login.js
@@ -0,0 +1,60 @@
+
+const app = getApp()
+
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ hasUserInfo : false, //处理页面弹窗状态
+ code : '', //code
+ token : '', //临时存储token
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.wxLogin()
+ },
+
+ /**
+ * 手机号码授权
+ */
+ PhoneNumber(e){
+ wx.$api.auth.authLogin({
+ code : this.data.code,
+ iv : e.detail.iv,
+ encryptedData : e.detail.encryptedData
+ }).then(res=>{
+ console.log(res)
+ // 第一登录的用户去绑定手机号码
+ if(res.data.has_nickname == false){
+ wx.navigateTo({
+ url: '/pages/mobile/mobile?token=' + res.data.access_token,
+ })
+ }else{
+ // 更新全局状态
+ app.globalData.token = res.data.access_token
+ app.globalData.isUser = true
+ // 存储token
+ wx.setStorageSync('token', res.data.access_token)
+ // 返回信息
+ wx.navigateBack()
+ }
+ })
+ },
+
+ /**
+ * 更新code
+ */
+ wxLogin(){
+ wx.login({
+ success: res=>{
+ this.setData({
+ code: res.code
+ })
+ }
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/login/login.json b/手太欠/物业小程序/物业小程序/pages/login/login.json
new file mode 100644
index 0000000..1120a94
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/login/login.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {},
+ "navigationBarBackgroundColor": "#7ab77a",
+ "navigationBarTitleText" : "手机号授权",
+ "navigationBarTextStyle" : "white"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/login/login.wxml b/手太欠/物业小程序/物业小程序/pages/login/login.wxml
new file mode 100644
index 0000000..5a6d9fd
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/login/login.wxml
@@ -0,0 +1,14 @@
+
+
+
+
+ 微信授权成功后,可操作其他功能
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/login/login.wxss b/手太欠/物业小程序/物业小程序/pages/login/login.wxss
new file mode 100644
index 0000000..923475b
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/login/login.wxss
@@ -0,0 +1,73 @@
+/* 授权 */
+.empower-img {
+ position: fixed;
+ width: 100vw;
+ height: 100vh;
+ left: 0;
+ top: 0;
+}
+
+.empower-cont {
+ position: fixed;
+ left: 60rpx;
+ right: 60rpx;
+ top: calc(50% - 350rpx);
+ background-color: white;
+ height: 700rpx;
+ z-index: 9;
+ border-radius: 10rpx;
+ overflow: hidden;
+}
+
+.empower-title {
+ position: absolute;
+ width: 100%;
+ text-align: center;
+ line-height: 90rpx;
+ background-color: #f1f2f3;
+ font-weight: 600;
+ left: 0;
+ top: 0;
+}
+
+.empower-icon {
+ position: absolute;
+ width: 500rpx;
+ height: 250rpx;
+ top: 180rpx;
+ left: calc(50% - 250rpx);
+}
+
+.empower-btn[size="default"] {
+ background-color: #59b06c;
+ color: #fff;
+ text-align: center;
+ line-height: 100rpx;
+ height: 100rpx;
+ border-radius: 60rpx;
+ box-shadow: 0 10rpx 10rpx rgba(89, 176, 108, .3);
+ position: absolute;
+ bottom: 60rpx;
+ margin: 0 50rpx;
+ padding: 0;
+ width: calc(100% - 100rpx);
+}
+
+.empower-home {
+ background-color: rgba(255, 255, 255, .5);
+ padding: 20rpx;
+ box-sizing: border-box;
+ position: fixed;
+ width: 100rpx;
+ height: 100rpx;
+ top: calc(50% + 450rpx);
+ left: calc(50% - 50rpx);
+ z-index: 10;
+ border-radius: 50%;
+}
+
+.empower-home image {
+ width: 100%;
+ height: 100%;
+
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/makeDetails/makeDetails.js b/手太欠/物业小程序/物业小程序/pages/makeDetails/makeDetails.js
new file mode 100644
index 0000000..c94a5bf
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/makeDetails/makeDetails.js
@@ -0,0 +1,65 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ isUser : app.globalData.isUser, //用户登录状态
+ makeId : '', //服务详情id
+ detailsCont : '', //详情
+ articleContent : '', //详情简介
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ makeId : options.id
+ })
+
+ // 获取服务详情
+ this.detailsInfo();
+ },
+
+ onShow(){
+ this.setData({
+ isUser : getApp().globalData.isUser
+ })
+ },
+
+ /**
+ * 服务详情
+ */
+ detailsInfo() {
+ wx.$api.index.serviceInfo(this.data.makeId).then(res=>{
+ this.setData({
+ detailsCont : res.data,
+ articleContent : res.data.content.replace(/\
+
+
+
+ {{detailsCont.title}}
+ ¥{{detailsCont.price}}/{{detailsCont.unit}}
+
+
+
+
+
+ 服务简介
+
+
+
+
+
+ 服务评价
+
+
+
+
+ {{item.user_id.nickname}}
+
+
+ {{item.content}}
+ {{item.created_at}}
+
+
+
+
+
+
+
+ 预约服务
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/makeDetails/makeDetails.wxss b/手太欠/物业小程序/物业小程序/pages/makeDetails/makeDetails.wxss
new file mode 100644
index 0000000..877afc4
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/makeDetails/makeDetails.wxss
@@ -0,0 +1,130 @@
+/* 家政服务详情 */
+.details-title {
+ margin: 20rpx 0;
+ display: flex;
+}
+
+.details-title-img {
+ width: 100rpx;
+ height: 100rpx;
+ border-radius: 50%;
+ margin-right: 20rpx;
+}
+
+.details-title-cont {
+ width: calc(100% - 120rpx);
+}
+
+.details-name {
+ font-weight: 600;
+}
+
+.details-price {
+ color: #d42e3b;
+ font-size: 28rpx;
+ margin-top: 20rpx;
+}
+
+/* 简介 */
+.details-brief {
+ font-size: 34rpx;
+ margin-bottom: 20rpx;
+ font-weight: 600;
+}
+
+.details-cont {
+ margin-bottom: 20rpx;
+}
+
+/* 评价 */
+.evaluate {
+ border-bottom: solid 110rpx transparent;
+}
+
+.evaluate-li {
+ display: flex;
+ margin-top: 40rpx;
+ padding-bottom: 40rpx;
+}
+
+.evaluate-head {
+ width: 100rpx;
+ height: 100rpx;
+ border-radius: 50%;
+}
+
+.evaluate-cont {
+ width: calc(100% - 130rpx);
+ margin-left: 30rpx;
+ font-size: 28rpx;
+}
+
+.evaluate-name {
+ color: #666d86;
+}
+
+.evaluate-text {
+ margin: 20rpx 0;
+}
+
+.evaluate-tiem {
+ font-size: 26rpx;
+ color: #999;
+}
+
+
+.public-btn {
+ width: 100%;
+ background: #52b96a;
+ height: 90rpx;
+ line-height: 90rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ border-radius: 100rpx;
+ margin: 40rpx 0;
+}
+
+.evaluate-btn {
+ background-color: #fff;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ z-index: 99;
+ width: 100%;
+ height: 110rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 15rpx;
+ box-sizing: border-box;
+}
+
+.evaluate-btn-name {
+ background: #eeeff1;
+ color: #9a9b9d;
+ width: 100%;
+ height: 100%;
+ line-height: 80rpx;
+ border-radius: 100rpx;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ display: flex;
+}
+
+.evaluate-btn-name image {
+ width: 32rpx;
+ height: 32rpx;
+ margin: 24rpx 20rpx 0 0;
+}
+
+.evaluate-btn-make {
+ width: 100%;
+ background: #52b96a;
+ height: 84rpx;
+ line-height: 84rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ text-align: center;
+ border-radius: 50rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/makeForm/makeForm.js b/手太欠/物业小程序/物业小程序/pages/makeForm/makeForm.js
new file mode 100644
index 0000000..fa7c6e1
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/makeForm/makeForm.js
@@ -0,0 +1,95 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ id : '', //预约id
+ price : '', //预约价格
+ dataTime : '请选择日期', //预约日期
+ hourTime : '请选择时间', //预约时间
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ id : options.id,
+ price : options.price
+ })
+ },
+
+ /**
+ * 选择预约时间
+ */
+ bindDate(e) {
+ this.setData({
+ dataTime: e.detail.value
+ })
+ },
+
+ /**
+ * 选择预约时间
+ */
+ bindTime(e) {
+ this.setData({
+ hourTime: e.detail.value
+ })
+ },
+
+ /**
+ * 预约成功
+ */
+ submitMake(e){
+ let name = e.detail.value.name,
+ mobile = e.detail.value.mobile,
+ address = e.detail.value.address,
+ appointment_id = this.data.id,
+ time = this.data.dataTime + ' ' + this.data.hourTime
+ wx.login({
+ success: res=>{
+ wx.$api.index.hourseForm(appointment_id,{
+ code : res.code,
+ name : name,
+ mobile : mobile,
+ service_at : time,
+ address : address
+ }).then(res=>{
+ let payInfo = JSON.parse(res.data.payment),
+ logId = res.data.log_id
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ wx.showToast({
+ title: '支付成功',
+ icon : 'success'
+ })
+ wx.redirectTo({
+ url: '/pages/paySuccess/paySuccess?logId=' + logId,
+ })
+ }
+ },
+ fail : res=>{
+ wx.navigateBack({
+ delta: 2
+ })
+ }
+ })
+
+ })
+ }
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/makeForm/makeForm.json b/手太欠/物业小程序/物业小程序/pages/makeForm/makeForm.json
new file mode 100644
index 0000000..fa330f1
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/makeForm/makeForm.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "服务预约"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/makeForm/makeForm.wxml b/手太欠/物业小程序/物业小程序/pages/makeForm/makeForm.wxml
new file mode 100644
index 0000000..c6359d0
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/makeForm/makeForm.wxml
@@ -0,0 +1,49 @@
+
+
+
+ 服务名称
+
+ ¥{{price}}
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/makeForm/makeForm.wxss b/手太欠/物业小程序/物业小程序/pages/makeForm/makeForm.wxss
new file mode 100644
index 0000000..206ab7b
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/makeForm/makeForm.wxss
@@ -0,0 +1,91 @@
+/* 家政服务 */
+.makeTop {
+ display: flex;
+ margin: 20rpx;
+}
+
+.makeTop-name {
+ flex: 1;
+ line-height: 36rpx;
+ display: flex;
+}
+
+.makeTop-name image {
+ width: 36rpx;
+ height: 36rpx;
+ margin: 0 20rpx 0 0;
+}
+
+.makeTop-price {
+ color: #cc141c;
+}
+
+
+/* 表单 */
+.make-form {
+ display: block;
+ margin: 0 20rpx;
+}
+
+.make-label {
+ margin-bottom: 50rpx;
+ padding-bottom: 40rpx;
+}
+
+.make-label:last-child {
+ margin-bottom: 20rpx;
+}
+
+.make-label label {
+ margin-bottom: 20rpx;
+ display: block;
+}
+
+.make-label textarea, .make-label input {
+ font-size: 30rpx;
+ width: 100%;
+}
+
+/* 底部工具栏 */
+
+.make-footer{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ border-top: solid 1rpx #f2f2f2;
+ height: 100rpx;
+ line-height: 100rpx;
+ z-index: 99;
+ background: white;
+}
+
+.make-footer-total{
+ padding-right: calc(30vw + 30rpx);
+ padding-right: -webkit-calc(30vw + 30rpx);
+ padding-left: 30rpx;
+ color: #737787;
+ font-size: 28rpx;
+}
+
+.make-footer-total text{
+ color: #cea760;
+}
+
+.make-footer-total-price{
+ font-weight: bold;
+ font-size: 30rpx;
+}
+
+.make-footer-btn[size="mini"]{
+ width: 26vw;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ color: white;
+ border-radius: 40rpx;
+ height: 74rpx;
+ line-height: 74rpx;
+ font-size: 30rpx;
+ position: absolute;
+ top: 15rpx;
+ right: 20rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/makeSuccess/makeSuccess.js b/手太欠/物业小程序/物业小程序/pages/makeSuccess/makeSuccess.js
new file mode 100644
index 0000000..b141dbf
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/makeSuccess/makeSuccess.js
@@ -0,0 +1,28 @@
+// pages/makeSuccess/makeSuccess.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ logId : '', //预约id
+ type : ''
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ type : options.type
+ })
+ let id = options.logid
+ },
+
+ /**
+ * 返回上一页
+ */
+ goback(){
+ wx.navigateBack()
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/makeSuccess/makeSuccess.json b/手太欠/物业小程序/物业小程序/pages/makeSuccess/makeSuccess.json
new file mode 100644
index 0000000..6424cc1
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/makeSuccess/makeSuccess.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "预约成功"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/makeSuccess/makeSuccess.wxml b/手太欠/物业小程序/物业小程序/pages/makeSuccess/makeSuccess.wxml
new file mode 100644
index 0000000..fa4571a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/makeSuccess/makeSuccess.wxml
@@ -0,0 +1,19 @@
+
+
+
+
+ 预约成功
+
+
+
+
+ 预约列表
+
+
+ 预约列表
+
+
+ 返回
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/makeSuccess/makeSuccess.wxss b/手太欠/物业小程序/物业小程序/pages/makeSuccess/makeSuccess.wxss
new file mode 100644
index 0000000..34b5ba9
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/makeSuccess/makeSuccess.wxss
@@ -0,0 +1,52 @@
+page {
+ background-color: white;
+}
+
+/* 预约成功 */
+.paySuccess {
+ text-align: center;
+ padding: 80rpx 0;
+}
+
+.paySuccess-img {
+ width: 220rpx;
+ height: 220rpx;
+ margin: 0 auto;
+}
+
+.paySuccess-cont {
+ color: #a7a7a7;
+ margin-bottom: 80rpx;
+}
+
+.paySuccess-cont text {
+ font-weight: 600;
+ display: block;
+ margin: 30rpx 0 20rpx;
+ color: #000;
+ font-size: 38rpx;
+}
+
+.paySuccess-btn {
+ margin: 70rpx;
+}
+
+.paySuccess-btn .paySuccess-see, .paySuccess-btn .paySuccess-retn {
+ width: 100%;
+ border-radius: 50rpx;
+ line-height: 84rpx;
+ height: 84rpx;
+ border: 2rpx solid #68d054;
+ margin-top: 40rpx;
+}
+
+.paySuccess-btn .paySuccess-see {
+ color: #fff;
+ background-color: #68d054;
+ border-color: transparent;
+}
+
+.paySuccess-btn .paySuccess-retn {
+ color: #68d054;
+ background-color: transparent;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/manyPay/manyPay.js b/手太欠/物业小程序/物业小程序/pages/manyPay/manyPay.js
new file mode 100644
index 0000000..dea186c
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/manyPay/manyPay.js
@@ -0,0 +1,177 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ orderId : '', //订单id
+ amount : '', //总额
+ type : '',
+ statusBarHeight :getApp().globalData.statusBarHeight
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ console.log(options)
+ this.setData({
+ orderId: options.orderid,
+ amount : options.amount,
+ type : options.type
+ })
+
+ },
+
+ /**
+ * 立即支付
+ */
+ submitPay() {
+ // 获取code
+ wx.login({
+ success: res=>{
+ if(this.data.type == "deposiPay") {
+ wx.$api.users.deposit(this.data.orderId, {
+ code : res.code
+ }).then(res=>{
+ if(res.data.is_pay == true) {
+ let payInfo = JSON.parse(res.data.payment)
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ wx.showToast({
+ title: '支付成功',
+ icon : 'success'
+ })
+ setTimeout(()=>{
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Presale'
+ })
+ },2000)
+ }
+ },
+ fail : res=>{
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Presale'
+ })
+ }
+ })
+ } else {
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Presale'
+ })
+ }
+ })
+ } else if(this.data.type == "depositTail") {
+ wx.$api.users.finish(this.data.orderId, {
+ code : res.code
+ }).then(res=>{
+ if(res.data.is_pay == true) {
+ let payInfo = JSON.parse(res.data.payment)
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ wx.showToast({
+ title: '支付成功',
+ icon : 'success'
+ })
+ setTimeout(()=>{
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Presale'
+ })
+ },2000)
+ }
+ },
+ fail : res=>{
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Presale'
+ })
+ }
+ })
+ } else {
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Presale'
+ })
+ }
+ })
+ } else {
+ wx.$api.users.pay(this.data.orderId, {
+ code : res.code
+ }).then(res=>{
+ if(res.data.is_pay == true) {
+ let payInfo = JSON.parse(res.data.payment)
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ wx.showToast({
+ title: '支付成功',
+ icon : 'success'
+ })
+ setTimeout(()=>{
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder'
+ })
+ },2000)
+ }
+ },
+ fail : res=>{
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder'
+ })
+ }
+ })
+ } else {
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder'
+ })
+ }
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 是否取消支付
+ */
+ payReturn() {
+ wx.showModal({
+ title : '提示',
+ content : '是否取消支付',
+ success (res) {
+ if (res.confirm) {
+ if(this.data.type == "deposiPay" || this.data.type == "depositTail") {
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Presale'
+ })
+ } else {
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder'
+ })
+ }
+ }
+ }
+ })
+ },
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/manyPay/manyPay.json b/手太欠/物业小程序/物业小程序/pages/manyPay/manyPay.json
new file mode 100644
index 0000000..590f347
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/manyPay/manyPay.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationStyle" : "custom"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/manyPay/manyPay.wxml b/手太欠/物业小程序/物业小程序/pages/manyPay/manyPay.wxml
new file mode 100644
index 0000000..731d4cc
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/manyPay/manyPay.wxml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ 应付金额:
+ ¥{{amount}}
+
+
+
+
+
+
+
+
+ 微信支付
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/manyPay/manyPay.wxss b/手太欠/物业小程序/物业小程序/pages/manyPay/manyPay.wxss
new file mode 100644
index 0000000..836ba46
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/manyPay/manyPay.wxss
@@ -0,0 +1,82 @@
+
+/* 头部 */
+
+.barHeader {
+ position: fixed;
+ background: #fff;
+ color: #000;
+ top: 0;
+ left: 0;
+ z-index: 9;
+ width: 100%;
+ height: 100rpx;
+ display: flex;
+}
+
+.barHeader-tool-icon {
+ width: 40rpx;
+ height: 40rpx;
+ vertical-align: middle;
+ margin: 32rpx 0 0 20rpx;
+ transform: rotate(180deg);
+}
+
+.barHeader-title {
+ position: relative;
+ width: 100%;
+ text-align: center;
+ height: 100rpx;
+ line-height: 100rpx;
+}
+
+
+/* 支付 */
+
+.payContTitle {
+ background: white;
+ padding: 40rpx 30rpx;
+ border-bottom: 2rpx solid #ebebeb;
+ margin-bottom: 20rpx;
+}
+
+.payContTitle text {
+ color: #fe4d4e;
+}
+
+.payContList {
+ box-shadow: 0 0 30rpx rgba(0, 0, 0, 0.2);
+ padding: 30rpx;
+ background: #fff;
+}
+
+.payContList-label {
+ height: 50rpx;
+ line-height: 50rpx;
+ display: flex;
+}
+
+.payContList-label-name {
+ flex: 1;
+ display: flex;
+}
+.payContList-label-img {
+ width: 50rpx;
+ height: 50rpx;
+ margin-right: 20rpx;
+}
+
+.payBtn {
+ background: #3ec28e;
+ color: #fff;
+ width: calc(100% - 40rpx) !important;
+ padding: 0 !important;
+ height: 80rpx;
+ line-height: 80rpx;
+ margin: 60rpx 20rpx 20rpx;
+ font-size: 30rpx;
+}
+
+.payContList-label-name text {
+ color: #999;
+ font-size: 26rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/mobile/mobile.js b/手太欠/物业小程序/物业小程序/pages/mobile/mobile.js
new file mode 100644
index 0000000..0515a61
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/mobile/mobile.js
@@ -0,0 +1,49 @@
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ token: ""
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ if(options.token && options.token == ''){
+ wx.showToast({
+ title: '参数错误',
+ icon : 'fial'
+ })
+ return
+ }
+ this.setData({
+ token: options.token || ''
+ })
+ },
+
+ userInfo(e){
+ console.log(e.detail.userInfo)
+ wx.$api.auth.authHead(
+ {"Authorization": this.data.token},
+ {
+ nickname: e.detail.userInfo.nickName,
+ avatar : e.detail.userInfo.avatarUrl,
+ sex : e.detail.userInfo.gender
+ }
+ ).then(res=>{
+ // 更新全局状态
+ app.globalData.token = this.data.token
+ app.globalData.isUser = true
+ // 存储token
+ wx.setStorageSync('token', this.data.token)
+ // 返回信息
+ wx.navigateBack({
+ delta: 2
+ })
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/mobile/mobile.json b/手太欠/物业小程序/物业小程序/pages/mobile/mobile.json
new file mode 100644
index 0000000..bf51ebb
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/mobile/mobile.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "微信用户授权"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/mobile/mobile.wxml b/手太欠/物业小程序/物业小程序/pages/mobile/mobile.wxml
new file mode 100644
index 0000000..a942b76
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/mobile/mobile.wxml
@@ -0,0 +1,11 @@
+
+
+
+
+ 首次登录,需要首先用户信息
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/mobile/mobile.wxss b/手太欠/物业小程序/物业小程序/pages/mobile/mobile.wxss
new file mode 100644
index 0000000..547a748
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/mobile/mobile.wxss
@@ -0,0 +1,72 @@
+/* 授权 */
+.empower-img {
+ position: fixed;
+ width: 100vw;
+ height: 100vh;
+ left: 0;
+ top: 0;
+}
+
+.empower-cont {
+ position: fixed;
+ left: 60rpx;
+ right: 60rpx;
+ top: calc(50% - 350rpx);
+ background-color: white;
+ height: 700rpx;
+ z-index: 9;
+ border-radius: 10rpx;
+ overflow: hidden;
+}
+
+.empower-title {
+ position: absolute;
+ width: 100%;
+ text-align: center;
+ line-height: 90rpx;
+ background-color: #f1f2f3;
+ font-weight: 600;
+ left: 0;
+ top: 0;
+}
+
+.empower-icon {
+ position: absolute;
+ width: 400rpx;
+ height: 250rpx;
+ top: 180rpx;
+ left: calc(50% - 200rpx);
+}
+
+.empower-btn[size="default"] {
+ background-color: #f44747;
+ color: #fff;
+ text-align: center;
+ line-height: 100rpx;
+ height: 100rpx;
+ border-radius: 60rpx;
+ position: absolute;
+ bottom: 60rpx;
+ margin: 0 50rpx;
+ padding: 0;
+ width: calc(100% - 100rpx);
+}
+
+.empower-home {
+ background-color: rgba(255, 255, 255, .5);
+ padding: 20rpx;
+ box-sizing: border-box;
+ position: fixed;
+ width: 100rpx;
+ height: 100rpx;
+ top: calc(50% + 450rpx);
+ left: calc(50% - 50rpx);
+ z-index: 10;
+ border-radius: 50%;
+}
+
+.empower-home image {
+ width: 100%;
+ height: 100%;
+
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/notice/notice.js b/手太欠/物业小程序/物业小程序/pages/notice/notice.js
new file mode 100644
index 0000000..2bee10d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/notice/notice.js
@@ -0,0 +1,68 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ noticeArr : [], //公告数组
+ page : {}, //分页信息
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 获取公告列表
+ this.noticeInfo();
+ },
+
+ /**
+ * 周边列表
+ */
+ noticeInfo(page) {
+ wx.$api.index.notice({
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.noticeArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ noticeArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取公告列表
+ this.noticeInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取公告列表
+ this.noticeInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/notice/notice.json b/手太欠/物业小程序/物业小程序/pages/notice/notice.json
new file mode 100644
index 0000000..51dd8ea
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/notice/notice.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "公告",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/notice/notice.wxml b/手太欠/物业小程序/物业小程序/pages/notice/notice.wxml
new file mode 100644
index 0000000..73d71d4
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/notice/notice.wxml
@@ -0,0 +1,32 @@
+
+
+
+
+ {{item.title}}
+ {{item.created_at}}
+
+
+ {{item.description}}
+
+
+
+ 查看详情
+
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/notice/notice.wxss b/手太欠/物业小程序/物业小程序/pages/notice/notice.wxss
new file mode 100644
index 0000000..5ccc529
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/notice/notice.wxss
@@ -0,0 +1,38 @@
+/* 公告 */
+.notice {
+ margin: 20rpx;
+}
+
+.notice-li {
+ margin-bottom: 20rpx;
+}
+
+.notice-title, .notice-url {
+ display: flex;
+}
+
+.notice-name, .notice-more {
+ flex: 1;
+ margin-right: 40rpx;
+}
+
+.notice-text {
+ color: #8a97b0;
+ font-size: 30rpx;
+ margin: 10rpx 0 30rpx;
+}
+
+.notice-img {
+ width: 40rpx;
+ height: 40rpx;
+}
+
+.notice-more {
+ font-size: 28rpx;
+}
+
+.notice-time {
+ color: #999999;
+ font-size: 30rpx;
+ padding-top: 2rpx;
+}
diff --git a/手太欠/物业小程序/物业小程序/pages/paySuccess/paySuccess.js b/手太欠/物业小程序/物业小程序/pages/paySuccess/paySuccess.js
new file mode 100644
index 0000000..027a6ff
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/paySuccess/paySuccess.js
@@ -0,0 +1,59 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ price : '', //预约价格
+ logId : '', //预约返回id
+ trade_no : '', //预约订单
+ type : '', //type为keep维修预约成功
+ dingPrice : '', //订单成功价格
+ dingPay : '', //订单成功单号
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ logId : options.logId,
+ type : options.type,
+ dingPrice : options.dingPrice,
+ dingPay : options.dingPay
+ })
+
+ if(options.type != 'dingType') {
+ // 获取订单详情
+ this.makeDetails();
+ }
+
+ },
+
+ /**
+ * 订单详情
+ */
+ makeDetails() {
+ if(this.data.type != "keep") {
+ wx.$api.index.hourseInfo(this.data.logId).then(res=>{
+ this.setData({
+ price : res.data.amount,
+ trade_no: res.data.trade_no
+ })
+ })
+ }
+ },
+
+ /**
+ * 返回上一页
+ */
+ goback(){
+ wx.navigateBack()
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/paySuccess/paySuccess.json b/手太欠/物业小程序/物业小程序/pages/paySuccess/paySuccess.json
new file mode 100644
index 0000000..9dbc255
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/paySuccess/paySuccess.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "支付成功"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/paySuccess/paySuccess.wxml b/手太欠/物业小程序/物业小程序/pages/paySuccess/paySuccess.wxml
new file mode 100644
index 0000000..6c098e0
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/paySuccess/paySuccess.wxml
@@ -0,0 +1,48 @@
+
+
+
+
+ 订单编号:
+ {{dingPay}}
+
+
+ 支付金额:
+ ¥{{dingPrice}}
+
+
+
+
+ 查看订单
+
+
+ 返回
+
+
+
+
+
+
+
+ {{type == 'keep' ? '预约成功':'支付成功'}}
+ 请保持电话通畅,工作人员将与您联系
+
+
+
+ 订单编号:
+ {{trade_no}}
+
+
+ 支付金额:
+ ¥{{price}}
+
+
+
+
+ {{type == 'keep' ? '查看记录':'查看订单'}}
+
+
+ 返回
+
+
+
+
diff --git a/手太欠/物业小程序/物业小程序/pages/paySuccess/paySuccess.wxss b/手太欠/物业小程序/物业小程序/pages/paySuccess/paySuccess.wxss
new file mode 100644
index 0000000..22f8c19
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/paySuccess/paySuccess.wxss
@@ -0,0 +1,68 @@
+page {
+ background-color: #fff;
+}
+
+/* 支付成功 */
+.paySuccess {
+ text-align: center;
+ padding: 80rpx 0;
+}
+
+.paySuccess-img {
+ width: 220rpx;
+ height: 220rpx;
+ margin: 0 auto;
+}
+
+.paySuccess-cont {
+ color: #a7a7a7;
+ margin-bottom: 80rpx;
+}
+
+.paySuccess-cont text {
+ font-weight: 600;
+ display: block;
+ margin: 30rpx 0 20rpx;
+ color: #000;
+ font-size: 38rpx;
+}
+
+.paySuccess-li {
+ display: flex;
+ text-align: left;
+ padding: 40rpx 60rpx 0;
+ box-sizing: border-box;
+}
+
+.paySuccess-label {
+ width: 180rpx;
+ margin-left: 20rpx;
+}
+
+.red {
+ color: #cd1422;
+}
+
+.paySuccess-btn {
+ margin: 70rpx;
+}
+
+.paySuccess-btn .paySuccess-see, .paySuccess-btn .paySuccess-retn {
+ width: 100%;
+ border-radius: 50rpx;
+ line-height: 84rpx;
+ height: 84rpx;
+ border: 2rpx solid #68d054;
+ margin-top: 40rpx;
+}
+
+.paySuccess-btn .paySuccess-see {
+ color: #fff;
+ background-color: #68d054;
+ border-color: transparent;
+}
+
+.paySuccess-btn .paySuccess-retn {
+ color: #68d054;
+ background-color: transparent;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/periphery/periphery.js b/手太欠/物业小程序/物业小程序/pages/periphery/periphery.js
new file mode 100644
index 0000000..b92dab3
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/periphery/periphery.js
@@ -0,0 +1,117 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ classifyId : "", //tab分类
+ scrollLeft : 0, //距离左边距
+ classifyInfo: [], //分类名称
+ peripheryArr: [], //列表数组
+ page : {}, //分页信息
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 获取分类
+ this.classify();
+ },
+
+ /**
+ * 周边列表
+ */
+ periphery(page) {
+ wx.$api.life.articles({
+ category_id: this.data.classifyId,
+ page : page || ''
+ }).then(res=>{
+ console.log(res)
+ let listArr = this.data.peripheryArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ peripheryArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 分类
+ */
+ classify() {
+ wx.$api.life.index().then(res=>{
+ this.setData({
+ classifyInfo: res.data,
+ classifyId : res.data[0].category_id
+ })
+
+ // 获取列表
+ this.periphery();
+ })
+ },
+
+ /**
+ * tabs
+ */
+ orderTab(e){
+ // 获取屏幕宽度
+ let classifyid = e.currentTarget.dataset.id,
+ screenWidth = wx.getSystemInfoSync().screenWidth,
+ offsetLeft = e.currentTarget.offsetLeft
+
+ if ((screenWidth / 2) < offsetLeft){
+ this.setData({
+ scrollLeft: screenWidth / 2
+ })
+ }else{
+ this.setData({
+ scrollLeft: 0
+ })
+ }
+
+ if(this.data.classifyId != classifyid){
+ this.setData({
+ classifyId : classifyid || ""
+ })
+ // 获取列表
+ this.periphery();
+ }
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取周边列表
+ this.periphery();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取周边列表
+ this.periphery(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/periphery/periphery.json b/手太欠/物业小程序/物业小程序/pages/periphery/periphery.json
new file mode 100644
index 0000000..ebcdc52
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/periphery/periphery.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText" : "生活周边",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/periphery/periphery.wxml b/手太欠/物业小程序/物业小程序/pages/periphery/periphery.wxml
new file mode 100644
index 0000000..3e2bd24
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/periphery/periphery.wxml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.type_text}}{{item.title}}
+
+ {{item.description}}
+
+
+ {{item.created_at}}
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/periphery/periphery.wxss b/手太欠/物业小程序/物业小程序/pages/periphery/periphery.wxss
new file mode 100644
index 0000000..1b56b38
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/periphery/periphery.wxss
@@ -0,0 +1,104 @@
+/* 生活周边 */
+.header-classify {
+ white-space: nowrap;
+ box-sizing: border-box;
+}
+
+.periphery-tab {
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ display: flex;
+ height: 80rpx;
+ line-height: 80rpx;
+ z-index: 9;
+ background: white;
+ border-bottom: 2rpx solid #e1e1e1;
+}
+
+.periphery-tab-item {
+ font-size: 30rpx;
+ width: 17%;
+ text-align: center;
+ color: #9c9c9c;
+ background: white;
+ display: inline-block;
+ position: relative;
+}
+
+.periphery-tab-item.active {
+ color: #000;
+}
+
+.periphery-tab-item::after {
+ position: absolute;
+ content: '';
+ background-color: transparent;
+ width: 50rpx;
+ height: 6rpx;
+ left: calc(50% - 25rpx);
+ bottom: 2rpx;
+ border-radius: 20rpx;
+}
+
+.periphery-tab-item.active::after {
+ background-color: #cea760;
+}
+
+/* 列表 */
+.periphery-content {
+ margin: 100rpx 20rpx 0;
+}
+
+.peripheryList {
+ position: relative;
+ margin-bottom: 20rpx;
+}
+
+.peripheryList-img {
+ position: relative;
+ width: 160rpx;
+ height: 160rpx;
+ border-radius: 10rpx;
+ overflow: hidden;
+}
+
+.peripheryList-img image {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.peripheryList-cont {
+ position: absolute;
+ left: 210rpx;
+ top: 20rpx;
+ right: 20rpx;
+ width: calc(100% - 230rpx);
+}
+
+.peripheryList-name text {
+ font-size: 24rpx;
+ background-color: #e1e1e1;
+ border-radius: 50rpx;
+ padding: 0 15rpx;
+ height: 38rpx;
+ line-height: 38rpx;
+ display: inline-block;
+ color: #fff;
+ margin-right: 10rpx;
+}
+
+.peripheryList-text {
+ font-size: 28rpx;
+ margin: 15rpx 0;
+ line-height: 46rpx;
+}
+
+.peripheryList-time {
+ font-size: 26rpx;
+ color: #adadad;
+}
diff --git a/手太欠/物业小程序/物业小程序/pages/publicForm/publicForm.js b/手太欠/物业小程序/物业小程序/pages/publicForm/publicForm.js
new file mode 100644
index 0000000..763b57f
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/publicForm/publicForm.js
@@ -0,0 +1,91 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ id : '', //预约id
+ type :'', //预约类型
+ title : '', //预约标题
+ address : '', //预约地址
+ cover : '', //餐厅logo
+ dataTime : '请选择日期', //预约日期
+ hourTime : '请选择时间', //预约时间
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ id : options.id,
+ type : options.type,
+ title : options.title,
+ address : options.address,
+ cover : options.cover
+ })
+ },
+
+ /**
+ * 选择预约日期
+ */
+ bindDate(e) {
+ this.setData({
+ dataTime: e.detail.value
+ })
+ },
+
+ /**
+ * 选择预约时间
+ */
+ bindTime(e) {
+ this.setData({
+ hourTime: e.detail.value
+ })
+ },
+
+ /**
+ * 预约成功
+ */
+ submitMake(e){
+ console.log()
+ let name = e.detail.value.name,
+ mobile = e.detail.value.mobile,
+ number = e.detail.value.number,
+ remark = e.detail.value.remark,
+ serviceId = this.data.id,
+ time = this.data.dataTime + ' ' + this.data.hourTime
+
+ if(this.data.type == "dining") {
+ wx.$api.index.foodMake(serviceId,{
+ name : name,
+ mobile : mobile,
+ number : number,
+ subscribe_at : time,
+ remark : remark
+ }).then(res=>{
+ console.log(res)
+ wx.redirectTo({
+ url: '/pages/makeSuccess/makeSuccess?id=' + res.data.log_id + '&type=dinins',
+ })
+ })
+ } else {
+ wx.$api.index.appointForm(serviceId,{
+ name : name,
+ mobile : mobile,
+ service_at : time,
+ remark : remark
+ }).then(res=>{
+ wx.redirectTo({
+ url: '/pages/makeSuccess/makeSuccess?id=' + res.data.log_id
+ })
+ })
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/publicForm/publicForm.json b/手太欠/物业小程序/物业小程序/pages/publicForm/publicForm.json
new file mode 100644
index 0000000..0bf417d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/publicForm/publicForm.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "预约"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/publicForm/publicForm.wxml b/手太欠/物业小程序/物业小程序/pages/publicForm/publicForm.wxml
new file mode 100644
index 0000000..1b32abb
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/publicForm/publicForm.wxml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+ {{title}}
+
+
+ {{address}}
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/publicForm/publicForm.wxss b/手太欠/物业小程序/物业小程序/pages/publicForm/publicForm.wxss
new file mode 100644
index 0000000..f7b5817
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/publicForm/publicForm.wxss
@@ -0,0 +1,114 @@
+/* 预约表单 */
+.publicBanner {
+ width: 100%;
+ height: 260rpx;
+}
+
+.publicTap {
+ position: relative;
+ margin: -100rpx 20rpx 30rpx;
+}
+
+.public-name {
+ font-weight: 600;
+}
+
+.public-text {
+ display: flex;
+ border-top: 2rpx solid #efefef;
+}
+
+.public-img {
+ width: 90rpx;
+ height: 90rpx;
+ border-radius: 50%;
+ margin: 20rpx 0 20rpx 20rpx;
+}
+
+.public-text text {
+ flex: 1;
+ width: calc(100% - 340rpx);
+ display: inline-block;
+ font-size: 30rpx;
+ line-height: 44rpx;
+ padding: 20rpx 20rpx 0;
+ box-sizing: border-box;
+ color: #616161;
+}
+
+/* 表单 */
+.public-form {
+ display: block;
+ margin: 0 20rpx;
+}
+
+.public-label {
+ margin-bottom: 50rpx;
+}
+
+.public-label:last-child {
+ margin-bottom: 20rpx;
+}
+
+.public-label label {
+ margin-bottom: 20rpx;
+ display: block;
+}
+
+.public-label textarea,
+.public-label input,
+.public-label picker {
+ border: 2rpx solid #ebebeb;
+ border-radius: 10rpx;
+ font-size: 30rpx;
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.public-label picker {
+ height: 90rpx;
+ line-height: 90rpx;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+}
+
+.public-label-text {
+ display: flex;
+ border: 2rpx solid #ebebeb;
+ border-radius: 10rpx;
+}
+
+.public-label-text input {
+ border: none;
+ width: calc(100% - 80rpx);
+}
+
+.public-label-text text {
+ display: inline-block;
+ width: 80rpx;
+ text-align: center;
+ line-height: 90rpx;
+ font-size: 28rpx;
+}
+
+.public-label input {
+ padding: 0 20rpx;
+ height: 90rpx;
+ line-height: 90rpx;
+}
+
+.public-label textarea {
+ padding: 20rpx;
+}
+
+.public-btn button[size="mini"] {
+ width: 100%;
+ background: #52b96a;
+ height: 90rpx;
+ line-height: 90rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ border-radius: 100rpx;
+ margin: 40rpx 0;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repair/repair.js b/手太欠/物业小程序/物业小程序/pages/repair/repair.js
new file mode 100644
index 0000000..040c0bd
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repair/repair.js
@@ -0,0 +1,63 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ isUser : false, //用户登录状态
+ amount : '', //缴费金额
+ isBind : false, //是否有小区
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ },
+
+ onShow() {
+ this.setData({
+ isUser : app.globalData.isUser
+ })
+
+ // 获取缴费金额
+ this.checkInfo();
+ },
+
+ /**
+ * 缴费金额
+ */
+ checkInfo () {
+ if(this.data.isUser) {
+ wx.$api.repair.check().then(res=>{
+ this.setData({
+ amount : res.data.amount,
+ isBind : res.data.is_bind
+ })
+ })
+ }
+ },
+
+ /**
+ * 处理未登录时的转跳
+ */
+ userNav(e){
+ let pageUrl = e.currentTarget.dataset.url
+ if(this.data.isUser){
+ wx.navigateTo({
+ url: pageUrl
+ })
+ }else{
+ // 去登录
+ wx.navigateTo({
+ url: "../login/login"
+ })
+ }
+ },
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repair/repair.json b/手太欠/物业小程序/物业小程序/pages/repair/repair.json
new file mode 100644
index 0000000..30d12b4
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repair/repair.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "缴费报修"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repair/repair.wxml b/手太欠/物业小程序/物业小程序/pages/repair/repair.wxml
new file mode 100644
index 0000000..3b1fe1c
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repair/repair.wxml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+ 待缴总额
+ ¥{{amount}}
+
+
+ 物业缴费
+
+
+ 及时缴费 爱家有温暖
+
+
+
+ {{amount > 0 ? '立即缴费' : '查看缴费'}}
+
+
+
+
+
+
+ 物业设施·故障报修
+
+
+ 及时报修 爱家有温暖
+
+
+
+ 立即申请
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repair/repair.wxss b/手太欠/物业小程序/物业小程序/pages/repair/repair.wxss
new file mode 100644
index 0000000..771d3fe
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repair/repair.wxss
@@ -0,0 +1,94 @@
+/* 缴费报修 */
+.repair {
+ margin: 0 20rpx;
+}
+
+.repairBanner, .repairImg {
+ width: 100%;
+ position: relative;
+ margin: 30rpx 0;
+}
+
+.repairBanner {
+ padding-top: 25%;
+}
+
+.repairImg {
+ padding-top: 46%;
+}
+
+.repairBanner-img, .repairImg-img {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.repairImg-cont, .repairImg-cost {
+ position: absolute;
+ left: 30rpx;
+}
+
+.repairImg-cont {
+ top: 80rpx;
+}
+
+.repairImg-cost {
+ top: 30rpx;
+}
+
+.repairImg-price {
+ display: flex;
+ font-size: 36rpx;
+ margin-bottom: 14rpx;
+}
+
+.repairImg-cont .repairImg-price text {
+ color: #52b96a;
+ font-size: 40rpx;
+ padding-left: 20rpx;
+ font-weight: 600;
+}
+
+.repairImg-text {
+ color: #9ad6a8;
+}
+
+.repairImg-cost .repairImg-text {
+ color: #a0adb5;
+}
+
+.repairImg-cost .repairImg-price {
+ color: #3282ff;
+ font-size: 42rpx;
+}
+
+.repairImg-cost .repairImg-price view{
+ padding-right: 20rpx;
+ color: #000;
+}
+
+.repairImg-cost .repairImg-price text{
+ padding-left: 20rpx;
+}
+
+.repairImg-cont-btn, .repairImg-cost-btn {
+ width: 220rpx;
+ height: 80rpx;
+ line-height: 80rpx;
+ color: #fff;
+ text-align: center;
+ border-radius: 50rpx;
+ position: absolute;
+ bottom: 30rpx;
+ left: 20rpx;
+}
+
+.repairImg-cont-btn {
+ background-color: #52b96a;
+}
+
+.repairImg-cost-btn {
+ background-color: #3282ff;
+}
diff --git a/手太欠/物业小程序/物业小程序/pages/repairMond/repairMond.js b/手太欠/物业小程序/物业小程序/pages/repairMond/repairMond.js
new file mode 100644
index 0000000..7646cf4
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairMond/repairMond.js
@@ -0,0 +1,102 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ imgs : [],
+ paths : [],
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+
+ },
+
+ /**
+ * 上传图片
+ */
+
+ formUploadFile(){
+ let count = 9 - this.data.imgs.length
+ wx.chooseImage({
+ count : count,
+ success : res=>{
+ // 上传图片
+ if (res.tempFilePaths){
+ let pathArr = res.tempFilePaths
+ wx.showLoading({
+ title: '上传中',
+ })
+ for (let i = 0; i < pathArr.length; i++){
+ wx.$api.file.uploadImg(pathArr[i], {}).then(res=>{
+ let imgArr = this.data.imgs,
+ pathArr = this.data.paths
+ imgArr.push(res.showpath)
+ pathArr.push(res.path)
+ this.setData({
+ imgs : imgArr,
+ paths: pathArr
+ })
+ })
+
+ if (i == pathArr.length - 1) {
+ wx.hideLoading()
+ }
+ }
+ }else{
+ wx.showToast({
+ title: '上传图片失败',
+ icon : 'none'
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 删除图片
+ */
+ removeImg(e){
+ let imgArr = this.data.imgs,
+ pathArr = this.data.paths,
+ index = e.currentTarget.dataset.index
+
+ imgArr.splice(index, 1)
+ pathArr.splice(index, 1)
+
+ this.setData({
+ imgs : imgArr,
+ paths : pathArr
+ })
+ },
+
+ /**
+ * 维修表单
+ */
+ submitMake(e) {
+ let name = e.detail.value.name,
+ mobile = e.detail.value.mobile,
+ address = e.detail.value.address,
+ description = e.detail.value.description
+ wx.$api.repair.repairForm({
+ name : name,
+ mobile : mobile,
+ address : address,
+ description : description,
+ pictures : this.data.paths
+ }).then(res=>{
+ wx.redirectTo({
+ url: '/pages/paySuccess/paySuccess?type=keep',
+ })
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repairMond/repairMond.json b/手太欠/物业小程序/物业小程序/pages/repairMond/repairMond.json
new file mode 100644
index 0000000..f59614c
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairMond/repairMond.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "物业报修"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repairMond/repairMond.wxml b/手太欠/物业小程序/物业小程序/pages/repairMond/repairMond.wxml
new file mode 100644
index 0000000..69c9930
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairMond/repairMond.wxml
@@ -0,0 +1,46 @@
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repairMond/repairMond.wxss b/手太欠/物业小程序/物业小程序/pages/repairMond/repairMond.wxss
new file mode 100644
index 0000000..276a0f2
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairMond/repairMond.wxss
@@ -0,0 +1,126 @@
+/* 物业报修 */
+.repair-form {
+ margin: 20rpx;
+ display: block;
+}
+
+.repair-module {
+ margin-bottom: 20rpx;
+}
+
+.repair-label {
+ margin-bottom: 40rpx;
+}
+
+.repair-label:last-child {
+ margin-bottom: 0;
+}
+
+.repair-label label {
+ margin-bottom: 20rpx;
+ display: block;
+}
+
+.repair-label input {
+ border: 2rpx solid #ebebeb;
+ padding: 15rpx 20rpx;
+ border-radius: 10rpx;
+ font-size: 28rpx;
+}
+
+.repair-label textarea {
+ border-top: 2rpx solid #ebebeb;
+ padding-top: 20rpx;
+ font-size: 28rpx;
+}
+
+.repair-tips {
+ text-align: right;
+ width: 100%;
+ display: block;
+ font-size: 28rpx;
+ color: #dbdbdb;
+}
+
+.repair-btn button[size="mini"]{
+ width: 100%;
+ background: #52b96a;
+ height: 90rpx;
+ line-height: 90rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ border-radius: 100rpx;
+ margin: 40rpx 0;
+}
+
+/* 多图上传 */
+
+.issue-info-img {
+ padding: 20rpx 0;
+ display: flex;
+ flex-wrap: wrap;
+ margin: 0 -10rpx;
+}
+
+.issue-info-img-itme {
+ width: calc(33.33% - 20rpx);
+ padding-top: calc(33.33% - 20rpx);
+ box-sizing: border-box;
+ position: relative;
+ margin: 10rpx;
+}
+
+.issue-info-img-itme>image {
+ width: 100%;
+ height: calc(100% - 20rpx);
+ height: -webkit-calc(100% - 20rpx);
+ position: absolute;
+ top: 10rpx;
+ left: 0;
+}
+
+.issue-info-img-remove {
+ position: absolute;
+ z-index: 5;
+ top: -5rpx;
+ right: -6rpx;
+ height: 36rpx;
+ width: 36rpx;
+ text-align: center;
+ line-height: 34rpx;
+ background: #ec202c;
+ color: white;
+ font-size: 28rpx;
+ font-weight: bold;
+ border-radius: 50%;
+}
+
+.issue-info-img-add {
+ position: absolute;
+ top: 10rpx;
+ bottom: 10rpx;
+ width: 100%;
+ left: 0;
+ text-align: center;
+ background: #f3f4f8;
+ color: #8d8d8d;
+ font-size: 24rpx;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-box-pack: center;
+}
+
+.issue-info-img-add image {
+ width: 48rpx;
+ vertical-align: bottom;
+ margin-bottom: 15rpx;
+ margin-top: 15rpx;
+}
+
+.issue-info-img-hint {
+ line-height: 60rpx;
+ color: #666;
+ font-size: 26rpx;
+ padding: 0 30rpx 15rpx 30rpx;
+}
diff --git a/手太欠/物业小程序/物业小程序/pages/repairPay/repairPay.js b/手太欠/物业小程序/物业小程序/pages/repairPay/repairPay.js
new file mode 100644
index 0000000..83a0289
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairPay/repairPay.js
@@ -0,0 +1,83 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ unfeeArr : [], //代缴费列表
+ unfeeTotal : '', //代缴金额
+ page : {}, //分页信息
+ lodingStats : false, //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {},
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ // 获取代缴列表
+ this.unfeeInfo();
+ },
+
+ /**
+ * 代缴列表
+ */
+ unfeeInfo () {
+ wx.$api.repair.unfee().then(res=>{
+ this.setData({
+ unfeeArr : res.data.logs,
+ unfeeTotal : res.data.total,
+ page : res.data.page,
+ lodingStats : false
+ })
+ })
+ },
+
+ /**
+ * 预约成功
+ */
+ submitOrder(){
+ wx.login({
+ success: res=>{
+ wx.$api.repair.fee({
+ code : res.code
+ }).then(res=>{
+ let payInfo = JSON.parse(res.data.payment)
+ wx.requestPayment({
+ timeStamp: payInfo.timeStamp,
+ nonceStr : payInfo.nonceStr,
+ package : payInfo.package,
+ paySign : payInfo.paySign,
+ signType : payInfo.signType,
+ success : res=>{
+ if(res.errMsg == "requestPayment:ok"){
+ wx.showToast({
+ title: '支付成功',
+ icon : 'success'
+ })
+ wx.redirectTo({
+ url: '/pages/repairSuccess/repairSuccess',
+ })
+ }
+ },
+ fail : res=>{
+ wx.navigateBack({
+ delta: 2
+ })
+ }
+ })
+ })
+ }
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repairPay/repairPay.json b/手太欠/物业小程序/物业小程序/pages/repairPay/repairPay.json
new file mode 100644
index 0000000..c9b83c4
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairPay/repairPay.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "物业缴费"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repairPay/repairPay.wxml b/手太欠/物业小程序/物业小程序/pages/repairPay/repairPay.wxml
new file mode 100644
index 0000000..83ccbcb
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairPay/repairPay.wxml
@@ -0,0 +1,22 @@
+
+
+
+
+
+ {{item.name}}
+
+
+ 待缴金额:
+ ¥{{item.amount}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repairPay/repairPay.wxss b/手太欠/物业小程序/物业小程序/pages/repairPay/repairPay.wxss
new file mode 100644
index 0000000..06672d5
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairPay/repairPay.wxss
@@ -0,0 +1,92 @@
+/* 边距 */
+.gauge {
+ border-bottom: 120rpx solid transparent;
+}
+
+/* 物业缴费 */
+.repairPay {
+ margin: 20rpx;
+}
+
+.repairPay-list {
+ margin-bottom: 20rpx;
+}
+
+.repairPay-title {
+ display: flex;
+ height: 100rpx;
+ line-height: 100rpx;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+ font-weight: 600;
+}
+
+.repairPay-icon {
+ width: 50rpx;
+ height: 50rpx;
+ margin: 25rpx 20rpx 25rpx 0;
+}
+
+.repairPay-text {
+ position: relative;
+ padding: 30rpx 20rpx 30rpx 90rpx;
+}
+
+.repairPay-text::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ top: 0;
+ background: #f2f2f2;
+ height: 2rpx;
+ width: 100%;
+}
+
+.repairPay-text text {
+ color: #cc141c;
+}
+
+/* 底部工具栏 */
+
+.repairPay-footer{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ border-top: solid 1rpx #f2f2f2;
+ height: 100rpx;
+ line-height: 100rpx;
+ z-index: 99;
+ background: white;
+}
+
+.repairPay-footer-total{
+ padding-right: calc(30vw + 30rpx);
+ padding-right: -webkit-calc(30vw + 30rpx);
+ padding-left: 30rpx;
+ color: #737787;
+ font-size: 28rpx;
+}
+
+.repairPay-footer-total text{
+ color: #d42e3b;
+}
+
+.repairPay-footer-total-price{
+ font-weight: bold;
+ font-size: 30rpx;
+}
+
+.repairPay-footer-btn{
+ width: 26vw;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+ color: white;
+ border-radius: 40rpx;
+ height: 74rpx;
+ line-height: 74rpx;
+ font-size: 30rpx;
+ position: absolute;
+ top: 15rpx;
+ right: 20rpx;
+ text-align: center;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repairSpeed/repairSpeed.js b/手太欠/物业小程序/物业小程序/pages/repairSpeed/repairSpeed.js
new file mode 100644
index 0000000..ade299d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairSpeed/repairSpeed.js
@@ -0,0 +1,103 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ id : '', //维修id
+ repairData : '', //维修记录详情
+ publish : false, //评论状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ id : options.id
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow () {
+ // 获取维修详情信息
+ this.repairs();
+ },
+
+ /**
+ * 维修详情信息
+ */
+ repairs() {
+ wx.$api.repair.repairShow(this.data.id).then(res=>{
+ this.setData({
+ repairData : res.data
+ })
+ })
+ },
+
+ /**
+ * 点击图片放大
+ */
+ clickImg(e) {
+ let cover = this.data.repairData.pictures,
+ imgUrl = e.currentTarget.dataset.img
+ wx.previewImage({
+ urls : cover, //需要预览的图片http链接列表,注意是数组
+ current : imgUrl // 当前显示图片的http链接,默认是第一个
+ })
+ },
+
+ /**
+ * 显示评论框
+ */
+ commentTap() {
+ this.setData({
+ publish : !this.data.publish
+ })
+ },
+
+ /**
+ * 评论提交
+ */
+ formSubmit(e) {
+ let content = e.detail.value.content,
+ articleId = this.data.id
+ wx.$api.repair.comment(articleId, {content: content}).then(res=>{
+ this.setData({
+ publish : !this.data.publish
+ })
+ // 获取维修详情信息
+ this.repairs();
+ })
+ },
+
+ /**
+ * 删除评论内容
+ */
+ delTap(e) {
+ let comment_id = e.currentTarget.dataset.id
+ wx.showModal({
+ title : '提示',
+ content : '是否删除地址',
+ success : res=> {
+ if (res.confirm) {
+ wx.showLoading({
+ title: '删除中',
+ })
+ wx.$api.life.commentDel(comment_id).then(res=>{
+ // 获取维修详情信息
+ this.repairs();
+ })
+ }
+ }
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repairSpeed/repairSpeed.json b/手太欠/物业小程序/物业小程序/pages/repairSpeed/repairSpeed.json
new file mode 100644
index 0000000..70021d9
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairSpeed/repairSpeed.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "报修进度"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repairSpeed/repairSpeed.wxml b/手太欠/物业小程序/物业小程序/pages/repairSpeed/repairSpeed.wxml
new file mode 100644
index 0000000..fece8e9
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairSpeed/repairSpeed.wxml
@@ -0,0 +1,77 @@
+
+
+
+ 处理进度
+
+
+ {{item.name}}
+
+
+
+
+
+ 报修信息
+
+
+ 联系人
+ {{repairData.name}}
+
+
+ 联系电话
+ {{repairData.mobile}}
+
+
+ 报修地址
+ {{repairData.address}}
+
+
+ 报修时间
+ {{repairData.created_at}}
+
+
+ 故障描述
+ {{repairData.description}}
+
+
+ 报修图片
+
+
+
+
+
+
+
+
+
+
+
+
+ 评价
+
+
+
+
+ {{item.user_id.nickname}}
+ 删除评论
+
+ {{item.content}}
+ {{item.created_at}}
+
+
+
+
+
+
+
+
+
+ 写评价
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repairSpeed/repairSpeed.wxss b/手太欠/物业小程序/物业小程序/pages/repairSpeed/repairSpeed.wxss
new file mode 100644
index 0000000..809f9d9
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairSpeed/repairSpeed.wxss
@@ -0,0 +1,237 @@
+/* 报修进度 */
+.repair {
+ margin: 20rpx;
+ border-bottom: solid 110rpx transparent;
+}
+
+.repairSpeed {
+ margin-bottom: 20rpx;
+}
+
+.repairSpeed-title {
+ font-weight: 600;
+}
+
+.repairSpeed-list {
+ position: relative;
+ padding-left: 80rpx;
+ padding-right: 20rpx;
+ overflow: hidden;
+}
+
+.repairSpeed-list::after {
+ position: absolute;
+ left: 40rpx;
+ top: 60rpx;
+ content: "";
+ width: 2rpx;
+ height: calc(100% - 120rpx);
+ background: #cecece;
+ z-index: 2;
+}
+
+.repairSpeed-name {
+ padding-top: 50rpx;
+ padding-bottom: 40rpx;
+ font-size: 28rpx;
+ color: #ababab;
+ position: relative;
+}
+
+.repairSpeed-name::after {
+ position: absolute;
+ left: -48rpx;
+ top: calc(50% - 7rpx);
+ content: "";
+ width: 18rpx;
+ height: 18rpx;
+ background: #cecece;
+ z-index: 9;
+ border-radius: 50%;
+}
+
+.repairSpeed-name.active {
+ color: #67cf52;
+}
+
+.repairSpeed-name.active::after {
+ background: #67cf52;
+}
+
+/* 报修信息 */
+.repairSpeed-info {
+ margin-top: 20rpx;
+}
+
+.repairSpeed-label {
+ display: flex;
+ padding: 20rpx 0;
+ font-size: 28rpx;
+}
+
+.repairSpeed-label-name {
+ flex: 1;
+ width: 160rpx;
+ margin-right: 20rpx;
+ color: #666666;
+ font-size: 28rpx;
+}
+
+.repairSpeed-label-text {
+ width: calc(100% - 180rpx);
+ text-align: right;
+}
+
+.repairSpeed-photo .repairSpeed-label-name {
+ padding: 20rpx 0;
+}
+
+.assessList-float {
+ width: 100%;
+ white-space: nowrap;
+ margin: 20rpx 0 0;
+}
+
+.assessList-picture {
+ width: 130rpx;
+ display: inline-block;
+ height: 130rpx;
+ position: relative;
+ margin-right: 20rpx;
+ border-radius: 4rpx;
+ overflow: hidden;
+}
+
+.assessList-picture image {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.evaluate-btn {
+ background-color: #fff;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ z-index: 99;
+ width: 100%;
+ height: 110rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 15rpx;
+ box-sizing: border-box;
+}
+
+.evaluate-btn-make {
+ width: 100%;
+ background: #52b96a;
+ height: 84rpx;
+ line-height: 84rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ text-align: center;
+ border-radius: 50rpx;
+}
+
+
+/* 评论弹出 */
+.commentCont {
+ position: fixed;
+ width: 100%;
+ bottom: 0;
+ left: 0;
+ z-index: 1002;
+ padding-bottom: 100rpx;
+ box-sizing: border-box;
+ background-color: #fff;
+ display: block;
+}
+
+.commentCont-btn[size="mini"] {
+ position: absolute;
+ right: 10rpx;
+ bottom: 10rpx;
+ top: 10rpx;
+ width: 100rpx;
+ margin-left: 10rpx;
+ background: #52b96a;
+ color: #fff;
+ height: 70rpx;
+ line-height: 70rpx;
+ padding: 0;
+ font-size: 28rpx;
+}
+
+.commentCont-btn::after {
+ display: none;
+}
+
+.commentCont-input {
+ position: absolute;
+ left: 10rpx;
+ top: 0;
+ width: calc(100% - 140rpx);
+ height: 90%;
+ display: block;
+ padding: 0 10rpx;
+ box-sizing: border-box;
+}
+
+
+/* 评价 */
+.evaluate {
+ border-bottom: solid 110rpx transparent;
+ margin-bottom: 20rpx;
+}
+
+.evaluate-li {
+ display: flex;
+ margin-top: 40rpx;
+ padding-bottom: 40rpx;
+ background-color: white;
+}
+
+.evaluate-li:last-child {
+ padding-bottom: 0;
+}
+
+.evaluate-head {
+ width: 100rpx;
+ height: 100rpx;
+ border-radius: 50%;
+}
+
+.evaluate-cont {
+ width: calc(100% - 130rpx);
+ margin-left: 30rpx;
+ font-size: 28rpx;
+}
+
+.evaluate-name {
+ color: #666d86;
+ display: flex;
+ line-height: 44rpx;
+}
+
+.evaluate-name text {
+ display: block;
+ flex: 1;
+ font-size: 32rpx;
+}
+
+.evaluate-text {
+ margin: 20rpx 0;
+}
+
+.evaluate-tiem {
+ font-size: 26rpx;
+ color: #999;
+}
+
+.evaluate-del {
+ font-size: 26rpx;
+ color: #52b96a;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repairSuccess/repairSuccess.js b/手太欠/物业小程序/物业小程序/pages/repairSuccess/repairSuccess.js
new file mode 100644
index 0000000..6c9d343
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairSuccess/repairSuccess.js
@@ -0,0 +1,24 @@
+// pages/makeSuccess/makeSuccess.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+
+ },
+
+ /**
+ * 返回上一页
+ */
+ goback(){
+ wx.navigateBack()
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repairSuccess/repairSuccess.json b/手太欠/物业小程序/物业小程序/pages/repairSuccess/repairSuccess.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairSuccess/repairSuccess.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repairSuccess/repairSuccess.wxml b/手太欠/物业小程序/物业小程序/pages/repairSuccess/repairSuccess.wxml
new file mode 100644
index 0000000..158cad1
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairSuccess/repairSuccess.wxml
@@ -0,0 +1,16 @@
+
+
+
+
+ 缴费成功
+
+
+
+
+ 查看缴费记录
+
+
+ 返回
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/repairSuccess/repairSuccess.wxss b/手太欠/物业小程序/物业小程序/pages/repairSuccess/repairSuccess.wxss
new file mode 100644
index 0000000..34b5ba9
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/repairSuccess/repairSuccess.wxss
@@ -0,0 +1,52 @@
+page {
+ background-color: white;
+}
+
+/* 预约成功 */
+.paySuccess {
+ text-align: center;
+ padding: 80rpx 0;
+}
+
+.paySuccess-img {
+ width: 220rpx;
+ height: 220rpx;
+ margin: 0 auto;
+}
+
+.paySuccess-cont {
+ color: #a7a7a7;
+ margin-bottom: 80rpx;
+}
+
+.paySuccess-cont text {
+ font-weight: 600;
+ display: block;
+ margin: 30rpx 0 20rpx;
+ color: #000;
+ font-size: 38rpx;
+}
+
+.paySuccess-btn {
+ margin: 70rpx;
+}
+
+.paySuccess-btn .paySuccess-see, .paySuccess-btn .paySuccess-retn {
+ width: 100%;
+ border-radius: 50rpx;
+ line-height: 84rpx;
+ height: 84rpx;
+ border: 2rpx solid #68d054;
+ margin-top: 40rpx;
+}
+
+.paySuccess-btn .paySuccess-see {
+ color: #fff;
+ background-color: #68d054;
+ border-color: transparent;
+}
+
+.paySuccess-btn .paySuccess-retn {
+ color: #68d054;
+ background-color: transparent;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/reserveSee/reserveSee.js b/手太欠/物业小程序/物业小程序/pages/reserveSee/reserveSee.js
new file mode 100644
index 0000000..3b90367
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/reserveSee/reserveSee.js
@@ -0,0 +1,79 @@
+// pages/makeSuccess/makeSuccess.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ logId : '', //预约id
+ makeData : '', //预约详情
+ type : '', //预约类型 house为家政预约 plain为美发和洗车
+ publish : false, //评论状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ console.log(options)
+ this.setData({
+ logId : options.id,
+ type : options.type
+ })
+
+ // 获取预约详情
+ this.detailsInfo()
+ },
+
+ /**
+ * 预约详情
+ */
+ detailsInfo() {
+ if(this.data.type == "house") {
+ wx.$api.index.hourseShow(this.data.logId).then(res=>{
+ console.log(res)
+ this.setData({
+ makeData : res.data
+ })
+ })
+ } else if(this.data.type == "plain") {
+ wx.$api.index.makeShow(this.data.logId).then(res=>{
+ this.setData({
+ makeData : res.data
+ })
+ })
+ } else if(this.data.type == "makeType") {
+ wx.$api.index.diningList(this.data.logId).then(res=>{
+ this.setData({
+ makeData : res.data
+ })
+ })
+ }
+ },
+
+ /**
+ * 显示评论框
+ */
+ commentTap() {
+ this.setData({
+ publish : !this.data.publish
+ })
+ },
+
+ /**
+ * 评论提交
+ */
+ formSubmit(e) {
+ console.log(e.detail.value.content)
+ let content = e.detail.value.content,
+ articleId = this.data.logId
+
+ wx.$api.index.appointment(articleId, {content: content}).then(res=>{
+ this.setData({
+ publish : !this.data.publish
+ })
+ // 获取预约详情
+ this.detailsInfo()
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/reserveSee/reserveSee.json b/手太欠/物业小程序/物业小程序/pages/reserveSee/reserveSee.json
new file mode 100644
index 0000000..890756d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/reserveSee/reserveSee.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "预定查看"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/reserveSee/reserveSee.wxml b/手太欠/物业小程序/物业小程序/pages/reserveSee/reserveSee.wxml
new file mode 100644
index 0000000..dd29a24
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/reserveSee/reserveSee.wxml
@@ -0,0 +1,85 @@
+
+
+
+
+
+ {{makeData.restaurant.title}}
+
+
+
+
+
+ {{makeData.title}}
+
+
+
+
+ 联系人
+ {{makeData.name}}
+
+
+ 联系电话
+ {{makeData.mobile}}
+
+
+ 预约时间
+ {{type == 'makeType' ? makeData.subscribe_at : makeData.service_at}}
+
+
+ 就餐人数
+ {{makeData.number}}人
+
+
+ 备注
+ {{makeData.remark}}人
+
+
+ 服务金额
+ {{makeData.price}}
+
+
+ 服务状态
+ {{makeData.state_text}}
+
+
+ 附言内容
+ {{makeData.remark}}
+
+
+ 服务地址
+ {{makeData.address}}
+
+
+
+
+
+
+
+ 评价
+
+
+
+
+ {{item.user_id.nickname}}
+
+ {{item.content}}
+ {{item.created_at}}
+
+
+
+
+
+
+
+
+
+ 写评论
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/reserveSee/reserveSee.wxss b/手太欠/物业小程序/物业小程序/pages/reserveSee/reserveSee.wxss
new file mode 100644
index 0000000..6adc441
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/reserveSee/reserveSee.wxss
@@ -0,0 +1,236 @@
+/* 预定查看 */
+.reserve {
+ margin: 20rpx;
+ position: relative;
+}
+
+.reserve::after,
+.reserve::before {
+ position: absolute;
+ top: 210rpx;
+ content: '';
+ width: 40rpx;
+ height: 40rpx;
+ border-radius: 50%;
+ background-color: #f5f5f5;
+}
+
+.reserve::after {
+ left: -20rpx;
+}
+
+.reserve::before {
+ right: -20rpx;
+}
+
+.reserveTop {
+ text-align: center;
+ position: relative;
+ padding-bottom: 30rpx;
+}
+
+.reserveTop::after {
+ position: absolute;
+ left: 20rpx;
+ right: 20rpx;
+ bottom: 0;
+ width: calc(100% - 40rpx);
+ height: 2rpx;
+ background-color: #52b96a;
+ content: '';
+}
+
+.reserveTop-img {
+ width: 120rpx;
+ height: 120rpx;
+ border-radius: 50%;
+ margin: 0 auto 10rpx;
+}
+
+.reserveCont {
+ padding: 20rpx 40rpx;
+ box-sizing: border-box;
+}
+
+.reserve-label {
+ display: flex;
+ padding: 30rpx 0;
+}
+
+.reserve-name {
+ flex: 1;
+ width: 200rpx;
+ margin-right: 20rpx;
+ color: #7e7e7e;
+}
+
+.reserve-text {
+ width: calc(100% - 240rpx);
+ text-align: right;
+ line-height: 50rpx;
+}
+
+.reserve-time {
+ color: #b68a3f;
+}
+
+.reserve-price {
+ color: #d42e3b;
+}
+
+
+/* 评论弹出 */
+.commentCont {
+ position: fixed;
+ width: 100%;
+ bottom: 0;
+ left: 0;
+ z-index: 1002;
+ padding-bottom: 100rpx;
+ box-sizing: border-box;
+ background-color: #fff;
+ display: block;
+}
+
+.commentCont-btn[size="mini"] {
+ position: absolute;
+ right: 10rpx;
+ bottom: 10rpx;
+ top: 10rpx;
+ width: 100rpx;
+ margin-left: 10rpx;
+ background: #52b96a;
+ color: #fff;
+ height: 70rpx;
+ line-height: 70rpx;
+ padding: 0;
+ font-size: 28rpx;
+}
+
+.commentCont-btn::after {
+ display: none;
+}
+
+.commentCont-input {
+ position: absolute;
+ left: 10rpx;
+ top: 0;
+ width: calc(100% - 140rpx);
+ height: 90%;
+ display: block;
+ padding: 0 10rpx;
+ box-sizing: border-box;
+}
+
+
+/* 评价 */
+.evaluate {
+ border-bottom: solid 110rpx transparent;
+ margin: 20rpx;
+}
+
+.evaluate-li {
+ display: flex;
+ margin-top: 40rpx;
+ padding-bottom: 40rpx;
+ background-color: white;
+}
+
+.evaluate-li:last-child {
+ padding-bottom: 0;
+}
+
+.evaluate-head {
+ width: 100rpx;
+ height: 100rpx;
+ border-radius: 50%;
+}
+
+.evaluate-cont {
+ width: calc(100% - 130rpx);
+ margin-left: 30rpx;
+ font-size: 28rpx;
+}
+
+.evaluate-name {
+ color: #666d86;
+ display: flex;
+ line-height: 44rpx;
+}
+
+.evaluate-name text {
+ display: block;
+ flex: 1;
+ font-size: 32rpx;
+}
+
+.evaluate-text {
+ margin: 20rpx 0;
+}
+
+.evaluate-tiem {
+ font-size: 26rpx;
+ color: #999;
+}
+
+.evaluate-del {
+ font-size: 26rpx;
+ color: #52b96a;
+}
+
+
+.public-btn {
+ width: 100%;
+ background: #52b96a;
+ height: 90rpx;
+ line-height: 90rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ border-radius: 100rpx;
+ margin: 40rpx 0;
+}
+
+.evaluate-btn {
+ background-color: #fff;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ z-index: 99;
+ width: 100%;
+ height: 110rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 15rpx;
+ box-sizing: border-box;
+}
+
+.evaluate-btn-name {
+ background: #eeeff1;
+ color: #9a9b9d;
+ width: 100%;
+ height: 100%;
+ line-height: 80rpx;
+ border-radius: 100rpx;
+ padding: 0 30rpx;
+ box-sizing: border-box;
+ display: flex;
+}
+
+.evaluate-btn-name image {
+ width: 32rpx;
+ height: 32rpx;
+ margin: 24rpx 20rpx 0 0;
+}
+
+.evaluate-btn-make {
+ width: 100%;
+ background: #52b96a;
+ height: 84rpx;
+ line-height: 84rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ text-align: center;
+ border-radius: 50rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/search/search.js b/手太欠/物业小程序/物业小程序/pages/search/search.js
new file mode 100644
index 0000000..dab9402
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/search/search.js
@@ -0,0 +1,83 @@
+
+/*
+ * 张慢慢
+ * 物业
+ */
+
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ category_id: "", //商品内容
+ goodArr : [], //商品列表
+ page : {}, //页面页码信息
+ title : "", //搜索关键字
+ lodingStats: false, //加载状态
+ hintText : "输入关键字搜索" //搜索提示信息
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad () {
+ },
+
+ /**
+ * 搜索
+ */
+ searchForm(e) {
+ if (e.detail.value.search != '') {
+ this.setData({
+ title : e.detail.value.search
+ })
+ // 获取搜索列表
+ this.goodsInfo()
+ }
+ },
+
+ /**
+ * 搜索列表
+ */
+ goodsInfo(page) {
+ wx.$api.index.search({
+ title : this.data.title,
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.goodArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ goodArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取服务列表
+ this.goodsInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取服务列表
+ this.goodsInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/search/search.json b/手太欠/物业小程序/物业小程序/pages/search/search.json
new file mode 100644
index 0000000..869c2a4
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/search/search.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "商品搜索"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/search/search.wxml b/手太欠/物业小程序/物业小程序/pages/search/search.wxml
new file mode 100644
index 0000000..561cd62
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/search/search.wxml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+ ¥{{item.price}}
+
+
+
+
+
+
+
+
+ 暂无商品
+
diff --git a/手太欠/物业小程序/物业小程序/pages/search/search.wxss b/手太欠/物业小程序/物业小程序/pages/search/search.wxss
new file mode 100644
index 0000000..36ca535
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/search/search.wxss
@@ -0,0 +1,121 @@
+
+/*
+ * 张慢慢
+ * 物业
+ */
+
+/* 搜索 */
+
+.search {
+ height: 92rpx;
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ z-index: 999;
+ padding: 11rpx 25rpx;
+ box-sizing: border-box;
+ background: white;
+ display: block;
+}
+
+.search-inputs{
+ position: relative;
+ background: #f7f7f7;
+ border-radius: 35rpx;
+ height: 70rpx;
+ padding-right: 150rpx;
+}
+
+.search-input{
+ height: 70rpx;
+ width: 100%;
+ padding-left: 72rpx;
+ box-sizing: border-box;
+}
+
+.search-icon{
+ width: 32rpx;
+ height: 32rpx;
+ position: absolute;
+ top: 19rpx;
+ left: 20rpx;
+}
+
+.search-btn[size="mini"]{
+ width: 150rpx;
+ text-align: center;
+ color: #3ec28e;
+ font-size: 30rpx;
+ background: transparent;
+ position: absolute;
+ top: 0;
+ right: 0;
+ height: 70rpx;
+ line-height: 70rpx;
+ font-weight: bold;
+ padding: 0;
+}
+
+/* 产品列表 */
+.link-products {
+ flex-wrap: wrap;
+ padding: 112rpx 15rpx 0 15rpx;
+}
+
+.link-product {
+ background: white;
+ width: calc(50% - 20rpx);
+ box-sizing: border-box;
+ margin: 0 10rpx 20rpx 10rpx;
+ border-radius: 6rpx;
+ overflow: hidden;
+ display: inline-block;
+}
+
+.link-product-img {
+ position: relative;
+ width: 100%;
+ padding-top: 100%;
+ background: #ddd;
+}
+
+.link-product-img-src {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.link-product-text {
+ padding: 15rpx 20rpx;
+}
+
+.link-product-picer {
+ position: relative;
+ height: 52rpx;
+ line-height: 52rpx;
+ padding-right: 72rpx;
+ color: #f85d6b;
+ font-weight: bold;
+ font-size: 32rpx;
+}
+
+.link-product-card {
+ position: absolute;
+ right: 0;
+ top: 0;
+ background: #f85d6b;
+ width: 28rpx;
+ height: 28rpx;
+ padding: 12rpx;
+ border-radius: 50%;
+ z-index: 1;
+}
+
+.link-product-title {
+ height: 50rpx;
+ line-height: 50rpx;
+ margin-bottom: 15rpx;
+}
diff --git a/手太欠/物业小程序/物业小程序/pages/user/user.js b/手太欠/物业小程序/物业小程序/pages/user/user.js
new file mode 100644
index 0000000..4a48662
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user/user.js
@@ -0,0 +1,77 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ statusBarHeight: getApp().globalData.statusBarHeight, //状态栏高度
+ isUser : false, //用户登录状态
+ userInfo : {}, //用户信息
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad () {},
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow(){
+ if(wx.getStorageSync("token") == ""){
+ this.setData({
+ userInfo : '',
+ isUser : false
+ })
+ return
+ }
+ this.setData({
+ isUser : getApp().globalData.isUser
+ })
+
+ // 获取个人信息
+ this.userInfo()
+ },
+ /**
+ * 个人信息
+ */
+ userInfo() {
+ wx.$api.users.index().then(res=>{
+ console.log(res)
+ this.setData({
+ userInfo: res.data
+ })
+ }).catch(err=>{
+ if(!err.login){
+ this.setData({
+ isUser : false,
+ userInfo : ''
+ })
+ }
+ })
+ },
+
+ /**
+ * 处理未登录时的转跳
+ */
+ userNav(e){
+ let pageUrl = e.currentTarget.dataset.url
+ if(this.data.isUser){
+ wx.navigateTo({
+ url: pageUrl
+ })
+ }else{
+ // 去登录
+ wx.navigateTo({
+ url: "../login/login"
+ })
+ }
+ },
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user/user.json b/手太欠/物业小程序/物业小程序/pages/user/user.json
new file mode 100644
index 0000000..a7a055a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user/user.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents" : {},
+ "navigationBarBackgroundColor": "#52b96a",
+ "navigationBarTitleText" : "我的",
+ "navigationStyle" : "custom"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user/user.wxml b/手太欠/物业小程序/物业小程序/pages/user/user.wxml
new file mode 100644
index 0000000..996a2ce
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user/user.wxml
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
+ 我的订单
+
+ 查看全部
+
+
+
+
+
+
+ {{userInfo.order.mall}}
+
+ 商城订单
+
+
+
+
+ {{userInfo.order.advance}}
+
+ 预售订单
+
+
+
+
+ {{userInfo.order.group}}
+
+ 拼团订单
+
+
+
+
+
+
+
+ 餐厅订单
+
+
+
+
+ 全部订单
+
+
+
+ {{userInfo.restaurant.unpay}}
+ 待付款
+
+
+
+ {{userInfo.restaurant.paid}}
+ 待发货
+
+
+
+ 已完成
+
+
+
+
+
+
+
+
+
+ 兑换记录
+
+
+
+
+
+
+
+
+ 餐厅预定
+
+
+
+
+
+
+
+
+ 我的小区
+
+
+
+
+
+
+
+
+ 我的车辆
+
+
+
+
+
+
+
+
+ 我的发布
+
+
+ 生活周边/租卖信息
+
+
+
+
+
+
+ 我的预约
+
+
+
+
+
+
+
+
+ 家政预约
+
+
+
+
+
+
+
+
+
+
+
+ 投诉反馈
+
+
+
+
+
+
+
+
+ 物业电话
+
+
+
+
+
+
+
+
+ 使用指南
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user/user.wxss b/手太欠/物业小程序/物业小程序/pages/user/user.wxss
new file mode 100644
index 0000000..0304367
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user/user.wxss
@@ -0,0 +1,254 @@
+/* header */
+.user-header {
+ position: relative;
+ width: 100%;
+ height: 300px;
+ z-index: 0;
+}
+
+.user-back {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+}
+
+.user-cont {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ z-index: 2;
+ padding: 0 40rpx;
+ box-sizing: border-box;
+}
+
+.user-top {
+ display: flex;
+}
+
+.user-info {
+ display: flex;
+ flex: 1;
+ color: #fff;
+ width: calc(100% - 180rpx);
+}
+
+.user-info-actver {
+ width: 120rpx;
+ height: 120rpx;
+ border-radius: 50%;
+ margin-right: 20rpx;
+}
+
+.user-info-content {
+ width: calc(100% - 180rpx);
+}
+
+.user-info-nikname {
+ font-size: 34rpx;
+ font-weight: 400;
+ margin: 10rpx 0 15rpx;
+}
+
+.user-info-tel {
+ font-size: 28rpx;
+ opacity: .8;
+}
+
+.user-setup {
+ width: 170rpx;
+ background-color: rgba(255, 255, 255, .5);
+ border-radius: 50rpx;
+ color: #fff;
+ height: 68rpx;
+ line-height: 68rpx;
+ display: flex;
+ box-shadow: 0 2rpx 6rpx rgba(57, 172, 86, .3);
+ margin-top: 20rpx;
+}
+
+.user-setup image {
+ width: 36rpx;
+ height: 36rpx;
+ margin: 16rpx 10rpx 0 28rpx;
+}
+
+.user-bottom {
+ display: flex;
+ margin: 40rpx 0 20rpx;
+}
+
+.user-label {
+ flex: 3;
+ text-align: center;
+ font-size: 26rpx;
+ color: #fff;
+}
+
+.user-label-name {
+ font-size: 42rpx;
+ margin-bottom: 6rpx;
+}
+
+.user-label text {
+ opacity: .8;
+}
+
+.userOrder-cont {
+ position: relative;
+ top: -40px;
+ left: 0;
+ z-index: 99;
+ margin: 0 20rpx;
+}
+
+.user-login-nav {
+ background: rgba(255, 255, 255, .8);
+ height: 64rpx;
+ line-height: 64rpx;
+ display: inline-block;
+ width: 160rpx;
+ border-radius: 10rpx;
+ color: #313131;
+ font-size: 28rpx;
+ font-weight: bold;
+ position: absolute;
+ left: 180rpx;
+ top: 30rpx;
+ text-align: center;
+}
+
+/* 我的订单 */
+
+.userOrder-title {
+ display: flex;
+}
+
+.userOrder-title-name {
+ flex: 1;
+ font-weight: 600;
+}
+
+.userOrder-list {
+ display: flex;
+ padding: 20rpx 0 30rpx;
+}
+
+.userOrder-label {
+ position: relative;
+ flex: 4;
+ text-align: center;
+ color: #565656;
+ font-size: 28rpx;
+}
+
+.userOrder-label text {
+ position: absolute;
+ top: -10rpx;
+ right: 40rpx;
+ background-color: #ff4040;
+ transform: scale(.9);
+ font-size: 24rpx;
+ width: 38rpx;
+ height: 38rpx;
+ line-height: 36rpx;
+ text-align: center;
+ color: #fff;
+ border-radius: 50%;
+}
+
+.userOrder-label-img {
+ width: 84rpx;
+ height: 84rpx;
+ position: relative;
+ background-image: linear-gradient(to right, #16d430, #35ad4e);
+ border-radius: 50%;
+ padding: 18rpx;
+ box-sizing: border-box;
+ margin: 0 auto 15rpx;
+}
+
+.userOrder-label-img image {
+ width: 100%;
+ height: 100%;
+}
+
+.userOrder-label-img text {
+ position: absolute;
+ top: -5rpx;
+ right: -5rpx;
+ background-color: #ff4040;
+ font-size: 24rpx;
+ width: 36rpx;
+ height: 36rpx;
+ line-height: 36rpx;
+ text-align: center;
+ color: #fff;
+ border-radius: 50%;
+}
+
+.userOrder-title-more {
+ font-size: 28rpx;
+ line-height: 36rpx;
+ display: flex;
+ color: #9f9f9f;
+}
+
+.userOrder-title-more image {
+ width: 36rpx;
+ height: 36rpx;
+ margin-left: 14rpx;
+}
+
+/* 餐厅订单 */
+
+.userRoom {
+ margin: 30rpx 0;
+}
+
+.userRoom-img {
+ width: 58rpx;
+ height: 58rpx;
+ margin: 0 auto 6rpx;
+}
+
+/* 工具 */
+
+.userTool {
+ margin-bottom: 30rpx;
+}
+
+.userTool-label,
+.userTool-name,
+.userTool-arrow {
+ display: flex;
+}
+
+.userTool-label {
+ padding: 30rpx;
+ line-height: 44rpx;
+ font-size: 32rpx;
+}
+
+.userTool-img {
+ width: 44rpx;
+ height: 44rpx;
+ margin-right: 16rpx;
+}
+
+.userTool-arrow image {
+ width: 40rpx;
+ height: 40rpx;
+ margin-left: 16rpx;
+}
+
+.userTool-name {
+ flex: 1;
+}
+
+.userTool-arrow {
+ font-size: 28rpx;
+ color: #b4b4b4;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userCart/userCart.js b/手太欠/物业小程序/物业小程序/pages/userCart/userCart.js
new file mode 100644
index 0000000..6a72abf
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userCart/userCart.js
@@ -0,0 +1,98 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ cartArr : '', //小区列表
+ page : '', //下一页
+ lodingStats : false, //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow () {
+
+ // 获取我的小区列表
+ this.cartInfo();
+ },
+
+ /**
+ * 我的小区列表
+ */
+ cartInfo(page){
+ wx.$api.users.cartList({page: page || ''}).then(res=>{
+ let listArr = this.data.cartArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ cartArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 车辆删除
+ */
+ cartDel(e) {
+ let id = e.target.dataset.id
+ wx.showModal({
+ title : '提示',
+ content : '是否删除地址',
+ success : res=> {
+ if (res.confirm) {
+ wx.showLoading({
+ title: '删除中',
+ })
+ wx.$api.users.cartDel(id).then(res=>{
+ wx.hideLoading();
+ // 获取我的小区列表
+ this.cartInfo();
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取小区列表
+ this.cartInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取小区列表
+ this.cartInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userCart/userCart.json b/手太欠/物业小程序/物业小程序/pages/userCart/userCart.json
new file mode 100644
index 0000000..9e248ca
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userCart/userCart.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "我的车辆",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userCart/userCart.wxml b/手太欠/物业小程序/物业小程序/pages/userCart/userCart.wxml
new file mode 100644
index 0000000..ccc5b2a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userCart/userCart.wxml
@@ -0,0 +1,38 @@
+
+
+
+
+
+ {{item.license}}
+
+
+
+
+
+ 添加时间:{{item.created_at}}
+
+
+ 删除
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+ 暂无内容
+
+
+
+
+
+
+ 增加
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userCart/userCart.wxss b/手太欠/物业小程序/物业小程序/pages/userCart/userCart.wxss
new file mode 100644
index 0000000..a9af681
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userCart/userCart.wxss
@@ -0,0 +1,100 @@
+/* 我的车辆 */
+.cart {
+ margin: 20rpx;
+ border-bottom: solid 110rpx transparent;
+}
+
+.cartList {
+ overflow: hidden;
+ margin-bottom: 20rpx;
+ position: relative;
+}
+
+.cartList-title {
+ background-color: #d8b576;
+ color: #fff;
+ padding: 30rpx 20rpx;
+ box-sizing: border-box;
+ font-size: 36rpx;
+ display: flex;
+ line-height: 80rpx;
+ font-weight: 600;
+}
+
+.cartList-img {
+ width: 74rpx;
+ height: 74rpx;
+ border: 6rpx solid #efcd8f;
+ border-radius: 50%;
+ margin-right: 20rpx;
+}
+
+.cartList-cont {
+ position: relative;
+ height: 134rpx;
+}
+
+.cartList-back {
+ position: absolute;
+ width: 70%;
+ height: 100%;
+ right: 0;
+ bottom: 0;
+ z-index: 1;
+}
+
+.cartList-text {
+ position: absolute;
+ z-index: 9;
+ left: 30rpx;
+ top: 50rpx;
+ bottom: 50rpx;
+ font-size: 28rpx;
+ display: flex;
+ line-height: 34rpx;
+}
+
+.cartList-text image {
+ width: 34rpx;
+ height: 34rpx;
+ margin-right: 20rpx;
+}
+
+.cartList-del {
+ position: absolute;
+ background-color: #c2810b;
+ color: #fff;
+ border-radius: 0 0 0 20rpx;
+ top: 0;
+ right: 0;
+ font-size: 26rpx;
+ padding: 0 20rpx;
+ line-height: 50rpx;
+}
+
+/* 按钮 */
+.evaluate-btn {
+ background-color: #f5f5f5;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ z-index: 99;
+ width: 100%;
+ height: 110rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 15rpx;
+ box-sizing: border-box;
+}
+
+.evaluate-btn-make {
+ width: 100%;
+ background: #52b96a;
+ height: 84rpx;
+ line-height: 84rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ text-align: center;
+ border-radius: 50rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userCart_form/userCart_form.js b/手太欠/物业小程序/物业小程序/pages/userCart_form/userCart_form.js
new file mode 100644
index 0000000..77b58c0
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userCart_form/userCart_form.js
@@ -0,0 +1,98 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ card : '', //牌照号
+ regionValue : "黑", //车牌号区域
+ isShow : false, //控制键盘是否显示
+ keyBoardType : 1, //控制英文或车牌
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+
+ },
+
+ /**
+ * 选择车辆区域
+ */
+ region(){
+ this.setData({
+ keyBoardType: 1
+ })
+ this.showPanel()
+ },
+
+ /**
+ * 输入车牌号码
+ */
+ oncarNo(){
+ this.setData({
+ keyBoardType: 2
+ })
+ this.showPanel()
+ },
+
+ /**
+ * 控制键盘开关
+ */
+ showPanel(){
+ this.setData({
+ isShow: !this.data.isShow
+ })
+ },
+
+ /**
+ * 输入车牌区域
+ */
+ inputChange(e){
+ if (e.detail == undefined) return
+ if(this.data.keyBoardType == 1){
+ this.setData({regionValue: e.detail})
+ this.setData({
+ keyBoardType: 2
+ })
+ } else if (this.data.keyBoardType == 2){
+
+ let cardNo = this.data.card,
+ newNo = cardNo + e.detail
+
+ this.setData({ card: newNo})
+ }
+ },
+
+ /**
+ * 删除
+ */
+ deleteNo(e){
+ let newNo = this.data.card
+ if (newNo == "") return
+ newNo = newNo.substring(0, newNo.length - 1)
+ this.setData({
+ card: newNo
+ })
+ },
+
+ /**
+ * 保存信息
+ */
+ carform(e) {
+ let card = this.data.regionValue + e.detail.value.card
+ // 小区列表
+ wx.$api.users.carAdd({license: card}).then(res=>{
+ // 返回信息
+ wx.navigateBack()
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userCart_form/userCart_form.json b/手太欠/物业小程序/物业小程序/pages/userCart_form/userCart_form.json
new file mode 100644
index 0000000..e9398a5
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userCart_form/userCart_form.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents" : {
+ "v-panel": "/commpent/value-panel/value-panel"
+ },
+ "navigationBarTitleText": "车辆添加"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userCart_form/userCart_form.wxml b/手太欠/物业小程序/物业小程序/pages/userCart_form/userCart_form.wxml
new file mode 100644
index 0000000..476a49d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userCart_form/userCart_form.wxml
@@ -0,0 +1,20 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userCart_form/userCart_form.wxss b/手太欠/物业小程序/物业小程序/pages/userCart_form/userCart_form.wxss
new file mode 100644
index 0000000..8c426e1
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userCart_form/userCart_form.wxss
@@ -0,0 +1,77 @@
+/* 车辆添加 */
+
+.site-input {
+ padding: 0 30rpx 0 200rpx;
+ position: relative;
+ line-height: 90rpx;
+ min-height: 90rpx;
+}
+
+.site-input::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ bottom: 0;
+ background: #f2f2f2;
+ width: 100%;
+ height: 2rpx;
+}
+
+.site-input label {
+ position: absolute;
+ left: 30rpx;
+ top: 0;
+}
+
+.site-input input {
+ height: 90rpx;
+}
+
+.site-input::before {
+ position: absolute;
+ bottom: 0;
+ left: 30rpx;
+ right: 0;
+ height: 1rpx;
+ content: "";
+ background: #e4e6f2;
+}
+
+.carform-number {
+ display: flex;
+}
+
+.region {
+ background: #52b96a;
+ color: #fff;
+ padding: 0 20rpx;
+ height: 56rpx;
+ line-height: 56rpx;
+ border-radius: 6rpx;
+ font-size: 30rpx;
+ margin-right: 20rpx;
+ margin-top: 16rpx;
+}
+
+.region image {
+ width: 25rpx;
+ height: 25rpx;
+ padding-left: 4rpx;
+}
+
+.public-btn {
+ margin: 20rpx;
+}
+
+.public-btn button[size="mini"]{
+ width: 100%;
+ background: #52b96a;
+ height: 90rpx;
+ line-height: 90rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ border-radius: 100rpx;
+ margin: 40rpx 0;
+ text-align: center;
+}
diff --git a/手太欠/物业小程序/物业小程序/pages/userHouse/userHouse.js b/手太欠/物业小程序/物业小程序/pages/userHouse/userHouse.js
new file mode 100644
index 0000000..d061a30
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userHouse/userHouse.js
@@ -0,0 +1,69 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ houseArr : [], //列表数组
+ page : {}, //分页信息
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 获取家政预约列表
+ this.periphery();
+ },
+
+ /**
+ * 家政预约列表
+ */
+ periphery(page) {
+ wx.$api.index.homeList({
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.houseArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ houseArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取周边列表
+ this.periphery();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取周边列表
+ this.periphery(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userHouse/userHouse.json b/手太欠/物业小程序/物业小程序/pages/userHouse/userHouse.json
new file mode 100644
index 0000000..1a7098d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userHouse/userHouse.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText" : "家政预约",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userHouse/userHouse.wxml b/手太欠/物业小程序/物业小程序/pages/userHouse/userHouse.wxml
new file mode 100644
index 0000000..bf93327
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userHouse/userHouse.wxml
@@ -0,0 +1,28 @@
+
+
+
+
+ {{item.title}}
+ ¥{{item.price}}
+
+
+
+ {{item.created_at}}
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userHouse/userHouse.wxss b/手太欠/物业小程序/物业小程序/pages/userHouse/userHouse.wxss
new file mode 100644
index 0000000..ed49a64
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userHouse/userHouse.wxss
@@ -0,0 +1,28 @@
+
+/* 列表 */
+.make {
+ margin: 20rpx;
+}
+
+.makeLIst {
+ position: relative;
+ margin-bottom: 20rpx;
+}
+
+.makeLIst-time {
+ margin-top: 30rpx;
+ color: #818181;
+ font-size: 28rpx;
+}
+
+.makeLIst-text {
+ display: flex;
+}
+
+.makeLIst-title {
+ flex: 1;
+}
+
+.makeLIst-price {
+ color: #d42e3b;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userMake/userMake.js b/手太欠/物业小程序/物业小程序/pages/userMake/userMake.js
new file mode 100644
index 0000000..de74437
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userMake/userMake.js
@@ -0,0 +1,101 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ classifyId : "", //tab分类
+ classifyInfo: [], //分类名称
+ makeArr : [], //列表数组
+ page : {}, //分页信息
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 获取分类
+ this.classify();
+ },
+
+ /**
+ * 周边列表
+ */
+ periphery(page) {
+ wx.$api.users.makeTList({
+ category_id: this.data.classifyId,
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.makeArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ makeArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 分类
+ */
+ classify() {
+ wx.$api.users.makeTab().then(res=>{
+ this.setData({
+ classifyInfo: res.data,
+ classifyId : res.data[0].category_id
+ })
+
+ // 获取列表
+ this.periphery();
+ })
+ },
+
+ /**
+ * tabs
+ */
+ orderTab(e){
+ let classifyid = e.currentTarget.dataset.id
+ if(this.data.classifyId != classifyid){
+ this.setData({
+ classifyId : classifyid || ""
+ })
+ // 获取列表
+ this.periphery();
+ }
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取周边列表
+ this.periphery();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取周边列表
+ this.periphery(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userMake/userMake.json b/手太欠/物业小程序/物业小程序/pages/userMake/userMake.json
new file mode 100644
index 0000000..22def8d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userMake/userMake.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "我的预约",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userMake/userMake.wxml b/手太欠/物业小程序/物业小程序/pages/userMake/userMake.wxml
new file mode 100644
index 0000000..0112f07
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userMake/userMake.wxml
@@ -0,0 +1,36 @@
+
+
+
+ {{item.title}}
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+
+ 预约时间:{{item.service_at}}
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userMake/userMake.wxss b/手太欠/物业小程序/物业小程序/pages/userMake/userMake.wxss
new file mode 100644
index 0000000..db72dc9
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userMake/userMake.wxss
@@ -0,0 +1,79 @@
+/* 我的预约tab */
+.periphery-tab {
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ display: flex;
+ height: 80rpx;
+ line-height: 80rpx;
+ z-index: 9;
+ background: white;
+ border-bottom: 2rpx solid #e1e1e1;
+}
+
+.periphery-tab-item {
+ font-size: 30rpx;
+ width: 50%;
+ text-align: center;
+ color: #9c9c9c;
+ background: white;
+ display: inline-block;
+ position: relative;
+}
+
+.periphery-tab-item.active {
+ color: #000;
+}
+
+.periphery-tab-item::after {
+ position: absolute;
+ content: '';
+ background-color: transparent;
+ width: 50rpx;
+ height: 6rpx;
+ left: calc(50% - 25rpx);
+ bottom: 2rpx;
+ border-radius: 20rpx;
+}
+
+.periphery-tab-item.active::after {
+ background-color: #cea760;
+}
+
+.header-classify {
+ white-space: nowrap;
+ box-sizing: border-box;
+}
+
+/* 列表 */
+.make {
+ margin: 100rpx 20rpx 0;
+}
+
+.makeLIst {
+ position: relative;
+}
+
+.makeLIst-img {
+ width: 110rpx;
+ height: 110rpx;
+ border-radius: 10rpx;
+}
+
+.makeLIst-text {
+ height: 110rpx;
+ padding-left: 150rpx;
+ padding-right: 20rpx;
+ box-sizing: border-box;
+ position: absolute;
+ top: 20rpx;
+ left: 0;
+
+}
+
+.makeLIst-time {
+ margin-top: 30rpx;
+ color: #818181;
+ font-size: 28rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userOrder/userOrder.js b/手太欠/物业小程序/物业小程序/pages/userOrder/userOrder.js
new file mode 100644
index 0000000..f50cef3
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userOrder/userOrder.js
@@ -0,0 +1,199 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ state : '',
+ orderArr : [], //列表数组
+ page : '', //下一页
+ lodingStats : false, //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ state: options.state || 'Process'
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ // 获取订单列表
+ this.orderList()
+ },
+
+ /**
+ * 订单列表-分类选择
+ */
+ orderTab(e) {
+ this.setData({
+ state: e.currentTarget.dataset.state
+ })
+
+ // 获取订单列表
+ this.orderList()
+ },
+
+ /**
+ * 订单列表
+ */
+ orderList (page) {
+ if(this.data.state == 'Process') {
+ wx.$api.users.process({page: page || ''}).then(res=>{
+ let listArr = this.data.orderArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ orderArr : res.data.data,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ } else if (this.data.state == 'Failed') {
+ wx.$api.users.failed({page: page || ''}).then(res=>{
+ let listArr = this.data.orderArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ console.log('Failed')
+ console.log(res.data.data)
+ this.setData({
+ orderArr : res.data.data,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ } else if (this.data.state == 'Presale') {
+ console.log('我是预售啦')
+ wx.$api.users.advance({page: page || ''}).then(res=>{
+ let listArr = this.data.orderArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ console.log('Failed')
+ console.log(res.data.data)
+ this.setData({
+ orderArr : res.data.data,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ }
+
+ },
+
+ /**
+ * 取消订单
+ */
+ orderDelete(e) {
+ console.log(e.currentTarget.dataset.id)
+ let orderId = e.currentTarget.dataset.id
+ wx.$api.users.cancel(orderId).then(res=>{
+ // 获取订单列表
+ this.orderList()
+ })
+ },
+
+ /**
+ * 签收订单
+ */
+ orderSign(e) {
+ let orderId = e.currentTarget.dataset.id
+ wx.$api.users.sign(orderId).then(res=>{
+ // 获取订单列表
+ this.orderList()
+ })
+ },
+
+ /**
+ * 删除订单
+ */
+ orderClose(e) {
+ let orderId = e.currentTarget.dataset.id
+ wx.showModal({
+ title : '订单删除',
+ content : '确定要删除此订单吗?',
+ success : res=> {
+ if (res.confirm) {
+ wx.$api.users.del(orderId).then(res=>{
+ // 获取订单列表
+ this.orderList()
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 支付订单
+ */
+ orderPay(e) {
+ let orderId = e.currentTarget.dataset.id,
+ amount = e.currentTarget.dataset.amount
+ wx.navigateTo({
+ url: '/pages/manyPay/manyPay?orderid=' + orderId + '&amount=' + amount
+ })
+ },
+
+ /**
+ * 支付定金
+ */
+ depositPay(e) {
+ console.log(e)
+ let orderId = e.currentTarget.dataset.id,
+ amount = e.currentTarget.dataset.amount
+ wx.navigateTo({
+ url: '/pages/manyPay/manyPay?orderid=' + orderId + '&amount=' + amount + "&type=deposiPay"
+ })
+ },
+
+ /**
+ * 支付尾款
+ */
+ depositTail(e) {
+ let orderId = e.currentTarget.dataset.id,
+ amount = e.currentTarget.dataset.amount
+ wx.navigateTo({
+ url: '/pages/manyPay/manyPay?orderid=' + orderId + '&amount=' + amount + "&type=depositTail"
+ })
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取订单列表
+ this.orderList()
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取订单列表
+ this.orderList(pageNumber)
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userOrder/userOrder.json b/手太欠/物业小程序/物业小程序/pages/userOrder/userOrder.json
new file mode 100644
index 0000000..29189c0
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userOrder/userOrder.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "商城订单",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userOrder/userOrder.wxml b/手太欠/物业小程序/物业小程序/pages/userOrder/userOrder.wxml
new file mode 100644
index 0000000..daf3a24
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userOrder/userOrder.wxml
@@ -0,0 +1,145 @@
+
+
+
+ 商城订单
+
+
+ 预售订单
+
+
+ 拼团订单
+
+
+
+
+
+
+
+ 订单号 {{item.trade_no}}
+ {{item.state_text}}
+ {{item.state_text}}
+ {{item.state_text}}
+
+
+
+
+
+ 商品名称 :
+ {{items.title}}
+
+
+ 商品数量 :
+ x{{items.qty}}
+
+
+
+
+ {{item.created_at}}
+ 合计金额¥{{item.fact_amount}}
+
+
+
+ 取消订单
+
+ 删除订单
+ 订单详情
+ 立即支付
+
+ 立即签收
+
+
+
+
+
+
+
+ 订单号 {{item.trade_no}}
+ 已{{item.state_text}}
+ {{item.state_text}}
+ {{item.state_text}}
+
+
+
+
+
+ 商品名称 :
+ {{items.title}}
+
+
+ 商品数量 :
+ x{{items.qty}}
+
+
+
+
+ {{item.created_at}}
+ 定金 ¥{{item.fact_amount}}
+
+
+ 合计金额¥{{item.amount}}
+
+
+
+ 取消订单
+
+ 删除订单
+ 订单详情
+
+
+ 支付定金
+
+ 支付尾款
+
+
+ 立即签收
+
+
+
+
+
+
+
+ 订单号 {{item.orderid}}
+ {{item.state_text}}
+ {{item.state_text}}
+ {{item.state_text}}
+
+
+
+
+
+ 商品名称 :
+ {{item.title}}
+
+
+ 拼团人数 :
+ {{item.number}}人
+
+
+
+
+ {{item.created_at}}
+ 合计金额¥{{item.amount}}
+
+
+ 订单详情
+ 立即支付
+
+
+
+
+
+
+
+ 暂无订单
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userOrder/userOrder.wxss b/手太欠/物业小程序/物业小程序/pages/userOrder/userOrder.wxss
new file mode 100644
index 0000000..b16836b
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userOrder/userOrder.wxss
@@ -0,0 +1,165 @@
+/* 商城订单tab */
+.order-tab{
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ display: flex;
+ height: 80rpx;
+ line-height: 80rpx;
+ z-index: 9;
+ background: white;
+}
+
+.order-tab-item{
+ font-size: 28rpx;
+ width: 33.33%;
+ text-align: center;
+ border-bottom: solid 2rpx #f7f7f7;
+ color: #464854;
+ background: white;
+}
+
+.order-tab-item.active{
+ border-bottom: solid 2rpx #3ec28e;
+ color:#3ec28e;
+}
+
+/* 订单列表 */
+.order-list {
+ margin: 100rpx 20rpx 20rpx;
+}
+
+.order-cont {
+ margin-bottom: 20rpx;
+}
+
+.order-top,
+.order-label,
+.order-text {
+ display: flex;
+ font-size: 28rpx;
+}
+
+.order-top-number,
+.order-label text,
+.order-time {
+ flex: 1;
+}
+
+.order-top {
+ padding: 0 20rpx;
+ line-height: 90rpx;
+ box-sizing: border-box;
+ position: relative;
+}
+
+.order-top::before{
+ position: absolute;
+ content: '';
+ left: 0;
+ bottom: 0;
+ background: #dadada;
+ height: 2rpx;
+ width: 100%;
+}
+
+.order-top-tips {
+ font-size: 26rpx;
+ color: #999;
+}
+
+.order-top-tips.green {
+ color: #64b076;
+}
+
+.order-top-tips.red {
+ color: #e80204;
+}
+
+.order-name {
+ padding: 20rpx 30rpx;
+ box-sizing: border-box;
+ display: flex;
+}
+
+.order-img {
+ width: 100rpx;
+ height: 100rpx;
+ margin-right: 20rpx;
+}
+
+.order-goods {
+ width: calc(100% - 120rpx);
+}
+
+.order-text {
+ padding: 30rpx;
+ box-sizing: border-box;
+ position: relative;
+ font-size: 28rpx;
+}
+
+.order-text::before {
+ position: absolute;
+ content: '';
+ left: 30rpx;
+ top: 0;
+ background: #dadada;
+ height: 2rpx;
+ width: calc(100% - 60rpx);
+}
+
+.order-label text {
+ color: #666;
+ margin-bottom: 18rpx;
+ width: 130rpx;
+ display: inline-block;
+}
+
+.order-label view {
+ width: calc(100% - 150rpx);
+}
+
+.order-time {
+ color: #999999;
+}
+
+.order-price text.red {
+ color: #e80204;
+ padding-left: 20rpx;
+}
+
+.order-btn {
+ text-align: right;
+ padding: 30rpx;
+ box-sizing: border-box;
+ position: relative;
+}
+
+.order-btn::before {
+ position: absolute;
+ content: '';
+ left: 0;
+ top: 0;
+ background: #dadada;
+ height: 2rpx;
+ width: 100%;
+}
+
+.order-btn .order-btn-atn {
+ border: 2rpx solid #dadada;
+ border-radius: 40rpx;
+ padding: 0 20rpx;
+ height: 56rpx;
+ line-height: 56rpx;
+ color: #767676;
+ display: inline-block;
+ margin-left: 15rpx;
+ font-size: 24rpx;
+}
+
+.order-btn .order-btn-atn.pay {
+ border-color: #cea760;
+ color: #cea760;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userOrder_data/userOrder_data.js b/手太欠/物业小程序/物业小程序/pages/userOrder_data/userOrder_data.js
new file mode 100644
index 0000000..1474b3a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userOrder_data/userOrder_data.js
@@ -0,0 +1,148 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ orderId : '', //订单id
+ orderInfo : '', //订单详情
+ type : ''
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ orderId : options.id,
+ type : options.type
+ })
+ },
+
+ /**
+ * 页面显示
+ */
+ onShow(){
+ if(this.data.orderId) this.orderData(this.data.orderId)
+ },
+
+ /**
+ * 订单详情
+ */
+ orderData(id) {
+ wx.$api.users.details(id).then(res=>{
+ console.log(res)
+ this.setData({
+ orderInfo: res.data
+ })
+ })
+ },
+
+ /**
+ * 取消订单
+ */
+ orderDelete(e) {
+ let orderId = e.currentTarget.dataset.id
+ wx.$api.users.cancel(orderId).then(res=>{
+ if(this.data.type == 'depositType'){
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Presale'
+ })
+ } else {
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder'
+ })
+ }
+
+ })
+ },
+
+ /**
+ * 签收订单
+ */
+ orderSign(e) {
+ let orderId = e.currentTarget.dataset.id
+ wx.$api.users.sign(orderId).then(res=>{
+ if(this.data.type == 'depositType'){
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Presale'
+ })
+ } else {
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder'
+ })
+ }
+ })
+ },
+
+ /**
+ * 删除订单
+ */
+ orderClose(e) {
+ let orderId = e.currentTarget.dataset.id
+ wx.showModal({
+ title : '订单删除',
+ content : '确定要删除此订单吗?',
+ success : res=> {
+ if (res.confirm) {
+ wx.$api.users.del(orderId).then(res=>{
+ if(this.data.type == 'depositType'){
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder?state=Presale'
+ })
+ } else {
+ wx.redirectTo({
+ url: '/pages/userOrder/userOrder'
+ })
+ }
+ })
+ }
+ }
+ })
+ },
+
+ /**
+ * 支付订单
+ */
+ orderPay(e) {
+ let orderId = e.currentTarget.dataset.id,
+ amount = e.currentTarget.dataset.amount
+ wx.navigateTo({
+ url: '/pages/manyPay/manyPay?orderid=' + orderId + '&amount=' + amount
+ })
+ },
+
+ /**
+ * 返回上一页
+ */
+ orderRun() {
+ wx.navigateBack({
+ delta: 1,
+ })
+ },
+
+ /**
+ * 复制订单号
+ */
+ copyUrl (e) {
+ let text = e.currentTarget.dataset.text
+ wx.setClipboardData({
+ data : text,
+ success : res=> {
+ wx.getClipboardData({
+ success: res => {
+ wx.showToast({
+ title: '复制成功'
+ })
+ }
+ })
+ }
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userOrder_data/userOrder_data.json b/手太欠/物业小程序/物业小程序/pages/userOrder_data/userOrder_data.json
new file mode 100644
index 0000000..5aa02df
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userOrder_data/userOrder_data.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "订单详情"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userOrder_data/userOrder_data.wxml b/手太欠/物业小程序/物业小程序/pages/userOrder_data/userOrder_data.wxml
new file mode 100644
index 0000000..0b69c39
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userOrder_data/userOrder_data.wxml
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+ 活动类型
+
+ {{orderInfo.type_text}}商品
+
+ {{orderInfo.type_text}}商品
+
+ {{orderInfo.type_text}}商品
+
+ {{orderInfo.type_text}}商品
+
+ {{orderInfo.type_text}}商品
+
+
+
+
+
+
+
+ 订单编号
+
+ {{orderInfo.trade_no}}
+ 复制
+
+
+
+
+
+
+ {{orderInfo.express.name}} {{orderInfo.express.mobile}}
+
+
+ {{orderInfo.express.address}}
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+ {{item.value}}
+
+ ¥{{item.price}}
+ x{{item.qty}}
+
+
+
+
+ 商品总价
+ ¥{{orderInfo.amount}}
+
+
+
+
+ 订单信息
+
+ 交易时间
+ {{orderInfo.created_at}}
+
+
+ 优惠券抵扣
+ -¥{{orderInfo.coupon}}
+
+
+ 满减专享
+ -¥{{orderInfo.minus.minus}}
+
+
+ 商品总计
+ {{orderInfo.qty}}件
+
+
+ 交易状态
+ {{orderInfo.state_text}}
+
+
+
+
+
+ 实际金额
+ ¥{{orderInfo.fact_amount}}
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userOrder_data/userOrder_data.wxss b/手太欠/物业小程序/物业小程序/pages/userOrder_data/userOrder_data.wxss
new file mode 100644
index 0000000..1f7a7ac
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userOrder_data/userOrder_data.wxss
@@ -0,0 +1,203 @@
+/* 订单详情 */
+.orderData {
+ margin: 20rpx;
+ border-bottom: 100rpx transparent solid;
+}
+
+.orderData-cont-label {
+ display: flex;
+ padding: 40rpx 30rpx;
+}
+
+.orderData-cont-label:last-child {
+ margin-bottom: 0;
+}
+
+.orderData-cont-img {
+ width: 80rpx;
+ height: 80rpx;
+ margin: 10rpx 30rpx 0 0;
+}
+
+.orderData-cont-type {
+ flex: 1;
+}
+
+.orderData-conttype-red {
+ color: #e92344;
+}
+
+.orderData-conttype-green {
+ color: #52b96a;
+}
+
+.orderData-conttype-yellow {
+ color: #e23e04;
+}
+
+.orderData-conttype-blue {
+ color: #003fb3;
+}
+
+.orderData-conttype-grey {
+ color: #006ab5;
+}
+
+
+.orderData-cont-text {
+ width: calc(100% - 110rpx);
+}
+
+.orderData-cont-name {
+ margin-bottom: 20rpx;
+}
+
+.orderData-cont-name text {
+ color: #999;
+ padding-left: 20rpx;
+}
+
+.orderData-cont-arresss {
+ line-height: 44rpx;
+}
+
+.orderData-cont-copy {
+ display: flex;
+}
+
+.orderData-cont-copy text {
+ flex: 1;
+ color: #999;
+}
+
+.orderData-cont-copy view {
+ color: #52b96a;
+}
+
+.orderGoods {
+ margin: 20rpx 0;
+ padding: 30rpx;
+ box-sizing: border-box;
+}
+
+.orderGoods-wares {
+ position: relative;
+ margin-bottom: 10rpx;
+}
+
+.orderGoods-img {
+ width: 160rpx;
+ height: 160rpx;
+ border: 2rpx solid #dddddd;
+}
+
+.orderGoods-cont {
+ position: absolute;
+ width: calc(100% - 190rpx);
+ left: 190rpx;
+ top: 0;
+}
+
+.orderGoods-text {
+ margin: 20rpx 0 30rpx;
+ color: #666666;
+ font-size: 26rpx;
+}
+
+.orderGoods-price {
+ display: flex;
+ color: #555555;
+}
+
+.orderGoods-price text {
+ flex: 1;
+ color: #000;
+}
+
+.orderGoods-brief {
+ display: flex;
+ padding-top: 30rpx;
+}
+
+.orderGoods-brief view {
+ flex: 1;
+ color: #333333;
+}
+
+.orderGoods-brief-red text {
+ color: #ff4946;
+}
+
+
+.reserve-label {
+ display: flex;
+ padding: 20rpx;
+ box-sizing: border-box;
+}
+
+.reserve-name {
+ flex: 1;
+ width: 200rpx;
+ margin-right: 20rpx;
+ color: #7e7e7e;
+}
+
+.reserve-text {
+ width: calc(100% - 240rpx);
+ text-align: right;
+ line-height: 50rpx;
+}
+
+.reserve-red {
+ color: #ff4946;
+}
+
+.green {
+ color: #62be76;
+}
+
+.reserveCont {
+ margin-bottom: 20rpx;
+}
+
+.reserveCont-title {
+ font-weight: 600;
+ margin-bottom: 30rpx;
+ padding: 30rpx 20rpx 0;
+ font-size: 34rpx;
+}
+
+
+/* 底部工具栏 */
+.order-data-footer{
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ border-top: solid 1rpx #f2f2f2;
+ padding-top: 17rpx;
+ padding-right: 30rpx;
+ padding-left: 30rpx;
+ height: 83rpx;
+ background: white;
+ display: flex;
+ flex-wrap: wrap;
+ flex-direction:row-reverse;
+}
+
+.order-btn{
+ margin-left: 20rpx;
+ height: 58rpx;
+ line-height: 58rpx;
+ box-sizing: border-box;
+ border:solid 1rpx #747788;
+ padding: 0 20rpx;
+ font-size: 26rpx;
+ border-radius: 10rpx;
+ margin-top: 5rpx;
+}
+
+.order-btn-back {
+ border-color: #e92344;
+ color: #e92344;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userRelease/userRelease.js b/手太欠/物业小程序/物业小程序/pages/userRelease/userRelease.js
new file mode 100644
index 0000000..2f6c40c
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userRelease/userRelease.js
@@ -0,0 +1,142 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ stateType : 'periphery', //periphery为生活周边,lease为房屋租赁
+ releaseState : false, //发布信息弹出状态
+ lifeArr : [], //生活周边列表
+ page : {}, //分页信息
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ stateType: options.type || 'periphery'
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ // 获取生活周边列表
+ this.lifeInfo();
+ },
+
+ /**
+ * 切换tab
+ */
+ orderTab(e){
+ let stateValue = e.currentTarget.dataset.state
+ if(this.data.stateType != stateValue){
+ this.setData({
+ stateType : e.currentTarget.dataset.state
+ })
+ // 获取生活周边列表
+ this.lifeInfo();
+ }
+ },
+
+ /**
+ * 发布弹出
+ */
+ releaseShow() {
+ this.setData({
+ releaseState : !this.data.releaseState
+ })
+ },
+
+ /**
+ * 发布关闭
+ */
+ releaseHide() {
+ this.setData({
+ releaseState : !this.data.releaseState
+ })
+ },
+
+ /**
+ * 生活周边-列表
+ */
+ lifeInfo(page) {
+ if(this.data.stateType == 'periphery') {
+ wx.$api.users.lifeList({
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.lifeArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ lifeArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ } else {
+ wx.$api.users.roomList({
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.lifeArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ lifeArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ }
+ },
+
+ /**
+ * 发布跳转
+ */
+ urlTab(e) {
+ wx.navigateTo({
+ url: '/pages/userRelease_form/userRelease_form?type=' + e.currentTarget.dataset.type
+ })
+ this.setData({
+ releaseState : !this.data.releaseState
+ })
+ },
+
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取生活周边列表
+ this.lifeInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取生活周边列表
+ this.lifeInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userRelease/userRelease.json b/手太欠/物业小程序/物业小程序/pages/userRelease/userRelease.json
new file mode 100644
index 0000000..501a409
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userRelease/userRelease.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "我的发布",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userRelease/userRelease.wxml b/手太欠/物业小程序/物业小程序/pages/userRelease/userRelease.wxml
new file mode 100644
index 0000000..befa183
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userRelease/userRelease.wxml
@@ -0,0 +1,104 @@
+
+
+
+ 生活周边
+
+
+ 租卖信息
+
+
+
+
+
+
+
+
+
+
+
+ {{item.type_text}} {{item.title}}
+
+ {{item.description}}
+
+
+ 发布时间:{{item.created_at}}
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+ 发布人:{{item.contact_hide}}
+
+
+ {{item.price}} 元
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
+
+
+
+
+ 发布信息
+
+
+
+
+
+
+ 选择发布信息类型
+
+
+
+
+ 发布生活周边信息
+ 点击可发布生活周边相关信息
+
+
+
+
+
+
+
+
+ 发布租卖信息
+ 点击可发布租卖相关信息
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userRelease/userRelease.wxss b/手太欠/物业小程序/物业小程序/pages/userRelease/userRelease.wxss
new file mode 100644
index 0000000..a09316e
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userRelease/userRelease.wxss
@@ -0,0 +1,268 @@
+/* 我的发布 */
+.header-classify {
+ white-space: nowrap;
+ box-sizing: border-box;
+}
+
+.periphery-tab {
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ display: flex;
+ height: 80rpx;
+ line-height: 80rpx;
+ z-index: 9;
+ background: white;
+ border-bottom: 2rpx solid #e1e1e1;
+}
+
+.periphery-tab-item {
+ font-size: 30rpx;
+ width: 50%;
+ text-align: center;
+ color: #000;
+ background: white;
+ display: inline-block;
+ position: relative;
+}
+
+.periphery-tab-item.active {
+ color: #cea760;
+}
+
+.periphery-tab-item::after {
+ position: absolute;
+ content: '';
+ background-color: transparent;
+ width: 50rpx;
+ height: 6rpx;
+ left: calc(50% - 25rpx);
+ bottom: 2rpx;
+ border-radius: 20rpx;
+}
+
+.periphery-tab-item.active::after {
+ background-color: #cea760;
+}
+
+/* 生活周边 */
+.periphery-content {
+ margin: 100rpx 20rpx 0;
+ border-bottom: solid 110rpx transparent;
+}
+
+.peripheryList {
+ position: relative;
+ margin-bottom: 20rpx;
+}
+
+.peripheryList-img {
+ position: relative;
+ width: 160rpx;
+ height: 160rpx;
+ border-radius: 10rpx;
+ overflow: hidden;
+}
+
+.peripheryList-img image {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.peripheryList-cont {
+ position: absolute;
+ left: 210rpx;
+ top: 20rpx;
+ right: 20rpx;
+ width: calc(100% - 230rpx);
+}
+
+.peripheryList-name text {
+ font-size: 24rpx;
+ background-color: #e1e1e1;
+ border-radius: 50rpx;
+ padding: 0 15rpx;
+ height: 38rpx;
+ line-height: 38rpx;
+ display: inline-block;
+ color: #fff;
+ margin-right: 10rpx;
+}
+
+.peripheryList-text {
+ font-size: 28rpx;
+ margin: 15rpx 0;
+ line-height: 46rpx;
+}
+
+.peripheryList-time {
+ font-size: 26rpx;
+ color: #adadad;
+}
+
+/* 房屋租赁 */
+
+.leaseList {
+ position: relative;
+ margin-bottom: 20rpx;
+}
+
+.leaseList-img {
+ position: relative;
+ width: 160rpx;
+ height: 160rpx;
+ border-radius: 10rpx;
+ overflow: hidden;
+}
+
+.leaseList-img image {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.leaseList-cont {
+ position: absolute;
+ left: 210rpx;
+ top: 20rpx;
+ right: 20rpx;
+ width: calc(100% - 230rpx);
+}
+
+.leaseList-text {
+ font-size: 28rpx;
+ color: #5c5c5c;
+ margin-top: 10rpx;
+}
+
+.leaseList-price {
+ color: #cc141c;
+ margin-top: 25rpx;
+}
+
+.leaseList-price text {
+ font-size: 24rpx;
+}
+
+/* 发布信息 */
+.release-btn {
+ background-color: #f5f5f5;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ z-index: 99;
+ width: 100%;
+ height: 110rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 15rpx;
+ box-sizing: border-box;
+}
+
+.release-btn-make {
+ width: 100%;
+ background: #52b96a;
+ height: 84rpx;
+ line-height: 84rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ text-align: center;
+ border-radius: 50rpx;
+}
+
+/* 发布信息弹出 */
+.releaseBack {
+ position: fixed;
+ width: 100%;
+ height: 100%;
+ z-index: 100;
+ left: 0;
+ top: 0;
+ background-color: rgba(0, 0, 0, .5);
+ display: none;
+}
+
+.releaseBack.active {
+ display: block;
+}
+
+.releasePop {
+ position: fixed;
+ left: -100%;
+ bottom: calc(50% - 200rpx);
+ height: 400rpx;
+ background-color: white;
+ z-index: 101;
+ border-radius: 40rpx;
+ font-size: 34rpx;
+ padding-bottom: 30rpx;
+ transition: .1s;
+}
+
+.releasePop.active {
+ right: 10%;
+ left: 10%;
+}
+
+.releasePop-label {
+ padding: 40rpx 10rpx 20rpx 30rpx;
+}
+
+.releasePop-label text {
+ font-size: 28rpx;
+ color: #999;
+ padding-top: 10rpx;
+}
+
+.releasePop-title {
+ font-weight: 600;
+ padding: 30rpx 0;
+ box-sizing: border-box;
+ text-align: center;
+ position: relative;
+}
+
+.releasePop-title::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 2rpx;
+ background-color: #e8e8e8;
+}
+
+.releasePop-label {
+ display: flex;
+}
+
+.releasePop-name {
+ flex: 1;
+}
+
+.releasePop-name text {
+ display: block;
+}
+
+.releasePop-name image {
+ width: 60rpx;
+ height: 60rpx;
+ margin: 14rpx 30rpx 0 0;
+}
+
+.releasePop-name {
+ display: flex;
+}
+
+.releasePop-arrow {
+ width: 50rpx;
+ height: 50rpx;
+ margin-top: 20rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userRelease_form/userRelease_form.js b/手太欠/物业小程序/物业小程序/pages/userRelease_form/userRelease_form.js
new file mode 100644
index 0000000..4ac803a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userRelease_form/userRelease_form.js
@@ -0,0 +1,164 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ sortArr : [], //发布分类列表
+ sortIndex : 0, //发布分类下标
+ sortId : 0, //发布分类id
+ stateType : '', //periphery为生活周边,lease为房屋租赁
+ codeImage : '', //新上传头像
+ avatarNew : '', //图片上传
+ avatarPath : '', //图片保存
+ videoNew : '', //视频封面
+ videorPath : '', //视频上传保存
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ console.log(options)
+ this.setData({
+ stateType: options.type
+ })
+
+ // 获取发布分类
+ this.sortInfo();
+ },
+
+ /**
+ * 发布分类
+ */
+ sortInfo() {
+ if(this.data.stateType == 'lease') {
+ wx.$api.life.roomSort().then(res=>{
+ this.setData({
+ sortArr : res.data
+ })
+ })
+ }else {
+ wx.$api.life.index().then(res=>{
+ this.setData({
+ sortArr : res.data
+ })
+ })
+ }
+ },
+
+ /**
+ * 分类选择器
+ */
+ changePicker(e){
+ console.log(e.detail.value)
+ let newSort = this.data.sortArr,
+ pickerValue = e.detail.value
+ let sortid = newSort[pickerValue].category_id
+ this.setData({
+ sortId : sortid,
+ sortIndex : pickerValue
+ })
+ },
+
+ /**
+ * 上传封面
+ */
+ upShopLogo() {
+ wx.navigateTo({
+ url: '/pages/works_img/works_img'
+ })
+ },
+
+ /**
+ * 接受页面裁剪返回参数
+ */
+ updImg(e){
+ console.log(e)
+ wx.showLoading({
+ title: "上传中"
+ })
+ wx.$api.file.uploadImg(e, {}).then(res=>{
+ this.setData({
+ avatarNew : res.showpath,
+ avatarPath : res.path
+ })
+ wx.hideLoading()
+ })
+ },
+
+ /**
+ * 上传视频
+ */
+ upFile() {
+ wx.chooseVideo({
+ success : res => {
+ wx.showLoading({
+ title: "上传中"
+ })
+ console.log(res)
+ wx.$api.file.uploadVideo(res.tempFilePath, {}).then(res=>{
+ console.log(res)
+ this.setData({
+ videoNew : res.showpath,
+ videorPath : res.path
+ })
+ wx.hideLoading()
+ })
+ }
+ })
+ },
+
+ /**
+ * 发布
+ */
+ invoiceForm(e) {
+ let pages = getCurrentPages();
+ let currPage = pages[pages.length - 1];
+ let prevPage = pages[pages.length - 2]; //获取上一个页面
+ let title = e.detail.value.title,
+ mobile = e.detail.value.contact_mobile,
+ contact = e.detail.value.contact,
+ content = e.detail.value.content,
+ price = e.detail.value.price
+ if(this.data.stateType == 'lease') {
+ wx.$api.users.roomIssue({
+ title : title,
+ contact_mobile : mobile,
+ contact : contact,
+ content : content,
+ price : price,
+ category_id : this.data.sortId,
+ cover : this.data.avatarPath
+ }).then(res=>{
+ prevPage.setData({
+ stateType: "lease" //修改上一个页面的变量
+ })
+ // 返回上一页
+ wx.navigateBack();
+ })
+ }else {
+ wx.$api.users.lifeIssue({
+ title : title,
+ content : content,
+ video_url : this.data.videorPath,
+ category_id : this.data.sortId,
+ cover : this.data.avatarPath
+ }).then(res=>{
+ prevPage.setData({
+ stateType: "periphery" //修改上一个页面的变量
+ })
+ // 返回上一页
+ wx.navigateBack();
+ })
+ }
+
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userRelease_form/userRelease_form.json b/手太欠/物业小程序/物业小程序/pages/userRelease_form/userRelease_form.json
new file mode 100644
index 0000000..bf9aac6
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userRelease_form/userRelease_form.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "信息发布"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userRelease_form/userRelease_form.wxml b/手太欠/物业小程序/物业小程序/pages/userRelease_form/userRelease_form.wxml
new file mode 100644
index 0000000..9a3ebe9
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userRelease_form/userRelease_form.wxml
@@ -0,0 +1,73 @@
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userRelease_form/userRelease_form.wxss b/手太欠/物业小程序/物业小程序/pages/userRelease_form/userRelease_form.wxss
new file mode 100644
index 0000000..7f5e41c
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userRelease_form/userRelease_form.wxss
@@ -0,0 +1,199 @@
+/* 发布表单 */
+.release {
+ margin: 20rpx;
+ display: block;
+ border-bottom: solid 110rpx transparent;
+}
+
+.release-label,
+.release-file {
+ margin: 20rpx 0;
+}
+
+.form-picker {
+ display: flex;
+}
+
+.form-picker text {
+ display: block;
+ flex: 1;
+}
+
+.release-picker-icon {
+ width: 40rpx;
+ height: 40rpx;
+}
+
+.release-title {
+ margin-bottom: 20rpx;
+}
+
+.release-text textarea {
+ width: 100%;
+ border-top: 2rpx solid #ececec;
+ padding-top: 20rpx;
+}
+
+.release-text text {
+ width: 100%;
+ text-align: right;
+ display: block;
+ color: #999;
+ padding: 10rpx 0;
+}
+
+.upLoad {
+ width: 210rpx;
+ height: 210rpx;
+ display: inline-block;
+ position: relative;
+}
+
+.upLoadBack {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ z-index: 9;
+ left: 0;
+ top: 0;
+}
+
+.upLoadImg {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ z-index: 99;
+}
+
+/* 房租租赁 */
+
+.public-label {
+ margin-bottom: 50rpx;
+}
+
+.public-label:last-child {
+ margin-bottom: 20rpx;
+}
+
+.public-label label {
+ margin-bottom: 20rpx;
+ display: block;
+}
+
+.public-label textarea,
+.public-label input,
+.public-price-label {
+ border: 2rpx solid #ebebeb;
+ border-radius: 10rpx;
+ font-size: 30rpx;
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.public-label input {
+ padding: 0 20rpx;
+ height: 90rpx;
+ line-height: 90rpx;
+}
+
+.public-label textarea {
+ padding: 20rpx;
+}
+
+.public-price-label {
+ display: flex;
+ line-height: 90rpx;
+}
+
+.public-price-label text {
+ color: #cd141a;
+ padding: 0 20rpx;
+}
+
+.public-price input {
+ border: none;
+}
+
+.papers-title {
+ font-weight: 600;
+ font-size: 30rpx;
+}
+
+
+.repair-add {
+ width: 200rpx;
+ height: 200rpx;
+ box-sizing: border-box;
+ position: relative;
+ margin: 10rpx 0 20rpx;
+}
+
+.repair-add>image {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 10rpx;
+ left: 0;
+}
+
+
+/* 发布信息按钮 */
+.release-btn {
+ background-color: #f5f5f5;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ z-index: 99;
+ width: 100%;
+ height: 110rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0 15rpx;
+ box-sizing: border-box;
+}
+
+.release-btn button[size="mini"] {
+ width: 100%;
+ background: #52b96a;
+ height: 90rpx;
+ line-height: 90rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ border-radius: 100rpx;
+ margin: 10rpx 0;
+}
+
+/* 上传视频 */
+
+.upLoad {
+ position: relative;
+ width: 180rpx;
+ height: 180rpx;
+ z-index: 0;
+ border: 2rpx solid #dcdcdc;
+ background: #f9f9f9;
+}
+
+.upLoadImg, .upLoadImg-new {
+ position: absolute;
+ z-index: 0;
+}
+
+.upLoadImg {
+ width: 50%;
+ height: 50%;
+ left: 25%;
+ top: 25%;
+}
+
+.upLoadImg-file {
+ width: 100%;
+ height: 100%;
+ left: 0%;
+ top: 0%;
+ position: absolute;
+ z-index: 9;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userSetup/userSetup.js b/手太欠/物业小程序/物业小程序/pages/userSetup/userSetup.js
new file mode 100644
index 0000000..ee52ebd
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userSetup/userSetup.js
@@ -0,0 +1,44 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ userInfo : {}, //用户信息
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onShow (options) {
+ wx.$api.users.setting().then(res=>{
+ this.setData({
+ userInfo: res.data
+ })
+ })
+ },
+
+ /**
+ * 退出登录
+ */
+ login() {
+ // 更新全局状态
+ app.globalData.token = ''
+ app.globalData.isUser = false
+ wx.clearStorage({
+ success: res=>{
+ // 返回首页
+ wx.switchTab({
+ url: "/pages/user/user",
+ })
+ }
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userSetup/userSetup.json b/手太欠/物业小程序/物业小程序/pages/userSetup/userSetup.json
new file mode 100644
index 0000000..3cdb2b7
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userSetup/userSetup.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "个人设置"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userSetup/userSetup.wxml b/手太欠/物业小程序/物业小程序/pages/userSetup/userSetup.wxml
new file mode 100644
index 0000000..b226cf3
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userSetup/userSetup.wxml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{userInfo.nickname}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userSetup/userSetup.wxss b/手太欠/物业小程序/物业小程序/pages/userSetup/userSetup.wxss
new file mode 100644
index 0000000..1cb7524
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userSetup/userSetup.wxss
@@ -0,0 +1,35 @@
+/* 个人设置 */
+.site-input {
+ border-bottom: 2rpx solid #f7f7f7;
+ display: flex;
+ height: 100rpx;
+ line-height: 100rpx;
+ padding: 0 20rpx;
+ background: #fff;
+}
+
+.site-input label {
+ color: #000;
+ flex: 1;
+}
+
+.site-input text {
+ color: #797979;
+}
+
+.site-nickname {
+ display: flex;
+}
+
+.siteRow {
+ width: 30rpx;
+ height: 30rpx;
+ margin: 35rpx 0 0 10rpx;
+}
+
+.siteAvatar {
+ width: 70rpx;
+ height: 70rpx;
+ margin-top: 15rpx;
+ border-radius: 50%;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userSetup_form/userSetup_form.js b/手太欠/物业小程序/物业小程序/pages/userSetup_form/userSetup_form.js
new file mode 100644
index 0000000..c31b59b
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userSetup_form/userSetup_form.js
@@ -0,0 +1,87 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ statusBarHeight : '', //手机状态栏高度
+ type : '', //type分类
+ avatar : '', //头像
+ name : '', //昵称
+ codeImage : '', //新上传头像
+ avatarPath : '' //新头像保存
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ this.setData({
+ type : options.type,
+ statusBarHeight : app.globalData.statusBarHeight,
+ avatar : options.img,
+ name : options.nickname
+ })
+ },
+
+ /**
+ * 上传封面
+ */
+ upShopLogo() {
+ wx.navigateTo({
+ url: '/pages/works_img/works_img'
+ })
+ },
+
+ /**
+ * 接受页面裁剪返回参数
+ */
+ updImg(e){
+ wx.showLoading({
+ title: "上传中"
+ })
+ wx.$api.file.uploadImg(e, {}).then(res=>{
+ this.setData({
+ avatarNew : res.showpath,
+ avatarPath : res.path
+ })
+ wx.hideLoading()
+ })
+ },
+
+ /**
+ * 上传服务器
+ */
+ uploadFile (e) {
+ let nickname = e.detail.value.nickname
+ // avatar为设置头像,name修改昵称
+ if(this.data.type == 'avatar') {
+ wx.$api.users.avatar({value: this.data.avatarPath}).then(res=>{
+ wx.navigateBack({
+ detail: 1
+ })
+ })
+ }else if(this.data.type == 'name') {
+ wx.$api.users.nickname({value: nickname}).then(res=>{
+ wx.navigateBack({
+ detail: 1
+ })
+ })
+ }
+ },
+
+ /**
+ * 返回上一步
+ */
+ _navback () {
+ wx.navigateBack({
+ delta: 1
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userSetup_form/userSetup_form.json b/手太欠/物业小程序/物业小程序/pages/userSetup_form/userSetup_form.json
new file mode 100644
index 0000000..dc0b39b
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userSetup_form/userSetup_form.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationStyle" : "custom"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userSetup_form/userSetup_form.wxml b/手太欠/物业小程序/物业小程序/pages/userSetup_form/userSetup_form.wxml
new file mode 100644
index 0000000..ff60a55
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userSetup_form/userSetup_form.wxml
@@ -0,0 +1,31 @@
+
+
+
+
+ 修改头像
+
+
+
+
+
+ 修改手机号
+
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userSetup_form/userSetup_form.wxss b/手太欠/物业小程序/物业小程序/pages/userSetup_form/userSetup_form.wxss
new file mode 100644
index 0000000..1a71fa0
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userSetup_form/userSetup_form.wxss
@@ -0,0 +1,122 @@
+/* 个人设置 */
+.navigation{
+ background-color: #fff;
+ position: fixed;
+ color: #000;
+ top: 0;
+ left: 0;
+ z-index: 99;
+ width: 100%;
+ height: 90rpx;
+ line-height: 90rpx;
+ text-align: center;
+}
+
+.upLoad {
+ position: relative;
+ width: 200rpx;
+ height: 200rpx;
+ z-index: 9;
+ margin: 50rpx auto 0;
+ border-radius: 50%;
+ overflow: hidden;
+}
+
+.upLoadBack {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ z-index: 9;
+ left: 0;
+ top: 0;
+}
+
+.upLoadImg {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ z-index: 99;
+}
+
+.upLoadEdit {
+ position: absolute;
+ width: 100%;
+ height: 60rpx;
+ left: 0;
+ bottom: 0;
+ z-index: 10;
+ background: rgba(0, 0, 0, .3);
+ text-align: center;
+ line-height: 60rpx;
+ color: #fff;
+ font-size: 26rpx;
+ opacity: .9;
+}
+
+.navigation-tool {
+ width: 36rpx;
+ height: 36rpx;
+ position: absolute;
+ left: 20rpx;
+ transform:rotate(180deg)
+}
+
+
+/* 提交按钮 */
+
+.form-btn{
+ padding: 30rpx 30rpx;
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.form-btn button{
+ background: #52b96a;
+ color: white;
+ height: 90rpx;
+ line-height: 90rpx;
+ font-size: 32rpx;
+ padding: 0 !important;
+ margin: 40rpx 0 0!important;
+ width: 100% !important;
+}
+
+/* 昵称 */
+
+.form-input{
+ padding-left: 140rpx;
+ padding-right: 30rpx;
+ position: relative;
+ height: 90rpx;
+ margin: 20rpx;
+}
+
+.form-input::before{
+ position: absolute;
+ left: 30rpx;
+ bottom: 0;
+ right: 0;
+ height: 1rpx;
+ content: " ";
+ background: #e4e6f2;
+}
+
+.form-input:last-child::before{
+ display: none;
+}
+
+.form-input-label{
+ position: absolute;
+ left: 30rpx;
+ width: 80rpx;
+ line-height: 90rpx;
+ font-weight: 600;
+}
+
+.form-input input{
+ width: 100%;
+ height: 90rpx;
+ line-height: 90rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userVillage/userVillage.js b/手太欠/物业小程序/物业小程序/pages/userVillage/userVillage.js
new file mode 100644
index 0000000..87d1af8
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userVillage/userVillage.js
@@ -0,0 +1,75 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ houseArr : '', //小区列表
+ page : '', //下一页
+ lodingStats : false, //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow () {
+
+ // 获取我的小区列表
+ this.houseInfo();
+ },
+
+ /**
+ * 我的小区列表
+ */
+ houseInfo(page){
+ wx.$api.users.houseList({page: page || ''}).then(res=>{
+ let listArr = this.data.houseArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ houseArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取小区列表
+ this.houseInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取小区列表
+ this.houseInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userVillage/userVillage.json b/手太欠/物业小程序/物业小程序/pages/userVillage/userVillage.json
new file mode 100644
index 0000000..d723793
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userVillage/userVillage.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "我的小区",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userVillage/userVillage.wxml b/手太欠/物业小程序/物业小程序/pages/userVillage/userVillage.wxml
new file mode 100644
index 0000000..3647d12
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userVillage/userVillage.wxml
@@ -0,0 +1,34 @@
+
+
+
+
+ {{item.area}}
+
+
+ 业主: {{item.name}}{{item.phone}}
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
+
+
+
+
+ 增加
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userVillage/userVillage.wxss b/手太欠/物业小程序/物业小程序/pages/userVillage/userVillage.wxss
new file mode 100644
index 0000000..6a97bb1
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userVillage/userVillage.wxss
@@ -0,0 +1,83 @@
+/* 我的小区 */
+.village {
+ border-bottom: solid 110rpx transparent;
+ margin: 20rpx;
+}
+
+.repairPay-list {
+ margin-bottom: 20rpx;
+}
+
+.repairPay-title {
+ display: flex;
+ height: 100rpx;
+ line-height: 100rpx;
+ padding: 0 20rpx;
+ box-sizing: border-box;
+ font-weight: 600;
+}
+
+.repairPay-icon {
+ width: 50rpx;
+ height: 50rpx;
+ margin: 25rpx 20rpx 25rpx 0;
+}
+
+.repairPay-text {
+ position: relative;
+ padding: 0 20rpx 30rpx 90rpx;
+}
+
+.repairPay-text::after {
+ position: absolute;
+ content: '';
+ left: 0;
+ top: 0;
+ background: #f2f2f2;
+ height: 2rpx;
+ width: 100%;
+}
+
+.repairPay-text {
+ overflow: hidden;
+ display: flex;
+ color: #768893;
+ padding-top: 20rpx;
+}
+
+.repairPay-text text{
+ flex: 1;
+}
+
+/* .repairPay-text text {
+ width: 50%;
+ float: left;
+ color: #768893;
+ margin-top: 30rpx;
+} */
+
+.evaluate-btn {
+ background-color: #f5f5f5;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ z-index: 99;
+ width: 100%;
+ height: 110rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 15rpx;
+ box-sizing: border-box;
+}
+
+.evaluate-btn-make {
+ width: 100%;
+ background: #52b96a;
+ height: 84rpx;
+ line-height: 84rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ text-align: center;
+ border-radius: 50rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userVillage_form/userVillage_form.js b/手太欠/物业小程序/物业小程序/pages/userVillage_form/userVillage_form.js
new file mode 100644
index 0000000..8bb7dbb
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userVillage_form/userVillage_form.js
@@ -0,0 +1,163 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ onePlain : true, //添加步骤,默认第一步为false
+ twoPlain : false, //添加步骤,默认第一步为false
+ categoryList : '', //我的小区添加联动
+ village : [], //小区列表
+ villageIndex : 0, //小区index
+ building : [], //楼号列表
+ buildingIndex : 0, //楼号index
+ unit : [], //单元列表
+ unitIndex : 0, //单元index
+ door : [], //门号列表
+ doorIndex : 0, //门号index
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+
+ // 小区列表
+ wx.$api.users.create().then(res=>{
+ let atClassify = res.data,
+ newClassify = atClassify.unshift({
+ dictionary_id : 0,
+ name : "请选择小区"
+ })
+ this.setData({
+ village : atClassify
+ })
+ })
+ },
+
+ /**
+ * 选择器
+ */
+ changePicker(e){
+ let pickerValue = e.detail.value,
+ pickerValueName = e.currentTarget.dataset.name + "Index",
+ nextVlaueName = e.currentTarget.dataset.nextname + "Index",
+ nextName = e.currentTarget.dataset.nextname,
+ pickerId = e.currentTarget.dataset.range[pickerValue].dictionary_id
+
+ if(pickerId == 0) {
+ return
+ }
+
+ if(e.currentTarget.dataset.nextname){
+ //请求下一层数据
+ wx.$api.users.ajaxes({
+ dictionary_id: pickerId
+ }).then(res=>{
+ if(res.data.length > 0) {
+ let newClassify = res.data.unshift({
+ dictionary_id : 0,
+ name : "请选择"
+ })
+ }
+
+ this.setData({
+ [nextName] : res.data,
+ [pickerValueName] : pickerValue,
+ [nextVlaueName] : 0
+ })
+ })
+ }else{
+ this.setData({
+ [pickerValueName] : pickerValue,
+ })
+ }
+ },
+
+ /**
+ * 下一步按钮
+ */
+ nextStep() {
+ switch(0){
+ case this.data.villageIndex :
+ if(this.data.village.length > 0){
+ wx.showToast({
+ title : '请选择小区~',
+ icon : 'none',
+ duration: 2000
+ })
+ return
+ }
+ break
+ case this.data.buildingIndex :
+ if(this.data.building.length > 0){
+ wx.showToast({
+ title : '请选择楼号~',
+ icon : 'none',
+ duration: 2000
+ })
+ return
+ }
+ break
+ case this.data.unitIndex :
+ if(this.data.unit.length > 0){
+ wx.showToast({
+ title : '请选择单元~',
+ icon : 'none',
+ duration: 2000
+ })
+ return
+ }
+ break
+ case this.data.doorIndex :
+ if(this.data.door.length > 0){
+ wx.showToast({
+ title : '请选择门号~',
+ icon : 'none',
+ duration: 2000
+ })
+ return
+ }
+ break
+ }
+
+ this.setData({
+ twoPlain : true,
+ onePlain : false
+ })
+ },
+
+ /**
+ * 表单提交
+ */
+ submitMake(e){
+ let villageId = this.data.village[this.data.villageIndex].dictionary_id,
+ buildingId = this.data.building[this.data.buildingIndex].dictionary_id,
+ unitId = this.data.unit[this.data.unitIndex].dictionary_id,
+ doorId = this.data.door[this.data.doorIndex].dictionary_id,
+ newPhone = e.detail.value.phone,
+ newIdcard = e.detail.value.idcard
+
+ wx.$api.users.house({
+ one : villageId,
+ two : buildingId,
+ three : unitId,
+ four : doorId,
+ phone : newPhone,
+ idcard : newIdcard
+ }).then(res=>{
+
+ wx.redirectTo({
+ url: '/pages/userVillage/userVillage'
+ })
+ })
+ }
+
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userVillage_form/userVillage_form.json b/手太欠/物业小程序/物业小程序/pages/userVillage_form/userVillage_form.json
new file mode 100644
index 0000000..526078e
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userVillage_form/userVillage_form.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "添加小区"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userVillage_form/userVillage_form.wxml b/手太欠/物业小程序/物业小程序/pages/userVillage_form/userVillage_form.wxml
new file mode 100644
index 0000000..1070faa
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userVillage_form/userVillage_form.wxml
@@ -0,0 +1,66 @@
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/userVillage_form/userVillage_form.wxss b/手太欠/物业小程序/物业小程序/pages/userVillage_form/userVillage_form.wxss
new file mode 100644
index 0000000..f890779
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/userVillage_form/userVillage_form.wxss
@@ -0,0 +1,69 @@
+/* 添加小区表单 */
+.userVillage-title {
+ font-size: 34rpx;
+ font-weight: 600;
+ margin-bottom: 40rpx;
+}
+
+.public-form {
+ display: block;
+ margin: 20rpx;
+}
+
+.public-label {
+ margin-bottom: 50rpx;
+}
+
+.public-label:last-child {
+ margin-bottom: 20rpx;
+}
+
+.public-label label {
+ margin-bottom: 20rpx;
+ display: block;
+ font-weight: 600;
+}
+
+.public-label textarea, .public-label input {
+ border: 2rpx solid #ebebeb;
+ border-radius: 10rpx;
+ font-size: 30rpx;
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.public-label input {
+ padding: 0 20rpx;
+ height: 90rpx;
+ line-height: 90rpx;
+}
+
+.public-label textarea {
+ padding: 20rpx;
+}
+
+.form-picker {
+ position: relative;
+}
+
+.earnest-picker-icon{
+ position: absolute;
+ width: 40rpx;
+ height: 40rpx;
+ right: 0;
+ top: 0;
+}
+
+.public-btn button[size="mini"],
+.public-green{
+ width: 100%;
+ background: #52b96a;
+ height: 90rpx;
+ line-height: 90rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ border-radius: 100rpx;
+ margin: 40rpx 0;
+ text-align: center;
+}
diff --git a/手太欠/物业小程序/物业小程序/pages/user_feedback/user_feedback.js b/手太欠/物业小程序/物业小程序/pages/user_feedback/user_feedback.js
new file mode 100644
index 0000000..c09939a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_feedback/user_feedback.js
@@ -0,0 +1,109 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ stateType : '', //advise为投诉记录 record为我的建议
+ classifyId : "", //tab分类
+ classifyInfo: [], //分类名称
+ makeArr : [], //列表数组
+ page : {}, //分页信息
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ console.log(this.data.classifyId)
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ // 获取分类
+ this.classify();
+ },
+
+ /**
+ * 周边列表
+ */
+ periphery(page) {
+ wx.$api.users.suggList({
+ category_id: this.data.classifyId,
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.makeArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.data)
+ this.setData({
+ makeArr : newData,
+ page : res.data.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 分类
+ */
+ classify() {
+ wx.$api.users.suggest().then(res=>{
+ this.setData({
+ classifyInfo: res.data,
+ classifyId : res.data[0].category_id
+ })
+
+ // 获取列表
+ this.periphery();
+ })
+ },
+
+ /**
+ * 切换tab
+ */
+ orderTab(e){
+ let classifyid = e.currentTarget.dataset.id
+ if(this.data.classifyId != classifyid){
+ this.setData({
+ classifyId : classifyid || ""
+ })
+ // 获取列表
+ this.periphery();
+ }
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取周边列表
+ this.periphery();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取周边列表
+ this.periphery(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_feedback/user_feedback.json b/手太欠/物业小程序/物业小程序/pages/user_feedback/user_feedback.json
new file mode 100644
index 0000000..cc88f9e
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_feedback/user_feedback.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "投诉反馈",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_feedback/user_feedback.wxml b/手太欠/物业小程序/物业小程序/pages/user_feedback/user_feedback.wxml
new file mode 100644
index 0000000..94dd71d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_feedback/user_feedback.wxml
@@ -0,0 +1,58 @@
+
+
+
+ {{item.title}}
+
+
+
+
+
+
+
+
+
+
+ {{item.user_id.nickname}}
+ {{item.created_at}}
+
+
+ {{item.content}}
+
+
+
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+
+ 暂无内容
+
+
+
+
+
+ 提点建议
+
+
+ 我要投诉
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_feedback/user_feedback.wxss b/手太欠/物业小程序/物业小程序/pages/user_feedback/user_feedback.wxss
new file mode 100644
index 0000000..03b16e6
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_feedback/user_feedback.wxss
@@ -0,0 +1,158 @@
+/* 投诉tab */
+.header-classify {
+ white-space: nowrap;
+ box-sizing: border-box;
+}
+
+.periphery-tab {
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ display: flex;
+ height: 80rpx;
+ line-height: 80rpx;
+ z-index: 9;
+ background: white;
+ border-bottom: 2rpx solid #e1e1e1;
+}
+
+.periphery-tab-item {
+ font-size: 30rpx;
+ width: 50%;
+ text-align: center;
+ color: #000;
+ background: white;
+ display: inline-block;
+ position: relative;
+}
+
+.periphery-tab-item.active {
+ color: #cea760;
+}
+
+.periphery-tab-item::after {
+ position: absolute;
+ content: '';
+ background-color: transparent;
+ width: 50rpx;
+ height: 6rpx;
+ left: calc(50% - 25rpx);
+ bottom: 2rpx;
+ border-radius: 20rpx;
+}
+
+.periphery-tab-item.active::after {
+ background-color: #cea760;
+}
+
+
+/* 底部工具 */
+.release-btn {
+ background-color: #f5f5f5;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ z-index: 99;
+ width: 100%;
+ height: 110rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 15rpx;
+ box-sizing: border-box;
+ overflow: hidden;
+}
+
+.release-btn-make {
+ width: calc(50% - 20rpx);
+ background: #52b96a;
+ height: 84rpx;
+ line-height: 80rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ text-align: center;
+ border-radius: 50rpx;
+ float: left;
+ margin: 0 10rpx;
+ border: transparent solid 2rpx;
+ box-sizing: border-box;
+}
+
+.release-btn-border {
+ background-color: white;
+ border-color: #52b96a;
+ color: #52b96a;
+}
+
+/* 列表 */
+.make {
+ margin: 100rpx 20rpx 0;
+ border-bottom: 110rpx solid transparent;
+}
+
+.makeLIst {
+ margin-bottom: 20rpx;
+}
+
+.makeLIst-top {
+ display: flex;
+}
+
+.makeLIst-img {
+ width: 110rpx;
+ height: 110rpx;
+ border-radius: 50%;
+}
+
+.makeLIst-text {
+ width: calc(100% - 130rpx);
+ margin-left: 30rpx;
+}
+
+.makeLIst-list {
+ display: flex;
+ font-size: 28rpx;
+ color: #999;
+ margin: 5rpx 0 15rpx;
+}
+
+.makeLIst-list text {
+ color: #000;
+ font-size: 32rpx;
+ display: block;
+ flex: 1;
+}
+
+.makeLIst-tips {
+ color: #818181;
+ font-size: 28rpx;
+ text-align: justify;
+}
+
+.makeLIst-reply {
+ margin: 30rpx 0 0 130rpx;
+ border-top: 2rpx solid #eee;
+ padding-top: 20rpx;
+}
+
+/* 社区回复 */
+.community {
+ margin-top: 30rpx;
+ padding-top: 30rpx;
+ border-top: 1rpx solid #e1e1e1;
+ font-size: 28rpx;
+}
+
+.community-title {
+ display: flex;
+ margin-bottom: 20rpx;
+ color: #818181;
+}
+
+.community-title text {
+ color: #000;
+ display: inline-block;
+ flex: 1;
+ width: 80%;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_feedback_from/user_feedback_from.js b/手太欠/物业小程序/物业小程序/pages/user_feedback_from/user_feedback_from.js
new file mode 100644
index 0000000..081151d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_feedback_from/user_feedback_from.js
@@ -0,0 +1,59 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ type: '', //投诉类型
+ id : '', //投诉id
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ console.log(options)
+ this.setData({
+ type : options.type,
+ id : options.id
+ })
+
+ if (options.type == 'advise') {
+ wx.setNavigationBarTitle({
+ title: '我要投诉'
+ })
+ } else if (options.type == 'record') {
+ wx.setNavigationBarTitle({
+ title: '提点建议'
+ })
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 表单提交
+ */
+ submitMake(e){
+ let content = e.detail.value.remark
+ wx.$api.users.suggForm({
+ content : content,
+ category_id : this.data.id
+ }).then(res=>{
+ // 返回上一页
+ wx.navigateBack();
+ })
+
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_feedback_from/user_feedback_from.json b/手太欠/物业小程序/物业小程序/pages/user_feedback_from/user_feedback_from.json
new file mode 100644
index 0000000..3c8269f
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_feedback_from/user_feedback_from.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": ""
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_feedback_from/user_feedback_from.wxml b/手太欠/物业小程序/物业小程序/pages/user_feedback_from/user_feedback_from.wxml
new file mode 100644
index 0000000..ee7b1e0
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_feedback_from/user_feedback_from.wxml
@@ -0,0 +1,11 @@
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_feedback_from/user_feedback_from.wxss b/手太欠/物业小程序/物业小程序/pages/user_feedback_from/user_feedback_from.wxss
new file mode 100644
index 0000000..17a27eb
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_feedback_from/user_feedback_from.wxss
@@ -0,0 +1,29 @@
+/* 投诉表单 */
+.public-form {
+ display: block;
+ margin: 20rpx;
+}
+
+.public-label textarea {
+ border: 2rpx solid #ebebeb;
+ border-radius: 10rpx;
+ font-size: 30rpx;
+ width: 100%;
+ box-sizing: border-box;
+}
+
+.public-label textarea {
+ padding: 20rpx;
+}
+
+.public-btn button[size="mini"]{
+ width: 100%;
+ background: #52b96a;
+ height: 90rpx;
+ line-height: 90rpx;
+ font-size: 30rpx;
+ color: white;
+ padding: 0;
+ border-radius: 100rpx;
+ margin: 40rpx 0;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_guide/user_guide.js b/手太欠/物业小程序/物业小程序/pages/user_guide/user_guide.js
new file mode 100644
index 0000000..ebe09d2
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_guide/user_guide.js
@@ -0,0 +1,35 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ guideData: '', //使用指南
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 获取使用指南
+ this.guideInfo();
+ },
+
+ /**
+ * 使用指南
+ */
+ guideInfo () {
+ wx.$api.users.guide().then(res=>{
+ console.log(res)
+ this.setData({
+ guideData : res.data.replace(/\
+
+ 使用指南
+
+
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_guide/user_guide.wxss b/手太欠/物业小程序/物业小程序/pages/user_guide/user_guide.wxss
new file mode 100644
index 0000000..5a6583a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_guide/user_guide.wxss
@@ -0,0 +1,17 @@
+/* 使用指南 */
+.guide {
+ margin: 20rpx 0;
+}
+
+.guide-title {
+ text-align: center;
+ font-weight: 600;
+ line-height: 90rpx;
+ border-bottom: 2rpx solid #eee;
+ margin-bottom: 30rpx;
+}
+
+.guide-text {
+ padding: 0 30rpx 30rpx;
+ box-sizing: border-box;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_tel/user_tel.js b/手太欠/物业小程序/物业小程序/pages/user_tel/user_tel.js
new file mode 100644
index 0000000..bde25b3
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_tel/user_tel.js
@@ -0,0 +1,43 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ guideData: '', //使用指南
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 获取物业电话
+ this.mobileInfo();
+ },
+
+ /**
+ * 物业电话
+ */
+ mobileInfo () {
+ wx.$api.users.mobile().then(res=>{
+ this.setData({
+ mobile : res.data
+ })
+ })
+ },
+
+ /**
+ * 拨打电话
+ */
+ mobileTap () {
+ wx.makePhoneCall({
+ phoneNumber: this.data.mobile
+ })
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_tel/user_tel.json b/手太欠/物业小程序/物业小程序/pages/user_tel/user_tel.json
new file mode 100644
index 0000000..0609e32
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_tel/user_tel.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "物业电话"
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_tel/user_tel.wxml b/手太欠/物业小程序/物业小程序/pages/user_tel/user_tel.wxml
new file mode 100644
index 0000000..0846b3f
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_tel/user_tel.wxml
@@ -0,0 +1,9 @@
+
+
+
+
+ 物业电话
+ {{mobile}}
+
+ 拨打电话
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_tel/user_tel.wxss b/手太欠/物业小程序/物业小程序/pages/user_tel/user_tel.wxss
new file mode 100644
index 0000000..b42c59b
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_tel/user_tel.wxss
@@ -0,0 +1,35 @@
+/* 物业电话 */
+page{
+ background-color: white;
+}
+
+.userTel {
+ padding: 200rpx 0;
+ text-align: center;
+}
+
+.userTel-img {
+ width: 140rpx;
+ height: 140rpx;
+ margin: 0 auto;
+}
+
+.userTel-cont {
+ margin: 40rpx 0;
+ font-size: 38rpx;
+}
+
+.userTel-number {
+ color: #d42e3b;
+ margin-top: 20rpx;
+ font-size: 40rpx;
+}
+
+.userTel-btn {
+ width: 300rpx;
+ margin: 60rpx auto 0;
+ line-height: 76rpx;
+ border: 2rpx solid #52b96a;
+ color: #52b96a;
+ border-radius: 10rpx;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_wallet/user_wallet.js b/手太欠/物业小程序/物业小程序/pages/user_wallet/user_wallet.js
new file mode 100644
index 0000000..a7285b7
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_wallet/user_wallet.js
@@ -0,0 +1,71 @@
+/*
+ * 张慢慢
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ account : '', //余额
+ walletData : '', //记录
+ page : {}, //分页信息
+ lodingStats : false, //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad (options) {
+ // 获取兑换详情
+ this.scoreorderInfo();
+ },
+
+ /**
+ * 兑换详情
+ */
+ scoreorderInfo(page) {
+ wx.$api.users.account({
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.scoreorders,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.logs.data)
+ this.setData({
+ account : res.data.account,
+ scoreorders : newData,
+ page : res.data.logs.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ console.log(res)
+ })
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取兑换记录
+ this.scoreorderInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取兑换记录
+ this.scoreorderInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_wallet/user_wallet.json b/手太欠/物业小程序/物业小程序/pages/user_wallet/user_wallet.json
new file mode 100644
index 0000000..d257e9d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_wallet/user_wallet.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "我的钱包",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_wallet/user_wallet.wxml b/手太欠/物业小程序/物业小程序/pages/user_wallet/user_wallet.wxml
new file mode 100644
index 0000000..1edc62d
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_wallet/user_wallet.wxml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ 账户积分(余额)
+
+ {{account}}
+
+
+
+
+
+
+
+
+ {{item.title}}
+ {{item.created_at}}
+
+ {{item.variable}}
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/user_wallet/user_wallet.wxss b/手太欠/物业小程序/物业小程序/pages/user_wallet/user_wallet.wxss
new file mode 100644
index 0000000..df1bd57
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/user_wallet/user_wallet.wxss
@@ -0,0 +1,67 @@
+/* 我的钱包 */
+.walletBack {
+ position: relative;
+ width: 100%;
+ padding-top: 30%;
+}
+
+.walletBack-img {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ border-radius: 20rpx;
+}
+
+.walletBack-text {
+ position: absolute;
+ top: 40rpx;
+ left: 40rpx;
+ color: #fff;
+}
+
+.walletBack-title {
+ font-size: 28rpx;
+ margin-bottom: 20rpx;
+ display: block;
+}
+
+.walletBack-price {
+ font-size: 60rpx;
+}
+
+.walletBack-price text {
+ font-size: 34rpx;
+}
+
+.walletList {
+ margin: 20rpx 0;
+}
+
+.walletLabel {
+ padding: 20rpx;
+ box-sizing: border-box;
+ display: flex;
+}
+
+.walletLabel-name {
+ flex: 1;
+}
+
+.walletLabel-name text {
+ display: block;
+ color: #999;
+ margin-top: 20rpx;
+ font-size: 28rpx;
+}
+
+.walletLabel-price {
+ font-size: 38rpx;
+ color: #cc141c;
+ padding-top: 25rpx;
+}
+
+.walletLabel-price.active {
+ color: #52b96a;
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/washCar/washCar.js b/手太欠/物业小程序/物业小程序/pages/washCar/washCar.js
new file mode 100644
index 0000000..5e27f4e
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/washCar/washCar.js
@@ -0,0 +1,107 @@
+/*
+ * 手太欠
+ * 物业
+ */
+
+const app = getApp()
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ isUser : app.globalData.isUser, //用户登录状态
+ carShow : false, //简介展开状态
+ advertsArr : [], //洗车行banner
+ carArr : [], //洗车行列表
+ page : {}, //分页信息
+ lodingStats : false //加载状态
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad () {
+ // 获取洗车行列表
+ this.carInfo();
+ },
+
+ onShow(){
+ this.setData({
+ isUser : getApp().globalData.isUser
+ })
+ },
+
+ /**
+ * 洗车行列表
+ */
+ carInfo(page){
+ wx.$api.index.carList({
+ page : page || ''
+ }).then(res=>{
+ let listArr = this.data.carArr,
+ newData = []
+ if(page == 1 || page == undefined) listArr = []
+ newData = listArr.concat(res.data.service.data)
+ this.setData({
+ advertsArr : res.data.adverts,
+ carArr : newData,
+ page : res.data.service.page,
+ lodingStats : false
+ })
+ wx.stopPullDownRefresh()
+ })
+ },
+
+ /**
+ * 简介展开
+ */
+ haircutTap(e) {
+ let recordIndex = e.currentTarget.dataset.index,
+ carNew = this.data.carArr
+ carNew[recordIndex].carShow = !carNew[recordIndex].carShow
+ this.setData({
+ carArr : carNew
+ })
+ },
+
+ /**
+ * 处理未登录时的转跳
+ */
+ userNav(e){
+ let pageUrl = e.currentTarget.dataset.url
+ if(this.data.isUser == true){
+ wx.navigateTo({
+ url: pageUrl
+ })
+ }else{
+ // 去登录
+ wx.navigateTo({
+ url: "/pages/login/login"
+ })
+ }
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+ // 获取洗车行列表
+ this.carInfo();
+ },
+
+ /**
+ * 上拉加载
+ */
+ onReachBottom(){
+ this.setData({
+ lodingStats: true
+ })
+ let pageNumber = this.data.page.current
+ if(this.data.page.has_more){
+ pageNumber++
+ // 获取洗车行列表
+ this.carInfo(pageNumber);
+ }
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/washCar/washCar.json b/手太欠/物业小程序/物业小程序/pages/washCar/washCar.json
new file mode 100644
index 0000000..538855b
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/washCar/washCar.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents" : {},
+ "navigationBarTitleText": "洗车行",
+ "enablePullDownRefresh" : true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/washCar/washCar.wxml b/手太欠/物业小程序/物业小程序/pages/washCar/washCar.wxml
new file mode 100644
index 0000000..e11f01b
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/washCar/washCar.wxml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+ {{item.address}}
+ 立即预约
+
+
+
+ {{item.description}}
+
+
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了~
+
+
+
+
+
+
+
+ 暂无内容
+
+
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/washCar/washCar.wxss b/手太欠/物业小程序/物业小程序/pages/washCar/washCar.wxss
new file mode 100644
index 0000000..81290c1
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/washCar/washCar.wxss
@@ -0,0 +1,111 @@
+/* 洗车行 */
+.haircut {
+ margin: 20rpx;
+}
+
+.haircut-banner {
+ position: relative;
+ padding-top: 38%;
+ width: 100%;
+ overflow: hidden;
+}
+
+.banner-swiper {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+}
+
+.banner-img {
+ width: 100%;
+ height: 100%;
+ vertical-align: top;
+}
+
+.haircut-li {
+ margin-top: 20rpx;
+ display: flex;
+}
+
+.haircut-img {
+ position: relative;
+ width: 190rpx;
+ height: 190rpx;
+ border-radius: 10rpx;
+ overflow: hidden;
+}
+
+.haircut-img image {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+}
+
+.haircut-cont {
+ margin-left: 30rpx;
+ width: calc(100% - 220rpx);
+}
+
+.haircut-name {
+ font-weight: 600;
+}
+
+.haircut-text {
+ font-size: 28rpx;
+ color: #929292;
+ display: flex;
+}
+
+.haircut-text text {
+ display: inline-block;
+ width: calc(100% - 60rpx);
+ flex: 1;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ height: 40rpx;
+ margin-right: 20rpx;
+ line-height: 45rpx;
+}
+
+.haircut-text.active text {
+ height: auto;
+ white-space: normal;
+}
+
+.haircut-open {
+ width: 40rpx;
+ height: 40rpx;
+}
+
+.haircut-open.active {
+ transform:rotate(90deg);
+}
+
+.haircut-site {
+ margin: 20rpx 0 30rpx;
+ display: flex;
+ font-size: 28rpx;
+}
+
+.haircut-site-name {
+ line-height: 50rpx;
+ flex: 1;
+ color: #595959;
+ margin-right: 10rpx;
+}
+
+.haircut-site-btn {
+ width: 130rpx;
+ border-radius: 50rpx;
+ text-align: center;
+ height: 50rpx;
+ line-height: 50rpx;
+ color: #fff;
+ font-size: 24rpx;
+ background-image: linear-gradient(to right, #e0b76c, #d2aa63);
+}
diff --git a/手太欠/物业小程序/物业小程序/pages/works/works_img/works_img.js b/手太欠/物业小程序/物业小程序/pages/works/works_img/works_img.js
new file mode 100644
index 0000000..76670f4
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/works/works_img/works_img.js
@@ -0,0 +1,66 @@
+// pages/works/works_img/works_img.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/works/works_img/works_img.json b/手太欠/物业小程序/物业小程序/pages/works/works_img/works_img.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/works/works_img/works_img.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/works/works_img/works_img.wxml b/手太欠/物业小程序/物业小程序/pages/works/works_img/works_img.wxml
new file mode 100644
index 0000000..05828e4
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/works/works_img/works_img.wxml
@@ -0,0 +1,2 @@
+
+pages/works/works_img/works_img.wxml
diff --git a/手太欠/物业小程序/物业小程序/pages/works/works_img/works_img.wxss b/手太欠/物业小程序/物业小程序/pages/works/works_img/works_img.wxss
new file mode 100644
index 0000000..c92f8c0
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/works/works_img/works_img.wxss
@@ -0,0 +1 @@
+/* pages/works/works_img/works_img.wxss */
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/works_img/works_img.js b/手太欠/物业小程序/物业小程序/pages/works_img/works_img.js
new file mode 100644
index 0000000..9a926a5
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/works_img/works_img.js
@@ -0,0 +1,43 @@
+Page({
+ data: {
+ src:'',
+ width: 250,//宽度
+ height: 250,//高度
+ },
+ onLoad(options) {
+ //获取到image-cropper实例
+ this.cropper = this.selectComponent("#image-cropper")
+ wx.chooseImage({
+ count : 1,
+ success : res=>{
+ this.setData({
+ src: res.tempFilePaths[0]
+ })
+ console.log(res)
+ },
+ fail : err=>{
+ this.cancel()
+ }
+ })
+ },
+ cropperload(e){
+ console.log("cropper初始化完成");
+ },
+ loadimage(e){
+ wx.hideLoading()
+ //重置图片角度、缩放、位置
+ this.cropper.imgReset();
+ },
+ worksImg(e) {
+ this.cropper.getImg(res=>{
+ var pages = getCurrentPages();
+ var prevPage = pages[pages.length - 2]; //上一个编辑款项页面
+
+ prevPage.updImg(res.url)
+ wx.navigateBack()
+ })
+ },
+ cancel(){
+ wx.navigateBack()
+ }
+})
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/works_img/works_img.json b/手太欠/物业小程序/物业小程序/pages/works_img/works_img.json
new file mode 100644
index 0000000..266cd11
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/works_img/works_img.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "image-cropper": "/commpent/image-cropper-master/image-cropper"
+ },
+ "disableScroll": true
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/pages/works_img/works_img.wxml b/手太欠/物业小程序/物业小程序/pages/works_img/works_img.wxml
new file mode 100644
index 0000000..0da2a12
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/works_img/works_img.wxml
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/手太欠/物业小程序/物业小程序/pages/works_img/works_img.wxss b/手太欠/物业小程序/物业小程序/pages/works_img/works_img.wxss
new file mode 100644
index 0000000..24fbb06
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/pages/works_img/works_img.wxss
@@ -0,0 +1,21 @@
+
+.works-footer{
+ display: flex;
+ position: fixed;
+ z-index: 99;
+ color: white;
+ height: 100rpx;
+ left: 0;
+ bottom: 0;
+ padding-bottom: 40rpx;
+ width: 100%;
+ background: black;
+}
+
+.works-footer-item{
+ width: 50%;
+ line-height: 100rpx;
+ text-align: center;
+ font-size: 30rpx;
+ font-weight: bold;
+}
diff --git a/手太欠/物业小程序/物业小程序/project.config.json b/手太欠/物业小程序/物业小程序/project.config.json
new file mode 100644
index 0000000..a64d50a
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/project.config.json
@@ -0,0 +1,129 @@
+{
+ "description": "项目配置文件",
+ "packOptions": {
+ "ignore": []
+ },
+ "setting": {
+ "urlCheck": true,
+ "es6": true,
+ "enhance": false,
+ "postcss": true,
+ "preloadBackgroundData": false,
+ "minified": true,
+ "newFeature": false,
+ "coverView": true,
+ "nodeModules": false,
+ "autoAudits": false,
+ "showShadowRootInWxmlPanel": true,
+ "scopeDataCheck": false,
+ "uglifyFileName": false,
+ "checkInvalidKey": true,
+ "checkSiteMap": true,
+ "uploadWithSourceMap": true,
+ "compileHotReLoad": false,
+ "useMultiFrameRuntime": true,
+ "useApiHook": true,
+ "useApiHostProcess": false,
+ "babelSetting": {
+ "ignore": [],
+ "disablePlugins": [],
+ "outputPath": ""
+ },
+ "enableEngineNative": false,
+ "bundle": false,
+ "useIsolateContext": true,
+ "useCompilerModule": false,
+ "userConfirmedUseCompilerModuleSwitch": false,
+ "userConfirmedBundleSwitch": false,
+ "packNpmManually": false,
+ "packNpmRelationList": [],
+ "minifyWXSS": true
+ },
+ "compileType": "miniprogram",
+ "libVersion": "2.14.0",
+ "appid": "wxb7b166394fffaafd",
+ "projectname": "%E7%89%A9%E4%B8%9A%E5%B0%8F%E7%A8%8B%E5%BA%8F",
+ "debugOptions": {
+ "hidedInDevtools": []
+ },
+ "isGameTourist": false,
+ "simulatorType": "wechat",
+ "simulatorPluginLibVersion": {},
+ "condition": {
+ "search": {
+ "list": []
+ },
+ "conversation": {
+ "list": []
+ },
+ "plugin": {
+ "list": []
+ },
+ "game": {
+ "list": []
+ },
+ "gamePlugin": {
+ "list": []
+ },
+ "miniprogram": {
+ "list": [
+ {
+ "id": 0,
+ "name": "pages/user/user",
+ "pathName": "pages/user/user",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 2,
+ "name": "pages/index/index",
+ "pathName": "pages/index/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "pages/dining/dining",
+ "pathName": "pages/dining/dining",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "pages/dining/dining",
+ "pathName": "pages/dining/dining",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "pages/diningOrder/diningOrder",
+ "pathName": "pages/diningOrder/diningOrder",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 5,
+ "name": "pages/integralOrder/integralData",
+ "pathName": "pages/integralOrder/integralData",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 6,
+ "name": "pages/mobile/mobile",
+ "pathName": "pages/mobile/mobile",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "pages/details/details",
+ "pathName": "pages/details/details",
+ "query": "id=11",
+ "scene": null
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/project.private.config.json b/手太欠/物业小程序/物业小程序/project.private.config.json
new file mode 100644
index 0000000..ccd772f
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/project.private.config.json
@@ -0,0 +1,80 @@
+{
+ "setting": {},
+ "condition": {
+ "plugin": {
+ "list": []
+ },
+ "game": {
+ "list": []
+ },
+ "gamePlugin": {
+ "list": []
+ },
+ "miniprogram": {
+ "list": [
+ {
+ "id": 0,
+ "name": "pages/user/user",
+ "pathName": "pages/user/user",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 2,
+ "name": "pages/index/index",
+ "pathName": "pages/index/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "pages/dining/dining",
+ "pathName": "pages/dining/dining",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "pages/dining/dining",
+ "pathName": "pages/dining/dining",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "pages/diningOrder/diningOrder",
+ "pathName": "pages/diningOrder/diningOrder",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 5,
+ "name": "pages/integralOrder/integralData",
+ "pathName": "pages/integralOrder/integralData",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 6,
+ "name": "pages/mobile/mobile",
+ "pathName": "pages/mobile/mobile",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "pages/details/details",
+ "pathName": "pages/details/details",
+ "query": "id=11",
+ "scene": null
+ },
+ {
+ "name": "pages/user_feedback/user_feedback",
+ "pathName": "pages/user_feedback/user_feedback",
+ "query": "",
+ "scene": null
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/sitemap.json b/手太欠/物业小程序/物业小程序/sitemap.json
new file mode 100644
index 0000000..ca02add
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/sitemap.json
@@ -0,0 +1,7 @@
+{
+ "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+ "rules": [{
+ "action": "allow",
+ "page": "*"
+ }]
+}
\ No newline at end of file
diff --git a/手太欠/物业小程序/物业小程序/static/icon/address_tool_00.png b/手太欠/物业小程序/物业小程序/static/icon/address_tool_00.png
new file mode 100644
index 0000000..12f341f
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/address_tool_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/address_tool_01.png b/手太欠/物业小程序/物业小程序/static/icon/address_tool_01.png
new file mode 100644
index 0000000..ea7f839
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/address_tool_01.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/bag_add.png b/手太欠/物业小程序/物业小程序/static/icon/bag_add.png
new file mode 100644
index 0000000..1f5d344
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/bag_add.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/bag_cut.png b/手太欠/物业小程序/物业小程序/static/icon/bag_cut.png
new file mode 100644
index 0000000..995a156
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/bag_cut.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/bag_icon.png b/手太欠/物业小程序/物业小程序/static/icon/bag_icon.png
new file mode 100644
index 0000000..6ec02ac
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/bag_icon.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/bag_more_icon.png b/手太欠/物业小程序/物业小程序/static/icon/bag_more_icon.png
new file mode 100644
index 0000000..47344e8
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/bag_more_icon.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/car_arrow.png b/手太欠/物业小程序/物业小程序/static/icon/car_arrow.png
new file mode 100644
index 0000000..a5c4554
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/car_arrow.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/car_icon.png b/手太欠/物业小程序/物业小程序/static/icon/car_icon.png
new file mode 100644
index 0000000..becd1ed
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/car_icon.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/clock_icon.png b/手太欠/物业小程序/物业小程序/static/icon/clock_icon.png
new file mode 100644
index 0000000..35b61a6
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/clock_icon.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/default_cover.png b/手太欠/物业小程序/物业小程序/static/icon/default_cover.png
new file mode 100644
index 0000000..8e16ea3
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/default_cover.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/default_cover_tips.png b/手太欠/物业小程序/物业小程序/static/icon/default_cover_tips.png
new file mode 100644
index 0000000..c22f017
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/default_cover_tips.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/evaluate_edit.png b/手太欠/物业小程序/物业小程序/static/icon/evaluate_edit.png
new file mode 100644
index 0000000..bb76112
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/evaluate_edit.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/exchange_img.png b/手太欠/物业小程序/物业小程序/static/icon/exchange_img.png
new file mode 100644
index 0000000..85a7d78
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/exchange_img.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/file.png b/手太欠/物业小程序/物业小程序/static/icon/file.png
new file mode 100644
index 0000000..5035360
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/file.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/file_video.png b/手太欠/物业小程序/物业小程序/static/icon/file_video.png
new file mode 100644
index 0000000..5f68ef0
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/file_video.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/footerIcon_00.png b/手太欠/物业小程序/物业小程序/static/icon/footerIcon_00.png
new file mode 100644
index 0000000..228401f
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/footerIcon_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/footerIcon_01.png b/手太欠/物业小程序/物业小程序/static/icon/footerIcon_01.png
new file mode 100644
index 0000000..99779cc
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/footerIcon_01.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/integral_icon.png b/手太欠/物业小程序/物业小程序/static/icon/integral_icon.png
new file mode 100644
index 0000000..6f234e9
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/integral_icon.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/levelCar_icon.png b/手太欠/物业小程序/物业小程序/static/icon/levelCar_icon.png
new file mode 100644
index 0000000..5dbbe21
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/levelCar_icon.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/level_footer_00.png b/手太欠/物业小程序/物业小程序/static/icon/level_footer_00.png
new file mode 100644
index 0000000..bce322b
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/level_footer_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/level_footer_01.png b/手太欠/物业小程序/物业小程序/static/icon/level_footer_01.png
new file mode 100644
index 0000000..9b4655e
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/level_footer_01.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/makeIcon.png b/手太欠/物业小程序/物业小程序/static/icon/makeIcon.png
new file mode 100644
index 0000000..d144c51
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/makeIcon.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/makeTop_icon.png b/手太欠/物业小程序/物业小程序/static/icon/makeTop_icon.png
new file mode 100644
index 0000000..44e5d39
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/makeTop_icon.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/nav_00.png b/手太欠/物业小程序/物业小程序/static/icon/nav_00.png
new file mode 100644
index 0000000..659886b
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/nav_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/nav_01.png b/手太欠/物业小程序/物业小程序/static/icon/nav_01.png
new file mode 100644
index 0000000..7aa8fa6
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/nav_01.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/nav_02.png b/手太欠/物业小程序/物业小程序/static/icon/nav_02.png
new file mode 100644
index 0000000..39b6f90
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/nav_02.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/nav_03.png b/手太欠/物业小程序/物业小程序/static/icon/nav_03.png
new file mode 100644
index 0000000..9585c58
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/nav_03.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/nav_04.png b/手太欠/物业小程序/物业小程序/static/icon/nav_04.png
new file mode 100644
index 0000000..1074523
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/nav_04.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/nav_logo.png b/手太欠/物业小程序/物业小程序/static/icon/nav_logo.png
new file mode 100644
index 0000000..f9b561b
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/nav_logo.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/nav_news.png b/手太欠/物业小程序/物业小程序/static/icon/nav_news.png
new file mode 100644
index 0000000..33de6ea
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/nav_news.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/nav_notice.png b/手太欠/物业小程序/物业小程序/static/icon/nav_notice.png
new file mode 100644
index 0000000..7f2a211
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/nav_notice.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/null_icon.png b/手太欠/物业小程序/物业小程序/static/icon/null_icon.png
new file mode 100644
index 0000000..ea1f6a6
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/null_icon.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/orderData_00.png b/手太欠/物业小程序/物业小程序/static/icon/orderData_00.png
new file mode 100644
index 0000000..b99dfed
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/orderData_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/orderData_01.png b/手太欠/物业小程序/物业小程序/static/icon/orderData_01.png
new file mode 100644
index 0000000..1180a78
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/orderData_01.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/orderData_02.png b/手太欠/物业小程序/物业小程序/static/icon/orderData_02.png
new file mode 100644
index 0000000..90f2dbd
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/orderData_02.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/page_null_img.png b/手太欠/物业小程序/物业小程序/static/icon/page_null_img.png
new file mode 100644
index 0000000..fc4c2aa
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/page_null_img.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/payIcon.png b/手太欠/物业小程序/物业小程序/static/icon/payIcon.png
new file mode 100644
index 0000000..aa88c41
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/payIcon.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/pay_00.png b/手太欠/物业小程序/物业小程序/static/icon/pay_00.png
new file mode 100644
index 0000000..1eec28b
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/pay_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/refresh_loding.gif b/手太欠/物业小程序/物业小程序/static/icon/refresh_loding.gif
new file mode 100644
index 0000000..5bb90fd
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/refresh_loding.gif differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/releasePop_00.png b/手太欠/物业小程序/物业小程序/static/icon/releasePop_00.png
new file mode 100644
index 0000000..6bda0ee
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/releasePop_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/releasePop_01.png b/手太欠/物业小程序/物业小程序/static/icon/releasePop_01.png
new file mode 100644
index 0000000..441fe0a
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/releasePop_01.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/repairPay.png b/手太欠/物业小程序/物业小程序/static/icon/repairPay.png
new file mode 100644
index 0000000..26839ef
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/repairPay.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/saleIcon_00.png b/手太欠/物业小程序/物业小程序/static/icon/saleIcon_00.png
new file mode 100644
index 0000000..fd1d4d4
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/saleIcon_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/saleIcon_01.png b/手太欠/物业小程序/物业小程序/static/icon/saleIcon_01.png
new file mode 100644
index 0000000..7325d77
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/saleIcon_01.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/saleIcon_02.png b/手太欠/物业小程序/物业小程序/static/icon/saleIcon_02.png
new file mode 100644
index 0000000..9eee67f
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/saleIcon_02.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/saleIcon_03.png b/手太欠/物业小程序/物业小程序/static/icon/saleIcon_03.png
new file mode 100644
index 0000000..25c4f02
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/saleIcon_03.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/search_icon.png b/手太欠/物业小程序/物业小程序/static/icon/search_icon.png
new file mode 100644
index 0000000..e8ed94b
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/search_icon.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/select.png b/手太欠/物业小程序/物业小程序/static/icon/select.png
new file mode 100644
index 0000000..96b56f1
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/select.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/select_avtive.png b/手太欠/物业小程序/物业小程序/static/icon/select_avtive.png
new file mode 100644
index 0000000..f13b859
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/select_avtive.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/tel_icon.png b/手太欠/物业小程序/物业小程序/static/icon/tel_icon.png
new file mode 100644
index 0000000..fec6225
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/tel_icon.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userCart_back.png b/手太欠/物业小程序/物业小程序/static/icon/userCart_back.png
new file mode 100644
index 0000000..7db0572
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userCart_back.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userCart_icon.png b/手太欠/物业小程序/物业小程序/static/icon/userCart_icon.png
new file mode 100644
index 0000000..a265f51
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userCart_icon.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userCart_img.png b/手太欠/物业小程序/物业小程序/static/icon/userCart_img.png
new file mode 100644
index 0000000..eb2b9d8
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userCart_img.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userOrder_00.png b/手太欠/物业小程序/物业小程序/static/icon/userOrder_00.png
new file mode 100644
index 0000000..5a6e3c3
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userOrder_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userOrder_01.png b/手太欠/物业小程序/物业小程序/static/icon/userOrder_01.png
new file mode 100644
index 0000000..55684ac
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userOrder_01.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userOrder_02.png b/手太欠/物业小程序/物业小程序/static/icon/userOrder_02.png
new file mode 100644
index 0000000..3d32cdd
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userOrder_02.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userOrder_03.png b/手太欠/物业小程序/物业小程序/static/icon/userOrder_03.png
new file mode 100644
index 0000000..9dc3d68
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userOrder_03.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userOrder_more.png b/手太欠/物业小程序/物业小程序/static/icon/userOrder_more.png
new file mode 100644
index 0000000..8e31acc
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userOrder_more.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userRoom_00.png b/手太欠/物业小程序/物业小程序/static/icon/userRoom_00.png
new file mode 100644
index 0000000..02478f6
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userRoom_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userRoom_01.png b/手太欠/物业小程序/物业小程序/static/icon/userRoom_01.png
new file mode 100644
index 0000000..6b13a0b
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userRoom_01.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userRoom_02.png b/手太欠/物业小程序/物业小程序/static/icon/userRoom_02.png
new file mode 100644
index 0000000..1a5b152
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userRoom_02.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userRoom_03.png b/手太欠/物业小程序/物业小程序/static/icon/userRoom_03.png
new file mode 100644
index 0000000..66d8706
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userRoom_03.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userTool_00.png b/手太欠/物业小程序/物业小程序/static/icon/userTool_00.png
new file mode 100644
index 0000000..986b40d
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userTool_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userTool_01.png b/手太欠/物业小程序/物业小程序/static/icon/userTool_01.png
new file mode 100644
index 0000000..7cd904a
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userTool_01.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userTool_02.png b/手太欠/物业小程序/物业小程序/static/icon/userTool_02.png
new file mode 100644
index 0000000..6fba7ac
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userTool_02.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userTool_03.png b/手太欠/物业小程序/物业小程序/static/icon/userTool_03.png
new file mode 100644
index 0000000..61a739e
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userTool_03.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userTool_04.png b/手太欠/物业小程序/物业小程序/static/icon/userTool_04.png
new file mode 100644
index 0000000..5609f10
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userTool_04.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userTool_05.png b/手太欠/物业小程序/物业小程序/static/icon/userTool_05.png
new file mode 100644
index 0000000..6b3f465
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userTool_05.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userTool_06.png b/手太欠/物业小程序/物业小程序/static/icon/userTool_06.png
new file mode 100644
index 0000000..8603b30
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userTool_06.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userTool_07.png b/手太欠/物业小程序/物业小程序/static/icon/userTool_07.png
new file mode 100644
index 0000000..2498fb7
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userTool_07.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userTool_08.png b/手太欠/物业小程序/物业小程序/static/icon/userTool_08.png
new file mode 100644
index 0000000..4d889ff
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userTool_08.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userTool_09.png b/手太欠/物业小程序/物业小程序/static/icon/userTool_09.png
new file mode 100644
index 0000000..da59ca3
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userTool_09.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userTool_arrow.png b/手太欠/物业小程序/物业小程序/static/icon/userTool_arrow.png
new file mode 100644
index 0000000..b60abe3
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userTool_arrow.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/userTool_arrow_black.png b/手太欠/物业小程序/物业小程序/static/icon/userTool_arrow_black.png
new file mode 100644
index 0000000..801b6ac
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/userTool_arrow_black.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/user_setup.png b/手太欠/物业小程序/物业小程序/static/icon/user_setup.png
new file mode 100644
index 0000000..358427d
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/user_setup.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/icon/weixin.png b/手太欠/物业小程序/物业小程序/static/icon/weixin.png
new file mode 100644
index 0000000..3987df2
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/icon/weixin.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/address_back.png b/手太欠/物业小程序/物业小程序/static/img/address_back.png
new file mode 100644
index 0000000..2f596e2
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/address_back.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/diningTop_00.png b/手太欠/物业小程序/物业小程序/static/img/diningTop_00.png
new file mode 100644
index 0000000..b134a82
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/diningTop_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/empower.png b/手太欠/物业小程序/物业小程序/static/img/empower.png
new file mode 100644
index 0000000..14a4eb8
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/empower.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/empower_00.png b/手太欠/物业小程序/物业小程序/static/img/empower_00.png
new file mode 100644
index 0000000..dd951eb
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/empower_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/empower_home.png b/手太欠/物业小程序/物业小程序/static/img/empower_home.png
new file mode 100644
index 0000000..3a4d212
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/empower_home.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/empower_img.png b/手太欠/物业小程序/物业小程序/static/img/empower_img.png
new file mode 100644
index 0000000..25eada3
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/empower_img.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/empower_img_00.png b/手太欠/物业小程序/物业小程序/static/img/empower_img_00.png
new file mode 100644
index 0000000..c8f42fb
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/empower_img_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/haircutTap_00.png b/手太欠/物业小程序/物业小程序/static/img/haircutTap_00.png
new file mode 100644
index 0000000..dd74a62
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/haircutTap_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/level_banner.png b/手太欠/物业小程序/物业小程序/static/img/level_banner.png
new file mode 100644
index 0000000..ce98ca9
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/level_banner.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/life_00.png b/手太欠/物业小程序/物业小程序/static/img/life_00.png
new file mode 100644
index 0000000..d111316
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/life_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/life_01.png b/手太欠/物业小程序/物业小程序/static/img/life_01.png
new file mode 100644
index 0000000..2ed5c40
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/life_01.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/publicTap_00.png b/手太欠/物业小程序/物业小程序/static/img/publicTap_00.png
new file mode 100644
index 0000000..24b9ef3
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/publicTap_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/publicTap_icon.png b/手太欠/物业小程序/物业小程序/static/img/publicTap_icon.png
new file mode 100644
index 0000000..f97089f
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/publicTap_icon.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/repair_00.png b/手太欠/物业小程序/物业小程序/static/img/repair_00.png
new file mode 100644
index 0000000..b01c5dd
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/repair_00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/repair_01.png b/手太欠/物业小程序/物业小程序/static/img/repair_01.png
new file mode 100644
index 0000000..4818888
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/repair_01.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/repair_banner.png b/手太欠/物业小程序/物业小程序/static/img/repair_banner.png
new file mode 100644
index 0000000..f56a158
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/repair_banner.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/user_header.png b/手太欠/物业小程序/物业小程序/static/img/user_header.png
new file mode 100644
index 0000000..4f46ac8
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/user_header.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/img/user_wallet.png b/手太欠/物业小程序/物业小程序/static/img/user_wallet.png
new file mode 100644
index 0000000..568fbb7
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/img/user_wallet.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/tabBarIcon/00.png b/手太欠/物业小程序/物业小程序/static/tabBarIcon/00.png
new file mode 100644
index 0000000..1708a7a
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/tabBarIcon/00.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/tabBarIcon/00_active.png b/手太欠/物业小程序/物业小程序/static/tabBarIcon/00_active.png
new file mode 100644
index 0000000..82811b9
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/tabBarIcon/00_active.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/tabBarIcon/01.png b/手太欠/物业小程序/物业小程序/static/tabBarIcon/01.png
new file mode 100644
index 0000000..e832f93
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/tabBarIcon/01.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/tabBarIcon/01_active.png b/手太欠/物业小程序/物业小程序/static/tabBarIcon/01_active.png
new file mode 100644
index 0000000..240bb2b
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/tabBarIcon/01_active.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/tabBarIcon/02.png b/手太欠/物业小程序/物业小程序/static/tabBarIcon/02.png
new file mode 100644
index 0000000..5a433c1
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/tabBarIcon/02.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/tabBarIcon/02_active.png b/手太欠/物业小程序/物业小程序/static/tabBarIcon/02_active.png
new file mode 100644
index 0000000..8810849
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/tabBarIcon/02_active.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/tabBarIcon/03.png b/手太欠/物业小程序/物业小程序/static/tabBarIcon/03.png
new file mode 100644
index 0000000..96774d1
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/tabBarIcon/03.png differ
diff --git a/手太欠/物业小程序/物业小程序/static/tabBarIcon/03_active.png b/手太欠/物业小程序/物业小程序/static/tabBarIcon/03_active.png
new file mode 100644
index 0000000..3024bd6
Binary files /dev/null and b/手太欠/物业小程序/物业小程序/static/tabBarIcon/03_active.png differ
diff --git a/手太欠/物业小程序/物业小程序/utils/outTime.js b/手太欠/物业小程序/物业小程序/utils/outTime.js
new file mode 100644
index 0000000..45d53b0
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/utils/outTime.js
@@ -0,0 +1,70 @@
+//列表倒计时
+function grouponcountdown(that, end_time, param) {
+ var EndTime = new Date(end_time).getTime();
+ var NowTime = new Date().getTime();
+
+ var total_micro_second = EndTime - NowTime;
+
+ var groupons = that.data.people;
+ groupons[param].endtime = dateformat(total_micro_second);
+ if (total_micro_second <= 0) {
+ groupons[param].endtime = "已结束"
+ }
+ that.setData({
+ people: groupons
+ })
+ setTimeout(function () {
+ grouponcountdown(that, end_time, param);
+ }, 1000)
+}
+
+//倒计时
+function countDown(that) {
+ var endTime = new Date(that.data.seckillTimeTo.replace(/-/g, '/')).getTime();
+ var nowTime = new Date().getTime();
+ var total_second = endTime - nowTime;
+ that.setData({
+ seckillClock: dateformat(total_second)
+ });
+ if (total_second <= 0) {
+ that.setData({
+ seckillClock: "已结束"
+ });
+ }
+ setTimeout(function () {
+ countDown(that);
+ }, 1000)
+}
+
+// 时间格式化输出,每1s都会调用一次
+function dateformat(micro_second) {
+ // 总秒数
+ var second = Math.floor(micro_second / 1000);
+ // 天数
+ var day = Math.floor(second / 3600 / 24);
+ // 小时
+ var hr = Math.floor(second / 3600 % 24);
+ var hrStr = hr.toString();
+ if (hrStr.length == 1) hrStr = '0' + hrStr;
+
+ // 分钟
+ var min = Math.floor(second / 60 % 60);
+ var minStr = min.toString();
+ if (minStr.length == 1) minStr = '0' + minStr;
+
+ // 秒
+ var sec = Math.floor(second % 60);
+ var secStr = sec.toString();
+ if (secStr.length == 1) secStr = '0' + secStr;
+
+ if (day <= 0) {
+ return hrStr + ":" + minStr + ":" + secStr;
+ } else {
+ return day + "天" + hrStr + ":" + minStr + ":" + secStr;
+ }
+}
+
+module.exports = {
+ outTime: grouponcountdown,
+ countDown: countDown
+}
diff --git a/手太欠/物业小程序/物业小程序/utils/util.js b/手太欠/物业小程序/物业小程序/utils/util.js
new file mode 100644
index 0000000..dbadbb8
--- /dev/null
+++ b/手太欠/物业小程序/物业小程序/utils/util.js
@@ -0,0 +1,19 @@
+const formatTime = date => {
+ const year = date.getFullYear()
+ const month = date.getMonth() + 1
+ const day = date.getDate()
+ const hour = date.getHours()
+ const minute = date.getMinutes()
+ const second = date.getSeconds()
+
+ return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
+}
+
+const formatNumber = n => {
+ n = n.toString()
+ return n[1] ? n : '0' + n
+}
+
+module.exports = {
+ formatTime: formatTime
+}