diff --git a/README.md b/README.md
index 8246477..4f0d047 100644
--- a/README.md
+++ b/README.md
@@ -55,6 +55,7 @@
### 营销管理
- [x] 卡券展示;
- [x] 制券;
+- [x] 会员卡管理;
- [x] 编辑/删除;
- [x] 卡券核销;
- [x] 发放卡券;
@@ -86,7 +87,9 @@
- 2017/09/24:增加分类管理、配送员管理、店铺管理、优惠管理;
- 2017/10/09:增加卡券核销;
- 2017/10/25:增加用户详情、用户订单、常购商品、用户优惠券、用户统计;
-- 2017/10/27:堂食外卖、访客详情、优惠券领取记录、优惠券投放
+- 2017/10/27:堂食外卖、访客详情、优惠券领取记录、优惠券投放;
+- 2017/11/07:会员卡管理、会员级别;
+- 2017/11/12:会员积分管理、会员折扣管理;
## License
MIT
diff --git a/package.json b/package.json
index 290a287..0cfaa46 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,7 @@
"author": "",
"license": "MIT",
"dependencies": {
- "wepy": "^1.5.7",
+ "wepy": "^1.6.0",
"wepy-async-function": "^1.4.4",
"wepy-com-toast": "^1.0.2"
},
@@ -32,6 +32,9 @@
"wepy-compiler-babel": "^1.5.1",
"wepy-compiler-less": "^1.3.10",
"wepy-compiler-sass": "^1.3.7",
- "wepy-eslint": "^1.5.2"
+ "wepy-eslint": "^1.5.2",
+ "wepy-plugin-autoprefixer": "^1.5.9",
+ "wepy-plugin-imagemin": "^1.5.2",
+ "wepy-plugin-uglifyjs": "^1.3.6"
}
}
diff --git a/src/api/auth.js b/src/api/auth.js
index 65d2562..bce7f02 100644
--- a/src/api/auth.js
+++ b/src/api/auth.js
@@ -13,7 +13,8 @@ export default class auth extends base {
* 登录
*/
static async login(phone, code) {
- const url = `${this.baseUrl}/auth/login?phone=${phone}&sms_code=${code}`;
+ const appCode = wepy.$instance.globalData.app_code;
+ const url = `${this.baseUrl}/auth/login?phone=${phone}&sms_code=${code}&app_code=${appCode}`;
const dara = await this.get(url);
return dara.login_code;
}
@@ -21,7 +22,7 @@ export default class auth extends base {
* 短信验证码
*/
static async sms (phone) {
- const url = `${this.baseUrl}/auth/sms_code?phone=${phone}`
+ const url = `${this.baseUrl}/auth/sms_code?phone=${phone}`;
const data = await this.get(url);
return data.message;
}
diff --git a/src/api/coupon.js b/src/api/coupon.js
index d8c4404..f93e7ea 100644
--- a/src/api/coupon.js
+++ b/src/api/coupon.js
@@ -30,16 +30,16 @@ export default class coupon extends base {
switch (item.status) {
case 'USED':
- item.status = '进行中';
+ item.status = '已使用';
break;
case 'NEVER_USED':
- item.status = '未开始';
+ item.status = '未使用';
break;
case 'EXPIRED':
- item.status = '已失效';
+ item.status = '已过期';
break;
default:
- item.status = '无效'
+ item.status = '已失效'
}
}
diff --git a/src/api/customer_info.js b/src/api/customer_info.js
index d0fe3ad..0008dc8 100644
--- a/src/api/customer_info.js
+++ b/src/api/customer_info.js
@@ -2,6 +2,16 @@ import base from './base';
import Page from '../utils/Page';
export default class customerInfo extends base {
+
+ /**
+ * 根据客户发放优惠券
+ * @param params(couponId, cusomterId)
+ */
+ static async sendCoupon(params) {
+ const url = `${this.baseUrl}/coupons/send`;
+ return await this.post(url, params);
+ }
+
/**
* 获取客户地址
* @param customerId
@@ -28,6 +38,9 @@ export default class customerInfo extends base {
static async detailInfo(customerId) {
const url = `${this.baseUrl}/customers/${customerId}/detail_info`;
return this.get(url).then(data => {
+ if (data.message) {
+ return Promise.reject(new Error(data.message));
+ }
let price = data.countCustomerInfo.totalPrice;
if (price > 1000 * 1000) {
data.countCustomerInfo.totalPrice = (price / 1000).toFixed(2) + 'k';
diff --git a/src/api/member.js b/src/api/member.js
new file mode 100644
index 0000000..91c60c7
--- /dev/null
+++ b/src/api/member.js
@@ -0,0 +1,57 @@
+import base from './base';
+import Page from '../utils/Page';
+
+export default class Member extends base {
+ /**
+ * 获取会员信息
+ */
+ static async Info (number) {
+ const url = `${this.baseUrl}/members/number?number=${number}`;
+ return await this.get(url);
+ }
+
+ /**
+ * 增加积分信息
+ */
+ static async memberAdd (bonusDetail) {
+ const url = `${this.baseUrl}/members/bonus_detail`;
+ return this.post(url, bonusDetail);
+ }
+
+ /**
+ * 获取买家会员数据
+ */
+ static async customerInfo (customerId) {
+ const url = `${this.baseUrl}/members?customer_id=${customerId}`;
+ return await this.get(url);
+ }
+
+ /**
+ * 获取买家会员卡数据
+ */
+ static async cardInfo () {
+ const url = `${this.baseUrl}/memberCards`;
+ return await this.get(url);
+ }
+
+ /**
+ * 历史积分信息
+ */
+ static async bonusPage(customerId) {
+ const url = `${this.baseUrl}/members/bonus_detail?by=create_time&sort=desc&customer_id=${customerId}`;
+ return new Page(url, this.processBonusTransformation.bind(this));
+ }
+ static processBonusTransformation (bonusInfo) {
+ const comment = {};
+ if (bonusInfo.addBonus > 0) {
+ comment.costMoney = `消费金额:¥ ${bonusInfo.costMoney.toFixed(2)}`;
+ } else {
+ comment.costMoney = `抵扣金额:¥ ${bonusInfo.costMoney.toFixed(2)}`;
+ }
+ comment.addBonus = bonusInfo.addBonus;
+ comment.createTime = bonusInfo.createTime;
+ comment.orderId = bonusInfo.orderId;
+ comment.typeDesc = bonusInfo.typeDesc;
+ return comment;
+ }
+}
diff --git a/src/api/order.js b/src/api/order.js
index 5c76cda..f444938 100644
--- a/src/api/order.js
+++ b/src/api/order.js
@@ -358,6 +358,7 @@ export default class order extends base {
order.dealPrice = this._fixedPrice(order.dealPrice);
order.finalPrice = this._fixedPrice(order.finalPrice);
order.couponPrice = this._fixedPrice(order.couponPrice);
+ order.bonusPrice = this._fixedPrice(order.bonusPrice);
}
/**
diff --git a/src/api/shop.js b/src/api/shop.js
index 1f956ff..0c1d2e7 100644
--- a/src/api/shop.js
+++ b/src/api/shop.js
@@ -14,7 +14,7 @@ export default class shop extends base {
/**
* 店铺分类
*/
- static async getShopCategories() {
+ static async getShopCategories () {
const url = `${this.baseUrl}/shop_parent_categories/0`;
return await this.get(url);
}
@@ -39,14 +39,14 @@ export default class shop extends base {
/**
* 上传图片
*/
- static async image(filePath) {
+ static async image (filePath) {
// const url = `${this.baseUrl}/images`;
const url = `${this.baseUrl}/images`;
const param = {
url,
filePath,
name: 'image'
- }
+ };
return await wepy.uploadFile(param);
}
@@ -93,7 +93,7 @@ export default class shop extends base {
/**
* 创建
*/
- static createReduce(reduce) {
+ static createReduce (reduce) {
const url = `${this.baseUrl}/reduce_rule`;
return this.post(url, reduce);
}
@@ -101,7 +101,7 @@ export default class shop extends base {
/**
* 删除
*/
- static removeReduce(id) {
+ static removeReduce (id) {
const url = `${this.baseUrl}/reduce_rule/${id}`;
return this.delete(url);
}
@@ -109,7 +109,7 @@ export default class shop extends base {
/**
* 更新
*/
- static updateReduce(reduce) {
+ static updateReduce (reduce) {
const url = `${this.baseUrl}/reduce_rule`;
return this.put(url, reduce);
}
diff --git a/src/api/vip_card.js b/src/api/vip_card.js
new file mode 100644
index 0000000..26a993d
--- /dev/null
+++ b/src/api/vip_card.js
@@ -0,0 +1,27 @@
+import base from './base';
+
+export default class vip extends base {
+ /**
+ * 会员卡信息
+ */
+ static async info () {
+ const url = `${this.baseUrl}/memberCards`;
+ return await this.get(url);
+ }
+
+ /**
+ * 添加会员卡
+ */
+ static async create (cardParam) {
+ const url = `${this.baseUrl}/memberCards`;
+ return this.post(url, cardParam);
+ }
+
+ /**
+ * 编辑会员卡
+ */
+ static async update (cardParam) {
+ const url = `${this.baseUrl}/memberCards`;
+ return this.put(url, cardParam);
+ }
+}
diff --git a/src/app.wpy b/src/app.wpy
index 1931f43..6380eeb 100644
--- a/src/app.wpy
+++ b/src/app.wpy
@@ -1,6 +1,7 @@
@@ -62,6 +63,7 @@
globalData = {
auth: {},
shop: {},
+ app_code: '1jAB5uZLs57cH1gq6ujRnOdVLDqu2qle',
// baseUrl: 'https://api.leshare.shop/v2/seller'
// baseUrl: 'http://192.168.31.124:9999/v2/seller'
baseUrl: 'http://106.14.195.68:9999/v2/seller'
@@ -70,6 +72,7 @@
pages: [
'pages/home/index',
'pages/customer/address_list',
+ 'pages/customer/coupon_send',
'pages/customer/info',
'pages/order/index',
'pages/shop/index',
@@ -105,7 +108,14 @@
'pages/order/reprice',
'pages/order/detail',
'pages/order/close',
- 'pages/order/remark'
+ 'pages/order/remark',
+ 'pages/vip/vip_scan',
+ 'pages/vip/vip_detail',
+ 'pages/vip/discount_category',
+ 'pages/vip/vip_card',
+ 'pages/vip/supply_bonus',
+ 'pages/vip/vip_context',
+ 'pages/vip/supply_discount'
],
window: {
backgroundTextStyle: 'dark',
diff --git a/src/components/customer/coupon_item.wpy b/src/components/customer/coupon_item.wpy
index 90a1479..c4a68fc 100644
--- a/src/components/customer/coupon_item.wpy
+++ b/src/components/customer/coupon_item.wpy
@@ -13,15 +13,22 @@
+ 通用
+ 线上
+ 线下
{{coupon.name}}
{{coupon.beginTime}}-{{coupon.dueTime}}
-
- 领取时间:{{coupon.acceptTime}}
- 状态:{{coupon.status}}
+
+ 发放
+
+
+ 领取时间:{{coupon.acceptTime}}
+ 状态:{{coupon.status}}
+
@@ -29,18 +36,30 @@
@@ -78,6 +97,16 @@
padding: rpx(10) rpx(20) 0 rpx(20);
height: rpx(200);
+ .img-select {
+ position: relative;
+ top: rpx(-15);
+ left: rpx(350);
+
+ image {
+ @include icon-image(rpx(50));
+ }
+ }
+
.btn-box {
padding: 5px 0;
margin-top: rpx(5);
diff --git a/src/components/notice/item.wpy b/src/components/notice/item.wpy
index 726076d..0d17426 100644
--- a/src/components/notice/item.wpy
+++ b/src/components/notice/item.wpy
@@ -2,7 +2,7 @@
首页
- {{notice.content}}
+ {{notice.content}}
删除
@@ -31,7 +31,7 @@
const param = {
mode: 'edit',
noticeId
- }
+ };
this.$root.$navigate('edit', param)
}
}
@@ -52,5 +52,8 @@
padding-top: 20rpx;
border-top: $border-dot;
}
+ .notice-content {
+ flex: 1;
+ }
}
diff --git a/src/components/vip/bonus_item.wpy b/src/components/vip/bonus_item.wpy
new file mode 100644
index 0000000..9ae7268
--- /dev/null
+++ b/src/components/vip/bonus_item.wpy
@@ -0,0 +1,66 @@
+
+
+
+ {{bonusInfo.typeDesc}}
+ {{bonusInfo.createTime}}
+
+
+
+ {{bonusInfo.costMoney}}
+
+
+ 积分:
+ +{{bonusInfo.addBonus}}
+
+
+ 积分:
+ {{bonusInfo.addBonus}}
+
+
+
+ 查看订单 >
+
+
+
+
+
+
diff --git a/src/components/vip/category_item.wpy b/src/components/vip/category_item.wpy
new file mode 100644
index 0000000..6dfd5d5
--- /dev/null
+++ b/src/components/vip/category_item.wpy
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+ {{category.name}}
+
+
+
+
diff --git a/src/components/vip/discount.wpy b/src/components/vip/discount.wpy
new file mode 100644
index 0000000..3775967
--- /dev/null
+++ b/src/components/vip/discount.wpy
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+ 级别名称
+
+
+
+
+
+
+
+ 消费折扣
+
+
+
+
+
+
+
+ 升级条件
+
+
+
+
+
+
+ 折扣商品类型({{info.discountCategoryLists.length}})
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/vip/vip_card.wpy b/src/components/vip/vip_card.wpy
new file mode 100644
index 0000000..0db803d
--- /dev/null
+++ b/src/components/vip/vip_card.wpy
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+ {{customerInfo.customer.nickName ? customerInfo.customer.nickName : '微信用户'}}
+
+ {{member.levelName}}
+ 已累计消费{{member.totalCost}}元
+
+
+
+
+
+
+ 会员积分:{{member.bonus == 0 ? '暂无积分' : member.bonus}}
+ 会员卡号:{{member.memberNumber}}
+
+
+
+
+
+
+
diff --git a/src/components/weui/navigator.wpy b/src/components/weui/navigator.wpy
index b6c740e..a6adfd1 100644
--- a/src/components/weui/navigator.wpy
+++ b/src/components/weui/navigator.wpy
@@ -1,12 +1,13 @@
-
- {{title}}
- {{describe}}
-
+
+ {{title}}
+ {{describe}}
+
diff --git a/src/components/weui/search_bar.wpy b/src/components/weui/search_bar.wpy
index d0a4e6d..838c5d3 100644
--- a/src/components/weui/search_bar.wpy
+++ b/src/components/weui/search_bar.wpy
@@ -41,7 +41,7 @@
isBack() {
return this.back == 'true';
}
- }
+ };
methods = {
showInput: function () {
this.inputShowed = true;
diff --git a/src/images/icons/canvas.png b/src/images/icons/canvas.png
new file mode 100644
index 0000000..7e0999b
Binary files /dev/null and b/src/images/icons/canvas.png differ
diff --git a/src/images/icons/customer_white.png b/src/images/icons/customer_white.png
new file mode 100644
index 0000000..839daed
Binary files /dev/null and b/src/images/icons/customer_white.png differ
diff --git a/src/images/icons/vip_card.png b/src/images/icons/vip_card.png
new file mode 100644
index 0000000..27774c9
Binary files /dev/null and b/src/images/icons/vip_card.png differ
diff --git a/src/pages/coupon/customer_list.wpy b/src/pages/coupon/customer_list.wpy
index 2c1d146..1bab129 100644
--- a/src/pages/coupon/customer_list.wpy
+++ b/src/pages/coupon/customer_list.wpy
@@ -70,8 +70,7 @@
couponId: this.couponId.couponId,
customerId: customer.id
};
- await Tips.confirm('确认发放该优惠券?');
- console.log(param);
+ await Tips.confirm('确定发放?');
await coupon.send(param);
await Tips.success('发放成功');
Event.emit(Event.COUPON_USER_UPDATE);
diff --git a/src/pages/coupon/edit.wpy b/src/pages/coupon/edit.wpy
index f507250..33a4c69 100644
--- a/src/pages/coupon/edit.wpy
+++ b/src/pages/coupon/edit.wpy
@@ -1,6 +1,6 @@
-
+
diff --git a/src/pages/customer/address_list.wpy b/src/pages/customer/address_list.wpy
index ce05177..55604ec 100644
--- a/src/pages/customer/address_list.wpy
+++ b/src/pages/customer/address_list.wpy
@@ -42,5 +42,4 @@
diff --git a/src/pages/customer/coupon_send.wpy b/src/pages/customer/coupon_send.wpy
new file mode 100644
index 0000000..2104cf3
--- /dev/null
+++ b/src/pages/customer/coupon_send.wpy
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/customer/info.wpy b/src/pages/customer/info.wpy
index 281e6a5..8429f58 100644
--- a/src/pages/customer/info.wpy
+++ b/src/pages/customer/info.wpy
@@ -7,7 +7,8 @@
-
+
@@ -21,7 +22,7 @@
- 电话:{{customerInfo.address ? customerInfo.address.phone : '暂无电话'}}
+ 电话:{{customerInfo.address ? customerInfo.address.phone : '暂无电话'}}
地址:{{customerInfo.address ? customerInfo.address.fullAddress : '暂无地址'}}
@@ -32,7 +33,21 @@
-
+
+
+
+ 会员等级 : {{customerMember.levelName}}
+
+ 当前积分 : {{customerMember.bonus}}
+
+
+ 暂未注册
+
+
+
+ 暂未注册
+
+
@@ -61,6 +76,10 @@
+
+
+
+
@@ -69,7 +88,10 @@
-
+
+
+
+
@@ -89,11 +111,14 @@
import OrderItem from '../../components/order/item';
import coupon from '../../api/coupon';
import CouponItem from '../../components/customer/coupon_item';
+ import BonusItem from '../../components/vip/bonus_item';
import goods from '../../api/goods';
+ import member from '../../api/member';
import OftenGoods from '../../components/customer/often_goods';
import Loadmore from '../../components/weui/loadmore';
import Placeholder from '../../components/common/placeholder';
import Tips from '../../utils/Tips';
+ import Event from '../../utils/Event';
export default class CustomerInfo extends wepy.page {
def = {
@@ -101,6 +126,7 @@
attention: false,
customerInfo: {},
customerId: '',
+ customerMember: {},
page: {
list: [
{orderGoodsInfos: []}
@@ -110,7 +136,8 @@
list: [
{id: 'HIS_ORDER', title: '历史订单'},
{id: 'OFTEN_GOODS', title: '常购商品'},
- {id: 'COUPON', title: '优惠券'}
+ {id: 'COUPON', title: '优惠券'},
+ {id: 'HIS_BONUS', title: '历史积分'}
],
selectedId: 'HIS_ORDER'
},
@@ -120,35 +147,63 @@
};
data = {...this.def};
- async onLoad(options) {
+ async onLoad (options) {
this.customerId = options.customerId;
+ this.customerMember = await member.customerInfo(this.customerId);
this.tab.selectedId = 'HIS_ORDER';
this.customerInfo = await customerInfo.detailInfo(this.customerId);
this.page = order.hisPage(this.customerId);
this.next();
- this.loaded();
+ Event.listen(Event.CUSOMTER_COUPON_UPDATE, this.updateInfo.bind(this), this);
+ Event.listen(Event.SHOP_CUSTOMER_UPDATE, this.updateMemberInfo.bind(this), this);
};
+ updateInfo () {
+ this.update();
+ this.customerInfo.countCustomerInfo.totalCouponCount++;
+ this.$apply();
+ }
+ async updateMemberInfo (params) {
+ this.customerMember = await member.customerInfo(this.customerId);
+ this.$apply();
+ }
+
methods = {
- phone() {
+ moreVip () {
+ if (this.customerMember) {
+ const params = {
+ customerInfo: this.customerInfo,
+ customerMember: this.customerMember
+ };
+ this.$preload('data', params);
+ this.$navigate('/pages/vip/vip_scan');
+ } else {
+ Tips.alert('该用户还未注册本店会员!')
+ }
+ },
+ send () {
+ const customerId = this.customerId;
+ this.$navigate('./coupon_send', {customerId});
+ },
+ phone () {
if (this.customerInfo.address) {
wepy.makePhoneCall({phoneNumber: this.customerInfo.address.phone});
} else {
Tips.alert('该用户没有电话');
}
},
- addressList(customerId) {
+ addressList (customerId) {
if (!this.customerInfo.addressList) {
Tips.alert('该用户没有地址');
return;
}
this.$navigate('./address_list', {customerId});
},
- detail(orderId) {
+ detail (orderId) {
this.$navigate('../order/detail', {orderId});
}
};
events = {
- async change() {
+ async change () {
this.page.clear();
this.$apply();
if (this.tab.selectedId == 'HIS_ORDER') {
@@ -157,6 +212,8 @@
this.page = await goods.oftenGoodsPage(this.customerId);
} else if (this.tab.selectedId == 'COUPON') {
this.page = await coupon.cutomerCouponPage(this.customerId);
+ } else if (this.tab.selectedId == 'HIS_BONUS') {
+ this.page = await member.bonusPage(this.customerId);
}
this.next();
}
@@ -168,7 +225,8 @@
CouponItem: CouponItem,
OftenGoods: OftenGoods,
Loadmore: Loadmore,
- Placeholder: Placeholder
+ Placeholder: Placeholder,
+ BonusItem: BonusItem
};
config = {
navigationBarTitleText: '客户信息',
@@ -178,44 +236,70 @@
diff --git a/src/pages/delivery/deliver_list.wpy b/src/pages/delivery/deliver_list.wpy
index f5503ec..93d8671 100644
--- a/src/pages/delivery/deliver_list.wpy
+++ b/src/pages/delivery/deliver_list.wpy
@@ -47,9 +47,7 @@
add() {
this.$navigate('deliver_edit?mode=create');
}
- }
- computed = {
- }
+ };
events = {};
components = {
Placeholder: Placeholder,
diff --git a/src/pages/goods/category.wpy b/src/pages/goods/category.wpy
index a94a622..bdc18c4 100644
--- a/src/pages/goods/category.wpy
+++ b/src/pages/goods/category.wpy
@@ -9,7 +9,7 @@
-
+
@@ -30,23 +30,24 @@
def = {
init: false,
list: [
- ]
- }
+ ],
+ isPageEmpty: false
+ };
data = {...this.def};
async onLoad () {
- this.list = await goods.getInnerCategories();
- this.loaded();
+ await this.update();
Event.listen(Event.CATEGORY_LIST_UPDATE, this.update.bind(this), this);
};
async update () {
this.list = await goods.getInnerCategories();
+ this.isPageEmpty = this.list == null || this.list.length == 0;
this.loaded();
}
methods = {
add() {
this.$navigate('category_edit?mode=create');
}
- }
+ };
events = {};
components = {
Placeholder: Placeholder,
diff --git a/src/pages/goods/edit.wpy b/src/pages/goods/edit.wpy
index b3b1d0a..3da9f41 100644
--- a/src/pages/goods/edit.wpy
+++ b/src/pages/goods/edit.wpy
@@ -119,7 +119,7 @@
innerCategories: [],
init: false,
isInnerDisplay: 'false'
- }
+ };
data = {...this.def};
async onLoad ({goodsId, mode}) {
this.mode = mode;
@@ -175,7 +175,7 @@
const stock = {
sku: null,
stock: sku.stock
- }
+ };
data.goodsSkuInfo = null;
data.stock = sku.stock;
data.goodsStocks.push(stock);
@@ -235,7 +235,7 @@
details() {
const param = {
details: JSON.stringify(this.details)
- }
+ };
this.$navigate('detail', param);
}
diff --git a/src/pages/home/home.wpy b/src/pages/home/home.wpy
index 10977c6..7a8aa87 100644
--- a/src/pages/home/home.wpy
+++ b/src/pages/home/home.wpy
@@ -128,10 +128,10 @@
shop: {},
init: false,
show: false
- }
+ };
data = {...this.def};
async onLoad () {
- console.info('load')
+ console.info('load');
WxUtils.checkSDK();
this.shop = await shop.info();
this.show = true;
@@ -163,7 +163,7 @@
clearInterval(interval);
}
async reload() {
- Tips.setLoading()
+ Tips.setLoading();
// 数据展现
const [today, month, order] = await Promise.all([count.today(), count.month(), count.order()]);
this.today = today;
@@ -209,14 +209,18 @@
Event.emit(Event.ORDER_TAB_UPDATE, status);
},
async scan() {
- const {result} = await wepy.scanCode();
- if (result != null && result != '') {
- this.$navigate(`/pages/coupon/scan?scan=${result}`);
+ const data = await wepy.scanCode();
+ console.info(data);
+ if (data.result != null && data.result != '') {
+ this.$navigate(`/pages/coupon/scan?scan=${data.result}`);
+ } else if (data.path != null && data.path != '') {
+ const arr = data.path.split('=');
+ this.$navigate('/pages/vip/vip_scan?scene=' + arr[1]);
} else {
Tips.alert('扫描失败');
}
}
- }
+ };
config = {
enablePullDownRefresh: true,
navigationBarTitleText: ' '
diff --git a/src/pages/home/index.wpy b/src/pages/home/index.wpy
index 1fb7d81..cbc17b1 100644
--- a/src/pages/home/index.wpy
+++ b/src/pages/home/index.wpy
@@ -51,7 +51,7 @@
def = {
init: false
};
- data = {...this.def}
+ data = {...this.def};
async onLoad () {
try {
const loginCode = auth.getConfig('login_code');
diff --git a/src/pages/order/detail.wpy b/src/pages/order/detail.wpy
index 32d7d0f..7acec26 100644
--- a/src/pages/order/detail.wpy
+++ b/src/pages/order/detail.wpy
@@ -74,10 +74,14 @@
运费
+¥{{order.postFee}}
-
+
优惠券
-¥{{order.couponPrice}}
+
+ 积分抵扣
+ -¥{{order.bonusPrice}}
+
原价:
diff --git a/src/pages/order/send.wpy b/src/pages/order/send.wpy
index 5600945..63ba6c8 100644
--- a/src/pages/order/send.wpy
+++ b/src/pages/order/send.wpy
@@ -164,7 +164,7 @@
value.mailNo = null;
}
}
- }
+ };
computed = {
// 计算主面板是否显示
panelDisplay() {
@@ -177,7 +177,7 @@
return '请选择';
}
}
- }
+ };
mixins = [input];
components = {
Address: Address,
diff --git a/src/pages/shop/edit.wpy b/src/pages/shop/edit.wpy
index 7cc0c36..5744273 100644
--- a/src/pages/shop/edit.wpy
+++ b/src/pages/shop/edit.wpy
@@ -1,103 +1,112 @@
-
-
-
+
+
+
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ 店铺分类
+ {{shop.categoryName}}
-
+
+ 自动接单
+
+
+
+
-
+
+ 线下支付
+
+
+
+
-
- 店铺分类
- {{shop.categoryName}}
-
+
+ 堂食点餐
+
+
+
+
-
- 自动接单
-
-
-
-
+
+ 会员卡
+
+
+
+
-
- 线下支付
-
-
-
+
+ 店铺位置
+
+ {{shop.latitude ? '已选择(点击更换)' : '点击选择'}}
+
+
+
+
-
- 堂食点餐
-
-
-
+
+
+ 店铺地址
+
+
+
+
+
+
-
- 店铺位置
-
- {{shop.latitude ? '已选择(点击更换)' : '点击选择'}}
-
+
+
+ 联系电话
+
+
+
+
+
-
-
-
-
-
- 店铺地址
-
-
-
-
-
-
-
-
-
-
- 联系电话
-
-
-
-
-
-
-
-
-
- 店铺描述
-
-
-
-
-
-
- {{shop.describe ? shop.describe.length : 0}}/50
-
-
+
+
+ 店铺描述
+
-
-
-
+
+
+
+ {{shop.describe ? shop.describe.length : 0}}/50
+
-
-
+
+
+
+
+
+
+
+
diff --git a/src/pages/shop/reduce_list.wpy b/src/pages/shop/reduce_list.wpy
index 7ddc9c4..f792e10 100644
--- a/src/pages/shop/reduce_list.wpy
+++ b/src/pages/shop/reduce_list.wpy
@@ -46,9 +46,7 @@
add() {
this.$navigate('reduce_edit?mode=create');
}
- }
- computed = {
- }
+ };
events = {};
components = {
Placeholder: Placeholder,
diff --git a/src/pages/vip/discount_category.wpy b/src/pages/vip/discount_category.wpy
new file mode 100644
index 0000000..d168258
--- /dev/null
+++ b/src/pages/vip/discount_category.wpy
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/vip/supply_bonus.wpy b/src/pages/vip/supply_bonus.wpy
new file mode 100644
index 0000000..6f7f8d0
--- /dev/null
+++ b/src/pages/vip/supply_bonus.wpy
@@ -0,0 +1,327 @@
+
+
+
+ 积分规则
+
+
+
+ 每消费
+
+
+
+ 元
+
+
+ 增加
+
+
+
+ 积分
+
+
+ 最多累计
+
+
+
+ 积分
+
+
+
+
+ 使用规则
+
+
+
+ 每使用
+
+
+
+ 积分
+
+
+ 抵扣
+
+
+
+ 元
+
+
+ 最多使用
+
+
+
+ 积分
+
+
+ 订单需满
+
+
+
+ 元
+
+
+
+ 其他
+
+
+
+ 初始积分
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/vip/supply_discount.wpy b/src/pages/vip/supply_discount.wpy
new file mode 100644
index 0000000..b14f0d7
--- /dev/null
+++ b/src/pages/vip/supply_discount.wpy
@@ -0,0 +1,202 @@
+
+
+
+
+ 会员等级
+
+
+
+
+
+
+
+
+ 添加会员等级
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/vip/vip_card.wpy b/src/pages/vip/vip_card.wpy
new file mode 100644
index 0000000..3710724
--- /dev/null
+++ b/src/pages/vip/vip_card.wpy
@@ -0,0 +1,253 @@
+
+
+
+
+
+
+ 会员卡名称
+
+
+
+
+
+
+
+
+ 客服电话
+
+
+
+
+
+
+
+ 使用说明
+ {{descriptionText}}
+
+
+ 使用提醒
+ {{noticeText}}
+
+
+
+
+
+
+ 积分规则
+
+
+
+
+
+
+ 规则配置
+ {{bounsText}}
+
+
+
+
+
+
+ 会员等级
+
+
+
+
+
+
+ 等级配置
+ {{levelText}}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/vip/vip_context.wpy b/src/pages/vip/vip_context.wpy
new file mode 100644
index 0000000..7973fb1
--- /dev/null
+++ b/src/pages/vip/vip_context.wpy
@@ -0,0 +1,97 @@
+
+
+
+ {{support}}
+
+
+
+
+ {{input.context ? input.context.length : 0}}/200
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/vip/vip_detail.wpy b/src/pages/vip/vip_detail.wpy
new file mode 100644
index 0000000..fabe95e
--- /dev/null
+++ b/src/pages/vip/vip_detail.wpy
@@ -0,0 +1,132 @@
+
+
+
+
+
+ 会员特权
+
+ 会员等级
+
+
+ 您当前为
+ {{member.levelName}}
+
+ {{discountLevel}}
+
+
+
+ 特权说明
+
+ {{vipDescribe}}
+
+
+
+ 客服电话
+ {{vipCard.servicePhone}}
+
+
+ 会员须知
+ {{vipCard.description}}
+
+
+ 会员提醒
+ {{vipCard.notice}}
+
+
+
+
+ 会员级别
+
+
+ {{item.levelName}}
+
+ 消费满{{item.upgradeFee}}元可升级
+ 可享部分商品{{item.discount / 10}}折优惠
+
+
+
+
+
+
+
+
diff --git a/src/pages/vip/vip_scan.wpy b/src/pages/vip/vip_scan.wpy
new file mode 100644
index 0000000..4ce58d3
--- /dev/null
+++ b/src/pages/vip/vip_scan.wpy
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+
+ 消费金额
+
+
+
+
+
+
+
+ 累计积分
+
+ {{bonus ? bonus : 0}}
+
+
+
+
+
+
+
+
+ {{message}}
+
+
+
+
+
+
diff --git a/src/styles/weui-extend.scss b/src/styles/weui-extend.scss
index 4ecce0b..7f1cc34 100644
--- a/src/styles/weui-extend.scss
+++ b/src/styles/weui-extend.scss
@@ -1,4 +1,3 @@
-@import "weui.wxss";
@import "variable";
//******weui fix******/
diff --git a/src/styles/weui.wxss b/src/styles/weui.wxss
index 3d6cfac..9d4b79c 100644
--- a/src/styles/weui.wxss
+++ b/src/styles/weui.wxss
@@ -3,4 +3,4 @@
* Copyright 2017 Tencent, Inc.
* Licensed under the MIT license
*/
-page{line-height:1.6;font-family:-apple-system-font,Helvetica Neue,sans-serif}icon{vertical-align:middle}.weui-cells{position:relative;margin-top:1.17647059em;background-color:#fff;line-height:1.41176471;font-size:17px}.weui-cells:before{top:0;border-top:1rpx solid #d9d9d9}.weui-cells:after,.weui-cells:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#d9d9d9}.weui-cells:after{bottom:0;border-bottom:1rpx solid #d9d9d9}.weui-cells__title{margin-top:.77em;margin-bottom:.3em;padding-left:15px;padding-right:15px;color:#999;font-size:14px}.weui-cells_after-title{margin-top:0}.weui-cells__tips{margin-top:.3em;color:#999;padding-left:15px;padding-right:15px;font-size:14px}.weui-cell{padding:10px 15px;position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-cell:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #d9d9d9;color:#d9d9d9;left:15px}.weui-cell:first-child:before{display:none}.weui-cell_active{background-color:#ececec}.weui-cell_primary{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start}.weui-cell__bd{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-cell__ft{text-align:right;color:#999}.weui-cell_access{color:inherit}.weui-cell__ft_in-access{padding-right:13px;position:relative}.weui-cell__ft_in-access:after{content:" ";display:inline-block;height:6px;width:6px;border-width:2px 2px 0 0;border-color:#c8c8cd;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;margin-top:-4px;right:2px}.weui-cell_link{color:#586c94;font-size:14px}.weui-cell_link:active{background-color:#ececec}.weui-cell_link:first-child:before{display:block}.weui-icon-radio{margin-left:3.2px;margin-right:3.2px}.weui-icon-checkbox_circle,.weui-icon-checkbox_success{margin-left:4.6px;margin-right:4.6px}.weui-check__label:active{background-color:#ececec}.weui-check{position:absolute;left:-9999px}.weui-check__hd_in-checkbox{padding-right:.35em}.weui-cell__ft_in-radio{padding-left:.35em}.weui-cell_input{padding-top:0;padding-bottom:0}.weui-label{width:105px;word-wrap:break-word;word-break:break-all}.weui-input{height:2.58823529em;min-height:2.58823529em;line-height:2.58823529em}.weui-toptips{position:fixed;-webkit-transform:translateZ(0);transform:translateZ(0);top:0;left:0;right:0;padding:5px;font-size:14px;text-align:center;color:#fff;z-index:5000;word-wrap:break-word;word-break:break-all}.weui-toptips_warn{background-color:#e64340}.weui-textarea{display:block;width:100%}.weui-textarea-counter{color:#b2b2b2;text-align:right}.weui-cell_warn,.weui-textarea-counter_warn{color:#e64340}.weui-form-preview{position:relative;background-color:#fff}.weui-form-preview:before{top:0;border-top:1rpx solid #d9d9d9}.weui-form-preview:after,.weui-form-preview:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#d9d9d9}.weui-form-preview:after{bottom:0;border-bottom:1rpx solid #d9d9d9}.weui-form-preview__value{font-size:14px}.weui-form-preview__value_in-hd{font-size:26px}.weui-form-preview__hd{position:relative;padding:10px 15px;text-align:right;line-height:2.5em}.weui-form-preview__hd:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1rpx solid #d9d9d9;color:#d9d9d9;left:15px}.weui-form-preview__bd{padding:10px 15px;font-size:.9em;text-align:right;color:#999;line-height:2}.weui-form-preview__ft{position:relative;line-height:50px;display:-webkit-box;display:-webkit-flex;display:flex}.weui-form-preview__ft:after{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #d5d5d6;color:#d5d5d6}.weui-form-preview__item{overflow:hidden}.weui-form-preview__label{float:left;margin-right:1em;min-width:4em;color:#999;text-align:justify;text-align-last:justify}.weui-form-preview__value{display:block;overflow:hidden;word-break:normal;word-wrap:break-word}.weui-form-preview__btn{position:relative;display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;color:#3cc51f;text-align:center}.weui-form-preview__btn:after{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1rpx solid #d5d5d6;color:#d5d5d6}.weui-form-preview__btn:first-child:after{display:none}.weui-form-preview__btn_active{background-color:#eee}.weui-form-preview__btn_default{color:#999}.weui-form-preview__btn_primary{color:#0bb20c}.weui-cell_select{padding:0}.weui-select{position:relative;padding-left:15px;padding-right:30px;height:2.58823529em;min-height:2.58823529em;line-height:2.58823529em;border-right:1rpx solid #d9d9d9}.weui-select:before{content:" ";display:inline-block;height:6px;width:6px;border-width:2px 2px 0 0;border-color:#c8c8cd;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;right:15px;margin-top:-4px}.weui-select_in-select-after{padding-left:0}.weui-cell__bd_in-select-before,.weui-cell__hd_in-select-after{padding-left:15px}.weui-cell_vcode{padding-right:0}.weui-vcode-btn,.weui-vcode-img{margin-left:5px;height:2.58823529em;vertical-align:middle}.weui-vcode-btn{display:inline-block;padding:0 .6em 0 .7em;border-left:1px solid #e5e5e5;line-height:2.58823529em;font-size:17px;color:#3cc51f;white-space:nowrap}.weui-vcode-btn:active{color:#52a341}.weui-cell_switch{padding-top:6px;padding-bottom:6px}.weui-uploader__hd{display:-webkit-box;display:-webkit-flex;display:flex;padding-bottom:10px;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-uploader__title{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-uploader__info{color:#b2b2b2}.weui-uploader__bd{margin-bottom:-4px;margin-right:-9px;overflow:hidden}.weui-uploader__file{float:left;margin-right:9px;margin-bottom:9px}.weui-uploader__img{display:block;width:79px;height:79px}.weui-uploader__file_status{position:relative}.weui-uploader__file_status:before{content:" ";position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.5)}.weui-uploader__file-content{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#fff}.weui-uploader__input-box{float:left;position:relative;margin-right:9px;margin-bottom:9px;width:77px;height:77px;border:1px solid #d9d9d9}.weui-uploader__input-box:after,.weui-uploader__input-box:before{content:" ";position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:#d9d9d9}.weui-uploader__input-box:before{width:2px;height:39.5px}.weui-uploader__input-box:after{width:39.5px;height:2px}.weui-uploader__input-box:active{border-color:#999}.weui-uploader__input-box:active:after,.weui-uploader__input-box:active:before{background-color:#999}.weui-uploader__input{position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;opacity:0}.weui-article{padding:20px 15px;font-size:15px}.weui-article__section{margin-bottom:1.5em}.weui-article__h1{font-size:18px;font-weight:400;margin-bottom:.9em}.weui-article__h2{font-size:16px;font-weight:400;margin-bottom:.34em}.weui-article__h3{font-weight:400;font-size:15px;margin-bottom:.34em}.weui-article__p{margin:0 0 .8em}.weui-msg{padding-top:36px;text-align:center}.weui-msg__link{display:inline;color:#586c94}.weui-msg__icon-area{margin-bottom:30px}.weui-msg__text-area{margin-bottom:25px;padding:0 20px}.weui-msg__title{margin-bottom:5px;font-weight:400;font-size:20px}.weui-msg__desc{font-size:14px;color:#999}.weui-msg__opr-area{margin-bottom:25px}.weui-msg__extra-area{margin-bottom:15px;font-size:14px;color:#999}@media screen and (min-height:438px){.weui-msg__extra-area{position:fixed;left:0;bottom:0;width:100%;text-align:center}}.weui-flex{display:-webkit-box;display:-webkit-flex;display:flex}.weui-flex__item{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-btn{margin-top:15px}.weui-btn:first-child{margin-top:0}.weui-btn-area{margin:1.17647059em 15px .3em}.weui-agree{display:block;padding:.5em 15px;font-size:13px}.weui-agree__text{color:#999}.weui-agree__link{display:inline;color:#586c94}.weui-agree__checkbox{position:absolute;left:-9999px}.weui-agree__checkbox-icon{position:relative;top:2px;display:inline-block;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:11px;height:11px}.weui-agree__checkbox-icon-check{position:absolute;top:1px;left:1px}.weui-footer{color:#999;font-size:14px;text-align:center}.weui-footer_fixed-bottom{position:fixed;bottom:.52em;left:0;right:0}.weui-footer__links{font-size:0}.weui-footer__link{display:inline-block;vertical-align:top;margin:0 .62em;position:relative;font-size:14px;color:#586c94}.weui-footer__link:before{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1rpx solid #c7c7c7;color:#c7c7c7;left:-.65em;top:.36em;bottom:.36em}.weui-footer__link:first-child:before{display:none}.weui-footer__text{padding:0 .34em;font-size:12px}.weui-grids{border-top:1rpx solid #d9d9d9;border-left:1rpx solid #d9d9d9;overflow:hidden}.weui-grid{position:relative;float:left;padding:20px 10px;width:33.33333333%;box-sizing:border-box;border-right:1rpx solid #d9d9d9;border-bottom:1rpx solid #d9d9d9}.weui-grid_active{background-color:#ececec}.weui-grid__icon{display:block;width:28px;height:28px;margin:0 auto}.weui-grid__label{margin-top:5px;display:block;text-align:center;color:#000;font-size:14px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.weui-loading{margin:0 5px;width:20px;height:20px;display:inline-block;vertical-align:middle;-webkit-animation:a 1s steps(12) infinite;animation:a 1s steps(12) infinite;background:transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat;background-size:100%}.weui-loading.weui-loading_transparent{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect xmlns='http://www.w3.org/2000/svg' width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.56)' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.5)' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.43)' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.38)' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.32)' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.28)' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.25)' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.2)' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.17)' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.14)' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.1)' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.03)' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E")}@-webkit-keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.weui-badge{display:inline-block;padding:.15em .4em;min-width:8px;border-radius:18px;background-color:#e64340;color:#fff;line-height:1.2;text-align:center;font-size:12px;vertical-align:middle}.weui-badge_dot{padding:.4em;min-width:0}.weui-loadmore{width:65%;margin:1.5em auto;line-height:1.6em;font-size:14px;text-align:center}.weui-loadmore__tips{display:inline-block;vertical-align:middle}.weui-loadmore_line{border-top:1px solid #e5e5e5;margin-top:2.4em}.weui-loadmore__tips_in-line{position:relative;top:-.9em;padding:0 .55em;background-color:#fff;color:#999}.weui-loadmore__tips_in-dot{position:relative;padding:0 .16em;width:4px;height:1.6em}.weui-loadmore__tips_in-dot:before{content:" ";position:absolute;top:50%;left:50%;margin-top:-1px;margin-left:-2px;width:4px;height:4px;border-radius:50%;background-color:#e5e5e5}.weui-panel{background-color:#fff;margin-top:10px;position:relative;overflow:hidden}.weui-panel:first-child{margin-top:0}.weui-panel:before{top:0;border-top:1rpx solid #e5e5e5}.weui-panel:after,.weui-panel:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#e5e5e5}.weui-panel:after{bottom:0;border-bottom:1rpx solid #e5e5e5}.weui-panel__hd{padding:14px 15px 10px;color:#999;font-size:13px;position:relative}.weui-panel__hd:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1rpx solid #e5e5e5;color:#e5e5e5;left:15px}.weui-media-box{padding:15px;position:relative}.weui-media-box:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #e5e5e5;color:#e5e5e5;left:15px}.weui-media-box:first-child:before{display:none}.weui-media-box__title{font-weight:400;font-size:17px;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;word-wrap:break-word;word-break:break-all}.weui-media-box__desc{color:#999;font-size:13px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.weui-media-box__info{margin-top:15px;padding-bottom:5px;font-size:13px;color:#cecece;line-height:1em;list-style:none;overflow:hidden}.weui-media-box__info__meta{float:left;padding-right:1em}.weui-media-box__info__meta_extra{padding-left:1em;border-left:1px solid #cecece}.weui-media-box__title_in-text{margin-bottom:8px}.weui-media-box_appmsg{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-media-box__thumb{width:100%;height:100%;vertical-align:top}.weui-media-box__hd_in-appmsg{margin-right:.8em;width:60px;height:60px;line-height:60px;text-align:center}.weui-media-box__bd_in-appmsg{-webkit-box-flex:1;-webkit-flex:1;flex:1;min-width:0}.weui-media-box_small-appmsg{padding:0}.weui-cells_in-small-appmsg{margin-top:0}.weui-cells_in-small-appmsg:before{display:none}.weui-progress{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-progress__bar{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-progress__opr{margin-left:15px;font-size:0}.weui-navbar{display:-webkit-box;display:-webkit-flex;display:flex;position:absolute;z-index:500;top:0;width:100%;border-bottom:1rpx solid #ccc}.weui-navbar__item{position:relative;display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:13px 0;text-align:center;font-size:0}.weui-navbar__item.weui-bar__item_on{color:#1aad19}.weui-navbar__slider{position:absolute;content:" ";left:0;bottom:0;width:6em;height:3px;background-color:#1aad19;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.weui-navbar__title{display:inline-block;font-size:15px;max-width:8em;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.weui-tab{position:relative;height:100%}.weui-tab__panel{box-sizing:border-box;height:100%;padding-top:50px;overflow:auto;-webkit-overflow-scrolling:touch}.weui-search-bar{position:relative;padding:8px 10px;display:-webkit-box;display:-webkit-flex;display:flex;box-sizing:border-box;background-color:#efeff4;border-top:1rpx solid #d7d6dc;border-bottom:1rpx solid #d7d6dc}.weui-icon-search{margin-right:8px;font-size:inherit}.weui-icon-search_in-box{position:absolute;left:10px;top:7px}.weui-search-bar__text{display:inline-block;font-size:14px;vertical-align:middle}.weui-search-bar__form{position:relative;-webkit-box-flex:1;-webkit-flex:auto;flex:auto;border-radius:5px;background:#fff;border:1rpx solid #e6e6ea}.weui-search-bar__box{position:relative;padding-left:30px;padding-right:30px;width:100%;box-sizing:border-box;z-index:1}.weui-search-bar__input{height:28px;line-height:28px;font-size:14px}.weui-icon-clear{position:absolute;top:0;right:0;padding:7px 8px;font-size:0}.weui-search-bar__label{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;border-radius:3px;text-align:center;color:#9b9b9b;background:#fff;line-height:28px}.weui-search-bar__cancel-btn{margin-left:10px;line-height:28px;color:#09bb07;white-space:nowrap}
\ No newline at end of file
+page{line-height:1.6;font-family:-apple-system-font,Helvetica Neue,sans-serif}icon{vertical-align:middle}.weui-cells{position:relative;margin-top:1.17647059em;background-color:#fff;line-height:1.41176471;font-size:17px}.weui-cells:before{top:0;border-top:1rpx solid #d9d9d9}.weui-cells:after,.weui-cells:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#d9d9d9}.weui-cells:after{bottom:0;border-bottom:1rpx solid #d9d9d9}.weui-cells__title{margin-top:.77em;margin-bottom:.3em;padding-left:15px;padding-right:15px;color:#999;font-size:14px}.weui-cells_after-title{margin-top:0}.weui-cells__tips{margin-top:.3em;color:#999;padding-left:15px;padding-right:15px;font-size:14px}.weui-cell{padding:10px 15px;position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-cell:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #d9d9d9;color:#d9d9d9;left:15px}.weui-cell:first-child:before{display:none}.weui-cell_active{background-color:#ececec}.weui-cell_primary{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start}.weui-cell__bd{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-cell__ft{text-align:right;color:#999}.weui-cell_access{color:inherit}.weui-cell__ft_in-access{padding-right:13px;position:relative}.weui-cell__ft_in-access:after{content:" ";display:inline-block;height:6px;width:6px;border-width:2px 2px 0 0;border-color:#c8c8cd;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;margin-top:-4px;right:2px}.weui-cell_link{color:#586c94;font-size:14px}.weui-cell_link:active{background-color:#ececec}.weui-cell_link:first-child:before{display:block}.weui-icon-radio{margin-left:3.2px;margin-right:3.2px}.weui-icon-checkbox_circle,.weui-icon-checkbox_success{margin-left:4.6px;margin-right:4.6px}.weui-check__label:active{background-color:#ececec}.weui-check{position:absolute;left:-9999px}.weui-check__hd_in-checkbox{padding-right:.35em}.weui-cell__ft_in-radio{padding-left:.35em}.weui-cell_input{padding-top:0;padding-bottom:0}.weui-label{width:105px;word-wrap:break-word;word-break:break-all}.weui-input{height:2.58823529em;min-height:2.58823529em;line-height:2.58823529em}.weui-toptips{position:fixed;-webkit-transform:translateZ(0);transform:translateZ(0);top:0;left:0;right:0;padding:5px;font-size:14px;text-align:center;color:#fff;z-index:5000;word-wrap:break-word;word-break:break-all}.weui-toptips_warn{background-color:#e64340}.weui-textarea{display:block;width:100%}.weui-textarea-counter{color:#b2b2b2;text-align:right}.weui-cell_warn,.weui-textarea-counter_warn{color:#e64340}.weui-form-preview{position:relative;background-color:#fff}.weui-form-preview:before{top:0;border-top:1rpx solid #d9d9d9}.weui-form-preview:after,.weui-form-preview:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#d9d9d9}.weui-form-preview:after{bottom:0;border-bottom:1rpx solid #d9d9d9}.weui-form-preview__value{font-size:14px}.weui-form-preview__value_in-hd{font-size:26px}.weui-form-preview__hd{position:relative;padding:10px 15px;text-align:right;line-height:2.5em}.weui-form-preview__hd:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1rpx solid #d9d9d9;color:#d9d9d9;left:15px}.weui-form-preview__bd{padding:10px 15px;font-size:.9em;text-align:right;color:#999;line-height:2}.weui-form-preview__ft{position:relative;line-height:50px;display:-webkit-box;display:-webkit-flex;display:flex}.weui-form-preview__ft:after{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #d5d5d6;color:#d5d5d6}.weui-form-preview__item{overflow:hidden}.weui-form-preview__label{float:left;margin-right:1em;min-width:4em;color:#999;text-align:justify;text-align-last:justify}.weui-form-preview__value{display:block;overflow:hidden;word-break:normal;word-wrap:break-word}.weui-form-preview__btn{position:relative;display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;color:#3cc51f;text-align:center}.weui-form-preview__btn:after{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1rpx solid #d5d5d6;color:#d5d5d6}.weui-form-preview__btn:first-child:after{display:none}.weui-form-preview__btn_active{background-color:#eee}.weui-form-preview__btn_default{color:#999}.weui-form-preview__btn_primary{color:#0bb20c}.weui-cell_select{padding:0}.weui-select{position:relative;padding-left:15px;padding-right:30px;height:2.58823529em;min-height:2.58823529em;line-height:2.58823529em;border-right:1rpx solid #d9d9d9}.weui-select:before{content:" ";display:inline-block;height:6px;width:6px;border-width:2px 2px 0 0;border-color:#c8c8cd;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;right:15px;margin-top:-4px}.weui-select_in-select-after{padding-left:0}.weui-cell__bd_in-select-before,.weui-cell__hd_in-select-after{padding-left:15px}.weui-cell_vcode{padding-right:0}.weui-vcode-btn,.weui-vcode-img{margin-left:5px;height:2.58823529em;vertical-align:middle}.weui-vcode-btn{display:inline-block;padding:0 .6em 0 .7em;border-left:1px solid #e5e5e5;line-height:2.58823529em;font-size:17px;color:#3cc51f;white-space:nowrap}.weui-vcode-btn:active{color:#52a341}.weui-cell_switch{padding-top:6px;padding-bottom:6px}.weui-uploader__hd{display:-webkit-box;display:-webkit-flex;display:flex;padding-bottom:10px;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-uploader__title{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-uploader__info{color:#b2b2b2}.weui-uploader__bd{margin-bottom:-4px;margin-right:-9px;overflow:hidden}.weui-uploader__file{float:left;margin-right:9px;margin-bottom:9px}.weui-uploader__img{display:block;width:79px;height:79px}.weui-uploader__file_status{position:relative}.weui-uploader__file_status:before{content:" ";position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.5)}.weui-uploader__file-content{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#fff}.weui-uploader__input-box{float:left;position:relative;margin-right:9px;margin-bottom:9px;width:77px;height:77px;border:1px solid #d9d9d9}.weui-uploader__input-box:after,.weui-uploader__input-box:before{content:" ";position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:#d9d9d9}.weui-uploader__input-box:before{width:2px;height:39.5px}.weui-uploader__input-box:after{width:39.5px;height:2px}.weui-uploader__input-box:active{border-color:#999}.weui-uploader__input-box:active:after,.weui-uploader__input-box:active:before{background-color:#999}.weui-uploader__input{position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;opacity:0}.weui-article{padding:20px 15px;font-size:15px}.weui-article__section{margin-bottom:1.5em}.weui-article__h1{font-size:18px;font-weight:400;margin-bottom:.9em}.weui-article__h2{font-size:16px;font-weight:400;margin-bottom:.34em}.weui-article__h3{font-weight:400;font-size:15px;margin-bottom:.34em}.weui-article__p{margin:0 0 .8em}.weui-msg{padding-top:36px;text-align:center}.weui-msg__link{display:inline;color:#586c94}.weui-msg__icon-area{margin-bottom:30px}.weui-msg__text-area{margin-bottom:25px;padding:0 20px}.weui-msg__title{margin-bottom:5px;font-weight:400;font-size:20px}.weui-msg__desc{font-size:14px;color:#999}.weui-msg__opr-area{margin-bottom:25px}.weui-msg__extra-area{margin-bottom:15px;font-size:14px;color:#999}@media screen and (min-height:438px){.weui-msg__extra-area{position:fixed;left:0;bottom:0;width:100%;text-align:center}}.weui-flex{display:-webkit-box;display:-webkit-flex;display:flex}.weui-flex__item{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-btn{margin-top:15px}.weui-btn:first-child{margin-top:0}.weui-btn-area{margin:1.17647059em 15px .3em}.weui-agree{display:block;padding:.5em 15px;font-size:13px}.weui-agree__text{color:#999}.weui-agree__link{display:inline;color:#586c94}.weui-agree__checkbox{position:absolute;left:-9999px}.weui-agree__checkbox-icon{position:relative;top:2px;display:inline-block;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:11px;height:11px}.weui-agree__checkbox-icon-check{position:absolute;top:1px;left:1px}.weui-footer{color:#999;font-size:14px;text-align:center}.weui-footer_fixed-bottom{position:fixed;bottom:.52em;left:0;right:0}.weui-footer__links{font-size:0}.weui-footer__link{display:inline-block;vertical-align:top;margin:0 .62em;position:relative;font-size:14px;color:#586c94}.weui-footer__link:before{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1rpx solid #c7c7c7;color:#c7c7c7;left:-.65em;top:.36em;bottom:.36em}.weui-footer__link:first-child:before{display:none}.weui-footer__text{padding:0 .34em;font-size:12px}.weui-grids{border-top:1rpx solid #d9d9d9;border-left:1rpx solid #d9d9d9;overflow:hidden}.weui-grid{position:relative;float:left;padding:20px 10px;width:33.33333333%;box-sizing:border-box;border-right:1rpx solid #d9d9d9;border-bottom:1rpx solid #d9d9d9}.weui-grid_active{background-color:#ececec}.weui-grid__icon{display:block;width:28px;height:28px;margin:0 auto}.weui-grid__label{margin-top:5px;display:block;text-align:center;color:#000;font-size:14px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.weui-loading{margin:0 5px;width:20px;height:20px;display:inline-block;vertical-align:middle;-webkit-animation:a 1s steps(12) infinite;animation:a 1s steps(12) infinite;background:transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat;background-size:100%}.weui-loading.weui-loading_transparent{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect xmlns='http://www.w3.org/2000/svg' width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.56)' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.5)' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.43)' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.38)' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.32)' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.28)' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.25)' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.2)' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.17)' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.14)' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.1)' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.03)' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E")}@-webkit-keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.weui-badge{display:inline-block;padding:.15em .4em;min-width:8px;border-radius:18px;background-color:#e64340;color:#fff;line-height:1.2;text-align:center;font-size:12px;vertical-align:middle}.weui-badge_dot{padding:.4em;min-width:0}.weui-loadmore{width:65%;margin:1.5em auto;line-height:1.6em;font-size:14px;text-align:center}.weui-loadmore__tips{display:inline-block;vertical-align:middle}.weui-loadmore_line{border-top:1px solid #e5e5e5;margin-top:2.4em}.weui-loadmore__tips_in-line{position:relative;top:-.9em;padding:0 .55em;background-color:#fff;color:#999}.weui-loadmore__tips_in-dot{position:relative;padding:0 .16em;width:4px;height:1.6em}.weui-loadmore__tips_in-dot:before{content:" ";position:absolute;top:50%;left:50%;margin-top:-1px;margin-left:-2px;width:4px;height:4px;border-radius:50%;background-color:#e5e5e5}.weui-panel{background-color:#fff;margin-top:10px;position:relative;overflow:hidden}.weui-panel:first-child{margin-top:0}.weui-panel:before{top:0;border-top:1rpx solid #e5e5e5}.weui-panel:after,.weui-panel:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#e5e5e5}.weui-panel:after{bottom:0;border-bottom:1rpx solid #e5e5e5}.weui-panel__hd{padding:14px 15px 10px;color:#999;font-size:13px;position:relative}.weui-panel__hd:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1rpx solid #e5e5e5;color:#e5e5e5;left:15px}.weui-media-box{padding:15px;position:relative}.weui-media-box:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #e5e5e5;color:#e5e5e5;left:15px}.weui-media-box:first-child:before{display:none}.weui-media-box__title{font-weight:400;font-size:17px;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;word-wrap:break-word;word-break:break-all}.weui-media-box__desc{color:#999;font-size:13px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.weui-media-box__info{margin-top:15px;padding-bottom:5px;font-size:13px;color:#cecece;line-height:1em;list-style:none;overflow:hidden}.weui-media-box__info__meta{float:left;padding-right:1em}.weui-media-box__info__meta_extra{padding-left:1em;border-left:1px solid #cecece}.weui-media-box__title_in-text{margin-bottom:8px}.weui-media-box_appmsg{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-media-box__thumb{width:100%;height:100%;vertical-align:top}.weui-media-box__hd_in-appmsg{margin-right:.8em;width:60px;height:60px;line-height:60px;text-align:center}.weui-media-box__bd_in-appmsg{-webkit-box-flex:1;-webkit-flex:1;flex:1;min-width:0}.weui-media-box_small-appmsg{padding:0}.weui-cells_in-small-appmsg{margin-top:0}.weui-cells_in-small-appmsg:before{display:none}.weui-progress{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-progress__bar{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-progress__opr{margin-left:15px;font-size:0}.weui-navbar{display:-webkit-box;display:-webkit-flex;display:flex;position:absolute;z-index:500;top:0;width:100%;border-bottom:1rpx solid #ccc}.weui-navbar__item{position:relative;display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:13px 0;text-align:center;font-size:0}.weui-navbar__item.weui-bar__item_on{color:#1aad19}.weui-navbar__slider{position:absolute;content:" ";left:0;bottom:0;width:6em;height:3px;background-color:#1aad19;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.weui-navbar__title{display:inline-block;font-size:15px;max-width:8em;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.weui-tab{position:relative;height:100%}.weui-tab__panel{box-sizing:border-box;height:100%;padding-top:50px;overflow:auto;-webkit-overflow-scrolling:touch}.weui-search-bar{position:relative;padding:8px 10px;display:-webkit-box;display:-webkit-flex;display:flex;box-sizing:border-box;background-color:#efeff4;border-top:1rpx solid #d7d6dc;border-bottom:1rpx solid #d7d6dc}.weui-icon-search{margin-right:8px;font-size:inherit}.weui-icon-search_in-box{position:absolute;left:10px;top:7px}.weui-search-bar__text{display:inline-block;font-size:14px;vertical-align:middle}.weui-search-bar__form{position:relative;-webkit-box-flex:1;-webkit-flex:auto;flex:auto;border-radius:5px;background:#fff;border:1rpx solid #e6e6ea}.weui-search-bar__box{position:relative;padding-left:30px;padding-right:30px;width:100%;box-sizing:border-box;z-index:1}.weui-search-bar__input{height:28px;line-height:28px;font-size:14px}.weui-icon-clear{position:absolute;top:0;right:0;padding:7px 8px;font-size:0}.weui-search-bar__label{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;border-radius:3px;text-align:center;color:#9b9b9b;background:#fff;line-height:28px}.weui-search-bar__cancel-btn{margin-left:10px;line-height:28px;color:#09bb07;white-space:nowrap}
diff --git a/src/utils/DateUtil.js b/src/utils/DateUtil.js
new file mode 100644
index 0000000..8d4d754
--- /dev/null
+++ b/src/utils/DateUtil.js
@@ -0,0 +1,29 @@
+import wepy from 'wepy';
+import Tips from './Tips';
+
+const app = getApp();
+
+// HTTP工具类
+export default class DateUtil {
+ static test(date, formate) {
+ Date.prototype.Format = function (fmt) { //author: meizz
+ var o = {
+ 'M+': this.getMonth() + 1, //月份
+ 'd+': this.getDate(), //日
+ 'h+': this.getHours(), //小时
+ 'm+': this.getMinutes(), //分
+ 's+': this.getSeconds(), //秒
+ 'q+': Math.floor((this.getMonth() + 3) / 3), //季度
+ 'S': this.getMilliseconds() //毫秒
+ };
+ if (/(y+)/.test(fmt))
+ fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
+ for (var k in o)
+ if (new RegExp('(' + k + ')').test(fmt))
+ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
+ return fmt;
+ };
+
+ return date.Format(formate);
+ }
+}
diff --git a/src/utils/Event.js b/src/utils/Event.js
index cb2e997..6fca7d1 100644
--- a/src/utils/Event.js
+++ b/src/utils/Event.js
@@ -21,10 +21,24 @@ export default class Event {
static DELIVERY_LIST_UPDATE = 'DELIVERY_LIST_UPDATE';
// 店铺信息更新
static SHOP_INFO_UPDATE = 'SHOP_INFO_UPDATE';
+ // 积分保存成功
+ static SHOP_BONUS_UPDATE = 'SHOP_BONUS_UPDATE';
+ // 会员等级保存成功
+ static SHOP_DISCOUNT_UPDATE = 'SHOP_DISCOUNT_UPDATE';
+ // 客户管理更新
+ static SHOP_CUSTOMER_UPDATE = 'SHOP_CUSTOMER_UPDATE';
+ // 优惠类别保存成功
+ static VIP_CATEGORY_UPDATA = 'VIP_CATEGORY_UPDATA';
+ // 输入内容
+ static SHOP_CONTEXT_UPDATE = 'SHOP_CONTEXT_UPDATE';
// 配送员更新
static DELIVER_LIST_UPDATE = 'DELIVER_LIST_UPDATE';
// 优惠策略更新
static REDUCE_LIST_UPDATE = 'REDUCE_LIST_UPDATE';
+ // 客户信息与卡卷更新
+ static CUSOMTER_COUPON_UPDATE = 'CUSOMTER_COUPON_UPDATE';
+ // 用户会员卡信息更新
+ static CUSOMTER_MEMEBER_UPDATE = 'CUSOMTER_MEMEBER_UPDATE';
// 用户登出
static USER_LOGOUT = 'USER_LOGOUT';
static listen(eventName, callback, observer) {
diff --git a/src/utils/Tips.js b/src/utils/Tips.js
index 4902149..cccebd0 100644
--- a/src/utils/Tips.js
+++ b/src/utils/Tips.js
@@ -107,7 +107,7 @@ export default class Tips {
image: '/images/icons/error.png',
mask: true,
duration: 500
- })
+ });
// 隐藏结束回调
if (onHide) {
setTimeout(() => {
diff --git a/src/utils/Validate.js b/src/utils/Validate.js
index f8088de..6ffa8af 100644
--- a/src/utils/Validate.js
+++ b/src/utils/Validate.js
@@ -141,4 +141,10 @@ export default class Validate {
static optional(value) {
return !this.required(value) && 'dependency-mismatch'
}
+ /**
+ * 判断升级条件
+ */
+ static upgradeFee(value, param) {
+ return (param - value) > 0 || param == null;
+ }
}
diff --git a/wepy.config.js b/wepy.config.js
index 6b5f215..0eb8392 100644
--- a/wepy.config.js
+++ b/wepy.config.js
@@ -1,4 +1,4 @@
-const prod = process.env.NODE_ENV === 'production'
+const prod = process.env.NODE_ENV === 'production';
module.exports = {
wpyExt: '.wpy',
@@ -7,10 +7,13 @@ module.exports = {
}
},
eslint: true,
+ 'autoprefixer': {
+ filter: /\.(wxss|css)$/,
+ config: {
+ browsers: ['last 11 iOS versions']
+ }
+ },
compilers: {
- less: {
- compress: true
- },
sass: {
outputStyle: 'expanded'
},
@@ -29,15 +32,12 @@ module.exports = {
},
plugins: {
}
-}
+};
if (prod) {
delete module.exports.compilers.babel.sourcesMap;
// 压缩sass
- module.exports.compilers['sass'] = {outputStyle: 'compressed'}
-
- // 压缩less
- module.exports.compilers['less'] = {compress: true}
+ module.exports.compilers['sass'] = {outputStyle: 'compressed'};
// 压缩js
module.exports.plugins = {