diff --git a/view/crmebNewUI/app.js b/view/crmebNewUI/app.js
new file mode 100644
index 00000000..69a6e2cc
--- /dev/null
+++ b/view/crmebNewUI/app.js
@@ -0,0 +1,118 @@
+//app.js
+
+//请配置请求url
+//请修改开发者工具中【详情】->【AppID】改为自己的Appid
+//请前往后台【小程序】->【小程序配置】填写自己的 appId and AppSecret
+//请不要修改globalData中的其他配置,如自行开发可不用理会这句话
+//配置完以上就可以访问小程序啦
+const URL ='http://datong.crmeb.net';
+
+const util = require('utils/util.js');
+
+App({
+ onLaunch: function (option) {
+ if (URL==''){
+ console.error("请配置请求url\n请修改开发者工具中【详情】->【AppID】改为自己的Appid\n请前往后台【小程序】->【小程序配置】填写自己的 appId and AppSecret");
+ return false;
+ }
+ if (option.query.hasOwnProperty('scene') && option.scene == 1047) this.globalData.code = option.query.scene;
+ if (option.query.hasOwnProperty('scene') && option.scene == 1001) this.globalData.spid = option.query.scene;
+ this.getMyMenus();
+ // 展示本地存储能力
+ var logs = wx.getStorageSync('logs') || [],that=this;
+ logs.unshift(Date.now())
+ wx.setStorageSync('logs', logs);
+ // 获取导航高度;
+ wx.getSystemInfo({
+ success: res => {
+ //导航高度
+ this.globalData.navHeight = res.statusBarHeight * (750 / res.windowWidth) + 97;
+ }, fail(err) {
+ console.log(err);
+ }
+ })
+ },
+ globalData: {
+ navHeight: 0,
+ routineStyle: '#ffffff',
+ openPages: '',
+ spid: 0,
+ code:0,
+ urlImages: '',
+ url: URL,
+ token: '',
+ isLog:false,
+ MyMenus:[],
+ header: {
+ 'content-type': 'application/json',
+ 'token': ''
+ }
+ },
+ /**
+ *
+ * 获取个人中心图标
+ */
+ getMyMenus: function () {
+ var that = this;
+ if (that.globalData.MyMenus.legnth) return;
+ that.baseGet(that.U({ c: 'public_api', a: 'get_my_naviga'},that.globalData.url), function (res) {
+ that.globalData.MyMenus = res.data.routine_my_menus;
+ });
+ },
+ /*
+ * POST 访问快捷方法
+ * @param string | object url 访问地址
+ * @param callable successCallback 成功执行函数
+ * @param callable errorCallback 失败执行函数
+ * @param object header 访问header头
+ */
+ basePost: function (url, data, successCallback, errorCallback, header) {
+ if (header == undefined) header = this.globalData.header;
+ header['token'] = this.globalData.token;
+ util.basePost(url, data, successCallback, errorCallback,header);
+ },
+ /*
+ * GET 访问快捷方法
+ * @param string | object url 访问地址
+ * @param callable successCallback 成功执行函数
+ * @param callable errorCallback 失败执行函数
+ * @param isMsg 错误信息提醒 默认提醒
+ * @param object header 访问header头
+ */
+ baseGet: function (url, successCallback, errorCallback, isMsg, header) {
+ if (header == undefined) header = this.globalData.header;
+ header['token'] = this.globalData.token;
+ util.baseGet(url, successCallback, errorCallback, isMsg,header);
+ },
+ /*
+ * 信息提示 + 跳转
+ * @param object opt {title:'提示语',icon:''} | url
+ * @param object to_url 跳转url 有5种跳转方式 {tab:1-5,url:跳转地址}
+ */
+ Tips: function (opt, to_url) {
+ return util.Tips(opt, to_url);
+ },
+ /*
+ * 访问Url拼接
+ * @param object opt {c:'控制器',a:'方法',q:{get参数},p:{parma参数}}
+ * @param url 接口访问地址
+ * @return string
+ */
+ U: function (opt,url){
+ return util.U(opt,url);
+ },
+ /**
+ * 快捷调取助手函数
+ */
+ help:function()
+ {
+ return util.$h;
+ },
+ /*
+ * 合并数组
+ * @param array list 请求返回数据
+ * @param array sp 原始数组
+ * @return array
+ */
+ SplitArray: function (list, sp) { return util.SplitArray(list, sp)},
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/app.json b/view/crmebNewUI/app.json
new file mode 100644
index 00000000..72b2c5ab
--- /dev/null
+++ b/view/crmebNewUI/app.json
@@ -0,0 +1,111 @@
+{
+ "pages": [
+ "pages/index/index",
+ "pages/goods_cate/goods_cate",
+ "pages/quality-recommend/index",
+ "pages/order_details/index",
+ "pages/user_sgin/index",
+ "pages/user/user",
+ "pages/user_get_coupon/index",
+ "pages/order_confirm/index",
+ "pages/goods_list/goods_list",
+ "pages/user_coupon/index",
+ "pages/goods_comment_list/index",
+ "pages/user_goods_collection/index",
+ "pages/user_address_list/index",
+ "pages/news_list/index",
+ "pages/goods_search/index",
+ "pages/user_vip/index",
+ "pages/user_spread_money/index",
+ "pages/user_integral/index",
+ "pages/user_bill/index",
+ "pages/user_money/index",
+ "pages/user_spread_user/index",
+ "pages/user_sgin_list/index",
+ "pages/order_list/index",
+ "pages/goods_details/index",
+ "pages/news_details/index",
+ "pages/promoter-list/index",
+ "pages/promoter-order/index",
+ "pages/cash-audit/index",
+ "pages/user_cash/index",
+ "pages/user_return_list/index",
+ "pages/user_goods_return/index",
+ "pages/goods_return/index",
+ "pages/goods_comment_con/index",
+ "pages/promotional-items/index",
+ "pages/first-new-product/index",
+ "pages/user_spread_code/index",
+ "pages/cut-poster/index",
+ "pages/user_info/index",
+ "pages/order_pay_status/index",
+ "pages/goods_logistics/index",
+ "pages/user_address/index",
+ "pages/order_addcart/order_addcart",
+ "pages/logs/logs",
+ "pages/user_payment/index",
+ "components/navbar/index",
+ "components/recommend/index",
+ "components/share-red-packets/index",
+ "components/orderGoods/index",
+ "components/swipers/index",
+ "components/goodList/index",
+ "components/promotionGood/index",
+ "components/productConSwiper/index",
+ "components/userEvaluation/index",
+ "components/coupon-window/index",
+ "components/product-window/index",
+ "components/coupon-list-window/index",
+ "components/address-window/index",
+ "components/home/index"
+ ],
+ "subPackages": [
+ {
+ "root": "pages/activity",
+ "name": "activity",
+ "pages": [
+ "goods_seckill_details/index",
+ "goods_seckill/index"
+ ]
+ }
+ ],
+ "window": {
+ "backgroundTextStyle": "dark",
+ "navigationBarBackgroundColor": "#fff",
+ "navigationBarTitleText": "WeChat",
+ "navigationBarTextStyle": "black",
+ "navigationStyle": "custom"
+ },
+ "tabBar": {
+ "backgroundColor": "#ffffff",
+ "color": "#282828",
+ "selectedColor": "#e93323",
+ "list": [
+ {
+ "pagePath": "pages/index/index",
+ "iconPath": "images/1-001.png",
+ "selectedIconPath": "images/1-002.png",
+ "text": "首页"
+ },
+ {
+ "pagePath": "pages/goods_cate/goods_cate",
+ "iconPath": "images/2-001.png",
+ "selectedIconPath": "images/2-002.png",
+ "text": "分类"
+ },
+ {
+ "pagePath": "pages/order_addcart/order_addcart",
+ "iconPath": "images/3-001.png",
+ "selectedIconPath": "images/3-002.png",
+ "text": "购物车"
+ },
+ {
+ "pagePath": "pages/user/user",
+ "iconPath": "images/4-001.png",
+ "selectedIconPath": "images/4-002.png",
+ "text": "我的"
+ }
+ ]
+ },
+ "sitemapLocation": "sitemap.json"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/app.wxss b/view/crmebNewUI/app.wxss
new file mode 100644
index 00000000..117a9c1f
--- /dev/null
+++ b/view/crmebNewUI/app.wxss
@@ -0,0 +1,68 @@
+/**app.wxss**/
+@import '/font/iconfont.wxss';
+@import '/css/style.wxss';
+@import '/css/animate.wxss';
+.start{width: 122rpx; height: 30rpx;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHoAAADMCAYAAAC8yreMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpDMDg0NEE2QTVFNUQxMUU4QUI3RkNGOTgwNDYyRUZDOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozODU5QzVENDMwRjcxMUU5OTQ0QzlEOTQ5RkE1MTlBRiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozODU5QzVEMzMwRjcxMUU5OTQ0QzlEOTQ5RkE1MTlBRiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpkN2ZhZTM5NC0wNmE4LTkzNGYtODA0OS0zNjBjNTcxOTU2YjAiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmYWI1M2NhMC04MWE1LTE5NGItYmJlYi1jMzI2MjIwNmNhOTYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4ctYL1AAAHsElEQVR42uycS4gcVRiFq5Mm4yuKihoVlKg7IVlkI4oGFV9R4wPSJChBMW5ECYooKuIbEReCBBGJEDS+BkVJYEIMJgvJIossFATxCW58boRJEDEZz83cDk3TXc/7T9Xt+g783O7p6tP/9Km6dbvp+jpzc3MJmnwt4i0gaETQiKBRM+UWY8OVpt9XXXySakcZ34Xwp/fR3mWO6LWqW/Wilxnte5b+re29TNB3+fEeozfL0r+1vXdGTRmdTmfc9HGGG1Rd1d+qZecc/PGfcVPI2Bc19Kf3uSBHdM+/mNNpqtsD77WW/q3uvTtmDzpPw9kDxm5XW6q6b2jTB7XtrEZXc35vc/rNV7LQ/vQ+2rs75v/Zproux45yhWrniL/vUq1JeZ6lP70XmLpvVr1SYoo5qnrBrQ4ztrP0p/eiizFND9dreHdgOknTr25lqEXCvrwLGgt/ei+xGNOTP9ewUrUn48XclLGi/2J5ZelP7wVX3TJxJ/f3Mjbbpu3+KrOctPSn9+Ifr9ZWfLxOf3rPE7TOF1Mabhg68e/yy/q+1mi7bpn/xNKf3osd0deqTva3f1ZdpenCLeFXq37wfz9ddWXJvdbSn94LBH2bH9/2J/79/hzypV8wvD60XVFZ+tN7xhcmgzrRnQv0AjtHLBgOa9is6eOzCm+WpT+9p32ORpMnfmFC0IigEUEjgkYEjQgaETQiaETQBI0IGhE0ImhE0IigEUGj8oIaEEfvTtPT0ytVF5bxh3gQl/9TqkcWauqGeFCDv47kM5P5y2PP1+0lpkH7K+9v9HfX6/4JIf8ZS/+Ye/dap/pI5U4Nt1gf0RAP6vO/WrVX9YnqjqJPhnjQoN5Tpu0LNPzS6/XcZTmHdH9WdZbu/1kp6ARqQC29Kzw39d+rOqL6V7XY33Y/5n9pYNOtqpdd4BqX+G3dNqck81dgzuQN2l15766gf7zgDHHUN/RcxnaW/jH3fkC1QbVbR+v7Y88Rvd5BDZsGdhA3qzykWqXaP+o5EA8a2LuCe0DDparHFOqhHKvxLaovtO3Wcf4QDxrYuwJ7Q8Nbqu0KckVKyO5Kyu2qF/shl151Qw2ox1/BfaXhbtVrKZs9r7pT234T6uMV1IB6/N3F8N+mPP6dX7BV/xwNNaA+f786n+kvuFT3qzYMPL5n4Euaykc01ID6/N3HuL0K91yNH/odaKnuu3P3Mt1264SbQgUNNaAGfwU55fNxX3e+qXrCLbhUbpH2tF9pO4Dcqdp2cYig+1feb1LNDi1GDqs26+Y1Fc5Dlv4x977azwSX+AXXTwMLNTd7rPOzhfti5vIsM4gHDdIgxllH6XJ3tPrVd9qRf5GGWW33R/9vI78bIeh2iJ8SETQiaETQiKARQSOCRgSNCBoRNEEjgkYEjQgaETQiaETQiKARQSMnYDXheneqApSx9AZWE16lgTKW3sBqAqoqUMbSG1hNWFUCylh6A6sJq0pAGUtvYDUBYDJ+aq0MlLH0BlZTsHdLoAywmmL+1r2bAWUSYDX5/ReqdwugjKl32gv6N8xdcP1OxnTopruNg6yOPG+Whf9C9u6+wNDwrOoZvclfjwnCXfr6pOrRQdZI1vse2htYTYXeQwNlLL2B1VTvPRhQxtIbWE01mEySBATKWHoDq6nWe5IEBMpYegOrqdB7aKCMpTewmmq9BwXKWHrDMCkoU6AMsBpUVfyUiKARQSOCRgSNCBoRNCJoRNCIoAkaETQiaETQiKARQSOCRgSNMtQmholTFQ4IDJOwsva3ZIxY+8MwySNLxoi1PwyTYrJkjFj7wzApIEvGiLU/DJOcU58ZY8TaH4bJ6DfFjANi7Q/DpJi/JWPE2h+GSVKQYWLBAbH2h2FSkmESmgNi7Q/DpKS/JWPE2h+GSXFZMkas/YN5Z7I7xnBAdvsvNvpzzTEOiI66/0p8SWLqnwxxQPwixl1P/IF/vM8B+bhkGJb+wbwnnWGSJLaMEWt/GCY5v2gwY4xY+8MwKSZLxoi1PwyT1H/IkANi7Q/DBFUWPyUiaETQiKARQSOCRgSNCBoRNCJogkYEjQgaETQiaETQiKARQaMMNY1h4tRUDggMk/BqJAck5t4bxzBpMgck5t4bxTDxaiwHJObem8YwcWosByTm3mthmKRMT43mgMTcey0Mk1g5IDH3XhfDJEoOSMy918owiY0DEnPvtTNMYuKAxNx77QyTmDggMffeFIZJFByQmHuvnWHSf34SAQck5t6bwDBJkkg4IDH3XjvDJCYOSMy9N4FhEg0HJObeR56jh5bnGxM/Z6TIfXbeVxKS8b2bDcaxOvR3Z7tFe+2M/6q1Kd5R9Q7DpCXip0QEjQgaETQiaETQiKARQSOCRgRN0IigEUEjgkYEjQgamQhqQDt6L3tEt5IaEHPvhYNuMzUg5t7LHNGtpQbE3HuZoFtLDYi590UFp4/jV977yzmPXXkfcHoy8297790xxlADWkI8gBowYb13oAZAPDj+IT2BGhB975mLMagBk9F73lU31IDIe+/mfEGoAZH3nveIhhoQee95FmNT/nPbDn/OeLh/UbYeW67hVdWnyTwXdL0eO1JwQRPUn95LLsYSqAET0XueczTUgAnoHeJBS8RPiQgaETQiaNRM/S/AAOykxVBJG5QXAAAAAElFTkSuQmCC');background-repeat: no-repeat; background-size: 122rpx auto;}
+.start.star5{background-position: 0 3rpx;}
+.start.star4{background-position: 0 -30rpx;}
+.start.star3{background-position: 0 -70rpx;}
+.start.star2{background-position: 0 -105rpx;}
+.start.star1{background-position: 0 -140rpx;}
+.start.star0{background-position: 0 -175rpx;}
+page{font-size:28rpx;background-color: #f5f5f5; color: #333;}
+view{box-sizing:border-box;}
+.acea-row{display:flex;flex-wrap:wrap;}
+.acea-row.row-top{align-items:flex-start;}
+.acea-row.row-middle{align-items:center;}
+.acea-row.row-bottom{align-items:flex-end;}
+.acea-row.row-left{justify-content:flex-start;}
+.acea-row.row-center{justify-content:center;}
+.acea-row.row-right{justify-content:flex-end;}
+.acea-row.row-between{justify-content:space-between;}
+.acea-row.row-around{justify-content:space-around;}
+.acea-row.row-column{flex-direction:column;}
+.acea-row.row-column-between{flex-direction:column;justify-content:space-between;}
+.acea-row.row-column-around{flex-direction:column;justify-content:space-around;}
+.acea-row.row-center-wrapper{align-items:center;justify-content:center;}
+.acea-row.row-between-wrapper{align-items:center;justify-content:space-between;}
+.font-color{color:#fc4141!important;}
+.bg-color{background-color:#e93323!important;}
+.icon-color{color:#ff3c2b;}
+.cart-color{color:#ff3700!important;border:1px solid #ff3700!important;}
+/* 单选 */
+radio .wx-radio-input{border-radius:50%;width:38rpx;height:38rpx;}
+radio .wx-radio-input.wx-radio-input-checked{border: 1px solid #e93323 !important;
+background-color: #e93323 !important;}
+/* 多选 */
+checkbox .wx-checkbox-input{border-radius:50%;width:38rpx;height:38rpx;}
+checkbox .wx-checkbox-input.wx-checkbox-input-checked{
+border: 1px solid #e93323 !important;background-color: #e93323 !important;color:#fff!important;}
+checkbox .wx-checkbox-input.wx-checkbox-input-checked::before {font-size:35rpx;}
+.line1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
+.line2{word-break:break-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
+.mask{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000;opacity:0.5;z-index:5;}
+button{padding:0;margin:0;line-height:normal;background-color:#fff;}
+button::after{border:0;}
+@keyframes load
+ {
+ from {transform: rotate(0deg);}
+ to {transform: rotate(360deg);}
+ }
+.loadingpic {
+ animation: load 3s linear 1s infinite;
+}
+ .loading-list {
+ animation: load linear 1s infinite;
+ font-size:40rpx;margin-right:22rpx;
+}
+.loading{width:100%;height:100rpx;line-height:100rpx;align-items:center;justify-content:center;position: relative;text-align:center;}
+.loading .line{position: absolute;width: 450rpx;left: 150rpx;top: 50rpx;height: 1px;border-top:1px solid #eee ;}
+.loading .text{position: relative;display: inline-block;padding: 0 20rpx;background: #fff;z-index: 2;color: #777;}
+
+.loadingicon .loading {animation: load linear 1s infinite;font-size:45rpx;color:#000;}
+.loadingicon{width:100%;height:80rpx;}
+
+
+
+
+
diff --git a/view/crmebNewUI/components/address-window/index.js b/view/crmebNewUI/components/address-window/index.js
new file mode 100644
index 00000000..c69fb090
--- /dev/null
+++ b/view/crmebNewUI/components/address-window/index.js
@@ -0,0 +1,55 @@
+var app = getApp();
+Component({
+ properties: {
+ //跳转url链接
+ pagesUrl:{
+ type:String,
+ value:'',
+ },
+ address:{
+ type: Object,
+ value:{
+ address:true,
+ addressId:0,
+ }
+ },
+ isLog:{
+ type:Boolean,
+ value:false,
+ },
+ },
+ data: {
+ active: 0,
+ //地址列表
+ addressList:[],
+ },
+ attached: function () {
+
+ },
+ methods: {
+ tapAddress: function (e) {
+ this.setData({ active: e.currentTarget.dataset.id });
+ this.triggerEvent('OnChangeAddress', e.currentTarget.dataset.addressid);
+ },
+ close: function () {
+ this.setData({ 'address.address': false });
+ this.triggerEvent('changeTextareaStatus');
+ },
+ goAddressPages:function(){
+ this.setData({ 'address.address': false });
+ this.triggerEvent('changeTextareaStatus');
+ wx.navigateTo({url: this.data.pagesUrl});
+ },
+ getAddressList:function(){
+ var that=this;
+ app.baseGet(app.U({ c: "user_api", a:'user_address_list'}),function(res){
+ var addressList=res.data;
+ //处理默认选中项
+ for (var i = 0, leng = addressList.length; i < leng;i++){
+ if (addressList[i].id == that.data.address.addressId) that.setData({ active:i});
+ }
+ that.setData({ addressList: addressList});
+ });
+ }
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/address-window/index.json b/view/crmebNewUI/components/address-window/index.json
new file mode 100644
index 00000000..4575d1b8
--- /dev/null
+++ b/view/crmebNewUI/components/address-window/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "component": true
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/address-window/index.wxml b/view/crmebNewUI/components/address-window/index.wxml
new file mode 100644
index 00000000..6c66034b
--- /dev/null
+++ b/view/crmebNewUI/components/address-window/index.wxml
@@ -0,0 +1,17 @@
+
+ 选择地址
+
+
+
+
+ {{item.real_name}}{{item.phone}}
+ {{item.province}}{{item.city}}{{item.district}}{{item.detail}}
+
+
+
+
+
+
+ 选择其他地址
+
+
diff --git a/view/crmebNewUI/components/address-window/index.wxss b/view/crmebNewUI/components/address-window/index.wxss
new file mode 100644
index 00000000..2f825d0d
--- /dev/null
+++ b/view/crmebNewUI/components/address-window/index.wxss
@@ -0,0 +1,15 @@
+@import '/app.wxss';
+.address-window{background-color:#fff;position:fixed;bottom:0;left:0;width:100%;z-index:101;transform:translate3d(0,100%,0);transition:all .3s cubic-bezier(.25,.5,.5,.9);}
+.address-window.on{transform:translate3d(0,0,0);}
+.address-window .title{font-size:32rpx;font-weight:bold;text-align:center;height:123rpx;line-height:123rpx;position:relative;}
+.address-window .title .iconfont{position:absolute;right:30rpx;color:#8a8a8a;font-size:35rpx;}
+.address-window .list .item{margin-left:30rpx;padding-right:30rpx;border-bottom:1px solid #eee;height:129rpx;font-size:25rpx;color:#333;}
+.address-window .list .item .iconfont{font-size:37rpx;color:#2c2c2c;}
+.address-window .list .item .iconfont.icon-complete{font-size:30rpx;color:#fff;}
+.address-window .list .item .address{width:560rpx;}
+.address-window .list .item .address .name{font-size:28rpx;font-weight:bold;color:#282828;margin-bottom:4rpx;}
+.address-window .list .item .address .name .phone{margin-left:18rpx;}
+.address-window .addressBnt{font-size:30rpx;font-weight:bold;color:#fff;width:690rpx;height:86rpx;border-radius:43rpx;text-align:center;line-height:86rpx;margin:85rpx auto;}
+.address-window .pictrue{width:414rpx;height:336rpx;margin:0 auto;}
+.address-window .pictrue image{width:100%;height:100%;}
+
diff --git a/view/crmebNewUI/components/authorize/authorize.js b/view/crmebNewUI/components/authorize/authorize.js
new file mode 100644
index 00000000..5847c628
--- /dev/null
+++ b/view/crmebNewUI/components/authorize/authorize.js
@@ -0,0 +1,241 @@
+var app = getApp();
+Component({
+ properties: {
+ iShidden: {
+ type: Boolean,
+ value: true,
+ },
+ //是否自动登录
+ isAuto: {
+ type: Boolean,
+ value: true,
+ },
+ },
+ data: {
+ cloneIner: null,
+ url: app.globalData.url,
+ loading:false,
+ },
+ pageLifetimes: {
+ hide: function () {
+ //关闭页面时销毁定时器
+ if (this.data.cloneIner) clearInterval(this.data.cloneIner);
+ },
+ show: function () {
+ //打开页面销毁定时器
+ if (this.data.cloneIner) clearInterval(this.data.cloneIner);
+ },
+ },
+ detached() {
+ if (this.data.cloneIner) clearInterval(this.data.cloneIner);
+ },
+ attached() {
+ this.get_logo_url();
+ this.setAuthStatus();
+ },
+ methods: {
+ get_logo_url: function () {
+ if (wx.getStorageSync('logo_url')) return this.setData({ logo_url: wx.getStorageSync('logo_url') });
+ app.baseGet(app.U({ c: 'public_api', a: 'get_logo_url' }), function (res) {
+ wx.setStorageSync('logo_url', res.data.logo_url);
+ this.setData({ logo_url: res.data.logo_url });
+ }.bind(this));
+ },
+ //监听登录状态
+ WatchIsLogin: function () {
+ this.data.cloneIner = setInterval(function () {
+ //防止死循环,超过错误次数终止监听
+ if (this.getErrorCount()) return clearInterval(this.data.cloneIner);
+ if (app.globalData.token == '' && this.data.loading===false) this.setAuthStatus();
+ }.bind(this),800);
+ this.setData({ cloneIner: this.data.cloneIner });
+ },
+ //检测登录状态并执行自动登录
+ setAuthStatus() {
+ var that = this;
+ that.setErrorCount();
+ wx.getSetting({
+ success(res) {
+ if (!res.authSetting['scope.userInfo']) {
+ //没有授权不会自动弹出登录框
+ if (that.data.isAuto === false) return;
+ //自动弹出授权
+ that.setData({ iShidden: false });
+ } else {
+ //自动登录
+ that.setData({ iShidden: true });
+ if (app.globalData.token) {
+ that.triggerEvent('onLoadFun', app.globalData.token);
+ that.WatchIsLogin();
+ } else {
+ wx.showLoading({ title: '正在登录中' });
+ that.getUserInfoBydecryptCode();
+ }
+ }
+ }
+ })
+ },
+ //访问服务器获得cache_key
+ setCode(code, successFn, errotFn) {
+ var that = this;
+ that.setData({ loading: true });
+ app.basePost(app.U({ c: 'Login', a: 'setCode' }), { code: code }, function (res) {
+ that.setData({ loading: false });
+ wx.setStorage({ key: 'cache_key', data: res.data.cache_key});
+ successFn && successFn(res);
+ }, function (res) {
+ that.setData({ loading: false });
+ if (errotFn) errotFn(res);
+ else return app.Tips({ title: '获取cache_key失败' });
+ });
+ },
+ //获取code
+ getSessionKey(code, successFn, errotFn) {
+ var that = this;
+ wx.checkSession({
+ success: function (res) {
+ wx.getStorage({
+ key:'cache_key',
+ success:function(res){
+ if (res.data){
+ successFn && successFn();
+ }else{
+ that.setCode(code, successFn, errotFn);
+ }
+ },
+ fail(res){
+ that.setCode(code, successFn, errotFn);
+ },
+ });
+ },
+ fail: function () {
+ that.setCode(code, successFn, errotFn);
+ }
+ });
+ },
+ login:function(){
+ var that=this;
+ wx.login({
+ success: function (res) {
+ if (!res.code) return app.Tips({ title: '登录失败!' + res.errMsg });
+ //获取cache_key并缓存
+ that.getSessionKey(res.code, function () {
+ that.getUserInfoBydecryptCode();
+ });
+ },
+ fail() {
+ wx.hideLoading();
+ }
+ })
+ },
+ //授权
+ setUserInfo(e) {
+ wx.showLoading({ title: '正在登录中' });
+ this.login();
+ },
+ close: function () {
+ if (this.data.isAuto) return;
+ this.setData({ iShidden: true });
+ },
+ //登录获取访问权限
+ getUserInfoBydecryptCode: function () {
+ var that = this;
+ if (this.getErrorCount()){
+ this.setData({ iShidden: false, ErrorCount: 0 });
+ return app.Tips({ title: '获取code失败,请重新授权尝试获取!' });
+ }
+ wx.getStorage({
+ key:'cache_key',
+ success:function(res){
+ if(res.data){
+ var cache_key = res.data;
+ wx.getUserInfo({
+ lang: 'zh_CN',
+ success: function (res) {
+ var pdata = {};
+ pdata.spid = app.globalData.spid;//获取推广人ID
+ pdata.code = app.globalData.code;//获取推广人分享二维码ID
+ if (res.iv) {
+ pdata.iv = encodeURI(res.iv);
+ pdata.encryptedData = res.encryptedData;
+ pdata.cache_key = cache_key;
+ //获取用户信息生成访问token
+ that.setData({ loading: true });
+ app.basePost(app.U({ c: 'login', a: 'index' }), pdata, function (res) {
+ that.setData({ loading: false });
+ if (res.data.status == 0) return app.Tips({ title: '抱歉,您已被禁止登录!' });
+ else if (res.data.status == 410) {
+ wx.clearStorage();
+ wx.hideLoading();
+ that.setErrorCount();
+ that.login();
+ return false;
+ }
+ //取消登录提示
+ wx.hideLoading();
+ //关闭登录弹出窗口
+ that.setData({ iShidden: true, ErrorCount: 0 });
+ //保存token和记录登录状态
+ app.globalData.token = res.data.token;
+ app.globalData.isLog = true;
+ //执行登录完成回调
+ that.triggerEvent('onLoadFun', app.globalData.uid);
+ //清除定时器
+ if (that.data.cloneIner) clearInterval(that.data.cloneIner);
+ //监听登录状态
+ that.WatchIsLogin();
+ }, function (res) {
+ that.setData({ loading: false });
+ wx.hideLoading();
+ that.setErrorCount();
+ wx.clearStorage();
+ return app.Tips({ title: res.msg });
+ });
+ } else {
+ wx.hideLoading();
+ wx.clearStorage();
+ that.setErrorCount();
+ return app.Tips({ title: '用户信息获取失败!' });
+ }
+ },
+ fail: function () {
+ wx.hideLoading();
+ wx.clearStorage();
+ that.setErrorCount();
+ if (that.data.isAuto) that.login();
+ },
+ })
+ }else{
+ wx.hideLoading();
+ wx.clearStorage();
+ that.setErrorCount();
+ if (that.data.isAuto) that.login();
+ return false;
+ }
+ },
+ fail:function(){
+ wx.hideLoading();
+ wx.clearStorage();
+ that.setErrorCount();
+ if (that.data.isAuto) that.login();
+ }
+ })
+ },
+ /**
+ * 处理错误次数,防止死循环
+ *
+ */
+ setErrorCount: function () {
+ if (!this.data.ErrorCount) this.data.ErrorCount = 1;
+ else this.data.ErrorCount++;
+ this.setData({ ErrorCount: this.data.ErrorCount });
+ },
+ /**
+ * 获取错误次数,是否终止监听
+ *
+ */
+ getErrorCount: function () {
+ return this.data.ErrorCount >= 10 ? true : false;
+ }
+ },
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/authorize/authorize.json b/view/crmebNewUI/components/authorize/authorize.json
new file mode 100644
index 00000000..b5ecd1b5
--- /dev/null
+++ b/view/crmebNewUI/components/authorize/authorize.json
@@ -0,0 +1,3 @@
+{
+ "component":true
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/authorize/authorize.wxml b/view/crmebNewUI/components/authorize/authorize.wxml
new file mode 100644
index 00000000..534f0086
--- /dev/null
+++ b/view/crmebNewUI/components/authorize/authorize.wxml
@@ -0,0 +1,10 @@
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/components/authorize/authorize.wxss b/view/crmebNewUI/components/authorize/authorize.wxss
new file mode 100644
index 00000000..27fa4a7d
--- /dev/null
+++ b/view/crmebNewUI/components/authorize/authorize.wxss
@@ -0,0 +1,11 @@
+/* pages/authorize/authorize.wxss */
+@import "../../app.wxss";
+
+.Popup{width:500rpx;background-color:#fff;position:fixed;top:50%;left:50%;margin-left:-250rpx;transform:translateY(-50%);z-index:320;}
+.Popup image{width:150rpx;height:150rpx;margin:-67rpx auto 0 auto;display:block;border: 8rpx solid #fff;border-radius: 50%}
+.Popup .title{font-size:28rpx;color:#000;text-align:center;margin-top: 30rpx}
+.Popup .tip{font-size:22rpx;color:#555;padding:0 24rpx;margin-top:25rpx;}
+.Popup .bottom .item{width:50%;height:80rpx;background-color:#eeeeee;text-align:center;line-height:80rpx;font-size:24rpx;color:#666;margin-top:54rpx;}
+.Popup .bottom .item.on{width: 100%}
+.Popup .bottom .item.grant{font-size:28rpx;color:#fff;font-weight:bold;background-color:#e93323;border-radius:0;padding:0;}
+.mask{position:fixed;top:0;right:0;left:0;bottom:0;background-color:rgba(0,0,0,0.65);z-index:310;}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/coupon-list-window/index.js b/view/crmebNewUI/components/coupon-list-window/index.js
new file mode 100644
index 00000000..33f3877a
--- /dev/null
+++ b/view/crmebNewUI/components/coupon-list-window/index.js
@@ -0,0 +1,49 @@
+var app = getApp();
+Component({
+ properties: {
+ coupon: {
+ type: Object,
+ value:{
+ list:[],
+ statusTile:''
+ },
+ },
+ //打开状态 0=领取优惠券,1=使用优惠券
+ openType:{
+ type:Number,
+ value:0,
+ }
+ },
+ data: {
+ },
+ attached: function () {
+ },
+ methods: {
+ close: function () {
+ this.triggerEvent('ChangCouponsClone');
+ },
+ getCouponUser:function(e){
+ var that = this;
+ var id = e.currentTarget.dataset.id;
+ var index = e.currentTarget.dataset.index;
+ var list = that.data.coupon.list;
+ if (list[index].is_use == true && this.data.openType==0) return true;
+ switch (this.data.openType){
+ case 0:
+ //领取优惠券
+ app.basePost(app.U({ c: 'coupons_api', a: 'user_get_coupon' }), { couponId:id},function(res){
+ list[index].is_use=true;
+ that.setData({
+ ['coupon.list']: list
+ });
+ app.Tips({ title: '领取成功' });
+ that.triggerEvent('ChangCoupons',list[index]);
+ });
+ break;
+ case 1:
+ that.triggerEvent('ChangCoupons',index);
+ break;
+ }
+ },
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/coupon-list-window/index.json b/view/crmebNewUI/components/coupon-list-window/index.json
new file mode 100644
index 00000000..4575d1b8
--- /dev/null
+++ b/view/crmebNewUI/components/coupon-list-window/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "component": true
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/coupon-list-window/index.wxml b/view/crmebNewUI/components/coupon-list-window/index.wxml
new file mode 100644
index 00000000..aa6ddcc3
--- /dev/null
+++ b/view/crmebNewUI/components/coupon-list-window/index.wxml
@@ -0,0 +1,20 @@
+
+ 优惠券
+
+
+ ¥{{item.coupon_price}}
+
+ 购物满{{item.use_min_price}}元可用
+
+ {{item.add_time}}-{{item.end_time}}
+ {{item.use_title || '已领取'}}
+ {{coupon.statusTile || '立即领取'}}
+
+
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/components/coupon-list-window/index.wxss b/view/crmebNewUI/components/coupon-list-window/index.wxss
new file mode 100644
index 00000000..fde2e7f7
--- /dev/null
+++ b/view/crmebNewUI/components/coupon-list-window/index.wxss
@@ -0,0 +1,8 @@
+@import '/app.wxss';
+.coupon-list-window{position:fixed;bottom:0;left:0;width:100%;background-color:#f5f5f5;border-radius:16rpx 16rpx 0 0;z-index:111;transform:translate3d(0,100%,0);transition:all .3s cubic-bezier(.25,.5,.5,.9);z-index: 1000}
+.coupon-list-window.on{transform:translate3d(0,0,0);}
+.coupon-list-window .title{height:124rpx;width:100%;text-align:center;line-height:124rpx;font-size:32rpx;font-weight:bold;position:relative;}
+.coupon-list-window .title .iconfont{position:absolute;right:30rpx;top:50%;transform:translateY(-50%);font-size:35rpx;color:#8a8a8a;font-weight:normal;}
+.coupon-list-window .coupon-list{margin:0 0 50rpx 0;height:550rpx;overflow:auto;}
+.coupon-list-window .pictrue{width:414rpx;height:336rpx;margin:0 auto 50rpx auto;}
+.coupon-list-window .pictrue image{width:100%;height:100%;}
diff --git a/view/crmebNewUI/components/coupon-window/index.js b/view/crmebNewUI/components/coupon-window/index.js
new file mode 100644
index 00000000..be25cd2a
--- /dev/null
+++ b/view/crmebNewUI/components/coupon-window/index.js
@@ -0,0 +1,24 @@
+var app = getApp();
+Component({
+ properties: {
+ window:{
+ type: Boolean,
+ value: true,
+ },
+ couponList:{
+ type:Array,
+ value:[],
+ }
+ },
+ data: {
+
+ },
+ attached: function () {
+
+ },
+ methods: {
+ close:function(){
+ this.triggerEvent('onColse');
+ }
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/coupon-window/index.json b/view/crmebNewUI/components/coupon-window/index.json
new file mode 100644
index 00000000..8835af06
--- /dev/null
+++ b/view/crmebNewUI/components/coupon-window/index.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/coupon-window/index.wxml b/view/crmebNewUI/components/coupon-window/index.wxml
new file mode 100644
index 00000000..322d72b8
--- /dev/null
+++ b/view/crmebNewUI/components/coupon-window/index.wxml
@@ -0,0 +1,16 @@
+
+
+
+ ¥{{item.coupon_price}}
+
+ 购物买{{item.use_min_price}}减{{item.coupon_price}}
+ {{item.add_time}}-{{item.end_time}}
+
+
+
+
+ 立即领取
+
+
+
+
diff --git a/view/crmebNewUI/components/coupon-window/index.wxss b/view/crmebNewUI/components/coupon-window/index.wxss
new file mode 100644
index 00000000..acefd9a3
--- /dev/null
+++ b/view/crmebNewUI/components/coupon-window/index.wxss
@@ -0,0 +1,14 @@
+@import '/app.wxss';
+.coupon-window{background-image:url('data:image/png;base64,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');background-repeat:no-repeat;background-size:100% 100%;width:630rpx;height:649rpx;position:fixed;top:20%;z-index:99;left:50%;margin-left:-305rpx;transform:translate3d(0,-200%,0);transition:all .3s cubic-bezier(.25,.5,.5,.9);}
+.coupon-window.on{transform:translate3d(0,0,0);}
+.coupon-window .couponWinList{width:480rpx;margin:157rpx 0 0 60rpx;height:415rpx;overflow:auto;}
+.coupon-window .couponWinList .item{width:100%;height:120rpx;background-color:#fff;position:relative;margin-bottom:17rpx;}
+.coupon-window .couponWinList .item::after{content:'';position: absolute;width:18rpx;height: 18rpx;border-radius: 50%;background-color: #f2443a;left:25.5%;bottom:0;margin-bottom:-9rpx;}
+.coupon-window .couponWinList .item::before{content:'';position: absolute;width:18rpx;height: 18rpx;border-radius: 50%;background-color: #f2443a;left:25.5%;top:0;margin-top:-9rpx;}
+.coupon-window .couponWinList .item .money{width:130rpx;border-right:1px dashed #ddd;height:100%;text-align:center;line-height:120rpx;font-size:26rpx;font-weight:bold;}
+.coupon-window .couponWinList .item .money .num{font-size:40rpx;}
+.coupon-window .couponWinList .item .text{width:349rpx;font-size:22rpx;color:#999;padding:0 29rpx;box-sizing:border-box;}
+.coupon-window .couponWinList .item .text .name{font-size:26rpx;color:#282828;font-weight:bold;margin-bottom:9rpx;}
+.coupon-window .lid{background-image:url('data:image/png;base64,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');background-repeat:no-repeat;background-size:100% 100%;width:573rpx;height:224rpx;position:fixed;left:50%;top:20%;margin:424rpx 0 0 -296rpx;}
+.coupon-window .lid .bnt{font-size:29rpx;width:440rpx;height:80rpx;border-radius:40rpx;background-color:#f9f1d3;text-align:center;line-height:80rpx;font-weight:bold;margin:98rpx auto 0 auto;}
+.coupon-window .lid .iconfont{color:#fff;font-size:60rpx;text-align:center;margin-top:87rpx;}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/goodList/index.js b/view/crmebNewUI/components/goodList/index.js
new file mode 100644
index 00000000..af11a1b8
--- /dev/null
+++ b/view/crmebNewUI/components/goodList/index.js
@@ -0,0 +1,16 @@
+// components/goodList/index.js
+Component({
+ properties: {
+ status: {
+ type: String,
+ value: 0,
+ },
+ bastList: {
+ type: Object,
+ value: [],
+ }
+ },
+ data: {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/goodList/index.json b/view/crmebNewUI/components/goodList/index.json
new file mode 100644
index 00000000..4575d1b8
--- /dev/null
+++ b/view/crmebNewUI/components/goodList/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "component": true
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/goodList/index.wxml b/view/crmebNewUI/components/goodList/index.wxml
new file mode 100644
index 00000000..7bdab0b2
--- /dev/null
+++ b/view/crmebNewUI/components/goodList/index.wxml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{item.store_name}}
+ ¥{{item.price}}
+ ¥{{item.vip_price || 0}}已售{{item.sales}}{{item.unit_name}}
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/components/goodList/index.wxss b/view/crmebNewUI/components/goodList/index.wxss
new file mode 100644
index 00000000..f6143fbf
--- /dev/null
+++ b/view/crmebNewUI/components/goodList/index.wxss
@@ -0,0 +1,14 @@
+@import '/app.wxss';
+.goodList .item{position:relative;padding-left:30rpx;}
+.goodList .item .pictrue{width:180rpx;height:180rpx;position:relative;}
+.goodList .item .pictrue image{width:100%;height:100%;border-radius:6rpx;}
+.goodList .item .pictrue .numPic{position:absolute;left:7rpx;top:7rpx;width:50rpx;height:50rpx;border-radius:50%;}
+.goodList .item .underline{padding:30rpx 30rpx 30rpx 0;border-bottom:1px solid #f5f5f5;}
+.goodList .item:nth-last-child(1) .underline{border-bottom:0; }
+.goodList .item .text{font-size:30rpx;color:#222;width:489rpx;}
+.goodList .item .text .money{font-size:26rpx;font-weight:bold;margin-top:50rpx;}
+.goodList .item .text .money .num{font-size:34rpx;}
+.goodList .item .text .vip-money{font-size:24rpx;color:#282828;font-weight:bold;margin-top:15rpx;}
+.goodList .item .text .vip-money image{width:46rpx;height:21rpx;margin-left:5rpx;}
+.goodList .item .text .vip-money .num{font-size:22rpx;color:#aaa;font-weight:normal;margin:-2rpx 0 0 22rpx;}
+.goodList .item .iconfont{position:absolute;right:30rpx;width:50rpx;height:50rpx;border-radius:50%;font-size:30rpx;bottom:38rpx;}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/home/index.js b/view/crmebNewUI/components/home/index.js
new file mode 100644
index 00000000..f7362e1e
--- /dev/null
+++ b/view/crmebNewUI/components/home/index.js
@@ -0,0 +1,77 @@
+// components/home/index.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ homeActive:false
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+ setTouchMove: function (e) {
+ var that = this;
+ if (e.touches[0].clientY < 400 && e.touches[0].clientY > 66) {
+ that.setData({
+ top: e.touches[0].clientY
+ })
+ }
+ },
+ open:function(){
+ this.setData({
+ homeActive: !this.data.homeActive
+ })
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/home/index.json b/view/crmebNewUI/components/home/index.json
new file mode 100644
index 00000000..4575d1b8
--- /dev/null
+++ b/view/crmebNewUI/components/home/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "component": true
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/home/index.wxml b/view/crmebNewUI/components/home/index.wxml
new file mode 100644
index 00000000..ee07b345
--- /dev/null
+++ b/view/crmebNewUI/components/home/index.wxml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/components/home/index.wxss b/view/crmebNewUI/components/home/index.wxss
new file mode 100644
index 00000000..facc4313
--- /dev/null
+++ b/view/crmebNewUI/components/home/index.wxss
@@ -0,0 +1,7 @@
+@import '/app.wxss';
+.home{position: fixed ;top:780rpx;color: white;text-align: center;z-index:99;right:10rpx;}
+.home .homeCon{width:86rpx;border-radius:50rpx;padding:34rpx 0;box-sizing:border-box;transition:all 0.3s ease-in-out 0s;opacity:0;transform: scale(0);height:0rpx;color:#e93323;}
+.home .homeCon.on{opacity:1;transform: scale(1);height:300rpx;color:#fff;}
+.home .homeCon .iconfont{font-size:48rpx;}
+.home .pictrue{width:86rpx;height:86rpx;border-radius:50%;margin-top:20rpx;}
+.home .pictrue image{width:100%;height:100%;border-radius:50%;}
diff --git a/view/crmebNewUI/components/navbar/index.js b/view/crmebNewUI/components/navbar/index.js
new file mode 100644
index 00000000..b01f477a
--- /dev/null
+++ b/view/crmebNewUI/components/navbar/index.js
@@ -0,0 +1,57 @@
+var app = getApp();
+Component({
+ properties: {
+ parameter:{
+ type: Object,
+ value:{
+ class:'0'
+ },
+ },
+ logoUrl:{
+ type:String,
+ value:'',
+ }
+ },
+ data: {
+ navH: ""
+ },
+ ready: function(){
+ this.setClass();
+ var pages = getCurrentPages();
+ if (pages.length <= 1) this.setData({'parameter.return':0});
+ },
+ attached: function () {
+ this.setData({
+ navH: app.globalData.navHeight
+ });
+ },
+ methods: {
+ return:function(){
+ wx.navigateBack();
+ },
+ setGoodsSearch:function(){
+ wx.navigateTo({
+ url: '/pages/goods_search/index',
+ })
+ },
+ setClass:function(){
+ var color = '';
+ switch (this.data.parameter.class) {
+ case "0": case 'on':
+ color = 'on'
+ break;
+ case '1': case 'black':
+ color = 'black'
+ break;
+ case '2': case 'gray':
+ color = 'gray'
+ break;
+ default:
+ break;
+ }
+ this.setData({
+ 'parameter.class': color
+ })
+ }
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/navbar/index.json b/view/crmebNewUI/components/navbar/index.json
new file mode 100644
index 00000000..4575d1b8
--- /dev/null
+++ b/view/crmebNewUI/components/navbar/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "component": true
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/navbar/index.wxml b/view/crmebNewUI/components/navbar/index.wxml
new file mode 100644
index 00000000..a5db4582
--- /dev/null
+++ b/view/crmebNewUI/components/navbar/index.wxml
@@ -0,0 +1,13 @@
+
+
+
+ 搜索商品
+
+
+
+ {{parameter.title}}
+
+
+
+
+
diff --git a/view/crmebNewUI/components/navbar/index.wxss b/view/crmebNewUI/components/navbar/index.wxss
new file mode 100644
index 00000000..5098e921
--- /dev/null
+++ b/view/crmebNewUI/components/navbar/index.wxss
@@ -0,0 +1,15 @@
+@import '/app.wxss';
+.navbar{position:fixed;background-color:#fff;top:0;left:0;z-index:999;width:100%;}
+.navbar.on{background-color:#e93323;}
+.navbar.black{background-color:#232323;}
+.navbar.gray{background-color:#666;}
+.navbar .navbarH{position:relative;}
+.navbar .navbarH .navbarCon{position:absolute;bottom:0;height:100rpx;width:100%;}
+.navbar .navbarH .navbarCon .name{color:#000;font-size:36rpx;font-weight:bold;width: 300rpx;text-align: center;}
+.navbar .navbarH .navbarCon .name.on{color:#fff;}
+.navbar .navbarH .navbarCon .icon-xiangzuo{color:#000;font-weight:bold;position:absolute;font-size:40rpx;left:16rpx;width:100rpx;height:56rpx;line-height:54rpx;top:50%;transform:translateY(-50%);}
+.navbar .navbarH .navbarCon .icon-xiangzuo.on{color:#fff;}
+.navbar .navbarH .navbarCon .logo{width:127rpx;height:45rpx;position:absolute;left:30rpx;top:50%;transform:translateY(-50%);}
+.navbar .navbarH .navbarCon .logo image{width:100%;height:100%;display:block;}
+.navbar .navbarH .navbarCon .search{width:360rpx;height:64rpx;background-color:#f7f7f7;border-radius:50rpx;padding:0 28rpx;box-sizing:border-box;font-size:28rpx;color:#bbb;margin-right:26rpx;}
+.navbar .navbarH .navbarCon .search .icon-xiazai5{font-size:34rpx;margin-right:16rpx;}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/orderGoods/index.js b/view/crmebNewUI/components/orderGoods/index.js
new file mode 100644
index 00000000..f1d3f114
--- /dev/null
+++ b/view/crmebNewUI/components/orderGoods/index.js
@@ -0,0 +1,21 @@
+var app = getApp();
+Component({
+ properties: {
+ evaluate: {
+ type: Number,
+ value:0,
+ },
+ cartInfo:{
+ type:Object,
+ value:[],
+ },
+ orderId:{
+ type:String,
+ value:'',
+ },
+ },
+ data: {
+ },
+ methods: {
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/orderGoods/index.json b/view/crmebNewUI/components/orderGoods/index.json
new file mode 100644
index 00000000..4575d1b8
--- /dev/null
+++ b/view/crmebNewUI/components/orderGoods/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "component": true
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/orderGoods/index.wxml b/view/crmebNewUI/components/orderGoods/index.wxml
new file mode 100644
index 00000000..2cb10d1b
--- /dev/null
+++ b/view/crmebNewUI/components/orderGoods/index.wxml
@@ -0,0 +1,22 @@
+
+ 共{{cartInfo.length}}件商品
+
+
+
+
+
+
+
+
+ {{item.productInfo.store_name}}
+ x {{item.cart_num}}
+
+ {{item.productInfo.attrInfo.suk}}
+ ¥{{item.productInfo.attrInfo.price}}
+ ¥{{item.productInfo.price}}
+ 评价
+ 已评价
+
+
+
+
diff --git a/view/crmebNewUI/components/orderGoods/index.wxss b/view/crmebNewUI/components/orderGoods/index.wxss
new file mode 100644
index 00000000..dd7f4c7b
--- /dev/null
+++ b/view/crmebNewUI/components/orderGoods/index.wxss
@@ -0,0 +1,6 @@
+@import '/app.wxss';
+.orderGoods{background-color:#fff;margin-top:12rpx;}
+.orderGoods .total{width:100%;height:86rpx;padding:0 30rpx;border-bottom:2rpx solid #f0f0f0;font-size:30rpx;color:#282828;line-height:86rpx;}
+
+
+
diff --git a/view/crmebNewUI/components/product-window/index.js b/view/crmebNewUI/components/product-window/index.js
new file mode 100644
index 00000000..cf6ffc3b
--- /dev/null
+++ b/view/crmebNewUI/components/product-window/index.js
@@ -0,0 +1,68 @@
+var app = getApp();
+Component({
+ properties: {
+ attribute: {
+ type: Object,
+ value:{}
+ },
+ attrList:{
+ type: Object,
+ value:[],
+ },
+ productAttr:{
+ type: Object,
+ value: [],
+ },
+ productSelect:{
+ type: Object,
+ value: {
+ image: '',
+ store_name: '',
+ price: 0,
+ unique: '',
+ stock:0,
+ }
+ },
+ },
+ data: {
+ attrValue:[],
+ attrIndex:0,
+ },
+ attached: function () {
+ },
+ methods: {
+ close: function () {
+ this.triggerEvent('myevent', {'window': false});
+ },
+ CartNumDes:function(){
+ this.triggerEvent('ChangeCartNum', false);
+ },
+ CartNumInt:function(){
+ this.triggerEvent('ChangeCartNum', true);
+ },
+ tapAttr:function(e){
+ //父级index
+ var indexw = e.currentTarget.dataset.indexw;
+ //子集index
+ var indexn = e.currentTarget.dataset.indexn;
+ //每次点击获得的属性
+ var attr = this.data.productAttr[indexw].attr_value[indexn];
+ //设置当前点击属性
+ this.data.productAttr[indexw].checked = attr['attr'];
+ this.setData({
+ productAttr: this.data.productAttr,
+ });
+ var value = this.getCheckedValue().sort().join(',');
+ this.triggerEvent('ChangeAttr',value);
+ },
+ getCheckedValue: function () {
+ return this.data.productAttr.map(function (attr) {
+ return attr.checked;
+ });
+ },
+ ResetAttr:function(){
+ for (var k in this.data.productAttr) this.data.productAttr[k].checked='';
+ this.setData({ productAttr: this.data.productAttr});
+ },
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/product-window/index.json b/view/crmebNewUI/components/product-window/index.json
new file mode 100644
index 00000000..4575d1b8
--- /dev/null
+++ b/view/crmebNewUI/components/product-window/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "component": true
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/product-window/index.wxml b/view/crmebNewUI/components/product-window/index.wxml
new file mode 100644
index 00000000..50f72748
--- /dev/null
+++ b/view/crmebNewUI/components/product-window/index.wxml
@@ -0,0 +1,30 @@
+
+
+
+
+ {{productSelect.store_name}}
+
+ ¥{{productSelect.price}}
+ 库存: {{productSelect.stock}}
+
+
+
+
+
+
+ {{item.attr_name}}
+
+ {{itemn.attr}}
+
+
+
+
+ 数量
+
+ -
+ {{productSelect.cart_num}}
+ +
+
+
+
+
diff --git a/view/crmebNewUI/components/product-window/index.wxss b/view/crmebNewUI/components/product-window/index.wxss
new file mode 100644
index 00000000..315a1ccf
--- /dev/null
+++ b/view/crmebNewUI/components/product-window/index.wxss
@@ -0,0 +1,28 @@
+@import '/app.wxss';
+.product-window{position:fixed;bottom:0;width:100%;left:0;background-color:#fff;z-index:88;border-radius:16rpx 16rpx 0 0;padding-bottom:140rpx;transform:translate3d(0,100%,0);transition:all .3s cubic-bezier(.25,.5,.5,.9);}
+.product-window.on{transform:translate3d(0,0,0);}
+.product-window .textpic{padding:0 130rpx 0 30rpx;margin-top:29rpx;position:relative;}
+.product-window .textpic .pictrue{width:150rpx;height:150rpx;}
+.product-window .textpic .pictrue image{width:100%;height:100%;border-radius:10rpx;}
+.product-window .textpic .text{width:410rpx;font-size:32rpx;color:#202020;}
+.product-window .textpic .text .money{font-size:24rpx;margin-top:40rpx;}
+.product-window .textpic .text .money .num{font-size:36rpx;}
+.product-window .textpic .text .money .stock{color:#999;margin-left:18rpx;}
+.product-window .textpic .iconfont{position:absolute;right:30rpx;top:-5rpx;font-size:35rpx;color:#8a8a8a;}
+.product-window .productWinList{max-height:395rpx;overflow:auto;margin-top:36rpx;}
+.product-window .productWinList .item~.item{margin-top:36rpx;}
+.product-window .productWinList .item .title{font-size:30rpx;color:#999;padding:0 30rpx;}
+.product-window .productWinList .item .listn{padding:0 30rpx 0 16rpx;}
+.product-window .productWinList .item .listn .itemn{border:1px solid #bbb;font-size:26rpx;color:#282828;padding:7rpx 33rpx;border-radius:6rpx;margin:14rpx 0 0 14rpx;}
+.product-window .productWinList .item .listn .itemn.on{color:#fff;background-color:#ff3700;border-color:#ff3700;}
+.product-window .cart{margin-top:36rpx;padding:0 30rpx;}
+.product-window .cart .title{font-size:30rpx;color:#999;}
+.product-window .cart .carnum{height:54rpx;margin-top:24rpx;}
+.product-window .cart .carnum view{border:1px solid #a4a4a4;width:84rpx;text-align:center;height:100%;line-height:54rpx;color:#a4a4a4;font-size:45rpx;}
+.product-window .cart .carnum .reduce{border-right:0;border-radius:6rpx 0 0 6rpx;line-height:48rpx;}
+.product-window .cart .carnum .reduce.on{border-color:#e3e3e3;color:#dedede;}
+.product-window .cart .carnum .plus{border-left:0;border-radius:0 6rpx 6rpx 0;line-height:46rpx;}
+.product-window .cart .carnum .plus.on{border-color:#e3e3e3;color:#dedede;}
+.product-window .cart .carnum .num{color:#282828;font-size:28rpx;}
+
+
diff --git a/view/crmebNewUI/components/productConSwiper/index.js b/view/crmebNewUI/components/productConSwiper/index.js
new file mode 100644
index 00000000..e43d963d
--- /dev/null
+++ b/view/crmebNewUI/components/productConSwiper/index.js
@@ -0,0 +1,26 @@
+var app = getApp();
+Component({
+ properties: {
+ imgUrls:{
+ type:Object,
+ value:[]
+ }
+ },
+ data: {
+ indicatorDots: false,
+ circular: true,
+ autoplay: false,
+ interval: 3000,
+ duration: 500,
+ currents: "1"
+ },
+ attached:function(){
+ },
+ methods: {
+ change: function (e) {
+ this.setData({
+ currents: e.detail.current + 1
+ })
+ }
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/productConSwiper/index.json b/view/crmebNewUI/components/productConSwiper/index.json
new file mode 100644
index 00000000..4575d1b8
--- /dev/null
+++ b/view/crmebNewUI/components/productConSwiper/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "component": true
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/productConSwiper/index.wxml b/view/crmebNewUI/components/productConSwiper/index.wxml
new file mode 100644
index 00000000..f19e62df
--- /dev/null
+++ b/view/crmebNewUI/components/productConSwiper/index.wxml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+ {{currents}}/{{imgUrls.length || 1}}
+
diff --git a/view/crmebNewUI/components/productConSwiper/index.wxss b/view/crmebNewUI/components/productConSwiper/index.wxss
new file mode 100644
index 00000000..fd92e88f
--- /dev/null
+++ b/view/crmebNewUI/components/productConSwiper/index.wxss
@@ -0,0 +1,4 @@
+.product-bg{width:100%;height:750rpx;position:relative;}
+.product-bg swiper{width:100%;height:100%;position:relative;}
+.product-bg .slide-image{width:100%;height:100%;}
+.product-bg .pages{position:absolute;background-color:#fff;height:34rpx;padding:0 10rpx;border-radius:3rpx;right:30rpx;bottom:30rpx;line-height:34rpx;font-size:24rpx;color:#050505;}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/promotionGood/index.js b/view/crmebNewUI/components/promotionGood/index.js
new file mode 100644
index 00000000..ea162cb2
--- /dev/null
+++ b/view/crmebNewUI/components/promotionGood/index.js
@@ -0,0 +1,21 @@
+var app = getApp();
+Component({
+ properties: {
+ benefit: {
+ type: Object,
+ value: [],
+ }
+ },
+ data: {
+
+ },
+ ready: function () {
+
+ },
+ attached: function () {
+
+ },
+ methods: {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/promotionGood/index.json b/view/crmebNewUI/components/promotionGood/index.json
new file mode 100644
index 00000000..4575d1b8
--- /dev/null
+++ b/view/crmebNewUI/components/promotionGood/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "component": true
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/promotionGood/index.wxml b/view/crmebNewUI/components/promotionGood/index.wxml
new file mode 100644
index 00000000..6121b40d
--- /dev/null
+++ b/view/crmebNewUI/components/promotionGood/index.wxml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ {{item.store_name}}
+
+ 促销价: ¥{{item.price}}
+
+
+ 日常价:¥{{item.ot_price}}
+ 仅剩:{{item.stock}}{{item.unit_name}}
+
+
+
+
+
diff --git a/view/crmebNewUI/components/promotionGood/index.wxss b/view/crmebNewUI/components/promotionGood/index.wxss
new file mode 100644
index 00000000..1ae0875f
--- /dev/null
+++ b/view/crmebNewUI/components/promotionGood/index.wxss
@@ -0,0 +1,11 @@
+@import '/app.wxss';
+.promotionGood{padding:0 30rpx;}
+.promotionGood .item{border-bottom:1rpx solid #eee;height:250rpx;}
+.promotionGood .item .pictrue{width:188rpx;height:188rpx;}
+.promotionGood .item .pictrue image{width:100%;height:100%;border-radius:8rpx;}
+.promotionGood .item .text{font-size:24rpx;color:#999;width:472rpx;}
+.promotionGood .item .text .name{font-size:30rpx;color:#333;}
+.promotionGood .item .text .sp-money{margin:34rpx 0 20rpx 0;}
+.promotionGood .item .text .sp-money .moneyCon{padding:0 18rpx;background-color:red;height:46rpx;line-height:46rpx;background-image:linear-gradient(to right,#ff6248 0%,#ff3e1e 100%);font-size:20rpx;color:#fff;border-radius:24rpx 3rpx 24rpx 3rpx;}
+.promotionGood .item .text .sp-money .moneyCon .num{font-size:24rpx;}
+.promotionGood .item .text .money{text-decoration:line-through;}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/recommend/index.js b/view/crmebNewUI/components/recommend/index.js
new file mode 100644
index 00000000..0a6c59d5
--- /dev/null
+++ b/view/crmebNewUI/components/recommend/index.js
@@ -0,0 +1,15 @@
+var app = getApp();
+Component({
+ properties: {
+ host_product:{
+ type: Object,
+ value:[],
+ }
+ },
+ data: {
+ },
+ attached: function () {
+ },
+ methods: {
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/recommend/index.json b/view/crmebNewUI/components/recommend/index.json
new file mode 100644
index 00000000..4575d1b8
--- /dev/null
+++ b/view/crmebNewUI/components/recommend/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "component": true
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/recommend/index.wxml b/view/crmebNewUI/components/recommend/index.wxml
new file mode 100644
index 00000000..25b162fb
--- /dev/null
+++ b/view/crmebNewUI/components/recommend/index.wxml
@@ -0,0 +1,14 @@
+
+
+
+ 为你推荐
+
+
+
+
+
+ {{item.store_name}}
+ ¥{{item.price}}
+
+
+
diff --git a/view/crmebNewUI/components/recommend/index.wxss b/view/crmebNewUI/components/recommend/index.wxss
new file mode 100644
index 00000000..3d0c799d
--- /dev/null
+++ b/view/crmebNewUI/components/recommend/index.wxss
@@ -0,0 +1,13 @@
+@import '/app.wxss';
+.recommend{background-color:#fff;}
+.recommend .title{height:135rpx;font-size:28rpx;color:#282828;}
+.recommend .title .name{margin:0 28rpx;}
+.recommend .title .iconfont{font-size:170rpx;color:#454545;}
+.recommend .title .iconfont.lefticon{transform:rotate(180deg);}
+.recommend .recommendList{padding:0 30rpx;}
+.recommend .recommendList .item{width:335rpx;margin-bottom:30rpx;}
+.recommend .recommendList .item .pictrue{width:100%;height:335rpx;}
+.recommend .recommendList .item .pictrue image{width:100%;height:100%;border-radius:6rpx;}
+.recommend .recommendList .item .name{font-size:28rpx;color:#282828;margin-top:20rpx;}
+.recommend .recommendList .item .money{font-size:20rpx;margin-top:8rpx;}
+.recommend .recommendList .item .money .num{font-size:28rpx;}
diff --git a/view/crmebNewUI/components/share-red-packets/index.js b/view/crmebNewUI/components/share-red-packets/index.js
new file mode 100644
index 00000000..fe012f25
--- /dev/null
+++ b/view/crmebNewUI/components/share-red-packets/index.js
@@ -0,0 +1,27 @@
+var app = getApp();
+Component({
+ properties: {
+ sharePacket:{
+ type:Object,
+ value:{
+ isState: true,
+ priceName:'',
+ }
+ }
+ },
+ data: {
+
+ },
+ attached: function () {
+ },
+ methods: {
+ closeShare:function(){
+ this.setData({
+ "sharePacket.isState": true
+ })
+ },
+ goShare:function(){
+ this.triggerEvent('listenerActionSheet');
+ },
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/share-red-packets/index.json b/view/crmebNewUI/components/share-red-packets/index.json
new file mode 100644
index 00000000..4575d1b8
--- /dev/null
+++ b/view/crmebNewUI/components/share-red-packets/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "component": true
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/share-red-packets/index.wxml b/view/crmebNewUI/components/share-red-packets/index.wxml
new file mode 100644
index 00000000..d1002f3a
--- /dev/null
+++ b/view/crmebNewUI/components/share-red-packets/index.wxml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 会员分享返
+ ¥ {{sharePacket.priceName}}
+ 下单即返佣金
+ 立即分享
+
+
+
diff --git a/view/crmebNewUI/components/share-red-packets/index.wxss b/view/crmebNewUI/components/share-red-packets/index.wxss
new file mode 100644
index 00000000..e3cc2590
--- /dev/null
+++ b/view/crmebNewUI/components/share-red-packets/index.wxss
@@ -0,0 +1,12 @@
+@import '/app.wxss';
+.sharing-packets{position:fixed;right:30rpx;top:900rpx;z-index:5;transition:all 0.3s ease-in-out 0s;opacity:1;transform: scale(1);}
+.sharing-packets.on{transform: scale(0);opacity:0;}
+.sharing-packets .iconfont{width:44rpx;height:44rpx;border-radius:50%;text-align:center;line-height:44rpx;background-color:#999;font-size:20rpx;color:#fff;margin:0 auto;box-sizing:border-box;padding-left:1px;}
+.sharing-packets .line{width:2rpx;height:40rpx;background-color:#999;margin:0 auto;}
+.sharing-packets .sharing-con{width:187rpx;height:210rpx;position:relative;}
+.sharing-packets .sharing-con image{width:100%;height:100%;}
+.sharing-packets .sharing-con .text{position:absolute;top:30rpx;font-size:20rpx;width:100%;text-align:center;}
+.sharing-packets .sharing-con .text .money{font-size:32rpx;font-weight:bold;margin-top:5rpx;}
+.sharing-packets .sharing-con .text .money .label{font-size:20rpx;}
+.sharing-packets .sharing-con .text .tip{font-size:18rpx;color:#999;margin-top:5rpx;}
+.sharing-packets .sharing-con .text .shareBut{font-size:22rpx;color:#fff;margin-top:18rpx;height:50rpx;line-height:50rpx;}
diff --git a/view/crmebNewUI/components/swipers/index.js b/view/crmebNewUI/components/swipers/index.js
new file mode 100644
index 00000000..fdefff0b
--- /dev/null
+++ b/view/crmebNewUI/components/swipers/index.js
@@ -0,0 +1,27 @@
+// components/swiper/index.js
+var app = getApp();
+Component({
+ properties: {
+ imgUrls: {
+ type: Object,
+ value: []
+ }
+ },
+ data: {
+ circular: true,
+ autoplay: true,
+ interval: 3000,
+ duration: 500,
+ currentSwiper: 0
+ },
+ attached: function () {
+ console.log(this.data.imgUrls);
+ },
+ methods: {
+ swiperChange: function (e) {
+ this.setData({
+ currentSwiper: e.detail.current
+ })
+ },
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/swipers/index.json b/view/crmebNewUI/components/swipers/index.json
new file mode 100644
index 00000000..4575d1b8
--- /dev/null
+++ b/view/crmebNewUI/components/swipers/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "component": true
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/swipers/index.wxml b/view/crmebNewUI/components/swipers/index.wxml
new file mode 100644
index 00000000..9584a545
--- /dev/null
+++ b/view/crmebNewUI/components/swipers/index.wxml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/components/swipers/index.wxss b/view/crmebNewUI/components/swipers/index.wxss
new file mode 100644
index 00000000..1b32940b
--- /dev/null
+++ b/view/crmebNewUI/components/swipers/index.wxss
@@ -0,0 +1,7 @@
+@import '/app.wxss';
+.swiper{width:100%;height:282rpx;position:relative;}
+.swiper swiper{width:100%;height:100%;position:relative;}
+.swiper swiper .slide-image{width:100%;height:100%;}
+.swiper .dots{position:absolute;right:40rpx;bottom:20rpx;}
+.swiper .dots .dot{width:12rpx;height:12rpx;border:2rpx solid #fff;border-radius:50%;margin-right:15rpx;}
+.swiper .dots .dot.active{border-color:#e93323;background-color:#e93323;}
diff --git a/view/crmebNewUI/components/userEvaluation/index.js b/view/crmebNewUI/components/userEvaluation/index.js
new file mode 100644
index 00000000..7eceac8d
--- /dev/null
+++ b/view/crmebNewUI/components/userEvaluation/index.js
@@ -0,0 +1,24 @@
+var app = getApp();
+Component({
+ properties: {
+ reply:{
+ type:Object,
+ value:[],
+ }
+ },
+ data: {
+
+ },
+ attached: function () {
+
+ },
+ methods: {
+ getpreviewImage:function(e){
+ var dataset=e.currentTarget.dataset;
+ wx.previewImage({
+ urls: this.data.reply[dataset.index].pics,
+ current: this.data.reply[dataset.index].pics[dataset.pic_index],
+ });
+ },
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/components/userEvaluation/index.json b/view/crmebNewUI/components/userEvaluation/index.json
new file mode 100644
index 00000000..32640e0d
--- /dev/null
+++ b/view/crmebNewUI/components/userEvaluation/index.json
@@ -0,0 +1,3 @@
+{
+ "component": true
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/components/userEvaluation/index.wxml b/view/crmebNewUI/components/userEvaluation/index.wxml
new file mode 100644
index 00000000..7724d1b4
--- /dev/null
+++ b/view/crmebNewUI/components/userEvaluation/index.wxml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ {{item.nickname}}
+
+
+
+ {{item.add_time}} {{item.suk}}
+ {{item.comment}}
+
+
+
+
+
+ 店小二 :{{item.merchant_reply_content}}
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/components/userEvaluation/index.wxss b/view/crmebNewUI/components/userEvaluation/index.wxss
new file mode 100644
index 00000000..39aad613
--- /dev/null
+++ b/view/crmebNewUI/components/userEvaluation/index.wxss
@@ -0,0 +1,14 @@
+@import '/app.wxss';
+.evaluateWtapper .evaluateItem{background-color:#fff;padding-bottom:25rpx;}
+.evaluateWtapper .evaluateItem~.evaluateItem{border-top:1rpx solid #f5f5f5;}
+.evaluateWtapper .evaluateItem .pic-text{font-size:26rpx;color:#282828;height:95rpx;padding:0 30rpx;}
+.evaluateWtapper .evaluateItem .pic-text .pictrue{width:56rpx;height:56rpx;margin-right:20rpx;}
+.evaluateWtapper .evaluateItem .pic-text .pictrue image{width:100%;height:100%;border-radius:50%;}
+.evaluateWtapper .evaluateItem .pic-text .name{max-width:450rpx;margin-right:15rpx;}
+.evaluateWtapper .evaluateItem .time{font-size:24rpx;color:#82848f;padding:0 30rpx;}
+.evaluateWtapper .evaluateItem .evaluate-infor{font-size:28rpx;color:#282828;margin-top:19rpx;padding:0 30rpx;}
+.evaluateWtapper .evaluateItem .imgList{padding:0 30rpx 0 15rpx;margin-top:25rpx;}
+.evaluateWtapper .evaluateItem .imgList .pictrue{width:156rpx;height:156rpx;margin:0 0 15rpx 15rpx;}
+.evaluateWtapper .evaluateItem .imgList .pictrue image{width:100%;height:100%;}
+.evaluateWtapper .evaluateItem .reply{font-size:26rpx;color:#454545;background-color:#f7f7f7;border-radius:5rpx;margin:20rpx 30rpx 0 30rpx;padding:30rpx;position:relative;}
+.evaluateWtapper .evaluateItem .reply::before{content: "";width: 0;height: 0;border-left:0.3rem solid transparent;border-right:0.3rem solid transparent;border-bottom:0.4rem solid #f7f7f7;position:absolute;top:-0.4rem;left:2rem;}
\ No newline at end of file
diff --git a/view/crmebNewUI/css/animate.wxss b/view/crmebNewUI/css/animate.wxss
new file mode 100644
index 00000000..98f29c24
--- /dev/null
+++ b/view/crmebNewUI/css/animate.wxss
@@ -0,0 +1,3494 @@
+@charset "UTF-8";
+
+/*!
+ * animate.css -http://daneden.me/animate
+ * Version - 3.6.0
+ * Licensed under the MIT license - http://opensource.org/licenses/MIT
+ *
+ * Copyright (c) 2018 Daniel Eden
+ */
+
+.animated {
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both;
+}
+
+.animated.infinite {
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+}
+
+@-webkit-keyframes bounce {
+ from,
+ 20%,
+ 53%,
+ 80%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 40%,
+ 43% {
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ -webkit-transform: translate3d(0, -30px, 0);
+ transform: translate3d(0, -30px, 0);
+ }
+
+ 70% {
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ -webkit-transform: translate3d(0, -15px, 0);
+ transform: translate3d(0, -15px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, -4px, 0);
+ transform: translate3d(0, -4px, 0);
+ }
+}
+
+@keyframes bounce {
+ from,
+ 20%,
+ 53%,
+ 80%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 40%,
+ 43% {
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ -webkit-transform: translate3d(0, -30px, 0);
+ transform: translate3d(0, -30px, 0);
+ }
+
+ 70% {
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
+ -webkit-transform: translate3d(0, -15px, 0);
+ transform: translate3d(0, -15px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, -4px, 0);
+ transform: translate3d(0, -4px, 0);
+ }
+}
+
+.bounce {
+ -webkit-animation-name: bounce;
+ animation-name: bounce;
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+}
+
+@-webkit-keyframes flash {
+ from,
+ 50%,
+ to {
+ opacity: 1;
+ }
+
+ 25%,
+ 75% {
+ opacity: 0;
+ }
+}
+
+@keyframes flash {
+ from,
+ 50%,
+ to {
+ opacity: 1;
+ }
+
+ 25%,
+ 75% {
+ opacity: 0;
+ }
+}
+
+.flash {
+ -webkit-animation-name: flash;
+ animation-name: flash;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-webkit-keyframes pulse {
+ from {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+
+ 50% {
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
+ transform: scale3d(1.05, 1.05, 1.05);
+ }
+
+ to {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+@keyframes pulse {
+ from {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+
+ 50% {
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
+ transform: scale3d(1.05, 1.05, 1.05);
+ }
+
+ to {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+.pulse {
+ -webkit-animation-name: pulse;
+ animation-name: pulse;
+}
+
+@-webkit-keyframes rubberBand {
+ from {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+
+ 30% {
+ -webkit-transform: scale3d(1.25, 0.75, 1);
+ transform: scale3d(1.25, 0.75, 1);
+ }
+
+ 40% {
+ -webkit-transform: scale3d(0.75, 1.25, 1);
+ transform: scale3d(0.75, 1.25, 1);
+ }
+
+ 50% {
+ -webkit-transform: scale3d(1.15, 0.85, 1);
+ transform: scale3d(1.15, 0.85, 1);
+ }
+
+ 65% {
+ -webkit-transform: scale3d(0.95, 1.05, 1);
+ transform: scale3d(0.95, 1.05, 1);
+ }
+
+ 75% {
+ -webkit-transform: scale3d(1.05, 0.95, 1);
+ transform: scale3d(1.05, 0.95, 1);
+ }
+
+ to {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+@keyframes rubberBand {
+ from {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+
+ 30% {
+ -webkit-transform: scale3d(1.25, 0.75, 1);
+ transform: scale3d(1.25, 0.75, 1);
+ }
+
+ 40% {
+ -webkit-transform: scale3d(0.75, 1.25, 1);
+ transform: scale3d(0.75, 1.25, 1);
+ }
+
+ 50% {
+ -webkit-transform: scale3d(1.15, 0.85, 1);
+ transform: scale3d(1.15, 0.85, 1);
+ }
+
+ 65% {
+ -webkit-transform: scale3d(0.95, 1.05, 1);
+ transform: scale3d(0.95, 1.05, 1);
+ }
+
+ 75% {
+ -webkit-transform: scale3d(1.05, 0.95, 1);
+ transform: scale3d(1.05, 0.95, 1);
+ }
+
+ to {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+.rubberBand {
+ -webkit-animation-name: rubberBand;
+ animation-name: rubberBand;
+}
+
+@-webkit-keyframes shake {
+ from,
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 10%,
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+ }
+
+ 20%,
+ 40%,
+ 60%,
+ 80% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+ }
+}
+
+@keyframes shake {
+ from,
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 10%,
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+ }
+
+ 20%,
+ 40%,
+ 60%,
+ 80% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+ }
+}
+
+.shake {
+ -webkit-animation-name: shake;
+ animation-name: shake;
+}
+
+@-webkit-keyframes headShake {
+ 0% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 6.5% {
+ -webkit-transform: translateX(-6px) rotateY(-9deg);
+ transform: translateX(-6px) rotateY(-9deg);
+ }
+
+ 18.5% {
+ -webkit-transform: translateX(5px) rotateY(7deg);
+ transform: translateX(5px) rotateY(7deg);
+ }
+
+ 31.5% {
+ -webkit-transform: translateX(-3px) rotateY(-5deg);
+ transform: translateX(-3px) rotateY(-5deg);
+ }
+
+ 43.5% {
+ -webkit-transform: translateX(2px) rotateY(3deg);
+ transform: translateX(2px) rotateY(3deg);
+ }
+
+ 50% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+}
+
+@keyframes headShake {
+ 0% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+
+ 6.5% {
+ -webkit-transform: translateX(-6px) rotateY(-9deg);
+ transform: translateX(-6px) rotateY(-9deg);
+ }
+
+ 18.5% {
+ -webkit-transform: translateX(5px) rotateY(7deg);
+ transform: translateX(5px) rotateY(7deg);
+ }
+
+ 31.5% {
+ -webkit-transform: translateX(-3px) rotateY(-5deg);
+ transform: translateX(-3px) rotateY(-5deg);
+ }
+
+ 43.5% {
+ -webkit-transform: translateX(2px) rotateY(3deg);
+ transform: translateX(2px) rotateY(3deg);
+ }
+
+ 50% {
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+}
+
+.headShake {
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ -webkit-animation-name: headShake;
+ animation-name: headShake;
+}
+
+@-webkit-keyframes swing {
+ 20% {
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
+ transform: rotate3d(0, 0, 1, 15deg);
+ }
+
+ 40% {
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
+ transform: rotate3d(0, 0, 1, -10deg);
+ }
+
+ 60% {
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
+ transform: rotate3d(0, 0, 1, 5deg);
+ }
+
+ 80% {
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
+ transform: rotate3d(0, 0, 1, -5deg);
+ }
+
+ to {
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
+ transform: rotate3d(0, 0, 1, 0deg);
+ }
+}
+
+@keyframes swing {
+ 20% {
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
+ transform: rotate3d(0, 0, 1, 15deg);
+ }
+
+ 40% {
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
+ transform: rotate3d(0, 0, 1, -10deg);
+ }
+
+ 60% {
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
+ transform: rotate3d(0, 0, 1, 5deg);
+ }
+
+ 80% {
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
+ transform: rotate3d(0, 0, 1, -5deg);
+ }
+
+ to {
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
+ transform: rotate3d(0, 0, 1, 0deg);
+ }
+}
+
+.swing {
+ -webkit-transform-origin: top center;
+ transform-origin: top center;
+ -webkit-animation-name: swing;
+ animation-name: swing;
+}
+
+@-webkit-keyframes tada {
+ from {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+
+ 10%,
+ 20% {
+ -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
+ transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
+ }
+
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
+ }
+
+ 40%,
+ 60%,
+ 80% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
+ }
+
+ to {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+@keyframes tada {
+ from {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+
+ 10%,
+ 20% {
+ -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
+ transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
+ }
+
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
+ }
+
+ 40%,
+ 60%,
+ 80% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
+ }
+
+ to {
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+.tada {
+ -webkit-animation-name: tada;
+ animation-name: tada;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-webkit-keyframes wobble {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 15% {
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
+ }
+
+ 30% {
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
+ }
+
+ 45% {
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
+ }
+
+ 60% {
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes wobble {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 15% {
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
+ }
+
+ 30% {
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
+ }
+
+ 45% {
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
+ }
+
+ 60% {
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.wobble {
+ -webkit-animation-name: wobble;
+ animation-name: wobble;
+}
+
+@-webkit-keyframes jello {
+ from,
+ 11.1%,
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 22.2% {
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
+ transform: skewX(-12.5deg) skewY(-12.5deg);
+ }
+
+ 33.3% {
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
+ transform: skewX(6.25deg) skewY(6.25deg);
+ }
+
+ 44.4% {
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
+ transform: skewX(-3.125deg) skewY(-3.125deg);
+ }
+
+ 55.5% {
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
+ transform: skewX(1.5625deg) skewY(1.5625deg);
+ }
+
+ 66.6% {
+ -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
+ transform: skewX(-0.78125deg) skewY(-0.78125deg);
+ }
+
+ 77.7% {
+ -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
+ transform: skewX(0.390625deg) skewY(0.390625deg);
+ }
+
+ 88.8% {
+ -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
+ }
+}
+
+@keyframes jello {
+ from,
+ 11.1%,
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 22.2% {
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
+ transform: skewX(-12.5deg) skewY(-12.5deg);
+ }
+
+ 33.3% {
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
+ transform: skewX(6.25deg) skewY(6.25deg);
+ }
+
+ 44.4% {
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
+ transform: skewX(-3.125deg) skewY(-3.125deg);
+ }
+
+ 55.5% {
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
+ transform: skewX(1.5625deg) skewY(1.5625deg);
+ }
+
+ 66.6% {
+ -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
+ transform: skewX(-0.78125deg) skewY(-0.78125deg);
+ }
+
+ 77.7% {
+ -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
+ transform: skewX(0.390625deg) skewY(0.390625deg);
+ }
+
+ 88.8% {
+ -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
+ }
+}
+
+.jello {
+ -webkit-animation-name: jello;
+ animation-name: jello;
+ -webkit-transform-origin: center;
+ transform-origin: center;
+}
+
+@-webkit-keyframes bounceIn {
+ from,
+ 20%,
+ 40%,
+ 60%,
+ 80%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+
+ 20% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1);
+ }
+
+ 40% {
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
+ transform: scale3d(0.9, 0.9, 0.9);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
+ transform: scale3d(1.03, 1.03, 1.03);
+ }
+
+ 80% {
+ -webkit-transform: scale3d(0.97, 0.97, 0.97);
+ transform: scale3d(0.97, 0.97, 0.97);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+@keyframes bounceIn {
+ from,
+ 20%,
+ 40%,
+ 60%,
+ 80%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+
+ 20% {
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1);
+ }
+
+ 40% {
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
+ transform: scale3d(0.9, 0.9, 0.9);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
+ transform: scale3d(1.03, 1.03, 1.03);
+ }
+
+ 80% {
+ -webkit-transform: scale3d(0.97, 0.97, 0.97);
+ transform: scale3d(0.97, 0.97, 0.97);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: scale3d(1, 1, 1);
+ transform: scale3d(1, 1, 1);
+ }
+}
+
+.bounceIn {
+ -webkit-animation-duration: 0.75s;
+ animation-duration: 0.75s;
+ -webkit-animation-name: bounceIn;
+ animation-name: bounceIn;
+}
+
+@-webkit-keyframes bounceInDown {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -3000px, 0);
+ transform: translate3d(0, -3000px, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 25px, 0);
+ transform: translate3d(0, 25px, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, 5px, 0);
+ transform: translate3d(0, 5px, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes bounceInDown {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -3000px, 0);
+ transform: translate3d(0, -3000px, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 25px, 0);
+ transform: translate3d(0, 25px, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, 5px, 0);
+ transform: translate3d(0, 5px, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.bounceInDown {
+ -webkit-animation-name: bounceInDown;
+ animation-name: bounceInDown;
+}
+
+@-webkit-keyframes bounceInLeft {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-3000px, 0, 0);
+ transform: translate3d(-3000px, 0, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(25px, 0, 0);
+ transform: translate3d(25px, 0, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(5px, 0, 0);
+ transform: translate3d(5px, 0, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes bounceInLeft {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(-3000px, 0, 0);
+ transform: translate3d(-3000px, 0, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(25px, 0, 0);
+ transform: translate3d(25px, 0, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(5px, 0, 0);
+ transform: translate3d(5px, 0, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.bounceInLeft {
+ -webkit-animation-name: bounceInLeft;
+ animation-name: bounceInLeft;
+}
+
+@-webkit-keyframes bounceInRight {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(3000px, 0, 0);
+ transform: translate3d(3000px, 0, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(-25px, 0, 0);
+ transform: translate3d(-25px, 0, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(-5px, 0, 0);
+ transform: translate3d(-5px, 0, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes bounceInRight {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(3000px, 0, 0);
+ transform: translate3d(3000px, 0, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(-25px, 0, 0);
+ transform: translate3d(-25px, 0, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(-5px, 0, 0);
+ transform: translate3d(-5px, 0, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.bounceInRight {
+ -webkit-animation-name: bounceInRight;
+ animation-name: bounceInRight;
+}
+
+@-webkit-keyframes bounceInUp {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 3000px, 0);
+ transform: translate3d(0, 3000px, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, -5px, 0);
+ transform: translate3d(0, -5px, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes bounceInUp {
+ from,
+ 60%,
+ 75%,
+ 90%,
+ to {
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+ }
+
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 3000px, 0);
+ transform: translate3d(0, 3000px, 0);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ }
+
+ 75% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0);
+ }
+
+ 90% {
+ -webkit-transform: translate3d(0, -5px, 0);
+ transform: translate3d(0, -5px, 0);
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.bounceInUp {
+ -webkit-animation-name: bounceInUp;
+ animation-name: bounceInUp;
+}
+
+@-webkit-keyframes bounceOut {
+ 20% {
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
+ transform: scale3d(0.9, 0.9, 0.9);
+ }
+
+ 50%,
+ 55% {
+ opacity: 1;
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+}
+
+@keyframes bounceOut {
+ 20% {
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
+ transform: scale3d(0.9, 0.9, 0.9);
+ }
+
+ 50%,
+ 55% {
+ opacity: 1;
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
+ transform: scale3d(1.1, 1.1, 1.1);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+}
+
+.bounceOut {
+ -webkit-animation-duration: 0.75s;
+ animation-duration: 0.75s;
+ -webkit-animation-name: bounceOut;
+ animation-name: bounceOut;
+}
+
+@-webkit-keyframes bounceOutDown {
+ 20% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0);
+ }
+
+ 40%,
+ 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+}
+
+@keyframes bounceOutDown {
+ 20% {
+ -webkit-transform: translate3d(0, 10px, 0);
+ transform: translate3d(0, 10px, 0);
+ }
+
+ 40%,
+ 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, -20px, 0);
+ transform: translate3d(0, -20px, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+}
+
+.bounceOutDown {
+ -webkit-animation-name: bounceOutDown;
+ animation-name: bounceOutDown;
+}
+
+@-webkit-keyframes bounceOutLeft {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(20px, 0, 0);
+ transform: translate3d(20px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+}
+
+@keyframes bounceOutLeft {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(20px, 0, 0);
+ transform: translate3d(20px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+}
+
+.bounceOutLeft {
+ -webkit-animation-name: bounceOutLeft;
+ animation-name: bounceOutLeft;
+}
+
+@-webkit-keyframes bounceOutRight {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(-20px, 0, 0);
+ transform: translate3d(-20px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+}
+
+@keyframes bounceOutRight {
+ 20% {
+ opacity: 1;
+ -webkit-transform: translate3d(-20px, 0, 0);
+ transform: translate3d(-20px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+}
+
+.bounceOutRight {
+ -webkit-animation-name: bounceOutRight;
+ animation-name: bounceOutRight;
+}
+
+@-webkit-keyframes bounceOutUp {
+ 20% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+ }
+
+ 40%,
+ 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 20px, 0);
+ transform: translate3d(0, 20px, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+}
+
+@keyframes bounceOutUp {
+ 20% {
+ -webkit-transform: translate3d(0, -10px, 0);
+ transform: translate3d(0, -10px, 0);
+ }
+
+ 40%,
+ 45% {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 20px, 0);
+ transform: translate3d(0, 20px, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+}
+
+.bounceOutUp {
+ -webkit-animation-name: bounceOutUp;
+ animation-name: bounceOutUp;
+}
+
+@-webkit-keyframes fadeIn {
+ from {
+ opacity: 0;
+ }
+
+ to {
+ opacity: 1;
+ }
+}
+
+@keyframes fadeIn {
+ from {
+ opacity: 0;
+ }
+
+ to {
+ opacity: 1;
+ }
+}
+
+.fadeIn {
+ -webkit-animation-name: fadeIn;
+ animation-name: fadeIn;
+}
+
+@-webkit-keyframes fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInDown {
+ -webkit-animation-name: fadeInDown;
+ animation-name: fadeInDown;
+}
+
+@-webkit-keyframes fadeInDownBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInDownBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInDownBig {
+ -webkit-animation-name: fadeInDownBig;
+ animation-name: fadeInDownBig;
+}
+
+@-webkit-keyframes fadeInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInLeft {
+ -webkit-animation-name: fadeInLeft;
+ animation-name: fadeInLeft;
+}
+
+@-webkit-keyframes fadeInLeftBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInLeftBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInLeftBig {
+ -webkit-animation-name: fadeInLeftBig;
+ animation-name: fadeInLeftBig;
+}
+
+@-webkit-keyframes fadeInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInRight {
+ -webkit-animation-name: fadeInRight;
+ animation-name: fadeInRight;
+}
+
+@-webkit-keyframes fadeInRightBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInRightBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInRightBig {
+ -webkit-animation-name: fadeInRightBig;
+ animation-name: fadeInRightBig;
+}
+
+@-webkit-keyframes fadeInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInUp {
+ -webkit-animation-name: fadeInUp;
+ animation-name: fadeInUp;
+}
+
+@-webkit-keyframes fadeInUpBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes fadeInUpBig {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.fadeInUpBig {
+ -webkit-animation-name: fadeInUpBig;
+ animation-name: fadeInUpBig;
+}
+
+@-webkit-keyframes fadeOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ }
+}
+
+@keyframes fadeOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ }
+}
+
+.fadeOut {
+ -webkit-animation-name: fadeOut;
+ animation-name: fadeOut;
+}
+
+@-webkit-keyframes fadeOutDown {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+@keyframes fadeOutDown {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+.fadeOutDown {
+ -webkit-animation-name: fadeOutDown;
+ animation-name: fadeOutDown;
+}
+
+@-webkit-keyframes fadeOutDownBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+}
+
+@keyframes fadeOutDownBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 2000px, 0);
+ transform: translate3d(0, 2000px, 0);
+ }
+}
+
+.fadeOutDownBig {
+ -webkit-animation-name: fadeOutDownBig;
+ animation-name: fadeOutDownBig;
+}
+
+@-webkit-keyframes fadeOutLeft {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+}
+
+@keyframes fadeOutLeft {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+}
+
+.fadeOutLeft {
+ -webkit-animation-name: fadeOutLeft;
+ animation-name: fadeOutLeft;
+}
+
+@-webkit-keyframes fadeOutLeftBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+}
+
+@keyframes fadeOutLeftBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-2000px, 0, 0);
+ transform: translate3d(-2000px, 0, 0);
+ }
+}
+
+.fadeOutLeftBig {
+ -webkit-animation-name: fadeOutLeftBig;
+ animation-name: fadeOutLeftBig;
+}
+
+@-webkit-keyframes fadeOutRight {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+}
+
+@keyframes fadeOutRight {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+}
+
+.fadeOutRight {
+ -webkit-animation-name: fadeOutRight;
+ animation-name: fadeOutRight;
+}
+
+@-webkit-keyframes fadeOutRightBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+}
+
+@keyframes fadeOutRightBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(2000px, 0, 0);
+ transform: translate3d(2000px, 0, 0);
+ }
+}
+
+.fadeOutRightBig {
+ -webkit-animation-name: fadeOutRightBig;
+ animation-name: fadeOutRightBig;
+}
+
+@-webkit-keyframes fadeOutUp {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+@keyframes fadeOutUp {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+.fadeOutUp {
+ -webkit-animation-name: fadeOutUp;
+ animation-name: fadeOutUp;
+}
+
+@-webkit-keyframes fadeOutUpBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+}
+
+@keyframes fadeOutUpBig {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -2000px, 0);
+ transform: translate3d(0, -2000px, 0);
+ }
+}
+
+.fadeOutUpBig {
+ -webkit-animation-name: fadeOutUpBig;
+ animation-name: fadeOutUpBig;
+}
+
+@-webkit-keyframes flip {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out;
+ }
+
+ 50% {
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ 80% {
+ -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
+ transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+}
+
+@keyframes flip {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out;
+ }
+
+ 50% {
+ -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ 80% {
+ -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
+ transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+}
+
+.animated.flip {
+ -webkit-backface-visibility: visible;
+ backface-visibility: visible;
+ -webkit-animation-name: flip;
+ animation-name: flip;
+}
+
+@-webkit-keyframes flipInX {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ opacity: 0;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ opacity: 1;
+ }
+
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ }
+
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+@keyframes flipInX {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ opacity: 0;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ opacity: 1;
+ }
+
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ }
+
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+.flipInX {
+ -webkit-backface-visibility: visible !important;
+ backface-visibility: visible !important;
+ -webkit-animation-name: flipInX;
+ animation-name: flipInX;
+}
+
+@-webkit-keyframes flipInY {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ opacity: 0;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
+ opacity: 1;
+ }
+
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
+ }
+
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+@keyframes flipInY {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ opacity: 0;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+ }
+
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
+ opacity: 1;
+ }
+
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
+ }
+
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+.flipInY {
+ -webkit-backface-visibility: visible !important;
+ backface-visibility: visible !important;
+ -webkit-animation-name: flipInY;
+ animation-name: flipInY;
+}
+
+@-webkit-keyframes flipOutX {
+ from {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes flipOutX {
+ from {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+}
+
+.flipOutX {
+ -webkit-animation-duration: 0.75s;
+ animation-duration: 0.75s;
+ -webkit-animation-name: flipOutX;
+ animation-name: flipOutX;
+ -webkit-backface-visibility: visible !important;
+ backface-visibility: visible !important;
+}
+
+@-webkit-keyframes flipOutY {
+ from {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes flipOutY {
+ from {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
+ opacity: 0;
+ }
+}
+
+.flipOutY {
+ -webkit-animation-duration: 0.75s;
+ animation-duration: 0.75s;
+ -webkit-backface-visibility: visible !important;
+ backface-visibility: visible !important;
+ -webkit-animation-name: flipOutY;
+ animation-name: flipOutY;
+}
+
+@-webkit-keyframes lightSpeedIn {
+ from {
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
+ opacity: 0;
+ }
+
+ 60% {
+ -webkit-transform: skewX(20deg);
+ transform: skewX(20deg);
+ opacity: 1;
+ }
+
+ 80% {
+ -webkit-transform: skewX(-5deg);
+ transform: skewX(-5deg);
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@keyframes lightSpeedIn {
+ from {
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
+ opacity: 0;
+ }
+
+ 60% {
+ -webkit-transform: skewX(20deg);
+ transform: skewX(20deg);
+ opacity: 1;
+ }
+
+ 80% {
+ -webkit-transform: skewX(-5deg);
+ transform: skewX(-5deg);
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+.lightSpeedIn {
+ -webkit-animation-name: lightSpeedIn;
+ animation-name: lightSpeedIn;
+ -webkit-animation-timing-function: ease-out;
+ animation-timing-function: ease-out;
+}
+
+@-webkit-keyframes lightSpeedOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
+ transform: translate3d(100%, 0, 0) skewX(30deg);
+ opacity: 0;
+ }
+}
+
+@keyframes lightSpeedOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
+ transform: translate3d(100%, 0, 0) skewX(30deg);
+ opacity: 0;
+ }
+}
+
+.lightSpeedOut {
+ -webkit-animation-name: lightSpeedOut;
+ animation-name: lightSpeedOut;
+ -webkit-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+}
+
+@-webkit-keyframes rotateIn {
+ from {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
+ transform: rotate3d(0, 0, 1, -200deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@keyframes rotateIn {
+ from {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
+ transform: rotate3d(0, 0, 1, -200deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+.rotateIn {
+ -webkit-animation-name: rotateIn;
+ animation-name: rotateIn;
+}
+
+@-webkit-keyframes rotateInDownLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInDownLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+.rotateInDownLeft {
+ -webkit-animation-name: rotateInDownLeft;
+ animation-name: rotateInDownLeft;
+}
+
+@-webkit-keyframes rotateInDownRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInDownRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+.rotateInDownRight {
+ -webkit-animation-name: rotateInDownRight;
+ animation-name: rotateInDownRight;
+}
+
+@-webkit-keyframes rotateInUpLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInUpLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+.rotateInUpLeft {
+ -webkit-animation-name: rotateInUpLeft;
+ animation-name: rotateInUpLeft;
+}
+
+@-webkit-keyframes rotateInUpRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
+ transform: rotate3d(0, 0, 1, -90deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInUpRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
+ transform: rotate3d(0, 0, 1, -90deg);
+ opacity: 0;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+}
+
+.rotateInUpRight {
+ -webkit-animation-name: rotateInUpRight;
+ animation-name: rotateInUpRight;
+}
+
+@-webkit-keyframes rotateOut {
+ from {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
+ transform: rotate3d(0, 0, 1, 200deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOut {
+ from {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: center;
+ transform-origin: center;
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
+ transform: rotate3d(0, 0, 1, 200deg);
+ opacity: 0;
+ }
+}
+
+.rotateOut {
+ -webkit-animation-name: rotateOut;
+ animation-name: rotateOut;
+}
+
+@-webkit-keyframes rotateOutDownLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutDownLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
+ transform: rotate3d(0, 0, 1, 45deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutDownLeft {
+ -webkit-animation-name: rotateOutDownLeft;
+ animation-name: rotateOutDownLeft;
+}
+
+@-webkit-keyframes rotateOutDownRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutDownRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutDownRight {
+ -webkit-animation-name: rotateOutDownRight;
+ animation-name: rotateOutDownRight;
+}
+
+@-webkit-keyframes rotateOutUpLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutUpLeft {
+ from {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: left bottom;
+ transform-origin: left bottom;
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
+ transform: rotate3d(0, 0, 1, -45deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutUpLeft {
+ -webkit-animation-name: rotateOutUpLeft;
+ animation-name: rotateOutUpLeft;
+}
+
+@-webkit-keyframes rotateOutUpRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
+ transform: rotate3d(0, 0, 1, 90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutUpRight {
+ from {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform-origin: right bottom;
+ transform-origin: right bottom;
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
+ transform: rotate3d(0, 0, 1, 90deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutUpRight {
+ -webkit-animation-name: rotateOutUpRight;
+ animation-name: rotateOutUpRight;
+}
+
+@-webkit-keyframes hinge {
+ 0% {
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ }
+
+ 20%,
+ 60% {
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
+ transform: rotate3d(0, 0, 1, 80deg);
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ }
+
+ 40%,
+ 80% {
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
+ transform: rotate3d(0, 0, 1, 60deg);
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 700px, 0);
+ transform: translate3d(0, 700px, 0);
+ opacity: 0;
+ }
+}
+
+@keyframes hinge {
+ 0% {
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ }
+
+ 20%,
+ 60% {
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
+ transform: rotate3d(0, 0, 1, 80deg);
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ }
+
+ 40%,
+ 80% {
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
+ transform: rotate3d(0, 0, 1, 60deg);
+ -webkit-transform-origin: top left;
+ transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ animation-timing-function: ease-in-out;
+ opacity: 1;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 700px, 0);
+ transform: translate3d(0, 700px, 0);
+ opacity: 0;
+ }
+}
+
+.hinge {
+ -webkit-animation-duration: 2s;
+ animation-duration: 2s;
+ -webkit-animation-name: hinge;
+ animation-name: hinge;
+}
+
+@-webkit-keyframes jackInTheBox {
+ from {
+ opacity: 0;
+ -webkit-transform: scale(0.1) rotate(30deg);
+ transform: scale(0.1) rotate(30deg);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ }
+
+ 50% {
+ -webkit-transform: rotate(-10deg);
+ transform: rotate(-10deg);
+ }
+
+ 70% {
+ -webkit-transform: rotate(3deg);
+ transform: rotate(3deg);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@keyframes jackInTheBox {
+ from {
+ opacity: 0;
+ -webkit-transform: scale(0.1) rotate(30deg);
+ transform: scale(0.1) rotate(30deg);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ }
+
+ 50% {
+ -webkit-transform: rotate(-10deg);
+ transform: rotate(-10deg);
+ }
+
+ 70% {
+ -webkit-transform: rotate(3deg);
+ transform: rotate(3deg);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+.jackInTheBox {
+ -webkit-animation-name: jackInTheBox;
+ animation-name: jackInTheBox;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-webkit-keyframes rollIn {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes rollIn {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.rollIn {
+ -webkit-animation-name: rollIn;
+ animation-name: rollIn;
+}
+
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-webkit-keyframes rollOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
+ }
+}
+
+@keyframes rollOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
+ }
+}
+
+.rollOut {
+ -webkit-animation-name: rollOut;
+ animation-name: rollOut;
+}
+
+@-webkit-keyframes zoomIn {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+
+ 50% {
+ opacity: 1;
+ }
+}
+
+@keyframes zoomIn {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+
+ 50% {
+ opacity: 1;
+ }
+}
+
+.zoomIn {
+ -webkit-animation-name: zoomIn;
+ animation-name: zoomIn;
+}
+
+@-webkit-keyframes zoomInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+@keyframes zoomInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+.zoomInDown {
+ -webkit-animation-name: zoomInDown;
+ animation-name: zoomInDown;
+}
+
+@-webkit-keyframes zoomInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+@keyframes zoomInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+.zoomInLeft {
+ -webkit-animation-name: zoomInLeft;
+ animation-name: zoomInLeft;
+}
+
+@-webkit-keyframes zoomInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+@keyframes zoomInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+.zoomInRight {
+ -webkit-animation-name: zoomInRight;
+ animation-name: zoomInRight;
+}
+
+@-webkit-keyframes zoomInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+@keyframes zoomInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+.zoomInUp {
+ -webkit-animation-name: zoomInUp;
+ animation-name: zoomInUp;
+}
+
+@-webkit-keyframes zoomOut {
+ from {
+ opacity: 1;
+ }
+
+ 50% {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+
+ to {
+ opacity: 0;
+ }
+}
+
+@keyframes zoomOut {
+ from {
+ opacity: 1;
+ }
+
+ 50% {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
+ transform: scale3d(0.3, 0.3, 0.3);
+ }
+
+ to {
+ opacity: 0;
+ }
+}
+
+.zoomOut {
+ -webkit-animation-name: zoomOut;
+ animation-name: zoomOut;
+}
+
+@-webkit-keyframes zoomOutDown {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+@keyframes zoomOutDown {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+.zoomOutDown {
+ -webkit-animation-name: zoomOutDown;
+ animation-name: zoomOutDown;
+}
+
+@-webkit-keyframes zoomOutLeft {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
+ transform: scale(0.1) translate3d(-2000px, 0, 0);
+ -webkit-transform-origin: left center;
+ transform-origin: left center;
+ }
+}
+
+@keyframes zoomOutLeft {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
+ transform: scale(0.1) translate3d(-2000px, 0, 0);
+ -webkit-transform-origin: left center;
+ transform-origin: left center;
+ }
+}
+
+.zoomOutLeft {
+ -webkit-animation-name: zoomOutLeft;
+ animation-name: zoomOutLeft;
+}
+
+@-webkit-keyframes zoomOutRight {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
+ transform: scale(0.1) translate3d(2000px, 0, 0);
+ -webkit-transform-origin: right center;
+ transform-origin: right center;
+ }
+}
+
+@keyframes zoomOutRight {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
+ transform: scale(0.1) translate3d(2000px, 0, 0);
+ -webkit-transform-origin: right center;
+ transform-origin: right center;
+ }
+}
+
+.zoomOutRight {
+ -webkit-animation-name: zoomOutRight;
+ animation-name: zoomOutRight;
+}
+
+@-webkit-keyframes zoomOutUp {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+@keyframes zoomOutUp {
+ 40% {
+ opacity: 1;
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
+ -webkit-transform-origin: center bottom;
+ transform-origin: center bottom;
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
+ }
+}
+
+.zoomOutUp {
+ -webkit-animation-name: zoomOutUp;
+ animation-name: zoomOutUp;
+}
+
+@-webkit-keyframes slideInDown {
+ from {
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes slideInDown {
+ from {
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.slideInDown {
+ -webkit-animation-name: slideInDown;
+ animation-name: slideInDown;
+}
+
+@-webkit-keyframes slideInLeft {
+ from {
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes slideInLeft {
+ from {
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.slideInLeft {
+ -webkit-animation-name: slideInLeft;
+ animation-name: slideInLeft;
+}
+
+@-webkit-keyframes slideInRight {
+ from {
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes slideInRight {
+ from {
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.slideInRight {
+ -webkit-animation-name: slideInRight;
+ animation-name: slideInRight;
+}
+
+@-webkit-keyframes slideInUp {
+ from {
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@keyframes slideInUp {
+ from {
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ visibility: visible;
+ }
+
+ to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+.slideInUp {
+ -webkit-animation-name: slideInUp;
+ animation-name: slideInUp;
+}
+
+@-webkit-keyframes slideOutDown {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+@keyframes slideOutDown {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+.slideOutDown {
+ -webkit-animation-name: slideOutDown;
+ animation-name: slideOutDown;
+}
+
+@-webkit-keyframes slideOutLeft {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+}
+
+@keyframes slideOutLeft {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+}
+
+.slideOutLeft {
+ -webkit-animation-name: slideOutLeft;
+ animation-name: slideOutLeft;
+}
+
+@-webkit-keyframes slideOutRight {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+}
+
+@keyframes slideOutRight {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+}
+
+.slideOutRight {
+ -webkit-animation-name: slideOutRight;
+ animation-name: slideOutRight;
+}
+
+@-webkit-keyframes slideOutUp {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+@keyframes slideOutUp {
+ from {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ to {
+ visibility: hidden;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+.slideOutUp {
+ -webkit-animation-name: slideOutUp;
+ animation-name: slideOutUp;
+}
diff --git a/view/crmebNewUI/css/guildford.wxss b/view/crmebNewUI/css/guildford.wxss
new file mode 100644
index 00000000..4b43b8b1
--- /dev/null
+++ b/view/crmebNewUI/css/guildford.wxss
@@ -0,0 +1,16 @@
+@font-face {
+ font-family: 'Guildford Pro';
+ src: url('GuildfordPro.eot');
+ font-weight: normal;
+ font-style: normal;
+}
+@font-face {
+ font-family: 'Guildford Pro';
+ src: url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAAEc0AA8AAAAAyFgAAEbVAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGk4b4x4ciHAGYACKXhEICoHgYIGqXguGPgABNgIkA4x4BCAFjXMHkxAbEKlnUL11ucEjuG0AMzOpWc1oIxHCxgGEjD0wO1DDxoEwI1SR7P///09LGmOs26ANQIVQ7etBRCFmg6NELU29QykSbCDY4TAMmNHLm619lXNir2TGSC/Kbr63C+8otbJHqUVUMZlWwie68DziI/zb6IhBus1sqi9VDHpe5KnO9ie6KXXt6q2uX50wY4ueUvjOD2pTmQobu+8QXjfMNeLIduY4Eg7oit9uFPRsM7lGpxP6jS0GezI4e3l/GjzRXveECnd4nKTF4squhPJlP4Oxmhf+ZP+iUWE1YuqQlGjlWuk9xC779f412KIWPbKvAuxWeIUywumV57/k4D337X5JKUFWSQupg3qQfaanypTCDs9vs/fBxChUUEHEwppiEQLyoQ1EMFHRiYo1Z87KmbVyoYu86apclCuXt7m1izIWd164MAD8SOfnzK588J72uw9gB1wC1mFJI2v9JbNCfEBy+90elgHipjjiKlR0iQCq6sDp/fIAhjkQEb5799MzZv7eFIMrAKpPgfuQNNR2E8rM/5/zv9/IFg5JAfUGX8ihmzVlP0WXfvt9e5smgwzPSRSQQQYd/IN/sAcJb6BEWAeLfiddc1T0gbY+KlojorcsA4aKPOcL3Rv7opDvuwYlnFpgjRCzhzympiZm6ZsxNTU1NTUxMTE5iMlC3w2esymd7p4giZyctA4s2O0BA/E0YMsP/nvu258zNiPyW8DiL9oC3PG0W/Yet3LI8Ta1zYRO1B4RCwVmUuIIdQuVI6T823RVw5XA67RA30df9tT1C+D/J//KC34wwd9sXqA5EB3gok1R77qHeZKqCAkQ8B//871Tvdv4tLEgsHFcF4CdEp90SdwXF9jtx9dISv7k9M+y4xTQJGNxluMoyLZOGtP7XzWF/f/+tGz/W0WZ70VrHQL7nPwFdtEtkhNuCU7/dd/Xk95//9mWvu0ReGYMC4LjjUx7bHnnHH9cSUOSPbvxzAKT7QFONCGACogrpDLdnlQpU9UpynBdUtmkTpsyPHw/9ZO+M17NPqWV4Uo6FGD7fypLGLRlb7nW15bu+VFK13anO6V1ADewAVI6CwohCWNhIICRHFuqDeHoWhlL+AoNwr2MkvTh+QyuYy811teRKt61QsZWta5QzmI3G2w+50OWo4gUKSHUd2I+/mfvuzvakRBKgBJKCJ4xRhghhBDGOy+TpZZHCLB7Irk24sd/291mW01W3OqkBtz549MCewynVSzbXrSaj0GkUUogchzS/lp5qBk+Wwh88sSJDsDHb94O7gIUNh10+PbLFDGZThnv/WWqG0BuVA3hliiDkigxRJI0B6VFa4i02RikoxBMtZI76IKfV6CjwxiCnP+3CnQQRFdopk/f8Y0BTduXBv7MYhEKYk6V8NZ6tP5rIDHN6pRu7X09CaCxESFYhSFMYpamDGEOCznCMU5ylt/nyyhnaMbn2bK2cC+IIJYuaV7/eUKXZJbTne+aS+bru96n/cRvo4WyCT3sJKchI7mU96ejEfIRm8UQGJuz8KEwye+b78ZjEWu8NK+b1A4DtwrCj4LoiE/nfRGi+YZDNqSTLHXWJDwsQ5xek+N8TC3IBo6bO/8ofvevCOVHz5DfouF4tKqfxQZuZ72s0NFxIcl6qyPctuVSaDtiYXOV3AOOfcriPP15ETWcvfXhLwJdVdeUaYE21qmxVLemB/ptA6ymCVq5NtURGdHF+mDQME5LzVKL6HAGuqUeMwjSHqxRWXOd3VJCSd0mr2gSWBW9lj45JAk5zpBhpZrUNHuQkDtzknudxb+5kJq1xh1OJw/nD1kyfLg+3WZlTarV1ssN2kqahPLEx+tmaFdNjrbOwgr6qZ/fZATKjtkB3oGZU+puxrKUZBRnbSO5fajFKpNOickAa3XLvDW+qBi7p5Oe9E0uK3htYC6/CncC+bU2q8mnPZb1jRByeaiplTTK9GKDn44mKmbMCrFs59E8v4fJN3UB6bCWy+OffYQn8Vv9hf9iDIMJaoYLWMqsYXl3P+tJ/Ub2RVF1En9tJhXq0sJazf40lPOO0G46cT3rrrHbzXtpaIIkK2tA5ygfRwldpMpJq42vrpnI/WiOZnfcvC0wcLxhc545dNQeq1RKKcUPhZKZ3Fpxb7o7SFtkSXO6z2zv+JA/L5hvhMUh/bVrjFdXC4ZvFm74crd527dDR46dOG+zlovterS3tKdSPKrXUhDOYQy5+NEYp3O0uW3wRk3yqVRwEh5VbjrXXsu2pM8MeXOPxhsdnrKQq4eoiCTVcpxcAqVzp/3z0Yajsdzk3gP8e1n+VARsxqm5Bzpw7vaZLA25RpqpoK9eTNlrL9UFY+8kwAn5ronmPHLNFOZdR9L4IxjXzducojeVdnbYgzvVRrito7A463ClWbOEQ71zY/LNWKwfT/XnREC2bnV3/GHPQxLMqh0Hnyu1s354J9Kc5QckYZms7Y91eLPnadRB87csdWOb3hnW+T6Ub2k4N9YbJqP1GPZTp/jx5/78iICnamRcMy/t/58LeobtN47nEC5slva5tFFZnxeqx0XRhFSLb/AXNsj6ByrBkxWMr4dXslokPwK5vgG+s2kWmvyScnGXcq5w6ZOJy39Ual8VjyrbvXJySOimq/lY46Qx2WmfxSnRnY276uX6LN9T7KGrWaBT03cHQQlvvbPjZkbMnXZ3mDjJ1H5vlq7grlmFuqTwVD+Mu29nLwtl2xbeJ6qPNzutDR0TB2jpjcHIdrRPelC4LFtnYLMhfv0lnYL13WTGaQNd5WLHQEuaJVO37Zt8+FudlbHeVT1l2Zwczj1ki+Fs9LSoiRlfwmKjyMVxbwWXF7HracsUPkQnpgNtMhtlISfR3ir4/9mp6GRsom0yZsNB2IDMmA8WHD4hF2Ih3IUJ4yWcElmqVIHU1Nhq9YD1WUNmnc2iDdtH6aBjMp1wW6677mpy30fNZszYZM6czb74Yotvvhm2YMGIf/1rq0WLtvnpp+0B4akgIAR4OpqQJngm2pA2eDa6kC54LvqQo71xTqDLgfF7ERl5bxJJ0bsoKZtJocJm02agOdDcm2hgMXr17+iy/wrxDxIgXZFsZCayBrkHeVjTSrtb+woKo++qv8/gHyMvo01Gz0wMTceB+03sKH4teS1NtOy13LV8oEC+YqlKJSgDymcFqJKqqJpqqT5lRyt11q7VXXpnfx9otKAHI5jBCnZwK6/yq6AKq6hKqlLCkbRJl/TJkIzJnCzJmmzJnhxz/xydY/NA8j58yZ8CKZhCaSgNLyPL6DK2jO+TfQrTNINZmsM8LegiLekyregqrek6bdI27dI+HdIxndKZntOFXtKVXtON3tKXnM35/Dq/zwX2/0/RQOABgwcCHorwUIKqDEkFqmqklqpHGqlmZAAaVo1A46oJaFo1A82rFvJbtqzkt5HftmVfASroCraCrxArJKnJTYqE1DpNQjrIqDFBVo0Ncmp8WrAKLRVdwCuRZ4Wok4yUkC6TYlLOPPcuE+WokuLD4rAh3Ulv0ueu5bYKLsYluE+r4Q6JI889WxWANZi02lnFa0LIRa/zP2TbZKo8Y3I4+nTMFUmaNG/6eOl6PnKtylTGVFV9Kms6U8l1I2moBhVYeD0WKn4vuZ62lr2XKz8K1t8vfFcMlCIqO+q+BhoUHQxMLOyK2+PhExASkVTSOxk5xaBENIwRozFGNQU1Y65a6C1ZsebMhSs39f+qBF1FTcPAyMSsWqRWNtWube8AoNAYLA5PINYlkIKgVXrBZH+934VV3vgS6S6ymfKVFCjfalpfev1g9tYgRYksPif8vVDlpcpWFX118ThJpJ0iwwqJdkQHAxML+zWI4LPPPvu8jGlKWujoGRjr+36iJYsuJd1mI5OEEEKIECJFJuXrBjGIQTjjjDPOGCOEkLcVVbzYxwqVUkpOOOGEJylHysk0NjE1GyOJTcjy3v28r+IgAIXGYHF4ArFR1vcvgqLGh1ORNAYdYpodfh1BRLivotu5urxlEPcZtVe30VKhjJSveBZljcoOWz817VnZ0n9l+j6m2NWluqf3vvgHw4OmxpEHMJbYHZrdqdcSeTYohscyAHTQKgbDSsjXp24j+dXHGQAAAAAAxuape3O+yC8gKGTIsBGjxqrx1uRsBBcoABw4cOAAAADwztDmTJMY44ILFCiQUCLTmMyYOKY/s34BxiooAAAAAC7WjbNVnwgOIRF1Iz6LxO15kC4eGEz3qLW6jZdKykj572KiAC/mqABGuNgq/l7yzAX15/YKoAoPRSG9W3jVqtfftfa66/0lGkDHwMTCrrh7PHwCQiKSSjqSkVMMSmQaaEMHPQMjCysbe+W8c3FXvp5fQFDIkGEjRo1V46XJYQqYXmNmmjVnfljYW5IVa9Vub9+h4/Z0zOm6Pqb6cvfNL39mrra8lWBXVlSmqpq6xrw5+jKUoRISXHDBBRdccHiZpCY0Bt27TLPrIYizJM6aXyaLZhRmmukh7EojQkTnE9Ied6YJT68X149zoUePI5pE+O6kzqbZPJMzNTP2scx5czBprZ6zS3eb7vHW6veQhoyUr9Ri8haVHVps9KWyq9JZVcPVav0368R1Qb2ifsEA08s7mTUTHr8qrQzjok3S6KLRRDvvKhd7y+2qk3D+zh7jHJeu020jfSP7VPJoMgwRxjY1r5aQ7Vw2+4roDO+y4ERQzSP2SppaSbXUsmRF7If7K7I15Yc0GHvtnM0sZCRqLq0t3213q5/OF+tLeOJVzhWMMQZamClilpgnFollYpVYt03brzg7xDkuXafbUllVXbPaZwAaiyfWVVB8SvpzN8BWH9Lph3/KD/RB7dGNAcNGjKaxl1d87AHQWDyRweIIls/ZLYepmZstckp/6XS9ffoF0Fg8cThfbm4m2GZ6VdexWZe5clxlqFKtVmvfye2xJWbEBDp6BkZmFlY2dh4+fgFBIUNjJKSEjJhg3qJlq9Zt2rZr36Fjp85duk63pbKquuYYGIY7bIv1Et7k7lJWjyBxCZw4L2XNSw+oC0sU+rIOM9IXhYDC4Te3vU86jLJ9FnMbeksoALQYMM1wCZpgCZ4QaeU59+2M4WaIUFr4tn7UlrmmbKMxnZns/wQFHTNUS1uH6erpGwjeeG9Bas2mXUdOZK7d+l48sYzwO3jnJRqJKPI8pzmL2/WYQ5qU9V2UtKcfJsuk57Hi5N8lmB6oqp4wyMEzmFKGYV8WfNuDUGai8sHSTjSKpFGe3pRGOLaVAZ+qvOI+ECWIdBME3glwWRN/lzK1MGkZ8/aHjqy/qu1mr3ediGiUTCjUctqAm8NoVq7FVkJ04jiMXkEQ6i4S54EDWk1R17uXTiPrI/gwifqImO4dKxX+qCkHrlMT00bdTldv1CXAUqrhjss9AL5oXYqaNiZptNDom159FLjP5+7SqK87n4i9JskaW+df9WLVMoJOcIa6Y5A19UIhzmGal1hI+YlV25QEPjHbWWvQdfClieawRIpYTJtlgJuXfG6qVcVM42DoQ0StZPSwBsZGGcE3vzS7GSTBq8pUO0mtQkZdKe6oZPWBcAZ9LVY9PTPbjjsOdBJkxtga7kadsrjNQzXaOWp9Y9aPzC013BFFgaba1zB6Yqtz0FgYKPR4yFP6tyii5E+qZij3BTH2qttUv0K4I/q607sgMknc5bdahK2kFWachSTFoHMe0qQcs+H2Qgqw1ouJlk8O45BnK5Rjshx0TDxs4ThUZGLeTuxmIRJiSxed5e5z8bu1KHBYz/H9usc4C+UeMo9gMUiWwTie6gNRYo14g4YiENn5wnhLgHqyaVo4gwKNWahAcHvBsu5RGWYFW9TxDVZMkycUljpL+LSHfF5HOqKPIq3DLRK7PahKEaPA1KcsTZ8dOwNjGaSS9E3k0aQ87VA47tigW3JIvUrT6FFEPr8QryaOzcfQDEpprUx8Vs4fGj3H62lm4azHxPdUbHrFpdlvzmtYsXeQpu6D75j5Lxyf4N7IV4I5yCGj8hon4lPjAOKxVaPxm+O/ceJO+RBD6voMKIBq8IU4EifiwkOtLCnzOcPtH6htO4BdwJ59oUcr/ek12zY+SEDIj72KwCgtTBZG6kFIwGwntmcj7wqMDdVU0+D+60VDrmra5cMDAIOALJI7A87wmuPXUB5zwgxoNSdtomG35eu3ER7xtmxn+8Wuau+ug/05AIptLfT4NRg4dOTgiQM8bo84qVMnn2CGJ05nqebwWiPy9oVMDWDRHpeNOWVlgAhrGL35qQJZUe0aAFsfs7aNSEx2dIaWdDWO9yWfn48IaDFDJEACT5RHQQKy6t1ihTqBBIwWiRUouanfGrb5zkDZ89rQDE0IxbcQFMIkwxjztyPclpQRhi+XdBN8fgfhEe8Ii+3HpbS6a7cGkGJbqFMKs2bNU8Gh2sBPezgC3X0t2F4Nikw0J1LHgKOgepnqDC+8sR/UX/jybemHz/z0dT09iP/bby1YCBsyEfCixLITJ46jBEpOaq1Bss5mgYbtI3DQMTIn3BbjrrtWuu+jXDNmNJozp8kXXzT75psWCxa0+te/2ixa1O6nnzoCwj1BQAhwbzQgXXBf9CBHg3FOoAPh4Hc9MvImE0nRnSgpe5g2Az0CYaqdtvzBjMYpY9CQLvfcX+mB+r9uXhuwLyARg+himymQXH72gUdcToqD4nL3RJb031JuhrRHOPBsQVF4DVYUCJ6JnimeyZ6pnkmsu/QL68CdL54QEeKlyFaoQgMIcUkt7aOjHqd6y5uQCHV2mczfZ92FAn3nTpGz4JV6Y7xJfE+u9jf+xDRvCNuZyU5b5cqz3pAeHboM6NavV6c+66y1wcYg8zgi8yFXqdqwEVtts90OF1xyJSlyFCsJcg49yxGRLOOLgUNEIoICIiqZIVyXrBAuT3YIV2RFyMLea0Ik1crblybXp5bnS5dfnaHg7i5Ie/8yHw5Q60iUspxekn/acG5zaBho5j+J+MxDppmnQKGyqKTIlCXbCjnTEF9IMQUE0hHzn74kt4X5kDm4mc8KIe1hur0Mz7TdL9jni/fewsJFdXIRlkJFVVl/G0yKVGnU0mWEEIYSsVSHz3+ZaHpaQzgxLSEcBxJHQ5ipu0D59vFBug188MlBJiaqivnxI61sZZo12rQrxzcXZgH46fZW7emH7AtpuqW8QHoS00hyaGguMjPdBBlY5a5irme6+cWajrilyGzyhWcKQqOsH5GjutOkPlhrwF37O1G+4W0RKBMaoLRbAi+fSDgGAI46tQ3gQAb/FGJ+AO3veKwGHgTIK5sErKaBCupYDqrTTg0Jx/dljUYFnI1N01LADDelWu+s62pdq+et/+1+p9+5UBHMCVYEPIFIcCJ4EegEHiGXUEpoIeyzs7Qj2BHtnOyWERFELaIR0ZRoTrQi4oluRBExiZjqeP0b4gdiqYQZgAC2QL0IDOIK4hpiqu6OzQgYgg2B4KH5Cgk1e2aBTGZgPSkI+g9glvQLwHC96XfN7+rfeb9O/dr58+SvnunAaeY0YzpgmjrtOe08jX/116uvrz6/mniV+Cr6VdQr11fBL0teil9mv8x6mfEy7aXqZfTLgJcOL+2enjFu1GpuJxCAU5ff9D1NSU1Tp2dkZmWvyDFpc/PyCwqLVhWXlJaVV1RWVdfU1tU3rG5sam5pbWvv6Ozq7unt6x8YXLN23foNQxs3bd6i9P/127lr9569+/7YPzp24OChw0eOHjt+4uSp02fGz547f+HipctXrk5cu37j5q3J23fu3rv/4M+Hj6YeP3n67PmLl6+mX795++79h4+fPs/Mzs1/+cq4kEob63yIKQOBapRWVK0yyipRTnkVVFRJdapXuVZvNFvtTrfXHwxH48l0Nl8sV+vNdrc/AIpmWI4XRElWVE03TMt2XJhHpfwwGXXK6v2AupiLJOFEkn9ACg4h5YfKJPkHJOUHTX/KnDgjceHKjTsPy3jyQubNhy8//iioaOgCMDCxBGKDcXDx8AkIiYgFCRYilEQYqXAychEiRYkWI5ZCnHgJlBIlWS4ZcKdGzVr1WmOjEcO22m6bHXbZY7eiavb7Qx7Vhx3yj+qjTkHqTlx5JthtRhIqtsXKt5uUVCQzDTVZl9rys1pjaqtSpkK5cHVlK4+0nU6ooZKTGrB6Ya1QEWUabtVgUPw3hoxcjFiRojqeps6FlmSFkizXolV8JYmmkFi9NnXatdiHdVgnDjxoGj8/2b5HILTciAUJrjQSIYQBGUVBHgrQ9gXq1sCqZ4At1wLte6BumOFZrYmY8DRFfj1Q8ZZL3iDydrCAt/Zu8JVZPWOp/bJiIeEp3mHZhvaG0I8YRdvgoLAGD7JDHH29RLRULqWoBV52sCdt9BmrZNxIMJY2JhkTarhLQ1Ty4KlQGXVZrjKM7yQFa8/ouBPTorI6Gq5IuckZ3MhqRxnBSGCtgonNpEdQk9Y6vei4vhlqsFCrZlZJML0yPrFSglHjxvbl3Tf5FevzMHC1qpHyshYzPwd9VMWMIlVonVMrFe7wMVrdO9kWiX4/MgTjxazZS9cleZdsfHQilJtJGWTYpLXONu9KJR0Dd4rIpc7+JJSg7Ygc8GJMHuzM0rep20TOp82deUWSMBgikfMtt8uRYGSXDDR61mG3DHqHVrNQ5d1M1nuRMuMufilW48JUMzMpdzJQhFpf5Frs3myptFq25En/KIzRwuJo3TA+nZs29IlsctPO/dQd44a8SFMS3bu2Tczuigipg9wnotWOFyopxdJqRWpAHHY2CYcw14y4u3WxsIOl2E7vF6LVVOu1kiOx/TOZpuh7e8IT+30RkJuHUgtLKtJl8fTAW3l7KNhesec7T2a5wVomiqxF+/TlS7AW60YBWBicSk3tL4Qu6mVuwM35t8fagTk6gjv3SFc7p2jWSdzCx8PNzdHyXaHhb677jymfxEVfopiSSRv1a0GIEJJgKQcAerlDRbsqnW7Jba3R/vx2o7WXK5vMr6WWB7jVHGZKiRVLUu3UkGGzG5nNmG12HaLV4q3IHj+gZYxRxg4kaxbXF4u2DXEIpHxPq6s3hkK6PoRkAZmkEXVRClgYQH8YK+q8Fy5NtQTSdQW6yW5MteGzRIA2njF4h2FgAHKxn8/0i2NI9Dsr0+6+PJuxwXFLdQjpp2Vb47eE6bA4WZGm9wozFkAxhE4GyK/t1NYywbQlynR4dTUK6bb9rbxMVVWhcO4qpCDLrqlhtCSeaz/O75BEWHYXke4WJWYWqRQKBIrcMmiNVMrz27HLvHSbtFLvMx0NODCXtmp5N5Pn0GM86UAAej2QFcMQHMQoHTXKnVYWbo3PDM+nEyyraUamAMTyawBca0unxAoL+hjDdQj/yvjmKvoe1tQwciSTGaXVzLI3Yiw/dCBdX8itR9f6f28sR6YBHwzPoJlejDj7FsCkA4/Snz7F9/m366zzDYjvoUq52f96vr3nD5nWQQe0UhTXWBqzdjSWiU5jkFSiuW060bGMTFWJjpTSvkcKX+vv1kN6YqSuDqS2rvGG3XquURwh00WCCTzYDE/iuGPPdKC2mGzXbvciq0mmy/VfRJFmeL4ke3T1taNAN2fhciHqNxskWMT5583bGtIZjdgWDBZGLCTCUIsJ/8+BQiIbSMblUOCC7PtsuzcUMsdeVRyYJq9oOCYrg83JRg3u1WdThx5dV82Ew5JGg+teCUpkWFy9R+RsPjzItErQm7d1bFvynH1an+2dPdGrTqvd9nOL1Wa3Olf/lS1UBPFVA2Pyvqh2dfiIZAS4FaH/IegiRzU3RGMb+kG4EZXzDxuzqTA1IBab0s27qgpGKbe/P2vSWOeCp8OeMnkfDIIEvcuyYTJ943V9//Ga6822YT35oFmPz5cDVCVitfC7uIPvgIe90oKkz+ebKdhEGe/kjl2boNwMbWDMUYgGaVDwbHo6n0gc1PE9g0aS+9Vf+0q4R3copS4olhkq6ryjfF+Xa2soNoYe6Md4XBC2kRJm0bPSfqcXBprY7alnmeno7Tg6nEqFhQ4UJaWC5XIl1cKnv7C9nsPMsAFC5MWm8iQ48ox2subMgVqU5iQ39H81l2UkbF/1qAsypafLH/BwKlYwdRYPhdztMma5B7A+QXRrBHhCGvX5SYY5fl3ZBO8QVImfZStLEu1Ez4mHXGvncPN89vz5ADrd0+S45wE2RtJplhWUXHm0JKW5uiGmbffBbNe81TQDC7JBaS9IbIvX81Ho/0Bvnf9hX6CzqbxSS4ur+UL2Ic7W2mY5igxWMLf2GdjF3lFDSUm7AatwPJWDJk7PgHT4Uz4xywzfAuu+qcd48UVuamUjeD+RBjEcrRyqtxwGvkpvzmh5B16Z9EYyynnRssJ41NDdwO5mkMaK6UYf12vDB76SAI25n0y7EkBPvP31B0NZ/TK2OHx4tXs8YoIXsitT7TvyJ+NNxzYd7pI3Htl4tIS0+fDmY6ay5SjVb9oLWRGzYphU9HRD7Wm7/ZPAFYp+hWlhSrDLiK3jZAmYpL4LK+b6/aCIEV017BO9mYafpUELSbX7Lgret5B+GfxHtlhtP4wY6/lXKasz8myAbHkG6W+cjo9yXi5ELO9tI9GmGhxaP0aEZ1buRsVL1r9bMdEHByb4N82Be/OLQdWGZL8zQCF0UEe0P3MW6k6AC81mb8SMREq4IkxRtIQm0QmBaSBRKxs1DW7V0UgEzeDJQAZM88m4ICxK237mexbSZjlRlr0Ogk3YrNxLK4DO+5Hbo1lzE3kGvppTzwYqSlk9LTHPUJljrDCNVc6MnuczNfHZG1BD1ZtSElcbQXePRpfVU1CnMlOExvPBgiAG23tK0831TY+73ZAIFL7OUMPoyyz7GU8KtNAzYQoputgFvpQwe6jKTRWZ0Y9NyGzMeBcoWPXrMLydcSeM/kDfgxEKovERB/GMr3mgjJe/vI87yjxrClxUemIeNG/P9IQUD4jkPizeK+FdA0Vu2+8n5VpDVJ9ZelkWz9e864oinfFMZyNgmGmQX6qn+hd4IgkJJzByM2LIvx1YKgFdk5Pj2pAhnoej7QpNaU5N9UH6u/sh5Tgx9FhnF5ygfbbjzJtql7DYL/ycxycw1SaliaObbpaHngGWXT4OFPy/XLXTEMZFztuBxxM2YRCEZjkkICJyd09X42NgmdvcT/Qiz3uMkRNjCoLpQq4n/KuqmoIZlGgatOoxfSGlCJIe1enyiL1b7/dspjjguW8rPSFv8ha57qSyucEwn63gHhYhpNIEZxAYbd38D8QSGCNUdjm5AKfiQjZ1wO56Pe1vR1x5N6GWIUSyo89i/7104jqQHAtnX2pgggUKMVKRpW1UBKOskyRQy+x/O9mQsoo0MzPN/AJ/wcrW9MH98FI0STMLomOFORdHZwQFDuud52cYG42dzgXeaCePjYey5YsFAm1ZoS6D1lyos/tqTax0BYNqEvdcITV2gSspYMBdsrEx26ULXTZ+DFtHz9rOdnRvQwKdCp6FiJS5KBwFTRsx0YSyCVk1TESmIwaZluBYcLbNMLNZchOILKO4Lwcz7Y4o+3vIg8g/8FCwFWGUEYhvR5kDoBvcxVOg8ZDIClORnCGSxgIfIf/YXeTZT/U7MWrllQ/0CHPTAYY25lpA28T5mRKYZwjIs3kUrZy+LWl5gsBFbiRZS4vnI3QWkCXTYEEfNywBgeaq91W0WKts5cGhyP9XMazmyzn28vysE1n26A///4v2qnSZGUJ5a3ZbGNIQWqShNU2rsMkVcyqEbrq1w6Jzrf7BNk2e1+njeB3OKDundyudsK63xNAevVWn1h44xaBUNYzabGoQHKlU0MxL5lbzwWgNvuYhxnnSIsEMMZl/I2ITGJvP7JEgIEWxzMISHqApPTaUPUlX/FZ/zdObUVpuYEAHMYFyS/RcWBIniFhoMOouSglM7eRb4LanSdCDHSLqPWZtfFSx7TV+HE3SoqkcOjijC8IGZHynBQiuefXjD2AE3lR0SaWMppaGoyZ+U3PDsmDVe3Ffn+A+bo3g83y2qIf/QUtydtLlAjZDPRizdQP1aoPkV2ddHeBR7qG4U3Eg3sVWkA04TK+G43FB2BRMWPUmpQg+ynlafAgT0nG/LigdMyS+s1gCg6in39VksLEVmgXQxeFH5PmxLSrsHD1ErT745a8oOOcs3YEuuaRGkrXrTu/5eTlaMel1mpbrD7FVbGGTIZoTbyLMVQh/aOaCsbqiot7B84ysRSJRAzdL91mvsiIgnB1yMs9Syw7v+vsgS8Sza3BQ5DqBlKKrCZnO9WrOKpOfNYfXEn0A+OSlGNl+pHKUaqU5O3JXgFSSEW17/qiRL0zTwwvXjd7HttfE4923Tu414V570tHi7hO2m0nBTNqeXWO4gPlpcOJ07ruwBhjkpK1HO2vUAoJm2KkUKqe18R4tYiwrBdHXx/QsZPopiTg3KyT6JaMuowtYxyL8aSUD6yRN7bllopId37UmNmWNqRBIWRTDE2Mag3Z1oNo9j1n2vU53fSD+aFGpmVIB41deTN00a9e+YNO2tfmsL2vaLrT/YkDppyuk2G1E3MXtqF7XsWZu7wHonG39DlWtrb3FNCuXtduTNW0Dg4m6+FoMIIGkQ5DyYCk7ipAU1KQsxx6dVsOGFlh2fTicSn3p+1LGnYKwbrRZ3Mc4Wj8Nnnch9Wib4IVG3uxlBrZ5vbQjByWqQazy/UjFmixkyTXHo0MeuUNIK5WKuyhp3F2IEHEpHR1dTDM4znLLGS7cydF2gF5KOXiJcFwgLsjXwRdkq86g4g0K3qagygdZeVEQaX5kHnxzNC7Ba9qys8hHlnHHZnlZ7Axx4fnVnNMka4BVFWT9JP2JDam9BjnZR2w+aiqgWsg0j4IbFuYbVdXxnpxn34tDQvCYZpUOGPvblBDEfCFo2gRAOV7m6KqsXes+EY27QV3FqUvyjmzqiIhFHnCzSK9r2aXROxzRMPrA1QchchzmrqsQEdn2tcwLwTiyqgy5B+FD+ywpq2N3yA97BF95YI2QbNz7wQQghbvHmataSBTEMNOHcqE57Wn2vvSEufFZ3ZdrsxYwIMFriTJPXhHuTxAufA3Swq6VHBMvvAsJhBEdQT4QfoL33eCIgWNMVYA75bNl6eiDae/trRaSoizWRt39fK7Em6+w4r3iZ59P4MvKtQ5XTIjrnAM3bUdMK/1p4DqLPWcEGQmMxpkzSoJFnNEE5iOn9UOF04L42AC28T4uqJ3CWa5FvlEgHBJb4EuM42c+n7w4nV1Ed92/VirttsTPFxZiZWKsGsSFk88V2dOq+xbjYC0M5ZHJeLVN/F6+RYHVl4AvQD5uYBgik1HG09npwPOIvqUgYvleFsBMW1UVQQhMJlyPx6zyHQlW1YFgRWv/Ql4jZbSqwKsPFcnrHuDUrmYdr+nb7ZhCTgDOfaGxoP842xvHdhHEJPC1ZbD8SrD79OsPpqU7XxthfTl0b0sL6u99S/VDTFywODYjPH4dvj+q5zPB/LVSlwxOhsufbPfhUjoMpxGnf1nsDYMJyU/evqNe9CYGNA9uqKyieE1vLs1J+VO2J86DwuH7W51b0/Qtxd7qojW+/HkwH+KzMjzC5BV8zwyG+FlwzF4vQsgyRX5mJ3zfCtgLO3AjbnmuinfvKSI7j0z7HJvNg9YbnQqdE6emKNEscopTFri/geDlplZW0Ctob3Mles1MVNPK0LfltHL625USVDNTrzlXAshWdfXM+rqAP2sFtCyb+3zKfUBeZH9hg2C+9No2Y1GP4ugQEHADk1xbcpp58jGbX4oRR8kbwcXLvwMA9GHzxNg1AQU4fLQWRHlH+1KEQQxucHyQHk8vObdOFZObEcWmZUmS+g65sgDuhcAgWB4tYkmkbEFCsMikhmXFFME0Hy7Xn84W+RrzjWVp6bGK1AyhrUXPzoYGeGHDX1i2c1xBcVJALMmbgwlxAbotTpSl2498Fr+V13qVOSEEFLYyR+PXeeb8Be/ootwkRVFpPC3SeW2zmb1Ak4w7MOTIlITzWKERAkcY8+wpqBgcxIRuJu22iyotPIrV7SstiLesgK/rGZq0SkJWReCtHpjlsSRgVPQhD0xdSKgpPIzJEwJZSbQw8vLQrOVrs9CRJPUWr7Iw9yoiI2sIVlkpZkoONwmwPKWgGHMHYHU4kFRHQNS6Jb7/QUyikiAaEas57B1c6Q3ImXAAnKpxQIQ/dxkIe5ndmRiKVscGwRERHMfrlqsYTDbaojjgWaSjj6KuMNGPJG8b8uGmBU7knLXXcPvt+zx5DWyP6mIqVOQSZl5SKctxQSbjk3l4p7CM9LUZGWHOHNzcC5RZgI87LSWi/PAfbZ2HjhCjNXU6BRk5kxQChx/5lJAQqm5Oob7lAZMZ3Zlg/w0mfhvEWk75IR+AYjInszZd5u0T/siFFkuLW52Tses6WxkiI1l5SRShumE5UXwpaZEkBexr9KmpLew8Ym1t/qr7SQSfuoOHtVBZnU88TiLJJ05MIEIMXbYAxaRq1/N7MqbaFfjC+OCWDpwM17HzfshY+l9/lf1y0GfdvAaTwfXcL/Y3zumEmLnUjh5qWD12sC5/Tb51poi53nDttbObhx892rTx4dQW73jzl0u6v5MjkgWTgmURy5oYUEzyRhC7WJoPFjVZ6VHRqjXggh2DeZVT8H9+GFRKlXvPQbcFCwyc+DfekjfLOEM/MyuwAAG3ZjdSrHg0lGoNGj9pHTqs4cDL+rWe/mSKA1hWBO5F3hwoLiKZCiZzioYqSQnqiEGsP4EEfHrUDeFpE/K0xCxl/zChjNUfwGodOlxXGiU5Jk9JYMgy6heqBlMrqxwqSY0pzk8xfG+u+OboJCWlrIzqpbf+FBIgZoeYdf4d95DIDuKzbFnOjdtenJGewt7FSXNS5E5cs716GaU6pqXX/rK19ucz/PAJAvt8lWd8okSenZviHoa1l1cAsy5WP2tnt6AbjBlO1VelLAoWg6IUO6IUQUNWCpi/9WXmXR261Wi7YGnt8syoi9wkQ2oWdplBxiQg3Loadz9Pss8DFYTcW3klQbIZM4wBL25dS08VpCbR0C12SALnLla1j3qyBmjlgL/txVF6QWYBHSTjxprZ+n/RQrKUREbmnuVSISOxBPTTKmjgFKDIu6NAvk2rMrE9Am+183oM0UmYrl4d4eilqqsbx41R2XZGXFaDJ70ED2AKjqmIXHyutlblHmptYFjri99tJ1Aq2/EBC+waT52sjayT2rqr7iS6NQ4yXfcfp8t299LwCrczBjEw+PGNLnoTCQfYhn1QCylcsw6H9UILl+UNVapE+x06virviS9PGQfBAQGMMF9ATL6pTlSpY5kVrepGZqMdbAdOox1rFkozn4/t6asKC9wlxjqWHFW71Nxtr3hnTV6moEzb/4xvsAeXAk/C4pRgnkoRow2kY/AYe6m6Vg26R3clqtJimRUtu6T+TsHhydtBu/m053ro2J3LL+Rp+kmQok3PcOVUi6y14d1GCxxgGnzSh+3PFke7CClCCSsuMkEbSNcJGjuy8Ea4RJNuSfLH6+quCHjAdifsEv4z5eADKIH/e+14noDNidFjkLWbFnySyifzk4BfbyQZxhEd7hHwd2FjNvrRMu9QPstZYPljMftdALHL//nBdBZPvKgSIc9Lbmvb1V9E4/B4I7NRBavAkdGTvmwaO6IZsbrR8VdUWGxjnzMwYXhxXFxuU+1W41ZmIzw/XusESkbb7/Y+D83eGlUq7nnS9iA0db16Pdg4ilghVDzZ3StqCIx+wgNyPlMwk/+dmfo5H+i605HDezlaVmdi4hRCupeh79VYjh3HLvaqr6EXXRiniDlj9U9yeS4ISt0buBdoppF+UK2fuZCTVYQGFeaZdYplRvF9/Q3I+MRxUw/qWVSe7QB8nMEdWSL81In+k0F+Fp1ZHqEnZgq5sPXTGcF+Oz15qpbH5uG4QqYoQj+zApyy/YlkmQ8527KEsqDyCebEFzaz1t3jZnlK1qq4ZWJC5X4vEEl+8Z1GvzDPncfn4+e5c8OMgLvPuS8MCg1ehOani0XpotVzB/huzPKjgqBhxxFH0VFBObPTnesOgjbsDtzNgvxbJVDHhpw4FUSXRgnIUUQ7wkiUD4/g4IhywVkJcEIHMsczlOvAXRZMk4XALkKLmR8+7wKcHxLxGIGNkEjmsb1s/7nv9JBo+jjmOf45cAbJvOQ0rgS81jldV5/kLLBY/HzpCDdYnbGWNhyMT742cSlCKcY4JzkI/J88WUjHEVZXrvQGaPuIVFkqJmOeVRh72DqUhUlKMJSJc9gDRgfirnO1X9F1Sibm53tlgengA5QPBv5A20ZMYfD9yS7EXenllOVFq4h1+m4HGQfdtBe/mnetpcbWB/39KwTOgDHHAGTjNKFw0Y1ey1i3ngjIHGVMvTXL/wnChpYPaG3CWkE2tq72eu56PnSu77KdHnbXVvBk3S7A7IqHnkM6EeeHJxwiGruY4gytLeex1ucwBh4GblHKaEes30CjcYHnvbOmXuM+ATSBJ1ACim93FJA+Ciyle+mXyCOMh70c/q3x5Ev4ZbdY9SwvJoOzjM5QcoDRLaZ3eGB4SHjgZ4vo0tLomNKyaBCET55B5z2r9uR09gM9+h8rVSs9TICzSUmYhGGzyoiHO7INmDLtKL/8gSJvneAeD7sRifvb3sWe785n8XAzp+RyNV/9Gt0F0O0tfEZ7wgCm9Q0dBwb1/FOZC6prcPlRpOgu4P8eQx1si2JzZUeP5THUNGxlZ3lkN5WDzQ0Da4eTeXLP+/IkLvdnt1GHb+TmdACVdwvXfFmVDT0M27Dy8VEVoO7JHlqrdePPtRsVpnpN5vnOrxI7+0dlT+gibatnCAqmRG4w5tG2xsNV0CXhx5iJGQIR8upWBY1k7q8+1DbGNn1cB87Rm+BibMWNMwczJUoeSHs1q5u9DNqs4bTmhZqGi0Ibb08/nBftx5C+CQi7z+uL9O8oR+HPCH+7xgPyTlVswfdg96i6Q4ez6jriu38Tucdaqy/6w/21sgxvS9vfYP3eLZQmtM4laCYVFTJJbKT2cztYx3QgwGp9UxMuWSxxEiXLQ23a3z3kSpj+DS64MDKHS8BpqrTwzqhkmlBsCBuqk9KChXFxyore3Fwtx2Rjzzd3nvMs45qf7WsnSWZ/V1wmK+JERsmW+UlUCe0SklxX7voPF4O5eEm0WlTtEcWJKoyvyhuuUsKUZIA3sKGcp1RAHOXmw3Rgz8rheM1VVfFJyEoIOxUPd/arTTq2voPco2/dXf9QsVqka4PMcGlbA0Kfyf8NG2lsE8bq1V7oieyBzq17n+aU9+R02/vjyLP8oUfMCI0Z9+xee7hHFwuKthU3zqjgsU15KEPAFIyPwQFwbeYQB78etSCHSR/oLhBxUr9E2d0N742D4dYEwfwEMtJDoEwU8wI7LgNj0mhHndETpZWwEdP2Rdrs0u5bKnFQMTtceyvdDOM0/sjmXNwils1w55jqBVheW8MNpwbYoJ1JSFwAFXh3/u5TTHtw2F6T5dOiPaM7Y2jXmGrxyhhz01q/SG51XNfU8CRnyWZ709Fz2UkN8pJt+786Vfz1chT7HBJlYVB0eXeSnFK6OJYywkYxziFNkrCBLo59Q77OdZCWlvtOgws3E1MFIRN2jeE26oeQKF1fCVcyKAyHAk63bf3oz1JcHGSRXfV8do+8XL/igbuYUo0Y1EZAK6A/6MbkXtECVotHKS0sl3KdyFIuBxGTuePaYNrTrZarDZcu1qnkKJpnrmt1Jch6QXI9a5HVHep+dmbP1o9itY8tdgjdd5jUBztU9OCdGX4fhnvN2Qmmh2w7I1WNFVgJ/mfjb6JUQcWbRvgNC14eiCiLAGZSRiVcuY6ybiBVE5yTbsUY78dZAcZeiGKDqBzO5fj/2aYoQ4Y+ockEChMWaoSSvgZmNiTgbIUVrqSgZl72KmxjNNNLSNKGan+xfqyhxy4o7UjUWMrH+jzW7xuOwTe0erVOe0Dfsvex+0rzvxUs/edAo7f8P3HgK1uv5n8vYKWpiLBdIZDvhxWXxIsWrHgc0CI4ZDhLYUokwTeDpIA5ToFIDyhtc4CdYGS2yzWm3QmOe+BxFhsFlaB6ZGmeh2P5yVqvJ+BW3/+aLHVUNEjWjn50N0N+fKl7F2jJehGZEvQFWwmFnsJhjySnS0B27Y6gdf85Dvir3Uc4LEty7YWGi9PJfEQdY9aEgOnPavJEQM1VxrakCOdiq6l3X6XS2LIkz+9GO39XfTnxVXleY273z7s7BVk5TjSuaqI95cBiH3zsTNT8CMac6MvBqsi2V4/447J1Rv/jSX1cTVMS9GSIfKyo35M9lCy0vmdSnukATcsyc5OB1nRr8d+zcrhPhP/1qyqxMKHgN6zRwaRHG5jHxmCL0WAPna6aVR0oCKymVmN3Wlp7YasB4kx+QI89xT7Hg3RxcvIx29iXpVOXHarIvLT/2ogup4rf7FCMN9tkKNihK90uFXPtMtBeSau8U6cMs02sC4RIcnkWY2YrkMzM55e+i46Rj9fHPenLDlLuWDVpCeRWNrkS0Ufum+DT/MnpM899HbHtEDKD/Tlc0fkVZ4gPKzpWhreZL2yF2kBTchofdqxurcuwnYc7tzJAWh6PCrW6cKaiwqxZN6ixvTHYFpYWcFmWnsz3BS56rSGfE3XYyA6qjaSapY/MtPKTOaCExxDSCWA5YFy+88iruK6KzYCj7gyYNU+KoGjX+XrFFrrZRUUN1x/5vGLm4dIY0If+eJAFt9DMW8v95zB/Y8D8rlfdnTkM16QL53kRY8bUe/LaJyHuuz2z4JYrOw0v72yBPTLZDDZJnSa/SzUayz0mtA93T2LkgNj076Yti/V8I5ereOpsqA8P4vtI7AiuMpbxYmGRd78n2iVGTXIt/XJxNZnGodgx8SG+RLww4s19Lm4vCPhNXUv9c8ehlg23ZLiV9v+XO2Rp9KjCogTi20PWEPI0s2kUHm1qOtJ0gzwkPy0QCtJos45LpbpcM4BMZ9/8gZ8P8sFfx/ur6sXWfEdgsHqWAKML08zWDebPl209ZVuMlHnLxtTtday91r2fbSWPt69Nts7Sxi674e15m4y7nDhphfJAYorO/2FiwyfgKHYmc2pAPOjwX9RmL2lvvtGyOeVc/Jx7MN2f6q/PFdBtdDlUv9yzgApW5NBLcPhiejEe59nmOu8+H327S/6p5DDI+P1TV71P8C1J9dJ6kiV6sFFmfQdPBv8GFbj48wXNaNWbtTMugJUddt8tGVuX10F70XmQytt7M2UGdV8l7L2fT6uG283y5KqS+MiydN3IvxD8SAnMjZKLXxE0J4n7YVw4UoLg/6V71hwZf6csOelVaNbnpByRMFvAG/qdvD4rayQzaz1ujpG/52kiGmDfsMj/esJBgbFiIXqEfJAvUIgOr0X7jbq5bvFDA7PTKMexcgvsM6zlMa/Wvx9bOQU623zcMDTV52x+DG0sDo59MOTo7OhJWDk6bKtu+9NV3nO597Lc7U+w6dbtH4vvIc5nnYOIbkTgm5dQ/zyjsHsws8jHHx4Jjdv6+vHQ+jdPeR9e9rVPqcp6e9RlU0Czh+1nG9GYEoJ2yM+bs6Mz8nxj4v1apeqcPpVclRedmFr0ccReeVPAFoaHsQOjmazIFFBZU7KlhF+STlukpZeAW/+wcHl2Nzm0ja6uj11r3TYCspWNX5GogGX9JcHLYmR4Fv3Q3ZrjifrrvVu7K2h8LcvIGMrIlIkSeG0VcVyhETJfBhkycTy/skrBqwsoDGJlZ4tZAXQ+Nxd7KCCYQd0t4ZBIC1k6wHGHsvaTXwQTVmBM1pqax5rq6Zim+JT/WwkQLtpm22IsOenpnQihQ9IQFm9ErIVYUpVB5w5ZtscdEM6QEViuEVw+RlmQqOFQtZLSxIu9mTenw3I9iZRmTixQ7f8Mg84+8v8LuxtWHf9JeqVdWG9n/L6zYX0/HP8/NjYYYm0zsAxb7RZIcXxmlE4sINpcsRpAm09g8Ts8APdm/4iWJpQ8h8gQ6WgjsnO6Q/VJWYb+VzyqxRqJ2ro+quVaqmw9PZ02M61IqLzY1E7a1xBciAjF2pYi/7C6TDjqIzE7dkAT3/iJt2CgL9AsJWgaF2tklYEeTbQqI+KOFOXFtB280zz1+6ExxmQXQcdOGAlpQ4YEGd0aQ3GQETWSrHJp7nXdaMO6znKTbdod71xxpgg1Tv1PTvioNl2FKINGvdx2uP7GNP8ruk3TMkTouHtpmGnphsyv1UmMlAqZJSFYP3MqAcUW3YcQhLw9hbZqG20z0Y5Sma9XTL2AvjfYF6FrJXXaOHvCtMjLRFtreBdWA/eID+cX+6N1NcI60g1t1msaZpU0VaTmOMUjbZE6vsWGeqQ+nGVOrR3vSqCR9ukUpzBTBcrQ3NKYb6bwDAqvO/2u1V/XcLWO5gJW7/YRSAN5pQCnr6F1Mv/rKtudhORa95DmKT3NdQwTDUtz6sBQ2TIMJkkD5WR8CiC10nx0NPQqMQFOqFrEuwa9/T3+h82ca++iDAbMNC0WeiEfcw0zHySEhCAEUvfXbqQdBQJIHQNdlKuVCKWnraevg3qIMkbpGnO5Bug91jo+cI3pAGf5kln4IVtl4+gL8TbHZF3ZOga01g7FbIDyXTvLu/fv07nvgS60ORNnybdYD+Ja6LFpvO35IjMinda7qt0i0+OWEKNLxOVF/6EjtzKVGC2hLpcytFCXnLFuNmjfk0f8lxQ/7ZAydzJ58LIMg8PM7RoLLaaVvBOfp+jw8Xz9saRbWcdBLamWusN3nDsA6LZIWNCnxiraxNxsDMx4x10goguR787nkfgrl3vSy+zH57xSihbWAiYI3/168VnnfKX65GFXeY9Wr5bc7bB5OTg5fHr5gDGOg8VKK1u46f5t31fMbE/B2Ak4AjBbG/BAIYSf2WFNHSQAaTWQCQrQJQtToUGjrcf54tLLoDG4dLftjVwo2G59spYgWyh4kAlqIBPCWxqWwE4oDIJ1lJkrAvsIP6O1XAbuJUiQPQEyS13xNS+238/wXghBLi0AGfpDU3wgL2NyA1MbYlGJEES6BBJIeu2AaTGXia1zlgdFHeohAfgaDIJkKDxHEtxBgcRcIk4gGAROoDCimwiuXhDFuSBoBbrD3STz19ClRxoQc4k4EXNBnkD54DJ90IBeDDmUMAmKagYYBtegN1xNXQWFbRYvEcQ1SIKC/q3wStQVaBJSonMu1EOCFExIojMT5z5gZKk5cO1+UYbrrVoMpQe0j4om4sQhGNzunKSzGECBvkAmOEENnEeOLOqZLZ9Z9k897d11++ek0y7MDz21edl8Z3b5VSuC8LOp1PI29rhbmwLIC6uBBgVj0SPhc6BMrRh3MVpV8GCPdpmgurbI8PwgqNMk3z1+3kP7Xb0eFf8JQC0S91cdFH4Vk569vL+kUhSMjhLUaY7aJqUXHgd1hFp4m2QSvLW415l1SM88LnhHvLVKaPKGdwRfibX3eq/g31aVNn5tcZwpNao8guz5thaNb+1bbjLALR8DgTeOj0Apyf8Fj8h+ME8oOlCYTG21a5MiEJSGV8Eb5x3xLkLpxLsBCZXgqw1LX1oF6JMqHH/ivzazGL9JD/nxv2c0bGz/z/HfInQymmzlL8Vu7jcU4niWDLLMykP+6Skxx7Xk1O258DlBXNmXI/vMwNfOvKspb+1rzBzMulBpyz7b8/YQPfL9ZRucLRdGxfBjXKUN1ucHfA6e9o5RFnhEHTo/2WcBKReXaU01ID4XpQPmt6go5QSVfyjqdHA1pMgbC7fDLWcV+qss0sou9Qz6YEfde3RQUllwoQTsy6T0wbqcDl2tReY3o4aGLhvovKWZm7AxJ6DrR8XWmjIVAT8jlyRvx6W5G/wIDt1xYv9Ka4ETTeOIseUgwvUVpKV5lUCOmMDu5IdGXy1wTJrTtEyvdGaUrTM1FDbGxD4RTBqdDdlzDu3CeVlJ/yNnBniOs5B6z0pzpKgllniZNRYlTKQo8uavlsQqFr28RSofEsI8JBmJBJt1DiazbO1GuQzUdqB2wpYO2Itry01smsA/5j4YMKgxgkIc7li0qiE0TNGV1XnvwL8hAPRCycOP4do8djcGUizigCNNQ4JCjnHz5c29KVqyfQf+DQEAMsEOfUIr8wB9z+ddgC715gAVnQu8ADVHEWt4PiUAfUMvfiH0budbHMUPg1fRFnzVcAIUYasYIUW1tIrFXAAdgzbBGqBPvGkPrgP7JpSHzrGkVLM/66/BtqZhdmb0F0gJfJpGsVeIbRRsB9oPBK8/o1sR5dsB2LQ7TsOi5id7wQm0AnK5ErDFa3rTBJsRqy91TegItU+fpFDtlfdETKRNY+5V+ikVhEShQvT26idy/UY77meM0dCSh+j2n6KtD+Ut+p1VdQW3K3Q6S5Pn3yhxF0jy9mJoWmBCrNk7DhUL2FjDn4N9ib3t5AwqLM0e7pOrHwxdBaFbVZT8RG7xFmsJ7ACtwj2E6u2EwqocpzNG/27dlH24dLt9U/MobbAO4LHnOE+RMK29HLPpdHcH/OjODYBK3BeWjg4aPK/MCSZgGgoRHAgowcrkBAGOsfYlxYwAqUwKXmr2SrvUTQ8xHkstg0JIhn65Sha7TkjCtumSY9P9khcMsRSY4QyK3v+FtAX9ULfivJegrgsA/vchQazeKyEYxlBCSvlOkgbMPytpsvrvJS2YMpa01RRF0sGqRUkXtRUSymA7IOlxwgDS994VDLagATJMPMVe4x9cQL+vHyJIHl6lrvHl6fkZE7+wR/EYS4l5RN+fvhIu/Tpg2rRAyXJmOXclsdSDaK0Ht1GNmDtQNhGjRzNHs6A8eCf98fQaq3TNGLobxNUcKAen5qKQbK+VZYyspHSrawboCEgpw2mWfDjN0aDzqMwiD3ymplYDzDFCUIpZUHrH+QTUdltKC/3YFJ3/Y+BCQGZs+Ln8B+VkP+awSpZ5Czf4WiFF5f74/PA05RCFZPT54YldoWY3OQkki9JYM54V64NV2rwuF1DjfmRmtXx8k/44NDqIet6RnyxK4L8gQD0OsOhAavaH+/piWhBoAYzPbnNCzJGesZzFRvpMWBDeL5R3gcdVO/tvPrdYc7JkvzgKZCGzstM08dBVC4RAigko6z9CabwCYQLi0ixENKcL8ff9FibTvVAmj2iclLfqPNQf3lFBgHYqU3wdfmvDO9uZwY+NnW0bd29rfVLf9100a5ovvvg27lmQev3j2tX9yarulBupE9dv453Mp7T7fGf7o+qvw/P74M/0mbmWzIysFdk5W1bm5b6eKCo0Q77PJbQ0Wpnv+DCr6gKz8yfhDiAeQneOlPgI3pkvKBA+jvzOObDokeABGmQwPE8jGAcXD5+AkIi4MQc8S6cQoWXCSIWjv3X98NNb7xIhUpRoCbMshTjxEiglOpglk6kAWuMp9vZM9t6H5LQjK+XKk9+U6RRAo9grj0vvstkGmqSncOwST/qzdFmdC5rsdcW4s06nyCrFSpQqU65CpSrVatSqU6/Bao2aNGupPa2ttd46X9Kmve16DdmpS78BJ9LROefTqUu3Hr369BswaI211llvgyEbbbLZlp9wgzmrVRQObcPirtezoJZUGK4OcUO+UHWIk0IpStfS2KgYA1MBmR6m+/u8kbUThWWhn0kb+9BMiV47W00tJB/RxFrcGIMWZR5vUellMjySAZiEZtZmKx87EvGC6/SKZdF5awTRAS987LLg5F2nm9DgyPo59HxeRTFQe4n1UDCCniW9sR7Qr1avb1GOffZcnhIDhTqLAxXAZFQ9+6shDHcu5imGcpUSw2fcsi6htUPLu84wayenrBdhTApKGAsKxlQ18G4YPKUcHnRZbLdUamMrZZOEMw0TqnflRM7X8tkfc13RPEl9tAhz8WCFuWBhbu3KLgio83GhQ94Jyw7PCJbUzztLe2Y9rCCwFQuwomHeXcXYOe+GZVqu0Alhia3sjiHH8Bv3tOd33O8i7HHSP4/vfbj3r+WGrfltFAusvHvFgsqVr59reN16P7w8t9Kuq7sIEdQEcNoSsXcmukVa4mN09G+0ZcihcVsFERq/UFLUKLa5vElOUKu4vuJP19oywk/VNsLDvgFVN6D2Mah6DGpowPRWnVaASuj5VZ8uftKvfK1vGM9n+Dt4xouZVN2RFi/r7GP1p9WDlx6ompRmYUF0hjlQHqHB25Pt9Fn3dpbHb/jHPFoUA6H8pDVHOo1omMdpy7ygfDK6mLRtixtKX3IPWjOnsSNjONq1TRyRaqRs0gga2kdXRA/giCD+16AB) format('woff2'),
+ url(data:application/font-woff;charset=utf-8;base64,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) format('woff'),
+ url('GuildfordPro.ttf') format('truetype'),
+ url('GuildfordPro.svg#GuildfordPro') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+
diff --git a/view/crmebNewUI/css/style.wxss b/view/crmebNewUI/css/style.wxss
new file mode 100644
index 00000000..ec651b63
--- /dev/null
+++ b/view/crmebNewUI/css/style.wxss
@@ -0,0 +1,94 @@
+.product-con .wrapper{background-color:#fff;}
+.product-con .wrapper .share{margin:0 30rpx;padding-top:25rpx;}
+.product-con .wrapper .share .money{font-size:28rpx;font-weight:bold;}
+.product-con .wrapper .share .money .num{font-size:48rpx;}
+.product-con .wrapper .share .money .vip-money{color:#282828;margin-left:13rpx;}
+.product-con .wrapper .share .money image{width:46rpx;height:21rpx;margin-left:7rpx;}
+.product-con .wrapper .share .money .vip-money{color:#282828;margin-left:13rpx;}
+.product-con .wrapper .share .iconfont{color:#515151;font-size:40rpx;margin-bottom:10rpx;
+}
+.product-con .wrapper .introduce{font-size:32rpx;font-weight:bold;margin:23rpx 30rpx 0 30rpx;}
+.product-con .wrapper .label{margin:0 30rpx;font-size:24rpx;color:#82848f;margin-top:22rpx;}
+.product-con .wrapper .coupon{padding:0 30rpx;border-top:1rpx solid #f5f5f5;margin-top:25rpx;height:80rpx;font-size:26rpx;color:#82848f;}
+.product-con .wrapper .coupon .hide{width:540rpx;height:80rpx;line-height:80rpx;}
+.product-con .wrapper .coupon .activity{height:40rpx;padding:0 20rpx;border:1rpx solid #f2857b;color:#e93323;font-size:24rpx;line-height:40rpx;position:relative;margin:19rpx 0 19rpx 15rpx;}
+.product-con .wrapper .coupon .activity:before {
+ content: ' ';
+ position: absolute;
+ width:7rpx;
+ height:10rpx;
+ border-radius:0 7rpx 7rpx 0;
+ border:1rpx solid #f2857b;
+ background-color:#fff;
+ bottom:50%;
+ left:-1rpx;
+ margin-bottom: -5rpx;
+ border-left-color:#fff;
+}
+.product-con .wrapper .coupon .activity:after {
+ content: ' ';
+ position: absolute;
+ width:7rpx;
+ height:10rpx;
+ border-radius:7rpx 0 0 7rpx;
+ border:1rpx solid #f2857b;
+ background-color:#fff;
+ right:-1rpx;
+ bottom:50%;
+ margin-bottom: -5rpx;
+ border-right-color:#fff;
+}
+.product-con .wrapper .coupon .iconfont{color:#7a7a7a;font-size:28rpx;}
+.product-con .attribute{background-color:#fff;padding:0 30rpx;font-size:26rpx;color:#82848f;margin-top:20rpx;height:80rpx;}
+.product-con .attribute .atterTxt{font-size:28rpx;color:#282828;}
+.product-con .attribute .iconfont{font-size:28rpx;color:#7a7a7a;}
+.product-con .userEvaluation{margin-top:20rpx;background-color:#fff;}
+.product-con .userEvaluation .title{height:86rpx;border-bottom:1rpx solid #eee;font-size:28rpx;color:#282828;margin-left:30rpx;padding-right:30rpx;}
+.product-con .userEvaluation .title .praise{font-size:28rpx;color:#808080;}
+.product-con .userEvaluation .title .praise .iconfont{color:#7a7a7a;font-size:28rpx;vertical-align:1rpx;margin-left:8rpx;}
+.product-con .product-intro{margin-top:20rpx;}
+.product-con .product-intro .title{font-size:30rpx;color:#282828;height:86rpx;width:100%;background-color:#fff;text-align:center;line-height:86rpx;}
+.product-con .product-intro .conter{width:100%;}
+.product-con .product-intro .conter image{width:100%!important;display:block!important;}
+.goodsStyle{margin-top:1rpx;background-color:#fff;padding:22rpx 30rpx;}
+.goodsStyle .pictrue{width:120rpx;height:120rpx;}
+.goodsStyle .pictrue image{width:100%;height:100%;border-radius:6rpx;}
+.goodsStyle .text{width:545rpx;font-size:28rpx;color:#999;}
+.goodsStyle .text .name{width:360rpx;color:#282828;}
+.goodsStyle .text .money{text-align:right;}
+.goodsStyle .text .money .num{margin-top:7rpx;}
+.goodWrapper .item{margin-left:30rpx;padding-right:30rpx;border-bottom:2rpx solid #f0f0f0;height:180rpx;}
+.goodWrapper .item .pictrue{width:130rpx;height:130rpx;}
+.goodWrapper .item .pictrue image{width:100%;height:100%;border-radius:6rpx;}
+.goodWrapper .item .text{width:537rpx;position:relative;}
+.goodWrapper .item .text .name{font-size:28rpx;color:#282828;width:453rpx;}
+.goodWrapper .item .text .num{font-size:26rpx;color:#868686;}
+.goodWrapper .item .text .attr{font-size:20rpx;color:#868686;margin-top:7rpx;}
+.goodWrapper .item .text .money{font-size:26rpx;margin-top:17rpx;}
+.goodWrapper .item .text .evaluate{position:absolute;width:114rpx;height:46rpx;border:1rpx solid #bbb;border-radius:4rpx;text-align:center;line-height:46rpx;right:0;bottom:-5rpx;}
+.goodWrapper .item .text .evaluate.userEvaluated{font-size:26rpx;color:#aaa;background-color:#f7f7f7;border-color:#f7f7f7;}
+.promoterHeader{width:100%;height:220rpx;}
+.promoterHeader .headerCon{width:100%;height:100%;padding:0 88rpx 0 55rpx;box-sizing:border-box;font-size:28rpx;color:#fff;background-image:url('data:image/png;base64,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');background-repeat:no-repeat;background-size:100% 100%;}
+.promoterHeader .headerCon .name{margin-bottom:10rpx;}
+.promoterHeader .headerCon .num{font-size:50rpx;}
+.promoterHeader .headerCon .iconfont{font-size:125rpx;}
+.sign-record .list .item .data{height:80rpx;line-height:80rpx;padding:0 30rpx;font-size:24rpx;color:#666;}
+.sign-record .list .item .listn{background-color:#fff;font-size:24rpx;color:#999;}
+.sign-record .list .item .listn .itemn{height:120rpx;border-bottom:1rpx solid #eee;padding-right:30rpx;margin-left:30rpx;}
+.sign-record .list .item .listn .itemn .name{width:390rpx;font-size:28rpx;color:#282828;margin-bottom:10rpx;}
+.sign-record .list .item .listn .itemn .num{font-size:36rpx;font-family: 'Guildford Pro';color:#16ac57;}
+.coupon-list{padding:0 30rpx;margin-top:25rpx;}
+.coupon-list .item{width:100%;height:170rpx;margin-bottom:16rpx;}
+.coupon-list .item .money{background-image:url('data:image/png;base64,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');background-repeat:no-repeat;background-size:100% 100%;width:240rpx;height:100%;color:#fff;font-size:36rpx;font-weight:bold;text-align:center;line-height:170rpx;}
+.coupon-list .item .money.moneyGray{background-image:url('data:image/png;base64,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');}
+.coupon-list .item .money .num{font-size:60rpx;}
+.coupon-list .item .text{width:450rpx;padding:0 17rpx 0 24rpx;box-sizing:border-box;background-color:#fff;}
+.coupon-list .item .text .condition{font-size:30rpx;color:#282828;height:93rpx;line-height:93rpx;border-bottom:1rpx solid #f0f0f0;}
+.coupon-list .item .text .data{font-size:20rpx;color:#999;height:76rpx;}
+.coupon-list .item .text .data .bnt{width:136rpx;height:44rpx;border-radius:22rpx;font-size:22rpx;text-align:center;line-height:44rpx;color:#fff;}
+.coupon-list .item .text .data .bnt.gray{background-color:#ccc;}
+.noCommodity{border-top:7rpx solid #f5f5f5;}
+.noCommodity .pictrue{width:414rpx;height:336rpx;margin:75rpx auto 30rpx auto;}
+.noCommodity .pictrue image{width:100%;height:100%;}
+
+
diff --git a/view/crmebNewUI/font/iconfont.wxss b/view/crmebNewUI/font/iconfont.wxss
new file mode 100644
index 00000000..f9a7efa0
--- /dev/null
+++ b/view/crmebNewUI/font/iconfont.wxss
@@ -0,0 +1,463 @@
+@font-face {font-family: "iconfont";
+ src: url('iconfont.eot?t=1552643133379'); /* IE9 */
+ src: url('iconfont.eot?t=1552643133379#iefix') format('embedded-opentype'), /* IE6-IE8 */
+ url(data:application/font-woff;charset=utf-8;base64,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) format('woff'),
+ url('iconfont.ttf?t=1552643133379') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
+ url('iconfont.svg?t=1552643133379#iconfont') format('svg'); /* iOS 4.1- */
+}
+
+.iconfont {
+ font-family: "iconfont" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-jingpintuijian:before {
+ content: "\e60d";
+}
+
+.icon-xiaolian:before {
+ content: "\e60f";
+}
+
+.icon-yuandianxiao:before {
+ content: "\e82f";
+}
+
+.icon-xiazai5:before {
+ content: "\e605";
+}
+
+.icon-icon34:before {
+ content: "\e62b";
+}
+
+.icon-webicon318:before {
+ content: "\e6c2";
+}
+
+.icon-iconfontguanbi:before {
+ content: "\e643";
+}
+
+.icon-icon25201:before {
+ content: "\e70d";
+}
+
+.icon-cuxiaoguanli:before {
+ content: "\e60e";
+}
+
+.icon-miaosha:before {
+ content: "\e6c3";
+}
+
+.icon-huiyuan:before {
+ content: "\e60b";
+}
+
+.icon-caigou-xianxing:before {
+ content: "\e887";
+}
+
+.icon-caigou:before {
+ content: "\e888";
+}
+
+.icon-yingyongchengxu-xianxing:before {
+ content: "\e8a1";
+}
+
+.icon-yingyongchengxu:before {
+ content: "\e8a2";
+}
+
+.icon-ziyuan-xianxing:before {
+ content: "\e8a4";
+}
+
+.icon-shouye:before {
+ content: "\e8b9";
+}
+
+.icon-shouye-xianxing:before {
+ content: "\e8ba";
+}
+
+.icon-yonghu-xianxing:before {
+ content: "\e8c8";
+}
+
+.icon-yonghu:before {
+ content: "\e8c9";
+}
+
+.icon-ditu:before {
+ content: "\e906";
+}
+
+.icon-sousuo2:before {
+ content: "\e757";
+}
+
+.icon-2:before {
+ content: "\e684";
+}
+
+.icon-dizhi:before {
+ content: "\e608";
+}
+
+.icon-huangguan:before {
+ content: "\e624";
+}
+
+.icon-huangguan1:before {
+ content: "\e625";
+}
+
+.icon-huangguan2:before {
+ content: "\e626";
+}
+
+.icon-wuliu:before {
+ content: "\e6f2";
+}
+
+.icon-xuanzhong:before {
+ content: "\e615";
+}
+
+.icon-xinpin:before {
+ content: "\e610";
+}
+
+.icon-arrow:before {
+ content: "\e627";
+}
+
+.icon-bianji:before {
+ content: "\e6cc";
+}
+
+.icon-wenti:before {
+ content: "\e758";
+}
+
+.icon-qiandai:before {
+ content: "\e6b1";
+}
+
+.icon-xiangyou:before {
+ content: "\e679";
+}
+
+.icon-remen:before {
+ content: "\e67c";
+}
+
+.icon-tuandui:before {
+ content: "\e685";
+}
+
+.icon-hebingxingzhuang:before {
+ content: "\e656";
+}
+
+.icon-gouwuche1:before {
+ content: "\e642";
+}
+
+.icon-liulan:before {
+ content: "\e629";
+}
+
+.icon-jinbi1:before {
+ content: "\e655";
+}
+
+.icon-guanbi2:before {
+ content: "\e61c";
+}
+
+.icon-sousuo:before {
+ content: "\e67d";
+}
+
+.icon-weixin:before {
+ content: "\e600";
+}
+
+.icon-tongji:before {
+ content: "\e687";
+}
+
+.icon-caidan:before {
+ content: "\e62a";
+}
+
+.icon-erweima:before {
+ content: "\e607";
+}
+
+.icon-shoucang:before {
+ content: "\e606";
+}
+
+.icon-guanbi:before {
+ content: "\e62f";
+}
+
+.icon-shuoming:before {
+ content: "\e630";
+}
+
+.icon-pailie:before {
+ content: "\e61b";
+}
+
+.icon-fenxiang:before {
+ content: "\e603";
+}
+
+.icon-yinhangqia:before {
+ content: "\e72c";
+}
+
+.icon-sousuo1:before {
+ content: "\e64c";
+}
+
+.icon-duihao:before {
+ content: "\e64e";
+}
+
+.icon-dingdan:before {
+ content: "\e61e";
+}
+
+.icon-tupianpailie:before {
+ content: "\e620";
+}
+
+.icon-chongzhi:before {
+ content: "\e602";
+}
+
+.icon-shezhi:before {
+ content: "\e619";
+}
+
+.icon-duihao2:before {
+ content: "\e601";
+}
+
+.icon-complete:before {
+ content: "\e646";
+}
+
+.icon-weixin1:before {
+ content: "\e66e";
+}
+
+.icon-tianjiadizhi:before {
+ content: "\e640";
+}
+
+.icon-weixin2:before {
+ content: "\e604";
+}
+
+.icon-gouwuche:before {
+ content: "\e669";
+}
+
+.icon-jiazai:before {
+ content: "\e62c";
+}
+
+.icon-kefu_o:before {
+ content: "\eb63";
+}
+
+.icon-liwu_o:before {
+ content: "\eb65";
+}
+
+.icon-huobiliu_o:before {
+ content: "\eb9f";
+}
+
+.icon-jinbi_o:before {
+ content: "\eba1";
+}
+
+.icon-gerentouxiang_o:before {
+ content: "\ebac";
+}
+
+.icon-qunzu_o:before {
+ content: "\ebad";
+}
+
+.icon-shoucang_o:before {
+ content: "\ebae";
+}
+
+.icon-didiandingwei_o:before {
+ content: "\ebba";
+}
+
+.icon-zhekou:before {
+ content: "\e790";
+}
+
+.icon-laba:before {
+ content: "\e612";
+}
+
+.icon-quanxianguanlisuozi:before {
+ content: "\e6d2";
+}
+
+.icon-xiala1:before {
+ content: "\e609";
+}
+
+.icon-jingyanzhi:before {
+ content: "\e62e";
+}
+
+.icon-kefu:before {
+ content: "\e6b2";
+}
+
+.icon-shenhezhong:before {
+ content: "\e6ce";
+}
+
+.icon-kanjia1:before {
+ content: "\e613";
+}
+
+.icon-shanchu1:before {
+ content: "\e611";
+}
+
+.icon-yonghu1:before {
+ content: "\e644";
+}
+
+.icon-suozi:before {
+ content: "\e631";
+}
+
+.icon-jiantou:before {
+ content: "\e641";
+}
+
+.icon-kanjia:before {
+ content: "\e69b";
+}
+
+.icon-pintuan:before {
+ content: "\e60c";
+}
+
+.icon-bianji1:before {
+ content: "\e614";
+}
+
+.icon-youhuiquan:before {
+ content: "\e6e4";
+}
+
+.icon-xiangxia:before {
+ content: "\e8ca";
+}
+
+.icon-shanchu:before {
+ content: "\e628";
+}
+
+.icon-guanbi3:before {
+ content: "\e6c5";
+}
+
+.icon-xuanzhong1:before {
+ content: "\e6ef";
+}
+
+.icon-weixuanzhong:before {
+ content: "\e6f0";
+}
+
+.icon-zhuangshixian:before {
+ content: "\e6f1";
+}
+
+.icon-jishuzhichi:before {
+ content: "\e6f3";
+}
+
+.icon-biankuang:before {
+ content: "\e6f4";
+}
+
+.icon-guanbi1:before {
+ content: "\e6f5";
+}
+
+.icon-xiangshang:before {
+ content: "\ebbb";
+}
+
+.icon-icon-test:before {
+ content: "\e6f6";
+}
+
+.icon-mingxi:before {
+ content: "\e6f7";
+}
+
+.icon-tishengfenzhi:before {
+ content: "\e6f8";
+}
+
+.icon-pintuanchenggong:before {
+ content: "\e6f9";
+}
+
+.icon-pintuanshibai:before {
+ content: "\e6fa";
+}
+
+.icon-shitixing:before {
+ content: "\e6fb";
+}
+
+.icon-kongxinxing:before {
+ content: "\e6fc";
+}
+
+.icon-yituikuan:before {
+ content: "\e6fd";
+}
+
+.icon-tuikuanzhong:before {
+ content: "\e6fe";
+}
+
+.icon-lingxing:before {
+ content: "\e6ff";
+}
+
+.icon-xiangzuo:before {
+ content: "\ebbc";
+}
+
+.icon-shoucang1:before {
+ content: "\e714";
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/images/1-001.png b/view/crmebNewUI/images/1-001.png
new file mode 100644
index 00000000..c2d7fae8
Binary files /dev/null and b/view/crmebNewUI/images/1-001.png differ
diff --git a/view/crmebNewUI/images/1-002.png b/view/crmebNewUI/images/1-002.png
new file mode 100644
index 00000000..c6bd2282
Binary files /dev/null and b/view/crmebNewUI/images/1-002.png differ
diff --git a/view/crmebNewUI/images/2-001.png b/view/crmebNewUI/images/2-001.png
new file mode 100644
index 00000000..a25cf937
Binary files /dev/null and b/view/crmebNewUI/images/2-001.png differ
diff --git a/view/crmebNewUI/images/2-002.png b/view/crmebNewUI/images/2-002.png
new file mode 100644
index 00000000..76aa0d23
Binary files /dev/null and b/view/crmebNewUI/images/2-002.png differ
diff --git a/view/crmebNewUI/images/3-001.png b/view/crmebNewUI/images/3-001.png
new file mode 100644
index 00000000..b55ee311
Binary files /dev/null and b/view/crmebNewUI/images/3-001.png differ
diff --git a/view/crmebNewUI/images/3-002.png b/view/crmebNewUI/images/3-002.png
new file mode 100644
index 00000000..4a0ca419
Binary files /dev/null and b/view/crmebNewUI/images/3-002.png differ
diff --git a/view/crmebNewUI/images/4-001.png b/view/crmebNewUI/images/4-001.png
new file mode 100644
index 00000000..26d7fbe5
Binary files /dev/null and b/view/crmebNewUI/images/4-001.png differ
diff --git a/view/crmebNewUI/images/4-002.png b/view/crmebNewUI/images/4-002.png
new file mode 100644
index 00000000..f3304d79
Binary files /dev/null and b/view/crmebNewUI/images/4-002.png differ
diff --git a/view/crmebNewUI/images/accountBg.png b/view/crmebNewUI/images/accountBg.png
new file mode 100644
index 00000000..0299e577
Binary files /dev/null and b/view/crmebNewUI/images/accountBg.png differ
diff --git a/view/crmebNewUI/images/address.png b/view/crmebNewUI/images/address.png
new file mode 100644
index 00000000..408b0cac
Binary files /dev/null and b/view/crmebNewUI/images/address.png differ
diff --git a/view/crmebNewUI/images/angle.png b/view/crmebNewUI/images/angle.png
new file mode 100644
index 00000000..68865ab8
Binary files /dev/null and b/view/crmebNewUI/images/angle.png differ
diff --git a/view/crmebNewUI/images/balance.png b/view/crmebNewUI/images/balance.png
new file mode 100644
index 00000000..ef7344fe
Binary files /dev/null and b/view/crmebNewUI/images/balance.png differ
diff --git a/view/crmebNewUI/images/bargain.png b/view/crmebNewUI/images/bargain.png
new file mode 100644
index 00000000..309fb946
Binary files /dev/null and b/view/crmebNewUI/images/bargain.png differ
diff --git a/view/crmebNewUI/images/bargainBg.jpg b/view/crmebNewUI/images/bargainBg.jpg
new file mode 100644
index 00000000..ccf9b61c
Binary files /dev/null and b/view/crmebNewUI/images/bargainBg.jpg differ
diff --git a/view/crmebNewUI/images/close.gif b/view/crmebNewUI/images/close.gif
new file mode 100644
index 00000000..4de18b41
Binary files /dev/null and b/view/crmebNewUI/images/close.gif differ
diff --git a/view/crmebNewUI/images/collection.png b/view/crmebNewUI/images/collection.png
new file mode 100644
index 00000000..b22fde2c
Binary files /dev/null and b/view/crmebNewUI/images/collection.png differ
diff --git a/view/crmebNewUI/images/coupon-window.png b/view/crmebNewUI/images/coupon-window.png
new file mode 100644
index 00000000..e50ae101
Binary files /dev/null and b/view/crmebNewUI/images/coupon-window.png differ
diff --git a/view/crmebNewUI/images/coupon-window2.png b/view/crmebNewUI/images/coupon-window2.png
new file mode 100644
index 00000000..ac3cb8b5
Binary files /dev/null and b/view/crmebNewUI/images/coupon-window2.png differ
diff --git a/view/crmebNewUI/images/coupon.png b/view/crmebNewUI/images/coupon.png
new file mode 100644
index 00000000..27e63401
Binary files /dev/null and b/view/crmebNewUI/images/coupon.png differ
diff --git a/view/crmebNewUI/images/coupon2.png b/view/crmebNewUI/images/coupon2.png
new file mode 100644
index 00000000..de9d6aad
Binary files /dev/null and b/view/crmebNewUI/images/coupon2.png differ
diff --git a/view/crmebNewUI/images/customer.png b/view/crmebNewUI/images/customer.png
new file mode 100644
index 00000000..dc97ca81
Binary files /dev/null and b/view/crmebNewUI/images/customer.png differ
diff --git a/view/crmebNewUI/images/dfh.png b/view/crmebNewUI/images/dfh.png
new file mode 100644
index 00000000..0a1fc046
Binary files /dev/null and b/view/crmebNewUI/images/dfh.png differ
diff --git a/view/crmebNewUI/images/dfk.png b/view/crmebNewUI/images/dfk.png
new file mode 100644
index 00000000..4e6f62f7
Binary files /dev/null and b/view/crmebNewUI/images/dfk.png differ
diff --git a/view/crmebNewUI/images/down.png b/view/crmebNewUI/images/down.png
new file mode 100644
index 00000000..34412396
Binary files /dev/null and b/view/crmebNewUI/images/down.png differ
diff --git a/view/crmebNewUI/images/dpj.png b/view/crmebNewUI/images/dpj.png
new file mode 100644
index 00000000..4df4d545
Binary files /dev/null and b/view/crmebNewUI/images/dpj.png differ
diff --git a/view/crmebNewUI/images/dsh.png b/view/crmebNewUI/images/dsh.png
new file mode 100644
index 00000000..71ca6130
Binary files /dev/null and b/view/crmebNewUI/images/dsh.png differ
diff --git a/view/crmebNewUI/images/examine.png b/view/crmebNewUI/images/examine.png
new file mode 100644
index 00000000..d43e7f9c
Binary files /dev/null and b/view/crmebNewUI/images/examine.png differ
diff --git a/view/crmebNewUI/images/extension.png b/view/crmebNewUI/images/extension.png
new file mode 100644
index 00000000..d34cb521
Binary files /dev/null and b/view/crmebNewUI/images/extension.png differ
diff --git a/view/crmebNewUI/images/gift.png b/view/crmebNewUI/images/gift.png
new file mode 100644
index 00000000..2f1e984c
Binary files /dev/null and b/view/crmebNewUI/images/gift.png differ
diff --git a/view/crmebNewUI/images/horn.png b/view/crmebNewUI/images/horn.png
new file mode 100644
index 00000000..d0ca022f
Binary files /dev/null and b/view/crmebNewUI/images/horn.png differ
diff --git a/view/crmebNewUI/images/left.png b/view/crmebNewUI/images/left.png
new file mode 100644
index 00000000..6c79bbec
Binary files /dev/null and b/view/crmebNewUI/images/left.png differ
diff --git a/view/crmebNewUI/images/light.png b/view/crmebNewUI/images/light.png
new file mode 100644
index 00000000..efa92080
Binary files /dev/null and b/view/crmebNewUI/images/light.png differ
diff --git a/view/crmebNewUI/images/line.jpg b/view/crmebNewUI/images/line.jpg
new file mode 100644
index 00000000..1640f55c
Binary files /dev/null and b/view/crmebNewUI/images/line.jpg differ
diff --git a/view/crmebNewUI/images/lock.png b/view/crmebNewUI/images/lock.png
new file mode 100644
index 00000000..e3fde19c
Binary files /dev/null and b/view/crmebNewUI/images/lock.png differ
diff --git a/view/crmebNewUI/images/lock2.png b/view/crmebNewUI/images/lock2.png
new file mode 100644
index 00000000..d791ab98
Binary files /dev/null and b/view/crmebNewUI/images/lock2.png differ
diff --git a/view/crmebNewUI/images/logo.png b/view/crmebNewUI/images/logo.png
new file mode 100644
index 00000000..883548b8
Binary files /dev/null and b/view/crmebNewUI/images/logo.png differ
diff --git a/view/crmebNewUI/images/member.png b/view/crmebNewUI/images/member.png
new file mode 100644
index 00000000..b637ae4b
Binary files /dev/null and b/view/crmebNewUI/images/member.png differ
diff --git a/view/crmebNewUI/images/memberCenter.png b/view/crmebNewUI/images/memberCenter.png
new file mode 100644
index 00000000..978edd27
Binary files /dev/null and b/view/crmebNewUI/images/memberCenter.png differ
diff --git a/view/crmebNewUI/images/money.png b/view/crmebNewUI/images/money.png
new file mode 100644
index 00000000..9d8aa075
Binary files /dev/null and b/view/crmebNewUI/images/money.png differ
diff --git a/view/crmebNewUI/images/news.png b/view/crmebNewUI/images/news.png
new file mode 100644
index 00000000..dd3f8731
Binary files /dev/null and b/view/crmebNewUI/images/news.png differ
diff --git a/view/crmebNewUI/images/noAddress.png b/view/crmebNewUI/images/noAddress.png
new file mode 100644
index 00000000..bb6e3633
Binary files /dev/null and b/view/crmebNewUI/images/noAddress.png differ
diff --git a/view/crmebNewUI/images/noCart.png b/view/crmebNewUI/images/noCart.png
new file mode 100644
index 00000000..23212587
Binary files /dev/null and b/view/crmebNewUI/images/noCart.png differ
diff --git a/view/crmebNewUI/images/noCollection.png b/view/crmebNewUI/images/noCollection.png
new file mode 100644
index 00000000..f967720b
Binary files /dev/null and b/view/crmebNewUI/images/noCollection.png differ
diff --git a/view/crmebNewUI/images/noCoupon.png b/view/crmebNewUI/images/noCoupon.png
new file mode 100644
index 00000000..e2da350d
Binary files /dev/null and b/view/crmebNewUI/images/noCoupon.png differ
diff --git a/view/crmebNewUI/images/noEvaluate.png b/view/crmebNewUI/images/noEvaluate.png
new file mode 100644
index 00000000..de6f5381
Binary files /dev/null and b/view/crmebNewUI/images/noEvaluate.png differ
diff --git a/view/crmebNewUI/images/noNews.png b/view/crmebNewUI/images/noNews.png
new file mode 100644
index 00000000..755d2068
Binary files /dev/null and b/view/crmebNewUI/images/noNews.png differ
diff --git a/view/crmebNewUI/images/noOrder.png b/view/crmebNewUI/images/noOrder.png
new file mode 100644
index 00000000..425aaca7
Binary files /dev/null and b/view/crmebNewUI/images/noOrder.png differ
diff --git a/view/crmebNewUI/images/noSearch.png b/view/crmebNewUI/images/noSearch.png
new file mode 100644
index 00000000..e4fa6601
Binary files /dev/null and b/view/crmebNewUI/images/noSearch.png differ
diff --git a/view/crmebNewUI/images/noShopper.png b/view/crmebNewUI/images/noShopper.png
new file mode 100644
index 00000000..e26ed19c
Binary files /dev/null and b/view/crmebNewUI/images/noShopper.png differ
diff --git a/view/crmebNewUI/images/one.png b/view/crmebNewUI/images/one.png
new file mode 100644
index 00000000..f598487f
Binary files /dev/null and b/view/crmebNewUI/images/one.png differ
diff --git a/view/crmebNewUI/images/open.gif b/view/crmebNewUI/images/open.gif
new file mode 100644
index 00000000..4943b526
Binary files /dev/null and b/view/crmebNewUI/images/open.gif differ
diff --git a/view/crmebNewUI/images/orderTime.png b/view/crmebNewUI/images/orderTime.png
new file mode 100644
index 00000000..681c7352
Binary files /dev/null and b/view/crmebNewUI/images/orderTime.png differ
diff --git a/view/crmebNewUI/images/poster-close.png b/view/crmebNewUI/images/poster-close.png
new file mode 100644
index 00000000..189b6bcb
Binary files /dev/null and b/view/crmebNewUI/images/poster-close.png differ
diff --git a/view/crmebNewUI/images/posterbackgd.png b/view/crmebNewUI/images/posterbackgd.png
new file mode 100644
index 00000000..c49cb91c
Binary files /dev/null and b/view/crmebNewUI/images/posterbackgd.png differ
diff --git a/view/crmebNewUI/images/promotionBg.png b/view/crmebNewUI/images/promotionBg.png
new file mode 100644
index 00000000..9943d095
Binary files /dev/null and b/view/crmebNewUI/images/promotionBg.png differ
diff --git a/view/crmebNewUI/images/record1.png b/view/crmebNewUI/images/record1.png
new file mode 100644
index 00000000..4a24c332
Binary files /dev/null and b/view/crmebNewUI/images/record1.png differ
diff --git a/view/crmebNewUI/images/record2.png b/view/crmebNewUI/images/record2.png
new file mode 100644
index 00000000..ddaaaa68
Binary files /dev/null and b/view/crmebNewUI/images/record2.png differ
diff --git a/view/crmebNewUI/images/record3.png b/view/crmebNewUI/images/record3.png
new file mode 100644
index 00000000..fdceadba
Binary files /dev/null and b/view/crmebNewUI/images/record3.png differ
diff --git a/view/crmebNewUI/images/record4.png b/view/crmebNewUI/images/record4.png
new file mode 100644
index 00000000..84c9d8d0
Binary files /dev/null and b/view/crmebNewUI/images/record4.png differ
diff --git a/view/crmebNewUI/images/red-packets.png b/view/crmebNewUI/images/red-packets.png
new file mode 100644
index 00000000..436ab766
Binary files /dev/null and b/view/crmebNewUI/images/red-packets.png differ
diff --git a/view/crmebNewUI/images/redBg.png b/view/crmebNewUI/images/redBg.png
new file mode 100644
index 00000000..2b777fa4
Binary files /dev/null and b/view/crmebNewUI/images/redBg.png differ
diff --git a/view/crmebNewUI/images/register.png b/view/crmebNewUI/images/register.png
new file mode 100644
index 00000000..9eb6cf7c
Binary files /dev/null and b/view/crmebNewUI/images/register.png differ
diff --git a/view/crmebNewUI/images/rushBuy.jpg b/view/crmebNewUI/images/rushBuy.jpg
new file mode 100644
index 00000000..805f856f
Binary files /dev/null and b/view/crmebNewUI/images/rushBuy.jpg differ
diff --git a/view/crmebNewUI/images/score.png b/view/crmebNewUI/images/score.png
new file mode 100644
index 00000000..f0be9fe3
Binary files /dev/null and b/view/crmebNewUI/images/score.png differ
diff --git a/view/crmebNewUI/images/sh.png b/view/crmebNewUI/images/sh.png
new file mode 100644
index 00000000..3d92d776
Binary files /dev/null and b/view/crmebNewUI/images/sh.png differ
diff --git a/view/crmebNewUI/images/sort1.png b/view/crmebNewUI/images/sort1.png
new file mode 100644
index 00000000..2a88241a
Binary files /dev/null and b/view/crmebNewUI/images/sort1.png differ
diff --git a/view/crmebNewUI/images/sort2.png b/view/crmebNewUI/images/sort2.png
new file mode 100644
index 00000000..74faf73b
Binary files /dev/null and b/view/crmebNewUI/images/sort2.png differ
diff --git a/view/crmebNewUI/images/sort3.png b/view/crmebNewUI/images/sort3.png
new file mode 100644
index 00000000..c3ce7d42
Binary files /dev/null and b/view/crmebNewUI/images/sort3.png differ
diff --git a/view/crmebNewUI/images/stars1.png b/view/crmebNewUI/images/stars1.png
new file mode 100644
index 00000000..b2f620c4
Binary files /dev/null and b/view/crmebNewUI/images/stars1.png differ
diff --git a/view/crmebNewUI/images/stars2.png b/view/crmebNewUI/images/stars2.png
new file mode 100644
index 00000000..c26dcb3d
Binary files /dev/null and b/view/crmebNewUI/images/stars2.png differ
diff --git a/view/crmebNewUI/images/stars3.png b/view/crmebNewUI/images/stars3.png
new file mode 100644
index 00000000..9e72c5f8
Binary files /dev/null and b/view/crmebNewUI/images/stars3.png differ
diff --git a/view/crmebNewUI/images/support.png b/view/crmebNewUI/images/support.png
new file mode 100644
index 00000000..b562a152
Binary files /dev/null and b/view/crmebNewUI/images/support.png differ
diff --git a/view/crmebNewUI/images/three.png b/view/crmebNewUI/images/three.png
new file mode 100644
index 00000000..8eee090c
Binary files /dev/null and b/view/crmebNewUI/images/three.png differ
diff --git a/view/crmebNewUI/images/time.png b/view/crmebNewUI/images/time.png
new file mode 100644
index 00000000..d52fda33
Binary files /dev/null and b/view/crmebNewUI/images/time.png differ
diff --git a/view/crmebNewUI/images/transparent.png b/view/crmebNewUI/images/transparent.png
new file mode 100644
index 00000000..4760ebb7
Binary files /dev/null and b/view/crmebNewUI/images/transparent.png differ
diff --git a/view/crmebNewUI/images/two.png b/view/crmebNewUI/images/two.png
new file mode 100644
index 00000000..14bc7960
Binary files /dev/null and b/view/crmebNewUI/images/two.png differ
diff --git a/view/crmebNewUI/images/up.png b/view/crmebNewUI/images/up.png
new file mode 100644
index 00000000..567db181
Binary files /dev/null and b/view/crmebNewUI/images/up.png differ
diff --git a/view/crmebNewUI/images/vacancy.png b/view/crmebNewUI/images/vacancy.png
new file mode 100644
index 00000000..0cf3ffe5
Binary files /dev/null and b/view/crmebNewUI/images/vacancy.png differ
diff --git a/view/crmebNewUI/images/value.jpg b/view/crmebNewUI/images/value.jpg
new file mode 100644
index 00000000..b47d08d3
Binary files /dev/null and b/view/crmebNewUI/images/value.jpg differ
diff --git a/view/crmebNewUI/images/vip.png b/view/crmebNewUI/images/vip.png
new file mode 100644
index 00000000..904fa508
Binary files /dev/null and b/view/crmebNewUI/images/vip.png differ
diff --git a/view/crmebNewUI/images/数据.jpg b/view/crmebNewUI/images/数据.jpg
new file mode 100644
index 00000000..b4dad3fa
Binary files /dev/null and b/view/crmebNewUI/images/数据.jpg differ
diff --git a/view/crmebNewUI/pages/activity/goods_seckill/index.js b/view/crmebNewUI/pages/activity/goods_seckill/index.js
new file mode 100644
index 00000000..4420380e
--- /dev/null
+++ b/view/crmebNewUI/pages/activity/goods_seckill/index.js
@@ -0,0 +1,132 @@
+// pages/flash-sale/index.js
+var app = getApp();
+const wxh = require('../../../utils/wxh.js');
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ topImage:'',
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '限时秒杀',
+ 'color': false
+ },
+ seckillList:[],
+ timeList:[],
+ active:5,
+ scrollLeft:0,
+ interval:0,
+ status:1,
+ countDownHour: "00",
+ countDownMinute: "00",
+ countDownSecond: "00",
+ offset : 0,
+ limit : 20,
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (e) {
+ },
+ onLoadFun: function () {
+ this.getSeckillConfig();
+ },
+ goDetails:function(e){
+ wx.navigateTo({
+ url: '/pages/activity/goods_seckill_details/index?id=' + e.currentTarget.dataset.id + '&time=' + this.data.timeList[this.data.active].stop,
+ })
+ },
+ settimeList:function(e){
+ var that = this;
+ that.setData({ active: e.currentTarget.dataset.index });
+ if (that.data.interval) {
+ clearInterval(that.data.interval);
+ that.setData({ interval: null });
+ }
+ that.setData({
+ interval: 0,
+ countDownHour: "00",
+ countDownMinute: "00",
+ countDownSecond: "00",
+ status: that.data.timeList[that.data.active].status
+ });
+ wxh.time(e.currentTarget.dataset.stop, that);
+ that.setData({ seckillList: [], offset: 0 });
+ that.getSeckillList();
+ },
+ getSeckillConfig: function () {
+ var that = this;
+ app.baseGet(app.U({ c: "seckill_api", a:'seckill_index'}), function (res){
+ that.setData({ topImage: res.data.lovely, timeList: res.data.seckillTime, active: res.data.seckillTimeIndex });
+ if (that.data.timeList.length) {
+ wxh.time(that.data.timeList[that.data.active].stop, that);
+ that.setData({ scrollLeft: (that.data.active - 1.37) * 100 });
+ setTimeout(function () { that.setData({ loading: true }) }, 2000);
+ that.setData({ seckillList: [], offset: 0 });
+ that.setData({ status: that.data.timeList[that.data.active].status });
+ that.getSeckillList();
+ }
+ },function(res){ console.log(res)});
+ },
+ getSeckillList: function () {
+ var that = this;
+ var data = { offset: that.data.offset, limit: that.data.limit,time: that.data.timeList[that.data.active].id};
+ app.basePost(app.U({ c: 'seckill_api', a:"seckill_list"}), data, function (res) {
+ var seckillList = that.data.seckillList;
+ var limit = that.data.limit;
+ var offset = that.data.offset;
+ that.setData({
+ seckillList: seckillList.concat(res.data),
+ offset: Number(offset) + Number(limit)
+ });
+ }, function (res) { console.log(res) });
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+ if(this.data.interval){
+ clearInterval(this.data.interval);
+ this.setData({ interval: null });
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+ this.getSeckillList();
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/activity/goods_seckill/index.json b/view/crmebNewUI/pages/activity/goods_seckill/index.json
new file mode 100644
index 00000000..eaf40c82
--- /dev/null
+++ b/view/crmebNewUI/pages/activity/goods_seckill/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "home": "/components/home/index",
+ "authorize": "/components/authorize/authorize"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/activity/goods_seckill/index.wxml b/view/crmebNewUI/pages/activity/goods_seckill/index.wxml
new file mode 100644
index 00000000..7aacef55
--- /dev/null
+++ b/view/crmebNewUI/pages/activity/goods_seckill/index.wxml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+ {{item.time}}
+ {{item.state}}
+
+
+
+
+
+
+ 距结束仅剩
+ {{countDownHour}} :
+ {{countDownMinute}} :
+ {{countDownSecond}}
+
+ 即将开始
+ 已结束
+
+
+
+
+
+
+
+ {{item.title}}
+ {{item.title}}
+ 限时价¥{{item.price}}
+ 限时价¥{{item.price}}
+
+
+ 仅剩{{item.stock}}件
+
+
+
+ 未开始
+
+
+
+ 已抢完
+
+
+ 马上抢
+ 未开始
+ 已结束
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/activity/goods_seckill/index.wxss b/view/crmebNewUI/pages/activity/goods_seckill/index.wxss
new file mode 100644
index 00000000..923faf65
--- /dev/null
+++ b/view/crmebNewUI/pages/activity/goods_seckill/index.wxss
@@ -0,0 +1,24 @@
+page{background-color:#fff!important;}
+.flash-sale .header{width:100%;height:240rpx;}
+.flash-sale .header image{width:100%;height:100%;}
+.flash-sale .timeLsit{width:100%;white-space:nowrap;}
+.flash-sale .timeLsit .item{display:inline-block;font-size:22rpx;color:#282828;width:200rpx;text-align:center;padding:11rpx 0;box-sizing:border-box;height:96rpx;background-color:#efc58f;}
+.flash-sale .timeLsit .item~.item{border-left:1rpx solid #e3b06e;}
+.flash-sale .timeLsit .item .time{font-size:32rpx;font-weight:bold;}
+.flash-sale .timeLsit .item.on{background-color:#e93323;color:#fff;position:relative;}
+.flash-sale .timeLsit .item.on::before{content:"";width: 0;height: 0;border-left: 8rpx solid transparent;border-right: 8rpx solid transparent;border-top:10rpx solid #e93323;position:absolute;bottom:-9rpx;z-index:99;left:50%;transform:translateX(-50%);}
+.flash-sale .countDown{height:92rpx;border-bottom:1rpx solid #f0f0f0;margin-top:-14rpx;font-size:28rpx;color:#282828;}
+.flash-sale .countDown .num{font-size:28rpx;font-weight:bold;background-color:#ffcfcb;padding:4rpx 7rpx;border-radius:3rpx;}
+.flash-sale .countDown .text{font-size:28rpx;color:#282828;margin-right:13rpx;}
+.flash-sale .list .item{padding:0 30rpx;border-bottom:1rpx solid #f0f0f0;height:227rpx;position:relative;}
+.flash-sale .list .item .pictrue{width:166rpx;height:166rpx;}
+.flash-sale .list .item .pictrue image{width:100%;height:100%;border-radius:6rpx;}
+.flash-sale .list .item .text{width:500rpx;font-size:30rpx;color:#333;height:166rpx;}
+.flash-sale .list .item .text .money{font-size:24rpx;color:#282828;margin-top:-10rpx;margin-top:-13rpx;}
+.flash-sale .list .item .text .money .num{font-size:34rpx;font-weight:bold;}
+.flash-sale .list .item .text .progress {overflow: hidden;background-color:#fff;width:260rpx;border-radius:20rpx;height:34rpx;position:relative;}
+.flash-sale .list .item .text .progress .bg-red{width: 0;height: 100%;transition: width 0.6s ease;background-color: #ffe3e1;}
+.flash-sale .list .item .text .progress .piece{position:absolute;left:50%;transform:translate(-50%,-50%);top:49%;font-size:22rpx;}
+.flash-sale .list .item .grab{font-size:28rpx;color:#fff;width:140rpx;height:54rpx;border-radius:4rpx;text-align:center;line-height:54rpx;position:absolute;right:30rpx;bottom:30rpx;}
+
+
diff --git a/view/crmebNewUI/pages/activity/goods_seckill_details/index.js b/view/crmebNewUI/pages/activity/goods_seckill_details/index.js
new file mode 100644
index 00000000..402bd8c2
--- /dev/null
+++ b/view/crmebNewUI/pages/activity/goods_seckill_details/index.js
@@ -0,0 +1,256 @@
+// pages/snapUpDetails/index.js
+var app = getApp();
+const wxh = require('../../../utils/wxh.js');
+const wxParse = require('../../../wxParse/wxParse.js');
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ id: 0,
+ time:0,
+ countDownHour: "00",
+ countDownMinute: "00",
+ countDownSecond: "00",
+ storeInfo:[],
+ imgUrls: [],
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '抢购详情页',
+ 'color': false
+ },
+ attribute: {
+ 'cartAttr': false
+ },
+ productSelect: [],
+ productAttr: [],
+ productValue: [],
+ isOpen: false,
+ attr: '请选择',
+ attrValue: '',
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if (options.hasOwnProperty('id') && options.hasOwnProperty('time')) {
+ this.setData({ id: options.id, time: options.time });
+ app.globalData.openPages = '/pages/activity/goods_seckill_details/index?id=' + this.data.id + '&time=' + this.data.time;
+ }else{
+ wx.showToast({
+ title: '参数错误',
+ icon: 'none',
+ duration: 1000,
+ mask: true,
+ });
+ setTimeout(function(){ wx.navigateBack({ delta: 1 }) },1200)};
+ },
+ onMyEvent: function (e) {
+ this.setData({ 'attribute.cartAttr': e.detail.window, isOpen: false })
+ },
+ /**
+ * 购物车数量加和数量减
+ *
+ */
+ ChangeCartNum: function (e) {
+ //是否 加|减
+ var changeValue = e.detail;
+ //获取当前变动属性
+ var productSelect = this.data.productValue[this.data.attrValue];
+ //如果没有属性,赋值给商品默认库存
+ if (productSelect === undefined && !this.data.productAttr.length) productSelect = this.data.productSelect;
+ //不存在不加数量
+ if (productSelect === undefined) return;
+ //提取库存
+ var stock = productSelect.stock || 0;
+ //设置默认数据
+ if (productSelect.cart_num == undefined) productSelect.cart_num = 1;
+ //数量+
+ if (changeValue) {
+ productSelect.cart_num++;
+ //大于库存时,等于库存
+ if (productSelect.cart_num > this.data.storeInfo.num) productSelect.cart_num = this.data.storeInfo.num;
+ this.setData({
+ ['productSelect.cart_num']: productSelect.cart_num,
+ cart_num: productSelect.cart_num,
+ ['productSelect.is_on']: productSelect.cart_num > this.data.storeInfo.num,
+ });
+ } else {
+ //数量减
+ productSelect.cart_num--;
+ //小于1时,等于1
+ if (productSelect.cart_num < 1) productSelect.cart_num = 1;
+ this.setData({
+ ['productSelect.cart_num']: productSelect.cart_num,
+ cart_num: productSelect.cart_num,
+ ['productSelect.is_on']:false,
+ });
+ }
+ },
+ /**
+ * 属性变动赋值
+ *
+ */
+ ChangeAttr: function (e) {
+ var values = e.detail;
+ var productSelect = this.data.productValue[values];
+ var storeInfo = this.data.storeInfo;
+ if (productSelect) {
+ this.setData({
+ ["productSelect.image"]: productSelect.image,
+ ["productSelect.price"]: productSelect.price,
+ ["productSelect.stock"]: productSelect.stock,
+ ['productSelect.unique']: productSelect.unique,
+ ['productSelect.cart_num']: 1,
+ ['productSelect.is_on']: productSelect.cart_num > this.data.storeInfo.num,
+ attrValue: values,
+ attr: '已选择'
+ });
+ } else {
+ this.setData({
+ ["productSelect.image"]: storeInfo.image,
+ ["productSelect.price"]: storeInfo.price,
+ ["productSelect.stock"]: 0,
+ ['productSelect.unique']: '',
+ ['productSelect.cart_num']: 0,
+ ['productSelect.is_on']:false,
+ attrValue: '',
+ attr: '请选择'
+ });
+ }
+ },
+ selecAttr: function () {
+ this.setData({
+ 'attribute.cartAttr': true
+ })
+ },
+ /*
+ * 下订单
+ */
+ goCat: function () {
+ var that = this;
+ console.log(that.data.productValue);
+ var productSelect = this.data.productValue[this.data.attrValue];
+ //打开属性
+ if (this.data.isOpen)
+ this.setData({ 'attribute.cartAttr': true })
+ else
+ this.setData({ 'attribute.cartAttr': !this.data.attribute.cartAttr });
+ //只有关闭属性弹窗时进行加入购物车
+ if (this.data.attribute.cartAttr === true && this.data.isOpen == false) return this.setData({ isOpen: true });
+ //如果有属性,没有选择,提示用户选择
+ console.log(this.data.productAttr.length);
+ if (this.data.productAttr.length && productSelect === undefined && this.data.isOpen == true) return app.Tips({ title: '请选择属性' });
+ app.baseGet(app.U({
+ c: 'auth_api',
+ a: 'now_buy',
+ q: {
+ productId: that.data.storeInfo.product_id,
+ secKillId: that.data.id,
+ bargainId: 0,
+ combinationId: 0,
+ cartNum: that.data.cart_num,
+ uniqueId: productSelect !== undefined ? productSelect.unique : ''
+ }
+ }), function (res) {
+ that.setData({ isOpen: false });
+ wx.navigateTo({ url: '/pages/order_confirm/index?cartId=' + res.data.cartId });
+ })
+ },
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ this.getSeckillDetail();
+ },
+ getSeckillDetail: function () {
+ var that = this;
+ var url = app.U({ c: 'seckill_api', a: 'seckill_detail' }, app.globalData.url);
+ app.basePost(url, { id: that.data.id }, function (res) {
+ var title = res.data.storeInfo.title;
+ that.setData({
+ ["parameter.title"]: title.length > 10 ? title.substring(0, 10)+'...' : title,
+ storeInfo: res.data.storeInfo,
+ imgUrls: res.data.storeInfo.images
+ });
+ that.setProductSelect();
+ app.globalData.openPages = '/pages/activity/goods_seckill_details/index?id=' + that.data.id + '&time=' + that.data.time + '&scene=' + that.data.storeInfo.uid;
+ wxParse.wxParse('description', 'html', that.data.storeInfo.description, that, 0);
+ wxh.time(that.data.time, that);
+ }, function (res) {
+ wx.showToast({
+ title: res.msg,
+ icon: 'none',
+ duration: 1000,
+ mask: true,
+ });
+ });
+ },
+ setProductSelect:function(){
+ var that = this;
+ if (that.data.productSelect.length == 0){
+ that.setData({
+ ['productSelect.image']: that.data.storeInfo.image,
+ ['productSelect.store_name']: that.data.storeInfo.title,
+ ['productSelect.price']: that.data.storeInfo.price,
+ ['productSelect.stock']: that.data.storeInfo.stock,
+ ['productSelect.unique']: '',
+ ['productSelect.cart_num']: 1,
+ ['productSelect.is_on']: that.data.storeInfo.num <= 1,
+ })
+ }
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+ var that = this;
+ return {
+ title: that.data.storeInfo.title,
+ path: app.globalData.openPages,
+ imageUrl: that.data.storeInfo.image,
+ success: function () {
+ wx.showToast({
+ title: '分享成功',
+ icon: 'success',
+ duration: 2000
+ })
+ }
+ }
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/activity/goods_seckill_details/index.json b/view/crmebNewUI/pages/activity/goods_seckill_details/index.json
new file mode 100644
index 00000000..63be8edb
--- /dev/null
+++ b/view/crmebNewUI/pages/activity/goods_seckill_details/index.json
@@ -0,0 +1,8 @@
+{
+ "usingComponents": {
+ "productConSwiper": "/components/productConSwiper/index",
+ "home": "/components/home/index",
+ "product-window": "/components/product-window/index",
+ "navbar": "/components/navbar/index"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/activity/goods_seckill_details/index.wxml b/view/crmebNewUI/pages/activity/goods_seckill_details/index.wxml
new file mode 100644
index 00000000..6cff8226
--- /dev/null
+++ b/view/crmebNewUI/pages/activity/goods_seckill_details/index.wxml
@@ -0,0 +1,56 @@
+
+
+
+
+ ¥{{storeInfo.price}} ¥{{storeInfo.ot_price}}
+
+
+ 距秒杀结束仅剩
+
+ {{countDownHour}} :
+ {{countDownMinute}} :
+ {{countDownSecond}}
+
+
+
+
+
+
+
+ {{storeInfo.title}}
+
+
+
+ 库存:{{storeInfo.stock}}{{storeInfo.unit_name}}
+ 销量:{{storeInfo.sales}}{{storeInfo.unit_name}}
+
+
+
+ {{attr}}:{{attrValue}}
+
+
+
+ 产品介绍
+
+
+
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/activity/goods_seckill_details/index.wxss b/view/crmebNewUI/pages/activity/goods_seckill_details/index.wxss
new file mode 100644
index 00000000..8984e3be
--- /dev/null
+++ b/view/crmebNewUI/pages/activity/goods_seckill_details/index.wxss
@@ -0,0 +1,18 @@
+.product-con .nav{background-image:url('data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QN/aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzE0MiA3OS4xNjA5MjQsIDIwMTcvMDcvMTMtMDE6MDY6MzkgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NDNlZTU0ZDMtNjEwZS03ZjQ4LWEwODgtNTZlMTZiNzI3NTQwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjI1NEI2MDUyM0ZDMjExRTk5OTg1REI1OUM1NjNEMUZCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjI1NEI2MDUxM0ZDMjExRTk5OTg1REI1OUM1NjNEMUZCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE4IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjUyMDIzNWNmLTIwNGYtOTQ0My05YTBiLWNmMmZlMTJmMDk3NCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0M2VlNTRkMy02MTBlLTdmNDgtYTA4OC01NmUxNmI3Mjc1NDAiLz4gPC9yZGY6RGVzY3JpcHRpb24+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');background-repeat:no-repeat;background-size:100% 100%;width:100%;height:100rpx;padding:0 30rpx;box-sizing:border-box;}
+.product-con .nav .money{font-size:28rpx;color:#fff;}
+.product-con .nav .money .num{font-size:48rpx;}
+.product-con .nav .money .y-money{font-size:26rpx;margin-left:10rpx;text-decoration:line-through;}
+.product-con .nav .time{font-size:20rpx;color:#fff;text-align:center;}
+.product-con .nav .time .timeCon{margin-top:10rpx;}
+.product-con .nav .time .timeCon .num{padding:0 7rpx;font-size:22rpx;color:#ff3d3d;background-color:#fff;border-radius:2rpx;}
+.product-con .nav .iconfont{color:#fff;font-size:30rpx;margin-left:20rpx;}
+.product-con .wrapper{padding:32rpx 30rpx;width:100%;}
+.product-con .wrapper .introduce{margin:0;}
+.product-con .wrapper .introduce .infor{width:570rpx;}
+.product-con .wrapper .introduce .iconfont{font-size:37rpx;color:#515151;}
+.product-con .wrapper .label{margin:18rpx 0 0 0;font-size:24rpx;color:#82848f;}
+.product-con .wrapper .label .stock{width:255rpx;margin-right:28rpx;}
+.product-con .footer{position:fixed;bottom:0;width:100%;height:100rpx;background-color:#fff;font-size:18rpx;color:#666;z-index:99;}
+.product-con .footer .customerSer{width:14%;font-size:20rpx;color:#666;}
+.product-con .footer .bnt{width:86%;text-align:center;line-height:100rpx;height:100%;color:#fff;font-size:30rpx;}
+@import "/wxParse/wxParse.wxss";
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/cash-audit/index.js b/view/crmebNewUI/pages/cash-audit/index.js
new file mode 100644
index 00000000..524d7f3d
--- /dev/null
+++ b/view/crmebNewUI/pages/cash-audit/index.js
@@ -0,0 +1,72 @@
+// pages/cash-audit/index.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '提现审核',
+ 'color':true,
+ 'class':'0'
+ },
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ 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/view/crmebNewUI/pages/cash-audit/index.json b/view/crmebNewUI/pages/cash-audit/index.json
new file mode 100644
index 00000000..ed5513eb
--- /dev/null
+++ b/view/crmebNewUI/pages/cash-audit/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index"
+ },
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/cash-audit/index.wxml b/view/crmebNewUI/pages/cash-audit/index.wxml
new file mode 100644
index 00000000..a8a065c3
--- /dev/null
+++ b/view/crmebNewUI/pages/cash-audit/index.wxml
@@ -0,0 +1,7 @@
+
+
+
+ 提现申请已提交,等待人工审核
+ 2018-08-29 10:55:26
+ 好的
+
diff --git a/view/crmebNewUI/pages/cash-audit/index.wxss b/view/crmebNewUI/pages/cash-audit/index.wxss
new file mode 100644
index 00000000..a6145279
--- /dev/null
+++ b/view/crmebNewUI/pages/cash-audit/index.wxss
@@ -0,0 +1,6 @@
+.cash-audit{width:710rpx;background-color:#fff;border-radius:6rpx;margin:25rpx auto 0 auto;padding:53rpx 0 58rpx 0;}
+.cash-audit .pictrue{width:214rpx;height:179rpx;margin:0 auto;}
+.cash-audit .pictrue image{width:100%;height:100%;}
+.cash-audit .tip{font-size:32rpx;color:#282828;margin-top:40rpx;text-align:center;padding:0 40rpx;}
+.cash-audit .time{font-size:26rpx;color:#999;text-align:center;margin-top:15rpx;}
+.cash-audit .bnt{font-size:32rpx;color:#fff;width:500rpx;height:86rpx;border-radius:43rpx;text-align:center;line-height:86rpx;margin:50rpx auto 0 auto;}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/cut-poster/index.js b/view/crmebNewUI/pages/cut-poster/index.js
new file mode 100644
index 00000000..c96a3e46
--- /dev/null
+++ b/view/crmebNewUI/pages/cut-poster/index.js
@@ -0,0 +1,70 @@
+// pages/poster-poster/index.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '拼团海报',
+ 'color': true,
+ 'class': '0'
+ }
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ 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/view/crmebNewUI/pages/cut-poster/index.json b/view/crmebNewUI/pages/cut-poster/index.json
new file mode 100644
index 00000000..ed5513eb
--- /dev/null
+++ b/view/crmebNewUI/pages/cut-poster/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index"
+ },
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/cut-poster/index.wxml b/view/crmebNewUI/pages/cut-poster/index.wxml
new file mode 100644
index 00000000..a6d696cb
--- /dev/null
+++ b/view/crmebNewUI/pages/cut-poster/index.wxml
@@ -0,0 +1,20 @@
+
+
+ 提示:点击图片即可保存至手机相册
+
+
+ 商品名称商品名称商品名称商品名称
+
+
+ 33.00
+ 三人团
+
+ 原价:¥1110.00还差 1人 拼团成功
+
+
+ —— 长按识别或扫描二维码进入 ——
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/cut-poster/index.wxss b/view/crmebNewUI/pages/cut-poster/index.wxss
new file mode 100644
index 00000000..c14220d5
--- /dev/null
+++ b/view/crmebNewUI/pages/cut-poster/index.wxss
@@ -0,0 +1,17 @@
+page{background-color:#d22516!important;}
+.poster-poster .tip{height:80rpx;font-size:26rpx;color:#e8c787;text-align:center;line-height:80rpx;}
+.poster-poster .tip .iconfont{font-size:36rpx;vertical-align:-4rpx;margin-right:18rpx;}
+.poster-poster .white{background-color:#fff;width:690rpx;margin:0 auto 26rpx auto;}
+.poster-poster .white .whiteCon{padding:37rpx 75rpx 52rpx 75rpx;}
+.poster-poster .white .whiteCon .name{font-size:36rpx;font-weight:bold;color:#282828;}
+.poster-poster .white .whiteCon .money{font-size:72rpx;font-weight:bold;margin-top:15rpx;}
+.poster-poster .white .whiteCon .money .iconfont{font-size:24rpx;color:#fff;width:30rpx;height:30rpx;border-radius:50%;text-align:center;line-height:30rpx;font-weight:normal;margin:26rpx 15rpx 0 0;}
+.poster-poster .white .whiteCon .money .team{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKkAAABCCAYAAAAsVvZuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNDYwMWY2NC1mZDkzLTQyNDQtYWU0Zi1lOWU2ODY1YWQwOGUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzQyRTQ3RkIzNUMwMTFFOTk2QTBCNzUyMjAzQUQ1N0EiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzQyRTQ3RkEzNUMwMTFFOTk2QTBCNzUyMjAzQUQ1N0EiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjFjOWJkOTktYjM5Yi0yMzQ0LThlZDctYzhjZjM4NDM2NTg3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA0NjAxZjY0LWZkOTMtNDI0NC1hZTRmLWU5ZTY4NjVhZDA4ZSIv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');background-repeat:no-repeat;background-size:100% 100%;width:169rpx;height:66rpx;font-size:32rpx;color:#fff;text-align:center;line-height:57rpx;margin:10rpx 0 0 20rpx;}
+.poster-poster .white .whiteCon .money-y{font-size:26rpx;color:#3f3f3f;margin-top:18rpx;}
+.poster-poster .white .whiteCon .money-y .text{margin-left:15rpx;}
+.poster-poster .white .whiteCon .border{width:540rpx;border:1rpx solid #eee;padding:45rpx;box-sizing:border-box;margin-top:33rpx;}
+.poster-poster .white .whiteCon .border .pictrue{width:450rpx;height:450rpx;}
+.poster-poster .white .whiteCon .border .pictrue image{width:100%;height:100%;}
+.poster-poster .white .whiteCon .border .wemtip{font-size:24rpx;color:#999;text-align:center;height:90rpx;line-height:90rpx;}
+.poster-poster .white .whiteCon .border .ewm{width:170rpx;height:170rpx;margin:0 auto;}
+.poster-poster .white .whiteCon .border .ewm image{width:100%;height:100%;}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/first-new-product/index.js b/view/crmebNewUI/pages/first-new-product/index.js
new file mode 100644
index 00000000..17b13391
--- /dev/null
+++ b/view/crmebNewUI/pages/first-new-product/index.js
@@ -0,0 +1,94 @@
+// pages/first-new-product/index.js
+var app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '首发新品'
+ },
+ imgUrls: [],
+ bastList:[],
+ name:'',
+ icon:'',
+ type:0,
+ status:0,
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.setData({ type: options.type });
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ var type = this.data.type;
+ if (type == 1){
+ this.setData({ 'parameter.title': '精品推荐', name: '精品推荐', icon: 'icon-jingpintuijian'});
+ } else if (type == 2) {
+ this.setData({ 'parameter.title': '热门榜单', name: '热门榜单', icon: 'icon-remen', status: 1});
+ } else if (type == 3) {
+ this.setData({ 'parameter.title': '首发新品', name: '首发新品', icon: 'icon-xinpin' });
+ } else if (type == 4) {
+ this.setData({ 'parameter.title': '促销单品', name: '促销单品', icon: 'icon-cuxiaoguanli' });
+ }else{
+ this.setData({ 'parameter.title': '首发新品', name: '首发新品', icon: 'icon-xinpin' });
+ }
+ this.getIndexGroomList();
+ },
+ getIndexGroomList: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'public_api', a: 'get_index_groom_list', q: { type: that.data.type } }), function(res){
+ that.setData({ imgUrls: res.data.banner, bastList:res.data.list})
+ }, function(res){ console.log(res); }, true);
+ },
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/first-new-product/index.json b/view/crmebNewUI/pages/first-new-product/index.json
new file mode 100644
index 00000000..77403f54
--- /dev/null
+++ b/view/crmebNewUI/pages/first-new-product/index.json
@@ -0,0 +1,8 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "swipers": "/components/swipers/index",
+ "goodList": "/components/goodList/index",
+ "home": "/components/home/index"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/first-new-product/index.wxml b/view/crmebNewUI/pages/first-new-product/index.wxml
new file mode 100644
index 00000000..1323d46e
--- /dev/null
+++ b/view/crmebNewUI/pages/first-new-product/index.wxml
@@ -0,0 +1,11 @@
+
+
+
+
+
+ {{name}}
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/first-new-product/index.wxss b/view/crmebNewUI/pages/first-new-product/index.wxss
new file mode 100644
index 00000000..a94d7d99
--- /dev/null
+++ b/view/crmebNewUI/pages/first-new-product/index.wxss
@@ -0,0 +1,5 @@
+page{background-color:#fff!important;}
+.quality-recommend .title{height:120rpx;font-size:32rpx;color:#282828;background-color:#f5f5f5;}
+.quality-recommend .title .line{width:230rpx;height:2rpx;background-color:#e9e9e9;}
+.quality-recommend .title .name{margin:0 20rpx;}
+.quality-recommend .title .name .iconfont{margin-right:13rpx;font-size:38rpx;vertical-align:-4rpx;color:#343434;}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_cate/goods_cate.js b/view/crmebNewUI/pages/goods_cate/goods_cate.js
new file mode 100644
index 00000000..dfadfed9
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_cate/goods_cate.js
@@ -0,0 +1,144 @@
+var app = getApp();
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ navlist: [],
+ productList: [],
+ navActive: 0,
+ parameter: {
+ 'navbar': '1',
+ 'return': '0',
+ 'title':'产品分类'
+ },
+ navH:"",
+ number:""
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (res) {
+ this.getPidCate();
+ this.getAllCategory();
+ },
+ infoScroll:function(){
+ var that = this;
+ var len = that.data.productList.length;
+ that.setData({
+ navH: app.globalData.navHeight,
+ number: that.data.productList[len - 1].child.length
+ })
+ //设置商品列表高度
+ wx.getSystemInfo({
+ success: function (res) {
+ that.setData({
+ height: (res.windowHeight) * ( 750/res.windowWidth) - 98 - app.globalData.navHeight
+ //res.windowHeight:获取整个窗口高度为px,*2为rpx;98为头部占据的高度;
+ })
+ },
+ });
+ var height = 0;
+ var hightArr = [];
+ for (var i = 0; i < len; i++) { //productList
+ //获取元素所在位置
+ var query = wx.createSelectorQuery().in(this);
+ var idView = "#b" + i;
+ query.select(idView).boundingClientRect();
+ query.exec(function (res) {
+ var top = res[0].top;
+ hightArr.push(top);
+ that.setData({
+ hightArr: hightArr
+ });
+ });
+ };
+ },
+ tap: function (e) {
+ var id = e.currentTarget.dataset.id;
+ var index = e.currentTarget.dataset.index;
+ console.log(index, id);
+ this.setData({
+ toView: id,
+ navActive: index
+ });
+ },
+ getPidCate:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'store_api', a:"get_pid_cate"}),function(res){
+ that.setData({
+ navlist:res.data
+ });
+ });
+ },
+ getAllCategory:function(){
+ var that = this;
+ app.baseGet(app.U({ c: 'store_api', a: "get_product_category" }), function (res) {
+ that.setData({
+ productList: res.data
+ });
+ that.infoScroll();
+ });
+ },
+ scroll: function (e) {
+ var scrollTop = e.detail.scrollTop;
+ var scrollArr = this.data.hightArr;
+ for (var i = 0; i < scrollArr.length; i++) {
+ if (scrollTop >= 0 && scrollTop < scrollArr[1] - scrollArr[0]) {
+ this.setData({
+ navActive: 0,
+ lastActive: 0
+ })
+ } else if (scrollTop >= scrollArr[i] - scrollArr[0] && scrollTop < scrollArr[i + 1] - scrollArr[0]) {
+ console.log(scrollArr[1] - scrollArr[0])
+ this.setData({
+ navActive: i
+ })
+ } else if (scrollTop >= scrollArr[scrollArr.length - 1] - scrollArr[0]) {
+ this.setData({
+ navActive: scrollArr.length - 1
+ })
+ }
+ }
+ },
+
+ searchSubmitValue: function (e) {
+ var that = this;
+ app.baseGet(app.U({ c:"public_api",a: "get_form_id", q: { formId: e.detail.formId } }),null,null,true);
+ if (e.detail.value.length > 0) wx.navigateTo({ url: '/pages/goods_list/goods_list?searchValue=' + e.detail.value})
+ else return app.Tips({ title:'请填写要搜索的产品信息'});
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_cate/goods_cate.json b/view/crmebNewUI/pages/goods_cate/goods_cate.json
new file mode 100644
index 00000000..c10b1998
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_cate/goods_cate.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_cate/goods_cate.wxml b/view/crmebNewUI/pages/goods_cate/goods_cate.wxml
new file mode 100644
index 00000000..0099ce02
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_cate/goods_cate.wxml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ {{item.cate_name}}
+
+
+
+
+
+
+
+
+ {{item.cate_name}}
+
+
+
+
+
+
+ {{item.cate_name}}
+
+
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/goods_cate/goods_cate.wxss b/view/crmebNewUI/pages/goods_cate/goods_cate.wxss
new file mode 100644
index 00000000..12f4903a
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_cate/goods_cate.wxss
@@ -0,0 +1,19 @@
+page{background-color:#fff!important;}
+.productSort .header{width:100%;height:96rpx;background-color:#fff;position:fixed;left:0;right:0;z-index:9;border-bottom:1rpx solid #f5f5f5;}
+.productSort .header .input{width:700rpx;height:60rpx;background-color:#f5f5f5;border-radius:50rpx;box-sizing:border-box;padding:0 25rpx;}
+.productSort .header .input .iconfont{font-size:35rpx;color:#555;}
+.productSort .header .input .placeholder{color:#999;}
+.productSort .header .input input{font-size:26rpx;height:100%;width:597rpx;}
+.productSort .aside{position:fixed;width:180rpx;left:0;bottom:0;background-color:#f7f7f7;overflow-y:auto;overflow-x:hidden;}
+.productSort .aside .item{height:80rpx;width:100%;font-size:26rpx;color:#424242;}
+.productSort .aside .item.on{background-color:#fff;border-left:4rpx solid #fc4141;width:100%;text-align:center;color:#fc4141;font-weight:bold;}
+.productSort .conter{margin:98rpx 0 0 180rpx;padding:0 14rpx;}
+.productSort .conter .listw{padding-top:20rpx;}
+.productSort .conter .listw .title{height:90rpx;}
+.productSort .conter .listw .title .line{width:100rpx;height:2rpx;background-color:#999;}
+.productSort .conter .listw .title .name{font-size:28rpx;color:#333;margin:0 30rpx;font-weight:bold;}
+.productSort .conter .list{flex-wrap:wrap;}
+.productSort .conter .list .item{width:177rpx;margin-top:26rpx;}
+.productSort .conter .list .item .picture{width:120rpx;height:120rpx;border-radius:50%;}
+.productSort .conter .list .item .picture image{width:100%;height:100%;border-radius:50%;}
+.productSort .conter .list .item .name{font-size:24rpx;color:#333;height:56rpx;line-height:56rpx;width:120rpx;text-align:center;}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_comment_con/index.js b/view/crmebNewUI/pages/goods_comment_con/index.js
new file mode 100644
index 00000000..f1583256
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_comment_con/index.js
@@ -0,0 +1,148 @@
+// pages/evaluate-con/index.js
+const app=getApp();
+const util = require('../../utils/util.js');
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '商品评价',
+ 'color': false,
+ },
+ scoreList:[
+ { 'name': '商品质量','stars':0},
+ { 'name': '服务态度','stars':0},
+ ],
+ pics:[],
+ orderId:'',
+ unique:''
+ },
+
+ /**
+ * 授权回调
+ */
+ onLoadFun:function(){
+ this.getOrderProduct();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if (!options.unique || !options.uni) return app.Tips({title:'缺少参数'},{tab:3,url:1});
+ this.setData({ unique: options.unique, orderId: options.uni});
+ },
+ /**
+ * 获取某个产品详情
+ *
+ */
+ getOrderProduct:function(){
+ var that=this;
+ app.baseGet(app.U({ c: "store_api", a: 'get_order_product', q: { unique: that.data.unique}}),function(res){
+ that.setData({ orderCon:res.data});
+ });
+ },
+ stars: function (e) {
+ var index = e.target.dataset.index;
+ var indexw = e.target.dataset.indexw;
+ this.data.scoreList[indexw].stars = index
+ this.setData({
+ scoreList: this.data.scoreList
+ })
+ },
+
+ /**
+ * 删除图片
+ *
+ */
+ DelPic: function (e) {
+ var index = e.target.dataset.index, that = this, pic = this.data.pics[index];
+ app.basePost(app.U({ c: 'public_api', a: 'delete_image' }), { pic: pic.replace(app.globalData.url, '') }, function (res) {
+ that.data.pics.splice(index, 1);
+ that.setData({ pics: that.data.pics });
+ });
+ },
+
+ /**
+ * 上传文件
+ *
+ */
+ uploadpic: function () {
+ var that = this;
+ util.uploadImageOne(app.U({ c: 'public_api', a: 'upload' }), function (res) {
+ that.data.pics.push(app.globalData.url + res.data.url);
+ that.setData({ pics: that.data.pics });
+ });
+ },
+
+ /**
+ * 立即评价
+ */
+ formSubmit:function(e){
+ var formId = e.detail.formId, value = e.detail.value, that = this,
+ product_score = that.data.scoreList[0].stars, service_score = that.data.scoreList[1].stars;
+ if (!value.comment) return app.Tips({ title:'请填写你对宝贝的心得!'});
+ value.product_score = product_score;
+ value.service_score = service_score;
+ value.pics=that.data.pics;
+ wx.showLoading({ title: "正在发布评论……" });
+ app.basePost(app.U({ c: 'user_api', a: 'user_comment_product', q: { unique: that.data.unique}}),value,function(res){
+ wx.hideLoading();
+ return app.Tips({ title: '感谢您的评价!', icon: 'success' },'/pages/order_details/index?order_id='+that.data.orderId);
+ },function(res){
+ wx.hideLoading();
+ return app.Tips({title:res.msg});
+ });
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_comment_con/index.json b/view/crmebNewUI/pages/goods_comment_con/index.json
new file mode 100644
index 00000000..e247f085
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_comment_con/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_comment_con/index.wxml b/view/crmebNewUI/pages/goods_comment_con/index.wxml
new file mode 100644
index 00000000..24a6620c
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_comment_con/index.wxml
@@ -0,0 +1,43 @@
+
+
+
diff --git a/view/crmebNewUI/pages/goods_comment_con/index.wxss b/view/crmebNewUI/pages/goods_comment_con/index.wxss
new file mode 100644
index 00000000..873ded8f
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_comment_con/index.wxss
@@ -0,0 +1,22 @@
+.evaluate-con .score{background-color:#fff;border-top:1rpx solid #f5f5f5;font-size:28rpx;color:#282828;padding:48rpx 30rpx 65rpx 30rpx;}
+.evaluate-con .score .item~.item{margin-top:30rpx;}
+.evaluate-con .score .item .starsList{padding:0 35rpx 0 40rpx;}
+.evaluate-con .score .item .starsList .iconfont{font-size:40rpx;color:#aaa;}
+.evaluate-con .score .item .starsList .iconfont~.iconfont{margin-left:20rpx;}
+.evaluate-con .score .item .evaluate{color:#aaa;font-size:24rpx;}
+.evaluate-con .score .textarea{width:690rpx;background-color:#fafafa;border-radius:10rpx;margin-top:48rpx;}
+.evaluate-con .score .textarea textarea{font-size:28rpx;padding:38rpx 30rpx 0 30rpx;width:100%;box-sizing:border-box;height:160rpx;}
+.evaluate-con .score .textarea .placeholder{color:#bbb;}
+.evaluate-con .score .textarea .list{margin-top:25rpx;padding-left:5rpx;}
+.evaluate-con .score .textarea .list .pictrue{width:140rpx;height:140rpx;margin:0 0 35rpx 25rpx;position:relative;font-size:22rpx;color:#bbb;}
+.evaluate-con .score .textarea .list .pictrue:nth-last-child(1){border:1rpx solid #ddd;box-sizing:border-box;}
+.evaluate-con .score .textarea .list .pictrue image{width:100%;height:100%;border-radius:3rpx;}
+.evaluate-con .score .textarea .list .pictrue .icon-guanbi1{font-size:45rpx;position:absolute;top:-20rpx;right:-20rpx;}
+.evaluate-con .score .textarea .list .pictrue .icon-icon25201{color:#bfbfbf;font-size:50rpx;}
+.evaluate-con .score .evaluateBnt{font-size:30rpx;color:#fff;width:690rpx;height:86rpx;border-radius:43rpx;text-align:center;line-height:86rpx;margin-top:45rpx;}
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/goods_comment_list/index.js b/view/crmebNewUI/pages/goods_comment_list/index.js
new file mode 100644
index 00000000..7084c8d6
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_comment_list/index.js
@@ -0,0 +1,94 @@
+// pages/evaluate/index.js
+const app=getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '商品评分',
+ 'color': false,
+ },
+ replyData:{},
+ product_id:0,
+ reply:[],
+ type:0,
+ loading:false,
+ loadend:false,
+ loadTitle:'加载更多',
+ page:1,
+ limit:8
+ },
+ /**
+ * 授权回调
+ *
+ */
+ onLoadFun:function(){
+ this.getProductReplyCount();
+ this.getProductReplyList();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if(!options.product_id) return app.Tips({title:'缺少参数'},{tab:3,url:1});
+ this.setData({product_id:options.product_id});
+ },
+ /**
+ * 获取评论统计数据
+ *
+ */
+ getProductReplyCount:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'store_api', a:'product_reply_count',q:{productId:that.data.product_id}}),function(res){
+ that.setData({replyData:res.data});
+ });
+ },
+ /**
+ * 分页获取评论
+ */
+ getProductReplyList:function(){
+ var that=this;
+ if (that.data.loadend) return;
+ if (that.data.loading) return;
+ that.setData({loading:true,loadTitle:''});
+ app.baseGet(app.U({ c: 'store_api', a: 'product_reply_list', q: {
+ productId:that.data.product_id,
+ page:that.data.page,
+ limit:that.data.limit,
+ type:that.data.type,
+ }}),function(res){
+ var list=res.data,loadend=list.length < that.data.limit;
+ that.data.reply = app.SplitArray(list,that.data.reply);
+ that.setData({
+ reply:that.data.reply,
+ loading:false,
+ loadend:loadend,
+ loadTitle:loadend ? "😕人家是有底线的~~":"加载更多",
+ page:that.data.page+1
+ });
+ },function(res){
+ that.setData({loading:false,loadTitle:'加载更多'});
+ });
+ },
+ /*
+ * 点击事件切换
+ * */
+ changeType:function(e){
+ var type = e.target.dataset.type;
+ type=parseInt(type);
+ if(type==this.data.type) return;
+ this.setData({type:type,page:1,loadend:false,reply:[]});
+ this.getProductReplyList();
+ },
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+ this.getProductReplyList();
+ },
+
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_comment_list/index.json b/view/crmebNewUI/pages/goods_comment_list/index.json
new file mode 100644
index 00000000..8fddb450
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_comment_list/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "userEvaluation": "/components/userEvaluation/index",
+ "authorize":"/components/authorize/authorize"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_comment_list/index.wxml b/view/crmebNewUI/pages/goods_comment_list/index.wxml
new file mode 100644
index 00000000..b8d7149d
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_comment_list/index.wxml
@@ -0,0 +1,24 @@
+
+
+
+
+ 全部({{replyData.sum_count}})
+ 好评({{replyData.good_count}})
+ 中评({{replyData.in_count}})
+ 差评({{replyData.poor_count}})
+
+
+
+ {{loadTitle}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_comment_list/index.wxss b/view/crmebNewUI/pages/goods_comment_list/index.wxss
new file mode 100644
index 00000000..89622634
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_comment_list/index.wxss
@@ -0,0 +1,5 @@
+.evaluate-list .generalComment{height:94rpx;padding:0 30rpx;margin-top:1rpx;background-color:#fff;font-size:28rpx;color:#808080;}
+.evaluate-list .generalComment .evaluate{margin-right:7rpx;}
+.evaluate-list .nav{font-size:24rpx;color:#282828;padding:0 30rpx 32rpx 30rpx;background-color:#fff;border-bottom:1rpx solid #f5f5f5;}
+.evaluate-list .nav .item{font-size:24rpx;color:#282828;border-radius:6rpx;height:54rpx;padding:0 20rpx;background-color:#f4f4f4;line-height:54rpx;margin-right:17rpx;}
+.evaluate-list .nav .item.bg-color{color:#fff;}
diff --git a/view/crmebNewUI/pages/goods_details/index.js b/view/crmebNewUI/pages/goods_details/index.js
new file mode 100644
index 00000000..d91b3d0b
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_details/index.js
@@ -0,0 +1,541 @@
+// pages/product-con/index.js
+var app = getApp();
+var wxh = require('../../utils/wxh.js');
+var util = require('../../utils/util.js');
+var WxParse = require('../../wxParse/wxParse.js');
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '商品详情'
+ },
+ attribute:{'cartAttr':false},//属性是否打开
+ coupon: {
+ 'coupon': false,
+ list:[],
+ },
+ attr:'请选择',//属性页面提示
+ attrValue:'',//已选属性
+ animated: false,//购物车动画
+ id:0,//商品id
+ replyCount: 0,//总评论数量
+ reply: [],//评论列表
+ storeInfo: {},//商品详情
+ productAttr: [],//组件展示属性
+ productValue: [],//系统属性
+ couponList: [], //优惠券
+ productSelect: {}, //属性选中规格
+ cart_num: 1,//购买数量
+ isAuto: false,//没有授权的不会自动授权
+ iShidden:true,//是否隐藏授权
+ isOpen:false,//是否打开属性组件
+ isLog:app.globalData.isLog,//是否登录
+ actionSheetHidden:true,
+ posterImageStatus:false,
+ storeImage: '',//海报产品图
+ PromotionCode: '',//二维码图片
+ canvasStatus: false,//海报绘图标签
+ posterImage: '',//海报路径
+ posterbackgd:'/images/posterbackgd.png',
+ sharePacket:{
+ isState:true,//默认不显示
+ },//分销商详细
+ uid:0,//用户uid
+ },
+ /**
+ * 登录后加载
+ *
+ */
+ onLoadFun:function(e){
+ this.setData({ isLog:true});
+ this.getCouponList();
+ this.getCartCount();
+ this.downloadFilePromotionCode();
+ this.getUserInfo();
+ this.get_product_collect();
+ },
+ ChangCouponsClone:function(){
+ this.setData({'coupon.coupon':false});
+ },
+ /*
+ * 获取用户信息
+ */
+ getUserInfo: function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'user_api', a:'get_my_user_info'}),function(res){
+ that.setData({ 'sharePacket.isState': res.data.is_promoter ? false : true, uid: res.data.uid});
+ });
+ },
+ /**
+ * 购物车数量加和数量减
+ *
+ */
+ ChangeCartNum:function(e){
+ //是否 加|减
+ var changeValue = e.detail;
+ //获取当前变动属性
+ var productSelect = this.data.productValue[this.data.attrValue];
+ //如果没有属性,赋值给商品默认库存
+ if (productSelect === undefined && !this.data.productAttr.length) productSelect = this.data.productSelect;
+ //不存在不加数量
+ if (productSelect===undefined) return;
+ //提取库存
+ var stock = productSelect.stock || 0;
+ //设置默认数据
+ if (productSelect.cart_num == undefined) productSelect.cart_num = 1;
+ //数量+
+ if (changeValue){
+ productSelect.cart_num++;
+ //大于库存时,等于库存
+ if (productSelect.cart_num > stock) productSelect.cart_num = stock;
+ this.setData({
+ ['productSelect.cart_num']: productSelect.cart_num,
+ cart_num: productSelect.cart_num
+ });
+ }else{
+ //数量减
+ productSelect.cart_num--;
+ //小于1时,等于1
+ if (productSelect.cart_num < 1) productSelect.cart_num=1;
+ this.setData({
+ ['productSelect.cart_num']: productSelect.cart_num,
+ cart_num: productSelect.cart_num
+ });
+ }
+ },
+ /**
+ * 属性变动赋值
+ *
+ */
+ ChangeAttr:function(e){
+ var values = e.detail;
+ var productSelect = this.data.productValue[values];
+ var storeInfo = this.data.storeInfo;
+ if (productSelect){
+ this.setData({
+ ["productSelect.image"]: productSelect.image,
+ ["productSelect.price"]: productSelect.price,
+ ["productSelect.stock"]: productSelect.stock,
+ ['productSelect.unique']: productSelect.unique,
+ ['productSelect.cart_num']: 1,
+ attrValue: values,
+ attr:'已选择'
+ });
+ }else{
+ this.setData({
+ ["productSelect.image"]: storeInfo.image,
+ ["productSelect.price"]: storeInfo.price,
+ ["productSelect.stock"]: 0,
+ ['productSelect.unique']:'',
+ ['productSelect.cart_num']: 0,
+ attrValue:'',
+ attr:'请选择'
+ });
+ }
+ },
+ /**
+ * 领取完毕移除当前页面领取过的优惠券展示
+ */
+ ChangCoupons:function(e){
+ var coupon = e.detail;
+ var couponList = util.ArrayRemove(this.data.couponList, 'id', coupon.id);
+ this.setData({ couponList: couponList});
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ //扫码携带参数处理
+ if (options.scene){
+ var value =util.getUrlParams(decodeURIComponent(options.scene));
+ if (value.id) options.id = value.id;
+ //记录推广人uid
+ if (value.pid) app.globalData.spid = value.pid;
+ }
+ if (!options.id) return app.Tips({ title: '缺少参数无法查看商品' }, { tab: 3, url: 1 });
+ this.setData({ id: options.id});
+ //记录推广人uid
+ if (options.spid) app.globalData.spid=options.spid;
+ this.getGoodsDetails();
+ },
+ /**
+ * 获取产品详情
+ *
+ */
+ getGoodsDetails:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'store_api', a:'details',q:{id:that.data.id}}),function(res){
+ var storeInfo = res.data.storeInfo;
+ that.setData({
+ storeInfo: storeInfo,
+ reply: res.data.reply ? [res.data.reply] : [],
+ replyCount: res.data.replyCount,
+ description: storeInfo.description,
+ replyChance: res.data.replyChance,
+ productAttr: res.data.productAttr,
+ productValue: res.data.productValue,
+ ["sharePacket.priceName"]: res.data.priceName
+ });
+ that.downloadFilestoreImage();
+ that.DefaultSelect();
+ //html转wxml
+ WxParse.wxParse('description', 'html', that.data.description, that, 0);
+ },function(res){
+ //状态异常返回上级页面
+ return app.Tips({ title: res.msg }, { tab: 3, url: 1 });
+ });
+ },
+ /**
+ * 默认选中属性
+ *
+ */
+ DefaultSelect:function(){
+ var productAttr = this.data.productAttr, storeInfo = this.data.storeInfo;
+ for (var i = 0, len = productAttr.length;i < len; i++){
+ if (productAttr[i].attr_value[0]) productAttr[i].checked = productAttr[i].attr_value[0]['attr'];
+ }
+ var value=this.data.productAttr.map(function (attr) {
+ return attr.checked;
+ });
+ var productSelect = this.data.productValue[value.sort().join(',')];
+ if (productSelect){
+ this.setData({
+ ["productSelect.store_name"]: storeInfo.store_name,
+ ["productSelect.image"]: productSelect.image,
+ ["productSelect.price"]: productSelect.price,
+ ["productSelect.stock"]: productSelect.stock,
+ ['productSelect.unique']: productSelect.unique,
+ ['productSelect.cart_num']: 1,
+ attrValue: value,
+ attr: '已选择'
+ });
+ }else{
+ this.setData({
+ ["productSelect.store_name"]:storeInfo.store_name,
+ ["productSelect.image"]: storeInfo.image,
+ ["productSelect.price"]: storeInfo.price,
+ ["productSelect.stock"]: storeInfo.stock,
+ ['productSelect.unique']: storeInfo.unique || '',
+ ['productSelect.cart_num']: 1,
+ attrValue: '',
+ attr: '请选择'
+ });
+ }
+ this.setData({ productAttr: productAttr});
+ },
+ /**
+ * 获取是否收藏
+ */
+ get_product_collect:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'store_api', a: 'get_product_collect', q: { product_id:that.data.id}}),function(res){
+ that.setData({ 'storeInfo.userCollect': res.data.userCollect});
+ });
+ },
+ /**
+ * 获取优惠券
+ *
+ */
+ getCouponList(){
+ var that=this;
+ app.baseGet(app.U({ c: "coupons_api", a:'get_issue_coupon_list',q:{limit:10}}),function(res){
+ var couponList=[];
+ for (var i = 0; i < res.data.length;i++){
+ if (!res.data[i].is_use && couponList.length < 2) couponList.push(res.data[i]);
+ }
+ that.setData({
+ ['coupon.list']:res.data,
+ couponList: couponList
+ });
+ });
+ },
+ /**
+ *
+ *
+ * 收藏商品
+ */
+ setCollect:function(){
+ if (app.globalData.isLog === false) {
+ this.setData({
+ isAuto: true,
+ iShidden: false,
+ });
+ } else {
+ var url =app.U({
+ c: 'store_api',
+ a: this.data.storeInfo.userCollect ? 'uncollect_product' : 'collect_product',
+ q: { productId:this.data.storeInfo.id}
+ }),that=this;
+ app.baseGet(url,function(res){
+ that.setData({
+ ['storeInfo.userCollect']: !that.data.storeInfo.userCollect
+ })
+ });
+ }
+ },
+ /**
+ * 打开属性插件
+ */
+ selecAttr:function(){
+ if (app.globalData.isLog===false)
+ this.setData({ isAuto: true,iShidden:false})
+ else
+ this.setData({ 'attribute.cartAttr': true,isOpen:true})
+ },
+ /**
+ * 打开优惠券插件
+ */
+ coupon:function(){
+ if (app.globalData.isLog === false)
+ this.setData({isAuto: true,iShidden: false})
+ else{
+ this.getCouponList();
+ this.setData({ 'coupon.coupon': true })
+ }
+ },
+ onMyEvent: function (e) {
+ this.setData({ 'attribute.cartAttr': e.detail.window, isOpen:false})
+ },
+ /**
+ * 打开属性加入购物车
+ *
+ */
+ joinCart:function(){
+ //是否登录
+ if (app.globalData.isLog === false)
+ this.setData({isAuto: true,iShidden: false,});
+ else
+ this.goCat();
+ },
+ /*
+ * 加入购物车
+ */
+ goCat:function(isPay){
+ var that=this;
+ var productSelect = this.data.productValue[this.data.attrValue];
+ //打开属性
+ if (this.data.attrValue){
+ //默认选中了属性,但是没有打开过属性弹窗还是自动打开让用户查看默认选中的属性
+ this.setData({ 'attribute.cartAttr': !this.data.isOpen ? true : false })
+ }else{
+ if (this.data.isOpen)
+ this.setData({ 'attribute.cartAttr': true })
+ else
+ this.setData({ 'attribute.cartAttr': !this.data.attribute.cartAttr});
+ }
+ //只有关闭属性弹窗时进行加入购物车
+ if (this.data.attribute.cartAttr === true && this.data.isOpen == false) return this.setData({ isOpen: true });
+ //如果有属性,没有选择,提示用户选择
+ if (this.data.productAttr.length && productSelect === undefined && this.data.isOpen==true) return app.Tips({title:'请选择属性'});
+ app.baseGet(app.U({
+ c: 'auth_api',
+ a: isPay == undefined ? 'set_cart' : 'now_buy',
+ q:{
+ productId: that.data.id,
+ cartNum: that.data.cart_num,
+ uniqueId: productSelect !== undefined ? productSelect.unique : ''
+ }
+ }),function(res){
+ that.setData({ isOpen: false,'attribute.cartAttr':false});
+ if (isPay)
+ wx.navigateTo({url: '/pages/order_confirm/index?cartId=' + res.data.cartId});
+ else
+ app.Tips({ title: '添加购物车成功', icon: 'success' },function(){
+ that.getCartCount(true);
+ });
+ })
+ },
+ /**
+ * 获取购物车数量
+ * @param boolean 是否展示购物车动画和重置属性
+ */
+ getCartCount: function (isAnima) {
+ var that = this;
+ app.baseGet(app.U({ c: 'auth_api', a:'get_cart_num'}),function(res){
+ that.setData({CartCount: res.data});
+ //加入购物车后重置属性
+ if (isAnima){
+ that.setData({
+ animated: true,
+ attrValue: '',
+ attr: '请选择',
+ ["productSelect.image"]: that.data.storeInfo.image,
+ ["productSelect.price"]: that.data.storeInfo.price,
+ ["productSelect.stock"]: that.data.storeInfo.stock,
+ ['productSelect.unique']: '',
+ ['productSelect.cart_num']: 1,
+ });
+ that.selectComponent('#product-window').ResetAttr();
+ setTimeout(function () {
+ that.setData({
+ animated: false
+ });
+ }, 500);
+ }
+ });
+ },
+ /**
+ * 立即购买
+ */
+ goBuy:function(){
+ var that = this;
+ if (app.globalData.isLog === false)
+ this.setData({ isAuto: true, iShidden: false });
+ else
+ this.goCat(true);
+ },
+ /**
+ * 分享打开和关闭
+ *
+ */
+ listenerActionSheet: function () {
+ if (app.globalData.isLog === false)
+ this.setData({ isAuto: true, iShidden: false });
+ else
+ this.setData({ actionSheetHidden: !this.data.actionSheetHidden })
+ },
+ //隐藏海报
+ posterImageClose: function () {
+ this.setData({posterImageStatus: false,})
+ },
+ //替换安全域名
+ setDomain: function (url) {
+ url = url ? url.toString() : '';
+ //本地调试打开,生产请注销
+ // return url;
+ if (url.indexOf("https://") > -1) return url;
+ else return url.replace('http://', 'https://');
+ },
+ //获取海报产品图
+ downloadFilestoreImage: function () {
+ var that = this;
+ wx.downloadFile({
+ url: that.setDomain(that.data.storeInfo.image),
+ success: function (res) {
+ that.setData({
+ storeImage: res.tempFilePath
+ })
+ },
+ fail:function(){
+ return app.Tips({title:''});
+ that.setData({
+ storeImage: '',
+ })
+ },
+ });
+ },
+ /**
+ * 获取产品分销二维码
+ * @param function successFn 下载完成回调
+ *
+ */
+ downloadFilePromotionCode: function (successFn) {
+ var that = this;
+ app.baseGet(app.U({ c: 'store_api', a:'product_promotion_code',q:{id:this.data.id}}),function(res){
+ wx.downloadFile({
+ url: that.setDomain(res.msg),
+ success: function (res) {
+ if (typeof successFn == 'function')
+ successFn && successFn(res.tempFilePath);
+ else
+ that.setData({PromotionCode: res.tempFilePath});
+ },
+ fail:function(){
+ that.setData({ PromotionCode: '' });
+ },
+ });
+ }, function (res) { that.setData({ PromotionCode: '' }); });
+ },
+ /**
+ * 生成海报
+ */
+ goPoster:function(){
+ var that = this;
+ that.setData({ canvasStatus: true });
+ var arr2 = [that.data.posterbackgd, that.data.storeImage, that.data.PromotionCode];
+ if (arr2[2] == ''){
+ //海报二维码不存在则从新下载
+ that.downloadFilePromotionCode(function (msgPromotionCode){
+ arr2[2] = msgPromotionCode;
+ if (arr2[2]=='') return app.Tips({title:'海报二维码生成失败!'});
+ util.PosterCanvas(arr2, that.data.storeInfo.store_name, that.data.storeInfo.price, function (tempFilePath){
+ that.setData({
+ posterImage:tempFilePath,
+ posterImageStatus: true,
+ canvasStatus: false,
+ actionSheetHidden: !that.data.actionSheetHidden
+ })
+ });
+ });
+ }else{
+ //生成推广海报
+ util.PosterCanvas(arr2, that.data.storeInfo.store_name, that.data.storeInfo.price, function (tempFilePath) {
+ that.setData({
+ posterImage: tempFilePath,
+ posterImageStatus: true,
+ canvasStatus: false,
+ actionSheetHidden: !that.data.actionSheetHidden
+ })
+ });
+ }
+ },
+ /*
+ * 保存到手机相册
+ */
+ savePosterPath: function () {
+ var that = this;
+ wx.getSetting({
+ success(res) {
+ if (!res.authSetting['scope.writePhotosAlbum']) {
+ wx.authorize({
+ scope: 'scope.writePhotosAlbum',
+ success() {
+ wx.saveImageToPhotosAlbum({
+ filePath: that.data.posterImage,
+ success: function (res) {
+ that.posterImageClose();
+ app.Tips({ title: '保存成功', icon:'success'});
+ },
+ fail: function (res) {
+ app.Tips({ title: '保存失败' });
+ }
+ })
+ }
+ })
+ } else {
+ wx.saveImageToPhotosAlbum({
+ filePath: that.data.posterImage,
+ success: function (res) {
+ that.posterImageClose();
+ app.Tips({ title: '保存成功', icon: 'success' });
+ },
+ fail: function (res) {
+ app.Tips({ title: '保存失败' });
+ },
+ })
+ }
+ }
+ })
+ },
+ set_user_share:function(){
+ app.baseGet(app.U({ c: 'public_api', a:'set_user_share'}),null,null,true);
+ },
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+ var that = this;
+ that.setData({actionSheetHidden: !that.data.actionSheetHidden});
+ that.set_user_share();
+ return {
+ title: that.data.productSelect.store_name,
+ imageUrl: that.data.productSelect.image,
+ path: '/pages/goods_details/index?id=' + that.data.id + (that.data.sharePacket.isState ? '':'&spid='+that.data.uid),
+ }
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_details/index.json b/view/crmebNewUI/pages/goods_details/index.json
new file mode 100644
index 00000000..bf66f6d1
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_details/index.json
@@ -0,0 +1,12 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "shareRedPackets": "/components/share-red-packets/index",
+ "productConSwiper": "/components/productConSwiper/index",
+ "userEvaluation": "/components/userEvaluation/index",
+ "product-window":"/components/product-window/index",
+ "coupon-list-window": "/components/coupon-list-window/index",
+ "authorize": "/components/authorize/authorize",
+ "home": "/components/home/index"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_details/index.wxml b/view/crmebNewUI/pages/goods_details/index.wxml
new file mode 100644
index 00000000..8aa58fff
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_details/index.wxml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ ¥{{storeInfo.price}} ¥{{storeInfo.vip_price}}
+
+
+
+ {{storeInfo.store_name}}
+
+ 原价:¥{{storeInfo.ot_price}}
+ 库存:{{storeInfo.stock}}{{storeInfo.unit_name}}
+ 销量:{{storeInfo.fsales}}{{storeInfo.unit_name}}
+
+
+
+ 优惠券:
+ 满{{item.use_min_price}}减{{item.coupon_price}}
+
+
+
+
+
+ {{attr}}:{{attrValue}}
+
+
+
+
+ 用户评价({{replyCount}})
+
+ {{replyChance}}% 好评率
+
+
+
+
+
+ 产品介绍
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 发送给朋友
+
+
+
+ 生成海报
+
+
+
+
+
+
+
+ 保存到手机
+
+
+
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/goods_details/index.wxss b/view/crmebNewUI/pages/goods_details/index.wxss
new file mode 100644
index 00000000..3287fab6
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_details/index.wxss
@@ -0,0 +1,30 @@
+.product-con .footer{padding:0 20rpx 0 30rpx;position:fixed;bottom:0;width:100%;box-sizing:border-box;height:100rpx;background-color:#fff;z-index:99;border-top:1rpx solid #f0f0f0;}
+.product-con .footer .item{font-size:18rpx;color:#666;}
+.product-con .footer .item .iconfont{text-align:center;font-size:40rpx;}
+.product-con .footer .item .iconfont.icon-shoucang1 {color:#f00;}
+.product-con .footer .item .iconfont.icon-gouwuche1{font-size:40rpx;position:relative;}
+.product-con .footer .item .iconfont.icon-gouwuche1 .num{color:#fff;position:absolute;font-size:18rpx;
+padding:2rpx 8rpx 3rpx;border-radius:200rpx;top:-10rpx;right:-10rpx;}
+.product-con .footer .bnt{width:444rpx;height:76rpx;color:#fff;font-size:28rpx;}
+.product-con .footer .bnt>view{width:222rpx;text-align:center;line-height:76rpx;}
+.product-con .footer .bnt .joinCart{border-radius:50rpx 0 0 50rpx;background-image: linear-gradient(to right,#fea10f 0%,#fa8013 100%);}
+.product-con .footer .bnt .buy{border-radius:0 50rpx 50rpx 0;background-image: linear-gradient(to right,#fa6514 0%,#e93323 100%);}
+@import "/wxParse/wxParse.wxss";
+
+button{padding:0;margin:0;line-height:normal;background-color:#fff;}
+button::after{border:0;}
+action-sheet-item{padding: 0;height:240rpx;align-items:center;display:flex;}
+.contact{font-size:16px;width:50%;
+background-color:#fff;padding:8rpx 0;border-radius:0;margin:0;line-height:2;}
+.contact::after{border:none;}
+.action-sheet{font-size:17px;line-height:1.8;width:50%;position: absolute;top:0;right:0;padding:25rpx 0;}
+
+.canvas{width: 750px; height: 1298px;}
+.poster-pop{width:450rpx;height:714rpx;position:fixed;left:50%;transform:translateX(-50%);z-index:99;top:50%;margin-top:-357rpx;}
+.poster-pop image{width:100%;height:100%;display:block;}
+.poster-pop .close{width:46rpx;height:75rpx;position:fixed;right:0;top:-73rpx;display:block;}
+.poster-pop .save-poster{background-color:#df2d0a;font-size::22rpx;color:#fff;text-align:center;height:76rpx;line-height:76rpx;width:100%;}
+.mask{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.6);z-index:9;}
+
+.pro-wrapper .iconn{background-image:url('data:image/png;base64,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');width:100rpx;height:100rpx;background-repeat:no-repeat;background-size:100% 100%;margin:0 auto;}
+.pro-wrapper .iconn.iconn1{background-image:url('data:image/png;base64,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');}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_list/goods_list.js b/view/crmebNewUI/pages/goods_list/goods_list.js
new file mode 100644
index 00000000..5b967ffd
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_list/goods_list.js
@@ -0,0 +1,186 @@
+var app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ productList:[],
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '商品列表',
+ 'color': true,
+ 'class': '0'
+ },
+ navH: "",
+ is_switch:true,
+ where: {
+ sid: 0,
+ keyword: '',
+ priceOrder: '',
+ salesOrder: '',
+ news: 0,
+ page: 1,
+ limit: 10,
+ cid: 0,
+ },
+ price:0,
+ stock:0,
+ nows:false,
+ loadend:false,
+ loading:false,
+ loadTitle:'加载更多',
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.setData({
+ ['where.sid']: options.sid || 0,
+ title: options.title || '',
+ ['where.keyword']: options.searchValue || '',
+ navH: app.globalData.navHeight
+ });
+ this.get_product_list();
+ this.get_host_product();
+ },
+ Changswitch:function(){
+ var that = this;
+ that.setData({
+ is_switch: !this.data.is_switch
+ })
+ },
+ searchSubmit: function (e) {
+ var that = this;
+ this.setData({ ['where.keyword']: e.detail.value, loadend: false, ['where.page']: 1 })
+ this.get_product_list(true);
+ },
+ /**
+ * 获取我的推荐
+ */
+ get_host_product: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'public_api', a: "get_hot_product", q: { offset: 1, limit: 4 } }), function (res) {
+ that.setData({ host_product: res.data });
+ });
+ },
+ //点击事件处理
+ set_where: function (e) {
+ var dataset = e.target.dataset;
+ switch (dataset.type) {
+ case '1':
+ return wx.navigateBack({
+ delta: 1,
+ })
+ break;
+ case '2':
+ if (this.data.price == 0)
+ this.data.price = 1;
+ else if (this.data.price == 1)
+ this.data.price = 2;
+ else if (this.data.price == 2)
+ this.data.price = 0;
+ this.setData({ price: this.data.price, stock: 0 });
+ break;
+ case '3':
+ if (this.data.stock == 0)
+ this.data.stock = 1;
+ else if (this.data.stock == 1)
+ this.data.stock = 2;
+ else if (this.data.stock == 2)
+ this.data.stock = 0;
+ this.setData({ stock: this.data.stock, price: 0 });
+ break;
+ case '4':
+ this.setData({ nows: !this.data.nows });
+ break;
+ }
+ this.setData({ loadend: false, ['where.page']: 1 });
+ this.get_product_list(true);
+ },
+ //设置where条件
+ setWhere: function () {
+ if (this.data.price == 0)
+ this.data.where.priceOrder = '';
+ else if (this.data.price == 1)
+ this.data.where.priceOrder = 'desc';
+ else if (this.data.price == 2)
+ this.data.where.priceOrder = 'asc';
+ if (this.data.stock == 0)
+ this.data.where.salesOrder = '';
+ else if (this.data.stock == 1)
+ this.data.where.salesOrder = 'desc';
+ else if (this.data.stock == 2)
+ this.data.where.salesOrder = 'asc';
+ this.data.where.news = this.data.nows ? 1 : 0;
+ this.setData({ where: this.data.where });
+ },
+ //查找产品
+ get_product_list: function (isPage) {
+ var that = this;
+ this.setWhere();
+ if (that.data.loadend) return;
+ if (that.data.loading) return;
+ if (isPage === true) that.setData({ productList: [] });
+ that.setData({ loading: true, loadTitle: '' });
+ app.baseGet(app.U({ c:'store_api',a: 'get_product_list', q: that.data.where }), function (res) {
+ var list = res.data;
+ var productList = app.SplitArray(list, that.data.productList);
+ var loadend = list.length < that.data.where.limit;
+ that.setData({
+ loadend: loadend,
+ loading: false,
+ loadTitle: loadend ? '已全部加载' : '加载更多',
+ productList: productList,
+ ['where.page']: that.data.where.page + 1,
+ });
+ }, function (res) {
+ that.setData({ loading: false, loadTitle: '加载更多' });
+ }, true);
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+ this.setData({['where.page']:1,loadend:false,productList:[]});
+ this.get_product_list();
+ wx.stopPullDownRefresh();
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+ this.get_product_list();
+ },
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_list/goods_list.json b/view/crmebNewUI/pages/goods_list/goods_list.json
new file mode 100644
index 00000000..baa1ee8e
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_list/goods_list.json
@@ -0,0 +1,7 @@
+{
+ "navigationBarTextStyle": "white",
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "recommend": "/components/recommend/index"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_list/goods_list.wxml b/view/crmebNewUI/pages/goods_list/goods_list.wxml
new file mode 100644
index 00000000..47a0662e
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_list/goods_list.wxml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{title ? title:'默认'}}
+
+ 价格
+
+
+
+
+
+ 销量
+
+
+
+
+
+ 新品
+
+
+
+
+
+ {{item.store_name}}
+ ¥{{item.price}}
+
+ ¥{{item.vip_price}}
+ 已售{{item.sales}}件
+
+
+
+
+ {{loadTitle}}
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/goods_list/goods_list.wxss b/view/crmebNewUI/pages/goods_list/goods_list.wxss
new file mode 100644
index 00000000..5f2b69fa
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_list/goods_list.wxss
@@ -0,0 +1,31 @@
+.productList .search{width:100%;height:86rpx;padding-left:23rpx;box-sizing:border-box;position:fixed;left:0;}
+.productList .search .input{width:640rpx;height:60rpx;background-color:#fff;border-radius:50rpx;padding:0 20rpx;box-sizing:border-box;}
+.productList .search .input input{width:548rpx;height:100%;font-size:26rpx;}
+.productList .search .input .placeholder{color:#999;}
+.productList .search .input .iconfont{font-size:35rpx;color:#555;}
+.productList .search .icon-pailie,.productList .search .icon-tupianpailie{color:#fff;width:62rpx;font-size:40rpx;height:86rpx;line-height:86rpx;}
+.productList .nav{height:86rpx;color:#454545;position:fixed;left:0;width:100%;font-size:28rpx;background-color:#fff;}
+.productList .nav .item{width:25%;text-align:center;}
+.productList .nav .item.font-color{font-weight:bold;}
+.productList .nav .item image{width:15rpx;height:19rpx;margin-left:10rpx;}
+.productList .list{padding:0 20rpx;margin-top:172rpx;}
+.productList .list.on{background-color:#fff;border-top:1px solid #f6f6f6;}
+.productList .list .item{width:345rpx;margin-top:20rpx;background-color:#fff;border-radius:10rpx;}
+.productList .list .item.on{width:100%;display:flex;border-bottom:1rpx solid #f6f6f6;padding:30rpx 0;margin:0;}
+.productList .list .item .pictrue{width:100%;height:345rpx;}
+.productList .list .item .pictrue.on{width:180rpx;height:180rpx;}
+.productList .list .item .pictrue image{width:100%;height:100%;border-radius:10rpx 10rpx 0 0;}
+.productList .list .item .pictrue image.on{border-radius:6rpx;}
+.productList .list .item .text{padding:20rpx 17rpx 26rpx 17rpx;font-size:30rpx;color:#222;}
+.productList .list .item .text.on{width:508rpx;padding:0 0 0 22rpx;}
+.productList .list .item .text .money{font-size:26rpx;font-weight:bold;margin-top:8rpx;}
+.productList .list .item .text .money.on{margin-top:50rpx;}
+.productList .list .item .text .money .num{font-size:34rpx;}
+.productList .list .item .text .vip{font-size:22rpx;color:#aaa;margin-top:7rpx;}
+.productList .list .item .text .vip.on{margin-top:12rpx;}
+.productList .list .item .text .vip .vip-money{font-size:24rpx;color:#282828;font-weight:bold;}
+.productList .list .item .text .vip .vip-money image{width:46rpx;height:21rpx;margin-left:4rpx;}
+.noCommodity{background-color:#fff;}
+
+
+
diff --git a/view/crmebNewUI/pages/goods_logistics/index.js b/view/crmebNewUI/pages/goods_logistics/index.js
new file mode 100644
index 00000000..fdde476f
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_logistics/index.js
@@ -0,0 +1,105 @@
+var app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '物流信息'
+ },
+ orderId:'',
+ product: { productInfo:{}},
+ orderInfo:{},
+ expressList:[],
+ },
+
+ /**
+ * 授权回调
+ */
+ onLoadFun:function(){
+ this.getExpress();
+ this.get_host_product();
+ },
+ copyOrderId:function(){
+ wx.setClipboardData({ data: this.data.orderInfo.order_id });
+ },
+ getExpress:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'user_api', a: 'express', q: { uni:that.data.orderId}}),function(res){
+ var result = res.data.express.result || {};
+ that.setData({
+ product: res.data.order.cartInfo[0] || {},
+ orderInfo: res.data.order,
+ expressList: result.list || []
+ });
+ });
+ },
+ /**
+* 获取我的推荐
+*/
+ get_host_product: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'public_api', a: "get_hot_product", q: { offset: 1, limit: 4 } }), function (res) {
+ that.setData({ host_product: res.data });
+ });
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if (!options.orderId) return app.Tips({title:'缺少订单号'});
+ this.setData({ orderId: options.orderId });
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_logistics/index.json b/view/crmebNewUI/pages/goods_logistics/index.json
new file mode 100644
index 00000000..3d8369c7
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_logistics/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "recommend": "/components/recommend/index",
+ "authorize": "/components/authorize/authorize"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_logistics/index.wxml b/view/crmebNewUI/pages/goods_logistics/index.wxml
new file mode 100644
index 00000000..e9b98d83
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_logistics/index.wxml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+ 物流公司: {{orderInfo.delivery_name}}
+ 快递单号: {{orderInfo.delivery_id}}
+
+
+ 复制单号
+
+
+
+
+ {{item.status}}
+ {{item.time}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_logistics/index.wxss b/view/crmebNewUI/pages/goods_logistics/index.wxss
new file mode 100644
index 00000000..9f576570
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_logistics/index.wxss
@@ -0,0 +1,21 @@
+.logistics .header{padding:23rpx 30rpx;background-color:#fff;height:166rpx;box-sizing:border-box;}
+.logistics .header .pictrue{width:120rpx;height:120rpx;}
+.logistics .header .pictrue image{width:100%;height:100%;border-radius:6rpx;}
+.logistics .header .text{width:540rpx;font-size:28rpx;color:#999;margin-top:6rpx;}
+.logistics .header .text .name{width:365rpx;color:#282828;}
+.logistics .header .text .money{text-align:right;}
+.logistics .logisticsCon{background-color:#fff;margin:12rpx 0;}
+.logistics .logisticsCon .company{height:120rpx;margin:0 0 45rpx 30rpx;padding-right:30rpx;border-bottom:1rpx solid #f5f5f5;}
+.logistics .logisticsCon .company .picTxt{width:520rpx;}
+.logistics .logisticsCon .company .picTxt .iconfont{width:50rpx;height:50rpx;background-color:#666;text-align:center;line-height:50rpx;color:#fff;font-size:35rpx;}
+.logistics .logisticsCon .company .picTxt .text{width:450rpx;font-size:26rpx;color:#282828;}
+.logistics .logisticsCon .company .picTxt .text .name{color:#999;}
+.logistics .logisticsCon .company .picTxt .text .express{margin-top:5rpx;}
+.logistics .logisticsCon .company .copy{font-size:20rpx;width:106rpx;height:40rpx;text-align:center;line-height:40rpx;border-radius:3rpx;border:1rpx solid #999;}
+.logistics .logisticsCon .item{padding:0 40rpx;position:relative;}
+.logistics .logisticsCon .item .circular{width:20rpx;height:20rpx;border-radius:50%;position:absolute;top:-1rpx;left:31.5rpx;background-color:#ddd;}
+.logistics .logisticsCon .item .circular.on{background-color:#e93323;}
+.logistics .logisticsCon .item .text{font-size:26rpx;color:#666;width:615rpx;border-left:1rpx solid #e6e6e6;padding:0 0 60rpx 38rpx;}
+.logistics .logisticsCon .item .text.on{border-left-color:#f8c1bd;}
+.logistics .logisticsCon .item .text .data{font-size:24rpx;color:#999;margin-top:10rpx;}
+.logistics .logisticsCon .item .text .data .time{margin-left:15rpx;}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_return/index.js b/view/crmebNewUI/pages/goods_return/index.js
new file mode 100644
index 00000000..d0ce7953
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_return/index.js
@@ -0,0 +1,106 @@
+// pages/apply-return/index.js
+const app=getApp();
+const util = require('../../utils/util.js');
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '申请退货',
+ 'color': false
+ },
+ refund_reason_wap_img:[],
+ orderInfo:{},
+ RefundArray: [],
+ index: 0,
+ orderId:0,
+ },
+ /**
+ * 授权回调
+ *
+ */
+ onLoadFun:function(){
+ this.getOrderInfo();
+ this.getRefundReason();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if (!options.orderId) return app.Tips({title:'缺少订单id,无法退款'},{tab:3,url:1});
+ this.setData({orderId:options.orderId});
+ },
+ /**
+ * 获取订单详情
+ *
+ */
+ getOrderInfo:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'user_api', a: 'get_order', q: { uni:that.data.orderId}}),function(res){
+ that.setData({orderInfo:res.data});
+ });
+ },
+ /**
+ * 获取退款理由
+ */
+ getRefundReason:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'public_api', a:'get_refund_reason'}),function(res){
+ that.setData({ RefundArray:res.data});
+ });
+ },
+
+ /**
+ * 删除图片
+ *
+ */
+ DelPic:function(e){
+ var index = e.target.dataset.index, that = this, pic = this.data.refund_reason_wap_img[index];
+ app.basePost(app.U({ c: 'public_api', a: 'delete_image' }), { pic: pic.replace(app.globalData.url, '')},function(res){
+ that.data.refund_reason_wap_img.splice(index,1);
+ that.setData({ refund_reason_wap_img: that.data.refund_reason_wap_img });
+ });
+ },
+
+ /**
+ * 上传文件
+ *
+ */
+ uploadpic:function(){
+ var that=this;
+ util.uploadImageOne(app.U({ c: 'public_api', a:'upload'}),function(res){
+ that.data.refund_reason_wap_img.push(app.globalData.url+res.data.url);
+ that.setData({ refund_reason_wap_img: that.data.refund_reason_wap_img});
+ });
+ },
+
+
+ /**
+ * 申请退货
+ */
+ subRefund:function(e){
+ var that = this, formId = e.detail.formId, value = e.detail.value;
+ //收集form表单
+ // if (!value.refund_reason_wap_explain) return app.Tips({title:'请输入退款原因'});
+ app.baseGet(app.U({ c: 'public_api', a: 'get_form_id', q: { formId: formId}}),null,null,true);
+ app.basePost(app.U({ c: 'auth_api', a:'apply_order_refund'}),{
+ text: that.data.RefundArray[that.data.index] || '',
+ refund_reason_wap_explain: value.refund_reason_wap_explain,
+ refund_reason_wap_img: that.data.refund_reason_wap_img.join(','),
+ uni: that.data.orderId
+ },function(res){
+ return app.Tips({ title: '申请成功', icon: 'success' },{tab:4,url:'/pages/user_return_list/index?isT=1'});
+ },function(res){
+ return app.Tips({title:res.msg});
+ });
+ },
+
+ bindPickerChange: function (e) {
+ this.setData({index: e.detail.value});
+ },
+
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_return/index.json b/view/crmebNewUI/pages/goods_return/index.json
new file mode 100644
index 00000000..e247f085
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_return/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_return/index.wxml b/view/crmebNewUI/pages/goods_return/index.wxml
new file mode 100644
index 00000000..330b40b6
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_return/index.wxml
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ {{item.productInfo.store_name}}
+
+ ¥{{item.productInfo.attrInfo.price}}
+ x{{item.cart_num}}
+
+
+ ¥{{item.productInfo.price}}
+ x{{item.cart_num}}
+
+
+
+
+
+ 退货件数
+ {{orderInfo.total_num}}
+
+
+ 退款金额
+ ¥{{orderInfo.pay_price}}
+
+
+ 退款原因
+
+
+ {{RefundArray[index]}}
+
+
+
+
+
+ 备注说明
+
+
+
+
+ 上传凭证
+ ( 最多可上传3张 )
+
+
+
+
+
+
+
+
+ 上传凭证
+
+
+
+
+ 申请退款
+
+
+
diff --git a/view/crmebNewUI/pages/goods_return/index.wxss b/view/crmebNewUI/pages/goods_return/index.wxss
new file mode 100644
index 00000000..246b5756
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_return/index.wxss
@@ -0,0 +1,19 @@
+.apply-return .list{background-color:#fff;margin-top:18rpx;}
+.apply-return .list .item{margin-left:30rpx;padding-right:30rpx;min-height:90rpx;border-bottom:1rpx solid #eee;font-size:30rpx;color:#333;}
+.apply-return .list .item .num{color:#282828;width:427rpx;text-align:right;}
+.apply-return .list .item .num .picker .reason{width:385rpx;}
+.apply-return .list .item .num .picker .iconfont{color:#666;font-size:30rpx;margin-top:2rpx;}
+.apply-return .list .item.textarea{padding:30rpx 30rpx 30rpx 0;}
+.apply-return .list .item textarea{height:100rpx;font-size:30rpx;}
+.apply-return .list .item .placeholder{color:#bbb;}
+.apply-return .list .item .title{height:95rpx;width:100%;}
+.apply-return .list .item .title .tip{font-size:30rpx;color:#bbb;}
+.apply-return .list .item .upload{padding-bottom:36rpx;}
+.apply-return .list .item .upload .pictrue{margin:22rpx 23rpx 0 0;width:156rpx;height:156rpx;position:relative;font-size:24rpx;color:#bbb;}
+.apply-return .list .item .upload .pictrue:nth-of-type(4n){margin-right:0;}
+.apply-return .list .item .upload .pictrue image{width:100%;height:100%;border-radius:3rpx;}
+.apply-return .list .item .upload .pictrue .icon-guanbi1{position:absolute;font-size:45rpx;top:-10rpx;right:-10rpx;}
+.apply-return .list .item .upload .pictrue .icon-icon25201{color:#bfbfbf;font-size:50rpx;}
+.apply-return .list .item .upload .pictrue:nth-last-child(1){border:1rpx solid #ddd;box-sizing:border-box;}
+.apply-return .returnBnt{font-size:32rpx;color:#fff;width:690rpx;height:86rpx;border-radius:50rpx;text-align:center;line-height:86rpx;margin:43rpx auto;}
+
diff --git a/view/crmebNewUI/pages/goods_search/index.js b/view/crmebNewUI/pages/goods_search/index.js
new file mode 100644
index 00000000..082269ed
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_search/index.js
@@ -0,0 +1,116 @@
+// pages/searchGood/index.js
+var app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '搜索商品',
+ 'color': false
+ },
+ host_product:[],
+ searchValue:'',
+ focus:true,
+ bastList:[],
+ hotSearchList:[],
+ first: 0,
+ limit: 8,
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+ getRoutineHotSearch: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'store_api', a: "get_routine_hot_search", }), function (res) {
+ that.setData({ hotSearchList: res.data });
+ });
+ },
+ getProductList:function(){
+ var that = this;
+ app.baseGet(app.U({ c: 'store_api', a: "goods_search", q: { keyword: that.data.searchValue } }), function (res) {
+ that.setData({ bastList: res.data });
+ });
+ },
+ getHostProduct: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'public_api', a: "get_hot_product", q: { offset: 1, limit: 4 } }), function (res) {
+ that.setData({ host_product: res.data });
+ });
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+ setHotSearchValue: function (event) {
+ this.setData({ searchValue: event.currentTarget.dataset.item });
+ this.getProductList();
+ },
+ setValue: function (event){
+ this.setData({ searchValue: event.detail.value});
+ },
+ searchBut:function(){
+ var that = this;
+ if (that.data.searchValue.length > 0){
+ that.getProductList();
+ }else{
+ wx.showToast({
+ title: '请输入要搜索的商品',
+ icon: 'none',
+ duration: 1000,
+ mask: true,
+ })
+ }
+ },
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ this.getRoutineHotSearch();
+ this.getHostProduct();
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_search/index.json b/view/crmebNewUI/pages/goods_search/index.json
new file mode 100644
index 00000000..77a96429
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_search/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "goodList": "/components/goodList/index",
+ "recommend": "/components/recommend/index"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/goods_search/index.wxml b/view/crmebNewUI/pages/goods_search/index.wxml
new file mode 100644
index 00000000..e88cc16c
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_search/index.wxml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+ 搜索
+
+ 热门搜索
+
+
+ {{item.title}}
+
+
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/goods_search/index.wxss b/view/crmebNewUI/pages/goods_search/index.wxss
new file mode 100644
index 00000000..756ff17c
--- /dev/null
+++ b/view/crmebNewUI/pages/goods_search/index.wxss
@@ -0,0 +1,12 @@
+page{background-color:#fff!important;}
+.searchGood .search{padding-left:30rpx;}
+.searchGood .search{margin-top:20rpx;}
+.searchGood .search .input{width:598rpx;background-color:#f7f7f7;border-radius:33rpx;padding:0 35rpx;box-sizing:border-box;height:66rpx;}
+.searchGood .search .input input{width:472rpx;font-size:28rpx;}
+.searchGood .search .input .placeholder{color:#bbb;}
+.searchGood .search .input .iconfont{color:#000;font-size:35rpx;}
+.searchGood .search .bnt{width:120rpx;text-align:center;height:66rpx;line-height:66rpx;font-size:30rpx;color:#282828;}
+.searchGood .title{font-size:28rpx;color:#999;margin:50rpx 30rpx 25rpx 30rpx;}
+.searchGood .list{padding-left:10rpx;}
+.searchGood .list .item{font-size:26rpx;color:#454545;padding:0 21rpx;height:60rpx;border-radius:3rpx;line-height:60rpx;border:1rpx solid #aaa;margin:0 0 20rpx 20rpx;}
+.searchGood .line{border-bottom:1rpx solid #eee;margin:20rpx 30rpx 0 30rpx;}
diff --git a/view/crmebNewUI/pages/index/index.js b/view/crmebNewUI/pages/index/index.js
new file mode 100644
index 00000000..b91bb94f
--- /dev/null
+++ b/view/crmebNewUI/pages/index/index.js
@@ -0,0 +1,135 @@
+var app = getApp();
+var Util= require('../../utils/util.js')
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ imgUrls: [],
+ itemNew:[],
+ activityList:[],
+ menus: [],
+ bastBanner: [],
+ bastInfo: '',
+ bastList: [],
+ fastInfo: '',
+ fastList: [],
+ firstInfo: '',
+ firstList: [],
+ salesInfo: '',
+ likeInfo: [],
+ lovelyBanner: [],
+ benefit:[],
+ indicatorDots: false,
+ circular: true,
+ autoplay: true,
+ interval: 3000,
+ duration: 500,
+ parameter:{
+ 'navbar':'0',
+ 'return':'0'
+ },
+ window: false,
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if (options.spid) app.globalData.spid = options.spid;
+ if (options.scene) app.globalData.code = decodeURIComponent(options.scene);
+ var that=this;
+ wx.getSetting({
+ success(res) {
+ if (!res.authSetting['scope.userInfo']) {
+ that.setData({ window: true });
+ }
+ }
+ });
+
+ },
+ catchTouchMove: function (res) {
+ return false
+ },
+ onColse:function(){
+ this.setData({ window: false});
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ this.getIndexConfig();
+ if(app.globalData.isLog && app.globalData.token) this.get_issue_coupon_list();
+ },
+ get_issue_coupon_list:function(){
+ var that = this;
+ app.baseGet(app.U({ c: 'coupons_api', a:'get_issue_coupon_list',q:{limit:3}}),function(res){
+ that.setData({couponList:res.data});
+ if (!res.data.length) that.setData({ window: false });
+ });
+ },
+ getIndexConfig:function(){
+ var that = this;
+ var url = app.U({ c: 'public_api', a: 'index' }, app.globalData.url);
+ app.baseGet(url,function(res){
+ that.setData({
+ imgUrls: res.data.banner,
+ menus: res.data.menus,
+ itemNew: res.data.roll,
+ activityList: res.data.activity,
+ bastBanner: res.data.info.bastBanner,
+ bastInfo: res.data.info.bastInfo,
+ bastList: res.data.info.bastList,
+ fastInfo: res.data.info.fastInfo,
+ fastList: res.data.info.fastList,
+ firstInfo: res.data.info.firstInfo,
+ firstList: res.data.info.firstList,
+ salesInfo: res.data.info.salesInfo,
+ likeInfo: res.data.likeInfo,
+ lovelyBanner:res.data.info,
+ benefit: res.data.benefit,
+ logoUrl: res.data.logoUrl,
+ couponList: res.data.couponList,
+ });
+ });
+ },
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+ this.setData({ window:false});
+ },
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+ this.getIndexConfig();
+ if (app.globalData.isLog && app.globalData.token) this.get_issue_coupon_list();
+ wx.stopPullDownRefresh();
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/index/index.json b/view/crmebNewUI/pages/index/index.json
new file mode 100644
index 00000000..d7d2e167
--- /dev/null
+++ b/view/crmebNewUI/pages/index/index.json
@@ -0,0 +1,9 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "goodList": "/components/goodList/index",
+ "promotionGood": "/components/promotionGood/index",
+ "coupon-window": "/components/coupon-window/index",
+ "home": "/components/home/index"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/index/index.wxml b/view/crmebNewUI/pages/index/index.wxml
new file mode 100644
index 00000000..994ab707
--- /dev/null
+++ b/view/crmebNewUI/pages/index/index.wxml
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.name}}
+
+
+
+ {{item.name}}
+
+
+
+
+
+
+
+
+
+
+
+ 最新
+ {{item.info}}
+
+
+
+
+
+ 最新
+ {{item.info}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+ {{item.info}}
+
+
+
+
+
+
+
+
+ {{item.title}}
+ {{item.info}}
+
+
+
+
+
+
+
+
+ 快速选择
+ {{fastInfo}}
+
+ 更多
+
+
+
+
+
+
+
+
+ {{item.cate_name}}
+
+
+
+
+
+
+
+
+ 精品推荐
+ {{bastInfo}}
+
+ 更多
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 热门榜单 根据销量、搜索、好评等综合得出
+ 更多
+
+
+
+
+
+
+
+
+
+
+
+ {{item.store_name}}
+ ¥{{item.price}}
+
+
+
+
+
+
+
+
+
+
+
+
+ 首发新品NEW~
+ {{firstInfo}}
+
+ 更多
+
+
+
+
+
+
+
+
+ {{item.store_name}}
+ ¥{{item.price}}
+
+
+
+
+
+
+
+
+ 促销单品
+ {{salesInfo}}
+
+ 更多
+
+
+
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/index/index.wxss b/view/crmebNewUI/pages/index/index.wxss
new file mode 100644
index 00000000..fc3d9a55
--- /dev/null
+++ b/view/crmebNewUI/pages/index/index.wxss
@@ -0,0 +1,78 @@
+page{background-color:#fff!important;}
+.index .index-bg{width:100%;height:375rpx;position:relative;}
+.index .index-bg swiper{width:100%;height:100%;position:relative;}
+.index .index-bg .slide-navigator{width:100%;height:100%;}
+.index .index-bg .slide-navigator .slide-image{width:100%;height:100%;}
+.index .index-bg .wx-swiper-dot{width:20rpx;height:5rpx;border-radius:3rpx;}
+.index .index-bg .wx-swiper-dots.wx-swiper-dots-horizontal{margin-bottom:5rpx;}
+.index .nav{padding-top:26rpx;}
+.index .nav .item{width:25%;text-align:center;font-size:26rpx;margin-bottom:35rpx;}
+.index .nav .item .pictrue{width:90rpx;height:90rpx;margin:0 auto 15rpx auto;}
+.index .nav .item .pictrue image{width:100%;height:100%;border-radius:50%;}
+.index .news{height:77rpx;border-top:1rpx solid #f4f4f4;padding:0 30rpx;box-shadow:0 10rpx 30rpx #f5f5f5;}
+.index .news .pictrue{width:124rpx;height:28rpx;border-right:1rpx solid #ddd;padding-right:23rpx;box-sizing: content-box;}
+.index .news .pictrue image{width:100%;height:100%;}
+.index .news .swiperTxt{width:523rpx;height:100%;line-height:77rpx;overflow:hidden;}
+.index .news .swiperTxt .text{width:480rpx;}
+.index .news .swiperTxt .text .label{font-size:20rpx;color:#ff4c48;width:64rpx;height:30rpx;border-radius:40rpx;text-align:center;line-height:28rpx;border:2rpx solid #ff4947;}
+.index .news .swiperTxt .text .newsTitle{width:397rpx;font-size:24rpx;color:#666;}
+.index .news .swiperTxt .iconfont{font-size:28rpx;color:#888;}
+.index .news .swiperTxt swiper{height:100%;}
+.index .specialArea{padding:30rpx;}
+.index .specialArea .assemble{width:260rpx;height:260rpx;position:relative;}
+.index .specialArea .assemble image{width:100%;height:100%;border-radius:5rpx;}
+.index .specialArea .assemble .text{position:absolute;top:37rpx;left:22rpx;}
+.index .specialArea .name{font-size:30rpx;color:#fff;}
+.index .specialArea .infor{font-size:22rpx;color:rgba(255, 255, 255, 0.8);margin-top:5rpx;}
+.index .specialArea .list{height:260rpx;width:416rpx;}
+.index .specialArea .item{width:100%;height:124rpx;position:relative;}
+.index .specialArea .item image{width:100%;height:100%;}
+.index .specialArea .item .text{position:absolute;top:23rpx;left:28rpx;}
+.index .wrapper .title{border-top:1rpx solid #eee;padding-top:34rpx;margin:0 30rpx;}
+.index .wrapper .title .text{font-size:24rpx;color:#999;width:530rpx;}
+.index .wrapper .title .text .name{color:#282828;font-size:30rpx;font-weight:bold;margin-bottom:5rpx;position:relative;}
+.index .wrapper .title .text .name .new{position:absolute;top:2rpx;left:130rpx;font-size:16rpx;font-weight:bold;}
+.index .wrapper .title .more{font-size:26rpx;color:#333;}
+.index .wrapper .title .more .iconfont{margin-left:9rpx;font-size:26rpx;vertical-align:3rpx;}
+.index .wrapper .scroll-product{white-space:nowrap;margin-top:38rpx;padding:0 30rpx 37rpx 30rpx;}
+.index .wrapper .scroll-product .item{width:180rpx;display:inline-block;margin-right:19rpx;border-bottom:4rpx solid #47b479;
+box-shadow: 0 40rpx 30rpx -10rpx #eee;}
+.index .wrapper .scroll-product .item:nth-of-type(3n){border-bottom:4rpx solid #ff6960;}
+.index .wrapper .scroll-product .item:nth-of-type(3n-1){border-bottom:4rpx solid #579afe;}
+.index .wrapper .scroll-product .item:nth-last-child(1){margin-right:0;}
+.index .wrapper .scroll-product .item .img-box{width:100%;height:180rpx;}
+.index .wrapper .scroll-product .item .img-box image{width:100%;height:100%;border-radius:6rpx 6rpx 0 0;}
+.index .wrapper .scroll-product .item .pro-info{font-size:24rpx;color:#282828;text-align:center;height:60rpx;line-height:60rpx;border:1rpx solid #f5f5f5;border-bottom:0;border-top:0;padding:0 10rpx;}
+.index .wrapper .boutique{width:690rpx;height:300rpx;margin:28rpx auto 0 auto;}
+.index .wrapper .boutique swiper{width:100%;height:100%;position:relative;}
+.index .wrapper .boutique image{width:100%;height:260rpx;}
+.index .wrapper .boutique .wx-swiper-dot{width:7rpx;height:7rpx;border-radius:50%;}
+.index .wrapper .boutique .wx-swiper-dot-active{width:20rpx;border-radius:5rpx;}
+.index .wrapper .boutique .wx-swiper-dots.wx-swiper-dots-horizontal{margin-bottom:-8rpx;}
+.index .hotList .hot-bg{width:100%;height:215rpx;background-image:url('data:image/png;base64,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');background-repeat:no-repeat;background-size:100% 100%;padding:0 30rpx;box-sizing:border-box;font-size:24rpx;color:#fff;margin-top:15rpx;}
+.index .hotList .hot-bg .title{height:87rpx;}
+.index .hotList .hot-bg .title .text{width:575rpx;}
+.index .hotList .hot-bg .title .text .label{font-size:30rpx;font-weight:bold;margin-right:20rpx;}
+.index .hotList .hot-bg .title .more{font-size:26rpx;}
+.index .hotList .hot-bg .title .more .iconfont{font-size:25rpx;vertical-align:2rpx;
+margin-left:10rpx;}
+.index .hotList .list{width:690rpx;height:330rpx;border-radius:20rpx;background-color:#fff;margin:-128rpx auto 0 auto;padding:0 22rpx;box-sizing:border-box;box-shadow: 0 0 30rpx -10rpx #aaa;}
+.index .hotList .list .item{width:200rpx;}
+.index .hotList .list .item .pictrue{width:100%;height:200rpx;position:relative;}
+.index .hotList .list .item .pictrue image{width:100%;height:100%;border-radius:10rpx;}
+.index .hotList .list .item .pictrue .numPic{width:50rpx;height:50rpx;border-radius:50%;position:absolute;top:7rpx;left:7rpx;}
+.index .hotList .list .item .name{font-size:26rpx;color:#282828;margin-top:12rpx;}
+.index .hotList .list .item .money{font-size:20rpx;font-weight:bold;margin-top:4rpx;}
+.index .hotList .list .item .money .num{font-size:28rpx;}
+.index .adver{width:100%;height:180rpx;margin-top:37rpx;}
+.index .adver image{width:100%;height:100%;}
+.index .wrapper .newProducts{white-space:nowrap;padding:0 30rpx;margin:35rpx 0 42rpx 0;}
+.index .wrapper .newProducts .item{display:inline-block;width:240rpx;margin-right:20rpx;border:1rpx solid #eee;border-radius:12rpx;}
+.index .wrapper .newProducts .item:nth-last-child(1){margin-right:0;}
+.index .wrapper .newProducts .item .img-box{width:100%;height:240rpx;}
+.index .wrapper .newProducts .item .img-box image{width:100%;height:100%;border-radius:12rpx 12rpx 0 0;}
+.index .wrapper .newProducts .item .pro-info{font-size:28rpx;color:#333;text-align:center;padding:19rpx 10rpx 0 10rpx;}
+.index .wrapper .newProducts .item .money{padding:0 10rpx 18rpx 10rpx;text-align:center;font-size:26rpx;font-weight:bold;}
+
+
+
diff --git a/view/crmebNewUI/pages/logs/logs.js b/view/crmebNewUI/pages/logs/logs.js
new file mode 100644
index 00000000..b2b967d8
--- /dev/null
+++ b/view/crmebNewUI/pages/logs/logs.js
@@ -0,0 +1,15 @@
+//logs.js
+const util = require('../../utils/util.js')
+
+Page({
+ data: {
+ logs: []
+ },
+ onLoad: function () {
+ this.setData({
+ logs: (wx.getStorageSync('logs') || []).map(log => {
+ return util.formatTime(new Date(log))
+ })
+ })
+ }
+})
diff --git a/view/crmebNewUI/pages/logs/logs.json b/view/crmebNewUI/pages/logs/logs.json
new file mode 100644
index 00000000..3ee76c18
--- /dev/null
+++ b/view/crmebNewUI/pages/logs/logs.json
@@ -0,0 +1,4 @@
+{
+ "navigationBarTitleText": "查看启动日志",
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/logs/logs.wxml b/view/crmebNewUI/pages/logs/logs.wxml
new file mode 100644
index 00000000..b5a85ac6
--- /dev/null
+++ b/view/crmebNewUI/pages/logs/logs.wxml
@@ -0,0 +1,6 @@
+
+
+
+ {{index + 1}}. {{log}}
+
+
diff --git a/view/crmebNewUI/pages/logs/logs.wxss b/view/crmebNewUI/pages/logs/logs.wxss
new file mode 100644
index 00000000..94d4b88a
--- /dev/null
+++ b/view/crmebNewUI/pages/logs/logs.wxss
@@ -0,0 +1,8 @@
+.log-list {
+ display: flex;
+ flex-direction: column;
+ padding: 40rpx;
+}
+.log-item {
+ margin: 10rpx;
+}
diff --git a/view/crmebNewUI/pages/news_details/index.js b/view/crmebNewUI/pages/news_details/index.js
new file mode 100644
index 00000000..7119c17e
--- /dev/null
+++ b/view/crmebNewUI/pages/news_details/index.js
@@ -0,0 +1,86 @@
+// pages/newsDetail/index.js
+var app = getApp();
+var wxParse = require('../../wxParse/wxParse.js');
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '新闻详情',
+ 'color': false
+ },
+ id:0,
+ articleInfo:[],
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if (options.hasOwnProperty('id')){
+ this.setData({ id: options.id});
+ }else{
+ wx.navigateBack({delta: 1 });
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ this.getArticleOne();
+ },
+ getArticleOne:function(){
+ var that = this;
+ app.baseGet(app.U({ c: 'article_api', a: 'visit', q:{id : that.data.id} }), function (res) {
+ that.setData({ 'parameter.title': res.data.title, articleInfo: res.data });
+ //html转wxml
+ wxParse.wxParse('content', 'html', res.data.content, that, 0);
+ }, function (res) { console.log(res); }, true);
+ },
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/news_details/index.json b/view/crmebNewUI/pages/news_details/index.json
new file mode 100644
index 00000000..6ad84505
--- /dev/null
+++ b/view/crmebNewUI/pages/news_details/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "home": "/components/home/index"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/news_details/index.wxml b/view/crmebNewUI/pages/news_details/index.wxml
new file mode 100644
index 00000000..9624e720
--- /dev/null
+++ b/view/crmebNewUI/pages/news_details/index.wxml
@@ -0,0 +1,14 @@
+
+
+ {{articleInfo.title}}
+
+ {{articleInfo.cart_name}}
+ {{articleInfo.add_time}}
+ {{articleInfo.visit}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/news_details/index.wxss b/view/crmebNewUI/pages/news_details/index.wxss
new file mode 100644
index 00000000..8ee2c14a
--- /dev/null
+++ b/view/crmebNewUI/pages/news_details/index.wxss
@@ -0,0 +1,9 @@
+page{background-color:#fff!important;}
+.newsDetail .title{padding:0 30rpx;font-size:34rpx;color:#282828;font-weight:bold;margin:45rpx 0 23rpx 0;line-height:1.5;}
+.newsDetail .list{margin:0 30rpx;border-bottom:1rpx solid #eee;padding-bottom:25rpx;}
+.newsDetail .list .label{font-size:24rpx;height:38rpx;border-radius:3rpx;text-align:center;line-height:38rpx;padding: 0 10rpx;}
+.newsDetail .list .item{margin-left:27rpx;font-size:24rpx;color:#999;}
+.newsDetail .list .item .iconfont{font-size:28rpx;margin-right:10rpx;}
+.newsDetail .list .item .iconfont.icon-shenhezhong{font-size:26rpx;}
+.newsDetail .conter{padding:0 15rpx;font-size:30rpx;color:#333;line-height:1.7;padding-top:35rpx;}
+@import "/wxParse/wxParse.wxss";
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/news_list/index.js b/view/crmebNewUI/pages/news_list/index.js
new file mode 100644
index 00000000..002a38e4
--- /dev/null
+++ b/view/crmebNewUI/pages/news_list/index.js
@@ -0,0 +1,128 @@
+// pages/newsList/index.js
+var app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '资讯',
+ 'color': false
+ },
+ imgUrls: [],
+ articleList:[],
+ indicatorDots: false,
+ circular: true,
+ autoplay: true,
+ interval: 3000,
+ duration: 500,
+ navList:[],
+ active: 0,
+ first:0,
+ limit:8,
+ status:false,
+ scrollLeft: 0
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+ getArticleHot: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'article_api', a: 'get_article_hot' }), function(res){
+ that.setData({ articleList: res.data });
+ }, function(res){ console.log(res); }, true);
+ },
+ getArticleBanner: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'article_api', a: 'get_article_banner' }), function (res) {
+ that.setData({ imgUrls: res.data });
+ }, function (res) { console.log(res); }, true);
+ },
+ getCidArticle: function () {
+ var that = this;
+ var limit = that.data.limit;
+ var first = that.data.first;
+ var articleList = that.data.articleList;
+ app.baseGet(app.U({ c: 'article_api', a: 'get_cid_article', q: { cid: that.data.active, first: first, limit: limit} }), function (res) {
+ var articleListNew = [];
+ var len = res.data.length;
+ articleListNew = articleList.concat(res.data);
+ that.setData({ articleList: articleListNew, status: limit > len, first: first + limit});
+ }, function (res) { console.log(res); }, true);
+ },
+ getArticleCate:function(){
+ var that = this;
+ app.baseGet(app.U({ c: 'article_api', a: 'get_article_cate' }), function (res) {
+ that.setData({ navList: res.data });
+ }, function (res) { console.log(res); }, true);
+ },
+ tabSelect(e) {
+ this.setData({
+ active: e.currentTarget.dataset.id,
+ scrollLeft: (e.currentTarget.dataset.id - 1) * 50
+ })
+ if (this.data.active == 0) this.getArticleHot();
+ else{
+ this.setData({ articleList: [], first:0});
+ this.getCidArticle();
+ }
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ this.getArticleHot();
+ this.getArticleBanner();
+ this.getArticleCate();
+ this.getCidArticle();
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/news_list/index.json b/view/crmebNewUI/pages/news_list/index.json
new file mode 100644
index 00000000..6ad84505
--- /dev/null
+++ b/view/crmebNewUI/pages/news_list/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "home": "/components/home/index"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/news_list/index.wxml b/view/crmebNewUI/pages/news_list/index.wxml
new file mode 100644
index 00000000..95faaaea
--- /dev/null
+++ b/view/crmebNewUI/pages/news_list/index.wxml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+ {{item.add_time}}
+
+
+
+
+ {{item.title}}
+
+
+
+
+
+ {{item.add_time}}
+
+
+ {{item.title}}
+
+
+
+
+
+ {{item.add_time}}
+
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/news_list/index.wxss b/view/crmebNewUI/pages/news_list/index.wxss
new file mode 100644
index 00000000..d798e139
--- /dev/null
+++ b/view/crmebNewUI/pages/news_list/index.wxss
@@ -0,0 +1,21 @@
+page{background-color:#fff!important;}
+.newsList .swiper{width:100%;position:relative;box-sizing:border-box;padding:0 30rpx;}
+.newsList .swiper swiper{width:100%;height:365rpx;position:relative;}
+.newsList .swiper .slide-image{width:100%;height:330rpx;border-radius:6rpx;}
+.newsList .swiper .wx-swiper-dot{width:12rpx;height:12rpx;border-radius:0;transform: rotate(-45deg);transform-origin: 0 100%;}
+.newsList .swiper .wx-swiper-dot~.wx-swiper-dot{margin-left:5rpx;}
+.newsList .swiper .wx-swiper-dots.wx-swiper-dots-horizontal{margin-bottom:-20rpx;}
+.newsList .nav{padding:0 30rpx;width:100%;white-space:nowrap;box-sizing:border-box;margin-top:43rpx;}
+.newsList .nav .item{display:inline-block;font-size:32rpx;color:#999;}
+.newsList .nav .item.on{color:#282828;}
+.newsList .nav .item~.item{margin-left:46rpx;}
+.newsList .nav .item .line{width:24rpx;height:4rpx;border-radius:2rpx;margin:10rpx auto 0 auto;}
+.newsList .list .item{margin:0 30rpx;border-bottom:1rpx solid #f0f0f0;padding:35rpx 0;}
+.newsList .list .item .pictrue{width:250rpx;height:156rpx;}
+.newsList .list .item .pictrue image{width:100%;height:100%;border-radius:6rpx;}
+.newsList .list .item .text{width:420rpx;height:156rpx;font-size:24rpx;color:#999;}
+.newsList .list .item .text .name{font-size:30rpx;color:#282828;}
+.newsList .list .item .picList .pictrue{width:335rpx;height:210rpx;margin-top:30rpx;}
+.newsList .list .item .picList.on .pictrue{width:217rpx;height:136rpx;}
+.newsList .list .item .picList .pictrue image{width:100%;height:100%;border-radius:6rpx;}
+.newsList .list .item .time{text-align:right;font-size:24rpx;color:#999;margin-top:22rpx;}
diff --git a/view/crmebNewUI/pages/order_addcart/order_addcart.js b/view/crmebNewUI/pages/order_addcart/order_addcart.js
new file mode 100644
index 00000000..42eceb19
--- /dev/null
+++ b/view/crmebNewUI/pages/order_addcart/order_addcart.js
@@ -0,0 +1,315 @@
+const app = getApp();
+const util = require('../../utils/util.js');
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '0',
+ 'title': '购物车',
+ 'color': false
+ },
+ navH: 0,
+ cartCount:0,
+ goodsHidden:true,
+ footerswitch: true,
+ host_product: [],
+ cartList:[],
+ isAllSelect:false,//全选
+ selectValue:[],//选中的数据
+ selectCountPrice:0.00,
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ var that = this;
+ that.setData({
+ navH: app.globalData.navHeight
+ })
+ },
+ subDel:function (event) {
+ var formId = event.detail.formId, that = this, selectValue = that.data.selectValue;
+ app.baseGet(app.U({ c: 'public_api', a: 'get_form_id', q: { formId: formId } }), null, null, true);
+ if (selectValue.length > 0)
+ app.baseGet(app.U({ c: 'auth_api', a: 'remove_cart', q: { ids: selectValue.join(',') } }),function(res){
+ that.getCartList();
+ that.getCartNum();
+ });
+ else
+ return app.Tips({ title:'请选择产品'});
+ },
+ getSelectValueProductId:function(){
+ var that = this;
+ var validList = that.data.cartList.valid;
+ var selectValue = that.data.selectValue;
+ var productId = [];
+ if (selectValue.length > 0){ for (var index in validList){if(that.inArray(validList[index].id, selectValue)) { productId.push(validList[index].product_id);}}};
+ return productId;
+ },
+ subCollect: function (event){
+ var formId = event.detail.formId, that = this, selectValue = that.data.selectValue;
+ app.baseGet(app.U({ c: 'public_api', a: 'get_form_id', q: { formId: formId } }), null, null, true);
+ if (selectValue.length > 0) {
+ var selectValueProductId = that.getSelectValueProductId();
+ app.baseGet(app.U({ c: 'store_api', a: 'collect_product_all', q: { productId: selectValueProductId.join(',') } }), function(res){
+ wx.showToast({
+ title: res.msg,
+ icon: 'success',
+ duration: 1000,
+ mask: true,
+ })
+ }, function(res){
+ wx.showToast({
+ title: res.msg,
+ icon: 'none',
+ duration: 1000,
+ mask: true,
+ })
+ }, true);
+ } else {
+ wx.showToast({
+ title: '请选择产品',
+ icon: 'none',
+ duration: 1000,
+ mask: true,
+ });
+ return false;
+ }
+ },
+ subOrder: function (event){
+ var formId = event.detail.formId, that = this, selectValue = that.data.selectValue;
+ app.baseGet(app.U({c:'public_api',a:'get_form_id',q:{formId:formId}}),null,null,true);
+ if (selectValue.length > 0){
+ wx.navigateTo({url:'/pages/order_confirm/index?cartId=' + selectValue.join(',')});
+ }else{
+ wx.showToast({
+ title: '请选择产品',
+ icon: 'none',
+ duration: 1000,
+ mask: true,
+ });
+ return false;
+ }
+ },
+ checkboxAllChange: function (event){
+ var value = event.detail.value;
+ if (value.length > 0) { this.setAllSelectValue(1)}
+ else { this.setAllSelectValue(0) }
+ },
+ setAllSelectValue:function(status){
+ var that = this;
+ var selectValue = [];
+ var valid = that.data.cartList.valid;
+ if (valid.length > 0) {
+ for (var index in valid) {
+ if (status == 1){
+ valid[index].checked = true;
+ selectValue.push(valid[index].id);
+ }else valid[index].checked = false;
+ }
+ var validData = "cartList.valid";
+ that.setData({
+ [validData]: valid,
+ selectValue: selectValue,
+ });
+ that.switchSelect();
+ }
+ },
+ checkboxChange: function (event){
+ var that = this;
+ var value = event.detail.value;
+ var valid = this.data.cartList.valid;
+ for (var index in valid){
+ if (that.inArray(valid[index].id, value)) valid[index].checked = true;
+ else valid[index].checked = false;
+ }
+ var validData = "cartList.valid";
+ this.setData({
+ [validData]: valid,
+ isAllSelect: value.length == this.data.cartList.valid.length,
+ selectValue: value,
+ })
+ this.switchSelect();
+ },
+ inArray:function(search, array){
+ for (var i in array) { if (array[i] == search) { return true; } }
+ return false;
+ },
+ switchSelect:function(){
+ var that = this;
+ var validList = that.data.cartList.valid;
+ var selectValue = that.data.selectValue;
+ var selectCountPrice = 0.00;
+ if (selectValue.length < 1) { that.setData({ selectCountPrice: selectCountPrice }); }
+ else{
+ for (var index in validList){
+ if (that.inArray(validList[index].id, selectValue)){
+ selectCountPrice = Number(selectCountPrice) + Number(validList[index].cart_num) * Number(validList[index].truePrice)
+ }
+ }
+ that.setData({ selectCountPrice: selectCountPrice.toFixed(2) });
+ }
+ },
+ subCart:function(event){
+ var that = this;
+ var status = false;
+ var index = event.currentTarget.dataset.index;
+ var item = that.data.cartList.valid[index];
+ console.log(item);
+ item.cart_num = item.cart_num - 1;
+ if (item.cart_num < 1) status = true;
+ if (item.cart_num <= 1) {
+ item.cart_num = 1;
+ item.numSub = true;
+ } else { item.numSub = false;item.numAdd = false; }
+ if (false == status) {
+ that.setCartNum(item.id, item.cart_num, function (data) {
+ var itemData = "cartList.valid[" + index + "]";
+ that.setData({ [itemData]: item });
+ that.switchSelect();
+ });
+ }
+ },
+ addCart: function (event) {
+ var that = this;
+ var index = event.currentTarget.dataset.index;
+ var item = that.data.cartList.valid[index];
+ item.cart_num = item.cart_num + 1;
+ var productInfo = item.productInfo;
+ if (productInfo.hasOwnProperty('attrInfo') && item.cart_num >= item.productInfo.attrInfo.stock) {
+ item.cart_num = item.productInfo.attrInfo.stock;
+ item.numAdd = true;
+ item.numSub = false;
+ } else if (item.cart_num >= item.productInfo.stock) {
+ item.cart_num = item.productInfo.stock;
+ item.numAdd = true;
+ item.numSub = false;
+ } else { item.numAdd = false; item.numSub = false; }
+ that.setCartNum(item.id, item.cart_num, function (data) {
+ var itemData = "cartList.valid[" + index + "]";
+ that.setData({ [itemData]: item });
+ that.switchSelect();
+ });
+ },
+ setCartNum(cartId, cartNum, successCallback) {
+ var that = this;
+ app.baseGet(app.U({ c: 'auth_api', a: "change_cart_num", q: { cartId: cartId, cartNum: cartNum} }), function (res) {
+ successCallback && successCallback(res.data);
+ });
+ },
+ getCartNum: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'auth_api', a: "get_cart_num" }), function (res) {
+ that.setData({ cartCount: res.data });
+ });
+ },
+ getCartList: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'auth_api', a: "get_cart_list"}), function (res) {
+ var cartList = res.data;
+ var valid = cartList.valid;
+ var numSub = [{ numSub: true }, { numSub: false} ];
+ var numAdd = [{ numAdd: true }, { numAdd: false} ];
+ if (valid.length > 0){
+ for (var index in valid){
+ if (valid[index].cart_num == 1) { valid[index].numSub = true;}
+ else { valid[index].numSub = false; }
+ var productInfo = valid[index].productInfo;
+ if (productInfo.hasOwnProperty('attrInfo') && valid[index].cart_num == valid[index].productInfo.attrInfo.stock) {
+ valid[index].numAdd = true;;
+ } else if (valid[index].cart_num == valid[index].productInfo.stock) {
+ valid[index].numAdd = true;;
+ } else { valid[index].numAdd = false; }
+ valid[index].checked = false;
+ }
+ }
+ that.setData({ cartList: cartList, goodsHidden: cartList.valid.length <= 0 ? false : true});
+ that.switchSelect();
+ });
+ },
+ getHostProduct: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'public_api', a: "get_hot_product", q: { offset: 1, limit: 4 } }), function (res) {
+ that.setData({ host_product: res.data });
+ });
+ },
+ goodsOpen:function(){
+ var that = this;
+ that.setData({
+ goodsHidden: !that.data.goodsHidden
+ })
+ },
+ manage:function(){
+ var that = this;
+ that.setData({
+ footerswitch: !that.data.footerswitch
+ })
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+ onLoadFun: function () {
+ this.getHostProduct();
+ this.getCartList();
+ this.getCartNum();
+ },
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ if (app.globalData.isLog == true) {
+ this.getHostProduct();
+ this.getCartList();
+ this.getCartNum();
+ this.setData({
+ goodsHidden: true,
+ footerswitch: true,
+ host_product: [],
+ cartList: [],
+ isAllSelect: false,//全选
+ selectValue: [],//选中的数据
+ selectCountPrice: 0.00,
+ cartCount: 0,
+ });
+ }
+ },
+ unsetCart:function(){
+ var that=this,ids=[];
+ for (var i = 0, len = that.data.cartList.invalid.length;i < len;i++){
+ ids.push(that.data.cartList.invalid[i].id);
+ }
+ app.baseGet(app.U({ c: 'auth_api', a:'remove_cart',q:{ids:ids}}),function(res){
+ app.Tips({title:'清除成功'});
+ that.setData({'cartList.invalid':[]});
+ });
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/order_addcart/order_addcart.json b/view/crmebNewUI/pages/order_addcart/order_addcart.json
new file mode 100644
index 00000000..3d8369c7
--- /dev/null
+++ b/view/crmebNewUI/pages/order_addcart/order_addcart.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "recommend": "/components/recommend/index",
+ "authorize": "/components/authorize/authorize"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/order_addcart/order_addcart.wxml b/view/crmebNewUI/pages/order_addcart/order_addcart.wxml
new file mode 100644
index 00000000..6bf9c6ea
--- /dev/null
+++ b/view/crmebNewUI/pages/order_addcart/order_addcart.wxml
@@ -0,0 +1,91 @@
+
+
+
+ 100%正品保证
+ 所有商品精挑细选
+ 售后无忧
+
+
+ 购物数量 {{cartCount}}
+ 管理
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.productInfo.store_name}}
+ 属性:{{item.productInfo.attrInfo.suk}}
+ ¥{{item.truePrice}}
+
+
+ -
+ {{item.cart_num}}
+ +
+
+
+
+
+
+
+
+
+ 失效商品
+ 清空
+
+
+
+
+ 失效
+
+
+
+
+
+ {{item.productInfo.store_name}}
+ 属性:{{item.productInfo.attrInfo.suk}}
+
+ ¥{{item.truePrice}}
+ 该商品已失效
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/order_addcart/order_addcart.wxss b/view/crmebNewUI/pages/order_addcart/order_addcart.wxss
new file mode 100644
index 00000000..9599c0ce
--- /dev/null
+++ b/view/crmebNewUI/pages/order_addcart/order_addcart.wxss
@@ -0,0 +1,44 @@
+.shoppingCart .labelNav{height:76rpx;padding:0 30rpx;font-size:22rpx;color:#8c8c8c;position:fixed;left:0;width:100%;box-sizing:border-box;background-color:#f5f5f5;z-index:5;}
+.shoppingCart .labelNav .item .iconfont{font-size:25rpx;margin-right:10rpx;}
+.shoppingCart .nav{width:100%;height:80rpx;background-color:#fff;padding:0 30rpx;box-sizing:border-box;font-size:28rpx;color:#282828;position:fixed;left:0;z-index:5;}
+.shoppingCart .nav .administrate{font-size:26rpx;color:#282828;width:110rpx;height:46rpx;border-radius:6rpx;border:1px solid #868686;}
+.shoppingCart .noCart{margin-top:171rpx;background-color:#fff;padding-top: 0.1rpx;}
+.shoppingCart .noCart .pictrue{width:414rpx;height:336rpx;margin:78rpx auto 56rpx auto;}
+.shoppingCart .noCart .pictrue image{width:100%;height:100%;}
+.shoppingCart .list{margin-top:171rpx;}
+.shoppingCart .list .item{padding:25rpx 30rpx;background-color:#fff;margin-bottom:15rpx;}
+.shoppingCart .list .item .picTxt{width:627rpx;position:relative;}
+.shoppingCart .list .item .picTxt .pictrue{width:160rpx;height:160rpx;}
+.shoppingCart .list .item .picTxt .pictrue image{width:100%;height:100%;border-radius:6rpx;}
+.shoppingCart .list .item .picTxt .text{width:444rpx;font-size:28rpx;color:#282828;}
+.shoppingCart .list .item .picTxt .text .infor{font-size:24rpx;color:#868686;margin-top:16rpx;}
+.shoppingCart .list .item .picTxt .text .money{font-size:32rpx;color:#282828;margin-top:28rpx;}
+.shoppingCart .list .item .picTxt .carnum{height:47rpx;position:absolute;bottom:7rpx;right:0;}
+.shoppingCart .list .item .picTxt .carnum view{border:1rpx solid #a4a4a4;width:66rpx;text-align:center;height:100%;line-height:40rpx;font-size:28rpx;color:#a4a4a4;}
+.shoppingCart .list .item .picTxt .carnum .reduce{border-right:0;border-radius:3rpx 0 0 3rpx;}
+.shoppingCart .list .item .picTxt .carnum .reduce.on{border-color:#e3e3e3;color:#dedede;}
+.shoppingCart .list .item .picTxt .carnum .plus{border-left:0;border-radius:0 3rpx 3rpx 0;}
+.shoppingCart .list .item .picTxt .carnum .num{color:#282828;}
+.shoppingCart .invalidGoods{background-color:#fff;}
+.shoppingCart .invalidGoods .goodsNav{width:100%;height:66rpx;padding:0 30rpx;box-sizing:border-box;font-size:28rpx;color:#282828;}
+.shoppingCart .invalidGoods .goodsNav .iconfont{color:#424242;font-size:28rpx;margin-right:17rpx;}
+.shoppingCart .invalidGoods .goodsNav .del{font-size:26rpx;color:#999;}
+.shoppingCart .invalidGoods .goodsNav .del .icon-shanchu1{color:#999;font-size:33rpx;vertical-align:-2rpx;margin-right:8rpx;}
+.shoppingCart .invalidGoods .goodsList .item{padding:20rpx 30rpx;border-top:1rpx solid #f5f5f5;}
+.shoppingCart .invalidGoods .goodsList .item .invalid{font-size:22rpx;color:#fff;width:70rpx;height:36rpx;background-color:#aaa;border-radius:3rpx;text-align:center;line-height:36rpx;}
+.shoppingCart .invalidGoods .goodsList .item .pictrue{width:140rpx;height:140rpx;}
+.shoppingCart .invalidGoods .goodsList .item .pictrue image{width:100%;height:100%;border-radius:6rpx;}
+.shoppingCart .invalidGoods .goodsList .item .text{width:433rpx;font-size:28rpx;color:#999;height:140rpx;}
+.shoppingCart .invalidGoods .goodsList .item .text .infor{font-size:24rpx;}
+.shoppingCart .invalidGoods .goodsList .item .text .end{font-size:26rpx;color:#bbb;}
+.shoppingCart .footer{width:100%;height:96rpx;background-color:#fafafa;position:fixed;bottom:0;padding:0 30rpx;box-sizing:border-box;border-top:1rpx solid #eee;}
+.shoppingCart .footer .checkAll{font-size:28rpx;color:#282828;margin-left:16rpx;}
+.shoppingCart .footer checkbox .wx-checkbox-input{background-color:#fafafa;}
+.shoppingCart .footer .money{font-size:30rpx;}
+.shoppingCart .footer .placeOrder{color:#fff;font-size:30rpx;width:226rpx;height:70rpx;border-radius:50rpx;text-align:center;line-height:70rpx;margin-left:22rpx;}
+.shoppingCart .footer .button .bnt{font-size:28rpx;color:#999;border-radius:50rpx;border:1px solid #999;width:160rpx;height:60rpx;text-align:center;line-height:60rpx;}
+.shoppingCart .footer .button form~form{margin-left:17rpx;}
+
+
+
+
diff --git a/view/crmebNewUI/pages/order_confirm/index.js b/view/crmebNewUI/pages/order_confirm/index.js
new file mode 100644
index 00000000..a2d8d722
--- /dev/null
+++ b/view/crmebNewUI/pages/order_confirm/index.js
@@ -0,0 +1,394 @@
+var app = getApp();
+const util = require('../../utils/util.js');
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ textareaStatus:true,
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '提交订单'
+ },
+ //支付方式
+ cartArr: [
+ { "name": "余额支付", "icon": "icon-icon-test", value: 'yue',title:'可用余额:'},
+ { "name": "微信支付", "icon": "icon-weixin2", value: 'weixin', title:'微信快捷支付'},
+ ],
+ payType:'yue',//支付方式
+ openType:1,//优惠券打开方式 1=使用
+ active:0,//支付方式切换
+ coupon: { coupon: false, list: [], statusTile:'立即使用'},//优惠券组件
+ address: {address: false},//地址组件
+ addressInfo:{},//地址信息
+ pinkId:0,//拼团id
+ addressId:0,//地址id
+ couponId:0,//优惠券id
+ cartId:'',//购物车id
+ userInfo:{},//用户信息
+ mark:'',//备注信息
+ couponTitle:'请选择',//优惠券
+ coupon_price:0,//优惠券抵扣金额
+ useIntegral:false,//是否使用积分
+ integral_price:0,//积分抵扣金额
+ ChangePrice:0,//使用积分抵扣变动后的金额
+ formIds:[],//收集formid
+ status:0,
+ is_address:false,
+ isClose:false,
+ toPay:false,//修复进入支付时页面隐藏从新刷新页面
+ },
+ /**
+ * 授权回调事件
+ *
+ */
+ onLoadFun:function(){
+ this.getaddressInfo();
+ this.getConfirm();
+ //调用子页面方法授权后执行获取地址列表
+ this.selectComponent('#address-window').getAddressList();
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ this.setData({ textareaStatus: true });
+ if (app.globalData.isLog && this.data.isClose && this.data.toPay==false) {
+ this.getaddressInfo();
+ this.selectComponent('#address-window').getAddressList();
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+ this.setData({ isClose: true });
+ },
+ ChangCouponsClone:function(){
+ this.setData({'coupon.coupon':false});
+ },
+ changeTextareaStatus:function(){
+ for (var i = 0, len = this.data.coupon.list.length; i < len;i++){
+ this.data.coupon.list[i].use_title='';
+ this.data.coupon.list[i].is_use = 0;
+ }
+ this.setData({ textareaStatus: true, status: 0, "coupon.list": this.data.coupon.list});
+ },
+ /**
+ * 处理点击优惠券后的事件
+ *
+ */
+ ChangCoupons:function(e){
+ var index = e.detail, list = this.data.coupon.list, couponTitle = '请选择', couponId = 0, coupon_price = 0, totalPrice = 0,
+ change_coupon_price=0;
+ for (var i = 0, len = list.length; i < len; i++) {
+ if(i != index){
+ list[i].use_title = '';
+ list[i].is_use = 0;
+ }
+ //获取当前优惠券抵扣金额
+ if (list[i].id == this.data.couponId) change_coupon_price = list[i].coupon_price;
+ }
+ if (this.data.totalPrice <= 0 && this.data.status != 1) return app.Tips({title:'支付金额为0无法使用优惠卷!'});
+ if (this.data.status==1 || this.data.is_address) {
+ this.setData({ totalPrice: this.data.priceGroup.totalPrice });
+ }else{
+ //使用优惠券抵扣前先把之前的抵扣金额加回去
+ this.setData({ totalPrice: util.$h.Add(this.data.totalPrice, change_coupon_price) });
+ }
+ if (list[index].is_use) {
+ //不使用优惠券
+ list[index].use_title = '';
+ list[index].is_use = 0;
+ totalPrice = this.data.totalPrice;
+ //用户取消使用优惠卷但是使用了积分抵扣
+ if (totalPrice > 0 && this.data.useIntegral) totalPrice = this.changeCouponPrice(totalPrice, this.data.userInfo.integral);
+ this.data.status = 0;
+ } else {
+ //使用优惠券
+ list[index].use_title = '不使用';
+ list[index].is_use = 1;
+ couponTitle = list[index].coupon_title;
+ couponId = list[index].id;
+ coupon_price = list[index].coupon_price;
+ //使用积分抵扣,使用优惠券金额大于当前支付金额
+ if (this.data.totalPrice < coupon_price && this.data.useIntegral){
+ //超出金额
+ var changePrice = util.$h.Sub(coupon_price, this.data.totalPrice);
+ //超出回退积分
+ var changeIntegral = util.$h.Div(changePrice, this.data.integralRatio);
+ //回退积分和积分抵扣金额
+ this.setData({
+ integral: util.$h.Add(this.data.integral, changeIntegral),
+ integral_price: util.$h.Sub(this.data.integral_price, changePrice)
+ });
+ totalPrice=0;
+ this.data.status=0;
+ } else if (this.data.totalPrice < coupon_price && !this.data.useIntegral){
+ //使用优惠券金额大于当前支付金额
+ totalPrice=0;
+ this.data.status=1;
+ } else if (this.data.totalPrice > coupon_price && this.data.useIntegral){
+ //支付金额大于优惠券金额并且使用了积分
+ totalPrice = util.$h.Sub(this.data.totalPrice, list[index].coupon_price);
+ //当前优惠券大于0的时候再去减去可兑换的金额
+ if (this.data.integral > 0) totalPrice = this.changeCouponPrice(totalPrice, this.data.integral);
+ this.data.status = 0;
+ } else if (this.data.totalPrice > coupon_price && !this.data.useIntegral){
+ //支付金额大于优惠券金额没有使用积分
+ totalPrice = util.$h.Sub(this.data.totalPrice, list[index].coupon_price);
+ this.data.status = 0;
+ }
+ }
+ this.setData({
+ couponTitle: couponTitle,
+ couponId: couponId,
+ 'coupon.coupon': false,
+ "coupon.list":list,
+ coupon_price: coupon_price,
+ totalPrice: totalPrice,
+ status: this.data.status,
+ });
+ },
+ /**
+ * 处理点击优惠券后支付金额和积分变动
+ * @param string | float totalPrice 当前支付金额
+ * @return float totalPrice 当前支付金额
+ *
+ */
+ changeCouponPrice: function (totalPrice, integral){
+ var changePrice = util.$h.Mul(this.data.integralRatio,integral);
+ this.data.integral_price=0;
+ if (changePrice > totalPrice) {
+ //超出金额
+ var minParice = util.$h.Sub(changePrice, totalPrice);
+ //超出积分
+ var changeIntegral = util.$h.Div(minParice, this.data.integralRatio);
+ //抵扣金额需要原本的订单金额
+ this.setData({ integral: changeIntegral, integral_price: this.data.totalPrice });
+ //超出金额当前支付金额为0
+ totalPrice=0;
+ } else {
+ this.setData({ integral: 0, integral_price: util.$h.Add(this.data.integral_price, changePrice) });
+ totalPrice = util.$h.Sub(totalPrice, changePrice);
+ }
+ return totalPrice;
+ },
+ /**
+ * 使用积分抵扣
+ */
+ ChangeIntegral:function(){
+ var integral=parseFloat(this.data.integral);
+ if (this.data.userInfo.integral <= 0) return app.Tips({ title: '您当前积分为较低不能使用抵扣' }, function () {
+ this.setData({ useIntegral:false });
+ }.bind(this));
+ if (this.data.totalPrice <= 0 && !this.data.useIntegral) return app.Tips({title:'当前支付金额不能在使用积分抵扣啦~'},function(){
+ this.setData({ useIntegral: false });
+ }.bind(this));
+ this.setData({useIntegral:!this.data.useIntegral});
+ //使用积分抵扣时
+ if (this.data.useIntegral){
+ var changePrice = util.$h.Mul(this.data.integralRatio, integral);
+ if (changePrice > this.data.totalPrice){
+ //超出金额
+ var minParice = util.$h.Sub(changePrice, this.data.totalPrice);
+ //超出积分
+ var changeIntegral = util.$h.Div(minParice, this.data.integralRatio);
+ //超出当前金额支付金额为0,积分抵扣金额为当前支付金额,积分剩余等于超出积分
+ this.setData({ integral: changeIntegral, integral_price:this.data.totalPrice,totalPrice:0});
+ }else{
+ this.setData({ integral: 0, integral_price: changePrice, totalPrice: util.$h.Sub(this.data.totalPrice, changePrice)});
+ }
+ }else{
+ var integral_price = this.data.integral_price;
+ //不使用积分返回原始数据
+ console.log(util.$h.Add(this.data.totalPrice, integral_price));
+ this.setData({ integral_price: 0, integral: this.data.userInfo.integral, totalPrice: util.$h.Add(this.data.totalPrice, integral_price.toString())});
+ }
+ },
+ /**
+ * 选择地址后改变事件
+ * @param object e
+ */
+ OnChangeAddress:function(e){
+ this.setData({ textareaStatus:true,addressId: e.detail,'address.address':false});
+ this.getaddressInfo();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if (!options.cartId) return app.Tips({ title:'请选择要购买的商品'},{tab:3,url:1});
+ this.setData({
+ couponId: options.couponId || 0,
+ pinkId: options.pinkId ? parseInt(options.pinkId) : 0,
+ addressId: options.addressId || 0,
+ cartId: options.cartId,
+ is_address: options.is_address ? true : false,
+ });
+ },
+ bindHideKeyboard: function (e) {
+ this.setData({mark: e.detail.value});
+ },
+ /**
+ * 获取当前订单详细信息
+ *
+ */
+ getConfirm:function(){
+ var that=this;
+ app.basePost(app.U({ c: 'auth_api', a: 'confirm_order' }), { cartId: this.data.cartId},function(res){
+ that.setData({
+ userInfo: res.data.userInfo,
+ integral: res.data.userInfo.integral,
+ cartInfo: res.data.cartInfo,
+ integralRatio: res.data.integralRatio,
+ offlinePostage: res.data.offlinePostage,
+ orderKey: res.data.orderKey,
+ priceGroup: res.data.priceGroup,
+ totalPrice: app.help().Add(parseFloat(res.data.priceGroup.totalPrice), parseFloat(res.data.priceGroup.storePostage)),
+ cartId: res.data.cartId,
+ seckillId: parseInt(res.data.seckill_id),
+ usableCoupon: res.data.usableCoupon
+ });
+ that.data.cartArr[0].title ='可用余额:'+ res.data.userInfo.now_money;
+ that.setData({ cartArr: that.data.cartArr, ChangePrice:that.data.totalPrice});
+ that.getBargainId();
+ that.getCouponList();
+ },function(res){
+ return app.Tips({title:res.msg},{tab:3,url:1});
+ });
+ },
+ /*
+ * 提取砍价和拼团id
+ */
+ getBargainId: function () {
+ var that = this;
+ var cartINfo = that.data.cartInfo;
+ var BargainId = 0;
+ var combinationId = 0;
+ cartINfo.forEach(function (value, index, cartINfo) {
+ BargainId = cartINfo[index].bargain_id,
+ combinationId = cartINfo[index].combination_id
+ })
+ that.setData({ BargainId: parseInt(BargainId), combinationId: parseInt(combinationId)});
+ },
+ /**
+ * 获取当前金额可用优惠券
+ *
+ */
+ getCouponList:function(){
+ var that=this;
+ app.baseGet(app.U({ c: "coupons_api", a: 'get_use_coupon_order', q: { totalPrice:this.data.totalPrice }}),function(res){
+ that.setData({ 'coupon.list': res.data, openType:1});
+ });
+ },
+ /*
+ * 获取默认收货地址或者获取某条地址信息
+ */
+ getaddressInfo:function(){
+ var that=this;
+ var url = that.data.addressId ?
+ app.U({ c: 'user_api', a: 'get_user_address', q: { addressId: that.data.addressId } }) :
+ app.U({ c: 'user_api', a:'user_default_address'});
+ app.baseGet(url,function(res){
+ res.data.is_default = parseInt(res.data.is_default);
+ that.setData({ addressInfo: res.data || {}, addressId: res.data.id || 0, 'address.addressId': res.data.id || 0});
+ });
+ },
+ payItem:function(e){
+ var that = this;
+ var active = e.currentTarget.dataset.index;
+ that.setData({
+ active: active,
+ animated: true,
+ payType: that.data.cartArr[active].value,
+ })
+ setTimeout(function () {
+ that.car();
+ }, 500);
+ },
+ coupon: function () {
+ this.setData({
+ 'coupon.coupon': true
+ })
+ },
+ car: function () {
+ var that = this;
+ that.setData({
+ animated: false
+ });
+ },
+ address:function(){
+ this.setData({
+ textareaStatus:false,
+ 'address.address': true,
+ pagesUrl: '/pages/user_address_list/index?cartId=' + this.data.cartId + '&pinkId=' + this.data.pinkId + '&couponId=' + this.data.couponId
+ });
+ },
+ SubOrder:function(e){
+ var formId = e.detail.formId, that = this, data={};
+ if (!this.data.payType) return app.Tips({title:'请选择支付方式'});
+ if (!this.data.addressId) return app.Tips({ title:'请选择收货地址'});
+ data={
+ addressId: that.data.addressId,
+ formId: formId,
+ couponId: that.data.couponId,
+ payType: that.data.payType,
+ useIntegral: that.data.useIntegral,
+ bargainId: that.data.BargainId,
+ combinationId: that.data.combinationId,
+ pinkId: that.data.pinkId,
+ seckill_id: that.data.seckillId,
+ mark: that.data.mark
+ };
+ if (data.payType == 'yue' && parseFloat(that.data.userInfo.now_money) < parseFloat(that.data.totalPrice)) return app.Tips({title:'余额不足!'});
+ wx.showLoading({ title: '订单支付中'});
+ app.basePost(app.U({ c: 'auth_api', a:'create_order',q:{key:this.data.orderKey}}),data,function(res){
+ var status = res.data.status, orderId = res.data.result.orderId, jsConfig = res.data.result.jsConfig,
+ goPages = '/pages/order_pay_status/index?order_id=' + orderId+'&msg='+res.msg;
+ switch (status){
+ case 'ORDER_EXIST': case 'EXTEND_ORDER': case 'PAY_ERROR':
+ wx.hideLoading();
+ return app.Tips({ title: res.msg}, { tab: 5, url: goPages });
+ break;
+ case 'SUCCESS':
+ wx.hideLoading();
+ return app.Tips({ title: res.msg,icon: 'success' }, { tab: 5, url: goPages });
+ break;
+ case 'WECHAT_PAY':
+ that.setData({toPay:true});
+ wx.requestPayment({
+ timeStamp: jsConfig.timestamp,
+ nonceStr: jsConfig.nonceStr,
+ package: jsConfig.package,
+ signType: jsConfig.signType,
+ paySign: jsConfig.paySign,
+ success: function (res) {
+ wx.hideLoading();
+ return app.Tips({ title: '支付成功', icon:'success' }, { tab: 5, url: goPages });
+ },
+ fail:function(e){
+ wx.hideLoading();
+ return app.Tips({ title: '取消支付' }, { tab: 5, url: goPages +'&status=2'});
+ },
+ complete:function(e){
+ wx.hideLoading();
+ //关闭当前页面跳转至订单状态
+ if (res.errMsg == 'requestPayment:cancel') return app.Tips({ title: '取消支付' }, { tab: 5, url: goPages + '&status=2'});
+ },
+ })
+ break;
+ case 'PAY_DEFICIENCY':
+ wx.hideLoading();
+ //余额不足
+ return app.Tips({ title: res.msg}, { tab: 5, url: goPages+'&status=1' });
+ break;
+ }
+ });
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/order_confirm/index.json b/view/crmebNewUI/pages/order_confirm/index.json
new file mode 100644
index 00000000..d9e1da61
--- /dev/null
+++ b/view/crmebNewUI/pages/order_confirm/index.json
@@ -0,0 +1,10 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "orderGoods": "/components/orderGoods/index",
+ "coupon-list-window": "/components/coupon-list-window/index",
+ "address-window": "/components/address-window/index",
+ "authorize": "/components/authorize/authorize",
+ "home": "/components/home/index"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/order_confirm/index.wxml b/view/crmebNewUI/pages/order_confirm/index.wxml
new file mode 100644
index 00000000..55834ff0
--- /dev/null
+++ b/view/crmebNewUI/pages/order_confirm/index.wxml
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+ {{addressInfo.real_name}}
+ {{addressInfo.phone}}
+
+
+ [默认] {{addressInfo.province}}{{addressInfo.city}}{{addressInfo.district}}{{addressInfo.detail}}
+
+
+
+ 设置收货地址
+
+
+
+
+
+
+ 优惠券
+ {{couponTitle}}
+
+
+
+
+ 积分抵扣
+
+ {{useIntegral ? "剩余积分":"当前积分"}}
+ {{integral || 0}}
+
+
+
+
+
+
+
+ 会员优惠
+ ¥{{priceGroup.vipPrice}}
+
+
+ 快递费用
+ {{priceGroup.storePostage}}
+ 免运费
+
+
+ 备注信息
+
+
+
+
+
+ 支付方式
+
+
+
+ {{item.name}}
+ {{item.title}}
+
+
+
+
+
+
+ 商品总价:
+ ¥{{priceGroup.totalPrice}}
+
+
+ 会员优惠金额:
+ -¥{{priceGroup.vipPrice}}
+
+
+ 优惠券抵扣:
+ -¥{{coupon_price}}
+
+
+ 积分抵扣:
+ -¥{{integral_price}}
+
+
+ 运费:
+ ¥{{priceGroup.storePostage}}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/order_confirm/index.wxss b/view/crmebNewUI/pages/order_confirm/index.wxss
new file mode 100644
index 00000000..be194aa7
--- /dev/null
+++ b/view/crmebNewUI/pages/order_confirm/index.wxss
@@ -0,0 +1,30 @@
+.order-submission .line{width:100%;height:3rpx;}
+.order-submission .line image{width:100%;height:100%;display:block;}
+.order-submission .address{padding:28rpx 30rpx;background-color:#fff;}
+.order-submission .address .addressCon{width:610rpx;font-size:26rpx;color:#666;}
+.order-submission .address .addressCon .name{font-size:30rpx;color:#282828;font-weight:bold;margin-bottom:10rpx;}
+.order-submission .address .addressCon .name .phone{margin-left:50rpx;}
+.order-submission .address .addressCon .default{margin-right:12rpx;}
+.order-submission .address .addressCon .setaddress{color:#333;font-size:28rpx;}
+.order-submission .address .iconfont{font-size:35rpx;color:#707070;}
+.order-submission .wrapper{background-color:#fff;margin-top:13rpx;}
+.order-submission .wrapper .item{padding:27rpx 30rpx;font-size:30rpx;color:#282828;border-bottom:1px solid #f0f0f0;}
+.order-submission .wrapper .item .discount{font-size:30rpx;color:#999;}
+.order-submission .wrapper .item .discount .iconfont{color:#515151;font-size:30rpx;margin-left:15rpx;}
+.order-submission .wrapper .item .discount .num{font-size:32rpx;margin-right:20rpx;}
+.order-submission .wrapper .item textarea{background-color:#f9f9f9;width:690rpx;height:140rpx;border-radius:3rpx;margin-top:30rpx;padding:25rpx 28rpx;box-sizing:border-box;}
+.order-submission .wrapper .item .placeholder{color:#ccc;}
+.order-submission .wrapper .item .list{margin-top:35rpx;}
+.order-submission .wrapper .item .list .payItem{border:1px solid #eee;border-radius:6rpx;height:86rpx;width:100%;box-sizing:border-box;margin-top:20rpx;font-size:28rpx;color:#282828;}
+.order-submission .wrapper .item .list .payItem.on{border-color:#fc5445;color:#e93323;}
+.order-submission .wrapper .item .list .payItem .name{width:50%;text-align:center;border-right:1px solid #eee;}
+.order-submission .wrapper .item .list .payItem .name .iconfont{width:44rpx;height:44rpx;border-radius:50%;text-align:center;line-height:44rpx;background-color:#fe960f;color:#fff;font-size:30rpx;margin-right:15rpx;}
+.order-submission .wrapper .item .list .payItem .name .iconfont.icon-weixin2{background-color:#41b035;}
+.order-submission .wrapper .item .list .payItem .tip{width:49%;text-align:center;font-size:26rpx;color:#aaa;}
+.order-submission .moneyList{margin-top:12rpx;background-color:#fff;padding:30rpx;}
+.order-submission .moneyList .item{font-size:28rpx;color:#282828;}
+.order-submission .moneyList .item~.item{margin-top:20rpx;}
+.order-submission .moneyList .item .money{color:#868686;}
+.order-submission .footer{width:100%;height:100rpx;background-color:#fff;padding:0 30rpx;font-size:28rpx;color:#333;box-sizing:border-box;position:fixed;bottom:0;left:0;}
+.order-submission .footer .settlement{font-size:30rpx;color:#fff;width:240rpx;height:70rpx;background-color:#e93323;border-radius:50rpx;text-align:center;line-height:70rpx;}
+.footer .transparent{opacity: 0}
diff --git a/view/crmebNewUI/pages/order_details/index.js b/view/crmebNewUI/pages/order_details/index.js
new file mode 100644
index 00000000..51f8b138
--- /dev/null
+++ b/view/crmebNewUI/pages/order_details/index.js
@@ -0,0 +1,203 @@
+var app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '订单详情',
+ 'color': true,
+ 'class': '0'
+ // 'class': '2' 顶部为灰色
+ },
+ order_id:'',
+ evaluate:0,
+ cartInfo:[],//购物车产品
+ orderInfo:{},//订单详情
+ isGoodsReturn:false,//是否为退款订单
+ status:{},//订单底部按钮状态
+ isClose:false,
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if (options.order_id) this.setData({ order_id: options.order_id});
+ if (options.isReturen){
+ this.setData({ 'parameter.class': '2', isGoodsReturn:true });
+ this.selectComponent('#navbar').setClass();
+ }
+ },
+
+ /**
+ * 登录授权回调
+ *
+ */
+ onLoadFun:function(){
+ this.getOrderInfo();
+ },
+ /**
+ * 获取订单详细信息
+ *
+ */
+ getOrderInfo:function(){
+ var that=this;
+ wx.showLoading({ title: "正在加载中" });
+ app.baseGet(app.U({ c: 'user_api', a:'get_order',q:{uni:this.data.order_id}}),function(res){
+ var _type=res.data._status._type;
+ wx.hideLoading();
+ that.setData({ orderInfo: res.data, cartInfo: res.data.cartInfo, evaluate: _type==3 ? 3: 0});
+ that.getOrderStatus();
+ },function(res){
+ wx.hideLoading();
+ app.Tips({title:res.msg},'/pages/order_list/index');
+ },true)
+ },
+ /**
+ *
+ * 剪切订单号
+ */
+ copy:function(){
+ var that=this;
+ wx.setClipboardData({data: this.data.orderInfo.order_id});
+ },
+ /**
+ * 打电话
+ */
+ goTel:function(){
+ wx.makePhoneCall({
+ phoneNumber: this.data.orderInfo.delivery_id
+ })
+ },
+
+ /**
+ * 设置底部按钮
+ *
+ */
+ getOrderStatus:function(){
+ var orderInfo = this.data.orderInfo || {}, _status = orderInfo._status || { _type:0},status={};
+ var type = parseInt(_status._type), combination_id = orderInfo.combination_id || 0, delivery_type = orderInfo.delivery_type,
+ seckill_id = orderInfo.seckill_id ? parseInt(orderInfo.seckill_id) : 0,
+ bargain_id=orderInfo.bargain_id ? parseInt(orderInfo.bargain_id) : 0,
+ combination_id = orderInfo.combination_id ? parseInt(orderInfo.combination_id) : 0;
+ status={
+ type: type,
+ class_status:0
+ };
+ if (type == 1 && combination_id >0) status.class_status = 1;//查看拼团
+ if (type == 2 && delivery_type == 'express') status.class_status = 2;//查看物流
+ if (type == 2) status.class_status = 3;//确认收货
+ if (type == 4 || type == 0) status.class_status = 4;//删除订单
+ if (!seckill_id && !bargain_id && !combination_id && (type == 3 || type == 4)) status.class_status = 5;//再次购买
+ this.setData({ status: status});
+ },
+ /**
+ * 去拼团详情
+ *
+ */
+ goJoinPink:function(){
+ wx.navigateTo({
+ url: '/pages/activity/goods_combination_status/index?id=' + this.data.orderInfo.pink_id,
+ });
+ },
+ /**
+ * 立即付款
+ *
+ */
+ checkPay:function(){
+ var that=this;
+ wx.showActionSheet({
+ itemList: ['微信支付', '余额支付'],
+ success(res) {
+ var paytype = res.tapIndex ? 'yue' :'weixin';
+ wx.showLoading({ title: '支付中' });
+ app.baseGet(app.U({ c: 'auth_api', a: 'pay_order', q: { uni: that.data.orderInfo.order_id, paytype: paytype}}),function(res){
+ if (paytype == 'weixin' && res.data.result){
+ var jsConfig = res.data.result.jsConfig;
+ wx.requestPayment({
+ timeStamp: jsConfig.timestamp,
+ nonceStr: jsConfig.nonceStr,
+ package: jsConfig.package,
+ signType: jsConfig.signType,
+ paySign: jsConfig.paySign,
+ success: function (res) {
+ wx.hideLoading();
+ return app.Tips({ title: '支付成功', icon:'success'},function(){
+ that.getOrderInfo();
+ });
+ },
+ fail: function (e) {
+ wx.hideLoading();
+ return app.Tips({ title: '取消支付' });
+ },
+ complete: function (e) {
+ wx.hideLoading();
+ if (res.errMsg == 'requestPayment:cancel') return app.Tips({ title: '取消支付' });
+ },
+ });
+ } else if (paytype =='yue'){
+ wx.hideLoading();
+ return app.Tips({title:res.msg,icon:'success'},function(){
+ that.getOrderInfo();
+ });
+ }
+ });
+ }
+ })
+ },
+ /**
+ * 再此购买
+ *
+ */
+ goOrderConfirm:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'auth_api', a:'again_order',q:{uni:that.data.orderInfo.order_id}}),function(res){
+ return wx.navigateTo({ url:'/pages/order_confirm/index?cartId='+res.data});
+ });
+ },
+ confirmOrder:function(){
+ var that=this;
+ wx.showModal({
+ title: '确认收货',
+ content: '为保障权益,请收到货确认无误后,再确认收货',
+ success: function (res) {
+ if (res.confirm) {
+ app.baseGet(app.U({ c: 'user_api', a:'user_take_order',q:{uni:that.data.order_id}}),function(res){
+ return app.Tips({title:'操作成功',icon:'success'},function(){
+ that.getOrderInfo();
+ });
+ });
+ }
+ }
+ })
+ },
+ /**
+ *
+ * 删除订单
+ */
+ delOrder:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'user_api', a:'user_remove_order',q:{uni:this.data.order_id}}),function(res){
+ return app.Tips({title:'删除成功',icon:'success'},{tab:3,url:1});
+ });
+ },
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ if (app.globalData.isLog && this.data.isClose) {
+ this.getOrderInfo();
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+ this.setData({ isClose: true });
+ },
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/order_details/index.json b/view/crmebNewUI/pages/order_details/index.json
new file mode 100644
index 00000000..75c9aaef
--- /dev/null
+++ b/view/crmebNewUI/pages/order_details/index.json
@@ -0,0 +1,9 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "orderGoods": "/components/orderGoods/index",
+ "home":"/components/home/index",
+ "authorize": "/components/authorize/authorize"
+ },
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/order_details/index.wxml b/view/crmebNewUI/pages/order_details/index.wxml
new file mode 100644
index 00000000..1e007f78
--- /dev/null
+++ b/view/crmebNewUI/pages/order_details/index.wxml
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+ 待付款
+ 待发货
+ 待收货
+ 待评价
+ 已完成
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{orderInfo.real_name}}{{orderInfo.user_phone}}
+ {{orderInfo.user_address}}
+
+
+
+
+
+
+ 订单编号:
+ {{orderInfo.order_id}}复制
+
+
+ 下单时间:
+ {{orderInfo.add_time_y +' '+orderInfo.add_time_h}}
+
+
+ 支付状态:
+ 已支付
+ 未支付
+
+
+ 支付方式:
+ {{orderInfo._status._payType}}
+
+
+ 买家留言:
+ {{orderInfo.mark}}
+
+
+
+
+
+ 收货人:
+ {{orderInfo.real_name}}
+
+
+ 联系电话:
+ {{orderInfo.user_phone}}
+
+
+ 收货地址:
+ {{orderInfo.user_address}}
+
+
+
+
+
+ 配送方式:
+ 发货
+
+
+ 快递公司:
+ {{orderInfo.delivery_name || ''}}
+
+
+ 快递号:
+ {{orderInfo.delivery_id || ''}}
+
+
+
+
+ 收货人:
+ 送货
+
+
+ 联系电话:
+ {{orderInfo.delivery_name || ''}}
+
+
+ 配送电话:
+ {{orderInfo.delivery_id || ''}}拨打
+
+
+
+
+
+ 支付金额:
+ ¥{{orderInfo.total_price}}
+
+
+ 优惠券抵扣:
+ -¥{{orderInfo.coupon_price}}
+
+
+ 积分抵扣:
+ -¥{{orderInfo.deduction_price}}
+
+
+ 运费:
+ ¥{{orderInfo.pay_postage}}
+
+ 实付款:¥{{orderInfo.pay_price}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/order_details/index.wxss b/view/crmebNewUI/pages/order_details/index.wxss
new file mode 100644
index 00000000..1eec4439
--- /dev/null
+++ b/view/crmebNewUI/pages/order_details/index.wxss
@@ -0,0 +1,29 @@
+.order-details .header{padding:0 30rpx;height:150rpx;}
+.order-details .header.on{background-color:#666!important;}
+.order-details .header .pictrue{width:110rpx;height:110rpx;}
+.order-details .header .pictrue image{width:100%;height:100%;}
+.order-details .header .data{color:rgba(255,255,255,0.8);font-size:24rpx;margin-left:27rpx;}
+.order-details .header .data.on{margin-left:0;}
+.order-details .header .data .state{font-size:30rpx;font-weight:bold;color:#fff;margin-bottom:7rpx;}
+.order-details .header .data .time{margin-left:20rpx;}
+.order-details .nav{background-color:#fff;font-size:26rpx;color:#282828;padding:25rpx 0;}
+.order-details .nav .navCon{padding:0 40rpx;}
+.order-details .nav .progress{padding:0 65rpx;margin-top:10rpx;}
+.order-details .nav .progress .line{width:100rpx;height:2rpx;background-color:#939390;}
+.order-details .nav .progress .iconfont{font-size:25rpx;color:#939390;margin-top:-2rpx;}
+.order-details .address{font-size:26rpx;color:#868686;background-color:#fff;margin-top:13rpx;padding:35rpx 30rpx;}
+.order-details .address .name{font-size:30rpx;color:#282828;margin-bottom:15rpx;}
+.order-details .address .name .phone{margin-left:40rpx;}
+.order-details .line{width:100%;height:3rpx;}
+.order-details .line image{width:100%;height:100%;display:block;}
+.order-details .wrapper{background-color:#fff;margin-top:12rpx;padding:30rpx;}
+.order-details .wrapper .item{font-size:28rpx;color:#282828;}
+.order-details .wrapper .item~.item{margin-top:20rpx;}
+.order-details .wrapper .item .conter{color:#868686;width:460rpx;text-align:right;}
+.order-details .wrapper .item .conter .copy{font-size:20rpx;color:#333;border-radius:3rpx;border:1rpx solid #666;padding:3rpx 15rpx;margin-left:24rpx;}
+.order-details .wrapper .actualPay{border-top:1rpx solid #eee;margin-top:30rpx;padding-top:30rpx;}
+.order-details .wrapper .actualPay .money{font-weight:bold;font-size:30rpx;}
+.order-details .footer{width:100%;height:100rpx;position:fixed;bottom:0;left:0;background-color:#fff;padding:0 30rpx;box-sizing:border-box;}
+.order-details .footer .bnt{width:176rpx;height:60rpx;text-align:center;line-height:60rpx;border-radius:50rpx;color:#fff;font-size:27rpx;}
+.order-details .footer .bnt.cancel{color:#aaa;border:1rpx solid #ddd;}
+.order-details .footer .bnt~.bnt{margin-left:18rpx;}
diff --git a/view/crmebNewUI/pages/order_list/index.js b/view/crmebNewUI/pages/order_list/index.js
new file mode 100644
index 00000000..ad08f445
--- /dev/null
+++ b/view/crmebNewUI/pages/order_list/index.js
@@ -0,0 +1,167 @@
+var app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '我的订单',
+ 'color': true,
+ 'class': '0'
+ },
+ loading:false,//是否加载中
+ loadend:false,//是否加载完毕
+ loadTitle:'加载更多',//提示语
+ orderList:[],//订单数组
+ orderData:{},//订单详细统计
+ orderStatus:0,//订单状态
+ page:1,
+ limit:10,
+ isClose:false,
+ },
+
+ /**
+ * 登录回调
+ *
+ */
+ onLoadFun:function(){
+ this.getOrderData();
+ this.getOrderList();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if (options.status) this.setData({ orderStatus:options.status});
+ this.setData({ 'parameter.return': options.is_return ? '0' : '1'});
+ },
+ /**
+ * 获取订单统计数据
+ *
+ */
+ getOrderData:function(){
+ var that=this;
+ app.baseGet(app.U({c:"auth_api",a:'get_order_data'}),function(res){
+ that.setData({ orderData:res.data});
+ });
+ },
+ /**
+ * 取消订单
+ *
+ */
+ cancelOrder:function(e){
+ var order_id = e.currentTarget.dataset.order_id;
+ var index = e.currentTarget.dataset.index,that=this;
+ if (!order_id) return app.Tips({title:'缺少订单号无法取消订单'});
+ app.baseGet(app.U({ c: 'auth_api', a: 'cancel_order', q: { order_id: order_id}}),function(res){
+ return app.Tips({title:res.msg,icon:'success'},function(){
+ that.data.orderList.splice(index, 1);
+ that.setData({ orderList: that.data.orderList, 'orderData.unpaid_count': that.data.orderData.unpaid_count-1});
+ });
+ });
+ },
+ /**
+ * 去订单详情
+ */
+ goOrderDetails:function(e){
+ var order_id = e.currentTarget.dataset.order_id;
+ if (!order_id) return app.Tips({ title: '缺少订单号无法查看订单详情' });
+ wx.navigateTo({ url: '/pages/order_details/index?order_id=' + order_id})
+ },
+ /**
+ * 切换类型
+ */
+ statusClick:function(e){
+ var status = e.currentTarget.dataset.status;
+ if (status==this.data.orderStatus) return;
+ this.setData({ orderStatus: status, loadend: false, page: 1, orderList:[]});
+ this.getOrderList();
+ },
+ /**
+ * 获取订单列表
+ */
+ getOrderList:function(){
+ var that=this;
+ if(that.data.loadend) return;
+ if(that.data.loading) return;
+ that.setData({ loading: true, loadTitle:""});
+ app.baseGet(app.U({ c: 'user_api', a:'get_user_order_list',q:{
+ type: that.data.orderStatus,
+ page:that.data.page,
+ limit:that.data.limit,
+ }}),function(res){
+ var list=res.data || [];
+ var loadend=list.length < that.data.limit;
+ that.data.orderList = app.SplitArray(list, that.data.orderList);
+ that.setData({
+ orderList:that.data.orderList,
+ loadend: loadend,
+ loading:false,
+ loadTitle: loadend ? "我也是有底线的" : '加载更多',
+ page:that.data.page+1,
+ });
+ },function(res){
+ that.setData({ loading: false, loadTitle:"加载更多"});
+ });
+ },
+
+ /**
+ * 删除订单
+ */
+ delOrder:function(e){
+ var order_id = e.currentTarget.dataset.order_id;
+ var index = e.currentTarget.dataset.index, that = this;
+ app.baseGet(app.U({ c: 'user_api', a: 'user_remove_order', q: { uni: order_id } }), function (res){
+ that.data.orderList.splice(index, 1);
+ that.setData({ orderList: that.data.orderList, 'orderData.unpaid_count': that.data.orderData.unpaid_count - 1 });
+ return app.Tips({ title: '删除成功', icon: 'success' });
+ });
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ if (app.globalData.isLog && this.data.isClose){
+ this.getOrderData();
+ this.getOrderList();
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+ this.setData({ isClose:true});
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+ this.getOrderList();
+ },
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/order_list/index.json b/view/crmebNewUI/pages/order_list/index.json
new file mode 100644
index 00000000..a3be860b
--- /dev/null
+++ b/view/crmebNewUI/pages/order_list/index.json
@@ -0,0 +1,8 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize",
+ "home": "/components/home/index"
+ },
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/order_list/index.wxml b/view/crmebNewUI/pages/order_list/index.wxml
new file mode 100644
index 00000000..321bde57
--- /dev/null
+++ b/view/crmebNewUI/pages/order_list/index.wxml
@@ -0,0 +1,76 @@
+
+
+
+
+
+ 待付款
+ {{orderData.unpaid_count || 0}}
+
+
+ 待发货
+ {{orderData.unshipped_count || 0}}
+
+
+ 待收货
+ {{orderData.received_count || 0}}
+
+
+ 待评价
+ {{orderData.evaluated_count || 0}}
+
+
+ 已完成
+ {{orderData.complete_count || 0}}
+
+
+
+
+
+
+ {{item._add_time}}
+ 待付款
+ 待发货
+ 待收货
+ 待评价
+ 已完成
+
+
+
+
+ {{item.productInfo.store_name}}
+
+ ¥{{item.productInfo.price}}
+ x{{item.cart_num}}
+
+
+
+ 共{{item.cartInfo.length || 0}}件商品,总金额 ¥{{item.pay_price}}
+
+
+ 取消订单
+ 立即付款
+ 查看详情
+ 查看详情
+ 去评价
+ 再次购买
+ 删除订单
+
+
+
+
+ {{loadTitle}}
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/order_list/index.wxss b/view/crmebNewUI/pages/order_list/index.wxss
new file mode 100644
index 00000000..65c467bd
--- /dev/null
+++ b/view/crmebNewUI/pages/order_list/index.wxss
@@ -0,0 +1,28 @@
+.my-order .header{height:260rpx;padding:0 30rpx;}
+.my-order .header .picTxt{height:190rpx;}
+.my-order .header .picTxt .text{color:rgba(255, 255, 255, 0.8);font-size:26rpx;font-family: 'Guildford Pro';}
+.my-order .header .picTxt .text .name{font-size:34rpx;font-weight:bold;color:#fff;margin-bottom:20rpx;}
+.my-order .header .picTxt .pictrue{width:122rpx;height:109rpx;}
+.my-order .header .picTxt .pictrue image{width:100%;height:100%;}
+.my-order .nav{background-color:#fff;width:690rpx;height:140rpx;border-radius:6rpx;margin:-73rpx auto 0 auto;}
+.my-order .nav .item{text-align:center;font-size:26rpx;color:#282828;padding:29rpx 0;}
+.my-order .nav .item.on{font-weight:bold;border-bottom:5rpx solid #e93323;}
+.my-order .nav .item .num{margin-top:18rpx;}
+.my-order .list{width:690rpx;margin:14rpx auto 0 auto;}
+.my-order .list .item{background-color:#fff;border-radius:6rpx;margin-bottom:14rpx;}
+.my-order .list .item .title{height:84rpx;padding:0 30rpx;border-bottom:1rpx solid #eee;font-size:28rpx;color:#282828;}
+.my-order .list .item .item-info{padding:0 30rpx;margin-top:22rpx;}
+.my-order .list .item .item-info .pictrue{width:120rpx;height:120rpx;}
+.my-order .list .item .item-info .pictrue image{width:100%;height:100%;border-radius:6rpx;}
+.my-order .list .item .item-info .text{width:486rpx;font-size:28rpx;color:#999;margin-top:6rpx;}
+.my-order .list .item .item-info .text .name{width:306rpx;color:#282828;}
+.my-order .list .item .item-info .text .money{text-align:right;}
+.my-order .list .item .totalPrice{font-size:26rpx;color:#282828;text-align:right;margin:27rpx 0 0 30rpx;padding:0 30rpx 30rpx 0;border-bottom:1rpx solid #eee;}
+.my-order .list .item .totalPrice .money{font-size:28rpx;font-weight:bold;}
+.my-order .list .item .bottom{height:107rpx;padding:0 30rpx;}
+.my-order .list .item .bottom .bnt{width:176rpx;height:60rpx;text-align:center;line-height:60rpx;color:#fff;border-radius:50rpx;font-size:27rpx;}
+.my-order .list .item .bottom .bnt.cancelBnt{border:1rpx solid #ddd;color:#aaa;}
+.my-order .list .item .bottom .bnt~.bnt{margin-left:17rpx;}
+ .noCart{margin-top:171rpx;padding-top: 0.1rpx;}
+ .noCart .pictrue{width:414rpx;height:336rpx;margin:78rpx auto 56rpx auto;}
+ .noCart .pictrue image{width:100%;height:100%;}
diff --git a/view/crmebNewUI/pages/order_pay_status/index.js b/view/crmebNewUI/pages/order_pay_status/index.js
new file mode 100644
index 00000000..1068aae2
--- /dev/null
+++ b/view/crmebNewUI/pages/order_pay_status/index.js
@@ -0,0 +1,40 @@
+var app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '支付成功'
+ },
+ orderId:'',
+ order_pay_info: { paid :1 }
+ },
+ onLoadFun:function(){
+ this.getOrderPayInfo();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if (!options.order_id) return app.Tips({title:'缺少参数无法查看订单支付状态'},{tab:3,url:1});
+ this.setData({ orderId: options.order_id, status: options.status || 0, msg: options.msg || ''});
+ },
+ getOrderPayInfo:function(){
+ var that=this;
+ wx.showLoading({title: '正在加载中'});
+ app.baseGet(app.U({ c: 'auth_api', a: 'get_order_pay_info', q: { order_id: this.data.orderId}}),function(res){
+ wx.hideLoading();
+ that.setData({ order_pay_info: res.data, 'parameter.title': res.data.paid ? '支付成功' :'支付失败'});
+ },function(){
+ wx.hideLoading();
+ });
+ },
+
+
+
+
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/order_pay_status/index.json b/view/crmebNewUI/pages/order_pay_status/index.json
new file mode 100644
index 00000000..e247f085
--- /dev/null
+++ b/view/crmebNewUI/pages/order_pay_status/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/order_pay_status/index.wxml b/view/crmebNewUI/pages/order_pay_status/index.wxml
new file mode 100644
index 00000000..7b1a070c
--- /dev/null
+++ b/view/crmebNewUI/pages/order_pay_status/index.wxml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ {{order_pay_info.paid ? '订单支付成功':'订单支付失败'}}
+
+
+ 订单编号
+ {{orderId}}
+
+
+ 下单时间
+ {{order_pay_info._pay_time}}
+
+
+ 支付方式
+ {{order_pay_info._status._payType}}
+
+
+ 支付金额
+ {{order_pay_info.pay_price}}
+
+
+
+ 失败原因
+ {{status==2 ? '取消支付':msg}}
+
+
+
+ 查看订单
+ 重新购买
+ 重新支付
+ 返回首页
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/order_pay_status/index.wxss b/view/crmebNewUI/pages/order_pay_status/index.wxss
new file mode 100644
index 00000000..4ef76b51
--- /dev/null
+++ b/view/crmebNewUI/pages/order_pay_status/index.wxss
@@ -0,0 +1,11 @@
+.payment-status{background-color:#fff;margin:195rpx 30rpx 0 30rpx;border-radius:10rpx;padding:1rpx 0 28rpx 0;}
+.payment-status .iconfont{font-size:70rpx;width:140rpx;height:140rpx;border-radius:50%;color:#fff;text-align:center;line-height:140rpx;text-shadow:0px 4px 0px #df1e14;border:6rpx solid #f5f5f5;margin:-76rpx auto 0 auto;background-color:#999;}
+.payment-status .iconfont.fail{text-shadow:0px 4px 0px #7a7a7a;}
+.payment-status .status{font-size:32rpx;font-weight:bold;text-align:center;margin:25rpx 0 37rpx 0;}
+.payment-status .wrapper{border:1rpx solid #eee;margin:0 30rpx 47rpx 30rpx;padding:35rpx 0;border-left:0;border-right:0;}
+.payment-status .wrapper .item{font-size:28rpx;color:#282828;}
+.payment-status .wrapper .item~.item{margin-top:20rpx;}
+.payment-status .wrapper .item .itemCom{color:#666;}
+.payment-status .returnBnt{width:630rpx;height:86rpx;border-radius:50rpx;color:#fff;font-size:30rpx;text-align:center;line-height:86rpx;margin:0 auto 20rpx auto;}
+
+
diff --git a/view/crmebNewUI/pages/promoter-list/index.js b/view/crmebNewUI/pages/promoter-list/index.js
new file mode 100644
index 00000000..07633999
--- /dev/null
+++ b/view/crmebNewUI/pages/promoter-list/index.js
@@ -0,0 +1,150 @@
+// pages/promoter-list/index.js
+const app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '推广人列表',
+ 'color': true,
+ 'class': '0'
+ },
+ total:0,
+ totalLevel:0,
+ teamCount: 0,
+ page: 0,
+ limit: 20,
+ keyword:'',
+ sort:'',
+ grade:0,
+ status: false,
+ recordList:[],
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ this.userSpreadNewList();
+ },
+ setSort: function (e) {
+ var that = this;
+ that.setData({
+ sort: e.currentTarget.dataset.sort,
+ page: 0,
+ limit: 20,
+ status: false,
+ recordList: [],
+ });
+ that.userSpreadNewList();
+ },
+ setKeyword: function (e) {
+ this.setData({ keyword: e.detail.value });
+ },
+ setRecordList: function () {
+ this.setData({
+ page: 0,
+ limit: 20,
+ status: false,
+ recordList: [],
+ });
+ this.userSpreadNewList();
+ },
+ setType:function(e){
+ if (this.data.grade != e.currentTarget.dataset.grade) {
+ this.setData({
+ grade: e.currentTarget.dataset.grade,
+ page: 0,
+ limit: 20,
+ keyword: '',
+ sort: '',
+ status: false,
+ recordList: [],
+ });
+ this.userSpreadNewList();
+ }
+ },
+ userSpreadNewList: function () {
+ var that = this;
+ var page = that.data.page;
+ var limit = that.data.limit;
+ var status = that.data.status;
+ var keyword = that.data.keyword;
+ var sort = that.data.sort;
+ var grade = that.data.grade;
+ var recordList = that.data.recordList;
+ var recordListNew = [];
+ if (status == true) return;
+ app.baseGet(app.U({ c: 'user_api', a: 'user_spread_new_list', q: {
+ page: page,
+ limit: limit,
+ keyword: keyword,
+ grade: grade,
+ sort: sort,
+ } }), function (res) {
+ var len = res.data.list.length;
+ var recordListData = res.data.list;
+ recordListNew = recordList.concat(recordListData);
+ that.setData({
+ total: res.data.total,
+ totalLevel: res.data.totalLevel,
+ teamCount: Number(res.data.total) + Number(res.data.totalLevel),
+ status: limit > len,
+ page: limit + page,
+ recordList: recordListNew
+ });
+ });
+ },
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+ this.userSpreadNewList();
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/promoter-list/index.json b/view/crmebNewUI/pages/promoter-list/index.json
new file mode 100644
index 00000000..ed5513eb
--- /dev/null
+++ b/view/crmebNewUI/pages/promoter-list/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index"
+ },
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/promoter-list/index.wxml b/view/crmebNewUI/pages/promoter-list/index.wxml
new file mode 100644
index 00000000..ecc43609
--- /dev/null
+++ b/view/crmebNewUI/pages/promoter-list/index.wxml
@@ -0,0 +1,68 @@
+
+
+
+
+ 一级({{total}})
+ 二级({{totalLevel}})
+
+
+
+
+
+
+
+ 团队排序
+
+
+ 团队排序
+
+
+ 团队排序
+
+
+ 金额排序
+
+
+ 金额排序
+
+
+ 金额排序
+
+
+ 订单排序
+
+
+ 订单排序
+
+
+ 订单排序
+
+
+
+
+
+
+
+
+ {{item.nickname}}
+ 加入时间: {{item.time}}
+
+
+
+ {{item.childCount ? item.childCount : 0}} 人
+ {{item.orderCount ? item.orderCount : 0}} 单
+ {{item.numberCount ? item.numberCount : 0}} 元
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/promoter-list/index.wxss b/view/crmebNewUI/pages/promoter-list/index.wxss
new file mode 100644
index 00000000..f8dedf52
--- /dev/null
+++ b/view/crmebNewUI/pages/promoter-list/index.wxss
@@ -0,0 +1,21 @@
+.promoter-list .nav{background-color:#fff;height:86rpx;line-height:86rpx;font-size:28rpx;color:#282828;border-bottom:1rpx solid #eee;}
+.promoter-list .nav .item.on{border-bottom:5rpx solid #e93323;color:#e93323;}
+.promoter-list .search{width:100%;background-color:#fff;height:86rpx;padding:0 30rpx;box-sizing:border-box;}
+.promoter-list .search .input{width:630rpx;height:60rpx;border-radius:50rpx;background-color:#f5f5f5;text-align:center;position:relative;}
+.promoter-list .search .input input{height:100%;font-size:26rpx;width:620rpx;text-align:center;}
+.promoter-list .search .input .placeholder{color:#bbb;}
+.promoter-list .search .input .iconfont{position:absolute;right:28rpx;color:#999;font-size:28rpx;top:50%;transform:translateY(-50%);}
+.promoter-list .search .iconfont{font-size:45rpx;color:#515151;}
+.promoter-list .list{margin-top:12rpx;}
+.promoter-list .list .sortNav{background-color:#fff;height:76rpx;border-bottom:1rpx solid #eee;color:#333;font-size:28rpx;}
+.promoter-list .list .sortNav .sortItem{text-align:center;flex:1;}
+.promoter-list .list .sortNav .sortItem image{width:24rpx;height:24rpx;margin-left:6rpx;vertical-align:-3rpx;}
+.promoter-list .list .item{background-color:#fff;border-bottom:1rpx solid #eee;height:152rpx;padding:0 30rpx 0 20rpx;font-size:24rpx;color:#666;}
+.promoter-list .list .item .picTxt{width:440rpx;}
+.promoter-list .list .item .picTxt .pictrue{width:106rpx;height:106rpx;border-radius:50%;}
+.promoter-list .list .item .picTxt .pictrue image{width:100%;height:100%;border-radius:50%;border:3rpx solid #fff;box-shadow:0 0 10rpx #aaa;box-sizing:border-box;}
+.promoter-list .list .item .picTxt .text{width:304rpx;font-size:24rpx;color:#666;}
+.promoter-list .list .item .picTxt .text .name{font-size:28rpx;color:#333;margin-bottom:13rpx;}
+.promoter-list .list .item .right{width:240rpx;text-align:right;font-size:22rpx;color:#333;}
+
+
diff --git a/view/crmebNewUI/pages/promoter-order/index.js b/view/crmebNewUI/pages/promoter-order/index.js
new file mode 100644
index 00000000..bee05e67
--- /dev/null
+++ b/view/crmebNewUI/pages/promoter-order/index.js
@@ -0,0 +1,93 @@
+// pages/promoter-order/index.js
+const app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '推广人订单',
+ 'color':true,
+ 'class':'0'
+ },
+ page: 0,
+ limit: 8,
+ status: false,
+ recordList: [],
+ recordCount: 0,
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ this.getRecordOrderList();
+ },
+ getRecordOrderList: function () {
+ var that = this;
+ var page = that.data.page;
+ var limit = that.data.limit;
+ var status = that.data.status;
+ var recordList = that.data.recordList;
+ var recordListNew = [];
+ if (status == true) return;
+ app.baseGet(app.U({ c: 'user_api', a: 'get_record_order_list', q: { page: page, limit: limit } }), function (res) {
+ var len = res.data.list ? res.data.list.length : 0;
+ var recordListData = res.data.list;
+ recordListNew = recordList.concat(recordListData);
+ that.setData({ recordCount: res.data.count || 0, status: limit > len, page: limit + page, recordList: recordListNew });
+ });
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/promoter-order/index.json b/view/crmebNewUI/pages/promoter-order/index.json
new file mode 100644
index 00000000..ed5513eb
--- /dev/null
+++ b/view/crmebNewUI/pages/promoter-order/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index"
+ },
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/promoter-order/index.wxml b/view/crmebNewUI/pages/promoter-order/index.wxml
new file mode 100644
index 00000000..e5e75746
--- /dev/null
+++ b/view/crmebNewUI/pages/promoter-order/index.wxml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+ {{item.time}}
+ 本月累计推广订单:{{item.count}}单
+
+
+
+
+
+
+
+ {{child.nickname}}
+
+ 返佣:¥{{child.number}}
+
+
+ 订单编号: {{child.order_id}}
+ 下单时间: {{child.time}}
+
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/promoter-order/index.wxss b/view/crmebNewUI/pages/promoter-order/index.wxss
new file mode 100644
index 00000000..42d054b4
--- /dev/null
+++ b/view/crmebNewUI/pages/promoter-order/index.wxss
@@ -0,0 +1,16 @@
+.promoter-order .list .item .title{height:133rpx;padding:0 30rpx;font-size:26rpx;color:#999;}
+.promoter-order .list .item .title .data{font-size:28rpx;color:#282828;margin-bottom:5rpx;}
+.promoter-order .list .item .listn .itenm{background-color:#fff;}
+.promoter-order .list .item .listn .itenm~.itenm{margin-top:12rpx;}
+.promoter-order .list .item .listn .itenm .top{margin-left:30rpx;padding-right:30rpx;border-bottom:1rpx solid #eee;height:100rpx;}
+.promoter-order .list .item .listn .itenm .top .pictxt{width:320rpx;}
+.promoter-order .list .item .listn .itenm .top .pictxt .text{width:230rpx;font-size:30rpx;color:#282828;}
+.promoter-order .list .item .listn .itenm .top .pictxt .pictrue{width:66rpx;height:66rpx;}
+.promoter-order .list .item .listn .itenm .top .pictxt .pictrue image{width:100%;height:100%;border-radius:50%;border:3rpx solid #fff;box-sizing:border-box;box-shadow:0 0 15rpx #aaa;}
+.promoter-order .list .item .listn .itenm .top .money{font-size:28rpx;}
+.promoter-order .list .item .listn .itenm .bottom{padding:20rpx 30rpx;font-size:28rpx;color:#666;line-height:1.6;}
+.promoter-order .list .item .listn .itenm .bottom .name{color:#999;}
+
+
+
+
diff --git a/view/crmebNewUI/pages/promotional-items/index.js b/view/crmebNewUI/pages/promotional-items/index.js
new file mode 100644
index 00000000..f2dca4bd
--- /dev/null
+++ b/view/crmebNewUI/pages/promotional-items/index.js
@@ -0,0 +1,77 @@
+// pages/promotional-items/index.js
+const app=getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '促销单品'
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.getIndexGroomList();
+ },
+ getIndexGroomList: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'public_api', a: 'get_index_groom_list', q: { type:4 } }), function (res) {
+ that.setData({ imgUrls: res.data.banner, bastList: res.data.list })
+ }, function (res) { console.log(res); }, true);
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/promotional-items/index.json b/view/crmebNewUI/pages/promotional-items/index.json
new file mode 100644
index 00000000..9ec65a05
--- /dev/null
+++ b/view/crmebNewUI/pages/promotional-items/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "swipers": "/components/swipers/index",
+ "promotionGood": "/components/promotionGood/index"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/promotional-items/index.wxml b/view/crmebNewUI/pages/promotional-items/index.wxml
new file mode 100644
index 00000000..be100490
--- /dev/null
+++ b/view/crmebNewUI/pages/promotional-items/index.wxml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ 促销单品
+
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/promotional-items/index.wxss b/view/crmebNewUI/pages/promotional-items/index.wxss
new file mode 100644
index 00000000..a94d7d99
--- /dev/null
+++ b/view/crmebNewUI/pages/promotional-items/index.wxss
@@ -0,0 +1,5 @@
+page{background-color:#fff!important;}
+.quality-recommend .title{height:120rpx;font-size:32rpx;color:#282828;background-color:#f5f5f5;}
+.quality-recommend .title .line{width:230rpx;height:2rpx;background-color:#e9e9e9;}
+.quality-recommend .title .name{margin:0 20rpx;}
+.quality-recommend .title .name .iconfont{margin-right:13rpx;font-size:38rpx;vertical-align:-4rpx;color:#343434;}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/quality-recommend/index.js b/view/crmebNewUI/pages/quality-recommend/index.js
new file mode 100644
index 00000000..23d4602b
--- /dev/null
+++ b/view/crmebNewUI/pages/quality-recommend/index.js
@@ -0,0 +1,80 @@
+// pages/quality-recommend/index.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '精品推荐'
+ },
+ imgUrls: [
+ '/images/banners.jpg',
+ '/images/banners.jpg',
+ '/images/banners.jpg'
+ ],
+ indicatorDots: true,
+ circular: true,
+ autoplay: true,
+ interval: 3000,
+ duration: 500
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ 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/view/crmebNewUI/pages/quality-recommend/index.json b/view/crmebNewUI/pages/quality-recommend/index.json
new file mode 100644
index 00000000..bbe34b4e
--- /dev/null
+++ b/view/crmebNewUI/pages/quality-recommend/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "swipers": "/components/swipers/index",
+ "goodList": "/components/goodList/index"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/quality-recommend/index.wxml b/view/crmebNewUI/pages/quality-recommend/index.wxml
new file mode 100644
index 00000000..9f1e79ae
--- /dev/null
+++ b/view/crmebNewUI/pages/quality-recommend/index.wxml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ 精品推荐
+
+
+
+
diff --git a/view/crmebNewUI/pages/quality-recommend/index.wxss b/view/crmebNewUI/pages/quality-recommend/index.wxss
new file mode 100644
index 00000000..ba45c59f
--- /dev/null
+++ b/view/crmebNewUI/pages/quality-recommend/index.wxss
@@ -0,0 +1,5 @@
+page{background-color:#fff!important;}
+.quality-recommend .title{height:120rpx;font-size:32rpx;color:#282828;background-color:#f5f5f5;}
+.quality-recommend .title .line{width:230rpx;height:2rpx;background-color:#e9e9e9;}
+.quality-recommend .title .name{margin:0 20rpx;}
+.quality-recommend .title .name .iconfont{margin-right:13rpx;font-size:38rpx;vertical-align:-4rpx;}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user/user.js b/view/crmebNewUI/pages/user/user.js
new file mode 100644
index 00000000..f4b53268
--- /dev/null
+++ b/view/crmebNewUI/pages/user/user.js
@@ -0,0 +1,105 @@
+const app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '0',
+ 'title': '个人中心',
+ 'color': true,
+ 'class': '0'
+ },
+ userInfo:{},
+ MyMenus:[],
+ },
+
+ /**
+ * 授权回调
+ */
+ onLoadFun:function(){
+ this.getUserInfo();
+ if (!this.data.MyMenus.length) this.getMyMenus();
+ },
+
+ /**
+ *
+ * 获取个人中心图标
+ */
+ getMyMenus: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'public_api', a: 'get_my_naviga' }), function (res) {
+ that.setData({MyMenus:res.data.routine_my_menus});
+ });
+ },
+ /**
+ * 小程序设置
+ */
+ Setting:function(){
+ wx.openSetting({
+ success:function(res){
+ console.log(res.authSetting)
+ }
+ });
+ },
+ /**
+ * 跳转到用户资料
+ */
+ goUserInfo:function(){
+ wx.navigateTo({
+ url: '/pages/user_info/index',
+ })
+ },
+ /**
+ * 获取个人用户信息
+ */
+ getUserInfo:function(){
+ var that=this;
+ app.baseGet(app.U({c:'user_api',a:'my'}),function(res){
+ that.setData({userInfo:res.data});
+ });
+ },
+ /**
+ * 页面跳转
+ */
+ goPages:function(e){
+ console.log();
+ if (e.currentTarget.dataset.url == '/pages/user_spread_user/index' && this.data.userInfo.statu==1) {
+ if (!this.data.userInfo.is_promoter) return app.Tips({ title: '您还没有推广权限!!' });
+ }
+ wx.navigateTo({
+ url: e.currentTarget.dataset.url
+ })
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.setData({ MyMenus:app.globalData.MyMenus});
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+ onShow:function(){
+ if (app.globalData.isLog) this.getUserInfo();
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user/user.json b/view/crmebNewUI/pages/user/user.json
new file mode 100644
index 00000000..4912fb41
--- /dev/null
+++ b/view/crmebNewUI/pages/user/user.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ },
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user/user.wxml b/view/crmebNewUI/pages/user/user.wxml
new file mode 100644
index 00000000..519a56e4
--- /dev/null
+++ b/view/crmebNewUI/pages/user/user.wxml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+ 我的余额
+ {{userInfo.now_money || 0}}
+
+
+ 当前佣金
+ {{userInfo.brokerage || 0}}
+
+
+ 当前佣金
+ {{userInfo.brokerage || 0}}
+
+
+ 优惠券
+ {{userInfo.couponCount || 0}}
+
+
+
+
+ 我的订单
+ 全部订单
+
+
+
+
+ 待付款
+
+
+
+ 待发货
+
+
+
+ 待收货
+
+
+
+ 待评价
+
+
+
+ 售后/退款
+
+
+
+
+ 我的服务
+
+
+
+ {{item.name}}
+
+
+
+ 联系客服
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/user/user.wxss b/view/crmebNewUI/pages/user/user.wxss
new file mode 100644
index 00000000..d842ba1a
--- /dev/null
+++ b/view/crmebNewUI/pages/user/user.wxss
@@ -0,0 +1,33 @@
+.user .header{padding:0 30rpx;height:190rpx;position:relative;}
+.user .header:after { position: absolute;left: 0;right: 0;bottom: -98rpx;z-index: -1;
+ content:'';height:100rpx;width: 100%;border-radius: 0 0 50% 50%;background-color: #e93323;}
+.user .header .picTxt .pictrue{width:120rpx;height:120rpx;}
+.user .header .picTxt .pictrue image{width:100%;height:100%;border-radius:50%;border:2px solid #f5f5f5;}
+.user .header .picTxt .text{width:434rpx;color:rgba(255,255,255,1);margin-left:35rpx;}
+.user .header .picTxt .text .name{font-size:32rpx;max-width:270rpx;}
+.user .header .picTxt .text .member{padding:0 10rpx;height:36rpx;background-color:rgba(0, 0, 0, 0.2);font-size:20rpx;border-radius:30rpx;margin-left:17rpx;}
+.user .header .picTxt .text .member image{width:28rpx;height:28rpx;font-size:20rpx;margin-right:8rpx;}
+.user .header .picTxt .text .id{color:rgba(255,255,255,0.6);font-size:26rpx;margin-top:15rpx;}
+.user .header .picTxt .text .id .iconfont{font-size:30rpx;margin-left:12rpx;}
+.user .header .icon-shezhi{font-size:36rpx;color:#fff;margin-top:-52rpx;}
+.user .wrapper{padding:0 20rpx;}
+.user .wrapper .nav{background-color:#fff;border-radius:6rpx;height:140rpx;}
+.user .wrapper .nav .item{flex:1;text-align:center;font-size:26rpx;color:#aaa;}
+.user .wrapper .nav .item~.item{border-left:1px solid #eee;}
+.user .wrapper .nav .item .num{margin-top:10rpx;font-size:36rpx;color:#282828;}
+.user .wrapper .myOrder{background-color:#fff;border-radius:10rpx;margin-top:15rpx;}
+.user .wrapper .myOrder .title,.user .wrapper .myService .title{height:88rpx;padding:0 30rpx;border-bottom:1px dashed #ddd;font-size:30rpx;color:#282828;}
+.user .wrapper .myOrder .title .allOrder{font-size:26rpx;color:#666;}
+.user .wrapper .myOrder .title .allOrder .iconfont{font-size:30rpx;margin-left:7rpx;}
+.user .wrapper .myOrder .orderState{height:160rpx;}
+.user .wrapper .myOrder .orderState .item{font-size:26rpx;color:#454545;flex:1;text-align:center;}
+.user .wrapper .myOrder .orderState .item .pictrue{width:49rpx;height:42rpx;margin:0 auto 18rpx auto;}
+.user .wrapper .myOrder .orderState .item .pictrue image{width:100%;height:100%;}
+.user .wrapper .myService{background-color:#fff;margin-top:15rpx;border-radius:10rpx;}
+.user .wrapper .myService .serviceList{padding:8rpx 0 27rpx 0;}
+.user .wrapper .myService .serviceList .item{width:25%;text-align:center;font-size:26rpx;color:#333;margin-top:30rpx;}
+.user .wrapper .myService .serviceList .item .pictrue{width:52rpx;height:52rpx;margin:0 auto 16rpx auto;}
+.user .wrapper .myService .serviceList .item .pictrue image{width:100%;height:100%;}
+.user .support{width:219rpx;height:74rpx;margin:54rpx auto;display:block;}
+
+
diff --git a/view/crmebNewUI/pages/user_address/index.js b/view/crmebNewUI/pages/user_address/index.js
new file mode 100644
index 00000000..b03cb69e
--- /dev/null
+++ b/view/crmebNewUI/pages/user_address/index.js
@@ -0,0 +1,97 @@
+var app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '添加地址'
+ },
+ region: ['省', '市', '区'],
+ cartId:'',//购物车id
+ pinkId:0,//拼团id
+ couponId:0,//优惠券id
+ id:0,//地址id
+ userAddress: { is_default:false},//地址详情
+ },
+ /**
+ * 授权回调
+ *
+ */
+ onLoadFun:function(){
+
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.setData({
+ cartId: options.cartId || '',
+ pinkId: options.pinkId || 0,
+ couponId: options.couponId || 0,
+ id: options.id || 0,
+ 'parameter.title': options.id ? '修改地址' : '添加地址'
+ });
+ this.getUserAddress();
+ },
+ bindRegionChange: function (e) {
+ console.log('picker发送选择改变,携带值为', e.detail.value)
+ this.setData({
+ region: e.detail.value
+ })
+ },
+ getUserAddress:function(){
+ if(!this.data.id) return false;
+ var that=this;
+ app.baseGet(app.U({ c: 'user_api', a: 'get_user_address', q: { addressId:this.data.id}}),function(res){
+ var region = [res.data.province, res.data.city, res.data.district];
+ that.setData({
+ userAddress:res.data,
+ region: region,
+ });
+ });
+ },
+ /**
+ * 提交用户添加地址
+ *
+ */
+ formSubmit:function(e){
+ var that = this, value = e.detail.value, formId=e.detail.formId;
+ if (!value.real_name) return app.Tips({title:'请填写收货人姓名'});
+ if (!value.phone) return app.Tips({title:'请填写联系电话'});
+ if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(value.phone)) return app.Tips({title:'请输入正确的手机号码'});
+ if (that.data.region[0] =='省') return app.Tips({title:'请选择所在地区'});
+ if (!value.detail) return app.Tips({title:'请填写详细地址'});
+ value.id=that.data.id;
+ value.address={
+ province:that.data.region[0],
+ city: that.data.region[1],
+ district: that.data.region[2],
+ };
+ value.is_default = that.data.userAddress.is_default ? 1 : 0;
+ app.basePost(app.U({ c: 'user_api', a: 'edit_user_address' }), value,function(res){
+ if (that.data.id) app.Tips({ title: '修改成功', icon: 'success'});
+ else app.Tips({ title: '添加成功', icon: 'success'});
+ setTimeout(function(){
+ if (that.data.cartId) {
+ var cartId = that.data.cartId;
+ var pinkId = that.data.pinkId;
+ var couponId = that.data.couponId;
+ that.setData({cartId: '', pinkId: '',couponId: ''})
+ wx.navigateTo({
+ url: '/pages/order_confirm/index?cartId=' + cartId + '&addressId=' + (that.data.id ? that.data.id : res.data.id) + '&pinkId=' + pinkId + '&couponId=' + couponId
+ });
+ }else{
+ wx.navigateBack({ delta: 1 });
+ }
+ },1000);
+ });
+ },
+ ChangeIsDefault:function(e){
+ this.setData({ 'userAddress.is_default': !this.data.userAddress.is_default});
+ },
+
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_address/index.json b/view/crmebNewUI/pages/user_address/index.json
new file mode 100644
index 00000000..e247f085
--- /dev/null
+++ b/view/crmebNewUI/pages/user_address/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_address/index.wxml b/view/crmebNewUI/pages/user_address/index.wxml
new file mode 100644
index 00000000..639d7b75
--- /dev/null
+++ b/view/crmebNewUI/pages/user_address/index.wxml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ 姓名
+
+
+
+ 联系电话
+
+
+
+ 所在地区
+
+
+ {{region[0]}},{{region[1]}},{{region[2]}}
+
+
+
+
+
+ 详细地址
+
+
+
+
+ 设置为默认地址
+
+ 立即保存
+
+
+
diff --git a/view/crmebNewUI/pages/user_address/index.wxss b/view/crmebNewUI/pages/user_address/index.wxss
new file mode 100644
index 00000000..470d63ba
--- /dev/null
+++ b/view/crmebNewUI/pages/user_address/index.wxss
@@ -0,0 +1,11 @@
+.addAddress .list{background-color:#fff;}
+.addAddress .list .item{padding:0 30rpx;height:90rpx;border-top:1rpx solid #eee;}
+.addAddress .list .item .name{width:195rpx;font-size:30rpx;color:#333;}
+.addAddress .list .item input{width:475rpx;font-size:30rpx;}
+.addAddress .list .item .placeholder{color:#ccc;}
+.addAddress .list .item picker{width:475rpx;}
+.addAddress .list .item picker .picker{width:410rpx;font-size:30rpx;}
+.addAddress .list .item picker .iconfont{font-size:43rpx;}
+.addAddress .default{padding:0 30rpx;height:90rpx;background-color:#fff;margin-top:23rpx;}
+.addAddress .default checkbox{margin-right:15rpx;}
+.addAddress .keepBnt{width:690rpx;height:86rpx;border-radius:50rpx;text-align:center;line-height:86rpx;margin:50rpx auto;font-size:32rpx;color:#fff;}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_address_list/index.js b/view/crmebNewUI/pages/user_address_list/index.js
new file mode 100644
index 00000000..385f6035
--- /dev/null
+++ b/view/crmebNewUI/pages/user_address_list/index.js
@@ -0,0 +1,179 @@
+var app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '地址管理'
+ },
+ addressList:[],
+ cartId:'',
+ pinkId:0,
+ couponId:0,
+ loading:false,
+ loadend:false,
+ loadTitle:'加载更多',
+ page:1,
+ limit:8,
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.setData({
+ cartId: options.cartId || '',
+ pinkId: options.pinkId || 0,
+ couponId: options.couponId || 0,
+ })
+ },
+ onShow:function(){
+ var that = this;
+ if (app.globalData.isLog) that.getAddressList(true);
+ },
+ onLoadFun:function(){
+ this.getAddressList();
+ },
+ /*
+ * 导入微信地址
+ */
+ getWxAddress: function () {
+ var that = this;
+ wx.authorize({
+ scope: 'scope.address',
+ success: function (res) {
+ wx.chooseAddress({
+ success: function (res) {
+ var addressP = {};
+ addressP.province = res.provinceName;
+ addressP.city = res.cityName;
+ addressP.district = res.countyName;
+ app.basePost(app.U({ c:'user_api',a:"edit_user_address"}),{
+ address: addressP,
+ is_default: 1,
+ real_name: res.userName,
+ post_code: res.postalCode,
+ phone: res.telNumber,
+ detail: res.detailInfo,
+ id: 0
+ },function(res){
+ app.Tips({ title: "添加成功", icon:'success'},function(){
+ that.getAddressList(true);
+ });
+ });
+ },
+ fail: function (res) {
+ if (res.errMsg == 'chooseAddress:cancel') return app.Tips({ title:'取消选择'});
+ },
+ })
+ },
+ fail: function (res) {
+ console.log(res);
+ },
+ })
+ },
+ /**
+ * 获取地址列表
+ *
+ */
+ getAddressList: function (isPage){
+ var that=this;
+ if (isPage) that.setData({ loadend: false, page: 1, addressList:[]});
+ if (that.data.loading) return;
+ if (that.data.loadend) return;
+ that.setData({ loading:true,loadTitle:''});
+ app.baseGet(app.U({ c: 'user_api', a:'user_address_list',q:{page:that.data.page,limit:that.data.limit}}),function(res){
+ var list=res.data;
+ var loadend=list.length < that.data.limit;
+ that.data.addressList = app.SplitArray(list, that.data.addressList);
+ that.setData({
+ addressList: that.data.addressList,
+ loadend: loadend,
+ loadTitle: loadend ? '我也是有底线的':'加载更多',
+ page:that.data.page+1,
+ loading:false,
+ });
+ },function(){
+ that.setData({ loading: false, loadTitle:'加载更多'});
+ });
+ },
+ /**
+ * 设置默认地址
+ */
+ radioChange:function(e){
+ var index = parseInt(e.detail.value),that=this;;
+ var address = this.data.addressList[index];
+ if (address==undefined) return app.Tips({title:'您设置的默认地址不存在!'});
+ app.baseGet(app.U({ c: 'user_api', a: 'set_user_default_address', q: { addressId: address.id}}),function(res){
+ for (var i = 0, len = that.data.addressList.length;i
+
+
+
+
+
+ 收货人:{{item.real_name}}{{item.phone}}
+ 收货地址:{{item.province}}{{item.city}}{{item.district}}{{item.detail}}
+
+
+
+ 设为默认
+
+
+ 编辑
+ 删除
+
+
+
+
+
+ {{loadTitle}}
+
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/user_address_list/index.wxss b/view/crmebNewUI/pages/user_address_list/index.wxss
new file mode 100644
index 00000000..5c01ba95
--- /dev/null
+++ b/view/crmebNewUI/pages/user_address_list/index.wxss
@@ -0,0 +1,15 @@
+.address-management.fff{background-color: #fff;height: 1300rpx}
+.address-management .line{width:100%;height:3rpx;}
+.address-management .line image{width:100%;height:100%;display:block;}
+.address-management .item{background-color:#fff;padding:0 30rpx;margin-bottom:12rpx;}
+.address-management .item .address{padding:30rpx 0;border-bottom:1rpx solid #eee;font-size:28rpx;color:#282828;}
+.address-management .item .address .consignee{font-size:28rpx;font-weight:bold;margin-bottom:8rpx;}
+.address-management .item .address .consignee .phone{margin-left:25rpx;}
+.address-management .item .operation{height:83rpx;font-size:28rpx;color:#282828;}
+.address-management .item .operation .radio text{margin-left:13rpx;}
+.address-management .item .operation .iconfont{color:#2c2c2c;font-size:35rpx;vertical-align:-2rpx;margin-right:10rpx;}
+.address-management .item .operation .iconfont.icon-shanchu{margin-left:40rpx;font-size:38rpx;}
+.address-management .footer{position:fixed;width:100%;background-color:#fff;bottom:0;height:106rpx;padding:0 30rpx;box-sizing:border-box;}
+.address-management .footer .addressBnt{width:330rpx;height:76rpx;border-radius:50rpx;text-align:center;line-height:76rpx;font-size:30rpx;color:#fff;}
+.address-management .footer .addressBnt .iconfont{font-size:35rpx;margin-right:8rpx;vertical-align:-1rpx;}
+.address-management .footer .addressBnt.wxbnt{background-color:#fe960f;}
diff --git a/view/crmebNewUI/pages/user_bill/index.js b/view/crmebNewUI/pages/user_bill/index.js
new file mode 100644
index 00000000..642ae5a6
--- /dev/null
+++ b/view/crmebNewUI/pages/user_bill/index.js
@@ -0,0 +1,87 @@
+// pages/bill-details/index.js
+const app=getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '账单明细',
+ 'color':true,
+ 'class':'0'
+ },
+ loadTitle:'加载更多',
+ loading:false,
+ loadend:false,
+ page:1,
+ limit:10,
+ type:0,
+ userBillList:[],
+ },
+
+ /**
+ * 授权回调
+ */
+ onLoadFun:function(){
+ this.getUserBillList();
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.setData({ type: options.type || 0});
+ },
+
+ /**
+ * 获取账户明细
+ */
+ getUserBillList:function(){
+ var that=this;
+ if (that.data.loadend) return;
+ if (that.data.loading) return;
+ that.setData({ loading: true, loadTitle: "" });
+ app.baseGet(app.U({c:"user_api",a:'get_user_bill_list',q:{
+ type:that.data.type,
+ page:that.data.page,
+ limit:that.data.limit
+ }}),function(res){
+ var list=res.data,loadend=list.length < that.data.limit;
+ that.data.userBillList = app.SplitArray(list,that.data.userBillList);
+ that.setData({
+ userBillList:that.data.userBillList,
+ loadend:loadend,
+ loading:false,
+ loadTitle:loadend ? "哼😕~我也是有底线的~": "加载更多",
+ page:that.data.page+1,
+ });
+ },function(res){
+ that.setData({loading:false,loadTitle:'加载更多'});
+ });
+ },
+ /**
+ * 切换导航
+ */
+ changeType:function(e){
+ this.setData({ type: e.currentTarget.dataset.type,loadend:false,page:1,userBillList:[]});
+ this.getUserBillList();
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+ this.getUserBillList();
+ },
+
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_bill/index.json b/view/crmebNewUI/pages/user_bill/index.json
new file mode 100644
index 00000000..4912fb41
--- /dev/null
+++ b/view/crmebNewUI/pages/user_bill/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ },
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_bill/index.wxml b/view/crmebNewUI/pages/user_bill/index.wxml
new file mode 100644
index 00000000..cad35f43
--- /dev/null
+++ b/view/crmebNewUI/pages/user_bill/index.wxml
@@ -0,0 +1,29 @@
+
+
+
+ 全部
+ 消费
+ 充值
+
+
+
+
+ {{item.money}}
+
+
+
+ {{vo.title}}
+ {{vo.add_time}}
+
+ +{{vo.number}}
+ -{{vo.number}}
+
+
+
+
+
+ {{loadTitle}}
+
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_bill/index.wxss b/view/crmebNewUI/pages/user_bill/index.wxss
new file mode 100644
index 00000000..8d118f4d
--- /dev/null
+++ b/view/crmebNewUI/pages/user_bill/index.wxss
@@ -0,0 +1,3 @@
+.bill-details .nav{background-color:#fff;height:90rpx;width:100%;line-height:90rpx;}
+.bill-details .nav .item{flex:1;text-align:center;font-size:30rpx;color:#282828;}
+.bill-details .nav .item.on{color:#e93323;border-bottom:3rpx solid #e93323;}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_cash/index.js b/view/crmebNewUI/pages/user_cash/index.js
new file mode 100644
index 00000000..dd63baf5
--- /dev/null
+++ b/view/crmebNewUI/pages/user_cash/index.js
@@ -0,0 +1,137 @@
+// pages/cash-withdrawal/index.js
+const app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '提现',
+ 'color':true,
+ 'class':'0'
+ },
+ navList: [
+ { 'name': '银行卡', 'icon':'icon-yinhangqia'},
+ { 'name': '微信', 'icon': 'icon-weixin2' },
+ { 'name': '支付宝', 'icon': 'icon-icon34' }
+ ],
+ currentTab: 0,
+ index: 0,
+ array: [],//提现银行
+ minPrice:0.00,//最低提现金额
+ userInfo:[],
+ isClone:false
+ },
+ onLoadFun:function(){
+ this.getUserInfo();
+ this.getUserExtractBank();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+ getUserExtractBank: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'public_api', a: 'get_user_extract_bank' }), function (res) {
+ var array = res.data.extractBank;
+ array.unshift("请选择银行");
+ that.setData({ array: array, minPrice: res.data.minPrice });
+ });
+ },
+ /**
+ * 获取个人用户信息
+ */
+ getUserInfo: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'user_api', a: 'my' }), function (res) {
+ that.setData({ userInfo: res.data });
+ });
+ },
+ swichNav: function (e) {
+ this.setData({ currentTab: e.currentTarget.dataset.current });
+ },
+ bindPickerChange: function (e) {
+ this.setData({ index: e.detail.value });
+ },
+ subCash: function (e) {
+ var formId = e.detail.formId, that = this, value = e.detail.value;
+ app.baseGet(app.U({ c: 'public_api', a: "get_form_id", q: { formId: formId} }), null, null);
+ if (that.data.currentTab == 0){//银行卡
+ if (value.name.length == 0) return app.Tips({title:'请填写持卡人姓名'});
+ if (value.cardnum.length == 0) return app.Tips({title:'请填写卡号'});
+ if (that.data.index == 0) return app.Tips({title:"请选择银行"});
+ value.extract_type = 'bank';
+ value.bankname = that.data.array[that.data.index];
+ } else if (that.data.currentTab == 1) {//微信
+ value.extract_type = 'weixin';
+ } else if (that.data.currentTab == 2) {//支付宝
+ value.extract_type = 'alipay';
+ if (value.name.length == 0) return app.Tips({title:'请填写账号'});
+ value.alipay_code = value.name;
+ }
+ if (value.money.length == 0) return app.Tips({title:'请填写提现金额'});
+ if (value.money < that.data.minPrice) return app.Tips({title:'提现金额不能低于' + that.data.minPrice});
+ app.basePost(app.U({ c: 'user_api', a: 'user_extract'}),value,function (res) {
+ that.getUserInfo();
+ return app.Tips({title:res.msg,icon:'success'});
+ },function(res){
+ return app.Tips({title:res.msg});
+ });
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ if(app.globalData.isLog && this.data.isClone){
+ this.getUserInfo();
+ this.getUserExtractBank();
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+ this.setData({isClone:true});
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_cash/index.json b/view/crmebNewUI/pages/user_cash/index.json
new file mode 100644
index 00000000..4912fb41
--- /dev/null
+++ b/view/crmebNewUI/pages/user_cash/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ },
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_cash/index.wxml b/view/crmebNewUI/pages/user_cash/index.wxml
new file mode 100644
index 00000000..04390d4b
--- /dev/null
+++ b/view/crmebNewUI/pages/user_cash/index.wxml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ {{item.name}}
+
+
+
+
+
+
+ 持卡人
+
+
+
+ 卡号
+
+
+
+ 银行
+
+
+ {{array[index]}}
+
+
+
+
+
+ 提现
+
+
+ 当前可提现金额: {{userInfo.brokerage}}
+ 提现
+
+
+
+
+ 当前可提现金额: {{userInfo.brokerage}}
+
+ 提现
+
+
+
+
+
+ 账号
+
+
+
+ 提现
+
+
+ 当前可提现金额: {{userInfo.brokerage}}
+ 提现
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/user_cash/index.wxss b/view/crmebNewUI/pages/user_cash/index.wxss
new file mode 100644
index 00000000..45c92c58
--- /dev/null
+++ b/view/crmebNewUI/pages/user_cash/index.wxss
@@ -0,0 +1,19 @@
+page{background-color:#fff!important;}
+.cash-withdrawal .nav{height:130rpx;box-shadow:0 10rpx 10rpx #f8f8f8;}
+.cash-withdrawal .nav .item{font-size:26rpx;flex:1;text-align:center;}
+.cash-withdrawal .nav .item~.item{border-left:1px solid #f0f0f0;}
+.cash-withdrawal .nav .item .iconfont{width:40rpx;height:40rpx;border-radius:50%;border:2rpx solid #e93323;text-align:center;line-height:37rpx;margin:0 auto 6rpx auto;font-size:22rpx;box-sizing:border-box;}
+.cash-withdrawal .nav .item .iconfont.on{background-color:#e93323;color:#fff;border-color:#e93323;}
+.cash-withdrawal .nav .item .line{width:2rpx;height:20rpx;margin:0 auto;transition:height 0.3s;}
+.cash-withdrawal .nav .item .line.on{height:39rpx;}
+.cash-withdrawal .wrapper .list{padding:0 30rpx;}
+.cash-withdrawal .wrapper .list .item{border-bottom:1rpx solid #eee;height:107rpx;font-size:30rpx;color:#333;}
+.cash-withdrawal .wrapper .list .item .name{width:130rpx;}
+.cash-withdrawal .wrapper .list .item .input{width:505rpx;}
+.cash-withdrawal .wrapper .list .item .input .placeholder{color:#bbb;}
+.cash-withdrawal .wrapper .list .tip{font-size:26rpx;color:#999;margin-top:25rpx;}
+.cash-withdrawal .wrapper .list .bnt{font-size:32rpx;color:#fff;width:690rpx;height:90rpx;text-align:center;border-radius:50rpx;line-height:90rpx;margin:64rpx auto;}
+.cash-withdrawal .wrapper .list .tip2{font-size:26rpx;color:#999;text-align:center;margin:44rpx 0 20rpx 0;}
+.cash-withdrawal .wrapper .list .value{height:135rpx;line-height:135rpx;border-bottom:1rpx solid #eee;width:690rpx;margin:0 auto;}
+.cash-withdrawal .wrapper .list .value input{font-size:80rpx;color:#282828;height:135rpx;text-align:center;}
+.cash-withdrawal .wrapper .list .value .placeholder2{color:#bbb;}
diff --git a/view/crmebNewUI/pages/user_coupon/index.js b/view/crmebNewUI/pages/user_coupon/index.js
new file mode 100644
index 00000000..df271547
--- /dev/null
+++ b/view/crmebNewUI/pages/user_coupon/index.js
@@ -0,0 +1,51 @@
+// pages/coupon-list/index.js
+const app=getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '我的优惠券',
+ 'color': false
+ },
+ couponsList:[],
+ loading:false,
+ },
+
+ /**
+ * 授权回调
+ */
+ onLoadFun:function(){
+ this.getUseCoupons();
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+
+ /**
+ * 获取领取优惠券列表
+ */
+ getUseCoupons:function(){
+ var that = this;
+ app.baseGet(app.U({ c: 'coupons_api', a:'get_use_coupons'}),function(res){
+ that.setData({ loading: true, couponsList:res.data});
+ });
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_coupon/index.json b/view/crmebNewUI/pages/user_coupon/index.json
new file mode 100644
index 00000000..e247f085
--- /dev/null
+++ b/view/crmebNewUI/pages/user_coupon/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_coupon/index.wxml b/view/crmebNewUI/pages/user_coupon/index.wxml
new file mode 100644
index 00000000..0d8c8f86
--- /dev/null
+++ b/view/crmebNewUI/pages/user_coupon/index.wxml
@@ -0,0 +1,18 @@
+
+
+
+ ¥{{item.coupon_price}}
+
+ {{item.coupon_title}}
+
+ {{item._add_time}}-{{item._end_time}}
+ {{item._msg}}
+ {{item._msg}}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_coupon/index.wxss b/view/crmebNewUI/pages/user_coupon/index.wxss
new file mode 100644
index 00000000..e69de29b
diff --git a/view/crmebNewUI/pages/user_get_coupon/index.js b/view/crmebNewUI/pages/user_get_coupon/index.js
new file mode 100644
index 00000000..5b1c961b
--- /dev/null
+++ b/view/crmebNewUI/pages/user_get_coupon/index.js
@@ -0,0 +1,80 @@
+// pages/coupon-list/index.js
+const app=getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '领取优惠券',
+ 'color': false
+ },
+ couponsList:[],
+ loading:false,
+ loadend:false,
+ page:1,
+ limit:20,
+ },
+
+ /**
+ * 授权回调
+ */
+ onLoadFun:function(){
+ this.getUseCoupons();
+ },
+ getCoupon:function(e){
+ var that = this;
+ var id = e.currentTarget.dataset.id;
+ var index = e.currentTarget.dataset.index;
+ var list = that.data.couponsList;
+ //领取优惠券
+ app.basePost(app.U({ c: 'coupons_api', a: 'user_get_coupon' }), { couponId: id }, function (res) {
+ list[index].is_use = true;
+ that.setData({
+ couponsList: list
+ });
+ app.Tips({ title: '领取成功' });
+ },function(res){
+ return app.Tips({title:res.msg});
+ });
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+
+ /**
+ * 获取领取优惠券列表
+ */
+ getUseCoupons:function(){
+ var that=this
+ if(this.data.loadend) return false;
+ if(this.data.loading) return false;
+ app.baseGet(app.U({ c: 'coupons_api', a:'get_issue_coupon_list',q:{page:this.data.page,limit:this.data.limit}}),function(res){
+ var list=res.data,loadend=list.length < that.data.limit;
+ var couponsList = app.SplitArray(list, that.data.couponsList);
+ that.setData({
+ loading: true,
+ couponsList: couponsList,
+ page:that.data.page+1,
+ loadend: loadend
+ });
+ },function(res){
+ that.setData({ loading:false});
+ });
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+ this.getUseCoupons();
+ },
+
+
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_get_coupon/index.json b/view/crmebNewUI/pages/user_get_coupon/index.json
new file mode 100644
index 00000000..e247f085
--- /dev/null
+++ b/view/crmebNewUI/pages/user_get_coupon/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_get_coupon/index.wxml b/view/crmebNewUI/pages/user_get_coupon/index.wxml
new file mode 100644
index 00000000..7f4c72aa
--- /dev/null
+++ b/view/crmebNewUI/pages/user_get_coupon/index.wxml
@@ -0,0 +1,19 @@
+
+
+
+ ¥{{item.coupon_price}}
+
+ 购物满{{item.use_min_price}}元可用
+
+ {{item.add_time}}-{{item.end_time}}
+ 已领取
+ 已领完
+ 立即领取
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_get_coupon/index.wxss b/view/crmebNewUI/pages/user_get_coupon/index.wxss
new file mode 100644
index 00000000..e69de29b
diff --git a/view/crmebNewUI/pages/user_goods_collection/index.js b/view/crmebNewUI/pages/user_goods_collection/index.js
new file mode 100644
index 00000000..cfbe4f78
--- /dev/null
+++ b/view/crmebNewUI/pages/user_goods_collection/index.js
@@ -0,0 +1,87 @@
+// pages/collectionGoods/index.js
+const app=getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '收藏商品',
+ 'color': false
+ },
+ host_product:[],
+ loadTitle:'加载更多',
+ loading:false,
+ loadend:false,
+ collectProductList:[],
+ limit:8,
+ page:1,
+ },
+ /**
+ * 授权回调
+ */
+ onLoadFun:function(){
+ this.get_user_collect_product();
+ this.get_host_product();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+ /**
+ * 获取收藏产品
+ */
+ get_user_collect_product:function(){
+ var that=this;
+ if (this.data.loading) return;
+ if (this.data.loadend) return;
+ that.setData({ loading: true, loadTitle:''});
+ app.baseGet(app.U({ c: 'store_api', a:'get_user_collect_product',q:{page:that.data.page,limit:that.data.limit}}),function(res){
+ var collectProductList=res.data;
+ var loadend = collectProductList.length < that.data.limit;
+ console.log(collectProductList.length);
+ that.data.collectProductList = app.SplitArray(collectProductList, that.data.collectProductList);
+ that.setData({
+ collectProductList: that.data.collectProductList,
+ loadend: loadend,
+ loadTitle: loadend ? '我也是有底线的':'加载更多',
+ page:that.data.page+1,
+ loading: false
+ });
+ },function(){
+ that.setData({ loading: false, loadTitle:"加载更多"})
+ });
+ },
+ /**
+ * 取消收藏
+ */
+ delCollection:function(e){
+ var id = e.target.dataset.id, that = this, index = e.target.dataset.index;
+ app.baseGet(app.U({ c: 'store_api', a:'get_user_collect_product_del',q:{pid:id}}),function(res){
+ return app.Tips({title:'取消收藏成功',icon:'success'},function(){
+ that.data.collectProductList.splice(index,1);
+ that.setData({ collectProductList: that.data.collectProductList});
+ });
+ });
+ },
+ /**
+ * 获取我的推荐
+ */
+ get_host_product: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'public_api', a: "get_hot_product", q: { offset: 1, limit: 4 } }), function (res) {
+ that.setData({ host_product: res.data });
+ });
+ },
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+ this.get_user_collect_product();
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_goods_collection/index.json b/view/crmebNewUI/pages/user_goods_collection/index.json
new file mode 100644
index 00000000..3d8369c7
--- /dev/null
+++ b/view/crmebNewUI/pages/user_goods_collection/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "recommend": "/components/recommend/index",
+ "authorize": "/components/authorize/authorize"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_goods_collection/index.wxml b/view/crmebNewUI/pages/user_goods_collection/index.wxml
new file mode 100644
index 00000000..f92cf70b
--- /dev/null
+++ b/view/crmebNewUI/pages/user_goods_collection/index.wxml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ {{item.store_name}}
+
+ ¥{{item.price}}
+ 删除
+
+
+
+
+ {{loadTitle}}
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/user_goods_collection/index.wxss b/view/crmebNewUI/pages/user_goods_collection/index.wxss
new file mode 100644
index 00000000..4f65a09d
--- /dev/null
+++ b/view/crmebNewUI/pages/user_goods_collection/index.wxss
@@ -0,0 +1,8 @@
+.collectionGoods{background-color:#fff;border-top:1rpx solid #eee;}
+.collectionGoods .item{margin-left:30rpx;padding-right:30rpx;border-bottom:1rpx solid #eee;height:180rpx;}
+.collectionGoods .item .pictrue{width:130rpx;height:130rpx;}
+.collectionGoods .item .pictrue image{width:100%;height:100%;border-radius:6rpx;}
+.collectionGoods .item .text{width:535rpx;height:130rpx;font-size:28rpx;color:#282828;}
+.collectionGoods .item .text .money{font-size:26rpx;}
+.collectionGoods .item .text .delete{font-size:26rpx;color:#282828;width:144rpx;height:46rpx;border:1px solid #bbb;border-radius:4rpx;text-align:center;line-height:46rpx;}
+.noCommodity{background-color:#fff;}
diff --git a/view/crmebNewUI/pages/user_goods_return/index.js b/view/crmebNewUI/pages/user_goods_return/index.js
new file mode 100644
index 00000000..3bbafe50
--- /dev/null
+++ b/view/crmebNewUI/pages/user_goods_return/index.js
@@ -0,0 +1,71 @@
+// pages/return-list/index.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '退货列表',
+ 'color': false
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ 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/view/crmebNewUI/pages/user_goods_return/index.json b/view/crmebNewUI/pages/user_goods_return/index.json
new file mode 100644
index 00000000..473450e4
--- /dev/null
+++ b/view/crmebNewUI/pages/user_goods_return/index.json
@@ -0,0 +1,5 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_goods_return/index.wxml b/view/crmebNewUI/pages/user_goods_return/index.wxml
new file mode 100644
index 00000000..22154adc
--- /dev/null
+++ b/view/crmebNewUI/pages/user_goods_return/index.wxml
@@ -0,0 +1,52 @@
+
+
+
+
+ 订单号:WX12323385454445212
+
+
+
+
+ 男士麻灰色贴布绣毛圈布围巾冬季...
+ x 1
+
+ 颜色:灰色 尺码:165/88A
+ ¥1199.00
+
+
+ 共2件商品,总金额 ¥3996.00
+
+
+
+ 订单号:WX12323385454445212
+
+
+
+
+ 男士麻灰色贴布绣毛圈布围巾冬季...
+ x 1
+
+ 颜色:灰色 尺码:165/88A
+ ¥1199.00
+
+
+ 共2件商品,总金额 ¥3996.00
+
+
+
+ 订单号:WX12323385454445212
+
+
+
+
+ 男士麻灰色贴布绣毛圈布围巾冬季...
+ x 1
+
+ 颜色:灰色 尺码:165/88A
+ ¥1199.00
+
+
+ 共2件商品,总金额 ¥3996.00
+
+
+
diff --git a/view/crmebNewUI/pages/user_goods_return/index.wxss b/view/crmebNewUI/pages/user_goods_return/index.wxss
new file mode 100644
index 00000000..34c498c3
--- /dev/null
+++ b/view/crmebNewUI/pages/user_goods_return/index.wxss
@@ -0,0 +1,7 @@
+.return-list .goodWrapper{background-color:#fff;margin-top:13rpx;position:relative;}
+.return-list .goodWrapper .orderNum{padding:0 30rpx;border-bottom:1rpx solid #eee;height:87rpx;line-height:87rpx;font-size:30rpx;color:#282828;}
+.return-list .goodWrapper .item{border-bottom:0;}
+.return-list .goodWrapper .totalSum{padding:0 30rpx 32rpx 30rpx;text-align:right;font-size:26rpx;color:#282828;}
+.return-list .goodWrapper .totalSum .price{font-size:28rpx;font-weight:bold;}
+.return-list .goodWrapper .iconfont{position:absolute;font-size:109rpx;top:7rpx;right:30rpx;color:#ccc;}
+.return-list .goodWrapper .iconfont.powder{color:#f8c1bd;}
diff --git a/view/crmebNewUI/pages/user_info/index.js b/view/crmebNewUI/pages/user_info/index.js
new file mode 100644
index 00000000..b2ff93ac
--- /dev/null
+++ b/view/crmebNewUI/pages/user_info/index.js
@@ -0,0 +1,92 @@
+var app = getApp();
+const util = require('../../utils/util.js');
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '个人资料',
+ 'color': true,
+ 'class': '0'
+ },
+ userInfo:{},
+ },
+ /**
+ * 授权回调
+ */
+ onLoadFun:function(){
+ this.getUserInfo();
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+
+ getPhoneNumber:function(e){
+ var detail = e.detail, cache_key = wx.getStorageSync('cache_key'),that=this;
+ if (detail.errMsg =='getPhoneNumber:ok'){
+ if (!cache_key){
+ app.globalData.token='';
+ app.globalData.isLog=false;
+ return false;
+ }
+ app.basePost(app.U({ c: 'user_api', a: 'bind_mobile' }), {
+ iv: detail.iv,
+ cache_key: cache_key,
+ encryptedData: detail.encryptedData
+ },function(res){
+ that.setData({ 'userInfo.phone': res.data.phone});
+ return app.Tips({ title: res.msg, icon: 'success' });
+ },function(res){
+ return app.Tips({ title: '绑定失败'});
+ });
+ }else{
+ app.Tips({ title:'取消授权'});
+ }
+ },
+
+ /**
+ * 获取用户详情
+ */
+ getUserInfo:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'user_api', a:'get_my_user_info'}),function(res){
+ that.setData({userInfo:res.data});
+ });
+ },
+
+ /**
+ * 上传文件
+ *
+ */
+ uploadpic: function () {
+ var that = this;
+ util.uploadImageOne(app.U({ c: 'public_api', a: 'upload' }), function (res) {
+ that.setData({ 'userInfo.avatar': app.globalData.url +res.data.url });
+ });
+ },
+
+ /**
+ * 提交修改
+ */
+ formSubmit:function(e){
+ var that = this, value = e.detail.value, formId = e.detail.formId;
+ if (!value.nickname) return app.Tips({title:'用户姓名不能为空'});
+ value.avatar = that.data.userInfo.avatar;
+ app.basePost(app.U({ c: 'user_api', a: 'edit_user' }), value,function(res){
+ return app.Tips({title:res.msg,icon:'success'},{tab:3,url:1});
+ },function(res){
+ return app.Tips({title:res.msg || '保存失败,您并没有修改'},{tab:3,url:1});
+ });
+ },
+
+
+
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_info/index.json b/view/crmebNewUI/pages/user_info/index.json
new file mode 100644
index 00000000..4912fb41
--- /dev/null
+++ b/view/crmebNewUI/pages/user_info/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ },
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_info/index.wxml b/view/crmebNewUI/pages/user_info/index.wxml
new file mode 100644
index 00000000..57c24177
--- /dev/null
+++ b/view/crmebNewUI/pages/user_info/index.wxml
@@ -0,0 +1,35 @@
+
+
+
+
+
+ 头像
+
+
+
+ 名字
+
+
+
+ 手机号码
+
+ 点击获取
+
+
+
+
+
+
+
+ ID号
+
+
+
+
+
+
+ 保存修改
+
+
+
+
diff --git a/view/crmebNewUI/pages/user_info/index.wxss b/view/crmebNewUI/pages/user_info/index.wxss
new file mode 100644
index 00000000..1ac67878
--- /dev/null
+++ b/view/crmebNewUI/pages/user_info/index.wxss
@@ -0,0 +1,9 @@
+.personal-data .list{margin-top:15rpx;background-color:#fff;}
+.personal-data .list .item{padding:30rpx 30rpx 30rpx 0;border-bottom:1rpx solid #f2f2f2;margin-left:30rpx;font-size:32rpx;color:#282828;}
+.personal-data .list .item .phone{width:160rpx;height:56rpx;font-size:24rpx;color:#fff;line-height:56rpx;border-radius: 32rpx}
+.personal-data .list .item .pictrue{width:88rpx;height:88rpx;}
+.personal-data .list .item .pictrue image{width:100%;height:100%;border-radius:50%;}
+.personal-data .list .item .input{width:415rpx;text-align:right;color:#868686;}
+.personal-data .list .item .input .id{width:365rpx;}
+.personal-data .list .item .input .iconfont{font-size:35rpx;}
+.personal-data .modifyBnt{font-size:32rpx;color:#fff;width:690rpx;height:90rpx;border-radius:50rpx;text-align:center;line-height:90rpx;margin:76rpx auto 0 auto;}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_integral/index.js b/view/crmebNewUI/pages/user_integral/index.js
new file mode 100644
index 00000000..2e19533e
--- /dev/null
+++ b/view/crmebNewUI/pages/user_integral/index.js
@@ -0,0 +1,83 @@
+// pages/integral-details/index.js
+const app=getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '积分详情',
+ 'color': true,
+ 'class': '0'
+ },
+ navList:[
+ { 'name': '分值明细', 'icon':'icon-mingxi'},
+ { 'name': '分值提升', 'icon': 'icon-tishengfenzhi' }
+ ],
+ current:0,
+ page:1,
+ limit:10,
+ integralList:[],
+ loadend:false,
+ loading:false,
+ loadTitle:'加载更多',
+ },
+ /**
+ * 授权回调
+ */
+ onLoadFun:function(){
+ this.getUserInfo();
+ this.getIntegralList();
+ },
+ getUserInfo:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'user_api', a: 'get_my_user_info', q: { isIntegral:1}}),function(res){
+ that.setData({userInfo:res.data});
+ });
+ },
+
+ /**
+ * 获取积分明细
+ */
+ getIntegralList:function(){
+ var that=this;
+ if(that.data.loading) return;
+ if(that.data.loadend) return;
+ that.setData({loading:true,loadTitle:''});
+ app.baseGet(app.U({ c: 'user_api', a:'user_integral_list',q:{page:that.data.page,limit:that.data.limit}}),function(res){
+ var list=res.data,loadend=list.length < that.data.limit;
+ that.data.integralList = app.SplitArray(list,that.data.integralList);
+ that.setData({
+ integralList: that.data.integralList,
+ page:that.data.page+1,
+ loading:false,
+ loadend:loadend,
+ loadTitle:loadend ? '哼~😕我也是有底线的~':"加载更多"
+ });
+ },function(res){
+ that.setData({ loading: false, loadTitle:'加载更多'});
+ });
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+
+ nav:function(e){
+ this.setData({
+ current: e.currentTarget.dataset.idx
+ })
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+ this.getIntegralList();
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_integral/index.json b/view/crmebNewUI/pages/user_integral/index.json
new file mode 100644
index 00000000..4912fb41
--- /dev/null
+++ b/view/crmebNewUI/pages/user_integral/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ },
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_integral/index.wxml b/view/crmebNewUI/pages/user_integral/index.wxml
new file mode 100644
index 00000000..972d3324
--- /dev/null
+++ b/view/crmebNewUI/pages/user_integral/index.wxml
@@ -0,0 +1,55 @@
+
+
+
+
+
+ {{item.name}}
+
+
+ 提示:积分数值的高低会直接影响您的会员等级
+
+
+ {{item.mark}}
+ {{item.add_time}}
+
+ +{{item.number}}
+ -{{item.number}}
+
+
+ {{loadTitle}}
+
+
+
+
+
+ 购买商品可获得积分奖励
+ 赚积分
+
+
+
+ 每日签到可获得积分奖励
+ 赚积分
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/user_integral/index.wxss b/view/crmebNewUI/pages/user_integral/index.wxss
new file mode 100644
index 00000000..af6cdd8b
--- /dev/null
+++ b/view/crmebNewUI/pages/user_integral/index.wxss
@@ -0,0 +1,31 @@
+@import '/css/guildford.wxss';
+.integral-details .header{background-image:url('data:image/jpeg;base64,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');background-repeat:no-repeat;background-size:100% 100%;width:100%;height:460rpx;font-size:72rpx;color:#fff;padding:31rpx 0 45rpx 0;box-sizing:border-box;text-align:center;font-family: 'Guildford Pro';}
+.integral-details .header .currentScore{font-size:26rpx;color:rgba(255, 255, 255, 0.8);text-align:center;margin-bottom:11rpx;}
+.integral-details .header .line{width:60rpx;height:3rpx;background-color:#fff;margin:20rpx auto 0 auto;}
+.integral-details .header .nav{font-size:22rpx;color:rgba(255, 255, 255, 0.8);flex:1;margin-top:35rpx;}
+.integral-details .header .nav .item{width:33.33%;text-align:center;}
+.integral-details .header .nav .item .num{color:#fff;font-size:40rpx;margin-bottom:5rpx;font-family: 'Guildford Pro';}
+.integral-details .wrapper .nav{flex:1;width:690rpx;border-radius:20rpx 20rpx 0 0;margin:-96rpx auto 0 auto;background-color:#f7f7f7;height:96rpx;font-size:30rpx;color:#bbb;}
+.integral-details .wrapper .nav .item{text-align:center;width:50%;}
+.integral-details .wrapper .nav .item.on{background-color:#fff;color:#e93323;font-weight:bold;
+border-radius:20rpx 0 0 0;}
+.integral-details .wrapper .nav .item:nth-of-type(2).on{border-radius:0 20rpx 0 0;}
+.integral-details .wrapper .nav .item .iconfont{font-size:38rpx;margin-right:10rpx;}
+.integral-details .wrapper .list{background-color:#fff;padding:24rpx 30rpx;}
+.integral-details .wrapper .list .tip{font-size:25rpx;width:690rpx;height:60rpx;border-radius:50rpx;background-color:#fff5e2;border:1rpx solid #ffeac1;color:#c8a86b;padding:0 20rpx;box-sizing:border-box;margin-bottom:24rpx;}
+.integral-details .wrapper .list .tip .iconfont{font-size:35rpx;margin-right:15rpx;}
+.integral-details .wrapper .list .item{height:124rpx;border-bottom:1rpx solid #eee;font-size:24rpx;color:#999;}
+.integral-details .wrapper .list .item .state{font-size:28rpx;color:#282828;margin-bottom:8rpx;}
+.integral-details .wrapper .list .item .num{font-size:36rpx;font-family: 'Guildford Pro';}
+.integral-details .wrapper .list2{background-color:#fff;padding:24rpx 0;}
+.integral-details .wrapper .list2 .item{background-image:linear-gradient(to right,#fff7e7 0%,#fffdf9 100%);width:690rpx;height:180rpx;position:relative;border-radius:10rpx;margin:0 auto 20rpx auto;padding:0 25rpx 0 180rpx;box-sizing:border-box;}
+.integral-details .wrapper .list2 .item .pictrue{width:90rpx;height:150rpx;position:absolute;bottom:0;left:45rpx;}
+.integral-details .wrapper .list2 .item .pictrue image{width:100%;height:100%;}
+.integral-details .wrapper .list2 .item .name{width:285rpx;font-size:30rpx;font-weight:bold;color:#c8a86b;}
+.integral-details .wrapper .list2 .item .earn{font-size:26rpx;color:#c8a86b;border:2rpx solid #c8a86b;text-align:center;line-height:52rpx;height:52rpx;width:160rpx;border-radius:50rpx;}
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/user_money/index.js b/view/crmebNewUI/pages/user_money/index.js
new file mode 100644
index 00000000..caf966ff
--- /dev/null
+++ b/view/crmebNewUI/pages/user_money/index.js
@@ -0,0 +1,80 @@
+// pages/my-account/index.js
+const app=getApp();
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '我的账户',
+ 'color': false,
+ },
+ userInfo:{},
+ host_product:[],
+ isClose:false,
+ },
+
+ /**
+ * 登录回调
+ */
+ onLoadFun:function(){
+ this.getUserInfo();
+ this.get_host_product();
+ this.get_activity();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+ /**
+ * 获取用户详情
+ */
+ getUserInfo:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'user_api', a:'my'}),function(res){
+ that.setData({userInfo:res.data});
+ });
+ },
+ /**
+ * 获取活动可参与否
+ */
+ get_activity:function(){
+ var that=this;
+ app.baseGet(app.U({c:'user_api',a:'get_activity'}),function(res){
+ that.setData({activity:res.data});
+ });
+ },
+ /**
+ * 获取我的推荐
+ */
+ get_host_product:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'public_api', a: "get_hot_product", q: { offset:1,limit:4}}),function(res){
+ that.setData({ host_product:res.data});
+ });
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ if (app.globalData.isLog && this.data.isClose) {
+ this.getUserInfo();
+ this.get_host_product();
+ this.get_activity();
+ }
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+ this.setData({ isClose: true });
+ },
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_money/index.json b/view/crmebNewUI/pages/user_money/index.json
new file mode 100644
index 00000000..3d8369c7
--- /dev/null
+++ b/view/crmebNewUI/pages/user_money/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "recommend": "/components/recommend/index",
+ "authorize": "/components/authorize/authorize"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_money/index.wxml b/view/crmebNewUI/pages/user_money/index.wxml
new file mode 100644
index 00000000..2a035a70
--- /dev/null
+++ b/view/crmebNewUI/pages/user_money/index.wxml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+ 账单记录
+
+
+
+ 消费记录
+
+
+
+ 充值记录
+
+
+
+ 积分中心
+
+
+
+
+
+ 签到领积分
+ 赚积分抵现金
+
+
+
+
+
+ 领取优惠券
+ 满减享优惠
+
+
+
+
+
+
+
+
+
+ 最新拼团活动
+ 最新的优惠商品上架拼团
+
+
+ 立即参与
+ 已结束
+
+
+
+
+
+ 当前限时秒杀
+ 最新商品秒杀进行中
+
+
+ 立即参与
+ 已结束
+
+
+
+
+
+ 砍价活动
+ 呼朋唤友来砍价
+
+
+ 立即参与
+ 已结束
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/user_money/index.wxss b/view/crmebNewUI/pages/user_money/index.wxss
new file mode 100644
index 00000000..04b40e21
--- /dev/null
+++ b/view/crmebNewUI/pages/user_money/index.wxss
@@ -0,0 +1,32 @@
+@import '/css/guildford.wxss';
+.my-account .wrapper{background-color:#fff;padding:32rpx 0 34rpx 0;margin-bottom:14rpx;}
+.my-account .wrapper .header{width:690rpx;height:330rpx;background-image:linear-gradient(to right,#f33b2b 0%,#f36053 100%);border-radius:16rpx;margin:0 auto;box-sizing:border-box;color:rgba(255,255,255,0.6);font-size:24rpx;}
+.my-account .wrapper .header .headerCon{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArIAAAFKCAYAAADhULxpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzMUM4RDlEM0YxNTExRTk4OUJFQ0Q4Qjg0RDBCMzQ1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzMUM4RDlFM0YxNTExRTk4OUJFQ0Q4Qjg0RDBCMzQ1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTMxQzhEOUIzRjE1MTFFOTg5QkVDRDhCODREMEIzNDUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTMxQzhEOUMzRjE1MTFFOTg5QkVDRDhCODREMEIzNDUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6ymvxvAAAIhklEQVR42uzd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');background-repeat:no-repeat;background-size:100%;height:100%;width:100%;padding:36rpx 0 29rpx 0;box-sizing:border-box;}
+.my-account .wrapper .header .headerCon .account{padding:0 35rpx;}
+.my-account .wrapper .header .headerCon .account .assets .money{font-size:72rpx;color:#fff;font-family: 'Guildford Pro';margin-top: 15rpx;}
+.my-account .wrapper .header .headerCon .account .recharge{font-size:28rpx;width:150rpx;height:54rpx;border-radius:27rpx;background-color:#fff9f8;text-align:center;line-height:54rpx;}
+.my-account .wrapper .header .headerCon .cumulative{margin-top:46rpx;}
+.my-account .wrapper .header .headerCon .cumulative .item{flex:1;padding-left:35rpx;}
+.my-account .wrapper .header .headerCon .cumulative .item .money{font-size:48rpx;font-family: 'Guildford Pro';color:#fff;margin-top:6rpx;}
+.my-account .wrapper .nav{height:155rpx;border-bottom:1rpx solid #f5f5f5;}
+.my-account .wrapper .nav .item{flex:1;text-align:center;font-size:26rpx;color:#999;}
+.my-account .wrapper .nav .item .pictrue{width:44rpx;height:44rpx;margin:0 auto;margin-bottom:20rpx;}
+.my-account .wrapper .nav .item .pictrue image{width:100%;height:100%;}
+.my-account .wrapper .advert{padding:0 30rpx;margin-top:30rpx;}
+.my-account .wrapper .advert .item{background-color:#fff6d1;width:332rpx;height:118rpx;border-radius:10rpx;padding:0 27rpx 0 25rpx;box-sizing:border-box;font-size:24rpx;color:#e44609;}
+.my-account .wrapper .advert .item.on{background-color:#fff3f3;color:#e96868;}
+.my-account .wrapper .advert .item .pictrue{width:78rpx;height:78rpx;}
+.my-account .wrapper .advert .item .pictrue image{width:100%;height:100%;}
+.my-account .wrapper .advert .item .text .name{font-size:30rpx;font-weight:bold;color:#f33c2b;margin-bottom:7rpx;}
+.my-account .wrapper .advert .item.on .text .name{color:#f64051;}
+.my-account .wrapper .list{padding:0 30rpx;}
+.my-account .wrapper .list .item{margin-top:44rpx;}
+.my-account .wrapper .list .item .picTxt .iconfont{width:82rpx;height:82rpx;border-radius:50%;background-image:linear-gradient(to right,#ff9389 0%,#f9776b 100%);text-align:center;line-height:82rpx;color:#fff;font-size:40rpx;}
+.my-account .wrapper .list .item .picTxt .iconfont.yellow{background-image:linear-gradient(to right,#ffccaa 0%,#fea060 100%);}
+.my-account .wrapper .list .item .picTxt .iconfont.green{background-image:linear-gradient(to right,#a1d67c 0%,#9dd074 100%);}
+.my-account .wrapper .list .item .picTxt{width:428rpx;font-size:30rpx;color:#282828;}
+.my-account .wrapper .list .item .picTxt .text{width:317rpx;}
+.my-account .wrapper .list .item .picTxt .text .infor{font-size:24rpx;color:#999;margin-top:5rpx;}
+.my-account .wrapper .list .item .bnt{font-size:26rpx;color:#282828;width:156rpx;height:52rpx;border:1rpx solid #ddd;border-radius:26rpx;text-align:center;line-height:52rpx;}
+.my-account .wrapper .list .item .bnt.end{font-size:26rpx;color:#aaa;background-color:#f2f2f2;
+border-color:#f2f2f2;}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_payment/index.js b/view/crmebNewUI/pages/user_payment/index.js
new file mode 100644
index 00000000..174f4598
--- /dev/null
+++ b/view/crmebNewUI/pages/user_payment/index.js
@@ -0,0 +1,85 @@
+// pages/mall/payment/payment.js
+var app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '余额充值',
+ 'color': false,
+ },
+ number:'',
+ focus:true,
+ userinfo:{},
+ placeholder:"0.00",
+ },
+
+ /**
+ * 登录授权回调
+ */
+ onLoadFun:function(){
+ this.getUserInfo();
+ },
+ setPlaceholderStatus:function(event){
+ if (event.detail.value.length == 0) this.setData({ placeholder: '0.00' });
+ },
+ setPlaceholder:function(){
+ this.setData({ placeholder : '' })
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+ /**
+ * 获取用户信息
+ */
+ getUserInfo:function(){
+ var that = this;
+ app.baseGet(app.U({ c: 'user_api', a:'get_my_user_info'}),function(res){
+ that.setData({ userinfo:res.data});
+ });
+ },
+ /*
+ * 用户充值
+ */
+ submitSub:function(e){
+ var that = this;
+ var value = e.detail.value.number;
+ if (parseFloat(value) < 0){
+ wx.showToast({
+ title: '请输入金额',
+ icon: 'none',
+ duration: 1000,
+ mask: true,
+ });
+ return false;
+ };
+ app.baseGet(app.U({ c: 'public_api', a: 'get_form_id', q: { formId: e.detail.formId}}),null,null,true);
+ app.baseGet(app.U({ c: 'user_api', a: 'user_wechat_recharge', q: { price: value}}),function(res){
+ var jsConfig = res.data;
+ wx.requestPayment({
+ timeStamp: jsConfig.timestamp,
+ nonceStr: jsConfig.nonceStr,
+ package: jsConfig.package,
+ signType: jsConfig.signType,
+ paySign: jsConfig.paySign,
+ success: function (res) {
+ that.setData({ 'userinfo.now_money': app.help().Add(value,that.data.userinfo.now_money)});
+ return app.Tips({ title: '支付成功', icon: 'success' },'/pages/user_money/index');
+ },
+ fail:function(){
+ return app.Tips({ title:'支付失败'});
+ },
+ complete: function (res) {
+ if (res.errMsg == 'requestPayment:cancel') return app.Tips({ title:'取消支付'});
+ }
+ })
+ });
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_payment/index.json b/view/crmebNewUI/pages/user_payment/index.json
new file mode 100644
index 00000000..ad81b472
--- /dev/null
+++ b/view/crmebNewUI/pages/user_payment/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ }
+}
diff --git a/view/crmebNewUI/pages/user_payment/index.wxml b/view/crmebNewUI/pages/user_payment/index.wxml
new file mode 100644
index 00000000..fe8ea605
--- /dev/null
+++ b/view/crmebNewUI/pages/user_payment/index.wxml
@@ -0,0 +1,10 @@
+
+
+
+ 输入金额
+ ¥
+ 提示:当前余额为 ¥{{userinfo.now_money || 0}}
+ 立即充值
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_payment/index.wxss b/view/crmebNewUI/pages/user_payment/index.wxss
new file mode 100644
index 00000000..60cc65b1
--- /dev/null
+++ b/view/crmebNewUI/pages/user_payment/index.wxss
@@ -0,0 +1,8 @@
+.payment{width:703rpx;height:470rpx;background-color:#fff;border-radius:10rpx;margin:20rpx auto 0 auto;}
+.payment .title{font-size:28rpx;color:#c6c6c6;text-align:center;padding-top:60rpx;}
+.payment .input{width:552rpx;border-bottom:1rpx solid #dddddd;margin:48rpx auto 0 auto;font-size:56rpx;color:#333333;flex-wrap:nowrap;}
+.payment .input text{padding-left:106rpx;}
+.payment .input input{padding-right:106rpx;height:94rpx;text-align:center;}
+.payment .placeholder{font-size:84.5rpx;color:#d0d0d0;}
+.payment .tip{font-size:26rpx;color:#888888;text-align:center;padding:0 30rpx;margin-top:25rpx;}
+.payment .but{color:#fff;font-size:30rpx;width:550rpx;height:86rpx;border-radius:50rpx;margin:46rpx auto 0 auto;line-height:86rpx;}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_return_list/index.js b/view/crmebNewUI/pages/user_return_list/index.js
new file mode 100644
index 00000000..b9a70841
--- /dev/null
+++ b/view/crmebNewUI/pages/user_return_list/index.js
@@ -0,0 +1,117 @@
+// pages/return-list/index.js
+const app=getApp();
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '退货列表',
+ 'color': false
+ },
+ loading: false,//是否加载中
+ loadend: false,//是否加载完毕
+ loadTitle: '加载更多',//提示语
+ orderList: [],//订单数组
+ orderStatus: -3,//订单状态
+ page: 1,
+ limit: 10
+ },
+ /**
+ * 授权回调
+ */
+ onLoadFun:function(){
+ this.getOrderList();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ if (options.isT) this.setData({'parameter.return':0});
+ },
+
+ /**
+ * 去订单详情
+ */
+ goOrderDetails: function (e) {
+ var order_id = e.currentTarget.dataset.order_id;
+ if (!order_id) return app.Tips({ title: '缺少订单号无法查看订单详情' });
+ wx.navigateTo({ url: '/pages/order_details/index?order_id=' + order_id +'&isReturen=1' })
+ },
+
+ /**
+ * 获取订单列表
+ */
+ getOrderList: function () {
+ var that = this;
+ if (that.data.loadend) return;
+ if (that.data.loading) return;
+ that.setData({ loading: true, loadTitle: "" });
+ app.baseGet(app.U({
+ c: 'user_api', a: 'get_user_order_list', q: {
+ type: that.data.orderStatus,
+ page: that.data.page,
+ limit: that.data.limit,
+ }
+ }), function (res) {
+ var list = res.data || [];
+ var loadend = list.length < that.data.limit;
+ that.data.orderList = app.SplitArray(list, that.data.orderList);
+ that.setData({
+ orderList: that.data.orderList,
+ loadend: loadend,
+ loading: false,
+ loadTitle: loadend ? "我也是有底线的" : '加载更多',
+ page: that.data.page + 1,
+ });
+ }, function (res) {
+ that.setData({ loading: false, loadTitle: "加载更多" });
+ });
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+ this.getOrderList();
+ },
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_return_list/index.json b/view/crmebNewUI/pages/user_return_list/index.json
new file mode 100644
index 00000000..b382c75d
--- /dev/null
+++ b/view/crmebNewUI/pages/user_return_list/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize",
+ "home": "/components/home/index"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_return_list/index.wxml b/view/crmebNewUI/pages/user_return_list/index.wxml
new file mode 100644
index 00000000..f893cb6f
--- /dev/null
+++ b/view/crmebNewUI/pages/user_return_list/index.wxml
@@ -0,0 +1,28 @@
+
+
+
+
+
+ 订单号:{{item.order_id}}
+
+
+
+
+ {{item.productInfo.store_name}}
+ x {{item.cart_num}}
+
+ {{item.productInfo.attrInfo.suk}}
+ {{item.productInfo.store_name}}
+ ¥{{item.productInfo.price}}
+
+
+ 共{{item.cartInfo.length || 0}}件商品,总金额 ¥{{item.pay_price}}
+
+
+
+ {{loadTitle}}
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/user_return_list/index.wxss b/view/crmebNewUI/pages/user_return_list/index.wxss
new file mode 100644
index 00000000..19b7a629
--- /dev/null
+++ b/view/crmebNewUI/pages/user_return_list/index.wxss
@@ -0,0 +1,7 @@
+.return-list .goodWrapper{background-color:#fff;margin-top:13rpx;position:relative;}
+.return-list .goodWrapper .orderNum{padding:0 30rpx;border-bottom:1px solid #eee;height:87rpx;line-height:87rpx;font-size:30rpx;color:#282828;}
+.return-list .goodWrapper .item{border-bottom:0;}
+.return-list .goodWrapper .totalSum{padding:0 30rpx 32rpx 30rpx;text-align:right;font-size:26rpx;color:#282828;}
+.return-list .goodWrapper .totalSum .price{font-size:28rpx;font-weight:bold;}
+.return-list .goodWrapper .iconfont{position:absolute;font-size:109rpx;top:7rpx;right:30rpx;color:#ccc;}
+.return-list .goodWrapper .iconfont.powder{color:#f8c1bd;}
diff --git a/view/crmebNewUI/pages/user_sgin/index.js b/view/crmebNewUI/pages/user_sgin/index.js
new file mode 100644
index 00000000..bb1e6f38
--- /dev/null
+++ b/view/crmebNewUI/pages/user_sgin/index.js
@@ -0,0 +1,134 @@
+// pages/sign/sign.js
+const app=getApp();
+const util = require('../../utils/util.js');
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '签到',
+ 'color': true,
+ 'class':'0'
+ },
+ active:false,
+ userInfo:{},
+ signCount:[],
+ signSystemList:[],
+ signList:[],
+ integral:0,
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+
+ /**
+ * 授权回调
+ */
+ onLoadFun:function(){
+ this.getUserInfo();
+ this.getSignSysteam();
+ this.getSignList();
+ },
+
+ /**
+ * 获取签到配置
+ */
+ getSignSysteam:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'public_api', a: 'get_system_group_data_value', q: { name:'sign_day_num'}}),function(res){
+ that.setData({ signSystemList: res.data.sign_day_num, day: that.Rp(res.data.sign_day_num.length)});
+ });
+ },
+
+ /**
+ * 去签到记录页面
+ *
+ */
+ goSignList:function(){
+ return app.Tips('/pages/user_sgin_list/index');
+ },
+ /**
+ * 获取用户信息
+ */
+ getUserInfo:function(){
+ var that=this;
+ app.baseGet(app.U({ c: "user_api", a: 'get_my_user_info', q: { isSgin:1}}),function(res){
+ res.data.integral = parseInt(res.data.integral);
+ var sum_sgin_day = res.data.sum_sgin_day;
+ that.setData({ userInfo: res.data, signCount: that.PrefixInteger(sum_sgin_day, 4), sign_index: res.data.sign_num });
+ });
+ },
+
+ /**
+ * 获取签到列表
+ *
+ */
+ getSignList:function(){
+ var that=this;
+ app.baseGet({ c: 'user_api', a:'get_sign_list',q:{page:1,limit:3}},function(res){
+ that.setData({signList:res.data});
+ })
+ },
+ /**
+ * 数字转中文
+ *
+ */
+ Rp: function (n) {
+ var cnum = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
+ var s = '';
+ n = '' + n; // 数字转为字符串
+ for (var i = 0; i < n.length; i++) {
+ s += cnum[parseInt(n.charAt(i))];
+ }
+ return s;
+ },
+ /**
+ * 数字分割为数组
+ * @param int num 需要分割的数字
+ * @param int length 需要分割为n位数组
+ */
+ PrefixInteger: function (num, length) {
+ return (Array(length).join('0') + num).slice(-length).split('');
+ },
+
+ /**
+ * 用户签到
+ */
+ goSign:function(e){
+ var that = this, formId = e.detail.formId, sum_sgin_day = that.data.userInfo.sum_sgin_day;
+ if (that.data.userInfo.is_day_sgin) return app.Tips({title:'您今日已签到!'});
+ app.baseGet(app.U({ c: 'user_api', a:'user_sign'}),function(res){
+ that.setData({
+ active:true,
+ integral: res.data.integral,
+ sign_index: (that.data.sign_index + 1) > that.data.signSystemList.length ? 1 : that.data.sign_index + 1,
+ signCount: that.PrefixInteger(sum_sgin_day + 1, 4),
+ 'userInfo.is_day_sgin':true,
+ 'userInfo.integral': util.$h.Add(that.data.userInfo.integral, res.data.integral)
+ });
+ that.getSignList();
+ });
+ },
+ /**
+ * 关闭签到提示
+ */
+ close:function(){
+ this.setData({active: false});
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ }
+
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_sgin/index.json b/view/crmebNewUI/pages/user_sgin/index.json
new file mode 100644
index 00000000..627347f3
--- /dev/null
+++ b/view/crmebNewUI/pages/user_sgin/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ },
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_sgin/index.wxml b/view/crmebNewUI/pages/user_sgin/index.wxml
new file mode 100644
index 00000000..93beafa3
--- /dev/null
+++ b/view/crmebNewUI/pages/user_sgin/index.wxml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+ {{item.day}}
+
+ +{{item.sign_num}}
+
+
+ 已签到
+
+ 立即签到
+
+
+
+
+ 已累计签到
+
+ {{signCount[0] || 0}}
+ {{signCount[1] || 0}}
+ {{signCount[2] || 0}}
+ {{signCount[3] || 0}}
+ 天
+
+ 据说累计签到第{{day}}天可获得超额积分,一定要坚持签到哦~~~
+
+
+
+ {{item.title}}
+ {{item.add_time}}
+
+ +{{item.number}}
+
+ 点击加载更多
+
+
+
+
+
+ 签到成功
+ 获得{{integral}}积分
+ 好的
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/user_sgin/index.wxss b/view/crmebNewUI/pages/user_sgin/index.wxss
new file mode 100644
index 00000000..3a69dda5
--- /dev/null
+++ b/view/crmebNewUI/pages/user_sgin/index.wxss
@@ -0,0 +1,42 @@
+@import '/css/guildford.wxss';
+.sign .header{width:100%;height:310rpx;}
+.sign .header .headerCon{padding:0 0 0 30rpx;height:234rpx;}
+.sign .header .headerCon .left{width:530rpx;font-size:32rpx;color:#fff;font-weight:bold;}
+.sign .header .headerCon .left .integral text{font-size:24rpx;margin-top:19rpx;background-color:#ff9000;text-align:center;border-radius:6rpx;font-weight:normal;padding:4rpx 15rpx;}
+.sign .header .headerCon .text{width:410rpx;}
+.sign .header .headerCon .left .pictrue{width:100rpx;height:100rpx;border-radius:50%;border:4rpx solid #ecddbc;}
+.sign .header .headerCon .left .pictrue image{width:100%;height:100%;border-radius:50%;}
+.sign .header .headerCon .right{width:142rpx;height:66rpx;background-color:#fff;border-radius:50rpx 0 0 50rpx;font-size:24rpx;color:#ff9000;}
+.sign .header .headerCon .right .iconfont{font-size:33rpx;padding:0 10rpx 0 30rpx;margin-top:5rpx;}
+.sign .wrapper{background-color:#fff;margin:-80rpx 20rpx 0 20rpx;border-radius:15rpx;padding-bottom:80rpx;position:relative;}
+.sign .wrapper .list{padding:0 30rpx;height:240rpx;}
+.sign .wrapper .list .item{font-size:22rpx;color:#8a8886;text-align:center;}
+.sign .wrapper .list .item .rewardTxt{width:74rpx;height:32rpx;background-color:#f4b409;border-radius:16rpx;font-size:20rpx;color:#a57d3f;line-height:32rpx;}
+.sign .wrapper .list .item .num{font-size:30rpx;color:#999;}
+.sign .wrapper .list .item .num.on{color:#ff9000;}
+.sign .wrapper .list .item .venus{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowYWFmYjU3Mi03MGJhLTRiNDctOTI2Yi0zOThlZDkzZDkxMDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RDQ3N0E3RkJEMDFCMTFFODhGODVBOTc1NEM5Nzg2NzkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RDQ3N0E3RkFEMDFCMTFFODhGODVBOTc1NEM5Nzg2NzkiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmRjNTM0MmUtNmFkOC1iMDRhLThjZTEtMjk2YWYzM2FkMmUxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBhYWZiNTcyLTcwYmEtNGI0Ny05MjZiLTM5OGVkOTNkOTEwOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnZClGIAAAT7SURBVHja7JtLcxtFEMdnn1rJUhIrTiS7KLsK/EXwNck3gCMcuUFx4QvACW48buHGMZxJPkiowpjC2LElcKzXSqul/6OdoOB9zezsCCimqmvXtdqd+U33dPf0rq2Tn54zg81KjrGuB75x8FbuddsQWIvkS5IxySA5b5no2DUE94TkKPk7IHmf5JDkUQJdW7MNw623o+Ra698KmAdnDNLeIJwRSHvDcLVDVnYynU771fnLl9eFcLZts+VymQf5iJ6pzfFYJeKgT/IZyTskXdWOPM9jjYbPLMticRyz2Sxk8/lc9XFDksckH1IcDKtq8FOSD6rMIuCCoPHXrBIk/qYDC0MlyO1kTBOSj6uuwXerwPn+63DrrdFo8OsV2ns6nEy3Chwg8lpFyK4OwNrgNGpSvxfFoDzP5etJR8PzsiYETmk+X5BjmpkBrHPGU109TeKqv5X3rT3QQ3ObaPDGRjIZXWZpol+b/cebUUA4iuHw938UoNbk9+zsjP16eqoV4JfjH1uqgLjxe10DiaKIDYZDNqfU7OrqSifjkzxIuwDubV2juLi8ZK7j8oT74uJSJ+BRHqQtC6cS/7A9wtrDvb7v84A9Go2UMyQZSFsWrmz6td4GgyF38a7r8lgGefHiQjnjkYG064ZDmjWktecRnEOCDa9DpjqdTrnUDSk2vJXgsHGdTKa0t5vx/V0Yhvy4WMx5hdf3VqYJDQqTxW+QdmECPM8h8flvPPRFR/QXBEEuKEw9Yz/5AyoDtBkei5zriyw4pGVFmoOHPD7+mQ/ccR1mWzZpyuIacx2Hgzl0FJkIjjBTHBeLiO6LuDZH4zFbRkt63oLt7+8XAmJcIhFP0eTn2C9CgzBTrPjUp7XbW6VSJGjx5OSEBhsz2wGkxc0R967LuukuSWKaFEwMnXJQSL/fZ51Op/QSuL5OdVjY7beFBq2sAlHZ/A8aOTg4YKenv/EBr8Nl5ZUO6jPJRGCg0dJie/d3WbPZlMpPMwpZsN0Y2sOVb7PcOzou22CGe3u7fB3J3Cd+udvvScG9soT0Kt13tAZj4UVRwHmWtZClcj+azX6vxx0GN8ECUFyHjnsEp+KlM8b3TBTKBCDqkA/SIFV20jCbO3duk8OIcgHF7G9ttbinVYFLcTBgeAAP+vc4mAkJVywLibARpZvOjWWA36rApYSI1+DSMhltkJPpRGIyJrXAZeWiWiCnk9kNU4RGl8m5MN1VLFzwWKobLm83kQtZbnMb8lgYJ2aIYH//3g73lEHQ5ECAXYUSu7QWZeCKqmoCcqSyPkQgd8lHbne3uSMRbWenSwNtU476BxtT9oJQOZ3OKKloq6SmmXBlyoZKb3nG4wnXyt1ul9261UkN9ggjvd497mDOz885KGN3pfvKg1OuixY15JCHh2/ymFjUms2AMqD9BFB/qwUQg5ZtrVY9b7H/LxtmZSCbaCr9KgGmpEeG6qpzM2tQBHudb5eKNLfKiUMzgAIyL6uRreHklB9qX4MDlQfLpHUV4AY6AB+rzl4ZyIqa+0aHiX6UlDTwMcK2CqQoEGmEE5+RfFK4N636vWjKh0Cp5ceS38k8JXko8yHQ7W7PXKBPBvYwGegNF4/q12g05mV7HXClqgs1ffEr+/LmaTIx0nCb+uI3U5M64Tadi5aBrBXORLKdB1k7nKndhID8GqUaErze/coEXJ1OJm9CY2bw3wr+FGAAoa6PIUihovYAAAAASUVORK5CYII=');background-repeat:no-repeat;background-size:100% 100%;width:56rpx;height:56rpx;margin:10rpx 0;}
+.sign .wrapper .list .item .venus.venusSelect{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowYWFmYjU3Mi03MGJhLTRiNDctOTI2Yi0zOThlZDkzZDkxMDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzkwRkI4NEFEMDFCMTFFODhDNDdBMDVGOTBBN0U2NTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzkwRkI4NDlEMDFCMTFFODhDNDdBMDVGOTBBN0U2NTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmRjNTM0MmUtNmFkOC1iMDRhLThjZTEtMjk2YWYzM2FkMmUxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBhYWZiNTcyLTcwYmEtNGI0Ny05MjZiLTM5OGVkOTNkOTEwOSIv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');}
+.sign .wrapper .list .item .venus.reward{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAAA4CAYAAAC1+AWFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowYWFmYjU3Mi03MGJhLTRiNDctOTI2Yi0zOThlZDkzZDkxMDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUEyNzZEMjZEMDFCMTFFOEIzQzhEMjMxNjI1NENDQjciIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUEyNzZEMjVEMDFCMTFFOEIzQzhEMjMxNjI1NENDQjciIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmRjNTM0MmUtNmFkOC1iMDRhLThjZTEtMjk2YWYzM2FkMmUxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBhYWZiNTcyLTcwYmEtNGI0Ny05MjZiLTM5OGVkOTNkOTEwOSIv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');width:75rpx;height:56rpx;}
+.sign .wrapper .but{width:400rpx;height:76rpx;font-size:30rpx;line-height:76rpx;color:#fff;border-radius:50rpx;text-align:center;margin:0 auto;}
+.sign .wrapper .but.on{background-color: #999 !important;}
+.sign .wrapper .lock{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAi4AAABECAYAAACmur7KAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowYWFmYjU3Mi03MGJhLTRiNDctOTI2Yi0zOThlZDkzZDkxMDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkY0OEQxQjdEMDFDMTFFODgwMTlGMzZDRjQ3RTkwMTgiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkY0OEQxQjZEMDFDMTFFODgwMTlGMzZDRjQ3RTkwMTgiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmRjNTM0MmUtNmFkOC1iMDRhLThjZTEtMjk2YWYzM2FkMmUxIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjBhYWZiNTcyLTcwYmEtNGI0Ny05MjZiLTM5OGVkOTNkOTEwOSIv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');background-repeat:no-repeat;background-size:100% 100%;width:558rpx;height:68rpx;position:absolute;left:50%;transform: translateX(-50%);bottom:-42rpx;z-index:9;}
+.sign .wrapper2{margin-top:15rpx;padding:73rpx 0 0 0;}
+.sign .wrapper2 .tip{font-size:30rpx;color:#666;text-align:center;}
+.sign .wrapper2 .list2{margin:45rpx 0 49rpx 0;}
+.sign .wrapper2 .list2 .item{width:80rpx;height:116rpx;background-repeat:no-repeat;background-size:100% 100%;color:#fff;font-size:72rpx;text-align:center;line-height:116rpx;margin-right:19rpx;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAB0CAYAAAASLLWNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1YTNlMmVkYy05YmJjLTI3NDYtYThjOS1jM2ZmNzY5ZmJjMjMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MThCMUUxN0YzRTI5MTFFOUEwQ0ZCQzExRjI0NkNGM0UiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MThCMUUxN0UzRTI5MTFFOUEwQ0ZCQzExRjI0NkNGM0UiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NGExMjQxMTgtOWFlZC02NTRkLTgzNjgtOWQ4MmQzNTgxNmYyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjVhM2UyZWRjLTliYmMtMjc0Ni1hOGM5LWMzZmY3NjlmYmMyMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pn8ds/sAAAHJSURBVHja7Na9alNhHMfxvJnegm3cooNzdOhdNJB6FXaog6U3IGgHHfQqSt/uoyK4OJixUjK3S4+U+n/kCRyTQD0nU8nnCz8Ih2f6cJI8zcmg31hQN7aVtxnbyM9WqevYRexb7CR2FitmDzUXAA5jH2JPGyo3ju3FjssPW6XP7dj7fADefMnkKBu1pw87pQPvYm853dvUaK/8Bo7gVUYcTQHTn8NHJpX7lOwS4HbsCY/K9WKvWvmqonptJcCXHGr3IgE+5lC79QS4xqF23RaD5QIIECBAgAIIECBAAQQIEKAAAgQIUAABAgQogAABAhRAgAABCiBAgAAFECBAgAIIECBAAQQI8KHXaT57TsEbCBDgyv4G3v38QcEbCBAgQAEECBCgAAIECFAAAQIEKIAAAQIUQIAAAQogQIAABRAgQIACCBAgQAEECBAgQAQAAQIEqGUArzDUrkiAlxxqd5kAv3Oo3XkCPOVQu9MEeBi7YFG5X8kuARaxNzwqtxu7mV5j0lt4wOS/O8hm/9wD92Of2dzbl2w1d5G+je3ERrExp7mSyXbsdbb6W3My6C863M2Hh7FBrBd7tGJgv/MfxdfYSf7KFrOH/ggwAIarNp6h8hqzAAAAAElFTkSuQmCC');}
+.sign .wrapper2 .list2 .data{font-size:30rpx;color:#232323;}
+.sign .wrapper2 .tip2{font-size:30rpx;color:#999999;padding:0 55rpx;text-align:center;line-height:1.5;}
+.sign .list3{margin:45rpx 37rpx 0 37rpx;border-top:1px dashed #eee;}
+.sign .list3 .item{align-items:center;justify-content:space-between;border-bottom:1px solid #eee;height:130rpx;}
+.sign .list3 .item .name{color:#232323;font-size:30rpx;width:400rpx;}
+.sign .list3 .item .data{font-size:24rpx;color:#bbbbbb;margin-top:9rpx;}
+.sign .list3 .item .num{font-size:36rpx;font-family: 'Guildford Pro';}
+.sign .list3 .loading{font-size:26rpx;color:#282828;height:97rpx;line-height:97rpx;text-align:center;}
+.sign .list3 .loading .iconfont{font-size:25rpx;color:#212121;vertical-align:2rpx;margin-left:10rpx;}
+.sign .signTip{width:644rpx;height:645rpx;position:fixed;top:50%;left:50%;margin-left:-322rpx;margin-top:-322.5rpx;z-index:99;text-align:center;transition:all 0.3s ease-in-out 0s;opacity:0;transform: scale(0);}
+.sign .signTip .signTipLight{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoQAAAKFCAMAAABiNQjYAAAAjVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8DizOFAAAAL3RSTlMABAsHDxMdGRYnKyEvQiQ+OUYzSjZOYFtkUmhteVhVdHCCfoaLkJWZnaGmrLG4xJtLVuIAALjgSURBVHja7NzdkuogEATgNO37P/OZYiFggKO1Q1yw+iMhP7d2DUGJh4iIiIiI/Abqrbklcj8MbyiQ8imo2oGmnRRDuQtyf83gJZGKoNwG46YUSo8yKN8HgHWIWx6VAZz5PG8qhnIXVNqLozpRBOUueJNSKHeBQiguUAjlCyiE4imCUCUUH3/6YJtCKH8H1qDhWP4ArP1swKyJCT8WQq3G+Q7VwoIpQQQBGhCGjF085ktDFUJJ2csNqZ9RVsA3gYcftDZxZ0i7dSWFh21efNvhBq1K3BVSBEurbRRCnPMpqBxupHxgqezBjs92DKGsDtcLlLVWdsCuIQSqYq6xeQN4eo7HmcO9Q5gn9NACxeXl8KXzsqBvfgjx0RDmHJ5NT4dLO+cgeTjuIf2VMASawFfgzmASQ6h3BjZQ1QgMMHXeEEa0ZpthiiVDvHFeTQzh9d1S/ZSyIOQeODBEMnaHS06aYdkj1ge6Sy6yEkS9RbUslCJo3bAGGvjHyafEVdUvd8xlEvMKIfqPh5otLwWpxxXzYdrDWo7dS/cs19EEZWGjmcjPTtYxdFbCglUtbIblyRlsnw/1tzerQR9TDiuBvkr4AudUQhAchDAGUQPygtDDjjAnhHcPxyRAYkhfYi+oXwT7McQWIYwwpr95WA4abCMYUinEB0LIST/MYOiAVjispflCpieE2AW4JyaPENLxcUsIWQGIIU1LllLlD2BfCiF9IXx0Wn1qF3NCWIwzqNcIVtIUwXYgjmaHsLQYvhRJXwgReAWiT8PxOgAOWTRSBukP4cMEEw+2W9cpiwHz14uBerV0cYMSmFJoewXOELbC9dQ7BWeHQrg4HOBIroDlZHYIW4cDYghHMaQyuK5h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');background-repeat:no-repeat;background-size:100% 100%;width:100%;height:100%;}
+.sign .signTip.on{opacity:1;transform: scale(1);}
+.sign .signTip .signTipCon{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaQAAAGkCAMAAABJkqEHAAAC8VBMVEUAAAD1zGTtuVf////tuVf////////3zWX////40Gf40GfxwV33zWXrQC7qtFP0yGHzxWDrQC3rQjDwwFzrOCXsSDb54rLqNyT////sTj3rQjD////3z2frtlXrQzH40WjpslL////1zGTqtFT40WjrQzH99+j76Lr66b7////1znT1zGT1y2TrQzHsTj3qNyTblz30yWL87dL1y2T87M/dl0DdmEHclj7768v66snqyG/////3zWXrQC756MLqx2zdmUH45Lrpxmnzx2HqOCX3zmbblD7qOifrynPemkL45bz979fv04z45r7y2Zvst1balj3pxmj347fhoEbuz4LrRTP66cbfnEP347Xxwl31ymP0ymP24K3x2Jjbkz3akjzrPCn97tT66MTx15brPiz55r/w1ZL24rTqyXHmqk3uvFnzxmDsSjnrtVXqs1Por1DnrU/mrE7jpUnio0jlqEvry3XqtVTpslLosFHtuVfkpkv24bLwwFzvvlvgnkTsTTzz26Hy2p3YlTztu1j03aXz2p/40WjksVbsRzbu0ITszXz98Nny1pTw1ZDu0Ybsy3f03KP03aftzn/szHnoxGP13qjw1I/v0on136r20YDtzn3szHr+8dvoxWXrPSvyxF724LDlZDfsSDfv0YjlqUz40Gfw1pXnrlDXlDzQkDrTkTvsTDv+8t/77MzNjTnnYzf/8+Hnw2DnbD7Vkjvx2Zriokfv1I7vv1zmtlz+8d3636b0pFjocUHtVT/nWjTbjzzqXzn42pjy0IrsxHXqu2bqaEH//fnwekvGiDfjrFLvckPnWDTsSTPUo17bqFvJizjoy5jmvIDftnLQmUzox4TswG71y2nv1ZDu0oj0zXz3xmTXnUzt06Ly2Z3005Dsy4zxzITyyXjju3TYmEPx263kwo3Zrm7frWLcoU/Lk0f9+fL74arkaDfrTTT414j03cD037Xv1qfGjD/76sj20XLopU3pm0vbijrdgTn03sHt0ZrWmiJXAAAALXRSTlMAZkkK+fVV9qr4SGlIBfVpWqqMWllUEOHq4NpTfnvzzMx4dUI948mZkXxhLSxQhf6cAAASvUlEQVR42uzav0orQRTH8Qlh/yQK98KFICQgitx/2uimEI6dWPkEamXt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');background-repeat:no-repeat;background-size:100% 100%;width:420rpx;height:420rpx;margin-top:-700rpx;position:relative;}
+.sign .signTip .signTipCon .state{font-size:34rpx;color:#fff;margin-top:150rpx;}
+.sign .signTip .signTipCon .integral{font-size:30rpx;color:rgba(255,255,255,0.6);margin-top:9rpx;}
+.sign .signTip .signTipCon .signTipBnt{font-size:30rpx;color:#eb4331;width:260rpx;height:76rpx;background-color:#f8d168;border-radius:38rpx;line-height:76rpx;margin:48rpx auto 0 auto;}
diff --git a/view/crmebNewUI/pages/user_sgin_list/index.js b/view/crmebNewUI/pages/user_sgin_list/index.js
new file mode 100644
index 00000000..9dc8b14e
--- /dev/null
+++ b/view/crmebNewUI/pages/user_sgin_list/index.js
@@ -0,0 +1,65 @@
+// pages/sign-record/index.js
+const app=getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '签到记录',
+ 'color': false
+ },
+ loading:false,
+ loadend:false,
+ loadtitle:'加载更多',
+ page:1,
+ limit:8,
+ signList:[],
+ },
+
+ /**
+ *
+ * 授权回调
+ */
+ onLoadFun:function(){
+ this.getSignMoneList();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+
+ /**
+ * 获取签到记录列表
+ */
+ getSignMoneList:function(){
+ var that=this;
+ if(that.data.loading) return;
+ if(that.data.loadend) return;
+ that.setData({loading:true,loadtitle:""});
+ app.baseGet(app.U({ c: 'user_api', a:'get_sign_month_list',q:{page:that.data.page,limit:that.data.limit}}),function(res){
+ var list = res.data.data;
+ var loadend=list.length < that.data.limit;
+ that.data.signList = app.SplitArray(list,that.data.signList);
+ that.setData({
+ signList:that.data.signList,
+ loadend:loadend,
+ loading:false,
+ loadtitle:loadend ? "哼😕~我也是底线的~":"加载更多"
+ });
+ },function(){
+ that.setData({ loading: false, loadtitle:'加载更多'});
+ });
+ },
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+ this.getSignMoneList();
+ },
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_sgin_list/index.json b/view/crmebNewUI/pages/user_sgin_list/index.json
new file mode 100644
index 00000000..e247f085
--- /dev/null
+++ b/view/crmebNewUI/pages/user_sgin_list/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_sgin_list/index.wxml b/view/crmebNewUI/pages/user_sgin_list/index.wxml
new file mode 100644
index 00000000..0d47b8d3
--- /dev/null
+++ b/view/crmebNewUI/pages/user_sgin_list/index.wxml
@@ -0,0 +1,21 @@
+
+
+
+
+ {{item.month}}
+
+
+
+ {{item.title}}
+ {{item.add_time}}
+
+ +{{item.number}}
+
+
+
+
+
+ {{loadtitle}}
+
+
+
diff --git a/view/crmebNewUI/pages/user_sgin_list/index.wxss b/view/crmebNewUI/pages/user_sgin_list/index.wxss
new file mode 100644
index 00000000..e69de29b
diff --git a/view/crmebNewUI/pages/user_spread_code/index.js b/view/crmebNewUI/pages/user_spread_code/index.js
new file mode 100644
index 00000000..77396a06
--- /dev/null
+++ b/view/crmebNewUI/pages/user_spread_code/index.js
@@ -0,0 +1,185 @@
+// pages/distribution-posters/index.js
+const app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '分销海报'
+ },
+ imgUrls: [],
+ indicatorDots: false,
+ circular: false,
+ autoplay: false,
+ interval: 3000,
+ duration: 500,
+ swiperIndex: 0,
+ spreadList:[],
+ userInfo:{},
+ poster:'',
+ },
+ onLoadFun:function(){
+ this.getUserInfo();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+ bindchange(e) {
+ var spreadList = this.data.spreadList;
+ this.setData({
+ swiperIndex: e.detail.current,
+ poster: spreadList[e.detail.current].poster,
+ })
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+ getUserInfo:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'user_api', a:'get_my_user_info'}),function(res){
+ that.setData({userInfo:res.data});
+ });
+ },
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ this.userSpreadBannerList();
+ },
+ savePosterPath: function () {
+ var that = this;
+ wx.downloadFile({
+ url: that.data.poster,
+ success(resFile) {
+ console.log(resFile.tempFilePath)
+ if (resFile.statusCode === 200) {
+ wx.getSetting({
+ success(res) {
+ if (!res.authSetting['scope.writePhotosAlbum']) {
+ wx.authorize({
+ scope: 'scope.writePhotosAlbum',
+ success() {
+ wx.saveImageToPhotosAlbum({
+ filePath: resFile.tempFilePath,
+ success: function (res) {
+ wx.showToast({
+ title: '保存成功',
+ icon: 'success',
+ duration: 1500,
+ })
+ },
+ fail: function (res) {
+ wx.showToast({
+ title: res.errMsg,
+ icon: 'none',
+ duration: 1500,
+ })
+ },
+ complete: function (res) { },
+ })
+ }
+ })
+ } else {
+ wx.saveImageToPhotosAlbum({
+ filePath: resFile.tempFilePath,
+ success: function (res) {
+ wx.showToast({
+ title: '保存成功',
+ icon: 'success',
+ duration: 1500,
+ })
+ },
+ fail: function (res) {
+ wx.showToast({
+ title: res.errMsg,
+ icon: 'none',
+ duration: 1500,
+ })
+ },
+ complete: function (res) { },
+ })
+ }
+ }
+ })
+ }else{
+ wx.showToast({
+ title: resFile.errMsg,
+ icon: 'none',
+ duration: 1000,
+ mask: true,
+ })
+ }
+ },
+ fail(res) {
+ wx.showToast({
+ title: res.errMsg,
+ icon: 'none',
+ duration: 1000,
+ mask: true,
+ })
+ }
+ })
+ },
+ userSpreadBannerList: function () {
+ var that = this;
+ wx.showLoading({
+ title: '获取中',
+ mask: true,
+ })
+ app.baseGet(app.U({ c: 'user_api', a: 'user_spread_banner_list' }), function (res) {
+ wx.hideLoading();
+ that.setData({ spreadList: res.data ,poster: res.data[0].poster});
+ }, function (res) { wx.hideLoading(); });
+ },
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+ set_user_share: function () {
+ app.baseGet(app.U({ c: 'public_api', a: 'set_user_share' }), null, null, true);
+ },
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+ this.set_user_share();
+ return {
+ title: this.data.userInfo.nickname+'-分销海报',
+ imageUrl: this.data.spreadList[0],
+ path: '/pages/index/index?spid=' + this.data.userInfo.uid,
+ };
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_spread_code/index.json b/view/crmebNewUI/pages/user_spread_code/index.json
new file mode 100644
index 00000000..e247f085
--- /dev/null
+++ b/view/crmebNewUI/pages/user_spread_code/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_spread_code/index.wxml b/view/crmebNewUI/pages/user_spread_code/index.wxml
new file mode 100644
index 00000000..60ab65bd
--- /dev/null
+++ b/view/crmebNewUI/pages/user_spread_code/index.wxml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+ 保存海报
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_spread_code/index.wxss b/view/crmebNewUI/pages/user_spread_code/index.wxss
new file mode 100644
index 00000000..9879fbb1
--- /dev/null
+++ b/view/crmebNewUI/pages/user_spread_code/index.wxss
@@ -0,0 +1,6 @@
+page{background-color:#a3a3a3!important;}
+.distribution-posters swiper{width:100%;height:1000rpx;position:relative;margin-top:40rpx;}
+.distribution-posters .slide-image{width:100%;height:100%;margin:0 auto;border-radius:15rpx;}
+.distribution-posters .slide-image.active{transform: none;transition: all 0.2s ease-in 0s;}
+.distribution-posters .slide-image.quiet{ transform: scale(0.8333333);transition: all 0.2s ease-in 0s;}
+.distribution-posters .keep{font-size:30rpx;color:#fff;width:600rpx;height:80rpx;border-radius:50rpx;text-align:center;line-height:80rpx;margin:38rpx auto;}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_spread_money/index.js b/view/crmebNewUI/pages/user_spread_money/index.js
new file mode 100644
index 00000000..121434e6
--- /dev/null
+++ b/view/crmebNewUI/pages/user_spread_money/index.js
@@ -0,0 +1,120 @@
+// pages/commission-details/index.js
+const app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '佣金明细',
+ 'color': true,
+ 'class': '0'
+ },
+ name:'',
+ type:0,
+ page:0,
+ limit:8,
+ recordList:[],
+ recordType:0,
+ recordCount:0,
+ status:false,
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ this.setData({ type: options.type });
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ var type = this.data.type;
+ if (type == 1) {
+ this.setData({ 'parameter.title': '提现记录', name: '提现总额', recordType: 4 });
+ } else if (type == 2) {
+ this.setData({ 'parameter.title': '佣金记录', name: '佣金明细', recordType: 3 });
+ } else {
+ wx.showToast({
+ title: '参数错误',
+ icon: 'none',
+ duration: 1000,
+ mask: true,
+ success: function (res) { setTimeout(function () { wx.navigateBack({ delta: 1, }) }, 1200) },
+ });
+ }
+ this.getRecordList();
+ this.getRecordListCount();
+ },
+ /**
+ * 获取余额使用记录
+ */
+ getRecordList: function () {
+ var that = this;
+ var page = that.data.page;
+ var limit = that.data.limit;
+ var status = that.data.status;
+ var recordType = that.data.recordType;
+ var recordList = that.data.recordList;
+ var recordListNew = [];
+ if (status == true)return ;
+ app.baseGet(app.U({ c: 'user_api', a: 'get_user_bill_list', q: { page: page, limit: limit, type: recordType } }), function (res) {
+ var len = res.data.length;
+ var recordListData = res.data;
+ recordListNew = recordList.concat(recordListData);
+ that.setData({ status: limit > len, page: limit + page, recordList: recordListNew });
+ });
+ },
+ getRecordListCount:function(){
+ var that = this;
+ app.baseGet(app.U({ c: 'user_api', a: 'get_record_list_count', q: { type: that.data.recordType }}), function (res) {
+ that.setData({ recordCount: res.data });
+ });
+ },
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+ this.getRecordList();
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_spread_money/index.json b/view/crmebNewUI/pages/user_spread_money/index.json
new file mode 100644
index 00000000..ed5513eb
--- /dev/null
+++ b/view/crmebNewUI/pages/user_spread_money/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index"
+ },
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_spread_money/index.wxml b/view/crmebNewUI/pages/user_spread_money/index.wxml
new file mode 100644
index 00000000..d78390a2
--- /dev/null
+++ b/view/crmebNewUI/pages/user_spread_money/index.wxml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+ {{item.money}}
+
+
+
+
+ {{child.title}}
+ {{child.add_time}}
+
+ +{{child.number}}
+ -{{child.number}}
+
+
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/user_spread_money/index.wxss b/view/crmebNewUI/pages/user_spread_money/index.wxss
new file mode 100644
index 00000000..9613b014
--- /dev/null
+++ b/view/crmebNewUI/pages/user_spread_money/index.wxss
@@ -0,0 +1,2 @@
+.commission-details .promoterHeader .headerCon .money{font-size:36rpx;}
+.commission-details .promoterHeader .headerCon .money .num{font-family: 'Guildford Pro';}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_spread_user/index.js b/view/crmebNewUI/pages/user_spread_user/index.js
new file mode 100644
index 00000000..d32a842d
--- /dev/null
+++ b/view/crmebNewUI/pages/user_spread_user/index.js
@@ -0,0 +1,96 @@
+// pages/my-promotion/index.js
+const app = getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '我的推广',
+ 'color': true,
+ 'class': '0'
+ },
+ userInfo:[],
+ yesterdayPrice:0.00,
+ isClone:false
+ },
+ onLoadFun:function(){
+ this.getUserInfo();
+ this.yesterdayCommission();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady: function () {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow: function () {
+ if (app.globalData.isLog && this.data.isClone){
+ this.getUserInfo();
+ this.yesterdayCommission();
+ }
+ },
+ /**
+ * 获取个人用户信息
+ */
+ getUserInfo: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'user_api', a: 'my' }), function (res) {
+ that.setData({ userInfo: res.data });
+ });
+ },
+ yesterdayCommission: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'user_api', a: 'yesterday_commission' }), function (res) {
+ that.setData({ yesterdayPrice: res.data });
+ });
+ },
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide: function () {
+ this.setData({isClone:true});
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload: function () {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh: function () {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom: function () {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage: function () {
+
+ }
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_spread_user/index.json b/view/crmebNewUI/pages/user_spread_user/index.json
new file mode 100644
index 00000000..a329c359
--- /dev/null
+++ b/view/crmebNewUI/pages/user_spread_user/index.json
@@ -0,0 +1,7 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "authorize": "/components/authorize/authorize"
+ },
+ "navigationBarTextStyle": "white"
+}
diff --git a/view/crmebNewUI/pages/user_spread_user/index.wxml b/view/crmebNewUI/pages/user_spread_user/index.wxml
new file mode 100644
index 00000000..e493fecd
--- /dev/null
+++ b/view/crmebNewUI/pages/user_spread_user/index.wxml
@@ -0,0 +1,42 @@
+
+
+
+ 立即提现
+
+
+
+ 推广名片
+
+
+
+ 推广人统计
+
+
+
+ 佣金明细
+
+
+
+ 推广人订单
+
+
+
+
+
+
diff --git a/view/crmebNewUI/pages/user_spread_user/index.wxss b/view/crmebNewUI/pages/user_spread_user/index.wxss
new file mode 100644
index 00000000..448f7fb0
--- /dev/null
+++ b/view/crmebNewUI/pages/user_spread_user/index.wxss
@@ -0,0 +1,17 @@
+@import '/css/guildford.wxss';
+.my-promotion .header{background-image:url("data:image/png;base64,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");background-repeat:no-repeat;background-size:100% 100%;width:100%;height:375rpx;}
+.my-promotion .header .name{font-size:30rpx;color:#fff;padding-top:57rpx;position:relative;}
+.my-promotion .header .name .record{font-size:26rpx;color:rgba(255, 255, 255, 0.8);position:absolute;right:20rpx;}
+.my-promotion .header .name .record .iconfont{font-size:25rpx;margin-left:10rpx;vertical-align:2rpx;}
+.my-promotion .header .num{text-align:center;color:#fff;margin-top:28rpx;font-size:90rpx;font-family: 'Guildford Pro';}
+.my-promotion .header .profit{padding:0 20rpx;margin-top:35rpx;font-size:24rpx;color:rgba(255, 255, 255, 0.8);}
+.my-promotion .header .profit .item{min-width:200rpx;text-align:center;}
+.my-promotion .header .profit .item .money{font-size:34rpx;color:#fff;margin-top:5rpx;}
+.my-promotion .bnt{font-size:28rpx;color:#fff;width:258rpx;height:68rpx;border-radius:50rpx;text-align:center;line-height:68rpx;margin:-32rpx auto 0 auto;}
+.my-promotion .list{padding:0 20rpx;margin-top:10rpx;}
+.my-promotion .list .item{width:345rpx;height:240rpx;border-radius:20rpx;background-color:#fff;margin-top:20rpx;font-size:30rpx;color:#666;}
+.my-promotion .list .item .iconfont{font-size:70rpx;
+ background-image:linear-gradient(to right,#fc4d3d 0%,#e93323 100%);
+-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:20rpx;}
+
+
diff --git a/view/crmebNewUI/pages/user_vip/index.js b/view/crmebNewUI/pages/user_vip/index.js
new file mode 100644
index 00000000..499415ab
--- /dev/null
+++ b/view/crmebNewUI/pages/user_vip/index.js
@@ -0,0 +1,117 @@
+// pages/member-center/index.js
+const app=getApp();
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ parameter: {
+ 'navbar': '1',
+ 'return': '1',
+ 'title': '会员中心',
+ 'class':'1',
+ 'color':true
+ },
+ VipList: [],
+ indicatorDots: false,
+ circular: true,
+ autoplay: false,
+ interval: 3000,
+ duration: 500,
+ swiperIndex: 0,
+ growthValue: true,
+ task:[],//任务列表
+ illustrate:'',//任务说明
+ level_id:0,//任务id,
+ host_product:[],
+ },
+ /**
+ * 授权回调
+ */
+ onLoadFun:function(){
+ this.setLeveLComplete();
+ this.get_host_product();
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad: function (options) {
+ var that = this;
+ setTimeout(function () {
+ that.setData({
+ loading: true
+ })
+ }, 500)
+ },
+ /**
+ * 获取我的推荐
+ */
+ get_host_product: function () {
+ var that = this;
+ app.baseGet(app.U({ c: 'public_api', a: "get_hot_product", q: { offset: 1, limit: 4 } }), function (res) {
+ that.setData({ host_product: res.data });
+ });
+ },
+ /**
+ * 会员切换
+ *
+ */
+ bindchange(e) {
+ var index = e.detail.current
+ this.setData({swiperIndex: index,level_id: this.data.VipList[index].id || 0});
+ this.getTask();
+ },
+ /**
+ * 关闭说明
+ */
+ growthValue:function(){
+ this.setData({growthValue: true})
+ },
+ /**
+ * 打开说明
+ */
+ opHelp:function(e){
+ var index = e.currentTarget.dataset.index;
+ this.setData({ growthValue: false, illustrate: this.data.task[index].illustrate});
+ },
+ /**
+ * 设置会员
+ */
+ setLeveLComplete:function(){
+ app.baseGet(app.U({ c: "public_api", a:"set_level_complete"}),function(){
+ this.getVipList();
+ }.bind(this),null,true);
+ },
+ /**
+ * 获取会员等级
+ *
+ */
+ getVipList:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'public_api', a:'get_level_list'}),function(res){
+ that.setData({
+ VipList: res.data.list,
+ task: res.data.task.task,
+ reach_count: res.data.task.reach_count,
+ level_id:res.data.list[0] ? res.data.list[0].id : 0
+ });
+ });
+ },
+ /**
+ * 获取任务要求
+ */
+ getTask:function(){
+ var that=this;
+ app.baseGet(app.U({ c: 'public_api', a: 'get_task', q: { level_id: that.data.level_id}}),function(res){
+ that.setData({ task: res.data.task, reach_count: res.data.reach_count});
+ });
+ },
+
+
+
+
+
+
+
+})
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_vip/index.json b/view/crmebNewUI/pages/user_vip/index.json
new file mode 100644
index 00000000..ab8c498a
--- /dev/null
+++ b/view/crmebNewUI/pages/user_vip/index.json
@@ -0,0 +1,8 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "recommend": "/components/recommend/index",
+ "authorize": "/components/authorize/authorize"
+ },
+ "navigationBarTextStyle": "white"
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_vip/index.wxml b/view/crmebNewUI/pages/user_vip/index.wxml
new file mode 100644
index 00000000..48b6b192
--- /dev/null
+++ b/view/crmebNewUI/pages/user_vip/index.wxml
@@ -0,0 +1,53 @@
+
+
+
+
+
+ 会员升级要求
+ {{reach_count || 0}} /{{task.length || 0}}
+
+
+
+
+ {{item.name}}
+ 已满足条件
+ 未满足条件
+
+
+
+
+
+ {{item.task_type_title}}
+ {{item.new_number || 0}} /{{item.number || 0}}
+
+
+
+
+
+
+
+ {{illustrate}}
+
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/pages/user_vip/index.wxss b/view/crmebNewUI/pages/user_vip/index.wxss
new file mode 100644
index 00000000..d73388c7
--- /dev/null
+++ b/view/crmebNewUI/pages/user_vip/index.wxss
@@ -0,0 +1,40 @@
+.member-center .header{background-color:#232323;width:100%;padding:50rpx 0;}
+.member-center .header swiper{width:100%;height:328rpx;position:relative;}
+.member-center .header swiper-item .memberBg.active{transform: none;transition: all 0.2s ease-in 0s;}
+.member-center .header swiper-item .memberBg.quiet{ transform: scale(0.9);transition: all 0.2s ease-in 0s;}
+.member-center .header swiper-item .memberBg{width:100%;height:328rpx;border-radius:16rpx;color:#fff;position:relative;background-size: 100% 100%}
+/*
+.member-center .header swiper-item .memberBg.gold{background-image: linear-gradient(to right,#e3c072 0%,#cf9e51 100%);}
+.member-center .header swiper-item .memberBg.silver{background-image: linear-gradient(to right,#bebebe 0%,#929292 100%);}
+.member-center .header swiper-item .memberBg.brass{background-image: linear-gradient(to right,#e8cba7 0%,#caaf8f 100%);}
+.member-center .header swiper-item .memberBg.bronze{background-image: linear-gradient(to right,#9ab1c2 0%,#6a8493 100%);}
+.member-center .header swiper-item .memberBg.ordinary{background-image: linear-gradient(to right,#7aa7ed 0%,#6292de 100%);} */
+.member-center .header swiper-item .memberBg image{width:89rpx;height:108rpx;display:block;position:absolute;right:60rpx;}
+.member-center .header swiper-item .memberBg .name{font-size:46rpx;font-weight:bold;padding:40rpx 0 0 35rpx;}
+.member-center .header swiper-item .memberBg .discount{font-size:28rpx;font-weight:bold;margin:15rpx 0 0 35rpx;}
+.member-center .header swiper-item .memberBg .discount .iconfont{margin-left:10rpx;font-size:30rpx;}
+.member-center .header swiper-item .memberBg .nav{margin-top:55rpx;}
+.member-center .header swiper-item .memberBg .nav .item{flex:1;text-align:center;color:rgba(255, 255, 255, 0.6);position:relative;}
+.member-center .header swiper-item .memberBg .nav .item .num{font-size:40rpx;color:#fff;font-family: 'Guildford Pro';}
+.member-center .header swiper-item .memberBg .nav .item~.item::before{position:absolute;width:2rpx;height:32rpx;background-color:rgba(255, 255, 255, 0.6);content:'';left:0;top:50%;transform:translateY(-50%);}
+.member-center .header swiper-item .memberBg .lock{font-size:26rpx;margin:73rpx 0 0 35rpx;}
+.member-center .header swiper-item .memberBg .lock .iconfont{font-size:37rpx;margin-right:15rpx;vertical-align:-4rpx;}
+.member-center .wrapper{background-color:#fff;padding-bottom:16rpx;margin-bottom:20rpx;}
+.member-center .wrapper .title{height:98rpx;padding:0 30rpx;font-size:30rpx;font-weight:bold;color:#282828;}
+.member-center .wrapper .title .iconfont{color:#ffae06;font-weight:normal;font-size:40rpx;margin-right:12rpx;vertical-align:-2rpx;}
+.member-center .wrapper .title .num{font-size:28rpx;color:#999;}
+.member-center .wrapper .title .num .current{color:#ffae06;}
+.member-center .wrapper .list .item{width:690rpx;height:184rpx;background-color:#f9f9f9;margin:0 auto 20rpx auto;padding:27rpx 0 22rpx 0;border-radius:12rpx;box-sizing:border-box;}
+.member-center .wrapper .list .item .top{padding-right:27rpx;font-size:26rpx;color:#999;}
+.member-center .wrapper .list .item .top .name{border-left:6rpx solid #ffae06;padding-left:20rpx;font-size:28rpx;color:#282828;font-weight:bold;}
+.member-center .wrapper .list .item .top .name .iconfont{color:#999;font-size:30rpx;vertical-align:-2rpx;margin-left:10rpx;}
+.member-center .wrapper .list .item .cu-progress {overflow: hidden;height:12rpx;background-color: #eee;width:636rpx;border-radius:20rpx;margin:35rpx auto 0 auto;}
+.member-center .wrapper .list .item .cu-progress .bg-red{width: 0;height: 100%;transition: width 0.6s ease;background-color: #ffaa29;border-radius:20rpx;}
+.member-center .wrapper .list .item .experience{margin-top:17rpx;padding:0 27rpx;font-size:24rpx;color:#999;}
+.member-center .wrapper .list .item .experience .num{color:#ffad07;}
+.member-center .growthValue{background-color:#fff;border-radius:16rpx;position:fixed;top:266rpx;left:50%;width:560rpx;height:740rpx;margin-left:-280rpx;z-index:99;transform:translate3d(0,-200%,0);transition:all .3s cubic-bezier(.25,.5,.5,.9);}
+.member-center .growthValue.on{transform:translate3d(0,0,0);}
+.member-center .growthValue .pictrue{width:100%;height:257rpx;position:relative;}
+.member-center .growthValue .pictrue image{width:100%;height:100%;border-radius:16rpx 16rpx 0 0;}
+.member-center .growthValue .conter{padding:0 35rpx;font-size:30rpx;color:#333;margin-top:58rpx;line-height:1.5;height:350rpx;overflow:auto;}
+.member-center .growthValue .pictrue .iconfont{position:absolute;font-size:65rpx;color:#fff;top:775rpx;left:50%;transform:translateX(-50%);}
diff --git a/view/crmebNewUI/project.config.json b/view/crmebNewUI/project.config.json
new file mode 100644
index 00000000..03b90f34
--- /dev/null
+++ b/view/crmebNewUI/project.config.json
@@ -0,0 +1,217 @@
+{
+ "description": "项目配置文件",
+ "packOptions": {
+ "ignore": []
+ },
+ "setting": {
+ "urlCheck": false,
+ "es6": true,
+ "postcss": true,
+ "minified": true,
+ "newFeature": true,
+ "nodeModules": true,
+ "autoAudits": true,
+ "uglifyFileName": true,
+ "checkInvalidKey": true
+ },
+ "compileType": "miniprogram",
+ "libVersion": "2.6.4",
+ "appid": "wx3b82801238ca1b57",
+ "projectname": "%E5%BC%80%E6%BA%90%E5%B0%8F%E7%A8%8B%E5%BA%8F",
+ "debugOptions": {
+ "hidedInDevtools": []
+ },
+ "isGameTourist": false,
+ "simulatorType": "wechat",
+ "simulatorPluginLibVersion": {},
+ "condition": {
+ "search": {
+ "current": -1,
+ "list": []
+ },
+ "conversation": {
+ "current": -1,
+ "list": []
+ },
+ "plugin": {
+ "current": -1,
+ "list": []
+ },
+ "game": {
+ "currentL": -1,
+ "list": []
+ },
+ "miniprogram": {
+ "current": 23,
+ "list": [
+ {
+ "id": 0,
+ "name": "新闻",
+ "pathName": "pages/news_list/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 1,
+ "name": "提交订单",
+ "pathName": "pages/order_confirm/index",
+ "query": "cartId=432",
+ "scene": null
+ },
+ {
+ "id": 2,
+ "name": "订单详情",
+ "pathName": "pages/order_details/index",
+ "query": "cartId=444",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "订单列表",
+ "pathName": "pages/order_list/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "积分",
+ "pathName": "pages/user_integral/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "用户资金页面",
+ "pathName": "pages/user_money/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "用户优惠券页面",
+ "pathName": "pages/user_coupon/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "会员中心",
+ "pathName": "pages/user_vip/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "地址添加/编辑",
+ "pathName": "pages/user_address/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "签到",
+ "pathName": "pages/user_sgin/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 10,
+ "name": "砍价详情",
+ "pathName": "pages/activity/goods_bargain_details/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 11,
+ "name": "砍价记录",
+ "pathName": "pages/activity/user_goods_bargain_list/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 12,
+ "name": "限时抢购",
+ "pathName": "pages/activity/goods_seckill/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 13,
+ "name": "拼团列表",
+ "pathName": "pages/activity/goods_combination/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "签到",
+ "pathName": "pages/user_sgin/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "商品详情",
+ "pathName": "pages/goods_details/index",
+ "query": "id=10",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "商品评价",
+ "pathName": "pages/goods_comment_list/index",
+ "query": "product_id=1",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "地址管理",
+ "pathName": "pages/user_address_list/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "账单明细",
+ "pathName": "pages/user_bill/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "积分详情",
+ "pathName": "pages/user_integral/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "积分详情",
+ "pathName": "pages/user_integral/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": 21,
+ "name": "拼团",
+ "pathName": "pages/activity/goods_combination_status/index",
+ "query": "id=7",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "个人",
+ "pathName": "pages/user_info/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "id": -1,
+ "name": "体现",
+ "pathName": "pages/user_cash/index",
+ "scene": null
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/sitemap.json b/view/crmebNewUI/sitemap.json
new file mode 100644
index 00000000..ca02add2
--- /dev/null
+++ b/view/crmebNewUI/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/view/crmebNewUI/utils/util.js b/view/crmebNewUI/utils/util.js
new file mode 100644
index 00000000..eff96f7a
--- /dev/null
+++ b/view/crmebNewUI/utils/util.js
@@ -0,0 +1,502 @@
+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 $h={
+ //除法函数,用来得到精确的除法结果
+ //说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
+ //调用:$h.Div(arg1,arg2)
+ //返回值:arg1除以arg2的精确结果
+ Div:function (arg1, arg2) {
+ arg1 = parseFloat(arg1);
+ arg2 = parseFloat(arg2);
+ var t1 = 0, t2 = 0, r1, r2;
+ try { t1 = arg1.toString().split(".")[1].length; } catch (e) { }
+ try { t2 = arg2.toString().split(".")[1].length; } catch (e) { }
+ r1 = Number(arg1.toString().replace(".", ""));
+ r2 = Number(arg2.toString().replace(".", ""));
+ return (r1 / r2) * Math.pow(10, t2 - t1);
+ },
+ //加法函数,用来得到精确的加法结果
+ //说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
+ //调用:$h.Add(arg1,arg2)
+ //返回值:arg1加上arg2的精确结果
+ Add: function (arg1, arg2) {
+ arg2 = parseFloat(arg2);
+ var r1, r2, m;
+ try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
+ try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
+ m = Math.pow(100, Math.max(r1, r2));
+ return (this.Mul(arg1, m) + this.Mul(arg2, m)) / m;
+ },
+ //减法函数,用来得到精确的减法结果
+ //说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的减法结果。
+ //调用:$h.Sub(arg1,arg2)
+ //返回值:arg1减去arg2的精确结果
+ Sub: function (arg1, arg2) {
+ arg1 = parseFloat(arg1);
+ arg2 = parseFloat(arg2);
+ var r1, r2, m, n;
+ try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
+ try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
+ m = Math.pow(10, Math.max(r1, r2));
+ //动态控制精度长度
+ n = (r1 >= r2) ? r1 : r2;
+ return ((this.Mul(arg1, m) - this.Mul(arg2, m)) / m).toFixed(n);
+ },
+ //乘法函数,用来得到精确的乘法结果
+ //说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
+ //调用:$h.Mul(arg1,arg2)
+ //返回值:arg1乘以arg2的精确结果
+ Mul: function (arg1, arg2) {
+ arg1 = parseFloat(arg1);
+ arg2 = parseFloat(arg2);
+ var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
+ try { m += s1.split(".")[1].length } catch (e) { }
+ try { m += s2.split(".")[1].length } catch (e) { }
+ return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
+ },
+}
+
+const formatNumber = n => {
+ n = n.toString()
+ return n[1] ? n : '0' + n
+}
+
+/**
+ * 处理服务器扫码带进来的参数
+ * @param string param 扫码携带参数
+ * @param string k 整体分割符 默认为:&
+ * @param string p 单个分隔符 默认为:=
+ * @return object
+ *
+*/
+const getUrlParams = (param,k,p) => {
+ if (typeof param!='string') return {};
+ k = k ? k : '&';//整体参数分隔符
+ p = p ? p : '=';//单个参数分隔符
+ var value = {};
+ if (param.indexOf(k) !== -1) {
+ param = param.split(k);
+ for (var val in param) {
+ if (param[val].indexOf(p) !== -1) {
+ var item = param[val].split(p);
+ value[item[0]] = item[1];
+ }
+ }
+ }else
+ {
+ var item = param.split(p);
+ value[item[0]] = item[1];
+ }
+ return value;
+}
+/*
+* post网络请求
+* @param string | object 请求地址
+* @param object data POST请求数组
+* @param callable successCallback 成功执行方法
+* @param callable errorCallback 失败执行方法
+*/
+const basePost = function (url, data, successCallback, errorCallback, header) {
+ if (typeof url == 'object') url = U(url);
+ wx.request({
+ url: url,
+ data: data,
+ dataType : 'json',
+ method: 'POST',
+ header: header,
+ success: function (res) {
+ try{
+ if (res.data.code == 200) {
+ successCallback && successCallback(res.data);
+ } else {
+ if (res.data.code == 402) getApp().globalData.token = '', getApp().globalData.isLog = false;
+ //返回状态为401时,用户被禁止访问 关闭当前所有页面跳转至用户禁止登录页面
+ if (res.data.code == 401) return Tips({ title: res.data.msg});
+ errorCallback && errorCallback(res.data);
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }, fail: function (res) {
+ errorCallback && errorCallback(res);
+ },
+ complete: function (res) {
+
+ }
+ });
+}
+/*
+* get网络请求
+* @param string | object 请求地址
+* @param callable successCallback 成功执行方法
+* @param callable errorCallback 失败执行方法
+* @param boolean isMsg 是否自动提示错误 默认提示
+*/
+const baseGet = function (url, successCallback, errorCallback, isMsg, header) {
+ if (typeof url == 'object') url = U(url);
+ wx.request({
+ url: url,
+ dataType : 'json',
+ method: 'GET',
+ header: header,
+ success: function (res) {
+ try{
+ if (res.data.code == 200) {
+ successCallback && successCallback(res.data);
+ } else {
+ if (res.data.code == 402) getApp().globalData.token = '', getApp().globalData.isLog=false;
+ //返回状态为401时,用户被禁止访问 关闭当前所有页面跳转至用户禁止登录页面
+ if (res.data.code == 401) return Tips({ title: res.data.msg });
+ errorCallback && errorCallback(res.data);
+ isMsg || Tips({ title: res.data.msg });
+ }
+ } catch (e) {
+ console.log(e);
+ }
+ }, fail: function (res) {
+ console.log('submit fail');
+ },
+ complete: function (res) {
+
+ }
+ });
+}
+/*
+* 组装URl
+*@param object opt
+*/
+const U = function (opt, url) {
+ var m = opt.m || 'ebapi', c = opt.c || 'auth_api', a = opt.a || 'index', q = opt.q || '',
+ p = opt.p || {}, params = '', gets = '';
+ if (url == undefined) url=getApp().globalData.url;
+ params = Object.keys(p).map(function (key) {
+ return key + '/' + p[key];
+ }).join('/');
+ gets = Object.keys(q).map(function (key) {
+ return key + '=' + q[key];
+ }).join('&');
+ return url + '/' + m + '/' + c + '/' + a + (params == '' ? '' : '/' + params) +'.html'+ (gets == '' ? '' : '?' + gets);
+}
+/*
+* 合并数组
+*/
+const SplitArray= function (list, sp) {
+ if (typeof list != 'object') return [];
+ if (sp === undefined) sp = [];
+ for (var i = 0; i < list.length; i++) {
+ sp.push(list[i]);
+ }
+ return sp;
+}
+
+ /**
+ * opt object | string
+ * to_url object | string
+ * 例:
+ * this.Tips('/pages/test/test'); 跳转不提示
+ * this.Tips({title:'提示'},'/pages/test/test'); 提示并跳转
+ * this.Tips({title:'提示'},{tab:1,url:'/pages/index/index'}); 提示并跳转值table上
+ * tab=1 一定时间后跳转至 table上
+ * tab=2 一定时间后跳转至非 table上
+ * tab=3 一定时间后返回上页面
+ * tab=4 关闭所有页面跳转至非table上
+ * tab=5 关闭当前页面跳转至table上
+ */
+const Tips= function (opt, to_url) {
+ if (typeof opt == 'string') {
+ to_url = opt;
+ opt = {};
+ }
+ var title = opt.title || '', icon = opt.icon || 'none', endtime = opt.endtime || 2000;
+ if (title) wx.showToast({ title: title, icon: icon, duration: endtime })
+ if (to_url != undefined) {
+ if (typeof to_url == 'object') {
+ var tab = to_url.tab || 1, url = to_url.url || '';
+ switch (tab) {
+ case 1:
+ //一定时间后跳转至 table
+ setTimeout(function () {
+ wx.switchTab({
+ url: url
+ })
+ }, endtime);
+ break;
+ case 2:
+ //跳转至非table页面
+ setTimeout(function () {
+ wx.navigateTo({
+ url: url,
+ })
+ }, endtime);
+ break;
+ case 3:
+ //返回上页面
+ setTimeout(function () {
+ wx.navigateBack({
+ delta: parseInt(url),
+ })
+ }, endtime);
+ break;
+ case 4:
+ //关闭当前所有页面跳转至非table页面
+ setTimeout(function () {
+ wx.reLaunch({
+ url: url,
+ })
+ }, endtime);
+ break;
+ case 5:
+ //关闭当前页面跳转至非table页面
+ setTimeout(function () {
+ wx.redirectTo({
+ url: url,
+ })
+ }, endtime);
+ break;
+ }
+
+ }else if(typeof to_url == 'function'){
+ setTimeout(function () {
+ to_url && to_url();
+ }, endtime);
+ }else{
+ //没有提示时跳转不延迟
+ setTimeout(function () {
+ wx.navigateTo({
+ url: to_url,
+ })
+ }, title ? endtime : 0);
+ }
+ }
+}
+/*
+* 单图上传
+* @param object opt
+* @param callable successCallback 成功执行方法 data
+* @param callable errorCallback 失败执行方法
+*/
+const uploadImageOne=function (opt, successCallback, errorCallback) {
+ if (typeof opt === 'string') {
+ var url = opt;
+ opt = {};
+ opt.url = url;
+ }
+ var count = opt.count || 1, sizeType = opt.sizeType || ['compressed'], sourceType = opt.sourceType || ['album', 'camera'],
+ is_load = opt.is_load || true, uploadUrl = opt.url || '', inputName = opt.name || 'pics';
+ wx.chooseImage({
+ count: count, //最多可以选择的图片总数
+ sizeType: sizeType, // 可以指定是原图还是压缩图,默认二者都有
+ sourceType: sourceType, // 可以指定来源是相册还是相机,默认二者都有
+ success: function (res) {
+ //启动上传等待中...
+ wx.showLoading({
+ title: '图片上传中',
+ })
+ wx.uploadFile({
+ url: uploadUrl,
+ filePath: res.tempFilePaths[0],
+ name: inputName,
+ formData: {
+ 'filename': inputName
+ },
+ header: {
+ "Content-Type": "multipart/form-data",
+ token: getApp().globalData.token
+ },
+ success: function (res) {
+ wx.hideLoading();
+ if (res.statusCode == 403) {
+ Tips({ title: res.data });
+ } else {
+ var data = res.data ? JSON.parse(res.data) : {};
+ if (data.code == 200) {
+ successCallback && successCallback(data)
+ } else {
+ errorCallback && errorCallback(data);
+ Tips({ title: data.msg });
+ }
+ }
+ }, fail: function (res) {
+ wx.hideLoading();
+ Tips({ title: '上传图片失败' });
+ }
+ })
+ }
+ })
+}
+
+/**
+ * 移除数组中的某个数组并组成新的数组返回
+ * @param array array 需要移除的数组
+ * @param int index 需要移除的数组的键值
+ * @param string | int 值
+ * @return array
+ *
+*/
+const ArrayRemove= (array,index,value) =>{
+ const valueArray=[];
+ if (array instanceof Array){
+ for (let i = 0; i < array.length;i++){
+ if (typeof index == 'number' && array[index] != i){
+ valueArray.push(array[i]);
+ } else if (typeof index == 'string' && array[i][index] != value){
+ valueArray.push(array[i]);
+ }
+ }
+ }
+ return valueArray;
+}
+ /**
+ * 生成海报获取文字
+ * @param string text 为传入的文本
+ * @param int num 为单行显示的字节长度
+ * @return array
+ */
+const textByteLength = (text, num) =>{
+ let strLength = 0;
+ let rows = 1;
+ let str = 0;
+ let arr = [];
+ for (let j = 0; j < text.length; j++) {
+ if (text.charCodeAt(j) > 255) {
+ strLength += 2;
+ if (strLength > rows * num) {
+ strLength++;
+ arr.push(text.slice(str, j));
+ str = j;
+ rows++;
+ }
+ } else {
+ strLength++;
+ if (strLength > rows * num) {
+ arr.push(text.slice(str, j));
+ str = j;
+ rows++;
+ }
+ }
+ }
+ arr.push(text.slice(str, text.length));
+ return [strLength, arr, rows] // [处理文字的总字节长度,每行显示内容的数组,行数]
+}
+
+/**
+ * 获取分享海报
+ * @param array arr2 海报素材
+ * @param string store_name 素材文字
+ * @param string price 价格
+ * @param function successFn 回调函数
+ *
+ *
+*/
+const PosterCanvas = (arr2, store_name, price,successFn) =>{
+ wx.showLoading({ title: '海报生成中', mask: true });
+ const ctx = wx.createCanvasContext('myCanvas');
+ ctx.clearRect(0, 0, 0, 0);
+ /**
+ * 只能获取合法域名下的图片信息,本地调试无法获取
+ *
+ */
+ wx.getImageInfo({
+ src: arr2[0],
+ success: function (res) {
+ console.log(res);
+ const WIDTH = res.width;
+ const HEIGHT = res.height;
+ ctx.drawImage(arr2[0], 0, 0, WIDTH, HEIGHT);
+ ctx.drawImage(arr2[1], 0, 0, WIDTH, WIDTH);
+ ctx.save();
+ let r = 90;
+ let d = r * 2;
+ let cx = 40;
+ let cy = 990;
+ ctx.arc(cx + r, cy + r, r, 0, 2 * Math.PI);
+ ctx.clip();
+ ctx.drawImage(arr2[2], cx, cy, d, d);
+ ctx.restore();
+ const CONTENT_ROW_LENGTH = 40;
+ let [contentLeng, contentArray, contentRows] = textByteLength(store_name, CONTENT_ROW_LENGTH);
+ ctx.setTextAlign('center');
+ ctx.setFontSize(32);
+ let contentHh = 32 * 1.3;
+ for (let m = 0; m < contentArray.length; m++) {
+ ctx.fillText(contentArray[m], WIDTH / 2, 820 + contentHh * m);
+ }
+ ctx.setTextAlign('center')
+ ctx.setFontSize(48);
+ ctx.setFillStyle('red');
+ ctx.fillText('¥' + price, WIDTH / 2, 860 + contentHh);
+ ctx.draw(true, function () {
+ wx.canvasToTempFilePath({
+ canvasId: 'myCanvas',
+ fileType: 'png',
+ destWidth: WIDTH,
+ destHeight: HEIGHT,
+ success: function (res) {
+ wx.hideLoading();
+ successFn && successFn(res.tempFilePath);
+ }
+ })
+ });
+ },
+ fail:function(){
+ wx.hideLoading();
+ Tips({title:'无法获取图片信息'});
+ }
+ })
+}
+
+/**
+ * 数字变动动画效果
+ * @param float BaseNumber 原数字
+ * @param float ChangeNumber 变动后的数字
+ * @param object that 当前this
+ * @param string name 变动字段名称
+ * */
+const AnimationNumber = (BaseNumber,ChangeNumber,that,name) => {
+ var difference = $h.Sub(ChangeNumber,BaseNumber) //与原数字的差
+ var absDifferent = Math.abs(difference) //差取绝对值
+ var changeTimes = absDifferent < 6 ? absDifferent : 6 //最多变化6次
+ var changeUnit = absDifferent < 6 ? 1 : Math.floor(difference/6);
+ // 依次变化
+ for (var i = 0; i < changeTimes; i += 1) {
+ // 使用闭包传入i值,用来判断是不是最后一次变化
+ (function (i) {
+ setTimeout(() => {
+ that.setData({
+ [name]: $h.Add(BaseNumber,changeUnit)
+ })
+ // 差值除以变化次数时,并不都是整除的,所以最后一步要精确设置新数字
+ if (i == changeTimes - 1) {
+ that.setData({
+ [name]: $h.Add(BaseNumber, difference)
+ })
+ }
+ }, 100 * (i + 1))
+ })(i)
+ }
+}
+
+
+module.exports = {
+ formatTime: formatTime,
+ $h:$h,
+ Tips: Tips,
+ uploadImageOne: uploadImageOne,
+ basePost: basePost,
+ SplitArray: SplitArray,
+ U:U,
+ baseGet: baseGet,
+ ArrayRemove: ArrayRemove,
+ PosterCanvas: PosterCanvas,
+ AnimationNumber: AnimationNumber,
+ getUrlParams: getUrlParams
+}
diff --git a/view/crmebNewUI/utils/wxh.js b/view/crmebNewUI/utils/wxh.js
new file mode 100644
index 00000000..5c681cf3
--- /dev/null
+++ b/view/crmebNewUI/utils/wxh.js
@@ -0,0 +1,154 @@
+//购物车减
+var carmin = function (that){
+ var num = that.data.num;
+ // 如果大于1时,才可以减
+ if (num > 1) {
+ num--;
+ }
+ // 只有大于一件的时候,才能normal状态,否则disable状态
+ var minusStatus = num <= 1 ? 'disabled' : 'normal';
+ // 将数值与状态写回
+ that.setData({
+ num: num,
+ minusStatus: minusStatus
+ });
+}
+//返回首页
+var home = function (that, e) {
+ if (e.touches[0].clientY < 500 && e.touches[0].clientY > 0) {
+ that.setData({
+ top: e.touches[0].clientY
+ })
+ }
+}
+//购物车加
+var carjia = function(that){
+ var num = that.data.num;
+ // 不作过多考虑自增1
+ num++;
+ // 只有大于一件的时候,才能normal状态,否则disable状态
+ var minusStatus = num < 1 ? 'disabled' : 'normal';
+ // 将数值与状态写回
+ that.setData({
+ num: num,
+ minusStatus: minusStatus
+ });
+}
+
+//倒计时;
+var time = function (timeStamp, that) {
+ var interval = null,totalSecond = timeStamp - Date.parse(new Date()) / 1000;
+ interval = setInterval(function () {
+ // 秒数
+ var second = totalSecond;
+
+ // 小时位
+ var hr = Math.floor(second / 3600);
+ var hrStr = hr.toString();
+ if (hrStr.length == 1) hrStr = '0' + hrStr;
+
+ // 分钟位
+ var min = Math.floor((second - hr * 3600) / 60);
+ var minStr = min.toString();
+ if (minStr.length == 1) minStr = '0' + minStr;
+
+ // 秒位
+ var sec = second - hr * 3600 - min * 60;
+ var secStr = sec.toString();
+ if (secStr.length == 1) secStr = '0' + secStr;
+ that.setData({
+ countDownHour: hrStr,
+ countDownMinute: minStr,
+ countDownSecond: secStr,
+ });
+ totalSecond--;
+ if (totalSecond <= 0) {
+ clearInterval(interval);
+ wx.showToast({
+ title: '活动已结束',
+ icon: 'none',
+ duration: 1000,
+ mask: true,
+ })
+ that.setData({
+ countDownHour: '00',
+ countDownMinute: '00',
+ countDownSecond: '00',
+ });
+ }
+ }.bind(that), 1000);
+ that.setData({ interval: interval});
+}
+
+//倒计时2;
+var time2 = function (timeStamp, that) {
+ var totalSecond = timeStamp - Date.parse(new Date()) / 1000;
+ var interval = setInterval(function () {
+ // 秒数
+ var second = totalSecond;
+ // // 天数位
+ var day = Math.floor(second / 3600 / 24);
+ var dayStr = day.toString();
+ if (dayStr.length == 1) dayStr = '0' + dayStr;
+ // 小时位
+ var hr = Math.floor((second - day * 3600 * 24) / (60 * 60));
+ var hrStr = hr.toString();
+ if (hrStr.length == 1) hrStr = '0' + hrStr;
+
+ // 分钟位
+ // var min = Math.floor((second - hr * 3600) / 60);
+ var min = Math.floor((second - day * 3600 * 24 - hr * 3600) / 60);
+ var minStr = min.toString();
+ if (minStr.length == 1) minStr = '0' + minStr;
+
+ // 秒位
+ // var sec = second - hrNew * 3600 - min * 60;
+ var sec = Math.floor(second - day * 3600 * 24 - hr * 3600 - min * 60);
+ var secStr = sec.toString();
+ if (secStr.length == 1) secStr = '0' + secStr;
+
+ that.setData({
+ countDownDay: dayStr,
+ countDownHour: hrStr,
+ countDownMinute: minStr,
+ countDownSecond: secStr,
+ });
+ totalSecond--;
+ if (totalSecond <= 0) {
+ clearInterval(interval);
+ wx.showToast({
+ title: '活动已结束',
+ });
+ that.setData({
+ countDownDay: '00',
+ countDownHour: '00',
+ countDownMinute: '00',
+ countDownSecond: '00',
+ });
+ }
+ }.bind(that), 1000);
+ that.setData({ interval: interval});
+}
+var footan = function(that){
+ that.setData({
+ prostatus: true,
+ show: false
+ })
+}
+var tapsize = function(that,e){
+ var $indexs = e.target.dataset.indexs;//内
+ var $index = e.target.dataset.index;//外
+ that.setData({
+ taberindexs: $indexs,
+ taberindex: $index
+ })
+}
+module.exports = {
+ carmin: carmin,
+ carjia: carjia,
+ time: time,
+ footan: footan,
+ tapsize: tapsize,
+ home: home,
+ time2: time2
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/wxParse/html2json.js b/view/crmebNewUI/wxParse/html2json.js
new file mode 100644
index 00000000..a84b9709
--- /dev/null
+++ b/view/crmebNewUI/wxParse/html2json.js
@@ -0,0 +1,303 @@
+/**
+ * html2Json 改造来自: https://github.com/Jxck/html2json
+ *
+ *
+ * author: Di (微信小程序开发工程师)
+ * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com)
+ * 垂直微信小程序开发交流社区
+ *
+ * github地址: https://github.com/icindy/wxParse
+ *
+ * for: 微信小程序富文本解析
+ * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184
+ */
+
+var __placeImgeUrlHttps = "https";
+var __emojisReg = '';
+var __emojisBaseSrc = '';
+var __emojis = {};
+var wxDiscode = require('./wxDiscode.js');
+var HTMLParser = require('./htmlparser.js');
+// Empty Elements - HTML 5
+var empty = makeMap("area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr");
+// Block Elements - HTML 5
+var block = makeMap("br,a,code,address,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video");
+
+// Inline Elements - HTML 5
+var inline = makeMap("abbr,acronym,applet,b,basefont,bdo,big,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var");
+
+// Elements that you can, intentionally, leave open
+// (and which close themselves)
+var closeSelf = makeMap("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");
+
+// Attributes that have their values filled in disabled="disabled"
+var fillAttrs = makeMap("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected");
+
+// Special Elements (can contain anything)
+var special = makeMap("wxxxcode-style,script,style,view,scroll-view,block");
+function makeMap(str) {
+ var obj = {}, items = str.split(",");
+ for (var i = 0; i < items.length; i++)
+ obj[items[i]] = true;
+ return obj;
+}
+
+function q(v) {
+ return '"' + v + '"';
+}
+
+function removeDOCTYPE(html) {
+ return html
+ .replace(/<\?xml.*\?>\n/, '')
+ .replace(/<.*!doctype.*\>\n/, '')
+ .replace(/<.*!DOCTYPE.*\>\n/, '');
+}
+
+function trimHtml(html) {
+ return html
+ .replace(/\r?\n+/g, '')
+ .replace(//ig, '')
+ .replace(/\/\*.*?\*\//ig, '')
+ .replace(/[ ]+
+ // add to parents
+ var parent = bufArray[0] || results;
+ if (parent.nodes === undefined) {
+ parent.nodes = [];
+ }
+ parent.nodes.push(node);
+ } else {
+ bufArray.unshift(node);
+ }
+ },
+ end: function (tag) {
+ //debug(tag);
+ // merge into parent tag
+ var node = bufArray.shift();
+ if (node.tag !== tag) console.error('invalid state: mismatch end tag');
+
+ //当有缓存source资源时于于video补上src资源
+ if(node.tag === 'video' && results.source){
+ node.attr.src = results.source;
+ delete results.source;
+ }
+
+ if (bufArray.length === 0) {
+ results.nodes.push(node);
+ } else {
+ var parent = bufArray[0];
+ if (parent.nodes === undefined) {
+ parent.nodes = [];
+ }
+ parent.nodes.push(node);
+ }
+ },
+ chars: function (text) {
+ //debug(text);
+ var node = {
+ node: 'text',
+ text: text,
+ textArray:transEmojiStr(text)
+ };
+
+ if (bufArray.length === 0) {
+ node.index = index.toString()
+ index += 1
+ results.nodes.push(node);
+ } else {
+ var parent = bufArray[0];
+ if (parent.nodes === undefined) {
+ parent.nodes = [];
+ }
+ node.index = parent.index + '.' + parent.nodes.length
+ parent.nodes.push(node);
+ }
+ },
+ comment: function (text) {
+ //debug(text);
+ // var node = {
+ // node: 'comment',
+ // text: text,
+ // };
+ // var parent = bufArray[0];
+ // if (parent.nodes === undefined) {
+ // parent.nodes = [];
+ // }
+ // parent.nodes.push(node);
+ },
+ });
+ return results;
+};
+
+function transEmojiStr(str){
+ // var eReg = new RegExp("["+__reg+' '+"]");
+// str = str.replace(/\[([^\[\]]+)\]/g,':$1:')
+
+ var emojiObjs = [];
+ //如果正则表达式为空
+ if(__emojisReg.length == 0 || !__emojis){
+ var emojiObj = {}
+ emojiObj.node = "text";
+ emojiObj.text = str;
+ array = [emojiObj];
+ return array;
+ }
+ //这个地方需要调整
+ str = str.replace(/\[([^\[\]]+)\]/g,':$1:')
+ var eReg = new RegExp("[:]");
+ var array = str.split(eReg);
+ for(var i = 0; i < array.length; i++){
+ var ele = array[i];
+ var emojiObj = {};
+ if(__emojis[ele]){
+ emojiObj.node = "element";
+ emojiObj.tag = "emoji";
+ emojiObj.text = __emojis[ele];
+ emojiObj.baseSrc= __emojisBaseSrc;
+ }else{
+ emojiObj.node = "text";
+ emojiObj.text = ele;
+ }
+ emojiObjs.push(emojiObj);
+ }
+
+ return emojiObjs;
+}
+
+function emojisInit(reg='',baseSrc="/wxParse/emojis/",emojis){
+ __emojisReg = reg;
+ __emojisBaseSrc=baseSrc;
+ __emojis=emojis;
+}
+
+module.exports = {
+ html2json: html2json,
+ emojisInit:emojisInit
+};
+
diff --git a/view/crmebNewUI/wxParse/htmlparser.js b/view/crmebNewUI/wxParse/htmlparser.js
new file mode 100644
index 00000000..811ddacf
--- /dev/null
+++ b/view/crmebNewUI/wxParse/htmlparser.js
@@ -0,0 +1,192 @@
+/**
+ *
+ * htmlParser改造自: https://github.com/blowsie/Pure-JavaScript-HTML5-Parser
+ *
+ * author: Di (微信小程序开发工程师)
+ * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com)
+ * 垂直微信小程序开发交流社区
+ *
+ * github地址: https://github.com/icindy/wxParse
+ *
+ * for: 微信小程序富文本解析
+ * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184
+ */
+// Regular Expressions for parsing tags and attributes
+var startTag = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/,
+ endTag = /^<\/([-A-Za-z0-9_]+)[^>]*>/,
+ attr = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g;
+
+// Empty Elements - HTML 5
+var empty = makeMap("area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr");
+
+// Block Elements - HTML 5
+var block = makeMap("a,address,code,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,ins,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video");
+
+// Inline Elements - HTML 5
+var inline = makeMap("abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var");
+
+// Elements that you can, intentionally, leave open
+// (and which close themselves)
+var closeSelf = makeMap("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");
+
+// Attributes that have their values filled in disabled="disabled"
+var fillAttrs = makeMap("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected");
+
+// Special Elements (can contain anything)
+var special = makeMap("wxxxcode-style,script,style,view,scroll-view,block");
+
+function HTMLParser(html, handler) {
+ var index, chars, match, stack = [], last = html;
+ stack.last = function () {
+ return this[this.length - 1];
+ };
+
+ while (html) {
+ chars = true;
+
+ // Make sure we're not in a script or style element
+ if (!stack.last() || !special[stack.last()]) {
+
+ // Comment
+ if (html.indexOf("");
+
+ if (index >= 0) {
+ if (handler.comment)
+ handler.comment(html.substring(4, index));
+ html = html.substring(index + 3);
+ chars = false;
+ }
+
+ // end tag
+ } else if (html.indexOf("") == 0) {
+ match = html.match(endTag);
+
+ if (match) {
+ html = html.substring(match[0].length);
+ match[0].replace(endTag, parseEndTag);
+ chars = false;
+ }
+
+ // start tag
+ } else if (html.indexOf("<") == 0) {
+ match = html.match(startTag);
+
+ if (match) {
+ html = html.substring(match[0].length);
+ match[0].replace(startTag, parseStartTag);
+ chars = false;
+ }
+ }
+
+ if (chars) {
+ index = html.indexOf("<");
+ var text = ''
+ while (index === 0) {
+ text += "<";
+ html = html.substring(1);
+ index = html.indexOf("<");
+ }
+ text += index < 0 ? html : html.substring(0, index);
+ html = index < 0 ? "" : html.substring(index);
+
+ if (handler.chars)
+ handler.chars(text);
+ }
+
+ } else {
+
+ html = html.replace(new RegExp("([\\s\\S]*?)<\/" + stack.last() + "[^>]*>"), function (all, text) {
+ text = text.replace(/|/g, "$1$2");
+ if (handler.chars)
+ handler.chars(text);
+
+ return "";
+ });
+
+
+ parseEndTag("", stack.last());
+ }
+
+ if (html == last)
+ throw "Parse Error: " + html;
+ last = html;
+ }
+
+ // Clean up any remaining tags
+ parseEndTag();
+
+ function parseStartTag(tag, tagName, rest, unary) {
+ tagName = tagName.toLowerCase();
+
+ if (block[tagName]) {
+ while (stack.last() && inline[stack.last()]) {
+ parseEndTag("", stack.last());
+ }
+ }
+
+ if (closeSelf[tagName] && stack.last() == tagName) {
+ parseEndTag("", tagName);
+ }
+
+ unary = empty[tagName] || !!unary;
+
+ if (!unary)
+ stack.push(tagName);
+
+ if (handler.start) {
+ var attrs = [];
+
+ rest.replace(attr, function (match, name) {
+ var value = arguments[2] ? arguments[2] :
+ arguments[3] ? arguments[3] :
+ arguments[4] ? arguments[4] :
+ fillAttrs[name] ? name : "";
+
+ attrs.push({
+ name: name,
+ value: value,
+ escaped: value.replace(/(^|[^\\])"/g, '$1\\\"') //"
+ });
+ });
+
+ if (handler.start) {
+ handler.start(tagName, attrs, unary);
+ }
+
+ }
+ }
+
+ function parseEndTag(tag, tagName) {
+ // If no tag name is provided, clean shop
+ if (!tagName)
+ var pos = 0;
+
+ // Find the closest opened tag of the same type
+ else {
+ tagName = tagName.toLowerCase();
+ for (var pos = stack.length - 1; pos >= 0; pos--)
+ if (stack[pos] == tagName)
+ break;
+ }
+ if (pos >= 0) {
+ // Close all the open elements, up the stack
+ for (var i = stack.length - 1; i >= pos; i--)
+ if (handler.end)
+ handler.end(stack[i]);
+
+ // Remove the open elements from the stack
+ stack.length = pos;
+ }
+ }
+};
+
+
+function makeMap(str) {
+ var obj = {}, items = str.split(",");
+ for (var i = 0; i < items.length; i++)
+ obj[items[i]] = true;
+ return obj;
+}
+
+module.exports = HTMLParser;
diff --git a/view/crmebNewUI/wxParse/showdown.js b/view/crmebNewUI/wxParse/showdown.js
new file mode 100644
index 00000000..d29206d5
--- /dev/null
+++ b/view/crmebNewUI/wxParse/showdown.js
@@ -0,0 +1,2532 @@
+/**
+ *
+ * showdown: https://github.com/showdownjs/showdown
+ *
+ * author: Di (微信小程序开发工程师)
+ * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com)
+ * 垂直微信小程序开发交流社区
+ *
+ * github地址: https://github.com/icindy/wxParse
+ *
+ * for: 微信小程序富文本解析
+ * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184
+ */
+
+function getDefaultOpts(simple) {
+ 'use strict';
+
+ var defaultOptions = {
+ omitExtraWLInCodeBlocks: {
+ defaultValue: false,
+ describe: 'Omit the default extra whiteline added to code blocks',
+ type: 'boolean'
+ },
+ noHeaderId: {
+ defaultValue: false,
+ describe: 'Turn on/off generated header id',
+ type: 'boolean'
+ },
+ prefixHeaderId: {
+ defaultValue: false,
+ describe: 'Specify a prefix to generated header ids',
+ type: 'string'
+ },
+ headerLevelStart: {
+ defaultValue: false,
+ describe: 'The header blocks level start',
+ type: 'integer'
+ },
+ parseImgDimensions: {
+ defaultValue: false,
+ describe: 'Turn on/off image dimension parsing',
+ type: 'boolean'
+ },
+ simplifiedAutoLink: {
+ defaultValue: false,
+ describe: 'Turn on/off GFM autolink style',
+ type: 'boolean'
+ },
+ literalMidWordUnderscores: {
+ defaultValue: false,
+ describe: 'Parse midword underscores as literal underscores',
+ type: 'boolean'
+ },
+ strikethrough: {
+ defaultValue: false,
+ describe: 'Turn on/off strikethrough support',
+ type: 'boolean'
+ },
+ tables: {
+ defaultValue: false,
+ describe: 'Turn on/off tables support',
+ type: 'boolean'
+ },
+ tablesHeaderId: {
+ defaultValue: false,
+ describe: 'Add an id to table headers',
+ type: 'boolean'
+ },
+ ghCodeBlocks: {
+ defaultValue: true,
+ describe: 'Turn on/off GFM fenced code blocks support',
+ type: 'boolean'
+ },
+ tasklists: {
+ defaultValue: false,
+ describe: 'Turn on/off GFM tasklist support',
+ type: 'boolean'
+ },
+ smoothLivePreview: {
+ defaultValue: false,
+ describe: 'Prevents weird effects in live previews due to incomplete input',
+ type: 'boolean'
+ },
+ smartIndentationFix: {
+ defaultValue: false,
+ description: 'Tries to smartly fix identation in es6 strings',
+ type: 'boolean'
+ }
+ };
+ if (simple === false) {
+ return JSON.parse(JSON.stringify(defaultOptions));
+ }
+ var ret = {};
+ for (var opt in defaultOptions) {
+ if (defaultOptions.hasOwnProperty(opt)) {
+ ret[opt] = defaultOptions[opt].defaultValue;
+ }
+ }
+ return ret;
+}
+
+/**
+ * Created by Tivie on 06-01-2015.
+ */
+
+// Private properties
+var showdown = {},
+ parsers = {},
+ extensions = {},
+ globalOptions = getDefaultOpts(true),
+ flavor = {
+ github: {
+ omitExtraWLInCodeBlocks: true,
+ prefixHeaderId: 'user-content-',
+ simplifiedAutoLink: true,
+ literalMidWordUnderscores: true,
+ strikethrough: true,
+ tables: true,
+ tablesHeaderId: true,
+ ghCodeBlocks: true,
+ tasklists: true
+ },
+ vanilla: getDefaultOpts(true)
+ };
+
+/**
+ * helper namespace
+ * @type {{}}
+ */
+showdown.helper = {};
+
+/**
+ * TODO LEGACY SUPPORT CODE
+ * @type {{}}
+ */
+showdown.extensions = {};
+
+/**
+ * Set a global option
+ * @static
+ * @param {string} key
+ * @param {*} value
+ * @returns {showdown}
+ */
+showdown.setOption = function (key, value) {
+ 'use strict';
+ globalOptions[key] = value;
+ return this;
+};
+
+/**
+ * Get a global option
+ * @static
+ * @param {string} key
+ * @returns {*}
+ */
+showdown.getOption = function (key) {
+ 'use strict';
+ return globalOptions[key];
+};
+
+/**
+ * Get the global options
+ * @static
+ * @returns {{}}
+ */
+showdown.getOptions = function () {
+ 'use strict';
+ return globalOptions;
+};
+
+/**
+ * Reset global options to the default values
+ * @static
+ */
+showdown.resetOptions = function () {
+ 'use strict';
+ globalOptions = getDefaultOpts(true);
+};
+
+/**
+ * Set the flavor showdown should use as default
+ * @param {string} name
+ */
+showdown.setFlavor = function (name) {
+ 'use strict';
+ if (flavor.hasOwnProperty(name)) {
+ var preset = flavor[name];
+ for (var option in preset) {
+ if (preset.hasOwnProperty(option)) {
+ globalOptions[option] = preset[option];
+ }
+ }
+ }
+};
+
+/**
+ * Get the default options
+ * @static
+ * @param {boolean} [simple=true]
+ * @returns {{}}
+ */
+showdown.getDefaultOptions = function (simple) {
+ 'use strict';
+ return getDefaultOpts(simple);
+};
+
+/**
+ * Get or set a subParser
+ *
+ * subParser(name) - Get a registered subParser
+ * subParser(name, func) - Register a subParser
+ * @static
+ * @param {string} name
+ * @param {function} [func]
+ * @returns {*}
+ */
+showdown.subParser = function (name, func) {
+ 'use strict';
+ if (showdown.helper.isString(name)) {
+ if (typeof func !== 'undefined') {
+ parsers[name] = func;
+ } else {
+ if (parsers.hasOwnProperty(name)) {
+ return parsers[name];
+ } else {
+ throw Error('SubParser named ' + name + ' not registered!');
+ }
+ }
+ }
+};
+
+/**
+ * Gets or registers an extension
+ * @static
+ * @param {string} name
+ * @param {object|function=} ext
+ * @returns {*}
+ */
+showdown.extension = function (name, ext) {
+ 'use strict';
+
+ if (!showdown.helper.isString(name)) {
+ throw Error('Extension \'name\' must be a string');
+ }
+
+ name = showdown.helper.stdExtName(name);
+
+ // Getter
+ if (showdown.helper.isUndefined(ext)) {
+ if (!extensions.hasOwnProperty(name)) {
+ throw Error('Extension named ' + name + ' is not registered!');
+ }
+ return extensions[name];
+
+ // Setter
+ } else {
+ // Expand extension if it's wrapped in a function
+ if (typeof ext === 'function') {
+ ext = ext();
+ }
+
+ // Ensure extension is an array
+ if (!showdown.helper.isArray(ext)) {
+ ext = [ext];
+ }
+
+ var validExtension = validate(ext, name);
+
+ if (validExtension.valid) {
+ extensions[name] = ext;
+ } else {
+ throw Error(validExtension.error);
+ }
+ }
+};
+
+/**
+ * Gets all extensions registered
+ * @returns {{}}
+ */
+showdown.getAllExtensions = function () {
+ 'use strict';
+ return extensions;
+};
+
+/**
+ * Remove an extension
+ * @param {string} name
+ */
+showdown.removeExtension = function (name) {
+ 'use strict';
+ delete extensions[name];
+};
+
+/**
+ * Removes all extensions
+ */
+showdown.resetExtensions = function () {
+ 'use strict';
+ extensions = {};
+};
+
+/**
+ * Validate extension
+ * @param {array} extension
+ * @param {string} name
+ * @returns {{valid: boolean, error: string}}
+ */
+function validate(extension, name) {
+ 'use strict';
+
+ var errMsg = (name) ? 'Error in ' + name + ' extension->' : 'Error in unnamed extension',
+ ret = {
+ valid: true,
+ error: ''
+ };
+
+ if (!showdown.helper.isArray(extension)) {
+ extension = [extension];
+ }
+
+ for (var i = 0; i < extension.length; ++i) {
+ var baseMsg = errMsg + ' sub-extension ' + i + ': ',
+ ext = extension[i];
+ if (typeof ext !== 'object') {
+ ret.valid = false;
+ ret.error = baseMsg + 'must be an object, but ' + typeof ext + ' given';
+ return ret;
+ }
+
+ if (!showdown.helper.isString(ext.type)) {
+ ret.valid = false;
+ ret.error = baseMsg + 'property "type" must be a string, but ' + typeof ext.type + ' given';
+ return ret;
+ }
+
+ var type = ext.type = ext.type.toLowerCase();
+
+ // normalize extension type
+ if (type === 'language') {
+ type = ext.type = 'lang';
+ }
+
+ if (type === 'html') {
+ type = ext.type = 'output';
+ }
+
+ if (type !== 'lang' && type !== 'output' && type !== 'listener') {
+ ret.valid = false;
+ ret.error = baseMsg + 'type ' + type + ' is not recognized. Valid values: "lang/language", "output/html" or "listener"';
+ return ret;
+ }
+
+ if (type === 'listener') {
+ if (showdown.helper.isUndefined(ext.listeners)) {
+ ret.valid = false;
+ ret.error = baseMsg + '. Extensions of type "listener" must have a property called "listeners"';
+ return ret;
+ }
+ } else {
+ if (showdown.helper.isUndefined(ext.filter) && showdown.helper.isUndefined(ext.regex)) {
+ ret.valid = false;
+ ret.error = baseMsg + type + ' extensions must define either a "regex" property or a "filter" method';
+ return ret;
+ }
+ }
+
+ if (ext.listeners) {
+ if (typeof ext.listeners !== 'object') {
+ ret.valid = false;
+ ret.error = baseMsg + '"listeners" property must be an object but ' + typeof ext.listeners + ' given';
+ return ret;
+ }
+ for (var ln in ext.listeners) {
+ if (ext.listeners.hasOwnProperty(ln)) {
+ if (typeof ext.listeners[ln] !== 'function') {
+ ret.valid = false;
+ ret.error = baseMsg + '"listeners" property must be an hash of [event name]: [callback]. listeners.' + ln +
+ ' must be a function but ' + typeof ext.listeners[ln] + ' given';
+ return ret;
+ }
+ }
+ }
+ }
+
+ if (ext.filter) {
+ if (typeof ext.filter !== 'function') {
+ ret.valid = false;
+ ret.error = baseMsg + '"filter" must be a function, but ' + typeof ext.filter + ' given';
+ return ret;
+ }
+ } else if (ext.regex) {
+ if (showdown.helper.isString(ext.regex)) {
+ ext.regex = new RegExp(ext.regex, 'g');
+ }
+ if (!ext.regex instanceof RegExp) {
+ ret.valid = false;
+ ret.error = baseMsg + '"regex" property must either be a string or a RegExp object, but ' + typeof ext.regex + ' given';
+ return ret;
+ }
+ if (showdown.helper.isUndefined(ext.replace)) {
+ ret.valid = false;
+ ret.error = baseMsg + '"regex" extensions must implement a replace string or function';
+ return ret;
+ }
+ }
+ }
+ return ret;
+}
+
+/**
+ * Validate extension
+ * @param {object} ext
+ * @returns {boolean}
+ */
+showdown.validateExtension = function (ext) {
+ 'use strict';
+
+ var validateExtension = validate(ext, null);
+ if (!validateExtension.valid) {
+ console.warn(validateExtension.error);
+ return false;
+ }
+ return true;
+};
+
+/**
+ * showdownjs helper functions
+ */
+
+if (!showdown.hasOwnProperty('helper')) {
+ showdown.helper = {};
+}
+
+/**
+ * Check if var is string
+ * @static
+ * @param {string} a
+ * @returns {boolean}
+ */
+showdown.helper.isString = function isString(a) {
+ 'use strict';
+ return (typeof a === 'string' || a instanceof String);
+};
+
+/**
+ * Check if var is a function
+ * @static
+ * @param {string} a
+ * @returns {boolean}
+ */
+showdown.helper.isFunction = function isFunction(a) {
+ 'use strict';
+ var getType = {};
+ return a && getType.toString.call(a) === '[object Function]';
+};
+
+/**
+ * ForEach helper function
+ * @static
+ * @param {*} obj
+ * @param {function} callback
+ */
+showdown.helper.forEach = function forEach(obj, callback) {
+ 'use strict';
+ if (typeof obj.forEach === 'function') {
+ obj.forEach(callback);
+ } else {
+ for (var i = 0; i < obj.length; i++) {
+ callback(obj[i], i, obj);
+ }
+ }
+};
+
+/**
+ * isArray helper function
+ * @static
+ * @param {*} a
+ * @returns {boolean}
+ */
+showdown.helper.isArray = function isArray(a) {
+ 'use strict';
+ return a.constructor === Array;
+};
+
+/**
+ * Check if value is undefined
+ * @static
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
+ */
+showdown.helper.isUndefined = function isUndefined(value) {
+ 'use strict';
+ return typeof value === 'undefined';
+};
+
+/**
+ * Standardidize extension name
+ * @static
+ * @param {string} s extension name
+ * @returns {string}
+ */
+showdown.helper.stdExtName = function (s) {
+ 'use strict';
+ return s.replace(/[_-]||\s/g, '').toLowerCase();
+};
+
+function escapeCharactersCallback(wholeMatch, m1) {
+ 'use strict';
+ var charCodeToEscape = m1.charCodeAt(0);
+ return '~E' + charCodeToEscape + 'E';
+}
+
+/**
+ * Callback used to escape characters when passing through String.replace
+ * @static
+ * @param {string} wholeMatch
+ * @param {string} m1
+ * @returns {string}
+ */
+showdown.helper.escapeCharactersCallback = escapeCharactersCallback;
+
+/**
+ * Escape characters in a string
+ * @static
+ * @param {string} text
+ * @param {string} charsToEscape
+ * @param {boolean} afterBackslash
+ * @returns {XML|string|void|*}
+ */
+showdown.helper.escapeCharacters = function escapeCharacters(text, charsToEscape, afterBackslash) {
+ 'use strict';
+ // First we have to escape the escape characters so that
+ // we can build a character class out of them
+ var regexString = '([' + charsToEscape.replace(/([\[\]\\])/g, '\\$1') + '])';
+
+ if (afterBackslash) {
+ regexString = '\\\\' + regexString;
+ }
+
+ var regex = new RegExp(regexString, 'g');
+ text = text.replace(regex, escapeCharactersCallback);
+
+ return text;
+};
+
+var rgxFindMatchPos = function (str, left, right, flags) {
+ 'use strict';
+ var f = flags || '',
+ g = f.indexOf('g') > -1,
+ x = new RegExp(left + '|' + right, 'g' + f.replace(/g/g, '')),
+ l = new RegExp(left, f.replace(/g/g, '')),
+ pos = [],
+ t, s, m, start, end;
+
+ do {
+ t = 0;
+ while ((m = x.exec(str))) {
+ if (l.test(m[0])) {
+ if (!(t++)) {
+ s = x.lastIndex;
+ start = s - m[0].length;
+ }
+ } else if (t) {
+ if (!--t) {
+ end = m.index + m[0].length;
+ var obj = {
+ left: {start: start, end: s},
+ match: {start: s, end: m.index},
+ right: {start: m.index, end: end},
+ wholeMatch: {start: start, end: end}
+ };
+ pos.push(obj);
+ if (!g) {
+ return pos;
+ }
+ }
+ }
+ }
+ } while (t && (x.lastIndex = s));
+
+ return pos;
+};
+
+/**
+ * matchRecursiveRegExp
+ *
+ * (c) 2007 Steven Levithan
+ * MIT License
+ *
+ * Accepts a string to search, a left and right format delimiter
+ * as regex patterns, and optional regex flags. Returns an array
+ * of matches, allowing nested instances of left/right delimiters.
+ * Use the "g" flag to return all matches, otherwise only the
+ * first is returned. Be careful to ensure that the left and
+ * right format delimiters produce mutually exclusive matches.
+ * Backreferences are not supported within the right delimiter
+ * due to how it is internally combined with the left delimiter.
+ * When matching strings whose format delimiters are unbalanced
+ * to the left or right, the output is intentionally as a
+ * conventional regex library with recursion support would
+ * produce, e.g. "<" and ">" both produce ["x"] when using
+ * "<" and ">" as the delimiters (both strings contain a single,
+ * balanced instance of "").
+ *
+ * examples:
+ * matchRecursiveRegExp("test", "\\(", "\\)")
+ * returns: []
+ * matchRecursiveRegExp(">>t<>", "<", ">", "g")
+ * returns: ["t<>", ""]
+ * matchRecursiveRegExp(" test
", "]*>", "
", "gi")
+ * returns: ["test"]
+ */
+showdown.helper.matchRecursiveRegExp = function (str, left, right, flags) {
+ 'use strict';
+
+ var matchPos = rgxFindMatchPos (str, left, right, flags),
+ results = [];
+
+ for (var i = 0; i < matchPos.length; ++i) {
+ results.push([
+ str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end),
+ str.slice(matchPos[i].match.start, matchPos[i].match.end),
+ str.slice(matchPos[i].left.start, matchPos[i].left.end),
+ str.slice(matchPos[i].right.start, matchPos[i].right.end)
+ ]);
+ }
+ return results;
+};
+
+/**
+ *
+ * @param {string} str
+ * @param {string|function} replacement
+ * @param {string} left
+ * @param {string} right
+ * @param {string} flags
+ * @returns {string}
+ */
+showdown.helper.replaceRecursiveRegExp = function (str, replacement, left, right, flags) {
+ 'use strict';
+
+ if (!showdown.helper.isFunction(replacement)) {
+ var repStr = replacement;
+ replacement = function () {
+ return repStr;
+ };
+ }
+
+ var matchPos = rgxFindMatchPos(str, left, right, flags),
+ finalStr = str,
+ lng = matchPos.length;
+
+ if (lng > 0) {
+ var bits = [];
+ if (matchPos[0].wholeMatch.start !== 0) {
+ bits.push(str.slice(0, matchPos[0].wholeMatch.start));
+ }
+ for (var i = 0; i < lng; ++i) {
+ bits.push(
+ replacement(
+ str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end),
+ str.slice(matchPos[i].match.start, matchPos[i].match.end),
+ str.slice(matchPos[i].left.start, matchPos[i].left.end),
+ str.slice(matchPos[i].right.start, matchPos[i].right.end)
+ )
+ );
+ if (i < lng - 1) {
+ bits.push(str.slice(matchPos[i].wholeMatch.end, matchPos[i + 1].wholeMatch.start));
+ }
+ }
+ if (matchPos[lng - 1].wholeMatch.end < str.length) {
+ bits.push(str.slice(matchPos[lng - 1].wholeMatch.end));
+ }
+ finalStr = bits.join('');
+ }
+ return finalStr;
+};
+
+/**
+ * POLYFILLS
+ */
+if (showdown.helper.isUndefined(console)) {
+ console = {
+ warn: function (msg) {
+ 'use strict';
+ alert(msg);
+ },
+ log: function (msg) {
+ 'use strict';
+ alert(msg);
+ },
+ error: function (msg) {
+ 'use strict';
+ throw msg;
+ }
+ };
+}
+
+/**
+ * Created by Estevao on 31-05-2015.
+ */
+
+/**
+ * Showdown Converter class
+ * @class
+ * @param {object} [converterOptions]
+ * @returns {Converter}
+ */
+showdown.Converter = function (converterOptions) {
+ 'use strict';
+
+ var
+ /**
+ * Options used by this converter
+ * @private
+ * @type {{}}
+ */
+ options = {},
+
+ /**
+ * Language extensions used by this converter
+ * @private
+ * @type {Array}
+ */
+ langExtensions = [],
+
+ /**
+ * Output modifiers extensions used by this converter
+ * @private
+ * @type {Array}
+ */
+ outputModifiers = [],
+
+ /**
+ * Event listeners
+ * @private
+ * @type {{}}
+ */
+ listeners = {};
+
+ _constructor();
+
+ /**
+ * Converter constructor
+ * @private
+ */
+ function _constructor() {
+ converterOptions = converterOptions || {};
+
+ for (var gOpt in globalOptions) {
+ if (globalOptions.hasOwnProperty(gOpt)) {
+ options[gOpt] = globalOptions[gOpt];
+ }
+ }
+
+ // Merge options
+ if (typeof converterOptions === 'object') {
+ for (var opt in converterOptions) {
+ if (converterOptions.hasOwnProperty(opt)) {
+ options[opt] = converterOptions[opt];
+ }
+ }
+ } else {
+ throw Error('Converter expects the passed parameter to be an object, but ' + typeof converterOptions +
+ ' was passed instead.');
+ }
+
+ if (options.extensions) {
+ showdown.helper.forEach(options.extensions, _parseExtension);
+ }
+ }
+
+ /**
+ * Parse extension
+ * @param {*} ext
+ * @param {string} [name='']
+ * @private
+ */
+ function _parseExtension(ext, name) {
+
+ name = name || null;
+ // If it's a string, the extension was previously loaded
+ if (showdown.helper.isString(ext)) {
+ ext = showdown.helper.stdExtName(ext);
+ name = ext;
+
+ // LEGACY_SUPPORT CODE
+ if (showdown.extensions[ext]) {
+ console.warn('DEPRECATION WARNING: ' + ext + ' is an old extension that uses a deprecated loading method.' +
+ 'Please inform the developer that the extension should be updated!');
+ legacyExtensionLoading(showdown.extensions[ext], ext);
+ return;
+ // END LEGACY SUPPORT CODE
+
+ } else if (!showdown.helper.isUndefined(extensions[ext])) {
+ ext = extensions[ext];
+
+ } else {
+ throw Error('Extension "' + ext + '" could not be loaded. It was either not found or is not a valid extension.');
+ }
+ }
+
+ if (typeof ext === 'function') {
+ ext = ext();
+ }
+
+ if (!showdown.helper.isArray(ext)) {
+ ext = [ext];
+ }
+
+ var validExt = validate(ext, name);
+ if (!validExt.valid) {
+ throw Error(validExt.error);
+ }
+
+ for (var i = 0; i < ext.length; ++i) {
+ switch (ext[i].type) {
+
+ case 'lang':
+ langExtensions.push(ext[i]);
+ break;
+
+ case 'output':
+ outputModifiers.push(ext[i]);
+ break;
+ }
+ if (ext[i].hasOwnProperty(listeners)) {
+ for (var ln in ext[i].listeners) {
+ if (ext[i].listeners.hasOwnProperty(ln)) {
+ listen(ln, ext[i].listeners[ln]);
+ }
+ }
+ }
+ }
+
+ }
+
+ /**
+ * LEGACY_SUPPORT
+ * @param {*} ext
+ * @param {string} name
+ */
+ function legacyExtensionLoading(ext, name) {
+ if (typeof ext === 'function') {
+ ext = ext(new showdown.Converter());
+ }
+ if (!showdown.helper.isArray(ext)) {
+ ext = [ext];
+ }
+ var valid = validate(ext, name);
+
+ if (!valid.valid) {
+ throw Error(valid.error);
+ }
+
+ for (var i = 0; i < ext.length; ++i) {
+ switch (ext[i].type) {
+ case 'lang':
+ langExtensions.push(ext[i]);
+ break;
+ case 'output':
+ outputModifiers.push(ext[i]);
+ break;
+ default:// should never reach here
+ throw Error('Extension loader error: Type unrecognized!!!');
+ }
+ }
+ }
+
+ /**
+ * Listen to an event
+ * @param {string} name
+ * @param {function} callback
+ */
+ function listen(name, callback) {
+ if (!showdown.helper.isString(name)) {
+ throw Error('Invalid argument in converter.listen() method: name must be a string, but ' + typeof name + ' given');
+ }
+
+ if (typeof callback !== 'function') {
+ throw Error('Invalid argument in converter.listen() method: callback must be a function, but ' + typeof callback + ' given');
+ }
+
+ if (!listeners.hasOwnProperty(name)) {
+ listeners[name] = [];
+ }
+ listeners[name].push(callback);
+ }
+
+ function rTrimInputText(text) {
+ var rsp = text.match(/^\s*/)[0].length,
+ rgx = new RegExp('^\\s{0,' + rsp + '}', 'gm');
+ return text.replace(rgx, '');
+ }
+
+ /**
+ * Dispatch an event
+ * @private
+ * @param {string} evtName Event name
+ * @param {string} text Text
+ * @param {{}} options Converter Options
+ * @param {{}} globals
+ * @returns {string}
+ */
+ this._dispatch = function dispatch (evtName, text, options, globals) {
+ if (listeners.hasOwnProperty(evtName)) {
+ for (var ei = 0; ei < listeners[evtName].length; ++ei) {
+ var nText = listeners[evtName][ei](evtName, text, this, options, globals);
+ if (nText && typeof nText !== 'undefined') {
+ text = nText;
+ }
+ }
+ }
+ return text;
+ };
+
+ /**
+ * Listen to an event
+ * @param {string} name
+ * @param {function} callback
+ * @returns {showdown.Converter}
+ */
+ this.listen = function (name, callback) {
+ listen(name, callback);
+ return this;
+ };
+
+ /**
+ * Converts a markdown string into HTML
+ * @param {string} text
+ * @returns {*}
+ */
+ this.makeHtml = function (text) {
+ //check if text is not falsy
+ if (!text) {
+ return text;
+ }
+
+ var globals = {
+ gHtmlBlocks: [],
+ gHtmlMdBlocks: [],
+ gHtmlSpans: [],
+ gUrls: {},
+ gTitles: {},
+ gDimensions: {},
+ gListLevel: 0,
+ hashLinkCounts: {},
+ langExtensions: langExtensions,
+ outputModifiers: outputModifiers,
+ converter: this,
+ ghCodeBlocks: []
+ };
+
+ // attacklab: Replace ~ with ~T
+ // This lets us use tilde as an escape char to avoid md5 hashes
+ // The choice of character is arbitrary; anything that isn't
+ // magic in Markdown will work.
+ text = text.replace(/~/g, '~T');
+
+ // attacklab: Replace $ with ~D
+ // RegExp interprets $ as a special character
+ // when it's in a replacement string
+ text = text.replace(/\$/g, '~D');
+
+ // Standardize line endings
+ text = text.replace(/\r\n/g, '\n'); // DOS to Unix
+ text = text.replace(/\r/g, '\n'); // Mac to Unix
+
+ if (options.smartIndentationFix) {
+ text = rTrimInputText(text);
+ }
+
+ // Make sure text begins and ends with a couple of newlines:
+ //text = '\n\n' + text + '\n\n';
+ text = text;
+ // detab
+ text = showdown.subParser('detab')(text, options, globals);
+
+ // stripBlankLines
+ text = showdown.subParser('stripBlankLines')(text, options, globals);
+
+ //run languageExtensions
+ showdown.helper.forEach(langExtensions, function (ext) {
+ text = showdown.subParser('runExtension')(ext, text, options, globals);
+ });
+
+ // run the sub parsers
+ text = showdown.subParser('hashPreCodeTags')(text, options, globals);
+ text = showdown.subParser('githubCodeBlocks')(text, options, globals);
+ text = showdown.subParser('hashHTMLBlocks')(text, options, globals);
+ text = showdown.subParser('hashHTMLSpans')(text, options, globals);
+ text = showdown.subParser('stripLinkDefinitions')(text, options, globals);
+ text = showdown.subParser('blockGamut')(text, options, globals);
+ text = showdown.subParser('unhashHTMLSpans')(text, options, globals);
+ text = showdown.subParser('unescapeSpecialChars')(text, options, globals);
+
+ // attacklab: Restore dollar signs
+ text = text.replace(/~D/g, '$$');
+
+ // attacklab: Restore tildes
+ text = text.replace(/~T/g, '~');
+
+ // Run output modifiers
+ showdown.helper.forEach(outputModifiers, function (ext) {
+ text = showdown.subParser('runExtension')(ext, text, options, globals);
+ });
+ return text;
+ };
+
+ /**
+ * Set an option of this Converter instance
+ * @param {string} key
+ * @param {*} value
+ */
+ this.setOption = function (key, value) {
+ options[key] = value;
+ };
+
+ /**
+ * Get the option of this Converter instance
+ * @param {string} key
+ * @returns {*}
+ */
+ this.getOption = function (key) {
+ return options[key];
+ };
+
+ /**
+ * Get the options of this Converter instance
+ * @returns {{}}
+ */
+ this.getOptions = function () {
+ return options;
+ };
+
+ /**
+ * Add extension to THIS converter
+ * @param {{}} extension
+ * @param {string} [name=null]
+ */
+ this.addExtension = function (extension, name) {
+ name = name || null;
+ _parseExtension(extension, name);
+ };
+
+ /**
+ * Use a global registered extension with THIS converter
+ * @param {string} extensionName Name of the previously registered extension
+ */
+ this.useExtension = function (extensionName) {
+ _parseExtension(extensionName);
+ };
+
+ /**
+ * Set the flavor THIS converter should use
+ * @param {string} name
+ */
+ this.setFlavor = function (name) {
+ if (flavor.hasOwnProperty(name)) {
+ var preset = flavor[name];
+ for (var option in preset) {
+ if (preset.hasOwnProperty(option)) {
+ options[option] = preset[option];
+ }
+ }
+ }
+ };
+
+ /**
+ * Remove an extension from THIS converter.
+ * Note: This is a costly operation. It's better to initialize a new converter
+ * and specify the extensions you wish to use
+ * @param {Array} extension
+ */
+ this.removeExtension = function (extension) {
+ if (!showdown.helper.isArray(extension)) {
+ extension = [extension];
+ }
+ for (var a = 0; a < extension.length; ++a) {
+ var ext = extension[a];
+ for (var i = 0; i < langExtensions.length; ++i) {
+ if (langExtensions[i] === ext) {
+ langExtensions[i].splice(i, 1);
+ }
+ }
+ for (var ii = 0; ii < outputModifiers.length; ++i) {
+ if (outputModifiers[ii] === ext) {
+ outputModifiers[ii].splice(i, 1);
+ }
+ }
+ }
+ };
+
+ /**
+ * Get all extension of THIS converter
+ * @returns {{language: Array, output: Array}}
+ */
+ this.getAllExtensions = function () {
+ return {
+ language: langExtensions,
+ output: outputModifiers
+ };
+ };
+};
+
+/**
+ * Turn Markdown link shortcuts into XHTML tags.
+ */
+showdown.subParser('anchors', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('anchors.before', text, options, globals);
+
+ var writeAnchorTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) {
+ if (showdown.helper.isUndefined(m7)) {
+ m7 = '';
+ }
+ wholeMatch = m1;
+ var linkText = m2,
+ linkId = m3.toLowerCase(),
+ url = m4,
+ title = m7;
+
+ if (!url) {
+ if (!linkId) {
+ // lower-case and turn embedded newlines into spaces
+ linkId = linkText.toLowerCase().replace(/ ?\n/g, ' ');
+ }
+ url = '#' + linkId;
+
+ if (!showdown.helper.isUndefined(globals.gUrls[linkId])) {
+ url = globals.gUrls[linkId];
+ if (!showdown.helper.isUndefined(globals.gTitles[linkId])) {
+ title = globals.gTitles[linkId];
+ }
+ } else {
+ if (wholeMatch.search(/\(\s*\)$/m) > -1) {
+ // Special case for explicit empty url
+ url = '';
+ } else {
+ return wholeMatch;
+ }
+ }
+ }
+
+ url = showdown.helper.escapeCharacters(url, '*_', false);
+ var result = ' ' + linkText + ' ';
+
+ return result;
+ };
+
+ // First, handle reference-style links: [link text] [id]
+ /*
+ text = text.replace(/
+ ( // wrap whole match in $1
+ \[
+ (
+ (?:
+ \[[^\]]*\] // allow brackets nested one level
+ |
+ [^\[] // or anything else
+ )*
+ )
+ \]
+
+ [ ]? // one optional space
+ (?:\n[ ]*)? // one optional newline followed by spaces
+
+ \[
+ (.*?) // id = $3
+ \]
+ )()()()() // pad remaining backreferences
+ /g,_DoAnchors_callback);
+ */
+ text = text.replace(/(\[((?:\[[^\]]*]|[^\[\]])*)][ ]?(?:\n[ ]*)?\[(.*?)])()()()()/g, writeAnchorTag);
+
+ //
+ // Next, inline-style links: [link text](url "optional title")
+ //
+
+ /*
+ text = text.replace(/
+ ( // wrap whole match in $1
+ \[
+ (
+ (?:
+ \[[^\]]*\] // allow brackets nested one level
+ |
+ [^\[\]] // or anything else
+ )
+ )
+ \]
+ \( // literal paren
+ [ \t]*
+ () // no id, so leave $3 empty
+ (.*?)>? // href = $4
+ [ \t]*
+ ( // $5
+ (['"]) // quote char = $6
+ (.*?) // Title = $7
+ \6 // matching quote
+ [ \t]* // ignore any spaces/tabs between closing quote and )
+ )? // title is optional
+ \)
+ )
+ /g,writeAnchorTag);
+ */
+ text = text.replace(/(\[((?:\[[^\]]*]|[^\[\]])*)]\([ \t]*()(.*?(?:\(.*?\).*?)?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,
+ writeAnchorTag);
+
+ //
+ // Last, handle reference-style shortcuts: [link text]
+ // These must come last in case you've also got [link test][1]
+ // or [link test](/foo)
+ //
+
+ /*
+ text = text.replace(/
+ ( // wrap whole match in $1
+ \[
+ ([^\[\]]+) // link text = $2; can't contain '[' or ']'
+ \]
+ )()()()()() // pad rest of backreferences
+ /g, writeAnchorTag);
+ */
+ text = text.replace(/(\[([^\[\]]+)])()()()()()/g, writeAnchorTag);
+
+ text = globals.converter._dispatch('anchors.after', text, options, globals);
+ return text;
+});
+
+showdown.subParser('autoLinks', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('autoLinks.before', text, options, globals);
+
+ var simpleURLRegex = /\b(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+)(?=\s|$)(?!["<>])/gi,
+ delimUrlRegex = /<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)>/gi,
+ simpleMailRegex = /(?:^|[ \n\t])([A-Za-z0-9!#$%&'*+-/=?^_`\{|}~\.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?:$|[ \n\t])/gi,
+ delimMailRegex = /<(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi;
+
+ text = text.replace(delimUrlRegex, replaceLink);
+ text = text.replace(delimMailRegex, replaceMail);
+ // simpleURLRegex = /\b(((https?|ftp|dict):\/\/|www\.)[-.+~:?#@!$&'()*,;=[\]\w]+)\b/gi,
+ // Email addresses:
+
+ if (options.simplifiedAutoLink) {
+ text = text.replace(simpleURLRegex, replaceLink);
+ text = text.replace(simpleMailRegex, replaceMail);
+ }
+
+ function replaceLink(wm, link) {
+ var lnkTxt = link;
+ if (/^www\./i.test(link)) {
+ link = link.replace(/^www\./i, 'http://www.');
+ }
+ return '' + lnkTxt + ' ';
+ }
+
+ function replaceMail(wholeMatch, m1) {
+ var unescapedStr = showdown.subParser('unescapeSpecialChars')(m1);
+ return showdown.subParser('encodeEmailAddress')(unescapedStr);
+ }
+
+ text = globals.converter._dispatch('autoLinks.after', text, options, globals);
+
+ return text;
+});
+
+/**
+ * These are all the transformations that form block-level
+ * tags like paragraphs, headers, and list items.
+ */
+showdown.subParser('blockGamut', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('blockGamut.before', text, options, globals);
+
+ // we parse blockquotes first so that we can have headings and hrs
+ // inside blockquotes
+ text = showdown.subParser('blockQuotes')(text, options, globals);
+ text = showdown.subParser('headers')(text, options, globals);
+
+ // Do Horizontal Rules:
+ var key = showdown.subParser('hashBlock')(' ', options, globals);
+ text = text.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm, key);
+ text = text.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm, key);
+ text = text.replace(/^[ ]{0,2}([ ]?_[ ]?){3,}[ \t]*$/gm, key);
+
+ text = showdown.subParser('lists')(text, options, globals);
+ text = showdown.subParser('codeBlocks')(text, options, globals);
+ text = showdown.subParser('tables')(text, options, globals);
+
+ // We already ran _HashHTMLBlocks() before, in Markdown(), but that
+ // was to escape raw HTML in the original Markdown source. This time,
+ // we're escaping the markup we've just created, so that we don't wrap
+ // tags around block-level tags.
+ text = showdown.subParser('hashHTMLBlocks')(text, options, globals);
+ text = showdown.subParser('paragraphs')(text, options, globals);
+
+ text = globals.converter._dispatch('blockGamut.after', text, options, globals);
+
+ return text;
+});
+
+showdown.subParser('blockQuotes', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('blockQuotes.before', text, options, globals);
+ /*
+ text = text.replace(/
+ ( // Wrap whole match in $1
+ (
+ ^[ \t]*>[ \t]? // '>' at the start of a line
+ .+\n // rest of the first line
+ (.+\n)* // subsequent consecutive lines
+ \n* // blanks
+ )+
+ )
+ /gm, function(){...});
+ */
+
+ text = text.replace(/((^[ \t]{0,3}>[ \t]?.+\n(.+\n)*\n*)+)/gm, function (wholeMatch, m1) {
+ var bq = m1;
+
+ // attacklab: hack around Konqueror 3.5.4 bug:
+ // "----------bug".replace(/^-/g,"") == "bug"
+ bq = bq.replace(/^[ \t]*>[ \t]?/gm, '~0'); // trim one level of quoting
+
+ // attacklab: clean up hack
+ bq = bq.replace(/~0/g, '');
+
+ bq = bq.replace(/^[ \t]+$/gm, ''); // trim whitespace-only lines
+ bq = showdown.subParser('githubCodeBlocks')(bq, options, globals);
+ bq = showdown.subParser('blockGamut')(bq, options, globals); // recurse
+
+ bq = bq.replace(/(^|\n)/g, '$1 ');
+ // These leading spaces screw with
content, so we need to fix that:
+ bq = bq.replace(/(\s*[^\r]+?<\/pre>)/gm, function (wholeMatch, m1) {
+ var pre = m1;
+ // attacklab: hack around Konqueror 3.5.4 bug:
+ pre = pre.replace(/^ /mg, '~0');
+ pre = pre.replace(/~0/g, '');
+ return pre;
+ });
+
+ return showdown.subParser('hashBlock')('\n' + bq + '\n ', options, globals);
+ });
+
+ text = globals.converter._dispatch('blockQuotes.after', text, options, globals);
+ return text;
+});
+
+/**
+ * Process Markdown `` blocks.
+ */
+showdown.subParser('codeBlocks', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('codeBlocks.before', text, options, globals);
+ /*
+ text = text.replace(text,
+ /(?:\n\n|^)
+ ( // $1 = the code block -- one or more lines, starting with a space/tab
+ (?:
+ (?:[ ]{4}|\t) // Lines must start with a tab or a tab-width of spaces - attacklab: g_tab_width
+ .*\n+
+ )+
+ )
+ (\n*[ ]{0,3}[^ \t\n]|(?=~0)) // attacklab: g_tab_width
+ /g,function(){...});
+ */
+
+ // attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
+ text += '~0';
+
+ var pattern = /(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g;
+ text = text.replace(pattern, function (wholeMatch, m1, m2) {
+ var codeblock = m1,
+ nextChar = m2,
+ end = '\n';
+
+ codeblock = showdown.subParser('outdent')(codeblock);
+ codeblock = showdown.subParser('encodeCode')(codeblock);
+ codeblock = showdown.subParser('detab')(codeblock);
+ codeblock = codeblock.replace(/^\n+/g, ''); // trim leading newlines
+ codeblock = codeblock.replace(/\n+$/g, ''); // trim trailing newlines
+
+ if (options.omitExtraWLInCodeBlocks) {
+ end = '';
+ }
+
+ codeblock = '' + codeblock + end + ' ';
+
+ return showdown.subParser('hashBlock')(codeblock, options, globals) + nextChar;
+ });
+
+ // attacklab: strip sentinel
+ text = text.replace(/~0/, '');
+
+ text = globals.converter._dispatch('codeBlocks.after', text, options, globals);
+ return text;
+});
+
+/**
+ *
+ * * Backtick quotes are used for spans.
+ *
+ * * You can use multiple backticks as the delimiters if you want to
+ * include literal backticks in the code span. So, this input:
+ *
+ * Just type ``foo `bar` baz`` at the prompt.
+ *
+ * Will translate to:
+ *
+ * Just type foo `bar` baz at the prompt.
+ *
+ * There's no arbitrary limit to the number of backticks you
+ * can use as delimters. If you need three consecutive backticks
+ * in your code, use four for delimiters, etc.
+ *
+ * * You can use spaces to get literal backticks at the edges:
+ *
+ * ... type `` `bar` `` ...
+ *
+ * Turns to:
+ *
+ * ... type `bar` ...
+ */
+showdown.subParser('codeSpans', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('codeSpans.before', text, options, globals);
+
+ /*
+ text = text.replace(/
+ (^|[^\\]) // Character before opening ` can't be a backslash
+ (`+) // $2 = Opening run of `
+ ( // $3 = The code block
+ [^\r]*?
+ [^`] // attacklab: work around lack of lookbehind
+ )
+ \2 // Matching closer
+ (?!`)
+ /gm, function(){...});
+ */
+
+ if (typeof(text) === 'undefined') {
+ text = '';
+ }
+ text = text.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,
+ function (wholeMatch, m1, m2, m3) {
+ var c = m3;
+ c = c.replace(/^([ \t]*)/g, ''); // leading whitespace
+ c = c.replace(/[ \t]*$/g, ''); // trailing whitespace
+ c = showdown.subParser('encodeCode')(c);
+ return m1 + '' + c + '';
+ }
+ );
+
+ text = globals.converter._dispatch('codeSpans.after', text, options, globals);
+ return text;
+});
+
+/**
+ * Convert all tabs to spaces
+ */
+showdown.subParser('detab', function (text) {
+ 'use strict';
+
+ // expand first n-1 tabs
+ text = text.replace(/\t(?=\t)/g, ' '); // g_tab_width
+
+ // replace the nth with two sentinels
+ text = text.replace(/\t/g, '~A~B');
+
+ // use the sentinel to anchor our regex so it doesn't explode
+ text = text.replace(/~B(.+?)~A/g, function (wholeMatch, m1) {
+ var leadingText = m1,
+ numSpaces = 4 - leadingText.length % 4; // g_tab_width
+
+ // there *must* be a better way to do this:
+ for (var i = 0; i < numSpaces; i++) {
+ leadingText += ' ';
+ }
+
+ return leadingText;
+ });
+
+ // clean up sentinels
+ text = text.replace(/~A/g, ' '); // g_tab_width
+ text = text.replace(/~B/g, '');
+
+ return text;
+
+});
+
+/**
+ * Smart processing for ampersands and angle brackets that need to be encoded.
+ */
+showdown.subParser('encodeAmpsAndAngles', function (text) {
+ 'use strict';
+ // Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin:
+ // http://bumppo.net/projects/amputator/
+ text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, '&');
+
+ // Encode naked <'s
+ text = text.replace(/<(?![a-z\/?\$!])/gi, '<');
+
+ return text;
+});
+
+/**
+ * Returns the string, with after processing the following backslash escape sequences.
+ *
+ * attacklab: The polite way to do this is with the new escapeCharacters() function:
+ *
+ * text = escapeCharacters(text,"\\",true);
+ * text = escapeCharacters(text,"`*_{}[]()>#+-.!",true);
+ *
+ * ...but we're sidestepping its use of the (slow) RegExp constructor
+ * as an optimization for Firefox. This function gets called a LOT.
+ */
+showdown.subParser('encodeBackslashEscapes', function (text) {
+ 'use strict';
+ text = text.replace(/\\(\\)/g, showdown.helper.escapeCharactersCallback);
+ text = text.replace(/\\([`*_{}\[\]()>#+-.!])/g, showdown.helper.escapeCharactersCallback);
+ return text;
+});
+
+/**
+ * Encode/escape certain characters inside Markdown code runs.
+ * The point is that in code, these characters are literals,
+ * and lose their special Markdown meanings.
+ */
+showdown.subParser('encodeCode', function (text) {
+ 'use strict';
+
+ // Encode all ampersands; HTML entities are not
+ // entities within a Markdown code span.
+ text = text.replace(/&/g, '&');
+
+ // Do the angle bracket song and dance:
+ text = text.replace(//g, '>');
+
+ // Now, escape characters that are magic in Markdown:
+ text = showdown.helper.escapeCharacters(text, '*_{}[]\\', false);
+
+ // jj the line above breaks this:
+ //---
+ //* Item
+ // 1. Subitem
+ // special char: *
+ // ---
+
+ return text;
+});
+
+/**
+ * Input: an email address, e.g. "foo@example.com"
+ *
+ * Output: the email address as a mailto link, with each character
+ * of the address encoded as either a decimal or hex entity, in
+ * the hopes of foiling most address harvesting spam bots. E.g.:
+ *
+ * foo
+ * @example.com
+ *
+ * Based on a filter by Matthew Wickline, posted to the BBEdit-Talk
+ * mailing list:
+ *
+ */
+showdown.subParser('encodeEmailAddress', function (addr) {
+ 'use strict';
+
+ var encode = [
+ function (ch) {
+ return '' + ch.charCodeAt(0) + ';';
+ },
+ function (ch) {
+ return '' + ch.charCodeAt(0).toString(16) + ';';
+ },
+ function (ch) {
+ return ch;
+ }
+ ];
+
+ addr = 'mailto:' + addr;
+
+ addr = addr.replace(/./g, function (ch) {
+ if (ch === '@') {
+ // this *must* be encoded. I insist.
+ ch = encode[Math.floor(Math.random() * 2)](ch);
+ } else if (ch !== ':') {
+ // leave ':' alone (to spot mailto: later)
+ var r = Math.random();
+ // roughly 10% raw, 45% hex, 45% dec
+ ch = (
+ r > 0.9 ? encode[2](ch) : r > 0.45 ? encode[1](ch) : encode[0](ch)
+ );
+ }
+ return ch;
+ });
+
+ addr = '' + addr + ' ';
+ addr = addr.replace(/">.+:/g, '">'); // strip the mailto: from the visible part
+
+ return addr;
+});
+
+/**
+ * Within tags -- meaning between < and > -- encode [\ ` * _] so they
+ * don't conflict with their use in Markdown for code, italics and strong.
+ */
+showdown.subParser('escapeSpecialCharsWithinTagAttributes', function (text) {
+ 'use strict';
+
+ // Build a regex to find HTML tags and comments. See Friedl's
+ // "Mastering Regular Expressions", 2nd Ed., pp. 200-201.
+ var regex = /(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|)/gi;
+
+ text = text.replace(regex, function (wholeMatch) {
+ var tag = wholeMatch.replace(/(.)<\/?code>(?=.)/g, '$1`');
+ tag = showdown.helper.escapeCharacters(tag, '\\`*_', false);
+ return tag;
+ });
+
+ return text;
+});
+
+/**
+ * Handle github codeblocks prior to running HashHTML so that
+ * HTML contained within the codeblock gets escaped properly
+ * Example:
+ * ```ruby
+ * def hello_world(x)
+ * puts "Hello, #{x}"
+ * end
+ * ```
+ */
+showdown.subParser('githubCodeBlocks', function (text, options, globals) {
+ 'use strict';
+
+ // early exit if option is not enabled
+ if (!options.ghCodeBlocks) {
+ return text;
+ }
+
+ text = globals.converter._dispatch('githubCodeBlocks.before', text, options, globals);
+
+ text += '~0';
+
+ text = text.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g, function (wholeMatch, language, codeblock) {
+ var end = (options.omitExtraWLInCodeBlocks) ? '' : '\n';
+
+ // First parse the github code block
+ codeblock = showdown.subParser('encodeCode')(codeblock);
+ codeblock = showdown.subParser('detab')(codeblock);
+ codeblock = codeblock.replace(/^\n+/g, ''); // trim leading newlines
+ codeblock = codeblock.replace(/\n+$/g, ''); // trim trailing whitespace
+
+ codeblock = '' + codeblock + end + ' ';
+
+ codeblock = showdown.subParser('hashBlock')(codeblock, options, globals);
+
+ // Since GHCodeblocks can be false positives, we need to
+ // store the primitive text and the parsed text in a global var,
+ // and then return a token
+ return '\n\n~G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\n\n';
+ });
+
+ // attacklab: strip sentinel
+ text = text.replace(/~0/, '');
+
+ return globals.converter._dispatch('githubCodeBlocks.after', text, options, globals);
+});
+
+showdown.subParser('hashBlock', function (text, options, globals) {
+ 'use strict';
+ text = text.replace(/(^\n+|\n+$)/g, '');
+ return '\n\n~K' + (globals.gHtmlBlocks.push(text) - 1) + 'K\n\n';
+});
+
+showdown.subParser('hashElement', function (text, options, globals) {
+ 'use strict';
+
+ return function (wholeMatch, m1) {
+ var blockText = m1;
+
+ // Undo double lines
+ blockText = blockText.replace(/\n\n/g, '\n');
+ blockText = blockText.replace(/^\n/, '');
+
+ // strip trailing blank lines
+ blockText = blockText.replace(/\n+$/g, '');
+
+ // Replace the element text with a marker ("~KxK" where x is its key)
+ blockText = '\n\n~K' + (globals.gHtmlBlocks.push(blockText) - 1) + 'K\n\n';
+
+ return blockText;
+ };
+});
+
+showdown.subParser('hashHTMLBlocks', function (text, options, globals) {
+ 'use strict';
+
+ var blockTags = [
+ 'pre',
+ 'div',
+ 'h1',
+ 'h2',
+ 'h3',
+ 'h4',
+ 'h5',
+ 'h6',
+ 'blockquote',
+ 'table',
+ 'dl',
+ 'ol',
+ 'ul',
+ 'script',
+ 'noscript',
+ 'form',
+ 'fieldset',
+ 'iframe',
+ 'math',
+ 'style',
+ 'section',
+ 'header',
+ 'footer',
+ 'nav',
+ 'article',
+ 'aside',
+ 'address',
+ 'audio',
+ 'canvas',
+ 'figure',
+ 'hgroup',
+ 'output',
+ 'video',
+ 'p'
+ ],
+ repFunc = function (wholeMatch, match, left, right) {
+ var txt = wholeMatch;
+ // check if this html element is marked as markdown
+ // if so, it's contents should be parsed as markdown
+ if (left.search(/\bmarkdown\b/) !== -1) {
+ txt = left + globals.converter.makeHtml(match) + right;
+ }
+ return '\n\n~K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\n\n';
+ };
+
+ for (var i = 0; i < blockTags.length; ++i) {
+ text = showdown.helper.replaceRecursiveRegExp(text, repFunc, '^(?: |\\t){0,3}<' + blockTags[i] + '\\b[^>]*>', '' + blockTags[i] + '>', 'gim');
+ }
+
+ // HR SPECIAL CASE
+ text = text.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,
+ showdown.subParser('hashElement')(text, options, globals));
+
+ // Special case for standalone HTML comments:
+ text = text.replace(/()/g,
+ showdown.subParser('hashElement')(text, options, globals));
+
+ // PHP and ASP-style processor instructions (...?> and <%...%>)
+ text = text.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,
+ showdown.subParser('hashElement')(text, options, globals));
+ return text;
+});
+
+/**
+ * Hash span elements that should not be parsed as markdown
+ */
+showdown.subParser('hashHTMLSpans', function (text, config, globals) {
+ 'use strict';
+
+ var matches = showdown.helper.matchRecursiveRegExp(text, ']*>', '', 'gi');
+
+ for (var i = 0; i < matches.length; ++i) {
+ text = text.replace(matches[i][0], '~L' + (globals.gHtmlSpans.push(matches[i][0]) - 1) + 'L');
+ }
+ return text;
+});
+
+/**
+ * Unhash HTML spans
+ */
+showdown.subParser('unhashHTMLSpans', function (text, config, globals) {
+ 'use strict';
+
+ for (var i = 0; i < globals.gHtmlSpans.length; ++i) {
+ text = text.replace('~L' + i + 'L', globals.gHtmlSpans[i]);
+ }
+
+ return text;
+});
+
+/**
+ * Hash span elements that should not be parsed as markdown
+ */
+showdown.subParser('hashPreCodeTags', function (text, config, globals) {
+ 'use strict';
+
+ var repFunc = function (wholeMatch, match, left, right) {
+ // encode html entities
+ var codeblock = left + showdown.subParser('encodeCode')(match) + right;
+ return '\n\n~G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\n\n';
+ };
+
+ text = showdown.helper.replaceRecursiveRegExp(text, repFunc, '^(?: |\\t){0,3}]*>\\s*]*>', '^(?: |\\t){0,3}\\s* ', 'gim');
+ return text;
+});
+
+showdown.subParser('headers', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('headers.before', text, options, globals);
+
+ var prefixHeader = options.prefixHeaderId,
+ headerLevelStart = (isNaN(parseInt(options.headerLevelStart))) ? 1 : parseInt(options.headerLevelStart),
+
+ // Set text-style headers:
+ // Header 1
+ // ========
+ //
+ // Header 2
+ // --------
+ //
+ setextRegexH1 = (options.smoothLivePreview) ? /^(.+)[ \t]*\n={2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n=+[ \t]*\n+/gm,
+ setextRegexH2 = (options.smoothLivePreview) ? /^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n-+[ \t]*\n+/gm;
+
+ text = text.replace(setextRegexH1, function (wholeMatch, m1) {
+
+ var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),
+ hID = (options.noHeaderId) ? '' : ' id="' + headerId(m1) + '"',
+ hLevel = headerLevelStart,
+ hashBlock = '' + spanGamut + ' ';
+ return showdown.subParser('hashBlock')(hashBlock, options, globals);
+ });
+
+ text = text.replace(setextRegexH2, function (matchFound, m1) {
+ var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),
+ hID = (options.noHeaderId) ? '' : ' id="' + headerId(m1) + '"',
+ hLevel = headerLevelStart + 1,
+ hashBlock = '' + spanGamut + ' ';
+ return showdown.subParser('hashBlock')(hashBlock, options, globals);
+ });
+
+ // atx-style headers:
+ // # Header 1
+ // ## Header 2
+ // ## Header 2 with closing hashes ##
+ // ...
+ // ###### Header 6
+ //
+ text = text.replace(/^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm, function (wholeMatch, m1, m2) {
+ var span = showdown.subParser('spanGamut')(m2, options, globals),
+ hID = (options.noHeaderId) ? '' : ' id="' + headerId(m2) + '"',
+ hLevel = headerLevelStart - 1 + m1.length,
+ header = '' + span + ' ';
+
+ return showdown.subParser('hashBlock')(header, options, globals);
+ });
+
+ function headerId(m) {
+ var title, escapedId = m.replace(/[^\w]/g, '').toLowerCase();
+
+ if (globals.hashLinkCounts[escapedId]) {
+ title = escapedId + '-' + (globals.hashLinkCounts[escapedId]++);
+ } else {
+ title = escapedId;
+ globals.hashLinkCounts[escapedId] = 1;
+ }
+
+ // Prefix id to prevent causing inadvertent pre-existing style matches.
+ if (prefixHeader === true) {
+ prefixHeader = 'section';
+ }
+
+ if (showdown.helper.isString(prefixHeader)) {
+ return prefixHeader + title;
+ }
+ return title;
+ }
+
+ text = globals.converter._dispatch('headers.after', text, options, globals);
+ return text;
+});
+
+/**
+ * Turn Markdown image shortcuts into tags.
+ */
+showdown.subParser('images', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('images.before', text, options, globals);
+
+ var inlineRegExp = /!\[(.*?)]\s?\([ \t]*()(\S+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(['"])(.*?)\6[ \t]*)?\)/g,
+ referenceRegExp = /!\[([^\]]*?)] ?(?:\n *)?\[(.*?)]()()()()()/g;
+
+ function writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title) {
+
+ var gUrls = globals.gUrls,
+ gTitles = globals.gTitles,
+ gDims = globals.gDimensions;
+
+ linkId = linkId.toLowerCase();
+
+ if (!title) {
+ title = '';
+ }
+
+ if (url === '' || url === null) {
+ if (linkId === '' || linkId === null) {
+ // lower-case and turn embedded newlines into spaces
+ linkId = altText.toLowerCase().replace(/ ?\n/g, ' ');
+ }
+ url = '#' + linkId;
+
+ if (!showdown.helper.isUndefined(gUrls[linkId])) {
+ url = gUrls[linkId];
+ if (!showdown.helper.isUndefined(gTitles[linkId])) {
+ title = gTitles[linkId];
+ }
+ if (!showdown.helper.isUndefined(gDims[linkId])) {
+ width = gDims[linkId].width;
+ height = gDims[linkId].height;
+ }
+ } else {
+ return wholeMatch;
+ }
+ }
+
+ altText = altText.replace(/"/g, '"');
+ altText = showdown.helper.escapeCharacters(altText, '*_', false);
+ url = showdown.helper.escapeCharacters(url, '*_', false);
+ var result = ' ';
+ return result;
+ }
+
+ // First, handle reference-style labeled images: ![alt text][id]
+ text = text.replace(referenceRegExp, writeImageTag);
+
+ // Next, handle inline images: 
+ text = text.replace(inlineRegExp, writeImageTag);
+
+ text = globals.converter._dispatch('images.after', text, options, globals);
+ return text;
+});
+
+showdown.subParser('italicsAndBold', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('italicsAndBold.before', text, options, globals);
+
+ if (options.literalMidWordUnderscores) {
+ //underscores
+ // Since we are consuming a \s character, we need to add it
+ text = text.replace(/(^|\s|>|\b)__(?=\S)([\s\S]+?)__(?=\b|<|\s|$)/gm, '$1$2 ');
+ text = text.replace(/(^|\s|>|\b)_(?=\S)([\s\S]+?)_(?=\b|<|\s|$)/gm, '$1$2 ');
+ //asterisks
+ text = text.replace(/(\*\*)(?=\S)([^\r]*?\S[*]*)\1/g, '$2 ');
+ text = text.replace(/(\*)(?=\S)([^\r]*?\S)\1/g, '$2 ');
+
+ } else {
+ // must go first:
+ text = text.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g, '$2 ');
+ text = text.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g, '$2 ');
+ }
+
+ text = globals.converter._dispatch('italicsAndBold.after', text, options, globals);
+ return text;
+});
+
+/**
+ * Form HTML ordered (numbered) and unordered (bulleted) lists.
+ */
+showdown.subParser('lists', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('lists.before', text, options, globals);
+ /**
+ * Process the contents of a single ordered or unordered list, splitting it
+ * into individual list items.
+ * @param {string} listStr
+ * @param {boolean} trimTrailing
+ * @returns {string}
+ */
+ function processListItems (listStr, trimTrailing) {
+ // The $g_list_level global keeps track of when we're inside a list.
+ // Each time we enter a list, we increment it; when we leave a list,
+ // we decrement. If it's zero, we're not in a list anymore.
+ //
+ // We do this because when we're not inside a list, we want to treat
+ // something like this:
+ //
+ // I recommend upgrading to version
+ // 8. Oops, now this line is treated
+ // as a sub-list.
+ //
+ // As a single paragraph, despite the fact that the second line starts
+ // with a digit-period-space sequence.
+ //
+ // Whereas when we're inside a list (or sub-list), that line will be
+ // treated as the start of a sub-list. What a kludge, huh? This is
+ // an aspect of Markdown's syntax that's hard to parse perfectly
+ // without resorting to mind-reading. Perhaps the solution is to
+ // change the syntax rules such that sub-lists must start with a
+ // starting cardinal number; e.g. "1." or "a.".
+ globals.gListLevel++;
+
+ // trim trailing blank lines:
+ listStr = listStr.replace(/\n{2,}$/, '\n');
+
+ // attacklab: add sentinel to emulate \z
+ listStr += '~0';
+
+ var rgx = /(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm,
+ isParagraphed = (/\n[ \t]*\n(?!~0)/.test(listStr));
+
+ listStr = listStr.replace(rgx, function (wholeMatch, m1, m2, m3, m4, taskbtn, checked) {
+ checked = (checked && checked.trim() !== '');
+ var item = showdown.subParser('outdent')(m4, options, globals),
+ bulletStyle = '';
+
+ // Support for github tasklists
+ if (taskbtn && options.tasklists) {
+ bulletStyle = ' class="task-list-item" style="list-style-type: none;"';
+ item = item.replace(/^[ \t]*\[(x|X| )?]/m, function () {
+ var otp = ' ';
+ return otp;
+ });
+ }
+ // m1 - Leading line or
+ // Has a double return (multi paragraph) or
+ // Has sublist
+ if (m1 || (item.search(/\n{2,}/) > -1)) {
+ item = showdown.subParser('githubCodeBlocks')(item, options, globals);
+ item = showdown.subParser('blockGamut')(item, options, globals);
+ } else {
+ // Recursion for sub-lists:
+ item = showdown.subParser('lists')(item, options, globals);
+ item = item.replace(/\n$/, ''); // chomp(item)
+ if (isParagraphed) {
+ item = showdown.subParser('paragraphs')(item, options, globals);
+ } else {
+ item = showdown.subParser('spanGamut')(item, options, globals);
+ }
+ }
+ item = '\n' + item + ' \n';
+ return item;
+ });
+
+ // attacklab: strip sentinel
+ listStr = listStr.replace(/~0/g, '');
+
+ globals.gListLevel--;
+
+ if (trimTrailing) {
+ listStr = listStr.replace(/\s+$/, '');
+ }
+
+ return listStr;
+ }
+
+ /**
+ * Check and parse consecutive lists (better fix for issue #142)
+ * @param {string} list
+ * @param {string} listType
+ * @param {boolean} trimTrailing
+ * @returns {string}
+ */
+ function parseConsecutiveLists(list, listType, trimTrailing) {
+ // check if we caught 2 or more consecutive lists by mistake
+ // we use the counterRgx, meaning if listType is UL we look for UL and vice versa
+ var counterRxg = (listType === 'ul') ? /^ {0,2}\d+\.[ \t]/gm : /^ {0,2}[*+-][ \t]/gm,
+ subLists = [],
+ result = '';
+
+ if (list.search(counterRxg) !== -1) {
+ (function parseCL(txt) {
+ var pos = txt.search(counterRxg);
+ if (pos !== -1) {
+ // slice
+ result += '\n\n<' + listType + '>' + processListItems(txt.slice(0, pos), !!trimTrailing) + '' + listType + '>\n\n';
+
+ // invert counterType and listType
+ listType = (listType === 'ul') ? 'ol' : 'ul';
+ counterRxg = (listType === 'ul') ? /^ {0,2}\d+\.[ \t]/gm : /^ {0,2}[*+-][ \t]/gm;
+
+ //recurse
+ parseCL(txt.slice(pos));
+ } else {
+ result += '\n\n<' + listType + '>' + processListItems(txt, !!trimTrailing) + '' + listType + '>\n\n';
+ }
+ })(list);
+ for (var i = 0; i < subLists.length; ++i) {
+
+ }
+ } else {
+ result = '\n\n<' + listType + '>' + processListItems(list, !!trimTrailing) + '' + listType + '>\n\n';
+ }
+
+ return result;
+ }
+
+ // attacklab: add sentinel to hack around khtml/safari bug:
+ // http://bugs.webkit.org/show_bug.cgi?id=11231
+ text += '~0';
+
+ // Re-usable pattern to match any entire ul or ol list:
+ var wholeList = /^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;
+
+ if (globals.gListLevel) {
+ text = text.replace(wholeList, function (wholeMatch, list, m2) {
+ var listType = (m2.search(/[*+-]/g) > -1) ? 'ul' : 'ol';
+ return parseConsecutiveLists(list, listType, true);
+ });
+ } else {
+ wholeList = /(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;
+ //wholeList = /(\n\n|^\n?)( {0,3}([*+-]|\d+\.)[ \t]+[\s\S]+?)(?=(~0)|(\n\n(?!\t| {2,}| {0,3}([*+-]|\d+\.)[ \t])))/g;
+ text = text.replace(wholeList, function (wholeMatch, m1, list, m3) {
+
+ var listType = (m3.search(/[*+-]/g) > -1) ? 'ul' : 'ol';
+ return parseConsecutiveLists(list, listType);
+ });
+ }
+
+ // attacklab: strip sentinel
+ text = text.replace(/~0/, '');
+
+ text = globals.converter._dispatch('lists.after', text, options, globals);
+ return text;
+});
+
+/**
+ * Remove one level of line-leading tabs or spaces
+ */
+showdown.subParser('outdent', function (text) {
+ 'use strict';
+
+ // attacklab: hack around Konqueror 3.5.4 bug:
+ // "----------bug".replace(/^-/g,"") == "bug"
+ text = text.replace(/^(\t|[ ]{1,4})/gm, '~0'); // attacklab: g_tab_width
+
+ // attacklab: clean up hack
+ text = text.replace(/~0/g, '');
+
+ return text;
+});
+
+/**
+ *
+ */
+showdown.subParser('paragraphs', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('paragraphs.before', text, options, globals);
+ // Strip leading and trailing lines:
+ text = text.replace(/^\n+/g, '');
+ text = text.replace(/\n+$/g, '');
+
+ var grafs = text.split(/\n{2,}/g),
+ grafsOut = [],
+ end = grafs.length; // Wrap tags
+
+ for (var i = 0; i < end; i++) {
+ var str = grafs[i];
+ // if this is an HTML marker, copy it
+ if (str.search(/~(K|G)(\d+)\1/g) >= 0) {
+ grafsOut.push(str);
+ } else {
+ str = showdown.subParser('spanGamut')(str, options, globals);
+ str = str.replace(/^([ \t]*)/g, '
');
+ str += '
';
+ grafsOut.push(str);
+ }
+ }
+
+ /** Unhashify HTML blocks */
+ end = grafsOut.length;
+ for (i = 0; i < end; i++) {
+ var blockText = '',
+ grafsOutIt = grafsOut[i],
+ codeFlag = false;
+ // if this is a marker for an html block...
+ while (grafsOutIt.search(/~(K|G)(\d+)\1/) >= 0) {
+ var delim = RegExp.$1,
+ num = RegExp.$2;
+
+ if (delim === 'K') {
+ blockText = globals.gHtmlBlocks[num];
+ } else {
+ // we need to check if ghBlock is a false positive
+ if (codeFlag) {
+ // use encoded version of all text
+ blockText = showdown.subParser('encodeCode')(globals.ghCodeBlocks[num].text);
+ } else {
+ blockText = globals.ghCodeBlocks[num].codeblock;
+ }
+ }
+ blockText = blockText.replace(/\$/g, '$$$$'); // Escape any dollar signs
+
+ grafsOutIt = grafsOutIt.replace(/(\n\n)?~(K|G)\d+\2(\n\n)?/, blockText);
+ // Check if grafsOutIt is a pre->code
+ if (/^]*>\s*]*>/.test(grafsOutIt)) {
+ codeFlag = true;
+ }
+ }
+ grafsOut[i] = grafsOutIt;
+ }
+ text = grafsOut.join('\n\n');
+ // Strip leading and trailing lines:
+ text = text.replace(/^\n+/g, '');
+ text = text.replace(/\n+$/g, '');
+ return globals.converter._dispatch('paragraphs.after', text, options, globals);
+});
+
+/**
+ * Run extension
+ */
+showdown.subParser('runExtension', function (ext, text, options, globals) {
+ 'use strict';
+
+ if (ext.filter) {
+ text = ext.filter(text, globals.converter, options);
+
+ } else if (ext.regex) {
+ // TODO remove this when old extension loading mechanism is deprecated
+ var re = ext.regex;
+ if (!re instanceof RegExp) {
+ re = new RegExp(re, 'g');
+ }
+ text = text.replace(re, ext.replace);
+ }
+
+ return text;
+});
+
+/**
+ * These are all the transformations that occur *within* block-level
+ * tags like paragraphs, headers, and list items.
+ */
+showdown.subParser('spanGamut', function (text, options, globals) {
+ 'use strict';
+
+ text = globals.converter._dispatch('spanGamut.before', text, options, globals);
+ text = showdown.subParser('codeSpans')(text, options, globals);
+ text = showdown.subParser('escapeSpecialCharsWithinTagAttributes')(text, options, globals);
+ text = showdown.subParser('encodeBackslashEscapes')(text, options, globals);
+
+ // Process anchor and image tags. Images must come first,
+ // because ![foo][f] looks like an anchor.
+ text = showdown.subParser('images')(text, options, globals);
+ text = showdown.subParser('anchors')(text, options, globals);
+
+ // Make links out of things like ` `
+ // Must come after _DoAnchors(), because you can use < and >
+ // delimiters in inline links like [this]().
+ text = showdown.subParser('autoLinks')(text, options, globals);
+ text = showdown.subParser('encodeAmpsAndAngles')(text, options, globals);
+ text = showdown.subParser('italicsAndBold')(text, options, globals);
+ text = showdown.subParser('strikethrough')(text, options, globals);
+
+ // Do hard breaks:
+ text = text.replace(/ +\n/g, ' \n');
+
+ text = globals.converter._dispatch('spanGamut.after', text, options, globals);
+ return text;
+});
+
+showdown.subParser('strikethrough', function (text, options, globals) {
+ 'use strict';
+
+ if (options.strikethrough) {
+ text = globals.converter._dispatch('strikethrough.before', text, options, globals);
+ text = text.replace(/(?:~T){2}([\s\S]+?)(?:~T){2}/g, '$1');
+ text = globals.converter._dispatch('strikethrough.after', text, options, globals);
+ }
+
+ return text;
+});
+
+/**
+ * Strip any lines consisting only of spaces and tabs.
+ * This makes subsequent regexs easier to write, because we can
+ * match consecutive blank lines with /\n+/ instead of something
+ * contorted like /[ \t]*\n+/
+ */
+showdown.subParser('stripBlankLines', function (text) {
+ 'use strict';
+ return text.replace(/^[ \t]+$/mg, '');
+});
+
+/**
+ * Strips link definitions from text, stores the URLs and titles in
+ * hash references.
+ * Link defs are in the form: ^[id]: url "optional title"
+ *
+ * ^[ ]{0,3}\[(.+)\]: // id = $1 attacklab: g_tab_width - 1
+ * [ \t]*
+ * \n? // maybe *one* newline
+ * [ \t]*
+ * (\S+?)>? // url = $2
+ * [ \t]*
+ * \n? // maybe one newline
+ * [ \t]*
+ * (?:
+ * (\n*) // any lines skipped = $3 attacklab: lookbehind removed
+ * ["(]
+ * (.+?) // title = $4
+ * [")]
+ * [ \t]*
+ * )? // title is optional
+ * (?:\n+|$)
+ * /gm,
+ * function(){...});
+ *
+ */
+showdown.subParser('stripLinkDefinitions', function (text, options, globals) {
+ 'use strict';
+
+ var regex = /^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*(\S+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=~0))/gm;
+
+ // attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
+ text += '~0';
+
+ text = text.replace(regex, function (wholeMatch, linkId, url, width, height, blankLines, title) {
+ linkId = linkId.toLowerCase();
+ globals.gUrls[linkId] = showdown.subParser('encodeAmpsAndAngles')(url); // Link IDs are case-insensitive
+
+ if (blankLines) {
+ // Oops, found blank lines, so it's not a title.
+ // Put back the parenthetical statement we stole.
+ return blankLines + title;
+
+ } else {
+ if (title) {
+ globals.gTitles[linkId] = title.replace(/"|'/g, '"');
+ }
+ if (options.parseImgDimensions && width && height) {
+ globals.gDimensions[linkId] = {
+ width: width,
+ height: height
+ };
+ }
+ }
+ // Completely remove the definition from the text
+ return '';
+ });
+
+ // attacklab: strip sentinel
+ text = text.replace(/~0/, '');
+
+ return text;
+});
+
+showdown.subParser('tables', function (text, options, globals) {
+ 'use strict';
+
+ if (!options.tables) {
+ return text;
+ }
+
+ var tableRgx = /^[ \t]{0,3}\|?.+\|.+\n[ \t]{0,3}\|?[ \t]*:?[ \t]*(?:-|=){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:-|=){2,}[\s\S]+?(?:\n\n|~0)/gm;
+
+ function parseStyles(sLine) {
+ if (/^:[ \t]*--*$/.test(sLine)) {
+ return ' style="text-align:left;"';
+ } else if (/^--*[ \t]*:[ \t]*$/.test(sLine)) {
+ return ' style="text-align:right;"';
+ } else if (/^:[ \t]*--*[ \t]*:$/.test(sLine)) {
+ return ' style="text-align:center;"';
+ } else {
+ return '';
+ }
+ }
+
+ function parseHeaders(header, style) {
+ var id = '';
+ header = header.trim();
+ if (options.tableHeaderId) {
+ id = ' id="' + header.replace(/ /g, '_').toLowerCase() + '"';
+ }
+ header = showdown.subParser('spanGamut')(header, options, globals);
+
+ return '' + header + ' \n';
+ }
+
+ function parseCells(cell, style) {
+ var subText = showdown.subParser('spanGamut')(cell, options, globals);
+ return '' + subText + ' \n';
+ }
+
+ function buildTable(headers, cells) {
+ var tb = '\n\n\n',
+ tblLgn = headers.length;
+
+ for (var i = 0; i < tblLgn; ++i) {
+ tb += headers[i];
+ }
+ tb += ' \n \n\n';
+
+ for (i = 0; i < cells.length; ++i) {
+ tb += '\n';
+ for (var ii = 0; ii < tblLgn; ++ii) {
+ tb += cells[i][ii];
+ }
+ tb += ' \n';
+ }
+ tb += ' \n
\n';
+ return tb;
+ }
+
+ text = globals.converter._dispatch('tables.before', text, options, globals);
+
+ text = text.replace(tableRgx, function (rawTable) {
+
+ var i, tableLines = rawTable.split('\n');
+
+ // strip wrong first and last column if wrapped tables are used
+ for (i = 0; i < tableLines.length; ++i) {
+ if (/^[ \t]{0,3}\|/.test(tableLines[i])) {
+ tableLines[i] = tableLines[i].replace(/^[ \t]{0,3}\|/, '');
+ }
+ if (/\|[ \t]*$/.test(tableLines[i])) {
+ tableLines[i] = tableLines[i].replace(/\|[ \t]*$/, '');
+ }
+ }
+
+ var rawHeaders = tableLines[0].split('|').map(function (s) { return s.trim();}),
+ rawStyles = tableLines[1].split('|').map(function (s) { return s.trim();}),
+ rawCells = [],
+ headers = [],
+ styles = [],
+ cells = [];
+
+ tableLines.shift();
+ tableLines.shift();
+
+ for (i = 0; i < tableLines.length; ++i) {
+ if (tableLines[i].trim() === '') {
+ continue;
+ }
+ rawCells.push(
+ tableLines[i]
+ .split('|')
+ .map(function (s) {
+ return s.trim();
+ })
+ );
+ }
+
+ if (rawHeaders.length < rawStyles.length) {
+ return rawTable;
+ }
+
+ for (i = 0; i < rawStyles.length; ++i) {
+ styles.push(parseStyles(rawStyles[i]));
+ }
+
+ for (i = 0; i < rawHeaders.length; ++i) {
+ if (showdown.helper.isUndefined(styles[i])) {
+ styles[i] = '';
+ }
+ headers.push(parseHeaders(rawHeaders[i], styles[i]));
+ }
+
+ for (i = 0; i < rawCells.length; ++i) {
+ var row = [];
+ for (var ii = 0; ii < headers.length; ++ii) {
+ if (showdown.helper.isUndefined(rawCells[i][ii])) {
+
+ }
+ row.push(parseCells(rawCells[i][ii], styles[ii]));
+ }
+ cells.push(row);
+ }
+
+ return buildTable(headers, cells);
+ });
+
+ text = globals.converter._dispatch('tables.after', text, options, globals);
+
+ return text;
+});
+
+/**
+ * Swap back in all the special characters we've hidden.
+ */
+showdown.subParser('unescapeSpecialChars', function (text) {
+ 'use strict';
+
+ text = text.replace(/~E(\d+)E/g, function (wholeMatch, m1) {
+ var charCodeToReplace = parseInt(m1);
+ return String.fromCharCode(charCodeToReplace);
+ });
+ return text;
+});
+module.exports = showdown;
diff --git a/view/crmebNewUI/wxParse/wxDiscode.js b/view/crmebNewUI/wxParse/wxDiscode.js
new file mode 100644
index 00000000..fca29bb1
--- /dev/null
+++ b/view/crmebNewUI/wxParse/wxDiscode.js
@@ -0,0 +1,207 @@
+// HTML 支持的数学符号
+function strNumDiscode(str){
+ str = str.replace(/∀/g, '∀');
+ str = str.replace(/∂/g, '∂');
+ str = str.replace(/&exists;/g, '∃');
+ str = str.replace(/∅/g, '∅');
+ str = str.replace(/∇/g, '∇');
+ str = str.replace(/∈/g, '∈');
+ str = str.replace(/∉/g, '∉');
+ str = str.replace(/∋/g, '∋');
+ str = str.replace(/∏/g, '∏');
+ str = str.replace(/∑/g, '∑');
+ str = str.replace(/−/g, '−');
+ str = str.replace(/∗/g, '∗');
+ str = str.replace(/√/g, '√');
+ str = str.replace(/∝/g, '∝');
+ str = str.replace(/∞/g, '∞');
+ str = str.replace(/∠/g, '∠');
+ str = str.replace(/∧/g, '∧');
+ str = str.replace(/∨/g, '∨');
+ str = str.replace(/∩/g, '∩');
+ str = str.replace(/∩/g, '∪');
+ str = str.replace(/∫/g, '∫');
+ str = str.replace(/∴/g, '∴');
+ str = str.replace(/∼/g, '∼');
+ str = str.replace(/≅/g, '≅');
+ str = str.replace(/≈/g, '≈');
+ str = str.replace(/≠/g, '≠');
+ str = str.replace(/≤/g, '≤');
+ str = str.replace(/≥/g, '≥');
+ str = str.replace(/⊂/g, '⊂');
+ str = str.replace(/⊃/g, '⊃');
+ str = str.replace(/⊄/g, '⊄');
+ str = str.replace(/⊆/g, '⊆');
+ str = str.replace(/⊇/g, '⊇');
+ str = str.replace(/⊕/g, '⊕');
+ str = str.replace(/⊗/g, '⊗');
+ str = str.replace(/⊥/g, '⊥');
+ str = str.replace(/⋅/g, '⋅');
+ return str;
+}
+
+//HTML 支持的希腊字母
+function strGreeceDiscode(str){
+ str = str.replace(/Α/g, 'Α');
+ str = str.replace(/Β/g, 'Β');
+ str = str.replace(/Γ/g, 'Γ');
+ str = str.replace(/Δ/g, 'Δ');
+ str = str.replace(/Ε/g, 'Ε');
+ str = str.replace(/Ζ/g, 'Ζ');
+ str = str.replace(/Η/g, 'Η');
+ str = str.replace(/Θ/g, 'Θ');
+ str = str.replace(/Ι/g, 'Ι');
+ str = str.replace(/Κ/g, 'Κ');
+ str = str.replace(/Λ/g, 'Λ');
+ str = str.replace(/Μ/g, 'Μ');
+ str = str.replace(/Ν/g, 'Ν');
+ str = str.replace(/Ξ/g, 'Ν');
+ str = str.replace(/Ο/g, 'Ο');
+ str = str.replace(/Π/g, 'Π');
+ str = str.replace(/Ρ/g, 'Ρ');
+ str = str.replace(/Σ/g, 'Σ');
+ str = str.replace(/Τ/g, 'Τ');
+ str = str.replace(/Υ/g, 'Υ');
+ str = str.replace(/Φ/g, 'Φ');
+ str = str.replace(/Χ/g, 'Χ');
+ str = str.replace(/Ψ/g, 'Ψ');
+ str = str.replace(/Ω/g, 'Ω');
+
+ str = str.replace(/α/g, 'α');
+ str = str.replace(/β/g, 'β');
+ str = str.replace(/γ/g, 'γ');
+ str = str.replace(/δ/g, 'δ');
+ str = str.replace(/ε/g, 'ε');
+ str = str.replace(/ζ/g, 'ζ');
+ str = str.replace(/η/g, 'η');
+ str = str.replace(/θ/g, 'θ');
+ str = str.replace(/ι/g, 'ι');
+ str = str.replace(/κ/g, 'κ');
+ str = str.replace(/λ/g, 'λ');
+ str = str.replace(/μ/g, 'μ');
+ str = str.replace(/ν/g, 'ν');
+ str = str.replace(/ξ/g, 'ξ');
+ str = str.replace(/ο/g, 'ο');
+ str = str.replace(/π/g, 'π');
+ str = str.replace(/ρ/g, 'ρ');
+ str = str.replace(/ς/g, 'ς');
+ str = str.replace(/σ/g, 'σ');
+ str = str.replace(/τ/g, 'τ');
+ str = str.replace(/υ/g, 'υ');
+ str = str.replace(/φ/g, 'φ');
+ str = str.replace(/χ/g, 'χ');
+ str = str.replace(/ψ/g, 'ψ');
+ str = str.replace(/ω/g, 'ω');
+ str = str.replace(/ϑ/g, 'ϑ');
+ str = str.replace(/ϒ/g, 'ϒ');
+ str = str.replace(/ϖ/g, 'ϖ');
+ str = str.replace(/·/g, '·');
+ return str;
+}
+
+//
+
+function strcharacterDiscode(str){
+ // 加入常用解析
+ str = str.replace(/ /g, ' ');
+ str = str.replace(/"/g, "'");
+ str = str.replace(/&/g, '&');
+ // str = str.replace(/</g, '‹');
+ // str = str.replace(/>/g, '›');
+
+ str = str.replace(/</g, '<');
+ str = str.replace(/>/g, '>');
+ str = str.replace(/•/g, '•');
+
+ return str;
+}
+
+// HTML 支持的其他实体
+function strOtherDiscode(str){
+ str = str.replace(/Œ/g, 'Œ');
+ str = str.replace(/œ/g, 'œ');
+ str = str.replace(/Š/g, 'Š');
+ str = str.replace(/š/g, 'š');
+ str = str.replace(/Ÿ/g, 'Ÿ');
+ str = str.replace(/ƒ/g, 'ƒ');
+ str = str.replace(/ˆ/g, 'ˆ');
+ str = str.replace(/˜/g, '˜');
+ str = str.replace(/ /g, '');
+ str = str.replace(/ /g, '');
+ str = str.replace(/ /g, '');
+ str = str.replace(//g, '');
+ str = str.replace(//g, '');
+ str = str.replace(//g, '');
+ str = str.replace(//g, '');
+ str = str.replace(/–/g, '–');
+ str = str.replace(/—/g, '—');
+ str = str.replace(/‘/g, '‘');
+ str = str.replace(/’/g, '’');
+ str = str.replace(/‚/g, '‚');
+ str = str.replace(/“/g, '“');
+ str = str.replace(/”/g, '”');
+ str = str.replace(/„/g, '„');
+ str = str.replace(/†/g, '†');
+ str = str.replace(/‡/g, '‡');
+ str = str.replace(/•/g, '•');
+ str = str.replace(/…/g, '…');
+ str = str.replace(/‰/g, '‰');
+ str = str.replace(/′/g, '′');
+ str = str.replace(/″/g, '″');
+ str = str.replace(/‹/g, '‹');
+ str = str.replace(/›/g, '›');
+ str = str.replace(/‾/g, '‾');
+ str = str.replace(/€/g, '€');
+ str = str.replace(/™/g, '™');
+
+ str = str.replace(/←/g, '←');
+ str = str.replace(/↑/g, '↑');
+ str = str.replace(/→/g, '→');
+ str = str.replace(/↓/g, '↓');
+ str = str.replace(/↔/g, '↔');
+ str = str.replace(/↵/g, '↵');
+ str = str.replace(/⌈/g, '⌈');
+ str = str.replace(/⌉/g, '⌉');
+
+ str = str.replace(/⌊/g, '⌊');
+ str = str.replace(/⌋/g, '⌋');
+ str = str.replace(/◊/g, '◊');
+ str = str.replace(/♠/g, '♠');
+ str = str.replace(/♣/g, '♣');
+ str = str.replace(/♥/g, '♥');
+
+ str = str.replace(/♦/g, '♦');
+ str = str.replace(/'/g, '\'');
+ return str;
+}
+
+function strMoreDiscode(str){
+ str = str.replace(/\r\n/g,"");
+ str = str.replace(/\n/g,"");
+
+ str = str.replace(/code/g,"wxxxcode-style");
+ return str;
+}
+
+function strDiscode(str){
+ str = strNumDiscode(str);
+ str = strGreeceDiscode(str);
+ str = strcharacterDiscode(str);
+ str = strOtherDiscode(str);
+ str = strMoreDiscode(str);
+ return str;
+}
+function urlToHttpUrl(url,rep){
+
+ var patt1 = new RegExp("^//");
+ var result = patt1.test(url);
+ if(result){
+ url = rep+":"+url;
+ }
+ return url;
+}
+
+module.exports = {
+ strDiscode:strDiscode,
+ urlToHttpUrl:urlToHttpUrl
+}
\ No newline at end of file
diff --git a/view/crmebNewUI/wxParse/wxParse.js b/view/crmebNewUI/wxParse/wxParse.js
new file mode 100644
index 00000000..89c1000b
--- /dev/null
+++ b/view/crmebNewUI/wxParse/wxParse.js
@@ -0,0 +1,157 @@
+/**
+ * author: Di (微信小程序开发工程师)
+ * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com)
+ * 垂直微信小程序开发交流社区
+ *
+ * github地址: https://github.com/icindy/wxParse
+ *
+ * for: 微信小程序富文本解析
+ * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184
+ */
+
+/**
+ * utils函数引入
+ **/
+import showdown from './showdown.js';
+import HtmlToJson from './html2json.js';
+/**
+ * 配置及公有属性
+ **/
+var realWindowWidth = 0;
+var realWindowHeight = 0;
+wx.getSystemInfo({
+ success: function (res) {
+ realWindowWidth = res.windowWidth
+ realWindowHeight = res.windowHeight
+ }
+})
+/**
+ * 主函数入口区
+ **/
+function wxParse(bindName = 'wxParseData', type='html', data='数据不能为空
', target,imagePadding) {
+ var that = target;
+ var transData = {};//存放转化后的数据
+ if (type == 'html') {
+ transData = HtmlToJson.html2json(data, bindName);
+ } else if (type == 'md' || type == 'markdown') {
+ var converter = new showdown.Converter();
+ var html = converter.makeHtml(data);
+ transData = HtmlToJson.html2json(html, bindName);
+ }
+ transData.view = {};
+ transData.view.imagePadding = 0;
+ if(typeof(imagePadding) != 'undefined'){
+ transData.view.imagePadding = imagePadding
+ }
+ var bindData = {};
+ bindData[bindName] = transData;
+ that.setData(bindData)
+ that.wxParseImgLoad = wxParseImgLoad;
+ that.wxParseImgTap = wxParseImgTap;
+}
+// 图片点击事件
+function wxParseImgTap(e) {
+ var that = this;
+ var nowImgUrl = e.target.dataset.src;
+ var tagFrom = e.target.dataset.from;
+ if (typeof (tagFrom) != 'undefined' && tagFrom.length > 0) {
+ wx.previewImage({
+ current: nowImgUrl, // 当前显示图片的http链接
+ urls: that.data[tagFrom].imageUrls // 需要预览的图片http链接列表
+ })
+ }
+}
+
+/**
+ * 图片视觉宽高计算函数区
+ **/
+function wxParseImgLoad(e) {
+ var that = this;
+ var tagFrom = e.target.dataset.from;
+ var idx = e.target.dataset.idx;
+ if (typeof (tagFrom) != 'undefined' && tagFrom.length > 0) {
+ calMoreImageInfo(e, idx, that, tagFrom)
+ }
+}
+// 假循环获取计算图片视觉最佳宽高
+function calMoreImageInfo(e, idx, that, bindName) {
+ var temData = that.data[bindName];
+ if (!temData || temData.images.length == 0) {
+ return;
+ }
+ var temImages = temData.images;
+ //因为无法获取view宽度 需要自定义padding进行计算,稍后处理
+ var recal = wxAutoImageCal(e.detail.width, e.detail.height,that,bindName);
+ // temImages[idx].width = recal.imageWidth;
+ // temImages[idx].height = recal.imageheight;
+ // temData.images = temImages;
+ // var bindData = {};
+ // bindData[bindName] = temData;
+ // that.setData(bindData);
+ var index = temImages[idx].index
+ var key = `${bindName}`
+ for (var i of index.split('.')) key+=`.nodes[${i}]`
+ var keyW = key + '.width'
+ var keyH = key + '.height'
+ that.setData({
+ [keyW]: recal.imageWidth,
+ [keyH]: recal.imageheight,
+ })
+}
+
+// 计算视觉优先的图片宽高
+function wxAutoImageCal(originalWidth, originalHeight,that,bindName) {
+ //获取图片的原始长宽
+ var windowWidth = 0, windowHeight = 0;
+ var autoWidth = 0, autoHeight = 0;
+ var results = {};
+ var padding = that.data[bindName].view.imagePadding;
+ windowWidth = realWindowWidth-2*padding;
+ windowHeight = realWindowHeight;
+ //判断按照那种方式进行缩放
+ // console.log("windowWidth" + windowWidth);
+ if (originalWidth > windowWidth) {//在图片width大于手机屏幕width时候
+ autoWidth = windowWidth;
+ // console.log("autoWidth" + autoWidth);
+ autoHeight = (autoWidth * originalHeight) / originalWidth;
+ // console.log("autoHeight" + autoHeight);
+ results.imageWidth = autoWidth;
+ results.imageheight = autoHeight;
+ } else {//否则展示原来的数据
+ results.imageWidth = originalWidth;
+ results.imageheight = originalHeight;
+ }
+ return results;
+}
+
+function wxParseTemArray(temArrayName,bindNameReg,total,that){
+ var array = [];
+ var temData = that.data;
+ var obj = null;
+ for(var i = 0; i < total; i++){
+ var simArr = temData[bindNameReg+i].nodes;
+ array.push(simArr);
+ }
+
+ temArrayName = temArrayName || 'wxParseTemArray';
+ obj = JSON.parse('{"'+ temArrayName +'":""}');
+ obj[temArrayName] = array;
+ that.setData(obj);
+}
+
+/**
+ * 配置emojis
+ *
+ */
+
+function emojisInit(reg='',baseSrc="/wxParse/emojis/",emojis){
+ HtmlToJson.emojisInit(reg,baseSrc,emojis);
+}
+
+module.exports = {
+ wxParse: wxParse,
+ wxParseTemArray:wxParseTemArray,
+ emojisInit:emojisInit
+}
+
+
diff --git a/view/crmebNewUI/wxParse/wxParse.wxml b/view/crmebNewUI/wxParse/wxParse.wxml
new file mode 100644
index 00000000..00fa5685
--- /dev/null
+++ b/view/crmebNewUI/wxParse/wxParse.wxml
@@ -0,0 +1,967 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.text}}
+
+
+
+
+
+
+
+
+ \n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/view/crmebNewUI/wxParse/wxParse.wxss b/view/crmebNewUI/wxParse/wxParse.wxss
new file mode 100644
index 00000000..a66fd819
--- /dev/null
+++ b/view/crmebNewUI/wxParse/wxParse.wxss
@@ -0,0 +1,207 @@
+
+/**
+ * author: Di (微信小程序开发工程师)
+ * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com)
+ * 垂直微信小程序开发交流社区
+ *
+ * github地址: https://github.com/icindy/wxParse
+ *
+ * for: 微信小程序富文本解析
+ * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184
+ */
+
+.wxParse{
+ margin: 0 5px;
+ font-family: Helvetica,sans-serif;
+ font-size: 28rpx;
+ color: #666;
+ line-height: 1.8;
+}
+.wxParse view{
+ word-break:break-all;
+ margin-bottom: -5rpx;
+}
+.wxParse-inline{
+ display: inline;
+ margin: 0;
+ padding: 0 15rpx;
+}
+/*//标题 */
+.wxParse-div{margin: 0;padding: 0;}
+.wxParse-h1{ font-size:2em; margin: .67em 0 }
+.wxParse-h2{ font-size:1.5em; margin: .75em 0 }
+.wxParse-h3{ font-size:1.17em; margin: .83em 0 }
+.wxParse-h4{ margin: 1.12em 0}
+.wxParse-h5 { font-size:.83em; margin: 1.5em 0 }
+.wxParse-h6{ font-size:.75em; margin: 1.67em 0 }
+
+.wxParse-h1 {
+ font-size: 18px;
+ font-weight: 400;
+ margin-bottom: .9em;
+}
+.wxParse-h2 {
+ font-size: 16px;
+ font-weight: 400;
+ margin-bottom: .34em;
+}
+.wxParse-h3 {
+ font-weight: 400;
+ font-size: 15px;
+ margin-bottom: .34em;
+}
+.wxParse-h4 {
+ font-weight: 400;
+ font-size: 14px;
+ margin-bottom: .24em;
+}
+.wxParse-h5 {
+ font-weight: 400;
+ font-size: 13px;
+ margin-bottom: .14em;
+}
+.wxParse-h6 {
+ font-weight: 400;
+ font-size: 12px;
+ margin-bottom: .04em;
+}
+
+.wxParse-h1, .wxParse-h2, .wxParse-h3, .wxParse-h4, .wxParse-h5, .wxParse-h6, .wxParse-b, .wxParse-strong { font-weight: bolder }
+
+.wxParse-i,.wxParse-cite,.wxParse-em,.wxParse-var,.wxParse-address{font-style:italic}
+.wxParse-pre,.wxParse-tt,.wxParse-code,.wxParse-kbd,.wxParse-samp{font-family:monospace}
+.wxParse-pre{white-space:pre}
+.wxParse-big{font-size:1.17em}
+.wxParse-small,.wxParse-sub,.wxParse-sup{font-size:.83em}
+.wxParse-sub{vertical-align:sub}
+.wxParse-sup{vertical-align:super}
+.wxParse-s,.wxParse-strike,.wxParse-del{text-decoration:line-through}
+/*wxparse-自定义个性化的css样式*/
+/*增加video的css样式*/
+.wxParse-strong,.wxParse-s{display: inline}
+.wxParse-a{
+ color: deepskyblue;
+ word-break:break-all;
+ overflow:auto;
+}
+
+.wxParse-video{
+ text-align: center;
+ margin: 10px 0;
+}
+
+.wxParse-video-video{
+ width:100%;
+}
+
+.wxParse-img{
+ /*background-color: #efefef;*/
+ overflow: hidden;
+}
+
+.wxParse-blockquote {
+ margin: 0;
+ padding:10px 0 10px 5px;
+ font-family:Courier, Calibri,"宋体";
+ background:#f5f5f5;
+ border-left: 3px solid #dbdbdb;
+}
+
+.wxParse-code,.wxParse-wxxxcode-style{
+ display: inline;
+ background:#f5f5f5;
+}
+.wxParse-ul{
+ margin: 20rpx 10rpx;
+}
+
+.wxParse-li,.wxParse-li-inner{
+ display: flex;
+ align-items: baseline;
+ margin: 10rpx 0;
+}
+.wxParse-li-text{
+
+ align-items: center;
+ line-height: 20px;
+}
+
+.wxParse-li-circle{
+ display: inline-flex;
+ width: 5px;
+ height: 5px;
+ background-color: #333;
+ margin-right: 5px;
+}
+
+.wxParse-li-square{
+ display: inline-flex;
+ width: 10rpx;
+ height: 10rpx;
+ background-color: #333;
+ margin-right: 5px;
+}
+.wxParse-li-ring{
+ display: inline-flex;
+ width: 10rpx;
+ height: 10rpx;
+ border: 2rpx solid #333;
+ border-radius: 50%;
+ background-color: #fff;
+ margin-right: 5px;
+}
+
+/*.wxParse-table{
+ width: 100%;
+ height: 400px;
+}
+.wxParse-thead,.wxParse-tfoot,.wxParse-tr{
+ display: flex;
+ flex-direction: row;
+}
+.wxParse-th,.wxParse-td{
+ display: flex;
+ width: 580px;
+ overflow: auto;
+}*/
+
+.wxParse-u {
+ text-decoration: underline;
+}
+.wxParse-hide{
+ display: none;
+}
+.WxEmojiView{
+ align-items: center;
+}
+.wxEmoji{
+ width: 16px;
+ height:16px;
+}
+.wxParse-tr{
+ display: flex;
+ border-right:1px solid #e0e0e0;
+ border-bottom:1px solid #e0e0e0;
+ border-top:1px solid #e0e0e0;
+}
+.wxParse-th,
+.wxParse-td{
+ flex:1;
+ padding:5px;
+ font-size:28rpx;
+ border-left:1px solid #e0e0e0;
+ word-break: break-all;
+}
+.wxParse-td:last{
+ border-top:1px solid #e0e0e0;
+}
+.wxParse-th{
+ background:#f0f0f0;
+ border-top:1px solid #e0e0e0;
+}
+.wxParse-del{
+ display: inline;
+}
+.wxParse-figure {
+ overflow: hidden;
+}
diff --git a/view/新商城UI素材/个人中心素材/address.png b/view/新商城UI素材/个人中心素材/address.png
new file mode 100644
index 00000000..408b0cac
Binary files /dev/null and b/view/新商城UI素材/个人中心素材/address.png differ
diff --git a/view/新商城UI素材/个人中心素材/balance.png b/view/新商城UI素材/个人中心素材/balance.png
new file mode 100644
index 00000000..ef7344fe
Binary files /dev/null and b/view/新商城UI素材/个人中心素材/balance.png differ
diff --git a/view/新商城UI素材/个人中心素材/bargain.png b/view/新商城UI素材/个人中心素材/bargain.png
new file mode 100644
index 00000000..309fb946
Binary files /dev/null and b/view/新商城UI素材/个人中心素材/bargain.png differ
diff --git a/view/新商城UI素材/个人中心素材/collection.png b/view/新商城UI素材/个人中心素材/collection.png
new file mode 100644
index 00000000..b22fde2c
Binary files /dev/null and b/view/新商城UI素材/个人中心素材/collection.png differ
diff --git a/view/新商城UI素材/个人中心素材/coupon.png b/view/新商城UI素材/个人中心素材/coupon.png
new file mode 100644
index 00000000..27e63401
Binary files /dev/null and b/view/新商城UI素材/个人中心素材/coupon.png differ
diff --git a/view/新商城UI素材/个人中心素材/customer.png b/view/新商城UI素材/个人中心素材/customer.png
new file mode 100644
index 00000000..dc97ca81
Binary files /dev/null and b/view/新商城UI素材/个人中心素材/customer.png differ
diff --git a/view/新商城UI素材/个人中心素材/extension.png b/view/新商城UI素材/个人中心素材/extension.png
new file mode 100644
index 00000000..d34cb521
Binary files /dev/null and b/view/新商城UI素材/个人中心素材/extension.png differ
diff --git a/view/新商城UI素材/个人中心素材/memberCenter.png b/view/新商城UI素材/个人中心素材/memberCenter.png
new file mode 100644
index 00000000..978edd27
Binary files /dev/null and b/view/新商城UI素材/个人中心素材/memberCenter.png differ
diff --git a/view/新商城UI素材/会员素材/普通会员 2.png b/view/新商城UI素材/会员素材/普通会员 2.png
new file mode 100644
index 00000000..e2dee3aa
Binary files /dev/null and b/view/新商城UI素材/会员素材/普通会员 2.png differ
diff --git a/view/新商城UI素材/会员素材/普通会员.jpg b/view/新商城UI素材/会员素材/普通会员.jpg
new file mode 100644
index 00000000..cea01da7
Binary files /dev/null and b/view/新商城UI素材/会员素材/普通会员.jpg differ
diff --git a/view/新商城UI素材/会员素材/白银会员 2.png b/view/新商城UI素材/会员素材/白银会员 2.png
new file mode 100644
index 00000000..7e6826d3
Binary files /dev/null and b/view/新商城UI素材/会员素材/白银会员 2.png differ
diff --git a/view/新商城UI素材/会员素材/白银会员.jpg b/view/新商城UI素材/会员素材/白银会员.jpg
new file mode 100644
index 00000000..1f141fb6
Binary files /dev/null and b/view/新商城UI素材/会员素材/白银会员.jpg differ
diff --git a/view/新商城UI素材/会员素材/钻石会员 2.png b/view/新商城UI素材/会员素材/钻石会员 2.png
new file mode 100644
index 00000000..02e8cafe
Binary files /dev/null and b/view/新商城UI素材/会员素材/钻石会员 2.png differ
diff --git a/view/新商城UI素材/会员素材/钻石会员.jpg b/view/新商城UI素材/会员素材/钻石会员.jpg
new file mode 100644
index 00000000..55ac1aee
Binary files /dev/null and b/view/新商城UI素材/会员素材/钻石会员.jpg differ
diff --git a/view/新商城UI素材/会员素材/青铜会员.jpg b/view/新商城UI素材/会员素材/青铜会员.jpg
new file mode 100644
index 00000000..da927625
Binary files /dev/null and b/view/新商城UI素材/会员素材/青铜会员.jpg differ
diff --git a/view/新商城UI素材/会员素材/青铜会员.png b/view/新商城UI素材/会员素材/青铜会员.png
new file mode 100644
index 00000000..fdd0f81e
Binary files /dev/null and b/view/新商城UI素材/会员素材/青铜会员.png differ
diff --git a/view/新商城UI素材/会员素材/黄金会员 2.png b/view/新商城UI素材/会员素材/黄金会员 2.png
new file mode 100644
index 00000000..2986cb6f
Binary files /dev/null and b/view/新商城UI素材/会员素材/黄金会员 2.png differ
diff --git a/view/新商城UI素材/会员素材/黄金会员.jpg b/view/新商城UI素材/会员素材/黄金会员.jpg
new file mode 100644
index 00000000..7d1874b8
Binary files /dev/null and b/view/新商城UI素材/会员素材/黄金会员.jpg differ
diff --git a/view/新商城UI素材/会员素材/黄铜会员 2.png b/view/新商城UI素材/会员素材/黄铜会员 2.png
new file mode 100644
index 00000000..4def0da7
Binary files /dev/null and b/view/新商城UI素材/会员素材/黄铜会员 2.png differ
diff --git a/view/新商城UI素材/会员素材/黄铜会员.jpg b/view/新商城UI素材/会员素材/黄铜会员.jpg
new file mode 100644
index 00000000..2a3f1c73
Binary files /dev/null and b/view/新商城UI素材/会员素材/黄铜会员.jpg differ
diff --git a/view/新商城UI素材/订单详情动态图/dfh001.gif b/view/新商城UI素材/订单详情动态图/dfh001.gif
new file mode 100644
index 00000000..d243e8f6
Binary files /dev/null and b/view/新商城UI素材/订单详情动态图/dfh001.gif differ
diff --git a/view/新商城UI素材/订单详情动态图/dfk001.gif b/view/新商城UI素材/订单详情动态图/dfk001.gif
new file mode 100644
index 00000000..f2e4522f
Binary files /dev/null and b/view/新商城UI素材/订单详情动态图/dfk001.gif differ
diff --git a/view/新商城UI素材/订单详情动态图/dpj001.gif b/view/新商城UI素材/订单详情动态图/dpj001.gif
new file mode 100644
index 00000000..d6d55a53
Binary files /dev/null and b/view/新商城UI素材/订单详情动态图/dpj001.gif differ
diff --git a/view/新商城UI素材/订单详情动态图/dsh001.gif b/view/新商城UI素材/订单详情动态图/dsh001.gif
new file mode 100644
index 00000000..986eb256
Binary files /dev/null and b/view/新商城UI素材/订单详情动态图/dsh001.gif differ
diff --git a/view/新商城UI素材/订单详情动态图/ywc001.gif b/view/新商城UI素材/订单详情动态图/ywc001.gif
new file mode 100644
index 00000000..fc31743c
Binary files /dev/null and b/view/新商城UI素材/订单详情动态图/ywc001.gif differ