joe 2 years ago
parent
commit
6e468e3e25
100 changed files with 8058 additions and 3037 deletions
  1. 30 1
      CHANGELOG
  2. 9 0
      TODO
  3. 7 6
      app/admin/common.php
  4. 105 0
      app/admin/controller/user/UserChannel.php
  5. 9 6
      app/admin/controller/user/UserGroup.php
  6. 39 0
      app/admin/model/user/UserChannel.php
  7. 109 0
      app/admin/view/user/user_channel/index.php
  8. 0 1
      app/admin/view/user/user_group/index.php
  9. 4 0
      view/xcx/.babel.config.js
  10. 30 0
      view/xcx/.eslintrc.js
  11. 66 0
      view/xcx/.prettierrc.js
  12. 4 0
      view/xcx/README.md
  13. 149 151
      view/xcx/app.json
  14. 0 2
      view/xcx/app.wxss
  15. 65 68
      view/xcx/components/address-window/index.js
  16. 3 3
      view/xcx/components/address-window/index.json
  17. 25 18
      view/xcx/components/address-window/index.wxml
  18. 50 50
      view/xcx/components/address-window/index.wxss
  19. 179 181
      view/xcx/components/authorize/authorize.js
  20. 2 2
      view/xcx/components/authorize/authorize.json
  21. 25 16
      view/xcx/components/authorize/authorize.wxml
  22. 48 48
      view/xcx/components/authorize/authorize.wxss
  23. 54 57
      view/xcx/components/coupon-list-window/index.js
  24. 3 3
      view/xcx/components/coupon-list-window/index.json
  25. 32 26
      view/xcx/components/coupon-list-window/index.wxml
  26. 51 51
      view/xcx/components/coupon-list-window/index.wxss
  27. 17 21
      view/xcx/components/coupon-window/index.js
  28. 2 2
      view/xcx/components/coupon-window/index.json
  29. 20 20
      view/xcx/components/coupon-window/index.wxml
  30. 0 0
      view/xcx/components/coupon-window/index.wxss
  31. 16 16
      view/xcx/components/general-window/index.js
  32. 2 2
      view/xcx/components/general-window/index.json
  33. 10 10
      view/xcx/components/general-window/index.wxml
  34. 54 54
      view/xcx/components/general-window/index.wxss
  35. 36 36
      view/xcx/components/goodList/index.js
  36. 3 3
      view/xcx/components/goodList/index.json
  37. 27 34
      view/xcx/components/goodList/index.wxml
  38. 43 43
      view/xcx/components/goodList/index.wxss
  39. 61 77
      view/xcx/components/home/index.js
  40. 3 3
      view/xcx/components/home/index.json
  41. 25 15
      view/xcx/components/home/index.wxml
  42. 32 32
      view/xcx/components/home/index.wxss
  43. 171 170
      view/xcx/components/mine/index.js
  44. 5 5
      view/xcx/components/mine/index.json
  45. 38 38
      view/xcx/components/mine/index.wxml
  46. 99 99
      view/xcx/components/mine/index.wxss
  47. 78 77
      view/xcx/components/navbar/index.js
  48. 3 3
      view/xcx/components/navbar/index.json
  49. 19 15
      view/xcx/components/navbar/index.wxml
  50. 55 55
      view/xcx/components/navbar/index.wxss
  51. 17 17
      view/xcx/components/orderGoods/index.js
  52. 4 4
      view/xcx/components/orderGoods/index.json
  53. 29 22
      view/xcx/components/orderGoods/index.wxml
  54. 10 10
      view/xcx/components/orderGoods/index.wxss
  55. 148 127
      view/xcx/components/payment/index.js
  56. 3 3
      view/xcx/components/payment/index.json
  57. 22 16
      view/xcx/components/payment/index.wxml
  58. 46 46
      view/xcx/components/payment/index.wxss
  59. 157 155
      view/xcx/components/price-change/index.js
  60. 3 3
      view/xcx/components/price-change/index.json
  61. 52 44
      view/xcx/components/price-change/index.wxml
  62. 26 26
      view/xcx/components/price-change/index.wxss
  63. 100 100
      view/xcx/components/product-window/index.js
  64. 3 3
      view/xcx/components/product-window/index.json
  65. 65 41
      view/xcx/components/product-window/index.wxml
  66. 87 87
      view/xcx/components/product-window/index.wxss
  67. 35 35
      view/xcx/components/productConSwiper/index.js
  68. 3 3
      view/xcx/components/productConSwiper/index.json
  69. 39 23
      view/xcx/components/productConSwiper/index.wxml
  70. 40 40
      view/xcx/components/productConSwiper/index.wxss
  71. 35 41
      view/xcx/components/promotionGood/index.js
  72. 3 3
      view/xcx/components/promotionGood/index.json
  73. 21 26
      view/xcx/components/promotionGood/index.wxml
  74. 26 26
      view/xcx/components/promotionGood/index.wxss
  75. 35 35
      view/xcx/components/recommend/index.js
  76. 3 3
      view/xcx/components/recommend/index.json
  77. 24 21
      view/xcx/components/recommend/index.wxml
  78. 24 24
      view/xcx/components/recommend/index.wxss
  79. 22 24
      view/xcx/components/share-red-packets/index.js
  80. 3 3
      view/xcx/components/share-red-packets/index.json
  81. 11 11
      view/xcx/components/share-red-packets/index.wxml
  82. 47 47
      view/xcx/components/share-red-packets/index.wxss
  83. 25 25
      view/xcx/components/swipers/index.js
  84. 3 3
      view/xcx/components/swipers/index.json
  85. 20 15
      view/xcx/components/swipers/index.wxml
  86. 19 19
      view/xcx/components/swipers/index.wxss
  87. 18 22
      view/xcx/components/userEvaluation/index.js
  88. 2 2
      view/xcx/components/userEvaluation/index.json
  89. 28 22
      view/xcx/components/userEvaluation/index.wxml
  90. 47 47
      view/xcx/components/userEvaluation/index.wxss
  91. 14 18
      view/xcx/components/write-off/index.js
  92. 2 2
      view/xcx/components/write-off/index.json
  93. 14 13
      view/xcx/components/write-off/index.wxml
  94. 63 63
      view/xcx/components/write-off/index.wxss
  95. 31 31
      view/xcx/config.js
  96. 19 1
      view/xcx/css/animate.wxss
  97. 0 7
      view/xcx/css/guildford.wxss
  98. 152 158
      view/xcx/css/style.wxss
  99. 4541 0
      view/xcx/css/wxbase.wxss
  100. 0 0
      view/xcx/miniprogram_npm/mobx-miniprogram-bindings/index.js

+ 30 - 1
CHANGELOG

@@ -78,4 +78,33 @@ VALUES('leader_robot_earn_max', 'text', 'number', 25, '', NULL, NULL, 100, NULL,
 
 2022-08-18
 
-ALTER TABLE twong.eb_system_attachment CHANGE att_id id int(10) auto_increment NOT NULL;
+ALTER TABLE twong.eb_system_attachment CHANGE att_id id int(10) auto_increment NOT NULL;
+
+2022-09-30
+
+CREATE TABLE `eb_user_streaks` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `uid` int(11) NOT NULL,
+  `flag` int(2) NOT NULL DEFAULT 0 COMMENT '0 连赢 1 连输',
+  `link_id` varchar(32) NOT NULL COMMENT '订单号',
+  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+  `updated_at` timestamp NULL DEFAULT NULL ON UPDATE current_timestamp(),
+  PRIMARY KEY (`id`),
+  KEY `idx_user_streaks_uid_flag` (`uid`,`flag`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
+
+CREATE TABLE `eb_dict_channels` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `name` varchar(255) NOT NULL COMMENT '名称',
+  `code` varchar(16) NOT NULL COMMENT '渠道代码',
+  `desc` varchar(1024) NOT NULL DEFAULT '' COMMENT '渠道说明',
+  `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
+  `updated_at` timestamp NULL DEFAULT NULL ON UPDATE current_timestamp(),
+  PRIMARY KEY (`id`),
+  KEY `idx_channels_code` (`code`),
+  KEY `idx_channels_name` (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
+
+INSERT INTO eb_system_menus
+(id, pid, icon, menu_name, module, controller, `action`, params, sort, is_show, access)
+VALUES(506, 151, 'stumbleupon', '会员渠道', 'admin', 'user.user_channel', 'index', '[]', 0, 1, 1);

+ 9 - 0
TODO

@@ -0,0 +1,9 @@
+1. 支持连输几次,连赢几次的奖励和补贴,记录相应的订单信息
+2. 支持大会员系统
+3. 支持分享商品并形成销售后的提成
+4. 小程序端的绑定手机号
+5. 小程序端微信通知
+6. 排行榜做到首页
+7. 首页登录
+8. 首页滚动消息优化
+9. 小程序端依赖升级

+ 7 - 6
app/admin/common.php

@@ -40,7 +40,7 @@ if (!function_exists('attr_format')) {
                                 //替代变量4
                                 $rep4['detail'][$rep3[0]] = isset($rep3[1]) ? $rep3[1] : '';
                             }
-                            if($count == count($rep4['detail']))
+                            if ($count == count($rep4['detail']))
                                 $res[] = $rep4;
                         }
                     }
@@ -68,7 +68,7 @@ if (!function_exists('get_month')) {
      * @param int $ceil
      * @return array
      */
-    function get_month($time = '', $ceil = 0)
+    function get_month($time = '', $ceil = 0): array
     {
         if (empty($time)) {
             $firstday = date("Y-m-01", time());
@@ -123,11 +123,11 @@ if (!function_exists('get_this_class_methods')) {
         $arrayall = get_class_methods($class);
         if ($parent_class = get_parent_class($class)) {
             $arrayparent = get_class_methods($parent_class);
-            $arraynow = array_diff($arrayall, $arrayparent);//去除父级的
+            $arraynow = array_diff($arrayall, $arrayparent); //去除父级的
         } else {
             $arraynow = $arrayall;
         }
-        return array_diff($arraynow, $unarray);//去除无用的
+        return array_diff($arraynow, $unarray); //去除无用的
     }
 }
 
@@ -149,7 +149,8 @@ if (!function_exists('verify_domain')) {
 }
 
 if (!function_exists('getFileHeaders')) {
-    function getFileHeaders(string $url, $isData = true) {
+    function getFileHeaders(string $url, $isData = true)
+    {
         stream_context_set_default(['ssl' => ['verify_peer' => false, 'verify_peer_name' => false]]);
         $header['size'] = 0;
         $header['type'] = 'image/jpeg';
@@ -189,4 +190,4 @@ if (!function_exists('getUrlImgInfo')) {
             'time' => time(),
         ];
     }
-}
+}

+ 105 - 0
app/admin/controller/user/UserChannel.php

@@ -0,0 +1,105 @@
+<?php
+
+namespace app\admin\controller\user;
+
+use app\admin\controller\AuthController;
+use app\admin\model\user\UserChannel as ChannelModel;
+use crmeb\services\JsonService;
+use crmeb\services\UtilService;
+use crmeb\services\FormBuilder as Form;
+use think\facade\Route as Url;
+
+/**
+ * Class UserGroup
+ * @package app\admin\controller\user
+ */
+class UserChannel extends AuthController
+{
+    /**
+     * 会员分组页面
+     * @return string
+     */
+    public function index()
+    {
+        return $this->fetch();
+    }
+
+    /**
+     * 分组列表
+     */
+    public function channelList()
+    {
+        $where = UtilService::getMore([
+            ['page', 1],
+            ['limit', 20],
+        ]);
+        return JsonService::successlayui(ChannelModel::getList($where));
+    }
+
+    /**
+     * 添加/修改分组页面
+     * @param int $id
+     * @return string
+     */
+    public function addChannel($id = 0)
+    {
+        $group = ChannelModel::get($id);
+        $f = [];
+        if (!$group) {
+            $f[] = Form::input('name', '渠道名称', '')->col(30);
+            $f[] = Form::input('code', '渠道代码', '')->col(30);
+            $f[] = Form::textarea('desc', '说明', '')->col(512)->rows(10);
+        } else {
+            $f[] = Form::input('name', '渠道名称', $group->getData('name'))->col(30);
+            $f[] = Form::input('code', '渠道代码', $group->getData('code'))->col(30);
+            $f[] = Form::textarea('desc', '说明', $group->getData('desc'))->col(512)->rows(10);
+        }
+        $form = Form::make_post_form('会员渠道', $f, Url::buildUrl('saveChannel', ['id' => $id]));
+        $this->assign(compact('form'));
+        return $this->fetch('public/form-builder');
+    }
+
+    /**
+     * 添加/修改
+     * @param int $id
+     */
+    public function saveChannel($id = 0)
+    {
+        $data = UtilService::postMore([
+            ['name', ''],
+            ['code', ''],
+            ['desc', ''],
+        ]);
+        if ($id) {
+            if (ChannelModel::where('id', $id)->update($data)) {
+                return JsonService::success('修改成功');
+            } else {
+                return JsonService::fail('修改失败或者您没有修改什么!');
+            }
+        } else {
+            if ($res = ChannelModel::create($data)) {
+                return JsonService::success('保存成功', ['id' => $res->id]);
+            } else {
+                return JsonService::fail('保存失败!');
+            }
+        }
+    }
+
+    /**
+     * 删除
+     * @param $id
+     * @throws \Exception
+     */
+    public function delete($id)
+    {
+        if (!$id) return $this->failed('数据不存在');
+        if (!ChannelModel::be(['id' => $id])) {
+            return $this->failed('渠道数据不存在');
+        }
+        if (!ChannelModel::where('id', $id)->delete()) {
+            return JsonService::fail(ChannelModel::getErrorInfo('删除失败,请稍候再试!'));
+        } else {
+            return JsonService::successful('删除渠道成功!');
+        }
+    }
+}

+ 9 - 6
app/admin/controller/user/UserGroup.php

@@ -50,7 +50,7 @@ class UserGroup extends AuthController
         } else {
             $f[] = Form::input('group_name', '分组名称', $group->getData('group_name'));
         }
-        $form = Form::make_post_form('添加用户通知', $f, Url::buildUrl('saveGroup', array('id' => $id)));
+        $form = Form::make_post_form('会员分组', $f, Url::buildUrl('saveGroup', array('id' => $id)));
         $this->assign(compact('form'));
         return $this->fetch('public/form-builder');
     }
@@ -87,10 +87,13 @@ class UserGroup extends AuthController
     public function delete($id)
     {
         if (!$id) return $this->failed('数据不存在');
-        if (!GroupModel::be(['id' => $id])) return $this->failed('产品数据不存在');
-        if (!GroupModel::where('id', $id)->delete())
-            return JsonService::fail(GroupModel::getErrorInfo('恢复失败,请稍候再试!'));
-        else
-            return JsonService::successful('恢复门店成功!');
+        if (!GroupModel::be(['id' => $id])) {
+            return $this->failed('分组不存在');
+        }
+        if (!GroupModel::where('id', $id)->delete()) {
+            return JsonService::fail(GroupModel::getErrorInfo('删除失败,请稍候再试!'));
+        } else {
+            return JsonService::successful('删除分组成功!');
+        }
     }
 }

+ 39 - 0
app/admin/model/user/UserChannel.php

@@ -0,0 +1,39 @@
+<?php
+
+namespace app\admin\model\user;
+
+use crmeb\basic\BaseModel;
+use crmeb\traits\ModelTrait;
+
+/**
+ * Class UserChannel
+ * @package app\admin\model\user
+ */
+class UserChannel extends BaseModel
+{
+    /**
+     * 数据表主键
+     * @var string
+     */
+    protected $pk = 'id';
+
+    /**
+     * 模型名称
+     * @var string
+     */
+    protected $name = 'dict_channels';
+
+    use ModelTrait;
+
+    /**
+     * @param $where
+     * @return array
+     */
+    public static function getList($where)
+    {
+
+        $data = self::page((int)$where['page'], (int)$where['limit'])->select();
+        $count = $data->count();
+        return compact('count', 'data');
+    }
+}

+ 109 - 0
app/admin/view/user/user_channel/index.php

@@ -0,0 +1,109 @@
+{extend name="public/container"}
+{block name="head_top"}
+
+{/block}
+{block name="content"}
+<div class="layui-fluid" style="background: #fff;margin-top: -10px;">
+    <div class="layui-row layui-col-space15">
+        <div class="layui-col-md12">
+            <div class="layui-card">
+                <div class="layui-card-body">
+                    <div class="layui-btn-container">
+                        <button class="layui-btn layui-btn-sm" onclick="$eb.createModalFrame(this.innerText,'{:Url('addChannel')}',{h:480,w:720})">
+                            添加渠道
+                        </button>
+                    </div>
+                    <table class="layui-hide" id="List" lay-filter="List"></table>
+
+                    <script type="text/html" id="act">
+                        <button type="button" class="layui-btn layui-btn-xs layui-btn-normal" lay-event='edit'>
+                            编辑
+                        </button>
+                        <button type="button" class="layui-btn layui-btn-xs layui-btn-normal" lay-event='del'>
+                            删除
+                        </button>
+                    </script>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="{__ADMIN_PATH}js/layuiList.js"></script>
+{/block}
+{block name="script"}
+<script>
+    layList.tableList('List', "{:Url('channelList')}", function() {
+        return [{
+                field: 'id',
+                title: 'ID',
+                sort: true,
+                event: 'id',
+                width: '20%'
+            },
+            {
+                field: 'name',
+                title: '渠道名称',
+                width: '30%'
+            },
+            {
+                field: 'code',
+                title: '渠道代码',
+                width: '30%'
+            },
+            {
+                field: 'right',
+                title: '操作',
+                align: 'center',
+                toolbar: '#act',
+                width: '20%'
+            },
+        ];
+    });
+    //点击事件绑定
+    layList.tool(function(event, data, obj) {
+        switch (event) {
+            case 'del':
+                var url = layList.U({
+                    c: 'user.user_channel',
+                    a: 'delete',
+                    q: {
+                        id: data.id
+                    }
+                });
+                var code = {
+                    title: "操作提示",
+                    text: "确定删除该渠道?",
+                    type: 'info',
+                    confirm: '是的,删除'
+                };
+                $eb.$swal('delete', function() {
+                    $eb.axios.get(url).then(function(res) {
+                        if (res.status == 200 && res.data.code == 200) {
+                            $eb.$swal('success', res.data.msg);
+                            obj.del();
+                            location.reload();
+                        } else
+                            return Promise.reject(res.data.msg || '删除失败')
+                    }).catch(function(err) {
+                        $eb.$swal('error', err);
+                    });
+                }, code)
+                break;
+            case 'open_image':
+                $eb.openImage(data.image);
+                break;
+            case 'edit':
+                $eb.createModalFrame(data.name + '-编辑', layList.U({
+                    a: 'addChannel',
+                    q: {
+                        id: data.id
+                    }
+                }), {
+                    h: 480,
+                    w: 720
+                });
+                break;
+        }
+    })
+</script>
+{/block}

+ 0 - 1
app/admin/view/user/user_group/index.php

@@ -7,7 +7,6 @@
     <div class="layui-row layui-col-space15">
         <div class="layui-col-md12">
             <div class="layui-card">
-                <!--                <div class="layui-card-header">门店列表</div>-->
                 <div class="layui-card-body">
                     <div class="layui-btn-container">
                         <button class="layui-btn layui-btn-sm"

+ 4 - 0
view/xcx/.babel.config.js

@@ -0,0 +1,4 @@
+module.exports = {
+  presets: [],
+  plugins: [],
+}

+ 30 - 0
view/xcx/.eslintrc.js

@@ -0,0 +1,30 @@
+module.exports = {
+  root: true,
+  env: {
+    es6: true,
+    browser: true,
+    node: true,
+  },
+  parser: '@babel/eslint-parser',
+  parserOptions: {
+    ecmaVersion: 2018,
+    sourceType: 'module',
+    ecmaFeatures: {
+      arrowFunctions: true,
+      destructuring: true,
+      classes: true,
+    },
+    requireConfigFile: false,
+  },
+  globals: {
+    wx: true,
+    App: true,
+    Page: true,
+    getCurrentPage: true,
+    getApp: true,
+    Component: true,
+    requirePlugin: true,
+    requireMiniProgram: true,
+  },
+  rules: {},
+}

+ 66 - 0
view/xcx/.prettierrc.js

@@ -0,0 +1,66 @@
+// .prettierrc.js
+module.exports = {
+  printWidth: 120,
+  tabWidth: 2,
+  useTabs: false,
+  semi: false,
+  singleQuote: true,
+
+  // 对象的 key 仅在必要时用引号
+  quoteProps: 'as-needed',
+
+  // jsx 不使用单引号,而使用双引号
+  jsxSingleQuote: false,
+
+  // 末尾不需要逗号
+  trailingComma: 'none',
+
+  // 大括号内的首尾需要空格
+  bracketSpacing: true,
+
+  // jsx 标签的反尖括号需要换行
+  jsxBracketSameLine: false,
+
+  // 箭头函数,只有一个参数的时候,无需括号
+  arrowParens: 'avoid',
+
+  // 每个文件格式化的范围是文件的全部内容
+  rangeStart: 0,
+
+  rangeEnd: Infinity,
+
+  // 不需要写文件开头的 @prettier
+  requirePragma: false,
+
+  // 不需要自动在文件开头插入 @prettier
+  insertPragma: false,
+
+  // 使用默认的折行标准
+  proseWrap: 'preserve',
+
+  // 根据显示样式决定 html 要不要折行
+  htmlWhitespaceSensitivity: 'css',
+
+  // 换行符使用 lf
+  endOfLine: 'lf',
+  // Prettier 支持对某些文件扩展名,文件夹和特定文件进行不同的配置
+  overrides: [{
+      files: ['*.wxss', '*.acss'],
+      options: {
+        parser: 'css'
+      }
+    },
+    {
+      files: ['*.wxml', '*.axml'],
+      options: {
+        parser: 'html'
+      }
+    },
+    {
+      files: ['*.wxs', '*.sjs'],
+      options: {
+        parser: 'babel'
+      }
+    }
+  ]
+}

+ 4 - 0
view/xcx/README.md

@@ -107,3 +107,7 @@
   └─project.config.json 项目配置
 
 ~~~
+## 格式化代码
+```shell
+npx prettier --write --config .prettierrc.js components/**/*.wxss
+```

+ 149 - 151
view/xcx/app.json

@@ -1,154 +1,152 @@
 {
-    "pages": [
-        "pages/index/index",
-        "pages/goods_cate/goods_cate",
-        "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/user_phone/index",
-        "pages/user_pwd_edit/index",
-        "pages/goods_search/index",
-        "pages/user_vip/index",
-        "pages/user_license/license",
-        "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/goods_details_store/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/goods_return/index",
-        "pages/goods_comment_con/index",
-        "pages/promotional-items/index",
-        "pages/first-new-product/index",
-        "pages/user_spread_code/index",
-        "pages/user_info/index",
-        "pages/order_pay_status/index",
-        "pages/goods_logistics/index",
-        "pages/user_address/index",
-        "pages/order_addcart/order_addcart",
-        "pages/user_payment/index",
-        "pages/order_cancellation/index",
-        "pages/commission_rank/index",
-        "pages/promoter_rank/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",
-        "components/write-off/index",
-        "components/price-change/index",
-        "components/general-window/index",
-        "pages/message/index",
-        "pages/mine_rule/index",
-        "pages/leader_board/index",
-        "pages/message_details/index"
-    ],
-    "subPackages": [{
-            "root": "pages/activity",
-            "name": "activity",
-            "pages": [
-                "goods_combination/index",
-                "goods_combination_details/index",
-                "goods_combination_status/index",
-                "goods_seckill_details/index",
-                "goods_seckill/index",
-                "goods_bargain_details/index",
-                "goods_bargain/index",
-                "poster-poster/index",
-                "user_goods_bargain_list/index"
-            ]
-        },
-        {
-            "root": "pages/admin",
-            "name": "admin",
-            "pages": [
-                "order_cancellation/index",
-                "order/index",
-                "order_list/index",
-                "order_details/index",
-                "order_deliver/index",
-                "order_statistics/index",
-                "order_statistics_time/index"
-            ]
-        }
-    ],
-    "window": {
-        "backgroundTextStyle": "dark",
-        "navigationBarBackgroundColor": "#fff",
-        "navigationBarTitleText": "WeChat",
-        "navigationBarTextStyle": "black",
-        "navigationStyle": "custom"
+  "pages": [
+    "pages/index/index",
+    "pages/goods_cate/goods_cate",
+    "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/user_phone/index",
+    "pages/user_pwd_edit/index",
+    "pages/goods_search/index",
+    "pages/user_vip/index",
+    "pages/user_license/license",
+    "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/goods_details_store/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/goods_return/index",
+    "pages/goods_comment_con/index",
+    "pages/promotional-items/index",
+    "pages/first-new-product/index",
+    "pages/user_spread_code/index",
+    "pages/user_info/index",
+    "pages/order_pay_status/index",
+    "pages/goods_logistics/index",
+    "pages/user_address/index",
+    "pages/order_addcart/order_addcart",
+    "pages/user_payment/index",
+    "pages/order_cancellation/index",
+    "pages/commission_rank/index",
+    "pages/promoter_rank/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",
+    "components/write-off/index",
+    "components/price-change/index",
+    "components/general-window/index",
+    "pages/message/index",
+    "pages/mine_rule/index",
+    "pages/leader_board/index",
+    "pages/message_details/index",
+    "pages/login/login"
+  ],
+  "subPackages": [{
+      "root": "pages/activity",
+      "name": "activity",
+      "pages": [
+        "goods_combination/index",
+        "goods_combination_details/index",
+        "goods_combination_status/index",
+        "goods_seckill_details/index",
+        "goods_seckill/index",
+        "goods_bargain_details/index",
+        "goods_bargain/index",
+        "poster-poster/index",
+        "user_goods_bargain_list/index"
+      ]
     },
-    "tabBar": {
-        "backgroundColor": "#ffffff",
-        "color": "#282828",
-        "selectedColor": "#e93323",
-        "borderStyle": "white",
-        "list": [{
-                "pagePath": "pages/index/index",
-                "iconPath": "images/0-001.png",
-                "selectedIconPath": "images/0-002.png",
-                "text": "活动"
-            },
-            {
-                "pagePath": "pages/user_money/index",
-                "iconPath": "images/6-001.png",
-                "selectedIconPath": "images/6-002.png",
-                "text": "钱包"
-            },
-            {
-                "pagePath": "pages/message/index",
-                "iconPath": "images/5-001.png",
-                "selectedIconPath": "images/5-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": "我的"
-            }
-        ]
-    },
-    "permission": {
-        "scope.userLocation": {
-            "desc": "你的位置信息将用于获取附近门店"
-        }
-    },
-    "requiredBackgroundModes": [
-        "location"
-    ],
-    "sitemapLocation": "sitemap.json"
+    {
+      "root": "pages/admin",
+      "name": "admin",
+      "pages": [
+        "order_cancellation/index",
+        "order/index",
+        "order_list/index",
+        "order_details/index",
+        "order_deliver/index",
+        "order_statistics/index",
+        "order_statistics_time/index"
+      ]
+    }
+  ],
+  "window": {
+    "backgroundTextStyle": "dark",
+    "navigationBarBackgroundColor": "#fff",
+    "navigationBarTitleText": "WeChat",
+    "navigationBarTextStyle": "black",
+    "navigationStyle": "custom"
+  },
+  "tabBar": {
+    "backgroundColor": "#ffffff",
+    "color": "#282828",
+    "selectedColor": "#e93323",
+    "borderStyle": "white",
+    "list": [{
+        "pagePath": "pages/index/index",
+        "iconPath": "images/0-001.png",
+        "selectedIconPath": "images/0-002.png",
+        "text": "活动"
+      },
+      {
+        "pagePath": "pages/user_money/index",
+        "iconPath": "images/6-001.png",
+        "selectedIconPath": "images/6-002.png",
+        "text": "钱包"
+      },
+      {
+        "pagePath": "pages/message/index",
+        "iconPath": "images/5-001.png",
+        "selectedIconPath": "images/5-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": "我的"
+      }
+    ]
+  },
+  "permission": {},
+  "requiredPrivateInfos": [
+    "chooseAddress"
+  ],
+  "requiredBackgroundModes": [],
+  "sitemapLocation": "sitemap.json"
 }

File diff suppressed because it is too large
+ 0 - 2
view/xcx/app.wxss


+ 65 - 68
view/xcx/components/address-window/index.js

@@ -1,82 +1,79 @@
-import {
-    getAddressList
-} from '../../api/user.js';
+import { getAddressList } from '../../api/user.js'
 
-var app = getApp();
+var app = getApp()
 
 Component({
-    properties: {
-        //跳转url链接
-        pagesUrl: {
-            type: String,
-            value: '',
-        },
-        address: {
-            type: Object,
-            value: {
-                address: true,
-                addressId: 0,
-            }
-        },
-        isLog: {
-            type: Boolean,
-            value: false,
-        },
+  properties: {
+    //跳转url链接
+    pagesUrl: {
+      type: String,
+      value: ''
     },
-    data: {
-        active: 0,
-        //地址列表
-        addressList: [],
-        is_loading: true,
+    address: {
+      type: Object,
+      value: {
+        address: true,
+        addressId: 0
+      }
     },
+    isLog: {
+      type: Boolean,
+      value: false
+    }
+  },
+  data: {
+    active: 0,
+    //地址列表
+    addressList: [],
+    is_loading: true
+  },
 
-    attached: function () {
+  attached: function () {},
 
+  methods: {
+    tapAddress: function (e) {
+      this.setData({
+        active: e.currentTarget.dataset.id
+      })
+      this.triggerEvent('OnChangeAddress', e.currentTarget.dataset.addressid)
     },
 
-    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')
+    },
 
-        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
+      })
+    },
 
-        goAddressPages: function () {
-            this.setData({
-                'address.address': false
-            });
-            this.triggerEvent('changeTextareaStatus');
-            wx.navigateTo({
-                url: this.data.pagesUrl
-            });
-        },
-        
-        getAddressList: function () {
-            var that = this;
-            getAddressList({
-                page: 1,
-                limit: 5
-            }).then(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,
-                    is_loading: false
-                });
+    getAddressList: function () {
+      var that = this
+      getAddressList({
+        page: 1,
+        limit: 5
+      }).then(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,
+          is_loading: false
+        })
+      })
     }
-})
+  }
+})

+ 3 - 3
view/xcx/components/address-window/index.json

@@ -1,4 +1,4 @@
 {
-    "usingComponents": {},
-    "component": true
-}
+  "usingComponents": {},
+  "component": true
+}

+ 25 - 18
view/xcx/components/address-window/index.wxml

@@ -1,21 +1,28 @@
 <view class="address-window {{address.address==true?'on':''}}">
-    <view class='title'>选择地址<text class='iconfont icon-guanbi' bindtap='close'></text></view>
-    <view class='list'>
-        <view class='item acea-row row-between-wrapper {{active==index?"font-color":""}}' wx:for="{{addressList}}"
-            data-id='{{index}}' bindtap='tapAddress' wx:key='index' data-addressId="{{item.id}}">
-            <text class='iconfont icon-ditu {{active==index?"font-color":""}}'></text>
-            <view class='address'>
-                <view class='name {{active==index?"font-color":""}}'>{{item.real_name}}<text
-                        class='phone'>{{item.phone}}</text></view>
-                <view class='line1'>{{item.province}}{{item.city}}{{item.district}}{{item.detail}}</view>
-            </view>
-            <text class='iconfont icon-complete{{active==index?" font-color":""}}'></text>
-        </view>
+  <view class="title">选择地址<text class="iconfont icon-guanbi" bindtap="close"></text></view>
+  <view class="list">
+    <view
+      class='item acea-row row-between-wrapper {{active==index?"font-color":""}}'
+      wx:for="{{addressList}}"
+      data-id="{{index}}"
+      bindtap="tapAddress"
+      wx:key="index"
+      data-addressId="{{item.id}}"
+    >
+      <text class='iconfont icon-ditu {{active==index?"font-color":""}}'></text>
+      <view class="address">
+        <view class='name {{active==index?"font-color":""}}'
+          >{{item.real_name}}<text class="phone">{{item.phone}}</text></view
+        >
+        <view class="line1">{{item.province}}{{item.city}}{{item.district}}{{item.detail}}</view>
+      </view>
+      <text class='iconfont icon-complete{{active==index?" font-color":""}}'></text>
     </view>
-    <!-- 无地址 -->
-    <view class='pictrue' wx:if="{{!is_loading && !addressList.length}}">
-        <image src='/images/noAddress.png'></image>
-    </view>
-    <view class='addressBnt bg-color' bindtap='goAddressPages'>选择其地址</view>
+  </view>
+  <!-- 无地址 -->
+  <view class="pictrue" wx:if="{{!is_loading && !addressList.length}}">
+    <image src="/images/noAddress.png"></image>
+  </view>
+  <view class="addressBnt bg-color" bindtap="goAddressPages">选择其地址</view>
 </view>
-<view class='mask' catchtouchmove="true" hidden='{{address.address==false}}' bindtap='close'></view>
+<view class="mask" catchtouchmove="true" hidden="{{address.address==false}}" bindtap="close"></view>

+ 50 - 50
view/xcx/components/address-window/index.wxss

@@ -1,89 +1,89 @@
 @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);
+  background-color: #fff;
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  z-index: 101;
+  transform: translate3d(0, 100%, 0);
+  transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
 }
 
 .address-window.on {
-    transform: translate3d(0, 0, 0);
+  transform: translate3d(0, 0, 0);
 }
 
 .address-window .title {
-    font-size: 32rpx;
-    font-weight: bold;
-    text-align: center;
-    height: 123rpx;
-    line-height: 123rpx;
-    position: relative;
+  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;
+  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;
+  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;
+  font-size: 37rpx;
+  color: #2c2c2c;
 }
 
 .address-window .list .item .iconfont.icon-complete {
-    font-size: 30rpx;
-    color: #fff;
+  font-size: 30rpx;
+  color: #fff;
 }
 
 .address-window .list .item .address {
-    width: 560rpx;
+  width: 560rpx;
 }
 
 .address-window .list .item .address .name {
-    font-size: 28rpx;
-    font-weight: bold;
-    color: #282828;
-    margin-bottom: 4rpx;
+  font-size: 28rpx;
+  font-weight: bold;
+  color: #282828;
+  margin-bottom: 4rpx;
 }
 
 .address-window .list .item .address .name .phone {
-    margin-left: 18rpx;
+  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;
+  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;
+  width: 414rpx;
+  height: 336rpx;
+  margin: 0 auto;
 }
 
 .address-window .pictrue image {
-    width: 100%;
-    height: 100%;
-}
+  width: 100%;
+  height: 100%;
+}

+ 179 - 181
view/xcx/components/authorize/authorize.js

@@ -1,194 +1,192 @@
-import {
-    CACHE_USERINFO,
-    CACHE_TOKEN,
-    CACHE_EXPIRES_TIME
-} from '../../config.js';
-import Util from '../../utils/util.js';
-import {
-    getLogo
-} from '../../api/api.js';
-import {
-    login
-} from '../../api/user.js';
+import { CACHE_USERINFO, CACHE_TOKEN, CACHE_EXPIRES_TIME } from '../../config.js'
+import Util from '../../utils/util.js'
+import { getLogo } from '../../api/api.js'
+import { login } from '../../api/user.js'
 
-let app = getApp();
+let app = getApp()
 
 Component({
-    properties: {
-        // 当前授权窗口是否隐藏
-        iShidden: {
-            type: Boolean,
-            value: true,
-        },
-        // 是否自动登录
-        isAuto: {
-            type: Boolean,
-            value: true,
-        },
-        // 是否跳转到首页
-        isGoIndex: {
-            type: Boolean,
-            value: true,
-        },
-    }, // properties
+  properties: {
+    // 当前授权窗口是否隐藏
+    isHidden: {
+      type: Boolean,
+      value: true
+    },
+    // 是否自动登录
+    isAuto: {
+      type: Boolean,
+      value: true
+    },
+    // 是否跳转到首页
+    isGoIndex: {
+      type: Boolean,
+      value: true
+    }
+  }, // properties
 
-    data: {
-        errorCount: 0,
-        errorMaxNum: 3,
-        code: null, // wx login code
-        canIUseGetUserProfile: false, // 判断是否为最新获取用户信息函数
-        canIUseGetUserInfo: false
-    }, // data
+  data: {
+    errorCount: 0,
+    errorMaxNum: 3,
+    code: null, // wx login code
+    canIUseGetUserProfile: false, // 判断是否为最新获取用户信息函数
+    canIUseGetUserInfo: false
+  }, // data
 
-    attached() {
-        this.get_logo_url();
-        this.setAuthStatus();
-        if (wx.getUserProfile) {
-            this.setData({
-                canIUseGetUserProfile: true
-            })
-        }
-        if (wx.getUserInfo) {
-            this.setData({
-                canIUseGetUserInfo: true
-            })
-        }
-    }, // attached
-
-    methods: {
-        close() {
-            wx.hideLoading();
-            let pages = getCurrentPages();
-            let currPage = pages[pages.length - 1];
-            if (this.data.isGoIndex) {
-                wx.switchTab({
-                    url: '/pages/index/index'
-                });
-            } else {
-                this.setData({
-                    iShidden: true
-                });
-                if (currPage && currPage.data.iShidden != undefined) {
-                    currPage.setData({
-                        iShidden: true
-                    });
-                }
-            }
-        }, // close()
+  attached() {
+    this.get_logo_url()
+    this.setAuthStatus()
+    if (wx.getUserProfile) {
+      this.setData({
+        canIUseGetUserProfile: true
+      })
+    }
+    if (wx.getUserInfo) {
+      this.setData({
+        canIUseGetUserInfo: true
+      })
+    }
+  }, // attached
 
-        get_logo_url: function () {
-            var that = this;
-            if (wx.getStorageSync('logo_url')) {
-                return this.setData({
-                    logo_url: wx.getStorageSync('logo_url')
-                });
-            }
-            getLogo().then(res => {
-                wx.setStorageSync('logo_url', res.data.logo_url);
-                that.setData({
-                    logo_url: res.data.logo_url
-                });
-            });
-        }, // get_logo_url()
+  methods: {
+    close() {
+      wx.hideLoading()
+      let pages = getCurrentPages()
+      let currPage = pages[pages.length - 1]
+      if (this.data.isGoIndex) {
+        wx.switchTab({
+          url: '/pages/index/index'
+        })
+      } else {
+        this.setData({
+          isHidden: true
+        })
+        if (currPage && currPage.data.isHidden != undefined) {
+          currPage.setData({
+            isHidden: true
+          })
+        }
+      }
+    }, // close()
 
-        //检测登录状态并执行自动登录
-        setAuthStatus() {
-            var that = this;
-            Util.checkWxLogin().then((res) => {
-                let pages = getCurrentPages();
-                let currPage = pages[pages.length - 1];
-                if (currPage && currPage.data.iShidden != undefined) {
-                    currPage.setData({
-                        iShidden: true
-                    });
-                }
-                that.triggerEvent('onLoadFun', app.globalData.userInfo);
-            }).catch(err => {
-                console.log(err);
-            })
-        }, // setAuthStatus()
+    get_logo_url: function () {
+      var that = this
+      if (wx.getStorageSync('logo_url')) {
+        return this.setData({
+          logo_url: wx.getStorageSync('logo_url')
+        })
+      }
+      getLogo().then(res => {
+        wx.setStorageSync('logo_url', res.data.logo_url)
+        that.setData({
+          logo_url: res.data.logo_url
+        })
+      })
+    }, // get_logo_url()
 
-        wxSilentLogin: function () {
-            return new Promise((resolve, reject) => {
-                wx.login({
-                    success(res) {
-                        resolve(res.code)
-                    },
-                    fail(err) {
-                        reject(err)
-                    }
-                })
+    //检测登录状态并执行自动登录
+    setAuthStatus() {
+      var that = this
+      Util.checkWxLogin()
+        .then(res => {
+          let pages = getCurrentPages()
+          let currPage = pages[pages.length - 1]
+          if (currPage && currPage.data.isHidden != undefined) {
+            currPage.setData({
+              isHidden: true
             })
-        }, // wxSilentLogin
+          }
+          that.triggerEvent('onLoadFun', app.globalData.userInfo)
+        })
+        .catch(err => {
+          console.log(err)
+        })
+    }, // setAuthStatus()
 
-        // 获取用户信息
-        agreeAndAuth() {
-            let that = this;
-            wx.showLoading({
-                title: '正在登录中'
-            });
-            let p1 = this.wxSilentLogin()
-            let p2 = Util.wxGetUserProfile()
-            Promise.all([p1, p2]).then((res) => {
-                let userInfo = res[1];
-                userInfo.code = res[0];
-                // console.log(userInfo);
-                that.loginAuth(userInfo);
-            }).catch((err) => {
-                wx.hideLoading();
-                console.log('err:', err)
-            })
-        }, // agreeAndAuth
+    wxSilentLogin: function () {
+      return new Promise((resolve, reject) => {
+        wx.login({
+          success(res) {
+            resolve(res.code)
+          },
+          fail(err) {
+            reject(err)
+          }
+        })
+      })
+    }, // wxSilentLogin
 
-        // 从后台获取详细信息
-        loginAuth: function (userInfo) {
-            let that = this;
-            userInfo.spread_spid = app.globalData.spid; //获取推广人ID
-            userInfo.spread_code = app.globalData.code; //获取推广人分享二维码ID
-            userInfo.ch = app.globalData.channel // 注册渠道
-            // 发送到后台
-            login(userInfo).then(res => {
-                app.globalData.token = res.data.token;
-                app.globalData.isLog = true;
-                app.globalData.userInfo = res.data.userInfo;
-                app.globalData.expiresTime = res.data.expires_time;
-                wx.setStorageSync(CACHE_TOKEN, res.data.token);
-                wx.setStorageSync(CACHE_EXPIRES_TIME, res.data.expires_time);
-                wx.setStorageSync(CACHE_USERINFO, JSON.stringify(res.data.userInfo));
-                if (res.data.cache_key) {
-                    wx.setStorage({
-                        key: 'cache_key',
-                        data: res.data.cache_key
-                    });
-                }
-                //取消登录提示
-                wx.hideLoading();
-                //关闭登录弹出窗口
-                that.setData({
-                    iShidden: true,
-                    errorCount: 0
-                });
-                //执行登录完成回调
-                that.triggerEvent('onLoadFun', app.globalData.userInfo);
-            }).catch((err) => {
-                wx.hideLoading();
-                that.data.errorCount++;
-                that.setData({
-                    errorCount: that.data.errorCount
-                });
-                if (that.data.errorCount >= that.data.errorMaxNum) {
-                    Util.Tips({
-                        title: err
-                    });
-                }
-            });
-        }, // loginAuth()
+    // 获取用户信息
+    agreeAndAuth() {
+      let that = this
+      wx.showLoading({
+        title: '正在登录中'
+      })
+      let p1 = this.wxSilentLogin()
+      let p2 = Util.wxGetUserProfile()
+      Promise.all([p1, p2])
+        .then(res => {
+          let userInfo = res[1]
+          userInfo.code = res[0]
+          // console.log(userInfo);
+          that.loginAuth(userInfo)
+        })
+        .catch(err => {
+          wx.hideLoading()
+          console.log('err:', err)
+        })
+    }, // agreeAndAuth
 
-        // 点击打开用户协议
-        onTabRegular: function () {
-            wx.navigateTo({
-                url: `/pages/user_license/license`
+    // 从后台获取详细信息
+    loginAuth: function (userInfo) {
+      let that = this
+      userInfo.spread_spid = app.globalData.spid //获取推广人ID
+      userInfo.spread_code = app.globalData.code //获取推广人分享二维码ID
+      userInfo.ch = app.globalData.channel // 注册渠道
+      // 发送到后台
+      login(userInfo)
+        .then(res => {
+          app.globalData.token = res.data.token
+          app.globalData.isLog = true
+          app.globalData.userInfo = res.data.userInfo
+          app.globalData.expiresTime = res.data.expires_time
+          wx.setStorageSync(CACHE_TOKEN, res.data.token)
+          wx.setStorageSync(CACHE_EXPIRES_TIME, res.data.expires_time)
+          wx.setStorageSync(CACHE_USERINFO, JSON.stringify(res.data.userInfo))
+          if (res.data.cache_key) {
+            wx.setStorage({
+              key: 'cache_key',
+              data: res.data.cache_key
             })
-        } //onTabRegular
-    }, // methods
-})
+          }
+          //取消登录提示
+          wx.hideLoading()
+          //关闭登录弹出窗口
+          that.setData({
+            isHidden: true,
+            errorCount: 0
+          })
+          //执行登录完成回调
+          that.triggerEvent('onLoadFun', app.globalData.userInfo)
+        })
+        .catch(err => {
+          wx.hideLoading()
+          that.data.errorCount++
+          that.setData({
+            errorCount: that.data.errorCount
+          })
+          if (that.data.errorCount >= that.data.errorMaxNum) {
+            Util.Tips({
+              title: err
+            })
+          }
+        })
+    }, // loginAuth()
+
+    // 点击打开用户协议
+    onTabRegular: function () {
+      wx.navigateTo({
+        url: `/pages/user_license/license`
+      })
+    } //onTabRegular
+  } // methods
+})

+ 2 - 2
view/xcx/components/authorize/authorize.json

@@ -1,3 +1,3 @@
 {
-    "component": true
-}
+  "component": true
+}

+ 25 - 16
view/xcx/components/authorize/authorize.wxml

@@ -1,18 +1,27 @@
 <!--pages/authorize/authorize.wxml-->
-<view class='Popup' hidden='{{iShidden}}'>
-    <image src='{{logo_url}}'></image>
-    <view class='title'>请授权并同意协议</view>
-    <view class='tip'>请授权微信头像,用户名等信息,并遵守
-        <a href='/pages/user_license/license' bindtap='onTabRegular'>《美天旺平台规则》</a>,
-        以便更好地为您服务。
-    </view>
-    <view class='bottom flex'>
-        <view class='item' bindtap='close'>随便逛逛</view>
-        <!-- 在高版本中获取用户信息已改成uni.getUserProfile-->
-        <button class='item grant' type="primary" wx:if="{{canIUseGetUserProfile}}" lang="zh_CN"
-            bindtap="agreeAndAuth">同意并授权</button>
-        <button class='item grant' type="primary" wx:else open-type="getUserInfo" lang="zh_CN"
-            bindgetuserinfo="agreeAndAuth">同意并授权</button>
-    </view>
+<view class="Popup" hidden="{{isHidden}}">
+  <image src="{{logo_url}}"></image>
+  <view class="title">请授权并同意协议</view>
+  <view class="tip"
+    >请授权微信头像,用户名等信息,并遵守
+    <a href="/pages/user_license/license" bindtap="onTabRegular">《美天旺平台规则》</a>, 以便更好地为您服务。
+  </view>
+  <view class="bottom flex">
+    <view class="item" bindtap="close">随便逛逛</view>
+    <!-- 在高版本中获取用户信息已改成uni.getUserProfile-->
+    <button class="item grant" type="primary" wx:if="{{canIUseGetUserProfile}}" lang="zh_CN" bindtap="agreeAndAuth">
+      同意并授权
+    </button>
+    <button
+      class="item grant"
+      type="primary"
+      wx:else
+      open-type="getUserInfo"
+      lang="zh_CN"
+      bindgetuserinfo="agreeAndAuth"
+    >
+      同意并授权
+    </button>
+  </view>
 </view>
-<view class='mask' hidden='{{iShidden}}' catchtouchmove="true" bindtap='close'></view>
+<view class="mask" hidden="{{isHidden}}" catchtouchmove="true" bindtap="close"></view>

+ 48 - 48
view/xcx/components/authorize/authorize.wxss

@@ -1,78 +1,78 @@
 /* pages/authorize/authorize.wxss */
-@import "../../app.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;
+  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%
+  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
+  font-size: 28rpx;
+  color: #000;
+  text-align: center;
+  margin-top: 30rpx;
 }
 
 .Popup .tip {
-    font-size: 22rpx;
-    color: #555;
-    padding: 0 24rpx;
-    margin-top: 25rpx;
+  font-size: 22rpx;
+  color: #555;
+  padding: 0 24rpx;
+  margin-top: 25rpx;
 }
 
 .Popup .tip a {
-    color: rgb(243, 70, 70);
+  color: rgb(243, 70, 70);
 }
 
 .Popup .bottom .item {
-    width: 50%;
-    height: 80rpx;
-    background-color: #eeeeee;
-    text-align: center;
-    line-height: 80rpx;
-    font-size: 24rpx;
-    color: #666;
-    margin-top: 54rpx;
+  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%
+  width: 100%;
 }
 
 .flex {
-    display: flex;
+  display: flex;
 }
 
 .Popup .bottom .item.grant {
-    font-size: 28rpx;
-    color: #fff;
-    font-weight: bold;
-    background-color: #e93323;
-    border-radius: 0;
-    padding: 0;
+  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;
-}
+  position: fixed;
+  top: 0;
+  right: 0;
+  left: 0;
+  bottom: 0;
+  background-color: rgba(0, 0, 0, 0.65);
+  z-index: 310;
+}

+ 54 - 57
view/xcx/components/coupon-list-window/index.js

@@ -1,65 +1,62 @@
-import {
-    setCouponReceive
-} from '../../api/api.js';
+import { setCouponReceive } from '../../api/api.js'
 
-const app = getApp();
+const app = getApp()
 
 Component({
-    properties: {
-        coupon: {
-            type: Object,
-            value: {
-                list: [],
-                statusTile: ''
-            },
-        },
-        cartId: {
-            type: String,
-            value: '',
-        },
-        //打开状态 0=领取优惠券,1=使用优惠券
-        openType: {
-            type: Number,
-            value: 0,
-        }
+  properties: {
+    coupon: {
+      type: Object,
+      value: {
+        list: [],
+        statusTile: ''
+      }
     },
-
-    data: {},
-    
-    attached: function () {
-        console.log(this.data.cartId)
+    cartId: {
+      type: String,
+      value: ''
     },
-    
-    methods: {
+    //打开状态 0=领取优惠券,1=使用优惠券
+    openType: {
+      type: Number,
+      value: 0
+    }
+  },
+
+  data: {},
 
-        close: function () {
-            this.triggerEvent('ChangCouponsClone');
-        },
+  attached: function () {
+    console.log(this.data.cartId)
+  },
+
+  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:
-                    //领取优惠券
-                    setCouponReceive(id).then(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;
-            }
-        },
+    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:
+          //领取优惠券
+          setCouponReceive(id).then(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
+      }
     }
-})
+  }
+})

+ 3 - 3
view/xcx/components/coupon-list-window/index.json

@@ -1,4 +1,4 @@
 {
-    "usingComponents": {},
-    "component": true
-}
+  "usingComponents": {},
+  "component": true
+}

+ 32 - 26
view/xcx/components/coupon-list-window/index.wxml

@@ -1,30 +1,36 @@
 <view class='coupon-list-window {{coupon.coupon==true?"on":""}}'>
-    <view class='title'>优惠券<text class='iconfont icon-guanbi' bindtap='close'></text></view>
-    <view class='coupon-list' wx:if="{{coupon.list.length}}">
-        <view class='item acea-row row-center-wrapper' wx:for="{{coupon.list}}" bindtap='getCouponUser'
-            data-index='{{index}}' data-id="{{item.id}}" wx:key='index'>
-            <view class='money {{item.is_use?"moneyGray":""}} acea-row row-column row-center-wrapper'>
-                <view>¥<text class='num'>{{item.coupon_price}}</text></view>
-                <view class="pic-num">满{{item.use_min_price}}元可用</view>
-            </view>
-            <view class='text'>
-                <view class='condition line1'>
-                    <span class='line-title {{item.is_use?"gray":""}}' wx:if="{{item.type===0}}">通用劵</span>
-                    <span class='line-title {{item.is_use?"gray":""}}' wx:elif="{{item.type===1}}">品类券</span>
-                    <span class='line-title {{item.is_use?"gray":""}}' wx:else>商品券</span>
-                    <span>{{item.title}}</span>
-                </view>
-                <view class='data acea-row row-between-wrapper'>
-                    <view>{{item.start_time ? item.start_time+'-' : ''}}{{item.end_time}}</view>
-                    <view class='bnt gray' wx:if="{{item.is_use}}">{{item.use_title || '已领取'}}</view>
-                    <view class='bnt bg-color' wx:else>{{coupon.statusTile || '立即领取'}}</view>
-                </view>
-            </view>
+  <view class="title">优惠券<text class="iconfont icon-guanbi" bindtap="close"></text></view>
+  <view class="coupon-list" wx:if="{{coupon.list.length}}">
+    <view
+      class="item acea-row row-center-wrapper"
+      wx:for="{{coupon.list}}"
+      bindtap="getCouponUser"
+      data-index="{{index}}"
+      data-id="{{item.id}}"
+      wx:key="index"
+    >
+      <view class='money {{item.is_use?"moneyGray":""}} acea-row row-column row-center-wrapper'>
+        <view>¥<text class="num">{{item.coupon_price}}</text></view>
+        <view class="pic-num">满{{item.use_min_price}}元可用</view>
+      </view>
+      <view class="text">
+        <view class="condition line1">
+          <span class='line-title {{item.is_use?"gray":""}}' wx:if="{{item.type===0}}">通用劵</span>
+          <span class='line-title {{item.is_use?"gray":""}}' wx:elif="{{item.type===1}}">品类券</span>
+          <span class='line-title {{item.is_use?"gray":""}}' wx:else>商品券</span>
+          <span>{{item.title}}</span>
         </view>
+        <view class="data acea-row row-between-wrapper">
+          <view>{{item.start_time ? item.start_time+'-' : ''}}{{item.end_time}}</view>
+          <view class="bnt gray" wx:if="{{item.is_use}}">{{item.use_title || '已领取'}}</view>
+          <view class="bnt bg-color" wx:else>{{coupon.statusTile || '立即领取'}}</view>
+        </view>
+      </view>
     </view>
-    <!-- 无优惠券 -->
-    <view class='pictrue' wx:else>
-        <image src='/images/noCoupon.png'></image>
-    </view>
+  </view>
+  <!-- 无优惠券 -->
+  <view class="pictrue" wx:else>
+    <image src="/images/noCoupon.png"></image>
+  </view>
 </view>
-<view class='mask' catchtouchmove="true" hidden='{{coupon.coupon==false}}' bindtap='close'></view>
+<view class="mask" catchtouchmove="true" hidden="{{coupon.coupon==false}}" bindtap="close"></view>

+ 51 - 51
view/xcx/components/coupon-list-window/index.wxss

@@ -1,81 +1,81 @@
 @import '/app.wxss';
 
 .coupon-list-window {
-    position: fixed;
-    bottom: 0;
-    left: 0;
-    width: 100%;
-    background-color: #f5f5f5;
-    border-radius: 16rpx 16rpx 0 0;
-    transform: translate3d(0, 100%, 0);
-    transition: all .3s cubic-bezier(.25, .5, .5, .9);
-    z-index: 1000
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  background-color: #f5f5f5;
+  border-radius: 16rpx 16rpx 0 0;
+  transform: translate3d(0, 100%, 0);
+  transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
+  z-index: 1000;
 }
 
 .coupon-list-window.on {
-    transform: translate3d(0, 0, 0);
+  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;
+  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;
-    width: 100rpx;
-    display: block;
-    text-align: right;
+  position: absolute;
+  right: 30rpx;
+  top: 50%;
+  transform: translateY(-50%);
+  font-size: 35rpx;
+  color: #8a8a8a;
+  font-weight: normal;
+  width: 100rpx;
+  display: block;
+  text-align: right;
 }
 
 .coupon-list-window .coupon-list {
-    margin: 0 0 50rpx 0;
-    height: 550rpx;
-    overflow: auto;
+  margin: 0 0 50rpx 0;
+  height: 550rpx;
+  overflow: auto;
 }
 
 .coupon-list-window .pictrue {
-    width: 414rpx;
-    height: 336rpx;
-    margin: 0 auto 50rpx auto;
+  width: 414rpx;
+  height: 336rpx;
+  margin: 0 auto 50rpx auto;
 }
 
 .coupon-list-window .pictrue image {
-    width: 100%;
-    height: 100%;
+  width: 100%;
+  height: 100%;
 }
 
 .pic-num {
-    color: #fff;
-    font-size: 24rpx;
+  color: #fff;
+  font-size: 24rpx;
 }
 
 .line-title {
-    width: 90rpx;
-    padding: 0 10rpx;
-    box-sizing: border-box;
-    background: rgba(255, 247, 247, 1);
-    border: 1px solid rgba(232, 51, 35, 1);
-    opacity: 1;
-    border-radius: 20rpx;
-    font-size: 20rpx;
-    color: #E83323;
-    margin-right: 12rpx;
+  width: 90rpx;
+  padding: 0 10rpx;
+  box-sizing: border-box;
+  background: rgba(255, 247, 247, 1);
+  border: 1px solid rgba(232, 51, 35, 1);
+  opacity: 1;
+  border-radius: 20rpx;
+  font-size: 20rpx;
+  color: #e83323;
+  margin-right: 12rpx;
 }
 
 .line-title.gray {
-    border-color: #BBB;
-    color: #bbb;
-    background-color: #F5F5F5;
-}
+  border-color: #bbb;
+  color: #bbb;
+  background-color: #f5f5f5;
+}

+ 17 - 21
view/xcx/components/coupon-window/index.js

@@ -1,24 +1,20 @@
-var app = getApp();
+var app = getApp()
 Component({
-    properties: {
-        window: {
-            type: Boolean,
-            value: false,
-        },
-        couponList: {
-            type: Array,
-            value: [],
-        }
+  properties: {
+    window: {
+      type: Boolean,
+      value: false
     },
-    data: {
-
-    },
-    attached: function () {
-
-    },
-    methods: {
-        close: function () {
-            this.triggerEvent('onClose');
-        }
+    couponList: {
+      type: Array,
+      value: []
+    }
+  },
+  data: {},
+  attached: function () {},
+  methods: {
+    close: function () {
+      this.triggerEvent('onClose')
     }
-})
+  }
+})

+ 2 - 2
view/xcx/components/coupon-window/index.json

@@ -1,3 +1,3 @@
 {
-    "usingComponents": {}
-}
+  "usingComponents": {}
+}

+ 20 - 20
view/xcx/components/coupon-window/index.wxml

@@ -1,24 +1,24 @@
 <view class='coupon-window {{window==true?"on":""}}'>
-    <view class='couponWinList'>
-        <view class='item acea-row row-center-wrapper' wx:for="{{couponList}}" wx:key='index'>
-            <view class='money font-color acea-row row-column row-center-wrapper'>
-                <view>¥<text class='num'>{{item.coupon_price}}</text></view>
-                <view class="pic-num">满{{item.use_min_price}}元可用</view>
-            </view>
-            <view class="text acea-row row-between">
-                <view class='pic acea-row row-column row-center'>
-                    <view class='name line1'>{{item.title}}</view>
-                    <view>{{item.start_time ? item.start_time+'-' : ''}}{{item.end_time}}</view>
-                </view>
-                <view class="type" wx:if="{{item.type===0}}">通用劵</view>
-                <view class="type" wx:elif="{{item.type===1}}">品类券</view>
-                <view class="type" wx:else>商品券</view>
-            </view>
+  <view class="couponWinList">
+    <view class="item acea-row row-center-wrapper" wx:for="{{couponList}}" wx:key="index">
+      <view class="money font-color acea-row row-column row-center-wrapper">
+        <view>¥<text class="num">{{item.coupon_price}}</text></view>
+        <view class="pic-num">满{{item.use_min_price}}元可用</view>
+      </view>
+      <view class="text acea-row row-between">
+        <view class="pic acea-row row-column row-center">
+          <view class="name line1">{{item.title}}</view>
+          <view>{{item.start_time ? item.start_time+'-' : ''}}{{item.end_time}}</view>
         </view>
+        <view class="type" wx:if="{{item.type===0}}">通用劵</view>
+        <view class="type" wx:elif="{{item.type===1}}">品类券</view>
+        <view class="type" wx:else>商品券</view>
+      </view>
     </view>
-    <view class='lid'>
-        <navigator hover-class='none' url='/pages/user_get_coupon/index' class='bnt font-color'>立即领取</navigator>
-        <view class='iconfont icon-guanbi3' bindtap='close'></view>
-    </view>
+  </view>
+  <view class="lid">
+    <navigator hover-class="none" url="/pages/user_get_coupon/index" class="bnt font-color">立即领取</navigator>
+    <view class="iconfont icon-guanbi3" bindtap="close"></view>
+  </view>
 </view>
-<view class='mask' catchtouchmove="true" hidden='{{window==false}}'></view>
+<view class="mask" catchtouchmove="true" hidden="{{window==false}}"></view>

File diff suppressed because it is too large
+ 0 - 0
view/xcx/components/coupon-window/index.wxss


+ 16 - 16
view/xcx/components/general-window/index.js

@@ -1,22 +1,22 @@
-var app = getApp();
+var app = getApp()
 
 Component({
-    properties: {
-        generalActive: {
-            type: Boolean
-        },
-        generalContent: {
-            type: Object
-        }
+  properties: {
+    generalActive: {
+      type: Boolean
     },
+    generalContent: {
+      type: Object
+    }
+  },
+
+  data: {},
 
-    data: {},
+  attached: function () {},
 
-    attached: function () {},
-    
-    methods: {
-        close: function () {
-            this.triggerEvent('generalWindow');
-        }
+  methods: {
+    close: function () {
+      this.triggerEvent('generalWindow')
     }
-})
+  }
+})

+ 2 - 2
view/xcx/components/general-window/index.json

@@ -1,3 +1,3 @@
 {
-    "usingComponents": {}
-}
+  "usingComponents": {}
+}

+ 10 - 10
view/xcx/components/general-window/index.wxml

@@ -1,11 +1,11 @@
-<view class='generalWindow'>
-    <view class='generalTip {{generalActive==true?"on":""}}'>
-        <view class='pictrue'>
-            <image src='./../../images/promoter.png'></image>
-        </view>
-        <view class='name'>{{generalContent.title}}</view>
-        <view class='info'>{{generalContent.promoterNum}}</view>
-        <view class='tipBnt' bindtap='close'>我知道了</view>
+<view class="generalWindow">
+  <view class='generalTip {{generalActive==true?"on":""}}'>
+    <view class="pictrue">
+      <image src="./../../images/promoter.png"></image>
     </view>
-    <view class='mask' catchtouchmove="true" hidden='{{generalActive==false}}' bindtap='close'></view>
-</view>
+    <view class="name">{{generalContent.title}}</view>
+    <view class="info">{{generalContent.promoterNum}}</view>
+    <view class="tipBnt" bindtap="close">我知道了</view>
+  </view>
+  <view class="mask" catchtouchmove="true" hidden="{{generalActive==false}}" bindtap="close"></view>
+</view>

+ 54 - 54
view/xcx/components/general-window/index.wxss

@@ -2,84 +2,84 @@
 @import '/css/style.wxss';
 
 .generalWindow .generalTip {
-    position: fixed;
-    top: 50%;
-    left: 50%;
-    width: 560rpx;
-    margin-left: -280rpx;
-    z-index: 99;
-    border-radius: 20rpx;
-    background-color: #fff;
-    transition: all 0.3s ease-in-out 0s;
-    opacity: 0;
-    transform: scale(0);
-    padding-bottom: 60rpx;
-    margin-top: -330rpx;
+  position: fixed;
+  top: 50%;
+  left: 50%;
+  width: 560rpx;
+  margin-left: -280rpx;
+  z-index: 99;
+  border-radius: 20rpx;
+  background-color: #fff;
+  transition: all 0.3s ease-in-out 0s;
+  opacity: 0;
+  transform: scale(0);
+  padding-bottom: 60rpx;
+  margin-top: -330rpx;
 }
 
 .generalWindow .generalTip.on {
-    opacity: 1;
-    transform: scale(1);
+  opacity: 1;
+  transform: scale(1);
 }
 
 .generalWindow .generalTip .pictrue {
-    width: 100%;
-    height: 270rpx;
+  width: 100%;
+  height: 270rpx;
 }
 
 .generalWindow .generalTip .pictrue image {
-    width: 100%;
-    height: 100%;
-    border-radius: 20rpx 20rpx 0 0;
+  width: 100%;
+  height: 100%;
+  border-radius: 20rpx 20rpx 0 0;
 }
 
 .generalWindow .generalTip .name {
-    font-size: 36rpx;
-    font-weight: bold;
-    color: #282828;
-    text-align: center;
-    padding: 0 29rpx;
-    margin-top: 37rpx;
+  font-size: 36rpx;
+  font-weight: bold;
+  color: #282828;
+  text-align: center;
+  padding: 0 29rpx;
+  margin-top: 37rpx;
 }
 
 .generalWindow .generalTip .info {
-    font-size: 30rpx;
-    color: #666;
-    padding: 0 29rpx;
-    text-align: center;
-    margin-top: 21rpx;
+  font-size: 30rpx;
+  color: #666;
+  padding: 0 29rpx;
+  text-align: center;
+  margin-top: 21rpx;
 }
 
 .generalWindow .generalTip .info .money {
-    font-weight: bold;
-    margin: 0 10rpx;
+  font-weight: bold;
+  margin: 0 10rpx;
 }
 
 .generalWindow .generalTip .help {
-    font-size: 32rpx;
-    font-weight: bold;
-    text-align: center;
-    margin-top: 40rpx;
+  font-size: 32rpx;
+  font-weight: bold;
+  text-align: center;
+  margin-top: 40rpx;
 }
 
 .generalWindow .generalTip .tipBnt {
-    font-size: 32rpx;
-    color: #fff;
-    width: 360rpx;
-    height: 82rpx;
-    border-radius: 41rpx;
-    background-image: linear-gradient(to right, #f67a38 0%, #f11b09 100%);
-    text-align: center;
-    line-height: 82rpx;
-    margin: 50rpx auto 0 auto;
+  font-size: 32rpx;
+  color: #fff;
+  width: 360rpx;
+  height: 82rpx;
+  border-radius: 41rpx;
+  background-image: linear-gradient(to right, #f67a38 0%, #f11b09 100%);
+  text-align: center;
+  line-height: 82rpx;
+  margin: 50rpx auto 0 auto;
 }
 
 .generalWindow .mask {
-    position: fixed;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    background-color: rgba(0, 0, 0, 0.7);
-    z-index: 55;
-}
+  position: fixed;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  background-color: rgba(0, 0, 0, 0.7);
+  z-index: 55;
+}

+ 36 - 36
view/xcx/components/goodList/index.js

@@ -1,41 +1,41 @@
 // components/goodList/index.js
 Component({
-    properties: {
-        status: {
-            type: String,
-            value: 0,
-        },
-        bastList: {
-            type: Object,
-            value: [],
-        }
+  properties: {
+    status: {
+      type: String,
+      value: 0
     },
+    bastList: {
+      type: Object,
+      value: []
+    }
+  },
+
+  data: {},
 
-    data: {},
-    
-    methods: {
-        /**
-         * 商品详情跳转
-         */
-        goDetail: function (e) {
-            let item = e.currentTarget.dataset.items
-            if (item.activity && item.activity.type === "1") {
-                wx.navigateTo({
-                    url: `/pages/activity/goods_seckill_details/index?id=${item.activity.id}&time=${item.activity.time}&status=1`
-                });
-            } else if (item.activity && item.activity.type === "2") {
-                wx.navigateTo({
-                    url: `/pages/activity/goods_bargain_details/index?id=${item.activity.id}`
-                });
-            } else if (item.activity && item.activity.type === "3") {
-                wx.navigateTo({
-                    url: `/pages/activity/goods_combination_details/index?id=${item.activity.id}`
-                });
-            } else {
-                wx.navigateTo({
-                    url: `/pages/goods_details/index?id=${item.id}`
-                });
-            }
-        },
+  methods: {
+    /**
+     * 商品详情跳转
+     */
+    goDetail: function (e) {
+      let item = e.currentTarget.dataset.items
+      if (item.activity && item.activity.type === '1') {
+        wx.navigateTo({
+          url: `/pages/activity/goods_seckill_details/index?id=${item.activity.id}&time=${item.activity.time}&status=1`
+        })
+      } else if (item.activity && item.activity.type === '2') {
+        wx.navigateTo({
+          url: `/pages/activity/goods_bargain_details/index?id=${item.activity.id}`
+        })
+      } else if (item.activity && item.activity.type === '3') {
+        wx.navigateTo({
+          url: `/pages/activity/goods_combination_details/index?id=${item.activity.id}`
+        })
+      } else {
+        wx.navigateTo({
+          url: `/pages/goods_details/index?id=${item.id}`
+        })
+      }
     }
-})
+  }
+})

+ 3 - 3
view/xcx/components/goodList/index.json

@@ -1,4 +1,4 @@
 {
-    "usingComponents": {},
-    "component": true
-}
+  "usingComponents": {},
+  "component": true
+}

+ 27 - 34
view/xcx/components/goodList/index.wxml

@@ -1,39 +1,32 @@
-<view class='goodList'>
-    <block wx:for="{{bastList}}" wx:key='index'>
-        <view bindtap="goDetail" data-items='{{item}}' class='item acea-row row-between-wrapper'>
+<view class="goodList">
+  <block wx:for="{{bastList}}" wx:key="index">
+    <view bindtap="goDetail" data-items="{{item}}" class="item acea-row row-between-wrapper">
+      <!-- 首发新品 商品图片 -->
+      <view class="pictrue">
+        <image src="{{item.image}}"></image>
+        <text class="pictrue_log pictrue_log_class" wx:if="{{item.activity && item.activity.type ==='1'}}">秒杀</text>
+        <text class="pictrue_log pictrue_log_class" wx:if="{{item.activity && item.activity.type === '2'}}">砍价</text>
+        <text class="pictrue_log pictrue_log_class" wx:if="{{item.activity && item.activity.type === '3'}}">拼团</text>
+      </view>
 
-            <!-- 首发新品 商品图片 -->
-            <view class='pictrue'>
-                <image src='{{item.image}}'></image>
-                <text class="pictrue_log pictrue_log_class"
-                    wx:if="{{item.activity && item.activity.type ==='1'}}">秒杀</text>
-                <text class="pictrue_log pictrue_log_class"
-                    wx:if="{{item.activity && item.activity.type === '2'}}">砍价</text>
-                <text class="pictrue_log pictrue_log_class"
-                    wx:if="{{item.activity && item.activity.type === '3'}}">拼团</text>
-            </view>
-
-            <view class='underline'>
-                <view class='text'>
-                    <view class='line1'>{{item.store_name}}</view>
-                    <view class='money font-color'>
-                        ¥<text class='num'>{{item.price}}</text>
-                    </view>
-                    <view class='vip-money acea-row row-middle' wx:if='{{item.vip_price && item.vip_price > 0}}'>
-                        <!-- 暂时不再显示会员价
+      <view class="underline">
+        <view class="text">
+          <view class="line1">{{item.store_name}}</view>
+          <view class="money font-color"> ¥<text class="num">{{item.price}}</text> </view>
+          <view class="vip-money acea-row row-middle" wx:if="{{item.vip_price && item.vip_price > 0}}">
+            <!-- 暂时不再显示会员价
             ¥{{item.vip_price || 0}}
             <image  src='/images/vip.png'></image>
             -->
-                        <text class='num'>已售{{item.sales}}{{item.unit_name}}</text>
-                    </view>
-                    <view class='vip-money acea-row row-middle' wx:else>
-                        <text class='num'>已售{{item.sales}}{{item.unit_name}}</text>
-                    </view>
-                </view>
-            </view>
-
-            <view class='iconfont icon-gouwuche cart-color acea-row row-center-wrapper'>
-            </view>
+            <text class="num">已售{{item.sales}}{{item.unit_name}}</text>
+          </view>
+          <view class="vip-money acea-row row-middle" wx:else>
+            <text class="num">已售{{item.sales}}{{item.unit_name}}</text>
+          </view>
         </view>
-    </block>
-</view>
+      </view>
+
+      <view class="iconfont icon-gouwuche cart-color acea-row row-center-wrapper"> </view>
+    </view>
+  </block>
+</view>

+ 43 - 43
view/xcx/components/goodList/index.wxss

@@ -1,82 +1,82 @@
 @import '/app.wxss';
 
 .goodList .item {
-    position: relative;
-    padding-left: 30rpx;
+  position: relative;
+  padding-left: 30rpx;
 }
 
 .goodList .item .pictrue {
-    width: 180rpx;
-    height: 180rpx;
-    position: relative;
+  width: 180rpx;
+  height: 180rpx;
+  position: relative;
 }
 
 .goodList .item .pictrue image {
-    width: 100%;
-    height: 100%;
-    border-radius: 6rpx;
+  width: 100%;
+  height: 100%;
+  border-radius: 6rpx;
 }
 
 .goodList .item .pictrue .numPic {
-    position: absolute;
-    left: 7rpx;
-    top: 7rpx;
-    width: 50rpx;
-    height: 50rpx;
-    border-radius: 50%;
+  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;
+  padding: 30rpx 30rpx 30rpx 0;
+  border-bottom: 1px solid #f5f5f5;
 }
 
 .goodList .item:nth-last-child(1) .underline {
-    border-bottom: 0;
+  border-bottom: 0;
 }
 
 .goodList .item .text {
-    font-size: 30rpx;
-    color: #222;
-    width: 489rpx;
+  font-size: 30rpx;
+  color: #222;
+  width: 489rpx;
 }
 
 .goodList .item .text .money {
-    font-size: 26rpx;
-    font-weight: bold;
-    margin-top: 50rpx;
+  font-size: 26rpx;
+  font-weight: bold;
+  margin-top: 50rpx;
 }
 
 .goodList .item .text .money .num {
-    font-size: 34rpx;
+  font-size: 34rpx;
 }
 
 .goodList .item .text .vip-money {
-    font-size: 24rpx;
-    color: #282828;
-    font-weight: bold;
-    margin-top: 15rpx;
+  font-size: 24rpx;
+  color: #282828;
+  font-weight: bold;
+  margin-top: 15rpx;
 }
 
 .goodList .item .text .vip-money image {
-    width: 46rpx;
-    height: 21rpx;
-    margin-left: 5rpx;
+  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;
+  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;
-}
+  position: absolute;
+  right: 30rpx;
+  width: 50rpx;
+  height: 50rpx;
+  border-radius: 50%;
+  font-size: 30rpx;
+  bottom: 38rpx;
+}

+ 61 - 77
view/xcx/components/home/index.js

@@ -1,80 +1,64 @@
 // components/home/index.js
 Page({
-    /**
-     * 页面的初始数据
-     */
-    data: {
-        homeActive: false
-    },
-
-    /**
-     * 生命周期函数--监听页面加载
-     */
-    onLoad: function (options) {
-
-    },
-
-    setTouchMove: function (e) {
-        var that = this;
-        if (e.touches[0].clientY < 545 && 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 () {
-
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    homeActive: false
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {},
+
+  setTouchMove: function (e) {
+    var that = this
+    if (e.touches[0].clientY < 545 && 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 () {}
+})

+ 3 - 3
view/xcx/components/home/index.json

@@ -1,4 +1,4 @@
 {
-    "usingComponents": {},
-    "component": true
-}
+  "usingComponents": {},
+  "component": true
+}

+ 25 - 15
view/xcx/components/home/index.wxml

@@ -1,15 +1,25 @@
-<view class='home acea-row row-middle {{homeActive==true?"on":""}}' style=" top:{{top*2}}rpx;"
-    catchtouchmove="setTouchMove">
-
-    <view class='homeCon acea-row row-between-wrapper {{homeActive==true?"on":""}}'>
-        <navigator hover-class='none' url='/pages/index/index' open-type='switchTab'
-            class='iconfont icon-shouye-xianxing'></navigator>
-        <navigator hover-class='none' url='/pages/order_addcart/order_addcart' open-type='switchTab'
-            class='iconfont icon-caigou-xianxing'></navigator>
-        <navigator hover-class='none' url='/pages/user/user' open-type='switchTab' class='iconfont icon-yonghu1'>
-        </navigator>
-    </view>
-    <view class='pictrue {{homeActive==true?"on":""}}' bindtap='open'>
-        <image src='{{homeActive==false?"/images/close.gif":"/images/open.gif"}}'></image>
-    </view>
-</view>
+<view
+  class='home acea-row row-middle {{homeActive==true?"on":""}}'
+  style=" top:{{top*2}}rpx;"
+  catchtouchmove="setTouchMove"
+>
+  <view class='homeCon acea-row row-between-wrapper {{homeActive==true?"on":""}}'>
+    <navigator
+      hover-class="none"
+      url="/pages/index/index"
+      open-type="switchTab"
+      class="iconfont icon-shouye-xianxing"
+    ></navigator>
+    <navigator
+      hover-class="none"
+      url="/pages/order_addcart/order_addcart"
+      open-type="switchTab"
+      class="iconfont icon-caigou-xianxing"
+    ></navigator>
+    <navigator hover-class="none" url="/pages/user/user" open-type="switchTab" class="iconfont icon-yonghu1">
+    </navigator>
+  </view>
+  <view class='pictrue {{homeActive==true?"on":""}}' bindtap="open">
+    <image src='{{homeActive==false?"/images/close.gif":"/images/open.gif"}}'></image>
+  </view>
+</view>

+ 32 - 32
view/xcx/components/home/index.wxss

@@ -7,56 +7,56 @@
 .home .pictrue image{width:100%;height:100%;border-radius:50%;} */
 
 .home {
-    position: fixed;
-    bottom: 100rpx;
-    color: white;
-    text-align: center;
-    z-index: 99;
-    right: 10rpx;
-    height: 86rpx;
-    width: 96rpx;
-    overflow: hidden;
+  position: fixed;
+  bottom: 100rpx;
+  color: white;
+  text-align: center;
+  z-index: 99;
+  right: 10rpx;
+  height: 86rpx;
+  width: 96rpx;
+  overflow: hidden;
 }
 
 .home.on {
-    width: 396rpx;
+  width: 396rpx;
 }
 
 .home .homeCon {
-    border-radius: 50rpx;
-    box-sizing: border-box;
-    transform: translate3d(500rpx, 0, 0);
-    transition: all .3s cubic-bezier(.25, .5, .5, .9);
-    height: 86rpx;
-    background-color: #f44939;
-    color: #f44939;
+  border-radius: 50rpx;
+  box-sizing: border-box;
+  transform: translate3d(500rpx, 0, 0);
+  transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
+  height: 86rpx;
+  background-color: #f44939;
+  color: #f44939;
 }
 
 .home .homeCon.on {
-    transform: translate3d(0, 0, 0);
-    color: #fff;
+  transform: translate3d(0, 0, 0);
+  color: #fff;
 }
 
 .home .homeCon .iconfont {
-    font-size: 48rpx;
-    width: 100rpx;
+  font-size: 48rpx;
+  width: 100rpx;
 }
 
 .home .pictrue {
-    width: 86rpx;
-    height: 86rpx;
-    border-radius: 50%;
-    margin-left: 10rpx;
-    margin-top: -86rpx;
+  width: 86rpx;
+  height: 86rpx;
+  border-radius: 50%;
+  margin-left: 10rpx;
+  margin-top: -86rpx;
 }
 
 .home .pictrue image {
-    width: 100%;
-    height: 100%;
-    border-radius: 50%;
-    transform: rotate(90deg);
+  width: 100%;
+  height: 100%;
+  border-radius: 50%;
+  transform: rotate(90deg);
 }
 
 .home .pictrue.on {
-    margin-top: 0;
-}
+  margin-top: 0;
+}

+ 171 - 170
view/xcx/components/mine/index.js

@@ -1,191 +1,192 @@
 // components/mine/index.js
-import {
-    getMineStatus,
-    bootCoin,
-    coinHistory
-} from "../../api/mine"
-import {
-    strip,
-    tsToStringDate
-} from "../../utils/util"
-import d from '../../utils/d.js';
+import { getMineStatus, bootCoin, coinHistory } from '../../api/mine'
+import { strip, tsToStringDate } from '../../utils/util'
+import d from '../../utils/d.js'
 
 var app = getApp()
 
 Component({
-    /**
-     * 组件的属性列表
-     */
-    properties: {},
+  /**
+   * 组件的属性列表
+   */
+  properties: {},
 
-    /**
-     * 组件的初始数据
-     */
-    data: {
-        history: [],
-        symbol: "DOGE",
-        icon: "/images/one.png",
-        total: 0.00,
-        progress: 0.00, // 0 表示已停止
-        step: 0.00001, // 步长
-        price: 0.0,
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    history: [],
+    symbol: 'DOGE',
+    icon: '/images/one.png',
+    total: 0.0,
+    progress: 0.0, // 0 表示已停止
+    step: 0.00001, // 步长
+    price: 0.0,
 
-        displaying: false, // 当前是否在这个界面
-        // iShidden: false,
-        // isGoIndex: false,
-        stepTimer: null,
-        syncTimer: null
-    },
+    displaying: false, // 当前是否在这个界面
+    // isHidden: false,
+    // isGoIndex: false,
+    stepTimer: null,
+    syncTimer: null
+  },
 
-    /**
-     * 组件的方法列表
-     */
-    methods: {
-        show: function () {
-            d.debug('mine show:', app.globalData.token)
-            if (app.globalData.isLog) {
-                // this.setData({
-                //     iShidden: true
-                // })
-                this.getStatus()
-                this.getHistory()
-            } else {
-                this.triggerEvent('onNeedLogin');
-            }
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    show: function () {
+      d.debug('mine show:', app.globalData.token)
+      if (app.globalData.isLog) {
+        // this.setData({
+        //     isHidden: true
+        // })
+        this.getStatus()
+        this.getHistory()
+      } else {
+        this.triggerEvent('onNeedLogin')
+      }
 
-            this.setData({
-                displaying: true,
-            })
-        },
+      this.setData({
+        displaying: true
+      })
+    },
 
-        hide: function () {
-            d.debug('mine hidden')
-            if (this.data.stepTimer) {
-                clearInterval(this.data.stepTimer);
-            }
-            if (this.data.syncTimer) {
-                clearInterval(this.data.syncTimer);
-            }
-            this.setData({
-                stepTimer: null,
-                syncTimer: null,
-                displaying: false,
+    hide: function () {
+      d.debug('mine hidden')
+      if (this.data.stepTimer) {
+        clearInterval(this.data.stepTimer)
+      }
+      if (this.data.syncTimer) {
+        clearInterval(this.data.syncTimer)
+      }
+      this.setData({
+        stepTimer: null,
+        syncTimer: null,
+        displaying: false
+      })
+    },
+    // 获取数据 1
+    getStatus: function () {
+      d.debug('isLog:', app.globalData.isLog)
+      if (app.globalData.isLog) {
+        var that = this
+        getMineStatus().then(
+          res => {
+            that.setData({
+              symbol: res.data.symbol,
+              icon: res.data.icon,
+              total: res.data.total,
+              progress: res.data.progress,
+              step: res.data.step,
+              price: res.data.price
             })
-        },
-        // 获取数据 1
-        getStatus: function () {
-            d.debug('isLog:', app.globalData.isLog)
-            if (app.globalData.isLog) {
-                var that = this;
-                getMineStatus().then(res => {
-                    that.setData({
-                        symbol: res.data.symbol,
-                        icon: res.data.icon,
-                        total: res.data.total,
-                        progress: res.data.progress,
-                        step: res.data.step,
-                        price: res.data.price,
-                    });
 
-                    if (that.data.progress > 0.0) {
-                        that.setupTimers();
-                    }
-                }, err => {
-                    console.log(err);
-                    that.setData({
-                        total: 0,
-                        progress: 0
-                    });
-                });
+            if (that.data.progress > 0.0) {
+              that.setupTimers()
             }
-        },
+          },
+          err => {
+            console.log(err)
+            that.setData({
+              total: 0,
+              progress: 0
+            })
+          }
+        )
+      }
+    },
 
-        // 获取数据 2
-        getHistory: function () {
-            if (app.globalData.isLog) {
-                var that = this
-                coinHistory().then(res => {
-                    if (res.data.length > 0) {
-                        res.data.forEach(function (e) {
-                            e.ts = tsToStringDate(e.ts)
-                        })
-                    }
-                    that.setData({
-                        history: res.data,
-                    })
-                })
-            }
-        },
+    // 获取数据 2
+    getHistory: function () {
+      if (app.globalData.isLog) {
+        var that = this
+        coinHistory().then(res => {
+          if (res.data.length > 0) {
+            res.data.forEach(function (e) {
+              e.ts = tsToStringDate(e.ts)
+            })
+          }
+          that.setData({
+            history: res.data
+          })
+        })
+      }
+    },
 
-        onLoadFun: function () {
-            if (this.data.displaying && app.globalData.isLog) {
-                d.debug("mine onLoadFun")
-                this.getStatus()
-                this.getHistory()
-            }
-        },
+    onLoadFun: function () {
+      if (this.data.displaying && app.globalData.isLog) {
+        d.debug('mine onLoadFun')
+        this.getStatus()
+        this.getHistory()
+      }
+    },
 
-        // 客户端走进度,定时同步
-        clientStep: function () {
-            if (this.data.progress > 0 && this.data.step > 0) {
-                var harfStep = this.data.step / 2
-                var curStep = Math.floor(Math.random() * 10) * harfStep / 10 + harfStep
-                var curProgress = strip(this.data.progress + curStep)
-                this.setData({
-                    progress: curProgress,
-                })
-            }
-        },
+    // 客户端走进度,定时同步
+    clientStep: function () {
+      if (this.data.progress > 0 && this.data.step > 0) {
+        var harfStep = this.data.step / 2
+        var curStep = (Math.floor(Math.random() * 10) * harfStep) / 10 + harfStep
+        var curProgress = strip(this.data.progress + curStep)
+        this.setData({
+          progress: curProgress
+        })
+      }
+    },
 
-        setupTimers: function () {
-            var that = this
-            if (this.data.syncTimer == null) {
-                this.setData({
-                    syncTimer: setInterval(() => {
-                        that.getStatus()
-                    }, 1000 * 60 * 2),
-                })
-            }
+    setupTimers: function () {
+      var that = this
+      if (this.data.syncTimer == null) {
+        this.setData({
+          syncTimer: setInterval(
+            () => {
+              that.getStatus()
+            },
+            1000 * 60 * 2
+          )
+        })
+      }
 
-            if (this.data.stepTimer == null && this.data.step > 0.0) {
-                this.setData({
-                    stepTimer: setInterval(() => {
-                        that.clientStep();
-                    }, 1000),
-                })
-            }
-        },
+      if (this.data.stepTimer == null && this.data.step > 0.0) {
+        this.setData({
+          stepTimer: setInterval(() => {
+            that.clientStep()
+          }, 1000)
+        })
+      }
+    },
 
-        onClickStart: function () {
-            if (!app.globalData.isLog) {
-                this.triggerEvent('onNeedLogin')
-                return
-            }
-            if (this.data.progress > 0.0) {
-                return
-            }
-            var that = this
-            bootCoin().then(res => {
-                if (res.status === 200) {
-                    that.setData({
-                        symbol: res.data.symbol,
-                        coin: res.data.coin,
-                        price: res.data.price,
-                        step: res.data.step,
-                        progress: res.data.progress,
-                        total: res.data.total,
-                    })
-                    if (that.data.progress > 0.0) {
-                        that.setupTimers();
-                    }
-                }
-            }).catch(err => {
-                wx.showToast({
-                    title: err,
-                    icon: 'none',
-                    duration: 2000,
-                })
+    onClickStart: function () {
+      if (!app.globalData.isLog) {
+        this.triggerEvent('onNeedLogin')
+        return
+      }
+      if (this.data.progress > 0.0) {
+        return
+      }
+      var that = this
+      bootCoin()
+        .then(res => {
+          if (res.status === 200) {
+            that.setData({
+              symbol: res.data.symbol,
+              coin: res.data.coin,
+              price: res.data.price,
+              step: res.data.step,
+              progress: res.data.progress,
+              total: res.data.total
             })
-        },
+            if (that.data.progress > 0.0) {
+              that.setupTimers()
+            }
+          }
+        })
+        .catch(err => {
+          wx.showToast({
+            title: err,
+            icon: 'none',
+            duration: 2000
+          })
+        })
     }
-})
+  }
+})

+ 5 - 5
view/xcx/components/mine/index.json

@@ -1,6 +1,6 @@
 {
-    "component": true,
-    "usingComponents": {
-        "authorize": "/components/authorize/authorize"
-    }
-}
+  "component": true,
+  "usingComponents": {
+    "authorize": "/components/authorize/authorize"
+  }
+}

+ 38 - 38
view/xcx/components/mine/index.wxml

@@ -1,44 +1,44 @@
 <view class="mine">
-    <!-- total -->
-    <view class="head">
-        <image src="{{icon}}"></image>
-        <text class="balance">{{ symbol }}:</text>
-        <text class="balance">{{total}}</text>
+  <!-- total -->
+  <view class="head">
+    <image src="{{icon}}"></image>
+    <text class="balance">{{ symbol }}:</text>
+    <text class="balance">{{total}}</text>
+  </view>
+  <!-- digging -->
+  <view class="main">
+    <view class="left">
+      <button class="{{ progress > 0 ? 'started': 'stopped'}}" bindtap="onClickStart">
+        {{ progress > 0 ? '运行中': '启动'}}
+      </button>
     </view>
-    <!-- digging -->
-    <view class="main">
-        <view class="left">
-            <button class="{{ progress > 0 ? 'started': 'stopped'}}" bindtap="onClickStart">
-                {{ progress > 0 ? '运行中': '启动'}}
-            </button>
-        </view>
-        <view class="right">
-            <view class="current">
-                <text class="progress">{{progress}}</text>
-            </view>
-        </view>
+    <view class="right">
+      <view class="current">
+        <text class="progress">{{progress}}</text>
+      </view>
     </view>
-    <!-- history -->
-    <view class="his">
-        <view class="his-img">
-            <image src="/images/historyTitle.png"></image>
-        </view>
-        <view class="no-record" wx:if="{{history.length <= 0}}">
-            <text>没有记录</text>
-        </view>
-        <view wx:else>
-            <scroll-view class="records" scroll-y="true" scroll-with-animation="true">
-                <view wx:for="{{history}}" wx:key="index" class="item {{ item.out != 0 ? 'color' : '' }}">
-                    <view class="icon">
-                        <image src="{{item.icon}}"></image>
-                    </view>
-                    <text class="symbol">{{item.symbol}}</text>
-                    <text class="direction">{{ item.out == 0 ? "获取" : "导出" }}</text>
-                    <text class="amount">{{item.out == 0 ? item.amount : -item.amount}}</text>
-                    <text class="time">{{ item.ts }}</text>
-                </view>
-            </scroll-view>
+  </view>
+  <!-- history -->
+  <view class="his">
+    <view class="his-img">
+      <image src="/images/historyTitle.png"></image>
+    </view>
+    <view class="no-record" wx:if="{{history.length <= 0}}">
+      <text>没有记录</text>
+    </view>
+    <view wx:else>
+      <scroll-view class="records" scroll-y="true" scroll-with-animation="true">
+        <view wx:for="{{history}}" wx:key="index" class="item {{ item.out != 0 ? 'color' : '' }}">
+          <view class="icon">
+            <image src="{{item.icon}}"></image>
+          </view>
+          <text class="symbol">{{item.symbol}}</text>
+          <text class="direction">{{ item.out == 0 ? "获取" : "导出" }}</text>
+          <text class="amount">{{item.out == 0 ? item.amount : -item.amount}}</text>
+          <text class="time">{{ item.ts }}</text>
         </view>
+      </scroll-view>
     </view>
+  </view>
 </view>
-<!-- <authorize bind:onLoadFun='onLoadFun' isGoIndex="{{isGoIndex}}" iShidden="{{iShidden}}"></authorize> -->
+<!-- <authorize bind:onLoadFun='onLoadFun' isGoIndex="{{isGoIndex}}" isHidden="{{isHidden}}"></authorize> -->

+ 99 - 99
view/xcx/components/mine/index.wxss

@@ -1,174 +1,174 @@
 .mine {
-    display: flex;
-    flex-direction: column;
-    width: 100%;
-    background-color: #fff;
+  display: flex;
+  flex-direction: column;
+  width: 100%;
+  background-color: #fff;
 }
 
 .mine .head {
-    display: flex;
-    flex-direction: row;
-    justify-content: center;
-    align-items: center;
-    margin-top: 20rpx;
+  display: flex;
+  flex-direction: row;
+  justify-content: center;
+  align-items: center;
+  margin-top: 20rpx;
 }
 
 .mine .head image {
-    height: 64rpx;
-    width: 64rpx;
-    margin: 0 10rpx;
+  height: 64rpx;
+  width: 64rpx;
+  margin: 0 10rpx;
 }
 
 .mine .head .balance {
-    color: #301310;
-    font-size: 36rpx;
+  color: #301310;
+  font-size: 36rpx;
 }
 
 .mine .main {
-    display: flex;
-    flex-direction: row;
-    margin-top: 36rpx;
-    height: 240rpx;
+  display: flex;
+  flex-direction: row;
+  margin-top: 36rpx;
+  height: 240rpx;
 }
 
 .mine .main .left {
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
-    width: 40%;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+  width: 40%;
 }
 
 .main .left .stopped {
-    width: 200rpx;
-    height: 200rpx;
-    background: #838383 !important;
-    color: #fff;
-    border-radius: 50%;
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
+  width: 200rpx;
+  height: 200rpx;
+  background: #838383 !important;
+  color: #fff;
+  border-radius: 50%;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
 }
 
 .main .left .started {
-    width: 200rpx;
-    height: 200rpx;
-    background-color: rgba(214, 31, 31, 0.9) !important;
-    color: #fff;
-    border-radius: 50%;
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
+  width: 200rpx;
+  height: 200rpx;
+  background-color: rgba(214, 31, 31, 0.9) !important;
+  color: #fff;
+  border-radius: 50%;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
 
-    transform: scale(1);
-    animation: heartbeat 3s;
-    animation-iteration-count: infinite;
+  transform: scale(1);
+  animation: heartbeat 3s;
+  animation-iteration-count: infinite;
 }
 
 @keyframes heartbeat {
-    60% {
-        transform: scale(1.1);
-    }
+  60% {
+    transform: scale(1.1);
+  }
 
-    100% {
-        transform: scale(1);
-    }
+  100% {
+    transform: scale(1);
+  }
 }
 
 .mine .main .right {
-    display: flex;
-    flex-direction: column;
-    justify-content: center;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
 }
 
 .mine .main .right .current {
-    display: flex;
-    flex-direction: row;
-    justify-content: flex-start;
-    align-items: flex-start;
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-start;
+  align-items: flex-start;
 }
 
 .mine .main .right .current .progress {
-    font-size: 48rpx;
-    color: #e93323;
+  font-size: 48rpx;
+  color: #e93323;
 }
 
 .mine .his {
-    display: flex;
-    flex-direction: column;
-    justify-content: flex-start;
+  display: flex;
+  flex-direction: column;
+  justify-content: flex-start;
 }
 
 .mine .his .his-img {
-    display: flex;
-    flex-direction: row;
-    justify-content: center;
+  display: flex;
+  flex-direction: row;
+  justify-content: center;
 }
 
 .mine .his .his-img image {
-    width: 431rpx;
-    height: 88rpx;
+  width: 431rpx;
+  height: 88rpx;
 }
 
 .mine .his .no-record {
-    display: flex;
-    flex-direction: row;
-    justify-content: center;
-    margin-top: 32rpx;
-    color: gray;
+  display: flex;
+  flex-direction: row;
+  justify-content: center;
+  margin-top: 32rpx;
+  color: gray;
 }
 
 .mine .his .records {
-    display: flex;
-    flex-direction: column;
-    width: 100%;
-    margin: 32rpx 20rpx;
+  display: flex;
+  flex-direction: column;
+  width: 100%;
+  margin: 32rpx 20rpx;
 }
 
 .mine .his .records .item {
-    display: flex;
-    flex-direction: row;
-    justify-content: flex-start;
-    align-items: center;
-    height: 54rpx;
-    margin: 10rpx;
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-start;
+  align-items: center;
+  height: 54rpx;
+  margin: 10rpx;
 }
 
 .mine .his .records .color {
-    color: #e93323;
+  color: #e93323;
 }
 
 .mine .his .records .item .icon {
-    display: flex;
-    flex-direction: row;
-    justify-content: flex-start;
-    align-items: center;
-    width: 10%;
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-start;
+  align-items: center;
+  width: 10%;
 }
 
 .mine .his .records .item .icon image {
-    width: 48rpx;
-    height: 48rpx;
+  width: 48rpx;
+  height: 48rpx;
 }
 
 .mine .his .records .item .symbol {
-    display: flex;
-    width: 15%;
+  display: flex;
+  width: 15%;
 }
 
 .mine .his .records .item .direction {
-    display: flex;
-    width: 15%;
+  display: flex;
+  width: 15%;
 }
 
 .mine .his .records .item .amount {
-    display: flex;
-    width: 30%;
+  display: flex;
+  width: 30%;
 }
 
 .mine .his .records .item .time {
-    display: flex;
-    width: 30%;
-}
+  display: flex;
+  width: 30%;
+}

+ 78 - 77
view/xcx/components/navbar/index.js

@@ -1,87 +1,88 @@
-var app = getApp();
+var app = getApp()
 
 Component({
-    properties: {
-        parameter: {
-            type: Object,
-            value: {
-                class: '0'
-            },
-        },
-        logoUrl: {
-            type: String,
-            value: '',
-        }
+  properties: {
+    parameter: {
+      type: Object,
+      value: {
+        class: '0'
+      }
     },
+    logoUrl: {
+      type: String,
+      value: ''
+    }
+  },
 
-    data: {
-        navH: ""
-    },
+  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
+    })
+  },
 
-    ready: function () {
-        this.setClass();
-        var pages = getCurrentPages();
-        if (pages.length <= 1) this.setData({
-            'parameter.return': 0
-        });
+  methods: {
+    return: function () {
+      wx.navigateBack({
+        delta: 1
+      })
+      // var pages = getCurrentPages();
+      // wx.navigateBack({
+      //   delta: pages.length-2
+      // });
     },
 
-    attached: function () {
-        this.setData({
-            navH: app.globalData.navHeight
-        });
+    setGoodsSearch: function () {
+      wx.navigateTo({
+        url: '/pages/goods_search/index'
+      })
     },
 
-    methods: {
-        return: function () {
-            wx.navigateBack({
-                delta: 1
-            });
-            // var pages = getCurrentPages();
-            // wx.navigateBack({
-            //   delta: pages.length-2
-            // });
-        },
-        
-        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;
-                case '3':
-                case "red":
-                    color = 'red'
-                    break;
-                case '4':
-                case "gradual01":
-                    color = 'gradual01'
-                    break;
-                case '5':
-                case "gradual02":
-                    color = 'gradual02'
-                    break;
-                default:
-                    break;
-            }
-            this.setData({
-                'parameter.class': color
-            })
-        }
+    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
+        case '3':
+        case 'red':
+          color = 'red'
+          break
+        case '4':
+        case 'gradual01':
+          color = 'gradual01'
+          break
+        case '5':
+        case 'gradual02':
+          color = 'gradual02'
+          break
+        default:
+          break
+      }
+      this.setData({
+        'parameter.class': color
+      })
     }
-})
+  }
+})

+ 3 - 3
view/xcx/components/navbar/index.json

@@ -1,4 +1,4 @@
 {
-    "usingComponents": {},
-    "component": true
-}
+  "usingComponents": {},
+  "component": true
+}

+ 19 - 15
view/xcx/components/navbar/index.wxml

@@ -1,17 +1,21 @@
-<view class='navbar {{parameter.class}}' style='height:{{navH}}rpx'>
-    <view class='navbarH' style='height:{{navH}}rpx;'>
-        <view class='navbarCon acea-row row-center-wrapper' wx:if='{{parameter.navbar==0}}'>
-            <view class='search acea-row row-middle' bindtap='setGoodsSearch'><text
-                    class='iconfont icon-xiazai5'></text>搜索商品</view>
-            <view class='logo'>
-                <image src='{{logoUrl}}'></image>
-            </view>
-        </view>
-        <view class='navbarCon acea-row row-center-wrapper' wx:if='{{parameter.navbar==1}}'>
-            <view class='name {{parameter.color==true?"on":""}} line1'>{{parameter.title}}</view>
-            <view class='iconfont icon-xiangzuo {{parameter.color==true?"on":""}}' wx:if='{{parameter.return==1}}'
-                bindtap='return'></view>
-        </view>
+<view class="navbar {{parameter.class}}" style="height:{{navH}}rpx">
+  <view class="navbarH" style="height:{{navH}}rpx;">
+    <view class="navbarCon acea-row row-center-wrapper" wx:if="{{parameter.navbar==0}}">
+      <view class="search acea-row row-middle" bindtap="setGoodsSearch"
+        ><text class="iconfont icon-xiazai5"></text>搜索商品</view
+      >
+      <view class="logo">
+        <image src="{{logoUrl}}"></image>
+      </view>
     </view>
+    <view class="navbarCon acea-row row-center-wrapper" wx:if="{{parameter.navbar==1}}">
+      <view class='name {{parameter.color==true?"on":""}} line1'>{{parameter.title}}</view>
+      <view
+        class='iconfont icon-xiangzuo {{parameter.color==true?"on":""}}'
+        wx:if="{{parameter.return==1}}"
+        bindtap="return"
+      ></view>
+    </view>
+  </view>
 </view>
-<view style='height:{{navH}}rpx'></view>
+<view style="height:{{navH}}rpx"></view>

+ 55 - 55
view/xcx/components/navbar/index.wxss

@@ -1,107 +1,107 @@
 @import '/app.wxss';
 
 .navbar {
-    position: fixed;
-    background-color: #fff;
-    top: 0;
-    left: 0;
-    z-index: 999;
-    width: 100%;
+  position: fixed;
+  background-color: #fff;
+  top: 0;
+  left: 0;
+  z-index: 999;
+  width: 100%;
 }
 
 .navbar.on {
-    background-color: #e93323;
+  background-color: #e93323;
 }
 
 .navbar.black {
-    background-color: #232323;
+  background-color: #232323;
 }
 
 .navbar.gray {
-    background-color: #666;
+  background-color: #666;
 }
 
 .navbar.red {
-    background-color: #eb5447;
+  background-color: #eb5447;
 }
 
 /* .navbar.gradual01{background-image: linear-gradient(to right,#f67837 0%,#f11d09 100%);} */
 .navbar.gradual01 {
-    background-image: linear-gradient(to right, #f67837 0%, #f11d09 100%);
+  background-image: linear-gradient(to right, #f67837 0%, #f11d09 100%);
 }
 
 .navbar.gradual02 {
-    background-image: linear-gradient(to right, #ff3366 0%, #ff6533 100%);
+  background-image: linear-gradient(to right, #ff3366 0%, #ff6533 100%);
 }
 
 .navbar .navbarH {
-    position: relative;
+  position: relative;
 }
 
 .navbar .navbarH .navbarCon {
-    position: absolute;
-    bottom: 0;
-    height: 100rpx;
-    width: 100%;
+  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;
+  color: #000;
+  font-size: 36rpx;
+  font-weight: bold;
+  width: 300rpx;
+  text-align: center;
 }
 
 .navbar .navbarH .navbarCon .name.on {
-    color: #fff;
+  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%);
+  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;
+  color: #fff;
 }
 
 .navbar .navbarH .navbarCon .logo {
-    width: 116rpx;
-    height: 45rpx;
-    position: absolute;
-    left: 30rpx;
-    top: 50%;
-    transform: translateY(-50%);
+  width: 116rpx;
+  height: 45rpx;
+  position: absolute;
+  left: 30rpx;
+  top: 50%;
+  transform: translateY(-50%);
 }
 
 .navbar .navbarH .navbarCon .logo image {
-    width: 100%;
-    height: 100%;
-    display: block;
+  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;
+  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;
-}
+  font-size: 34rpx;
+  margin-right: 16rpx;
+}

+ 17 - 17
view/xcx/components/orderGoods/index.js

@@ -1,20 +1,20 @@
-var app = getApp();
+var app = getApp()
 
 Component({
-    properties: {
-        evaluate: {
-            type: Number,
-            value: 0,
-        },
-        cartInfo: {
-            type: Object,
-            value: [],
-        },
-        orderId: {
-            type: String,
-            value: '',
-        },
+  properties: {
+    evaluate: {
+      type: Number,
+      value: 0
     },
-    data: {},
-    methods: {}
-})
+    cartInfo: {
+      type: Object,
+      value: []
+    },
+    orderId: {
+      type: String,
+      value: ''
+    }
+  },
+  data: {},
+  methods: {}
+})

+ 4 - 4
view/xcx/components/orderGoods/index.json

@@ -1,4 +1,4 @@
- {
-     "usingComponents": {},
-     "component": true
- }
+{
+  "usingComponents": {},
+  "component": true
+}

+ 29 - 22
view/xcx/components/orderGoods/index.wxml

@@ -1,25 +1,32 @@
 <view class="orderGoods">
-    <view class='total'>共{{cartInfo.length}}件商品</view>
-    <view class='goodWrapper'>
-        <view class='item acea-row row-between-wrapper' wx:for="{{cartInfo}}" wx:key='index'>
-            <view class='pictrue'>
-                <image src='{{item.productInfo.attrInfo.image}}' wx:if="{{item.productInfo.attrInfo}}"></image>
-                <image src='{{item.productInfo.image}}' wx:else></image>
-            </view>
-            <view class='text'>
-                <view class='acea-row row-between-wrapper'>
-                    <view class='name line1 {{ item.reparation && "font-color"}}'>{{item.productInfo.store_name +
-                        (item.reparation && " -- 已赔付") }}</view>
-                    <view class='num'>x {{item.cart_num}}</view>
-                </view>
-                <view class='attr line1' wx:if="{{item.productInfo.attrInfo}}">{{item.productInfo.attrInfo.suk}}</view>
-                <view class='money font-color' wx:if="{{item.productInfo.attrInfo}}">
-                    ¥{{item.productInfo.attrInfo.price}}</view>
-                <view class='money font-color' wx:else>¥{{item.productInfo.price}}</view>
-                <navigator class='evaluate font-color' wx:if='{{item.is_reply==0 && evaluate==3}}' hover-class="none"
-                    url='/pages/goods_comment_con/index?unique={{item.unique}}&uni={{orderId}}'>评价</navigator>
-                <view class='evaluate' wx:elif='{{item.is_reply==1 && evaluate==3}}'>已评价</view>
-            </view>
+  <view class="total">共{{cartInfo.length}}件商品</view>
+  <view class="goodWrapper">
+    <view class="item acea-row row-between-wrapper" wx:for="{{cartInfo}}" wx:key="index">
+      <view class="pictrue">
+        <image src="{{item.productInfo.attrInfo.image}}" wx:if="{{item.productInfo.attrInfo}}"></image>
+        <image src="{{item.productInfo.image}}" wx:else></image>
+      </view>
+      <view class="text">
+        <view class="acea-row row-between-wrapper">
+          <view class='name line1 {{ item.reparation && "font-color"}}'
+            >{{item.productInfo.store_name + (item.reparation && " -- 已赔付") }}</view
+          >
+          <view class="num">x {{item.cart_num}}</view>
         </view>
+        <view class="attr line1" wx:if="{{item.productInfo.attrInfo}}">{{item.productInfo.attrInfo.suk}}</view>
+        <view class="money font-color" wx:if="{{item.productInfo.attrInfo}}">
+          ¥{{item.productInfo.attrInfo.price}}</view
+        >
+        <view class="money font-color" wx:else>¥{{item.productInfo.price}}</view>
+        <navigator
+          class="evaluate font-color"
+          wx:if="{{item.is_reply==0 && evaluate==3}}"
+          hover-class="none"
+          url="/pages/goods_comment_con/index?unique={{item.unique}}&uni={{orderId}}"
+          >评价</navigator
+        >
+        <view class="evaluate" wx:elif="{{item.is_reply==1 && evaluate==3}}">已评价</view>
+      </view>
     </view>
-</view>
+  </view>
+</view>

+ 10 - 10
view/xcx/components/orderGoods/index.wxss

@@ -1,16 +1,16 @@
 @import '/app.wxss';
 
 .orderGoods {
-    background-color: #fff;
-    margin-top: 12rpx;
+  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;
-}
+  width: 100%;
+  height: 86rpx;
+  padding: 0 30rpx;
+  border-bottom: 2rpx solid #f0f0f0;
+  font-size: 30rpx;
+  color: #282828;
+  line-height: 86rpx;
+}

+ 148 - 127
view/xcx/components/payment/index.js

@@ -1,137 +1,158 @@
-import {
-    orderPay
-} from '../../api/order.js';
+import { orderPay } from '../../api/order.js'
 
-const app = getApp();
+const app = getApp()
 
 Component({
-    properties: {
-        payMode: {
-            type: Array,
-            value: [],
-        },
-        pay_close: {
-            type: Boolean,
-            value: false,
-        },
-        order_id: {
-            type: String,
-            value: ''
-        },
-        totalPrice: {
-            type: String,
-            value: '0'
-        },
+  properties: {
+    payMode: {
+      type: Array,
+      value: []
     },
+    pay_close: {
+      type: Boolean,
+      value: false
+    },
+    order_id: {
+      type: String,
+      value: ''
+    },
+    totalPrice: {
+      type: String,
+      value: '0'
+    }
+  },
 
-    data: {},
+  data: {},
 
-    attached: function () {},
+  attached: function () {},
 
-    methods: {
-        close: function () {
-            this.triggerEvent('onChangeFun', {
-                action: 'pay_close'
-            });
-        },
-        
-        goPay: function (e) {
-            let that = this;
-            let paytype = e.currentTarget.dataset.value;
-            let number = e.currentTarget.dataset.number
-            if (!that.data.order_id) return app.Tips({
-                title: '请选择要支付的订单'
-            });
-            if (paytype == 'yue' && parseFloat(number) < parseFloat(that.data.totalPrice)) return app.Tips({
-                title: '余额不足!'
-            });
-            wx.showLoading({
-                title: '支付中'
-            });
-            orderPay({
-                uni: that.data.order_id,
-                paytype: paytype,
-                'from': 'routine'
-            }).then(res => {
-                switch (paytype) {
-                    case 'weixin':
-                        if (res.data.result === undefined) return app.Tips({
-                            title: '缺少支付参数'
-                        });
-                        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: res.msg,
-                                    icon: 'success'
-                                }, () => {
-                                    that.triggerEvent('onChangeFun', {
-                                        action: 'pay_complete'
-                                    });
-                                });
-                            },
-                            fail: function (e) {
-                                wx.hideLoading();
-                                return app.Tips({
-                                    title: '取消支付'
-                                }, () => {
-                                    that.triggerEvent('onChangeFun', {
-                                        action: 'pay_fail'
-                                    });
-                                });
-                            },
-                            complete: function (e) {
-                                wx.hideLoading();
-                                if (e.errMsg == 'requestPayment:cancel') return app.Tips({
-                                    title: '取消支付'
-                                }, () => {
-                                    that.triggerEvent('onChangeFun', {
-                                        action: 'pay_fail'
-                                    });
-                                });
-                            },
-                        });
-                        break;
-                    case 'yue':
-                        wx.hideLoading();
-                        return app.Tips({
-                            title: res.msg,
-                            icon: 'success'
-                        }, () => {
-                            that.triggerEvent('onChangeFun', {
-                                action: 'pay_complete'
-                            });
-                        });;
-                        break;
-                    case 'offline':
-                        wx.hideLoading();
-                        return app.Tips({
-                            title: res.msg,
-                            icon: 'success'
-                        }, () => {
-                            that.triggerEvent('onChangeFun', {
-                                action: 'pay_complete'
-                            });
-                        });;
-                        break;
-                }
-            }).catch(err => {
-                wx.hideLoading();
+  methods: {
+    close: function () {
+      this.triggerEvent('onChangeFun', {
+        action: 'pay_close'
+      })
+    },
+
+    goPay: function (e) {
+      let that = this
+      let paytype = e.currentTarget.dataset.value
+      let number = e.currentTarget.dataset.number
+      if (!that.data.order_id)
+        return app.Tips({
+          title: '请选择要支付的订单'
+        })
+      if (paytype == 'yue' && parseFloat(number) < parseFloat(that.data.totalPrice))
+        return app.Tips({
+          title: '余额不足!'
+        })
+      wx.showLoading({
+        title: '支付中'
+      })
+      orderPay({
+        uni: that.data.order_id,
+        paytype: paytype,
+        from: 'routine'
+      })
+        .then(res => {
+          switch (paytype) {
+            case 'weixin':
+              if (res.data.result === undefined)
                 return app.Tips({
-                    title: err
-                }, () => {
-                    that.triggerEvent('onChangeFun', {
+                  title: '缺少支付参数'
+                })
+              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: res.msg,
+                      icon: 'success'
+                    },
+                    () => {
+                      that.triggerEvent('onChangeFun', {
+                        action: 'pay_complete'
+                      })
+                    }
+                  )
+                },
+                fail: function (e) {
+                  wx.hideLoading()
+                  return app.Tips(
+                    {
+                      title: '取消支付'
+                    },
+                    () => {
+                      that.triggerEvent('onChangeFun', {
                         action: 'pay_fail'
-                    });
-                });
-            })
-        },
+                      })
+                    }
+                  )
+                },
+                complete: function (e) {
+                  wx.hideLoading()
+                  if (e.errMsg == 'requestPayment:cancel')
+                    return app.Tips(
+                      {
+                        title: '取消支付'
+                      },
+                      () => {
+                        that.triggerEvent('onChangeFun', {
+                          action: 'pay_fail'
+                        })
+                      }
+                    )
+                }
+              })
+              break
+            case 'yue':
+              wx.hideLoading()
+              return app.Tips(
+                {
+                  title: res.msg,
+                  icon: 'success'
+                },
+                () => {
+                  that.triggerEvent('onChangeFun', {
+                    action: 'pay_complete'
+                  })
+                }
+              )
+              break
+            case 'offline':
+              wx.hideLoading()
+              return app.Tips(
+                {
+                  title: res.msg,
+                  icon: 'success'
+                },
+                () => {
+                  that.triggerEvent('onChangeFun', {
+                    action: 'pay_complete'
+                  })
+                }
+              )
+              break
+          }
+        })
+        .catch(err => {
+          wx.hideLoading()
+          return app.Tips(
+            {
+              title: err
+            },
+            () => {
+              that.triggerEvent('onChangeFun', {
+                action: 'pay_fail'
+              })
+            }
+          )
+        })
     }
-
-})
+  }
+})

+ 3 - 3
view/xcx/components/payment/index.json

@@ -1,4 +1,4 @@
 {
-    "usingComponents": {},
-    "component": true
-}
+  "usingComponents": {},
+  "component": true
+}

+ 22 - 16
view/xcx/components/payment/index.wxml

@@ -1,20 +1,26 @@
 <view class="payment {{pay_close ? 'on' : ''}}">
-    <view class="title acea-row row-center-wrapper">
-        选择付款方式<text class="iconfont icon-guanbi" bindtap='close'></text>
-    </view>
-    <view class="item acea-row row-between-wrapper" bindtap='goPay' data-number="{{item.number || 0}}"
-        data-value='{{item.value}}' wx:for="{{payMode}}" wx:key='index'>
-        <view class="left acea-row row-between-wrapper">
-            <view class="iconfont {{item.icon}}"></view>
-            <view class="text">
-                <view class="name">{{item.name}}</view>
-                <view class="info" wx:if="{{item.number}}">
-                    {{item.title}} <span class="money">¥{{ item.number }}</span>
-                </view>
-                <view class="info" wx:else>{{item.title}}</view>
-            </view>
+  <view class="title acea-row row-center-wrapper">
+    选择付款方式<text class="iconfont icon-guanbi" bindtap="close"></text>
+  </view>
+  <view
+    class="item acea-row row-between-wrapper"
+    bindtap="goPay"
+    data-number="{{item.number || 0}}"
+    data-value="{{item.value}}"
+    wx:for="{{payMode}}"
+    wx:key="index"
+  >
+    <view class="left acea-row row-between-wrapper">
+      <view class="iconfont {{item.icon}}"></view>
+      <view class="text">
+        <view class="name">{{item.name}}</view>
+        <view class="info" wx:if="{{item.number}}">
+          {{item.title}} <span class="money">¥{{ item.number }}</span>
         </view>
-        <view class="iconfont icon-xiangyou"></view>
+        <view class="info" wx:else>{{item.title}}</view>
+      </view>
     </view>
+    <view class="iconfont icon-xiangyou"></view>
+  </view>
 </view>
-<view class="mask" wx:if='{{pay_close}}' bindtap='close'></view>
+<view class="mask" wx:if="{{pay_close}}" bindtap="close"></view>

+ 46 - 46
view/xcx/components/payment/index.wxss

@@ -2,91 +2,91 @@
 @import '/app.wxss';
 
 .payment {
-    position: fixed;
-    bottom: 0;
-    left: 0;
-    width: 100%;
-    border-radius: 16rpx 16rpx 0 0;
-    background-color: #fff;
-    padding-bottom: 60rpx;
-    z-index: 99;
-    transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
-    transform: translate3d(0, 100%, 0);
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  border-radius: 16rpx 16rpx 0 0;
+  background-color: #fff;
+  padding-bottom: 60rpx;
+  z-index: 99;
+  transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
+  transform: translate3d(0, 100%, 0);
 }
 
 .payment.on {
-    transform: translate3d(0, 0, 0);
+  transform: translate3d(0, 0, 0);
 }
 
 .payment .title {
-    text-align: center;
-    height: 123rpx;
-    font-size: 32rpx;
-    color: #282828;
-    font-weight: bold;
-    padding-right: 30rpx;
-    margin-left: 30rpx;
-    position: relative;
-    border-bottom: 1rpx solid #eee;
+  text-align: center;
+  height: 123rpx;
+  font-size: 32rpx;
+  color: #282828;
+  font-weight: bold;
+  padding-right: 30rpx;
+  margin-left: 30rpx;
+  position: relative;
+  border-bottom: 1rpx solid #eee;
 }
 
 .payment .title .iconfont {
-    position: absolute;
-    right: 30rpx;
-    top: 50%;
-    transform: translateY(-50%);
-    font-size: 43rpx;
-    color: #8a8a8a;
-    font-weight: normal;
+  position: absolute;
+  right: 30rpx;
+  top: 50%;
+  transform: translateY(-50%);
+  font-size: 43rpx;
+  color: #8a8a8a;
+  font-weight: normal;
 }
 
 .payment .item {
-    border-bottom: 1rpx solid #eee;
-    height: 130rpx;
-    margin-left: 30rpx;
-    padding-right: 30rpx;
+  border-bottom: 1rpx solid #eee;
+  height: 130rpx;
+  margin-left: 30rpx;
+  padding-right: 30rpx;
 }
 
 .payment .item .left {
-    width: 610rpx;
+  width: 610rpx;
 }
 
 .payment .item .left .text {
-    width: 540rpx;
+  width: 540rpx;
 }
 
 .payment .item .left .text .name {
-    font-size: 32rpx;
-    color: #282828;
+  font-size: 32rpx;
+  color: #282828;
 }
 
 .payment .item .left .text .info {
-    font-size: 24rpx;
-    color: #999;
+  font-size: 24rpx;
+  color: #999;
 }
 
 .payment .item .left .text .info .money {
-    color: #ff9900;
+  color: #ff9900;
 }
 
 .payment .item .left .iconfont {
-    font-size: 45rpx;
-    color: #09bb07;
+  font-size: 45rpx;
+  color: #09bb07;
 }
 
 .payment .item .left .iconfont.icon-zhifubao {
-    color: #00aaea;
+  color: #00aaea;
 }
 
 .payment .item .left .iconfont.icon-yuezhifu {
-    color: #ff9900;
+  color: #ff9900;
 }
 
 .payment .item .left .iconfont.icon-yuezhifu1 {
-    color: #eb6623;
+  color: #eb6623;
 }
 
 .payment .item .iconfont {
-    font-size: 0.3rpx;
-    color: #999;
-}
+  font-size: 0.3rpx;
+  color: #999;
+}

+ 157 - 155
view/xcx/components/price-change/index.js

@@ -1,170 +1,172 @@
 import {
-    getAdminOrderList,
-    setAdminOrderPrice,
-    setAdminOrderRemark,
-    setOfflinePay,
-    setOrderRefund
-} from "../../api/admin";
+  getAdminOrderList,
+  setAdminOrderPrice,
+  setAdminOrderRemark,
+  setOfflinePay,
+  setOrderRefund
+} from '../../api/admin'
 
-const app = getApp();
+const app = getApp()
 
 Component({
-    properties: {
-        orderInfo: {
-            type: Object,
-            value: null,
-        },
-        change: {
-            type: Boolean,
-            value: false,
-        },
-        status: {
-            type: Number,
-            value: 0
-        }
+  properties: {
+    orderInfo: {
+      type: Object,
+      value: null
     },
-
-    data: {
-        remark: '', //备注信息
-        price: '', //实际支付
-        refund_price: '' //退款金额
+    change: {
+      type: Boolean,
+      value: false
     },
+    status: {
+      type: Number,
+      value: 0
+    }
+  },
+
+  data: {
+    remark: '', //备注信息
+    price: '', //实际支付
+    refund_price: '' //退款金额
+  },
 
-    attached: function () {
-        this.setData({
-            price: this.properties.orderInfo.pay_price ? this.properties.orderInfo.pay_price : ''
-        });
+  attached: function () {
+    this.setData({
+      price: this.properties.orderInfo.pay_price ? this.properties.orderInfo.pay_price : ''
+    })
+  },
+
+  methods: {
+    /**
+     * 事件回调
+     */
+    bindHideKeyboard: function (e) {
+      this.setData({
+        remark: e.detail.value
+      })
     },
 
-    methods: {
-        /**
-         * 事件回调 
-         */
-        bindHideKeyboard: function (e) {
-            this.setData({
-                remark: e.detail.value
-            });
-        },
+    /**
+     * 实际支付
+     */
+    bindPrice: function (e) {
+      this.setData({
+        price: e.detail.value
+      })
+    },
 
-        /**
-         * 实际支付
-         */
-        bindPrice: function (e) {
-            this.setData({
-                price: e.detail.value
-            });
-        },
+    /**
+     * 退款金额
+     */
+    bindRefundPrice: function (e) {
+      this.setData({
+        refund_price: e.detail.value
+      })
+    },
 
-        /**
-         * 退款金额
-         */
-        bindRefundPrice: function (e) {
-            this.setData({
-                refund_price: e.detail.value
-            });
-        },
+    /**
+     * 提交
+     */
+    save: function (e) {
+      let type = e.currentTarget.dataset.type
+      this.savePrice(type)
+    },
 
-        /**
-         * 提交
-         */
-        save: function (e) {
-            let type = e.currentTarget.dataset.type;
-            this.savePrice(type);
-        },
+    /**
+     * 拒绝退款
+     */
+    refuse: function (e) {
+      let type = e.currentTarget.dataset.type
+      this.savePrice(type)
+    },
 
-        /**
-         * 拒绝退款
-         */
-        refuse: function (e) {
-            let type = e.currentTarget.dataset.type;
-            this.savePrice(type);
-        },
+    /**
+     * 事件回调
+     */
+    savePrice: function (type) {
+      let that = this,
+        data = {},
+        price = this.data.price,
+        remark = this.data.remark,
+        refund_price = this.data.refund_price
+      data.order_id = that.data.orderInfo.order_id
+      if (that.data.status == 0 && that.data.orderInfo.refund_status === 0) {
+        if (!that.data.price)
+          return app.Tips({
+            title: '请输入价格'
+          })
+        data.price = price
+        // 订单改价
+        setAdminOrderPrice(data).then(
+          function () {
+            that.close()
+            app.Tips({
+              title: '改价成功'
+            })
+            that.triggerEvent('getIndex')
+          },
+          function () {
+            that.close()
+            app.Tips({
+              title: '改价失败'
+            })
+          }
+        )
+      } else if (that.data.status == 0 && that.data.orderInfo.refund_status == 1) {
+        if (type === '1' && !refund_price)
+          return app.Tips({
+            title: '请输入退款金额'
+          })
+        data.price = refund_price
+        data.type = type
+        // 确认退款 拒绝退款
+        setOrderRefund(data).then(
+          res => {
+            that.close()
+            app.Tips({
+              title: res.msg
+            })
+            that.triggerEvent('getIndex')
+          },
+          err => {
+            that.close()
+            app.Tips({
+              title: err
+            })
+          }
+        )
+      } else {
+        if (!this.data.remark)
+          return app.Tips({
+            title: '请输入订单备注'
+          })
+        data.remark = remark
+        // 订单备注
+        setAdminOrderRemark(data).then(
+          res => {
+            that.close()
+            that.setData({
+              remark: ''
+            })
+            that.triggerEvent('getIndex')
+            app.Tips({
+              title: res.msg
+            })
+          },
+          err => {
+            that.close()
+            app.Tips({
+              title: err
+            })
+          }
+        )
+      }
+    },
 
-        /**
-         * 事件回调
-         */
-        savePrice: function (type) {
-            let that = this,
-                data = {},
-                price = this.data.price,
-                remark = this.data.remark,
-                refund_price = this.data.refund_price;
-            data.order_id = that.data.orderInfo.order_id;
-            if (that.data.status == 0 && that.data.orderInfo.refund_status === 0) {
-                if (!that.data.price) return app.Tips({
-                    title: '请输入价格'
-                });
-                data.price = price;
-                // 订单改价
-                setAdminOrderPrice(data).then(
-                    function () {
-                        that.close();
-                        app.Tips({
-                            title: '改价成功'
-                        });
-                        that.triggerEvent('getIndex');
-                    },
-                    function () {
-                        that.close();
-                        app.Tips({
-                            title: '改价失败'
-                        });
-                    }
-                );
-            } else if (that.data.status == 0 && that.data.orderInfo.refund_status == 1) {
-                if (type === '1' && !refund_price) return app.Tips({
-                    title: '请输入退款金额'
-                });
-                data.price = refund_price;
-                data.type = type;
-                // 确认退款 拒绝退款
-                setOrderRefund(data).then(
-                    res => {
-                        that.close();
-                        app.Tips({
-                            title: res.msg
-                        });
-                        that.triggerEvent('getIndex');
-                    },
-                    err => {
-                        that.close();
-                        app.Tips({
-                            title: err
-                        });
-                    }
-                );
-            } else {
-                if (!this.data.remark) return app.Tips({
-                    title: '请输入订单备注'
-                });
-                data.remark = remark;
-                // 订单备注
-                setAdminOrderRemark(data).then(
-                    res => {
-                        that.close();
-                        that.setData({
-                            remark: ''
-                        });
-                        that.triggerEvent('getIndex');
-                        app.Tips({
-                            title: res.msg
-                        });
-                    },
-                    err => {
-                        that.close();
-                        app.Tips({
-                            title: err
-                        });
-                    }
-                );
-            }
-        },
-        
-        close: function () {
-            this.triggerEvent('onChangeFun', {
-                action: 'change'
-            });
-        }
+    close: function () {
+      this.triggerEvent('onChangeFun', {
+        action: 'change'
+      })
     }
-
-})
+  }
+})

+ 3 - 3
view/xcx/components/price-change/index.json

@@ -1,4 +1,4 @@
 {
-    "usingComponents": {},
-    "component": true
-}
+  "usingComponents": {},
+  "component": true
+}

+ 52 - 44
view/xcx/components/price-change/index.wxml

@@ -1,51 +1,59 @@
 <view class="priceChange" class="priceChange {{change ? 'on' : ''}}">
-    <view class="priceTitle">
-        {{status == 0? orderInfo.refund_status === 1? "立即退款": "一键改价": "订单备注"}}
-        <span class="iconfont icon-guanbi" bindtap="close"></span>
+  <view class="priceTitle">
+    {{status == 0? orderInfo.refund_status === 1? "立即退款": "一键改价": "订单备注"}}
+    <span class="iconfont icon-guanbi" bindtap="close"></span>
+  </view>
+  <view class="listChange" wx:if="{{status == 0}}">
+    <view class="item acea-row row-between-wrapper" wx:if="{{orderInfo.refund_status === 0}}">
+      <view>商品总价(¥)</view>
+      <view class="money"> {{ orderInfo.total_price }}<span class="iconfont icon-suozi"></span> </view>
     </view>
-    <view class="listChange" wx:if="{{status == 0}}">
-        <view class="item acea-row row-between-wrapper" wx:if="{{orderInfo.refund_status === 0}}">
-            <view>商品总价(¥)</view>
-            <view class="money">
-                {{ orderInfo.total_price }}<span class="iconfont icon-suozi"></span>
-            </view>
-        </view>
-        <view class="item acea-row row-between-wrapper" wx:if="{{orderInfo.refund_status === 0}}">
-            <view>原始邮费(¥)</view>
-            <view class="money">
-                {{ orderInfo.pay_postage }}<span class="iconfont icon-suozi"></span>
-            </view>
-        </view>
-        <view class="item acea-row row-between-wrapper" wx:if="{{orderInfo.refund_status === 0}}">
-            <view>实际支付(¥)</view>
-            <view class="money">
-                <input type="text" bindinput="bindPrice" data-name="orderInfo.pay_price" value='{{orderInfo.pay_price}}'
-                    class="{{focus === true ? 'on' : ''}}" />
-            </view>
-        </view>
-        <view class="item acea-row row-between-wrapper" wx:if="{{orderInfo.refund_status === 1}}">
-            <view>实际支付(¥)</view>
-            <view class="money">
-                {{ orderInfo.pay_price }}<span class="iconfont icon-suozi"></span>
-            </view>
-        </view>
-        <view class="item acea-row row-between-wrapper" wx:if="{{orderInfo.refund_status === 1}}">
-            <view>退款金额(¥)</view>
-            <view class="money">
-                <input type="text" bindinput="bindRefundPrice" data-name="refund_price" value='{{refund_price}}'
-                    class="{{focus === true ? 'on' : ''}}" />
-            </view>
-        </view>
+    <view class="item acea-row row-between-wrapper" wx:if="{{orderInfo.refund_status === 0}}">
+      <view>原始邮费(¥)</view>
+      <view class="money"> {{ orderInfo.pay_postage }}<span class="iconfont icon-suozi"></span> </view>
     </view>
-    <view class="listChange" wx:else>
-        <textarea placeholder="{{orderInfo.remark ? orderInfo.remark : '请填写备注信息...'}}" bindinput="bindHideKeyboard"
-            data-name="remark" value='{{remark}}'></textarea>
+    <view class="item acea-row row-between-wrapper" wx:if="{{orderInfo.refund_status === 0}}">
+      <view>实际支付(¥)</view>
+      <view class="money">
+        <input
+          type="text"
+          bindinput="bindPrice"
+          data-name="orderInfo.pay_price"
+          value="{{orderInfo.pay_price}}"
+          class="{{focus === true ? 'on' : ''}}"
+        />
+      </view>
     </view>
-    <view class="modify" bindtap="save" data-type="1">
-        {{ status === 1 || orderInfo.refund_status === 0 ? "立即修改" : "确认退款" }}
+    <view class="item acea-row row-between-wrapper" wx:if="{{orderInfo.refund_status === 1}}">
+      <view>实际支付(¥)</view>
+      <view class="money"> {{ orderInfo.pay_price }}<span class="iconfont icon-suozi"></span> </view>
     </view>
-    <view class="modify1" bindtap="refuse" data-type="2" wx:if="{{orderInfo.refund_status === 1 && status === 0}}">
-        拒绝退款
+    <view class="item acea-row row-between-wrapper" wx:if="{{orderInfo.refund_status === 1}}">
+      <view>退款金额(¥)</view>
+      <view class="money">
+        <input
+          type="text"
+          bindinput="bindRefundPrice"
+          data-name="refund_price"
+          value="{{refund_price}}"
+          class="{{focus === true ? 'on' : ''}}"
+        />
+      </view>
     </view>
+  </view>
+  <view class="listChange" wx:else>
+    <textarea
+      placeholder="{{orderInfo.remark ? orderInfo.remark : '请填写备注信息...'}}"
+      bindinput="bindHideKeyboard"
+      data-name="remark"
+      value="{{remark}}"
+    ></textarea>
+  </view>
+  <view class="modify" bindtap="save" data-type="1">
+    {{ status === 1 || orderInfo.refund_status === 0 ? "立即修改" : "确认退款" }}
+  </view>
+  <view class="modify1" bindtap="refuse" data-type="2" wx:if="{{orderInfo.refund_status === 1 && status === 0}}">
+    拒绝退款
+  </view>
 </view>
-<view class="mask" wx:if='{{change}}' bindtap='close'></view>
+<view class="mask" wx:if="{{change}}" bindtap="close"></view>

File diff suppressed because it is too large
+ 26 - 26
view/xcx/components/price-change/index.wxss


+ 100 - 100
view/xcx/components/product-window/index.js

@@ -1,114 +1,114 @@
-var app = getApp();
+var app = getApp()
 
 Component({
-    properties: {
-        iSplus: {
-            type: Boolean,
-            value: true
-        },
-        iSbnt: {
-            type: Number,
-            value: 0
-        },
-        limitNum: {
-            type: Number,
-            value: 0
-        },
-        attribute: {
-            type: Object,
-            value: {}
-        },
-        attrList: {
-            type: Object,
-            value: [],
-        },
-        productAttr: {
-            type: Object,
-            value: [],
-        },
-        productSelect: {
-            type: Object,
-            value: {
-                image: '',
-                store_name: '',
-                price: 0,
-                unique: '',
-                stock: 0,
-            }
-        },
+  properties: {
+    iSplus: {
+      type: Boolean,
+      value: true
     },
-
-    data: {
-        attrValue: [],
-        attrIndex: 0,
-        isShow: false
+    iSbnt: {
+      type: Number,
+      value: 0
+    },
+    limitNum: {
+      type: Number,
+      value: 0
+    },
+    attribute: {
+      type: Object,
+      value: {}
+    },
+    attrList: {
+      type: Object,
+      value: []
     },
+    productAttr: {
+      type: Object,
+      value: []
+    },
+    productSelect: {
+      type: Object,
+      value: {
+        image: '',
+        store_name: '',
+        price: 0,
+        unique: '',
+        stock: 0
+      }
+    }
+  },
 
-    attached: function () {
-        let pages = getCurrentPages();
-        let currPage = null;
-        if (pages.length) {
-            currPage = pages[pages.length - 1];
-        }
-        let route = currPage.route
-        this.setData({
-            isShow: route.indexOf("goods_details") !== -1
-        });
+  data: {
+    attrValue: [],
+    attrIndex: 0,
+    isShow: false
+  },
+
+  attached: function () {
+    let pages = getCurrentPages()
+    let currPage = null
+    if (pages.length) {
+      currPage = pages[pages.length - 1]
+    }
+    let route = currPage.route
+    this.setData({
+      isShow: route.indexOf('goods_details') !== -1
+    })
+  },
+
+  methods: {
+    /**
+     * 购物车手动输入数量
+     */
+    bindCode: function (e) {
+      this.triggerEvent('iptCartNum', e.detail.value)
     },
 
-    methods: {
-        /**
-         * 购物车手动输入数量
-         */
-        bindCode: function (e) {
-            this.triggerEvent('iptCartNum', e.detail.value);
-        },
+    close: function () {
+      this.triggerEvent('myevent', {
+        window: false
+      })
+    },
 
-        close: function () {
-            this.triggerEvent('myevent', {
-                'window': false
-            });
-        },
+    goCat: function () {
+      this.triggerEvent('goCat')
+    },
 
-        goCat: function () {
-            this.triggerEvent('goCat');
-        },
+    CartNumDes: function () {
+      this.triggerEvent('ChangeCartNum', false)
+    },
 
-        CartNumDes: function () {
-            this.triggerEvent('ChangeCartNum', false);
-        },
+    CartNumInt: function () {
+      this.triggerEvent('ChangeCartNum', true)
+    },
 
-        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)
+    },
 
-        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
+      })
+    },
 
-        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
-            });
-        },
+    ResetAttr: function () {
+      for (var k in this.data.productAttr) this.data.productAttr[k].checked = ''
+      this.setData({
+        productAttr: this.data.productAttr
+      })
     }
-})
+  }
+})

+ 3 - 3
view/xcx/components/product-window/index.json

@@ -1,4 +1,4 @@
 {
-    "usingComponents": {},
-    "component": true
-}
+  "usingComponents": {},
+  "component": true
+}

+ 65 - 41
view/xcx/components/product-window/index.wxml

@@ -1,46 +1,70 @@
 <view class='product-window {{attribute.cartAttr==true?"on":""}} {{iSbnt?"join":""}}'>
-    <view class='textpic acea-row row-between-wrapper'>
-        <view class='pictrue'>
-            <image src='{{productSelect.image}}'></image>
-        </view>
-        <view class='text'>
-            <view class='line1'>{{productSelect.store_name}}</view>
-            <view class='money font-color'>
-                ¥<text class='num'>{{productSelect.price}}</text>
-                <text class='stock' wx:if="{{isShow}}">库存: {{productSelect.stock}}</text>
-                <text class='stock' wx:if="{{limitNum}}">限量: {{productSelect.quota_show}}</text>
-            </view>
-        </view>
-        <view class='iconfont icon-guanbi' bindtap='close'></view>
+  <view class="textpic acea-row row-between-wrapper">
+    <view class="pictrue">
+      <image src="{{productSelect.image}}"></image>
     </view>
-    <view class='productWinList'>
-        <view class='item' wx:for='{{productAttr}}' wx:key='index'>
-            <view class='title'>{{item.attr_name}}</view>
-            <view class='listn acea-row row-middle'>
-                <view class='itemn {{item.checked==itemn.attr ?"on":""}}' wx:for='{{item.attr_value}}'
-                    wx:for-item='itemn' wx:for-index='indexn' data-indexw='{{index}}' data-indexn='{{indexn}}'
-                    bindtap='tapAttr' wx:key='index'>{{itemn.attr}}</view>
-            </view>
-        </view>
+    <view class="text">
+      <view class="line1">{{productSelect.store_name}}</view>
+      <view class="money font-color">
+        ¥<text class="num">{{productSelect.price}}</text>
+        <text class="stock" wx:if="{{isShow}}">库存: {{productSelect.stock}}</text>
+        <text class="stock" wx:if="{{limitNum}}">限量: {{productSelect.quota_show}}</text>
+      </view>
     </view>
-    <view class='cart'>
-        <view class='title'>数量</view>
-        <view class='carnum acea-row row-left'>
-            <view class='reduce {{productSelect.cart_num <= 1 ? "on":""}}' bindtap='CartNumDes'>-</view>
-            <view class='num'>
-                <input type="number" value="{{productSelect.cart_num}}" data-name="productSelect.cart_num"
-                    bindinput="bindCode"></input>
-            </view>
-            <view wx:if="{{iSplus}}" class='plus {{productSelect.cart_num >= productSelect.stock? "on":""}}'
-                bindtap='CartNumInt'>+</view>
-            <view wx:else
-                class='plus {{(productSelect.cart_num >= productSelect.quota_show) || (productSelect.cart_num >= productSelect.product_stock) || (productSelect.cart_num >= productSelect.num)? "on":""}}'
-                bindtap='CartNumInt'>+</view>
-        </view>
+    <view class="iconfont icon-guanbi" bindtap="close"></view>
+  </view>
+  <view class="productWinList">
+    <view class="item" wx:for="{{productAttr}}" wx:key="index">
+      <view class="title">{{item.attr_name}}</view>
+      <view class="listn acea-row row-middle">
+        <view
+          class='itemn {{item.checked==itemn.attr ?"on":""}}'
+          wx:for="{{item.attr_value}}"
+          wx:for-item="itemn"
+          wx:for-index="indexn"
+          data-indexw="{{index}}"
+          data-indexn="{{indexn}}"
+          bindtap="tapAttr"
+          wx:key="index"
+          >{{itemn.attr}}</view
+        >
+      </view>
     </view>
-    <view class="joinBnt bg-color" wx:if="{{iSbnt && productSelect.product_stock>0 &&productSelect.quota>0}}"
-        bindtap="goCat">我要参团</view>
-    <view class="joinBnt on" wx:elif="{{(iSbnt && productSelect.quota<=0)||(iSbnt &&productSelect.product_stock<=0)}}">
-        已售罄</view>
+  </view>
+  <view class="cart">
+    <view class="title">数量</view>
+    <view class="carnum acea-row row-left">
+      <view class='reduce {{productSelect.cart_num <= 1 ? "on":""}}' bindtap="CartNumDes">-</view>
+      <view class="num">
+        <input
+          type="number"
+          value="{{productSelect.cart_num}}"
+          data-name="productSelect.cart_num"
+          bindinput="bindCode"
+        />
+      </view>
+      <view
+        wx:if="{{iSplus}}"
+        class='plus {{productSelect.cart_num >= productSelect.stock? "on":""}}'
+        bindtap="CartNumInt"
+        >+</view
+      >
+      <view
+        wx:else
+        class='plus {{(productSelect.cart_num >= productSelect.quota_show) || (productSelect.cart_num >= productSelect.product_stock) || (productSelect.cart_num >= productSelect.num)? "on":""}}'
+        bindtap="CartNumInt"
+        >+</view
+      >
+    </view>
+  </view>
+  <view
+    class="joinBnt bg-color"
+    wx:if="{{iSbnt && productSelect.product_stock>0 &&productSelect.quota>0}}"
+    bindtap="goCat"
+    >我要参团</view
+  >
+  <view class="joinBnt on" wx:elif="{{(iSbnt && productSelect.quota<=0)||(iSbnt &&productSelect.product_stock<=0)}}">
+    已售罄</view
+  >
 </view>
-<view class='mask' catchtouchmove="true" hidden='{{attribute.cartAttr==false}}' bindtap='close'></view>
+<view class="mask" catchtouchmove="true" hidden="{{attribute.cartAttr==false}}" bindtap="close"></view>

+ 87 - 87
view/xcx/components/product-window/index.wxss

@@ -1,170 +1,170 @@
 @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);
+  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 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
 }
 
 .product-window.on {
-    transform: translate3d(0, 0, 0);
+  transform: translate3d(0, 0, 0);
 }
 
 .product-window.join {
-    padding-bottom: 30rpx;
+  padding-bottom: 30rpx;
 }
 
 .product-window .textpic {
-    padding: 0 130rpx 0 30rpx;
-    margin-top: 29rpx;
-    position: relative;
+  padding: 0 130rpx 0 30rpx;
+  margin-top: 29rpx;
+  position: relative;
 }
 
 .product-window .textpic .pictrue {
-    width: 150rpx;
-    height: 150rpx;
+  width: 150rpx;
+  height: 150rpx;
 }
 
 .product-window .textpic .pictrue image {
-    width: 100%;
-    height: 100%;
-    border-radius: 10rpx;
+  width: 100%;
+  height: 100%;
+  border-radius: 10rpx;
 }
 
 .product-window .textpic .text {
-    width: 410rpx;
-    font-size: 32rpx;
-    color: #202020;
+  width: 410rpx;
+  font-size: 32rpx;
+  color: #202020;
 }
 
 .product-window .textpic .text .money {
-    font-size: 24rpx;
-    margin-top: 40rpx;
+  font-size: 24rpx;
+  margin-top: 40rpx;
 }
 
 .product-window .textpic .text .money .num {
-    font-size: 36rpx;
+  font-size: 36rpx;
 }
 
 .product-window .textpic .text .money .stock {
-    color: #999;
-    margin-left: 18rpx;
+  color: #999;
+  margin-left: 18rpx;
 }
 
 .product-window .textpic .iconfont {
-    position: absolute;
-    right: 30rpx;
-    top: -5rpx;
-    font-size: 35rpx;
-    color: #8a8a8a;
+  position: absolute;
+  right: 30rpx;
+  top: -5rpx;
+  font-size: 35rpx;
+  color: #8a8a8a;
 }
 
 .product-window .productWinList {
-    max-height: 395rpx;
-    overflow: auto;
-    margin-top: 36rpx;
+  max-height: 395rpx;
+  overflow: auto;
+  margin-top: 36rpx;
 }
 
-.product-window .productWinList .item~.item {
-    margin-top: 36rpx;
+.product-window .productWinList .item ~ .item {
+  margin-top: 36rpx;
 }
 
 .product-window .productWinList .item .title {
-    font-size: 30rpx;
-    color: #999;
-    padding: 0 30rpx;
+  font-size: 30rpx;
+  color: #999;
+  padding: 0 30rpx;
 }
 
 .product-window .productWinList .item .listn {
-    padding: 0 30rpx 0 16rpx;
+  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;
+  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;
+  color: #fff;
+  background-color: #ff3700;
+  border-color: #ff3700;
 }
 
 .product-window .cart {
-    margin-top: 36rpx;
-    padding: 0 30rpx;
+  margin-top: 36rpx;
+  padding: 0 30rpx;
 }
 
 .product-window .cart .title {
-    font-size: 30rpx;
-    color: #999;
+  font-size: 30rpx;
+  color: #999;
 }
 
 .product-window .cart .carnum {
-    height: 54rpx;
-    margin-top: 24rpx;
+  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;
+  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;
+  border-right: 0;
+  border-radius: 6rpx 0 0 6rpx;
+  line-height: 48rpx;
 }
 
 .product-window .cart .carnum .reduce.on {
-    border-color: #e3e3e3;
-    color: #dedede;
+  border-color: #e3e3e3;
+  color: #dedede;
 }
 
 .product-window .cart .carnum .plus {
-    border-left: 0;
-    border-radius: 0 6rpx 6rpx 0;
-    line-height: 46rpx;
+  border-left: 0;
+  border-radius: 0 6rpx 6rpx 0;
+  line-height: 46rpx;
 }
 
 .product-window .cart .carnum .plus.on {
-    border-color: #e3e3e3;
-    color: #dedede;
+  border-color: #e3e3e3;
+  color: #dedede;
 }
 
 .product-window .cart .carnum .num {
-    color: #282828;
-    font-size: 28rpx;
+  color: #282828;
+  font-size: 28rpx;
 }
 
 .product-window .joinBnt {
-    font-size: 30rpx;
-    width: 620rpx;
-    height: 86rpx;
-    border-radius: 50rpx;
-    text-align: center;
-    line-height: 86rpx;
-    color: #fff;
-    margin: 21rpx auto 0 auto;
+  font-size: 30rpx;
+  width: 620rpx;
+  height: 86rpx;
+  border-radius: 50rpx;
+  text-align: center;
+  line-height: 86rpx;
+  color: #fff;
+  margin: 21rpx auto 0 auto;
 }
 
 .product-window .joinBnt.on {
-    background-color: #bbb;
-    color: #fff;
-}
+  background-color: #bbb;
+  color: #fff;
+}

+ 35 - 35
view/xcx/components/productConSwiper/index.js

@@ -1,42 +1,42 @@
-var app = getApp();
+var app = getApp()
 
 Component({
-    properties: {
-        imgUrls: {
-            type: Object,
-            value: []
-        },
-        videoline: {
-            type: String,
-            value: ""
-        }
+  properties: {
+    imgUrls: {
+      type: Object,
+      value: []
     },
+    videoline: {
+      type: String,
+      value: ''
+    }
+  },
 
-    data: {
-        indicatorDots: true,
-        circular: true,
-        autoplay: false,
-        interval: 3000,
-        duration: 500,
-        currents: "1",
-        controls: true
-    },
+  data: {
+    indicatorDots: true,
+    circular: true,
+    autoplay: false,
+    interval: 3000,
+    duration: 500,
+    currents: '1',
+    controls: true
+  },
+
+  ready: function () {
+    this.videoContext = wx.createVideoContext('myVideo', this)
+  },
 
-    ready: function () {
-        this.videoContext = wx.createVideoContext('myVideo', this);
+  methods: {
+    bindPause: function () {
+      this.videoContext.play()
+      this.setData({
+        controls: false
+      })
     },
-    
-    methods: {
-        bindPause: function () {
-            this.videoContext.play();
-            this.setData({
-                controls: false
-            });
-        },
-        change: function (e) {
-            this.setData({
-                currents: e.detail.current + 1
-            })
-        }
+    change: function (e) {
+      this.setData({
+        currents: e.detail.current + 1
+      })
     }
-})
+  }
+})

+ 3 - 3
view/xcx/components/productConSwiper/index.json

@@ -1,4 +1,4 @@
 {
-    "usingComponents": {},
-    "component": true
-}
+  "usingComponents": {},
+  "component": true
+}

+ 39 - 23
view/xcx/components/productConSwiper/index.wxml

@@ -1,23 +1,39 @@
-<view class='product-bg'>
-    <swiper indicator-dots="{{indicatorDots}}" indicator-active-color="#e93323" autoplay="{{autoplay}}"
-        circular="{{circular}}" interval="{{interval}}" duration="{{duration}}" bindchange="change">
-        <swiper-item wx:if='{{videoline}}'>
-            <view class="item">
-                <video id="myVideo" src='{{videoline}}' objectFit="cover" controls style="width:100%;height:100% "
-                    show-center-play-btn show-mute-btn="true" auto-pause-if-navigate custom-cache="{{false}}"></video>
-                <cover-view class="poster" wx:if="{{controls}}">
-                    <cover-image class="image" src="{{imgUrls[0]}}"></cover-image>
-                </cover-view>
-                <cover-view class="stop" wx:if="{{controls}}" bindtap="bindPause">
-                    <cover-image class="image" src="../../images/stop.png"></cover-image>
-                </cover-view>
-            </view>
-        </swiper-item>
-        <block wx:for="{{imgUrls}}" wx:key='index'>
-            <swiper-item>
-                <image src="{{item}}" class="slide-image" />
-            </swiper-item>
-        </block>
-    </swiper>
-    <!-- <view class='pages'>{{currents}}/{{imgUrls.length || 1}}</view> -->
-</view>
+<view class="product-bg">
+  <swiper
+    indicator-dots="{{indicatorDots}}"
+    indicator-active-color="#e93323"
+    autoplay="{{autoplay}}"
+    circular="{{circular}}"
+    interval="{{interval}}"
+    duration="{{duration}}"
+    bindchange="change"
+  >
+    <swiper-item wx:if="{{videoline}}">
+      <view class="item">
+        <video
+          id="myVideo"
+          src="{{videoline}}"
+          objectFit="cover"
+          controls
+          style="width: 100%; height: 100%"
+          show-center-play-btn
+          show-mute-btn="true"
+          auto-pause-if-navigate
+          custom-cache="{{false}}"
+        ></video>
+        <cover-view class="poster" wx:if="{{controls}}">
+          <cover-image class="image" src="{{imgUrls[0]}}"></cover-image>
+        </cover-view>
+        <cover-view class="stop" wx:if="{{controls}}" bindtap="bindPause">
+          <cover-image class="image" src="../../images/stop.png"></cover-image>
+        </cover-view>
+      </view>
+    </swiper-item>
+    <block wx:for="{{imgUrls}}" wx:key="index">
+      <swiper-item>
+        <image src="{{item}}" class="slide-image" />
+      </swiper-item>
+    </block>
+  </swiper>
+  <!-- <view class='pages'>{{currents}}/{{imgUrls.length || 1}}</view> -->
+</view>

+ 40 - 40
view/xcx/components/productConSwiper/index.wxss

@@ -1,68 +1,68 @@
 .product-bg {
-    width: 100%;
-    height: 750rpx;
-    position: relative;
+  width: 100%;
+  height: 750rpx;
+  position: relative;
 }
 
 .product-bg swiper {
-    width: 100%;
-    height: 100%;
-    position: relative;
+  width: 100%;
+  height: 100%;
+  position: relative;
 }
 
 .product-bg .slide-image {
-    width: 100%;
-    height: 100%;
+  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;
+  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;
 }
 
 #myVideo {
-    width: 100%;
-    height: 100%
+  width: 100%;
+  height: 100%;
 }
 
 .product-bg .item {
-    position: relative;
-    width: 100%;
-    height: 100%;
+  position: relative;
+  width: 100%;
+  height: 100%;
 }
 
 .product-bg .item .poster {
-    position: absolute;
-    top: 0;
-    left: 0;
-    height: 750rpx;
-    width: 100%;
+  position: absolute;
+  top: 0;
+  left: 0;
+  height: 750rpx;
+  width: 100%;
 }
 
 .product-bg .item .poster .image {
-    width: 100%;
-    height: 100%;
+  width: 100%;
+  height: 100%;
 }
 
 .product-bg .item .stop {
-    position: absolute;
-    top: 50%;
-    left: 50%;
-    width: 136rpx;
-    height: 136rpx;
-    margin-top: -68rpx;
-    margin-left: -68rpx;
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  width: 136rpx;
+  height: 136rpx;
+  margin-top: -68rpx;
+  margin-left: -68rpx;
 }
 
 .product-bg .item .stop .image {
-    width: 100%;
-    height: 100%;
-}
+  width: 100%;
+  height: 100%;
+}

+ 35 - 41
view/xcx/components/promotionGood/index.js

@@ -1,48 +1,42 @@
-var app = getApp();
+var app = getApp()
 
 Component({
-    properties: {
-        benefit: {
-            type: Object,
-            value: [],
-        }
-    },
-
-    data: {
-
-    },
+  properties: {
+    benefit: {
+      type: Object,
+      value: []
+    }
+  },
 
-    ready: function () {
+  data: {},
 
-    },
+  ready: function () {},
 
-    attached: function () {
+  attached: function () {},
 
-    },
-    
-    methods: {
-        /**
-         * 商品详情跳转
-         */
-        goDetail: function (e) {
-            let item = e.currentTarget.dataset.items
-            if (item.activity && item.activity.type === "1") {
-                wx.navigateTo({
-                    url: `/pages/activity/goods_seckill_details/index?id=${item.activity.id}&time=${item.activity.time}&status=1`
-                });
-            } else if (item.activity && item.activity.type === "2") {
-                wx.navigateTo({
-                    url: `/pages/activity/goods_bargain_details/index?id=${item.activity.id}`
-                });
-            } else if (item.activity && item.activity.type === "3") {
-                wx.navigateTo({
-                    url: `/pages/activity/goods_combination_details/index?id=${item.activity.id}`
-                });
-            } else {
-                wx.navigateTo({
-                    url: `/pages/goods_details/index?id=${item.id}`
-                });
-            }
-        }
+  methods: {
+    /**
+     * 商品详情跳转
+     */
+    goDetail: function (e) {
+      let item = e.currentTarget.dataset.items
+      if (item.activity && item.activity.type === '1') {
+        wx.navigateTo({
+          url: `/pages/activity/goods_seckill_details/index?id=${item.activity.id}&time=${item.activity.time}&status=1`
+        })
+      } else if (item.activity && item.activity.type === '2') {
+        wx.navigateTo({
+          url: `/pages/activity/goods_bargain_details/index?id=${item.activity.id}`
+        })
+      } else if (item.activity && item.activity.type === '3') {
+        wx.navigateTo({
+          url: `/pages/activity/goods_combination_details/index?id=${item.activity.id}`
+        })
+      } else {
+        wx.navigateTo({
+          url: `/pages/goods_details/index?id=${item.id}`
+        })
+      }
     }
-})
+  }
+})

+ 3 - 3
view/xcx/components/promotionGood/index.json

@@ -1,4 +1,4 @@
 {
-    "usingComponents": {},
-    "component": true
-}
+  "usingComponents": {},
+  "component": true
+}

+ 21 - 26
view/xcx/components/promotionGood/index.wxml

@@ -1,29 +1,24 @@
 <!-- 促销单品 -->
-<view class='promotionGood'>
-    <block wx:for="{{benefit}}" wx:key='index'>
-        <view class='item acea-row row-between-wrapper' bindtap="goDetail" data-items='{{item}}'>
-            <view class='pictrue'>
-                <image src='{{item.image}}'></image>
-                <text class="pictrue_log pictrue_log_class"
-                    wx:if="{{item.activity && item.activity.type ==='1'}}">秒杀</text>
-                <text class="pictrue_log pictrue_log_class"
-                    wx:if="{{item.activity && item.activity.type === '2'}}">砍价</text>
-                <text class="pictrue_log pictrue_log_class"
-                    wx:if="{{item.activity && item.activity.type === '3'}}">拼团</text>
-            </view>
+<view class="promotionGood">
+  <block wx:for="{{benefit}}" wx:key="index">
+    <view class="item acea-row row-between-wrapper" bindtap="goDetail" data-items="{{item}}">
+      <view class="pictrue">
+        <image src="{{item.image}}"></image>
+        <text class="pictrue_log pictrue_log_class" wx:if="{{item.activity && item.activity.type ==='1'}}">秒杀</text>
+        <text class="pictrue_log pictrue_log_class" wx:if="{{item.activity && item.activity.type === '2'}}">砍价</text>
+        <text class="pictrue_log pictrue_log_class" wx:if="{{item.activity && item.activity.type === '3'}}">拼团</text>
+      </view>
 
-            <view class='text'>
-                <view class='name line1'>{{item.store_name}}</view>
-                <view class='sp-money acea-row'>
-                    <view class='moneyCon'>
-                        促销价: ¥<text class='num'>{{item.price}}</text>
-                    </view>
-                </view>
-                <view class='acea-row row-between-wrapper'>
-                    <view class='money'>日常价:¥{{item.ot_price}}</view>
-                    <view>仅剩:{{item.stock}}{{item.unit_name}}</view>
-                </view>
-            </view>
+      <view class="text">
+        <view class="name line1">{{item.store_name}}</view>
+        <view class="sp-money acea-row">
+          <view class="moneyCon"> 促销价: ¥<text class="num">{{item.price}}</text> </view>
         </view>
-    </block>
-</view>
+        <view class="acea-row row-between-wrapper">
+          <view class="money">日常价:¥{{item.ot_price}}</view>
+          <view>仅剩:{{item.stock}}{{item.unit_name}}</view>
+        </view>
+      </view>
+    </view>
+  </block>
+</view>

+ 26 - 26
view/xcx/components/promotionGood/index.wxss

@@ -1,56 +1,56 @@
 @import '/app.wxss';
 
 .promotionGood {
-    padding: 0 30rpx;
+  padding: 0 30rpx;
 }
 
 .promotionGood .item {
-    border-bottom: 1rpx solid #eee;
-    height: 250rpx;
+  border-bottom: 1rpx solid #eee;
+  height: 250rpx;
 }
 
 .promotionGood .item .pictrue {
-    width: 188rpx;
-    height: 188rpx;
-    position: relative;
+  width: 188rpx;
+  height: 188rpx;
+  position: relative;
 }
 
 .promotionGood .item .pictrue image {
-    width: 100%;
-    height: 100%;
-    border-radius: 6rpx;
+  width: 100%;
+  height: 100%;
+  border-radius: 6rpx;
 }
 
 .promotionGood .item .text {
-    font-size: 24rpx;
-    color: #999;
-    width: 472rpx;
+  font-size: 24rpx;
+  color: #999;
+  width: 472rpx;
 }
 
 .promotionGood .item .text .name {
-    font-size: 30rpx;
-    color: #333;
+  font-size: 30rpx;
+  color: #333;
 }
 
 .promotionGood .item .text .sp-money {
-    margin: 34rpx 0 20rpx 0;
+  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;
+  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;
+  font-size: 24rpx;
 }
 
 .promotionGood .item .text .money {
-    text-decoration: line-through;
-}
+  text-decoration: line-through;
+}

+ 35 - 35
view/xcx/components/recommend/index.js

@@ -1,39 +1,39 @@
-var app = getApp();
+var app = getApp()
 Component({
-    properties: {
-        host_product: {
-            type: Object,
-            value: [],
-        }
-    },
+  properties: {
+    host_product: {
+      type: Object,
+      value: []
+    }
+  },
+
+  data: {},
 
-    data: {},
+  attached: function () {},
 
-    attached: function () {},
-    
-    methods: {
-        /**
-         * 商品详情跳转
-         */
-        goDetail: function (e) {
-            let item = e.currentTarget.dataset.items
-            if (item.activity && item.activity.type === "1") {
-                wx.navigateTo({
-                    url: `/pages/activity/goods_seckill_details/index?id=${item.activity.id}&time=${item.activity.time}&status=1`
-                });
-            } else if (item.activity && item.activity.type === "2") {
-                wx.navigateTo({
-                    url: `/pages/activity/goods_bargain_details/index?id=${item.activity.id}`
-                });
-            } else if (item.activity && item.activity.type === "3") {
-                wx.navigateTo({
-                    url: `/pages/activity/goods_combination_details/index?id=${item.activity.id}`
-                });
-            } else {
-                wx.navigateTo({
-                    url: `/pages/goods_details/index?id=${item.id}`
-                });
-            }
-        }
+  methods: {
+    /**
+     * 商品详情跳转
+     */
+    goDetail: function (e) {
+      let item = e.currentTarget.dataset.items
+      if (item.activity && item.activity.type === '1') {
+        wx.navigateTo({
+          url: `/pages/activity/goods_seckill_details/index?id=${item.activity.id}&time=${item.activity.time}&status=1`
+        })
+      } else if (item.activity && item.activity.type === '2') {
+        wx.navigateTo({
+          url: `/pages/activity/goods_bargain_details/index?id=${item.activity.id}`
+        })
+      } else if (item.activity && item.activity.type === '3') {
+        wx.navigateTo({
+          url: `/pages/activity/goods_combination_details/index?id=${item.activity.id}`
+        })
+      } else {
+        wx.navigateTo({
+          url: `/pages/goods_details/index?id=${item.id}`
+        })
+      }
     }
-})
+  }
+})

+ 3 - 3
view/xcx/components/recommend/index.json

@@ -1,4 +1,4 @@
 {
-    "usingComponents": {},
-    "component": true
-}
+  "usingComponents": {},
+  "component": true
+}

+ 24 - 21
view/xcx/components/recommend/index.wxml

@@ -1,22 +1,25 @@
-<view class='recommend'>
-    <view class='title acea-row row-center-wrapper'>
-        <text class='iconfont icon-zhuangshixian'></text>
-        <text class='name'>热门推荐</text>
-        <text class='iconfont icon-zhuangshixian lefticon'></text>
+<view class="recommend">
+  <view class="title acea-row row-center-wrapper">
+    <text class="iconfont icon-zhuangshixian"></text>
+    <text class="name">热门推荐</text>
+    <text class="iconfont icon-zhuangshixian lefticon"></text>
+  </view>
+  <view class="recommendList acea-row row-between-wrapper">
+    <view class="item" wx:for="{{host_product}}" wx:key="index" bindtap="goDetail" data-items="{{item}}">
+      <view class="pictrue">
+        <image src="{{item.image}}"></image>
+        <text class="pictrue_log_big pictrue_log_class" wx:if="{{item.activity && item.activity.type ==='1'}}"
+          >秒杀</text
+        >
+        <text class="pictrue_log_big pictrue_log_class" wx:if="{{item.activity && item.activity.type === '2'}}"
+          >砍价</text
+        >
+        <text class="pictrue_log_big pictrue_log_class" wx:if="{{item.activity && item.activity.type === '3'}}"
+          >拼团</text
+        >
+      </view>
+      <view class="name line1">{{item.store_name}}</view>
+      <view class="money font-color">¥<text class="num">{{item.price}}</text></view>
     </view>
-    <view class='recommendList acea-row row-between-wrapper'>
-        <view class='item' wx:for="{{host_product}}" wx:key='index' bindtap="goDetail" data-items='{{item}}'>
-            <view class='pictrue'>
-                <image src='{{item.image}}'></image>
-                <text class="pictrue_log_big pictrue_log_class"
-                    wx:if="{{item.activity && item.activity.type ==='1'}}">秒杀</text>
-                <text class="pictrue_log_big pictrue_log_class"
-                    wx:if="{{item.activity && item.activity.type === '2'}}">砍价</text>
-                <text class="pictrue_log_big pictrue_log_class"
-                    wx:if="{{item.activity && item.activity.type === '3'}}">拼团</text>
-            </view>
-            <view class='name line1'>{{item.store_name}}</view>
-            <view class='money font-color'>¥<text class='num'>{{item.price}}</text></view>
-        </view>
-    </view>
-</view>
+  </view>
+</view>

+ 24 - 24
view/xcx/components/recommend/index.wxss

@@ -1,60 +1,60 @@
 @import '/app.wxss';
 
 .recommend {
-    background-color: #fff;
+  background-color: #fff;
 }
 
 .recommend .title {
-    height: 135rpx;
-    font-size: 28rpx;
-    color: #282828;
+  height: 135rpx;
+  font-size: 28rpx;
+  color: #282828;
 }
 
 .recommend .title .name {
-    margin: 0 28rpx;
+  margin: 0 28rpx;
 }
 
 .recommend .title .iconfont {
-    font-size: 170rpx;
-    color: #454545;
+  font-size: 170rpx;
+  color: #454545;
 }
 
 .recommend .title .iconfont.lefticon {
-    transform: rotate(180deg);
+  transform: rotate(180deg);
 }
 
 .recommend .recommendList {
-    padding: 0 30rpx;
+  padding: 0 30rpx;
 }
 
 .recommend .recommendList .item {
-    width: 335rpx;
-    margin-bottom: 30rpx;
+  width: 335rpx;
+  margin-bottom: 30rpx;
 }
 
 .recommend .recommendList .item .pictrue {
-    width: 100%;
-    height: 335rpx;
-    position: relative;
+  width: 100%;
+  height: 335rpx;
+  position: relative;
 }
 
 .recommend .recommendList .item .pictrue image {
-    width: 100%;
-    height: 100%;
-    border-radius: 10rpx;
+  width: 100%;
+  height: 100%;
+  border-radius: 10rpx;
 }
 
 .recommend .recommendList .item .name {
-    font-size: 28rpx;
-    color: #282828;
-    margin-top: 20rpx;
+  font-size: 28rpx;
+  color: #282828;
+  margin-top: 20rpx;
 }
 
 .recommend .recommendList .item .money {
-    font-size: 20rpx;
-    margin-top: 8rpx;
+  font-size: 20rpx;
+  margin-top: 8rpx;
 }
 
 .recommend .recommendList .item .money .num {
-    font-size: 28rpx;
-}
+  font-size: 28rpx;
+}

+ 22 - 24
view/xcx/components/share-red-packets/index.js

@@ -1,30 +1,28 @@
-var app = getApp();
+var app = getApp()
 
 Component({
-    properties: {
-        sharePacket: {
-            type: Object,
-            value: {
-                isState: true,
-                priceName: '',
-            }
-        }
-    },
+  properties: {
+    sharePacket: {
+      type: Object,
+      value: {
+        isState: true,
+        priceName: ''
+      }
+    }
+  },
 
-    data: {
+  data: {},
 
-    },
+  attached: function () {},
 
-    attached: function () {},
-
-    methods: {
-        closeShare: function () {
-            this.setData({
-                "sharePacket.isState": true
-            })
-        },
-        goShare: function () {
-            this.triggerEvent('listenerActionSheet');
-        },
+  methods: {
+    closeShare: function () {
+      this.setData({
+        'sharePacket.isState': true
+      })
+    },
+    goShare: function () {
+      this.triggerEvent('listenerActionSheet')
     }
-})
+  }
+})

+ 3 - 3
view/xcx/components/share-red-packets/index.json

@@ -1,4 +1,4 @@
 {
-    "usingComponents": {},
-    "component": true
-}
+  "usingComponents": {},
+  "component": true
+}

+ 11 - 11
view/xcx/components/share-red-packets/index.wxml

@@ -1,13 +1,13 @@
 <view class='sharing-packets {{sharePacket.isState==true?"on":""}}'>
-    <view class='iconfont icon-guanbi' bindtap='closeShare'></view>
-    <view class='line'></view>
-    <view class='sharing-con' bindtap='goShare'>
-        <image src='/images/red-packets.png'></image>
-        <view class='text font-color'>
-            <view>会员分享返</view>
-            <view class='money'><text class='label'>¥</text>{{sharePacket.priceName}}</view>
-            <view class='tip'>下单即返佣金</view>
-            <view class='shareBut'>立即分享</view>
-        </view>
+  <view class="iconfont icon-guanbi" bindtap="closeShare"></view>
+  <view class="line"></view>
+  <view class="sharing-con" bindtap="goShare">
+    <image src="/images/red-packets.png"></image>
+    <view class="text font-color">
+      <view>会员分享返</view>
+      <view class="money"><text class="label">¥</text>{{sharePacket.priceName}}</view>
+      <view class="tip">下单即返佣金</view>
+      <view class="shareBut">立即分享</view>
     </view>
-</view>
+  </view>
+</view>

+ 47 - 47
view/xcx/components/share-red-packets/index.wxss

@@ -1,80 +1,80 @@
 @import '/app.wxss';
 
 .sharing-packets {
-    position: fixed;
-    left: 30rpx;
-    z-index: 5;
-    transition: all 0.3s ease-in-out 0s;
-    opacity: 1;
-    transform: scale(1);
-    bottom: 150rpx;
+  position: fixed;
+  left: 30rpx;
+  z-index: 5;
+  transition: all 0.3s ease-in-out 0s;
+  opacity: 1;
+  transform: scale(1);
+  bottom: 150rpx;
 }
 
 .sharing-packets.on {
-    transform: scale(0);
-    opacity: 0;
+  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;
+  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;
+  width: 2rpx;
+  height: 40rpx;
+  background-color: #999;
+  margin: 0 auto;
 }
 
 .sharing-packets .sharing-con {
-    width: 187rpx;
-    height: 210rpx;
-    position: relative;
+  width: 187rpx;
+  height: 210rpx;
+  position: relative;
 }
 
 .sharing-packets .sharing-con image {
-    width: 100%;
-    height: 100%;
+  width: 100%;
+  height: 100%;
 }
 
 .sharing-packets .sharing-con .text {
-    position: absolute;
-    top: 30rpx;
-    font-size: 20rpx;
-    width: 100%;
-    text-align: center;
+  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;
+  font-size: 32rpx;
+  font-weight: bold;
+  margin-top: 5rpx;
 }
 
 .sharing-packets .sharing-con .text .money .label {
-    font-size: 20rpx;
+  font-size: 20rpx;
 }
 
 .sharing-packets .sharing-con .text .tip {
-    font-size: 18rpx;
-    color: #999;
-    margin-top: 5rpx;
+  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;
-}
+  font-size: 22rpx;
+  color: #fff;
+  margin-top: 18rpx;
+  height: 50rpx;
+  line-height: 50rpx;
+}

+ 25 - 25
view/xcx/components/swipers/index.js

@@ -1,31 +1,31 @@
 // components/swiper/index.js
-var app = getApp();
+var app = getApp()
 
 Component({
-    properties: {
-        imgUrls: {
-            type: Object,
-            value: []
-        }
-    },
+  properties: {
+    imgUrls: {
+      type: Object,
+      value: []
+    }
+  },
+
+  data: {
+    circular: true,
+    autoplay: true,
+    interval: 3000,
+    duration: 500,
+    currentSwiper: 0
+  },
 
-    data: {
-        circular: true,
-        autoplay: true,
-        interval: 3000,
-        duration: 500,
-        currentSwiper: 0
-    },
+  attached: function () {
+    console.log(this.data.imgUrls)
+  },
 
-    attached: function () {
-        console.log(this.data.imgUrls);
-    },
-    
-    methods: {
-        swiperChange: function (e) {
-            this.setData({
-                currentSwiper: e.detail.current
-            })
-        },
+  methods: {
+    swiperChange: function (e) {
+      this.setData({
+        currentSwiper: e.detail.current
+      })
     }
-})
+  }
+})

+ 3 - 3
view/xcx/components/swipers/index.json

@@ -1,4 +1,4 @@
 {
-    "usingComponents": {},
-    "component": true
-}
+  "usingComponents": {},
+  "component": true
+}

+ 20 - 15
view/xcx/components/swipers/index.wxml

@@ -1,15 +1,20 @@
-<view class='swiper'>
-    <swiper autoplay="{{autoplay}}" circular="{{circular}}" interval="{{interval}}" duration="{{duration}}"
-        bindchange="swiperChange">
-        <block wx:for="{{imgUrls}}" wx:key='index'>
-            <swiper-item>
-                <navigator url="{{item.link}}" style='width:100%;height:100%;' hover-class='none'>
-                    <image src="{{item.img}}" class="slide-image" />
-                </navigator>
-            </swiper-item>
-        </block>
-    </swiper>
-    <view class="dots acea-row">
-        <view class="dot {{index == currentSwiper ? 'active' : ''}}" wx:for="{{imgUrls}}" wx:key='index'></view>
-    </view>
-</view>
+<view class="swiper">
+  <swiper
+    autoplay="{{autoplay}}"
+    circular="{{circular}}"
+    interval="{{interval}}"
+    duration="{{duration}}"
+    bindchange="swiperChange"
+  >
+    <block wx:for="{{imgUrls}}" wx:key="index">
+      <swiper-item>
+        <navigator url="{{item.link}}" style="width: 100%; height: 100%" hover-class="none">
+          <image src="{{item.img}}" class="slide-image" />
+        </navigator>
+      </swiper-item>
+    </block>
+  </swiper>
+  <view class="dots acea-row">
+    <view class="dot {{index == currentSwiper ? 'active' : ''}}" wx:for="{{imgUrls}}" wx:key="index"></view>
+  </view>
+</view>

+ 19 - 19
view/xcx/components/swipers/index.wxss

@@ -1,37 +1,37 @@
 @import '/app.wxss';
 
 .swiper {
-    width: 100%;
-    height: 282rpx;
-    position: relative;
+  width: 100%;
+  height: 282rpx;
+  position: relative;
 }
 
 .swiper swiper {
-    width: 100%;
-    height: 100%;
-    position: relative;
+  width: 100%;
+  height: 100%;
+  position: relative;
 }
 
 .swiper swiper .slide-image {
-    width: 100%;
-    height: 100%;
+  width: 100%;
+  height: 100%;
 }
 
 .swiper .dots {
-    position: absolute;
-    right: 40rpx;
-    bottom: 20rpx;
+  position: absolute;
+  right: 40rpx;
+  bottom: 20rpx;
 }
 
 .swiper .dots .dot {
-    width: 12rpx;
-    height: 12rpx;
-    border: 2rpx solid #fff;
-    border-radius: 50%;
-    margin-right: 15rpx;
+  width: 12rpx;
+  height: 12rpx;
+  border: 2rpx solid #fff;
+  border-radius: 50%;
+  margin-right: 15rpx;
 }
 
 .swiper .dots .dot.active {
-    border-color: #e93323;
-    background-color: #e93323;
-}
+  border-color: #e93323;
+  background-color: #e93323;
+}

+ 18 - 22
view/xcx/components/userEvaluation/index.js

@@ -1,24 +1,20 @@
-var app = getApp();
+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],
-            });
-        },
+  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]
+      })
+    }
+  }
+})

+ 2 - 2
view/xcx/components/userEvaluation/index.json

@@ -1,3 +1,3 @@
 {
-    "component": true
-}
+  "component": true
+}

+ 28 - 22
view/xcx/components/userEvaluation/index.wxml

@@ -1,23 +1,29 @@
-<view class='evaluateWtapper'>
-    <view class='evaluateItem' wx:for="{{reply}}" wx:key='index'>
-        <view class='pic-text acea-row row-middle'>
-            <view class='pictrue'>
-                <image src='{{item.avatar}}'></image>
-            </view>
-            <view class='acea-row row-middle'>
-                <view class='name line1'>{{item.nickname}}</view>
-                <view class='start star{{item.star}}'></view>
-            </view>
-        </view>
-        <view class='time'>{{item.add_time}} {{item.suk}}</view>
-        <view class='evaluate-infor'>{{item.comment}}</view>
-        <view class='imgList acea-row'>
-            <view class='pictrue' wx:for="{{item.pics}}" wx:for-item="items" wx:for-index='pic_index' wx:key='index'>
-                <image wx:if="{{items}}" src='{{items}}' data-index="{{index}}" data-pic_index='{{pic_index}}'
-                    bindtap='getpreviewImage'></image>
-            </view>
-        </view>
-        <view class='reply' wx:if='{{item.merchant_reply_content}}'><text
-                class='font-color'>店小二</text>:{{item.merchant_reply_content}}</view>
+<view class="evaluateWtapper">
+  <view class="evaluateItem" wx:for="{{reply}}" wx:key="index">
+    <view class="pic-text acea-row row-middle">
+      <view class="pictrue">
+        <image src="{{item.avatar}}"></image>
+      </view>
+      <view class="acea-row row-middle">
+        <view class="name line1">{{item.nickname}}</view>
+        <view class="start star{{item.star}}"></view>
+      </view>
     </view>
-</view>
+    <view class="time">{{item.add_time}} {{item.suk}}</view>
+    <view class="evaluate-infor">{{item.comment}}</view>
+    <view class="imgList acea-row">
+      <view class="pictrue" wx:for="{{item.pics}}" wx:for-item="items" wx:for-index="pic_index" wx:key="index">
+        <image
+          wx:if="{{items}}"
+          src="{{items}}"
+          data-index="{{index}}"
+          data-pic_index="{{pic_index}}"
+          bindtap="getpreviewImage"
+        ></image>
+      </view>
+    </view>
+    <view class="reply" wx:if="{{item.merchant_reply_content}}"
+      ><text class="font-color">店小二</text>:{{item.merchant_reply_content}}</view
+    >
+  </view>
+</view>

+ 47 - 47
view/xcx/components/userEvaluation/index.wxss

@@ -1,85 +1,85 @@
 @import '/app.wxss';
 
 .evaluateWtapper .evaluateItem {
-    background-color: #fff;
-    padding-bottom: 25rpx;
+  background-color: #fff;
+  padding-bottom: 25rpx;
 }
 
-.evaluateWtapper .evaluateItem~.evaluateItem {
-    border-top: 1rpx solid #f5f5f5;
+.evaluateWtapper .evaluateItem ~ .evaluateItem {
+  border-top: 1rpx solid #f5f5f5;
 }
 
 .evaluateWtapper .evaluateItem .pic-text {
-    font-size: 26rpx;
-    color: #282828;
-    height: 95rpx;
-    padding: 0 30rpx;
+  font-size: 26rpx;
+  color: #282828;
+  height: 95rpx;
+  padding: 0 30rpx;
 }
 
 .evaluateWtapper .evaluateItem .pic-text .pictrue {
-    width: 56rpx;
-    height: 56rpx;
-    margin-right: 20rpx;
+  width: 56rpx;
+  height: 56rpx;
+  margin-right: 20rpx;
 }
 
 .evaluateWtapper .evaluateItem .pic-text .pictrue image {
-    width: 100%;
-    height: 100%;
-    border-radius: 50%;
+  width: 100%;
+  height: 100%;
+  border-radius: 50%;
 }
 
 .evaluateWtapper .evaluateItem .pic-text .name {
-    max-width: 450rpx;
-    margin-right: 15rpx;
+  max-width: 450rpx;
+  margin-right: 15rpx;
 }
 
 .evaluateWtapper .evaluateItem .time {
-    font-size: 24rpx;
-    color: #82848f;
-    padding: 0 30rpx;
+  font-size: 24rpx;
+  color: #82848f;
+  padding: 0 30rpx;
 }
 
 .evaluateWtapper .evaluateItem .evaluate-infor {
-    font-size: 28rpx;
-    color: #282828;
-    margin-top: 19rpx;
-    padding: 0 30rpx;
+  font-size: 28rpx;
+  color: #282828;
+  margin-top: 19rpx;
+  padding: 0 30rpx;
 }
 
 .evaluateWtapper .evaluateItem .imgList {
-    padding: 0 30rpx 0 15rpx;
-    margin-top: 25rpx;
+  padding: 0 30rpx 0 15rpx;
+  margin-top: 25rpx;
 }
 
 .evaluateWtapper .evaluateItem .imgList .pictrue {
-    width: 156rpx;
-    height: 156rpx;
-    margin: 0 0 15rpx 15rpx;
+  width: 156rpx;
+  height: 156rpx;
+  margin: 0 0 15rpx 15rpx;
 }
 
 .evaluateWtapper .evaluateItem .imgList .pictrue image {
-    width: 100%;
-    height: 100%;
+  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;
+  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;
-}
+  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;
+}

+ 14 - 18
view/xcx/components/write-off/index.js

@@ -1,20 +1,16 @@
-var app = getApp();
+var app = getApp()
 Component({
-    properties: {
-        iShidden: {
-            type: Boolean,
-            value: false
-        }
-    },
-    data: {
-
-    },
-    attached: function () {
-
-    },
-    methods: {
-        cancel: function () {
-            this.triggerEvent('cancel', false);
-        }
+  properties: {
+    isHidden: {
+      type: Boolean,
+      value: false
     }
-})
+  },
+  data: {},
+  attached: function () {},
+  methods: {
+    cancel: function () {
+      this.triggerEvent('cancel', false)
+    }
+  }
+})

+ 2 - 2
view/xcx/components/write-off/index.json

@@ -1,3 +1,3 @@
 {
-    "component": true
-}
+  "component": true
+}

+ 14 - 13
view/xcx/components/write-off/index.wxml

@@ -1,14 +1,15 @@
-<view hidden="{{iShidden == false}}">
-    <view class="WriteOff">
-        <view class="pictrue">
-            <image src="/images/value.jpg"></image>
-        </view>
-        <view class="num acea-row row-center-wrapper">wx156687208866123509
-            <view class="see">查看<text class="iconfont icon-xiangyou"></text></view>
-        </view>
-        <view class="tip">确定要核销此订单吗?</view>
-        <view class="sure">确定核销</view>
-        <view class="sure cancel" bindtap="cancel">取消</view>
+<view hidden="{{isHidden == false}}">
+  <view class="WriteOff">
+    <view class="pictrue">
+      <image src="/images/value.jpg"></image>
     </view>
-    <view class="mask" catchtouchmove="true"></view>
-</view>
+    <view class="num acea-row row-center-wrapper"
+      >wx156687208866123509
+      <view class="see">查看<text class="iconfont icon-xiangyou"></text></view>
+    </view>
+    <view class="tip">确定要核销此订单吗?</view>
+    <view class="sure">确定核销</view>
+    <view class="sure cancel" bindtap="cancel">取消</view>
+  </view>
+  <view class="mask" catchtouchmove="true"></view>
+</view>

+ 63 - 63
view/xcx/components/write-off/index.wxss

@@ -1,96 +1,96 @@
 @import '/app.wxss';
 
 .WriteOff {
-    width: 560rpx;
-    height: 800rpx;
-    background-color: #fff;
-    border-radius: 20rpx;
-    position: fixed;
-    top: 50%;
-    left: 50%;
-    margin-top: -400rpx;
-    margin-left: -280rpx;
-    z-index: 99;
-    padding-top: 55rpx;
+  width: 560rpx;
+  height: 800rpx;
+  background-color: #fff;
+  border-radius: 20rpx;
+  position: fixed;
+  top: 50%;
+  left: 50%;
+  margin-top: -400rpx;
+  margin-left: -280rpx;
+  z-index: 99;
+  padding-top: 55rpx;
 }
 
 .WriteOff .pictrue {
-    width: 340rpx;
-    height: 340rpx;
-    margin: 0 auto;
+  width: 340rpx;
+  height: 340rpx;
+  margin: 0 auto;
 }
 
 .WriteOff .pictrue image {
-    width: 100%;
-    height: 100%;
-    display: block;
-    border-radius: 10rpx;
+  width: 100%;
+  height: 100%;
+  display: block;
+  border-radius: 10rpx;
 }
 
 .WriteOff .num {
-    font-size: 30rpx;
-    color: #666;
-    margin: 28rpx 0 30rpx 0;
+  font-size: 30rpx;
+  color: #666;
+  margin: 28rpx 0 30rpx 0;
 }
 
 .WriteOff .num .see {
-    font-size: 16rpx;
-    color: #fff;
-    border-radius: 4rpx;
-    background-color: #c68937;
-    padding-left: 5rpx;
-    margin-left: 12rpx;
+  font-size: 16rpx;
+  color: #fff;
+  border-radius: 4rpx;
+  background-color: #c68937;
+  padding-left: 5rpx;
+  margin-left: 12rpx;
 }
 
 .WriteOff .num .see .iconfont {
-    font-size: 15rpx;
+  font-size: 15rpx;
 }
 
 .WriteOff .tip {
-    font-size: 36rpx;
-    color: #282828;
-    text-align: center;
-    border-top: 1px dashed #ccc;
-    padding-top: 40rpx;
-    position: relative;
+  font-size: 36rpx;
+  color: #282828;
+  text-align: center;
+  border-top: 1px dashed #ccc;
+  padding-top: 40rpx;
+  position: relative;
 }
 
 .WriteOff .tip:after {
-    content: "";
-    position: absolute;
-    width: 25rpx;
-    height: 25rpx;
-    border-radius: 50%;
-    background-color: #7f7f7f;
-    right: -12.5rpx;
-    top: -12.5rpx;
+  content: '';
+  position: absolute;
+  width: 25rpx;
+  height: 25rpx;
+  border-radius: 50%;
+  background-color: #7f7f7f;
+  right: -12.5rpx;
+  top: -12.5rpx;
 }
 
 .WriteOff .tip:before {
-    content: "";
-    position: absolute;
-    width: 25rpx;
-    height: 25rpx;
-    border-radius: 50%;
-    background-color: #7f7f7f;
-    left: -12.5rpx;
-    top: -12.5rpx;
+  content: '';
+  position: absolute;
+  width: 25rpx;
+  height: 25rpx;
+  border-radius: 50%;
+  background-color: #7f7f7f;
+  left: -12.5rpx;
+  top: -12.5rpx;
 }
 
 .WriteOff .sure {
-    font-size: 32rpx;
-    color: #fff;
-    text-align: center;
-    line-height: 82rpx;
-    height: 82rpx;
-    width: 460rpx;
-    border-radius: 41rpx;
-    margin: 40rpx auto 0 auto;
-    background-image: linear-gradient(to right, #f67a38 0%, #f11b09 100%);
+  font-size: 32rpx;
+  color: #fff;
+  text-align: center;
+  line-height: 82rpx;
+  height: 82rpx;
+  width: 460rpx;
+  border-radius: 41rpx;
+  margin: 40rpx auto 0 auto;
+  background-image: linear-gradient(to right, #f67a38 0%, #f11b09 100%);
 }
 
 .WriteOff .sure.cancel {
-    background-image: none;
-    color: #999;
-    margin-top: 10rpx;
-}
+  background-image: none;
+  color: #999;
+  margin-top: 10rpx;
+}

+ 31 - 31
view/xcx/config.js

@@ -1,34 +1,34 @@
 module.exports = {
-    // 请求域名 格式: https://您的域名
-    // HTTP_REQUEST_URL: 'http://twong.h',
-    // HTTP_REQUEST_URL:'https://twongd.shotshock.shop',
-    HTTP_REQUEST_URL:'https://twong.shotshock.shop',
-    // Socket链接 暂不做配置
-    WSS_SERVER_URL: 'wss://twong.shotshock.shop',
+  // 请求域名 格式: https://您的域名
+  HTTP_REQUEST_URL: 'http://twong.h:9080',
+  // HTTP_REQUEST_URL:'https://twongd.shotshock.shop',
+  // HTTP_REQUEST_URL:'https://twong.shotshock.shop',
+  // Socket链接 暂不做配置
+  WSS_SERVER_URL: 'wss://twong.shotshock.shop',
 
-    // 以下配置非开发者,无需修改
-    // 请求头
-    HEADER: {
-        'content-type': 'application/json'
-    },
-    // Socket调试模式
-    SERVER_DEBUG: true,
-    // 心跳间隔
-    PINGINTERVAL: 3000,
-    // 回话密钥名称 
-    TOKENNAME: 'Authori-zation',
-    //用户信息缓存名称
-    CACHE_USERINFO: 'USERINFO',
-    //token缓存名称
-    CACHE_TOKEN: 'TOKEN',
-    //token过期事件
-    CACHE_EXPIRES_TIME: 'EXPIRES_TIME',
-    //模板缓存
-    CACHE_SUBSCRIBE_MESSAGE: 'SUBSCRIBE_MESSAGE',
-    //用户信息缓存名称
-    CACHE_USERINFO: 'USERINFO',
-    //缓存经度
-    CACHE_LONGITUDE: 'LONGITUDE',
-    //缓存纬度
-    CACHE_LATITUDE: 'LATITUDE',
+  // 以下配置非开发者,无需修改
+  // 请求头
+  HEADER: {
+    'content-type': 'application/json'
+  },
+  // Socket调试模式
+  SERVER_DEBUG: true,
+  // 心跳间隔
+  PINGINTERVAL: 3000,
+  // 回话密钥名称 
+  TOKENNAME: 'Authori-zation',
+  //用户信息缓存名称
+  CACHE_USERINFO: 'USERINFO',
+  //token缓存名称
+  CACHE_TOKEN: 'TOKEN',
+  //token过期事件
+  CACHE_EXPIRES_TIME: 'EXPIRES_TIME',
+  //模板缓存
+  CACHE_SUBSCRIBE_MESSAGE: 'SUBSCRIBE_MESSAGE',
+  //用户信息缓存名称
+  CACHE_USERINFO: 'USERINFO',
+  //缓存经度
+  CACHE_LONGITUDE: 'LONGITUDE',
+  //缓存纬度
+  CACHE_LATITUDE: 'LATITUDE',
 }

+ 19 - 1
view/xcx/css/animate.wxss

@@ -21,6 +21,7 @@
 }
 
 @-webkit-keyframes bounce {
+
   from,
   20%,
   53%,
@@ -54,6 +55,7 @@
 }
 
 @keyframes bounce {
+
   from,
   20%,
   53%,
@@ -94,6 +96,7 @@
 }
 
 @-webkit-keyframes flash {
+
   from,
   50%,
   to {
@@ -107,6 +110,7 @@
 }
 
 @keyframes flash {
+
   from,
   50%,
   to {
@@ -245,6 +249,7 @@
 }
 
 @-webkit-keyframes shake {
+
   from,
   to {
     -webkit-transform: translate3d(0, 0, 0);
@@ -270,6 +275,7 @@
 }
 
 @keyframes shake {
+
   from,
   to {
     -webkit-transform: translate3d(0, 0, 0);
@@ -584,6 +590,7 @@
 }
 
 @-webkit-keyframes jello {
+
   from,
   11.1%,
   to {
@@ -628,6 +635,7 @@
 }
 
 @keyframes jello {
+
   from,
   11.1%,
   to {
@@ -679,6 +687,7 @@
 }
 
 @-webkit-keyframes bounceIn {
+
   from,
   20%,
   40%,
@@ -724,6 +733,7 @@
 }
 
 @keyframes bounceIn {
+
   from,
   20%,
   40%,
@@ -776,6 +786,7 @@
 }
 
 @-webkit-keyframes bounceInDown {
+
   from,
   60%,
   75%,
@@ -814,6 +825,7 @@
 }
 
 @keyframes bounceInDown {
+
   from,
   60%,
   75%,
@@ -857,6 +869,7 @@
 }
 
 @-webkit-keyframes bounceInLeft {
+
   from,
   60%,
   75%,
@@ -895,6 +908,7 @@
 }
 
 @keyframes bounceInLeft {
+
   from,
   60%,
   75%,
@@ -938,6 +952,7 @@
 }
 
 @-webkit-keyframes bounceInRight {
+
   from,
   60%,
   75%,
@@ -976,6 +991,7 @@
 }
 
 @keyframes bounceInRight {
+
   from,
   60%,
   75%,
@@ -1019,6 +1035,7 @@
 }
 
 @-webkit-keyframes bounceInUp {
+
   from,
   60%,
   75%,
@@ -1057,6 +1074,7 @@
 }
 
 @keyframes bounceInUp {
+
   from,
   60%,
   75%,
@@ -3491,4 +3509,4 @@
 .slideOutUp {
   -webkit-animation-name: slideOutUp;
   animation-name: slideOutUp;
-}
+}

File diff suppressed because it is too large
+ 0 - 7
view/xcx/css/guildford.wxss


File diff suppressed because it is too large
+ 152 - 158
view/xcx/css/style.wxss


+ 4541 - 0
view/xcx/css/wxbase.wxss

@@ -0,0 +1,4541 @@
+/** colors */
+.dark {
+  --bg-color-primary: black;
+  --color-primary: white;
+}
+
+.light {
+  --bg-color-primary: white;
+  --color-primary: black;
+}
+
+/** unit in rpx of horizontal and vertical */
+/** basic font-size */
+.col,
+.vstake,
+.row,
+.hstake,
+.flex,
+.stake {
+  display: flex;
+}
+
+.row,
+.hstake {
+  flex-direction: row;
+}
+
+.col,
+.vstake {
+  flex-direction: column;
+}
+
+.justify-start {
+  justify-content: start;
+}
+
+.justify-end {
+  justify-content: end;
+}
+
+.justify-flex-start {
+  justify-content: flex-start;
+}
+
+.justify-flex-end {
+  justify-content: flex-end;
+}
+
+.justify-center {
+  justify-content: center;
+}
+
+.justify-space-between {
+  justify-content: space-between;
+}
+
+.justify-space-around {
+  justify-content: space-around;
+}
+
+.align-start {
+  align-items: start;
+}
+
+.align-end {
+  align-items: end;
+}
+
+.align-flex-start {
+  align-items: flex-start;
+}
+
+.align-flex-end {
+  align-items: flex-end;
+}
+
+.align-center {
+  align-items: center;
+}
+
+.gap-1 {
+  gap: 4rpx;
+}
+
+.fs-1 {
+  font-size: 10rpx;
+}
+
+.gap-2 {
+  gap: 8rpx;
+}
+
+.fs-2 {
+  font-size: 14rpx;
+}
+
+.gap-3 {
+  gap: 12rpx;
+}
+
+.fs-3 {
+  font-size: 18rpx;
+}
+
+.gap-4 {
+  gap: 16rpx;
+}
+
+.fs-4 {
+  font-size: 22rpx;
+}
+
+.gap-5 {
+  gap: 20rpx;
+}
+
+.fs-5 {
+  font-size: 26rpx;
+}
+
+.gap-6 {
+  gap: 24rpx;
+}
+
+.fs-6 {
+  font-size: 30rpx;
+}
+
+.gap-7 {
+  gap: 28rpx;
+}
+
+.fs-7 {
+  font-size: 34rpx;
+}
+
+.gap-8 {
+  gap: 32rpx;
+}
+
+.fs-8 {
+  font-size: 38rpx;
+}
+
+.gap-9 {
+  gap: 36rpx;
+}
+
+.fs-9 {
+  font-size: 42rpx;
+}
+
+.gap-10 {
+  gap: 40rpx;
+}
+
+.fs-10 {
+  font-size: 46rpx;
+}
+
+.gap-11 {
+  gap: 44rpx;
+}
+
+.fs-11 {
+  font-size: 50rpx;
+}
+
+.gap-12 {
+  gap: 48rpx;
+}
+
+.fs-12 {
+  font-size: 54rpx;
+}
+
+.gap-13 {
+  gap: 52rpx;
+}
+
+.fs-13 {
+  font-size: 58rpx;
+}
+
+.gap-14 {
+  gap: 56rpx;
+}
+
+.fs-14 {
+  font-size: 62rpx;
+}
+
+.gap-15 {
+  gap: 60rpx;
+}
+
+.fs-15 {
+  font-size: 66rpx;
+}
+
+.gap-16 {
+  gap: 64rpx;
+}
+
+.fs-16 {
+  font-size: 70rpx;
+}
+
+.gap-17 {
+  gap: 68rpx;
+}
+
+.fs-17 {
+  font-size: 74rpx;
+}
+
+.gap-18 {
+  gap: 72rpx;
+}
+
+.fs-18 {
+  font-size: 78rpx;
+}
+
+.gap-19 {
+  gap: 76rpx;
+}
+
+.fs-19 {
+  font-size: 82rpx;
+}
+
+.gap-20 {
+  gap: 80rpx;
+}
+
+.fs-20 {
+  font-size: 86rpx;
+}
+
+.gap-21 {
+  gap: 84rpx;
+}
+
+.fs-21 {
+  font-size: 90rpx;
+}
+
+.gap-22 {
+  gap: 88rpx;
+}
+
+.fs-22 {
+  font-size: 94rpx;
+}
+
+.gap-23 {
+  gap: 92rpx;
+}
+
+.fs-23 {
+  font-size: 98rpx;
+}
+
+.gap-24 {
+  gap: 96rpx;
+}
+
+.fs-24 {
+  font-size: 102rpx;
+}
+
+.gap-25 {
+  gap: 100rpx;
+}
+
+.fs-25 {
+  font-size: 106rpx;
+}
+
+.gap-26 {
+  gap: 104rpx;
+}
+
+.fs-26 {
+  font-size: 110rpx;
+}
+
+.gap-27 {
+  gap: 108rpx;
+}
+
+.fs-27 {
+  font-size: 114rpx;
+}
+
+.gap-28 {
+  gap: 112rpx;
+}
+
+.fs-28 {
+  font-size: 118rpx;
+}
+
+.gap-29 {
+  gap: 116rpx;
+}
+
+.fs-29 {
+  font-size: 122rpx;
+}
+
+.gap-30 {
+  gap: 120rpx;
+}
+
+.fs-30 {
+  font-size: 126rpx;
+}
+
+.gap-31 {
+  gap: 124rpx;
+}
+
+.fs-31 {
+  font-size: 130rpx;
+}
+
+.gap-32 {
+  gap: 128rpx;
+}
+
+.fs-32 {
+  font-size: 134rpx;
+}
+
+.gap-33 {
+  gap: 132rpx;
+}
+
+.fs-33 {
+  font-size: 138rpx;
+}
+
+.gap-34 {
+  gap: 136rpx;
+}
+
+.fs-34 {
+  font-size: 142rpx;
+}
+
+.gap-35 {
+  gap: 140rpx;
+}
+
+.fs-35 {
+  font-size: 146rpx;
+}
+
+.gap-36 {
+  gap: 144rpx;
+}
+
+.fs-36 {
+  font-size: 150rpx;
+}
+
+.gap-37 {
+  gap: 148rpx;
+}
+
+.fs-37 {
+  font-size: 154rpx;
+}
+
+.gap-38 {
+  gap: 152rpx;
+}
+
+.fs-38 {
+  font-size: 158rpx;
+}
+
+.gap-39 {
+  gap: 156rpx;
+}
+
+.fs-39 {
+  font-size: 162rpx;
+}
+
+.gap-40 {
+  gap: 160rpx;
+}
+
+.fs-40 {
+  font-size: 166rpx;
+}
+
+.gap-41 {
+  gap: 164rpx;
+}
+
+.fs-41 {
+  font-size: 170rpx;
+}
+
+.gap-42 {
+  gap: 168rpx;
+}
+
+.fs-42 {
+  font-size: 174rpx;
+}
+
+.gap-43 {
+  gap: 172rpx;
+}
+
+.fs-43 {
+  font-size: 178rpx;
+}
+
+.gap-44 {
+  gap: 176rpx;
+}
+
+.fs-44 {
+  font-size: 182rpx;
+}
+
+.gap-45 {
+  gap: 180rpx;
+}
+
+.fs-45 {
+  font-size: 186rpx;
+}
+
+.gap-46 {
+  gap: 184rpx;
+}
+
+.fs-46 {
+  font-size: 190rpx;
+}
+
+.gap-47 {
+  gap: 188rpx;
+}
+
+.fs-47 {
+  font-size: 194rpx;
+}
+
+.gap-48 {
+  gap: 192rpx;
+}
+
+.fs-48 {
+  font-size: 198rpx;
+}
+
+.gap-49 {
+  gap: 196rpx;
+}
+
+.fs-49 {
+  font-size: 202rpx;
+}
+
+.gap-50 {
+  gap: 200rpx;
+}
+
+.fs-50 {
+  font-size: 206rpx;
+}
+
+.gap-51 {
+  gap: 204rpx;
+}
+
+.fs-51 {
+  font-size: 210rpx;
+}
+
+.gap-52 {
+  gap: 208rpx;
+}
+
+.fs-52 {
+  font-size: 214rpx;
+}
+
+.gap-53 {
+  gap: 212rpx;
+}
+
+.fs-53 {
+  font-size: 218rpx;
+}
+
+.gap-54 {
+  gap: 216rpx;
+}
+
+.fs-54 {
+  font-size: 222rpx;
+}
+
+.gap-55 {
+  gap: 220rpx;
+}
+
+.fs-55 {
+  font-size: 226rpx;
+}
+
+.gap-56 {
+  gap: 224rpx;
+}
+
+.fs-56 {
+  font-size: 230rpx;
+}
+
+.gap-57 {
+  gap: 228rpx;
+}
+
+.fs-57 {
+  font-size: 234rpx;
+}
+
+.gap-58 {
+  gap: 232rpx;
+}
+
+.fs-58 {
+  font-size: 238rpx;
+}
+
+.gap-59 {
+  gap: 236rpx;
+}
+
+.fs-59 {
+  font-size: 242rpx;
+}
+
+.gap-60 {
+  gap: 240rpx;
+}
+
+.fs-60 {
+  font-size: 246rpx;
+}
+
+.gap-61 {
+  gap: 244rpx;
+}
+
+.fs-61 {
+  font-size: 250rpx;
+}
+
+.gap-62 {
+  gap: 248rpx;
+}
+
+.fs-62 {
+  font-size: 254rpx;
+}
+
+.gap-63 {
+  gap: 252rpx;
+}
+
+.fs-63 {
+  font-size: 258rpx;
+}
+
+.gap-64 {
+  gap: 256rpx;
+}
+
+.fs-64 {
+  font-size: 262rpx;
+}
+
+.pt-1,
+.py-1,
+.p-1 {
+  padding-top: 4rpx;
+}
+
+.pr-1,
+.px-1,
+.p-1 {
+  padding-right: 4rpx;
+}
+
+.pb-1,
+.py-1,
+.p-1 {
+  padding-bottom: 4rpx;
+}
+
+.pl-1,
+.px-1,
+.p-1 {
+  padding-left: 4rpx;
+}
+
+.mt-1,
+.my-1,
+.m-1 {
+  margin-top: 4rpx;
+}
+
+.mr-1,
+.mx-1,
+.m-1 {
+  margin-right: 4rpx;
+}
+
+.mb-1,
+.my-1,
+.m-1 {
+  margin-bottom: 4rpx;
+}
+
+.ml-1,
+.mx-1,
+.m-1 {
+  margin-left: 4rpx;
+}
+
+.pt-2,
+.py-2,
+.p-2 {
+  padding-top: 8rpx;
+}
+
+.pr-2,
+.px-2,
+.p-2 {
+  padding-right: 8rpx;
+}
+
+.pb-2,
+.py-2,
+.p-2 {
+  padding-bottom: 8rpx;
+}
+
+.pl-2,
+.px-2,
+.p-2 {
+  padding-left: 8rpx;
+}
+
+.mt-2,
+.my-2,
+.m-2 {
+  margin-top: 8rpx;
+}
+
+.mr-2,
+.mx-2,
+.m-2 {
+  margin-right: 8rpx;
+}
+
+.mb-2,
+.my-2,
+.m-2 {
+  margin-bottom: 8rpx;
+}
+
+.ml-2,
+.mx-2,
+.m-2 {
+  margin-left: 8rpx;
+}
+
+.pt-3,
+.py-3,
+.p-3 {
+  padding-top: 12rpx;
+}
+
+.pr-3,
+.px-3,
+.p-3 {
+  padding-right: 12rpx;
+}
+
+.pb-3,
+.py-3,
+.p-3 {
+  padding-bottom: 12rpx;
+}
+
+.pl-3,
+.px-3,
+.p-3 {
+  padding-left: 12rpx;
+}
+
+.mt-3,
+.my-3,
+.m-3 {
+  margin-top: 12rpx;
+}
+
+.mr-3,
+.mx-3,
+.m-3 {
+  margin-right: 12rpx;
+}
+
+.mb-3,
+.my-3,
+.m-3 {
+  margin-bottom: 12rpx;
+}
+
+.ml-3,
+.mx-3,
+.m-3 {
+  margin-left: 12rpx;
+}
+
+.pt-4,
+.py-4,
+.p-4 {
+  padding-top: 16rpx;
+}
+
+.pr-4,
+.px-4,
+.p-4 {
+  padding-right: 16rpx;
+}
+
+.pb-4,
+.py-4,
+.p-4 {
+  padding-bottom: 16rpx;
+}
+
+.pl-4,
+.px-4,
+.p-4 {
+  padding-left: 16rpx;
+}
+
+.mt-4,
+.my-4,
+.m-4 {
+  margin-top: 16rpx;
+}
+
+.mr-4,
+.mx-4,
+.m-4 {
+  margin-right: 16rpx;
+}
+
+.mb-4,
+.my-4,
+.m-4 {
+  margin-bottom: 16rpx;
+}
+
+.ml-4,
+.mx-4,
+.m-4 {
+  margin-left: 16rpx;
+}
+
+.pt-5,
+.py-5,
+.p-5 {
+  padding-top: 20rpx;
+}
+
+.pr-5,
+.px-5,
+.p-5 {
+  padding-right: 20rpx;
+}
+
+.pb-5,
+.py-5,
+.p-5 {
+  padding-bottom: 20rpx;
+}
+
+.pl-5,
+.px-5,
+.p-5 {
+  padding-left: 20rpx;
+}
+
+.mt-5,
+.my-5,
+.m-5 {
+  margin-top: 20rpx;
+}
+
+.mr-5,
+.mx-5,
+.m-5 {
+  margin-right: 20rpx;
+}
+
+.mb-5,
+.my-5,
+.m-5 {
+  margin-bottom: 20rpx;
+}
+
+.ml-5,
+.mx-5,
+.m-5 {
+  margin-left: 20rpx;
+}
+
+.pt-6,
+.py-6,
+.p-6 {
+  padding-top: 24rpx;
+}
+
+.pr-6,
+.px-6,
+.p-6 {
+  padding-right: 24rpx;
+}
+
+.pb-6,
+.py-6,
+.p-6 {
+  padding-bottom: 24rpx;
+}
+
+.pl-6,
+.px-6,
+.p-6 {
+  padding-left: 24rpx;
+}
+
+.mt-6,
+.my-6,
+.m-6 {
+  margin-top: 24rpx;
+}
+
+.mr-6,
+.mx-6,
+.m-6 {
+  margin-right: 24rpx;
+}
+
+.mb-6,
+.my-6,
+.m-6 {
+  margin-bottom: 24rpx;
+}
+
+.ml-6,
+.mx-6,
+.m-6 {
+  margin-left: 24rpx;
+}
+
+.pt-7,
+.py-7,
+.p-7 {
+  padding-top: 28rpx;
+}
+
+.pr-7,
+.px-7,
+.p-7 {
+  padding-right: 28rpx;
+}
+
+.pb-7,
+.py-7,
+.p-7 {
+  padding-bottom: 28rpx;
+}
+
+.pl-7,
+.px-7,
+.p-7 {
+  padding-left: 28rpx;
+}
+
+.mt-7,
+.my-7,
+.m-7 {
+  margin-top: 28rpx;
+}
+
+.mr-7,
+.mx-7,
+.m-7 {
+  margin-right: 28rpx;
+}
+
+.mb-7,
+.my-7,
+.m-7 {
+  margin-bottom: 28rpx;
+}
+
+.ml-7,
+.mx-7,
+.m-7 {
+  margin-left: 28rpx;
+}
+
+.pt-8,
+.py-8,
+.p-8 {
+  padding-top: 32rpx;
+}
+
+.pr-8,
+.px-8,
+.p-8 {
+  padding-right: 32rpx;
+}
+
+.pb-8,
+.py-8,
+.p-8 {
+  padding-bottom: 32rpx;
+}
+
+.pl-8,
+.px-8,
+.p-8 {
+  padding-left: 32rpx;
+}
+
+.mt-8,
+.my-8,
+.m-8 {
+  margin-top: 32rpx;
+}
+
+.mr-8,
+.mx-8,
+.m-8 {
+  margin-right: 32rpx;
+}
+
+.mb-8,
+.my-8,
+.m-8 {
+  margin-bottom: 32rpx;
+}
+
+.ml-8,
+.mx-8,
+.m-8 {
+  margin-left: 32rpx;
+}
+
+.pt-9,
+.py-9,
+.p-9 {
+  padding-top: 36rpx;
+}
+
+.pr-9,
+.px-9,
+.p-9 {
+  padding-right: 36rpx;
+}
+
+.pb-9,
+.py-9,
+.p-9 {
+  padding-bottom: 36rpx;
+}
+
+.pl-9,
+.px-9,
+.p-9 {
+  padding-left: 36rpx;
+}
+
+.mt-9,
+.my-9,
+.m-9 {
+  margin-top: 36rpx;
+}
+
+.mr-9,
+.mx-9,
+.m-9 {
+  margin-right: 36rpx;
+}
+
+.mb-9,
+.my-9,
+.m-9 {
+  margin-bottom: 36rpx;
+}
+
+.ml-9,
+.mx-9,
+.m-9 {
+  margin-left: 36rpx;
+}
+
+.pt-10,
+.py-10,
+.p-10 {
+  padding-top: 40rpx;
+}
+
+.pr-10,
+.px-10,
+.p-10 {
+  padding-right: 40rpx;
+}
+
+.pb-10,
+.py-10,
+.p-10 {
+  padding-bottom: 40rpx;
+}
+
+.pl-10,
+.px-10,
+.p-10 {
+  padding-left: 40rpx;
+}
+
+.mt-10,
+.my-10,
+.m-10 {
+  margin-top: 40rpx;
+}
+
+.mr-10,
+.mx-10,
+.m-10 {
+  margin-right: 40rpx;
+}
+
+.mb-10,
+.my-10,
+.m-10 {
+  margin-bottom: 40rpx;
+}
+
+.ml-10,
+.mx-10,
+.m-10 {
+  margin-left: 40rpx;
+}
+
+.pt-11,
+.py-11,
+.p-11 {
+  padding-top: 44rpx;
+}
+
+.pr-11,
+.px-11,
+.p-11 {
+  padding-right: 44rpx;
+}
+
+.pb-11,
+.py-11,
+.p-11 {
+  padding-bottom: 44rpx;
+}
+
+.pl-11,
+.px-11,
+.p-11 {
+  padding-left: 44rpx;
+}
+
+.mt-11,
+.my-11,
+.m-11 {
+  margin-top: 44rpx;
+}
+
+.mr-11,
+.mx-11,
+.m-11 {
+  margin-right: 44rpx;
+}
+
+.mb-11,
+.my-11,
+.m-11 {
+  margin-bottom: 44rpx;
+}
+
+.ml-11,
+.mx-11,
+.m-11 {
+  margin-left: 44rpx;
+}
+
+.pt-12,
+.py-12,
+.p-12 {
+  padding-top: 48rpx;
+}
+
+.pr-12,
+.px-12,
+.p-12 {
+  padding-right: 48rpx;
+}
+
+.pb-12,
+.py-12,
+.p-12 {
+  padding-bottom: 48rpx;
+}
+
+.pl-12,
+.px-12,
+.p-12 {
+  padding-left: 48rpx;
+}
+
+.mt-12,
+.my-12,
+.m-12 {
+  margin-top: 48rpx;
+}
+
+.mr-12,
+.mx-12,
+.m-12 {
+  margin-right: 48rpx;
+}
+
+.mb-12,
+.my-12,
+.m-12 {
+  margin-bottom: 48rpx;
+}
+
+.ml-12,
+.mx-12,
+.m-12 {
+  margin-left: 48rpx;
+}
+
+.pt-13,
+.py-13,
+.p-13 {
+  padding-top: 52rpx;
+}
+
+.pr-13,
+.px-13,
+.p-13 {
+  padding-right: 52rpx;
+}
+
+.pb-13,
+.py-13,
+.p-13 {
+  padding-bottom: 52rpx;
+}
+
+.pl-13,
+.px-13,
+.p-13 {
+  padding-left: 52rpx;
+}
+
+.mt-13,
+.my-13,
+.m-13 {
+  margin-top: 52rpx;
+}
+
+.mr-13,
+.mx-13,
+.m-13 {
+  margin-right: 52rpx;
+}
+
+.mb-13,
+.my-13,
+.m-13 {
+  margin-bottom: 52rpx;
+}
+
+.ml-13,
+.mx-13,
+.m-13 {
+  margin-left: 52rpx;
+}
+
+.pt-14,
+.py-14,
+.p-14 {
+  padding-top: 56rpx;
+}
+
+.pr-14,
+.px-14,
+.p-14 {
+  padding-right: 56rpx;
+}
+
+.pb-14,
+.py-14,
+.p-14 {
+  padding-bottom: 56rpx;
+}
+
+.pl-14,
+.px-14,
+.p-14 {
+  padding-left: 56rpx;
+}
+
+.mt-14,
+.my-14,
+.m-14 {
+  margin-top: 56rpx;
+}
+
+.mr-14,
+.mx-14,
+.m-14 {
+  margin-right: 56rpx;
+}
+
+.mb-14,
+.my-14,
+.m-14 {
+  margin-bottom: 56rpx;
+}
+
+.ml-14,
+.mx-14,
+.m-14 {
+  margin-left: 56rpx;
+}
+
+.pt-15,
+.py-15,
+.p-15 {
+  padding-top: 60rpx;
+}
+
+.pr-15,
+.px-15,
+.p-15 {
+  padding-right: 60rpx;
+}
+
+.pb-15,
+.py-15,
+.p-15 {
+  padding-bottom: 60rpx;
+}
+
+.pl-15,
+.px-15,
+.p-15 {
+  padding-left: 60rpx;
+}
+
+.mt-15,
+.my-15,
+.m-15 {
+  margin-top: 60rpx;
+}
+
+.mr-15,
+.mx-15,
+.m-15 {
+  margin-right: 60rpx;
+}
+
+.mb-15,
+.my-15,
+.m-15 {
+  margin-bottom: 60rpx;
+}
+
+.ml-15,
+.mx-15,
+.m-15 {
+  margin-left: 60rpx;
+}
+
+.pt-16,
+.py-16,
+.p-16 {
+  padding-top: 64rpx;
+}
+
+.pr-16,
+.px-16,
+.p-16 {
+  padding-right: 64rpx;
+}
+
+.pb-16,
+.py-16,
+.p-16 {
+  padding-bottom: 64rpx;
+}
+
+.pl-16,
+.px-16,
+.p-16 {
+  padding-left: 64rpx;
+}
+
+.mt-16,
+.my-16,
+.m-16 {
+  margin-top: 64rpx;
+}
+
+.mr-16,
+.mx-16,
+.m-16 {
+  margin-right: 64rpx;
+}
+
+.mb-16,
+.my-16,
+.m-16 {
+  margin-bottom: 64rpx;
+}
+
+.ml-16,
+.mx-16,
+.m-16 {
+  margin-left: 64rpx;
+}
+
+.pt-17,
+.py-17,
+.p-17 {
+  padding-top: 68rpx;
+}
+
+.pr-17,
+.px-17,
+.p-17 {
+  padding-right: 68rpx;
+}
+
+.pb-17,
+.py-17,
+.p-17 {
+  padding-bottom: 68rpx;
+}
+
+.pl-17,
+.px-17,
+.p-17 {
+  padding-left: 68rpx;
+}
+
+.mt-17,
+.my-17,
+.m-17 {
+  margin-top: 68rpx;
+}
+
+.mr-17,
+.mx-17,
+.m-17 {
+  margin-right: 68rpx;
+}
+
+.mb-17,
+.my-17,
+.m-17 {
+  margin-bottom: 68rpx;
+}
+
+.ml-17,
+.mx-17,
+.m-17 {
+  margin-left: 68rpx;
+}
+
+.pt-18,
+.py-18,
+.p-18 {
+  padding-top: 72rpx;
+}
+
+.pr-18,
+.px-18,
+.p-18 {
+  padding-right: 72rpx;
+}
+
+.pb-18,
+.py-18,
+.p-18 {
+  padding-bottom: 72rpx;
+}
+
+.pl-18,
+.px-18,
+.p-18 {
+  padding-left: 72rpx;
+}
+
+.mt-18,
+.my-18,
+.m-18 {
+  margin-top: 72rpx;
+}
+
+.mr-18,
+.mx-18,
+.m-18 {
+  margin-right: 72rpx;
+}
+
+.mb-18,
+.my-18,
+.m-18 {
+  margin-bottom: 72rpx;
+}
+
+.ml-18,
+.mx-18,
+.m-18 {
+  margin-left: 72rpx;
+}
+
+.pt-19,
+.py-19,
+.p-19 {
+  padding-top: 76rpx;
+}
+
+.pr-19,
+.px-19,
+.p-19 {
+  padding-right: 76rpx;
+}
+
+.pb-19,
+.py-19,
+.p-19 {
+  padding-bottom: 76rpx;
+}
+
+.pl-19,
+.px-19,
+.p-19 {
+  padding-left: 76rpx;
+}
+
+.mt-19,
+.my-19,
+.m-19 {
+  margin-top: 76rpx;
+}
+
+.mr-19,
+.mx-19,
+.m-19 {
+  margin-right: 76rpx;
+}
+
+.mb-19,
+.my-19,
+.m-19 {
+  margin-bottom: 76rpx;
+}
+
+.ml-19,
+.mx-19,
+.m-19 {
+  margin-left: 76rpx;
+}
+
+.pt-20,
+.py-20,
+.p-20 {
+  padding-top: 80rpx;
+}
+
+.pr-20,
+.px-20,
+.p-20 {
+  padding-right: 80rpx;
+}
+
+.pb-20,
+.py-20,
+.p-20 {
+  padding-bottom: 80rpx;
+}
+
+.pl-20,
+.px-20,
+.p-20 {
+  padding-left: 80rpx;
+}
+
+.mt-20,
+.my-20,
+.m-20 {
+  margin-top: 80rpx;
+}
+
+.mr-20,
+.mx-20,
+.m-20 {
+  margin-right: 80rpx;
+}
+
+.mb-20,
+.my-20,
+.m-20 {
+  margin-bottom: 80rpx;
+}
+
+.ml-20,
+.mx-20,
+.m-20 {
+  margin-left: 80rpx;
+}
+
+.pt-21,
+.py-21,
+.p-21 {
+  padding-top: 84rpx;
+}
+
+.pr-21,
+.px-21,
+.p-21 {
+  padding-right: 84rpx;
+}
+
+.pb-21,
+.py-21,
+.p-21 {
+  padding-bottom: 84rpx;
+}
+
+.pl-21,
+.px-21,
+.p-21 {
+  padding-left: 84rpx;
+}
+
+.mt-21,
+.my-21,
+.m-21 {
+  margin-top: 84rpx;
+}
+
+.mr-21,
+.mx-21,
+.m-21 {
+  margin-right: 84rpx;
+}
+
+.mb-21,
+.my-21,
+.m-21 {
+  margin-bottom: 84rpx;
+}
+
+.ml-21,
+.mx-21,
+.m-21 {
+  margin-left: 84rpx;
+}
+
+.pt-22,
+.py-22,
+.p-22 {
+  padding-top: 88rpx;
+}
+
+.pr-22,
+.px-22,
+.p-22 {
+  padding-right: 88rpx;
+}
+
+.pb-22,
+.py-22,
+.p-22 {
+  padding-bottom: 88rpx;
+}
+
+.pl-22,
+.px-22,
+.p-22 {
+  padding-left: 88rpx;
+}
+
+.mt-22,
+.my-22,
+.m-22 {
+  margin-top: 88rpx;
+}
+
+.mr-22,
+.mx-22,
+.m-22 {
+  margin-right: 88rpx;
+}
+
+.mb-22,
+.my-22,
+.m-22 {
+  margin-bottom: 88rpx;
+}
+
+.ml-22,
+.mx-22,
+.m-22 {
+  margin-left: 88rpx;
+}
+
+.pt-23,
+.py-23,
+.p-23 {
+  padding-top: 92rpx;
+}
+
+.pr-23,
+.px-23,
+.p-23 {
+  padding-right: 92rpx;
+}
+
+.pb-23,
+.py-23,
+.p-23 {
+  padding-bottom: 92rpx;
+}
+
+.pl-23,
+.px-23,
+.p-23 {
+  padding-left: 92rpx;
+}
+
+.mt-23,
+.my-23,
+.m-23 {
+  margin-top: 92rpx;
+}
+
+.mr-23,
+.mx-23,
+.m-23 {
+  margin-right: 92rpx;
+}
+
+.mb-23,
+.my-23,
+.m-23 {
+  margin-bottom: 92rpx;
+}
+
+.ml-23,
+.mx-23,
+.m-23 {
+  margin-left: 92rpx;
+}
+
+.pt-24,
+.py-24,
+.p-24 {
+  padding-top: 96rpx;
+}
+
+.pr-24,
+.px-24,
+.p-24 {
+  padding-right: 96rpx;
+}
+
+.pb-24,
+.py-24,
+.p-24 {
+  padding-bottom: 96rpx;
+}
+
+.pl-24,
+.px-24,
+.p-24 {
+  padding-left: 96rpx;
+}
+
+.mt-24,
+.my-24,
+.m-24 {
+  margin-top: 96rpx;
+}
+
+.mr-24,
+.mx-24,
+.m-24 {
+  margin-right: 96rpx;
+}
+
+.mb-24,
+.my-24,
+.m-24 {
+  margin-bottom: 96rpx;
+}
+
+.ml-24,
+.mx-24,
+.m-24 {
+  margin-left: 96rpx;
+}
+
+.pt-25,
+.py-25,
+.p-25 {
+  padding-top: 100rpx;
+}
+
+.pr-25,
+.px-25,
+.p-25 {
+  padding-right: 100rpx;
+}
+
+.pb-25,
+.py-25,
+.p-25 {
+  padding-bottom: 100rpx;
+}
+
+.pl-25,
+.px-25,
+.p-25 {
+  padding-left: 100rpx;
+}
+
+.mt-25,
+.my-25,
+.m-25 {
+  margin-top: 100rpx;
+}
+
+.mr-25,
+.mx-25,
+.m-25 {
+  margin-right: 100rpx;
+}
+
+.mb-25,
+.my-25,
+.m-25 {
+  margin-bottom: 100rpx;
+}
+
+.ml-25,
+.mx-25,
+.m-25 {
+  margin-left: 100rpx;
+}
+
+.pt-26,
+.py-26,
+.p-26 {
+  padding-top: 104rpx;
+}
+
+.pr-26,
+.px-26,
+.p-26 {
+  padding-right: 104rpx;
+}
+
+.pb-26,
+.py-26,
+.p-26 {
+  padding-bottom: 104rpx;
+}
+
+.pl-26,
+.px-26,
+.p-26 {
+  padding-left: 104rpx;
+}
+
+.mt-26,
+.my-26,
+.m-26 {
+  margin-top: 104rpx;
+}
+
+.mr-26,
+.mx-26,
+.m-26 {
+  margin-right: 104rpx;
+}
+
+.mb-26,
+.my-26,
+.m-26 {
+  margin-bottom: 104rpx;
+}
+
+.ml-26,
+.mx-26,
+.m-26 {
+  margin-left: 104rpx;
+}
+
+.pt-27,
+.py-27,
+.p-27 {
+  padding-top: 108rpx;
+}
+
+.pr-27,
+.px-27,
+.p-27 {
+  padding-right: 108rpx;
+}
+
+.pb-27,
+.py-27,
+.p-27 {
+  padding-bottom: 108rpx;
+}
+
+.pl-27,
+.px-27,
+.p-27 {
+  padding-left: 108rpx;
+}
+
+.mt-27,
+.my-27,
+.m-27 {
+  margin-top: 108rpx;
+}
+
+.mr-27,
+.mx-27,
+.m-27 {
+  margin-right: 108rpx;
+}
+
+.mb-27,
+.my-27,
+.m-27 {
+  margin-bottom: 108rpx;
+}
+
+.ml-27,
+.mx-27,
+.m-27 {
+  margin-left: 108rpx;
+}
+
+.pt-28,
+.py-28,
+.p-28 {
+  padding-top: 112rpx;
+}
+
+.pr-28,
+.px-28,
+.p-28 {
+  padding-right: 112rpx;
+}
+
+.pb-28,
+.py-28,
+.p-28 {
+  padding-bottom: 112rpx;
+}
+
+.pl-28,
+.px-28,
+.p-28 {
+  padding-left: 112rpx;
+}
+
+.mt-28,
+.my-28,
+.m-28 {
+  margin-top: 112rpx;
+}
+
+.mr-28,
+.mx-28,
+.m-28 {
+  margin-right: 112rpx;
+}
+
+.mb-28,
+.my-28,
+.m-28 {
+  margin-bottom: 112rpx;
+}
+
+.ml-28,
+.mx-28,
+.m-28 {
+  margin-left: 112rpx;
+}
+
+.pt-29,
+.py-29,
+.p-29 {
+  padding-top: 116rpx;
+}
+
+.pr-29,
+.px-29,
+.p-29 {
+  padding-right: 116rpx;
+}
+
+.pb-29,
+.py-29,
+.p-29 {
+  padding-bottom: 116rpx;
+}
+
+.pl-29,
+.px-29,
+.p-29 {
+  padding-left: 116rpx;
+}
+
+.mt-29,
+.my-29,
+.m-29 {
+  margin-top: 116rpx;
+}
+
+.mr-29,
+.mx-29,
+.m-29 {
+  margin-right: 116rpx;
+}
+
+.mb-29,
+.my-29,
+.m-29 {
+  margin-bottom: 116rpx;
+}
+
+.ml-29,
+.mx-29,
+.m-29 {
+  margin-left: 116rpx;
+}
+
+.pt-30,
+.py-30,
+.p-30 {
+  padding-top: 120rpx;
+}
+
+.pr-30,
+.px-30,
+.p-30 {
+  padding-right: 120rpx;
+}
+
+.pb-30,
+.py-30,
+.p-30 {
+  padding-bottom: 120rpx;
+}
+
+.pl-30,
+.px-30,
+.p-30 {
+  padding-left: 120rpx;
+}
+
+.mt-30,
+.my-30,
+.m-30 {
+  margin-top: 120rpx;
+}
+
+.mr-30,
+.mx-30,
+.m-30 {
+  margin-right: 120rpx;
+}
+
+.mb-30,
+.my-30,
+.m-30 {
+  margin-bottom: 120rpx;
+}
+
+.ml-30,
+.mx-30,
+.m-30 {
+  margin-left: 120rpx;
+}
+
+.pt-31,
+.py-31,
+.p-31 {
+  padding-top: 124rpx;
+}
+
+.pr-31,
+.px-31,
+.p-31 {
+  padding-right: 124rpx;
+}
+
+.pb-31,
+.py-31,
+.p-31 {
+  padding-bottom: 124rpx;
+}
+
+.pl-31,
+.px-31,
+.p-31 {
+  padding-left: 124rpx;
+}
+
+.mt-31,
+.my-31,
+.m-31 {
+  margin-top: 124rpx;
+}
+
+.mr-31,
+.mx-31,
+.m-31 {
+  margin-right: 124rpx;
+}
+
+.mb-31,
+.my-31,
+.m-31 {
+  margin-bottom: 124rpx;
+}
+
+.ml-31,
+.mx-31,
+.m-31 {
+  margin-left: 124rpx;
+}
+
+.pt-32,
+.py-32,
+.p-32 {
+  padding-top: 128rpx;
+}
+
+.pr-32,
+.px-32,
+.p-32 {
+  padding-right: 128rpx;
+}
+
+.pb-32,
+.py-32,
+.p-32 {
+  padding-bottom: 128rpx;
+}
+
+.pl-32,
+.px-32,
+.p-32 {
+  padding-left: 128rpx;
+}
+
+.mt-32,
+.my-32,
+.m-32 {
+  margin-top: 128rpx;
+}
+
+.mr-32,
+.mx-32,
+.m-32 {
+  margin-right: 128rpx;
+}
+
+.mb-32,
+.my-32,
+.m-32 {
+  margin-bottom: 128rpx;
+}
+
+.ml-32,
+.mx-32,
+.m-32 {
+  margin-left: 128rpx;
+}
+
+.pt-33,
+.py-33,
+.p-33 {
+  padding-top: 132rpx;
+}
+
+.pr-33,
+.px-33,
+.p-33 {
+  padding-right: 132rpx;
+}
+
+.pb-33,
+.py-33,
+.p-33 {
+  padding-bottom: 132rpx;
+}
+
+.pl-33,
+.px-33,
+.p-33 {
+  padding-left: 132rpx;
+}
+
+.mt-33,
+.my-33,
+.m-33 {
+  margin-top: 132rpx;
+}
+
+.mr-33,
+.mx-33,
+.m-33 {
+  margin-right: 132rpx;
+}
+
+.mb-33,
+.my-33,
+.m-33 {
+  margin-bottom: 132rpx;
+}
+
+.ml-33,
+.mx-33,
+.m-33 {
+  margin-left: 132rpx;
+}
+
+.pt-34,
+.py-34,
+.p-34 {
+  padding-top: 136rpx;
+}
+
+.pr-34,
+.px-34,
+.p-34 {
+  padding-right: 136rpx;
+}
+
+.pb-34,
+.py-34,
+.p-34 {
+  padding-bottom: 136rpx;
+}
+
+.pl-34,
+.px-34,
+.p-34 {
+  padding-left: 136rpx;
+}
+
+.mt-34,
+.my-34,
+.m-34 {
+  margin-top: 136rpx;
+}
+
+.mr-34,
+.mx-34,
+.m-34 {
+  margin-right: 136rpx;
+}
+
+.mb-34,
+.my-34,
+.m-34 {
+  margin-bottom: 136rpx;
+}
+
+.ml-34,
+.mx-34,
+.m-34 {
+  margin-left: 136rpx;
+}
+
+.pt-35,
+.py-35,
+.p-35 {
+  padding-top: 140rpx;
+}
+
+.pr-35,
+.px-35,
+.p-35 {
+  padding-right: 140rpx;
+}
+
+.pb-35,
+.py-35,
+.p-35 {
+  padding-bottom: 140rpx;
+}
+
+.pl-35,
+.px-35,
+.p-35 {
+  padding-left: 140rpx;
+}
+
+.mt-35,
+.my-35,
+.m-35 {
+  margin-top: 140rpx;
+}
+
+.mr-35,
+.mx-35,
+.m-35 {
+  margin-right: 140rpx;
+}
+
+.mb-35,
+.my-35,
+.m-35 {
+  margin-bottom: 140rpx;
+}
+
+.ml-35,
+.mx-35,
+.m-35 {
+  margin-left: 140rpx;
+}
+
+.pt-36,
+.py-36,
+.p-36 {
+  padding-top: 144rpx;
+}
+
+.pr-36,
+.px-36,
+.p-36 {
+  padding-right: 144rpx;
+}
+
+.pb-36,
+.py-36,
+.p-36 {
+  padding-bottom: 144rpx;
+}
+
+.pl-36,
+.px-36,
+.p-36 {
+  padding-left: 144rpx;
+}
+
+.mt-36,
+.my-36,
+.m-36 {
+  margin-top: 144rpx;
+}
+
+.mr-36,
+.mx-36,
+.m-36 {
+  margin-right: 144rpx;
+}
+
+.mb-36,
+.my-36,
+.m-36 {
+  margin-bottom: 144rpx;
+}
+
+.ml-36,
+.mx-36,
+.m-36 {
+  margin-left: 144rpx;
+}
+
+.pt-37,
+.py-37,
+.p-37 {
+  padding-top: 148rpx;
+}
+
+.pr-37,
+.px-37,
+.p-37 {
+  padding-right: 148rpx;
+}
+
+.pb-37,
+.py-37,
+.p-37 {
+  padding-bottom: 148rpx;
+}
+
+.pl-37,
+.px-37,
+.p-37 {
+  padding-left: 148rpx;
+}
+
+.mt-37,
+.my-37,
+.m-37 {
+  margin-top: 148rpx;
+}
+
+.mr-37,
+.mx-37,
+.m-37 {
+  margin-right: 148rpx;
+}
+
+.mb-37,
+.my-37,
+.m-37 {
+  margin-bottom: 148rpx;
+}
+
+.ml-37,
+.mx-37,
+.m-37 {
+  margin-left: 148rpx;
+}
+
+.pt-38,
+.py-38,
+.p-38 {
+  padding-top: 152rpx;
+}
+
+.pr-38,
+.px-38,
+.p-38 {
+  padding-right: 152rpx;
+}
+
+.pb-38,
+.py-38,
+.p-38 {
+  padding-bottom: 152rpx;
+}
+
+.pl-38,
+.px-38,
+.p-38 {
+  padding-left: 152rpx;
+}
+
+.mt-38,
+.my-38,
+.m-38 {
+  margin-top: 152rpx;
+}
+
+.mr-38,
+.mx-38,
+.m-38 {
+  margin-right: 152rpx;
+}
+
+.mb-38,
+.my-38,
+.m-38 {
+  margin-bottom: 152rpx;
+}
+
+.ml-38,
+.mx-38,
+.m-38 {
+  margin-left: 152rpx;
+}
+
+.pt-39,
+.py-39,
+.p-39 {
+  padding-top: 156rpx;
+}
+
+.pr-39,
+.px-39,
+.p-39 {
+  padding-right: 156rpx;
+}
+
+.pb-39,
+.py-39,
+.p-39 {
+  padding-bottom: 156rpx;
+}
+
+.pl-39,
+.px-39,
+.p-39 {
+  padding-left: 156rpx;
+}
+
+.mt-39,
+.my-39,
+.m-39 {
+  margin-top: 156rpx;
+}
+
+.mr-39,
+.mx-39,
+.m-39 {
+  margin-right: 156rpx;
+}
+
+.mb-39,
+.my-39,
+.m-39 {
+  margin-bottom: 156rpx;
+}
+
+.ml-39,
+.mx-39,
+.m-39 {
+  margin-left: 156rpx;
+}
+
+.pt-40,
+.py-40,
+.p-40 {
+  padding-top: 160rpx;
+}
+
+.pr-40,
+.px-40,
+.p-40 {
+  padding-right: 160rpx;
+}
+
+.pb-40,
+.py-40,
+.p-40 {
+  padding-bottom: 160rpx;
+}
+
+.pl-40,
+.px-40,
+.p-40 {
+  padding-left: 160rpx;
+}
+
+.mt-40,
+.my-40,
+.m-40 {
+  margin-top: 160rpx;
+}
+
+.mr-40,
+.mx-40,
+.m-40 {
+  margin-right: 160rpx;
+}
+
+.mb-40,
+.my-40,
+.m-40 {
+  margin-bottom: 160rpx;
+}
+
+.ml-40,
+.mx-40,
+.m-40 {
+  margin-left: 160rpx;
+}
+
+.pt-41,
+.py-41,
+.p-41 {
+  padding-top: 164rpx;
+}
+
+.pr-41,
+.px-41,
+.p-41 {
+  padding-right: 164rpx;
+}
+
+.pb-41,
+.py-41,
+.p-41 {
+  padding-bottom: 164rpx;
+}
+
+.pl-41,
+.px-41,
+.p-41 {
+  padding-left: 164rpx;
+}
+
+.mt-41,
+.my-41,
+.m-41 {
+  margin-top: 164rpx;
+}
+
+.mr-41,
+.mx-41,
+.m-41 {
+  margin-right: 164rpx;
+}
+
+.mb-41,
+.my-41,
+.m-41 {
+  margin-bottom: 164rpx;
+}
+
+.ml-41,
+.mx-41,
+.m-41 {
+  margin-left: 164rpx;
+}
+
+.pt-42,
+.py-42,
+.p-42 {
+  padding-top: 168rpx;
+}
+
+.pr-42,
+.px-42,
+.p-42 {
+  padding-right: 168rpx;
+}
+
+.pb-42,
+.py-42,
+.p-42 {
+  padding-bottom: 168rpx;
+}
+
+.pl-42,
+.px-42,
+.p-42 {
+  padding-left: 168rpx;
+}
+
+.mt-42,
+.my-42,
+.m-42 {
+  margin-top: 168rpx;
+}
+
+.mr-42,
+.mx-42,
+.m-42 {
+  margin-right: 168rpx;
+}
+
+.mb-42,
+.my-42,
+.m-42 {
+  margin-bottom: 168rpx;
+}
+
+.ml-42,
+.mx-42,
+.m-42 {
+  margin-left: 168rpx;
+}
+
+.pt-43,
+.py-43,
+.p-43 {
+  padding-top: 172rpx;
+}
+
+.pr-43,
+.px-43,
+.p-43 {
+  padding-right: 172rpx;
+}
+
+.pb-43,
+.py-43,
+.p-43 {
+  padding-bottom: 172rpx;
+}
+
+.pl-43,
+.px-43,
+.p-43 {
+  padding-left: 172rpx;
+}
+
+.mt-43,
+.my-43,
+.m-43 {
+  margin-top: 172rpx;
+}
+
+.mr-43,
+.mx-43,
+.m-43 {
+  margin-right: 172rpx;
+}
+
+.mb-43,
+.my-43,
+.m-43 {
+  margin-bottom: 172rpx;
+}
+
+.ml-43,
+.mx-43,
+.m-43 {
+  margin-left: 172rpx;
+}
+
+.pt-44,
+.py-44,
+.p-44 {
+  padding-top: 176rpx;
+}
+
+.pr-44,
+.px-44,
+.p-44 {
+  padding-right: 176rpx;
+}
+
+.pb-44,
+.py-44,
+.p-44 {
+  padding-bottom: 176rpx;
+}
+
+.pl-44,
+.px-44,
+.p-44 {
+  padding-left: 176rpx;
+}
+
+.mt-44,
+.my-44,
+.m-44 {
+  margin-top: 176rpx;
+}
+
+.mr-44,
+.mx-44,
+.m-44 {
+  margin-right: 176rpx;
+}
+
+.mb-44,
+.my-44,
+.m-44 {
+  margin-bottom: 176rpx;
+}
+
+.ml-44,
+.mx-44,
+.m-44 {
+  margin-left: 176rpx;
+}
+
+.pt-45,
+.py-45,
+.p-45 {
+  padding-top: 180rpx;
+}
+
+.pr-45,
+.px-45,
+.p-45 {
+  padding-right: 180rpx;
+}
+
+.pb-45,
+.py-45,
+.p-45 {
+  padding-bottom: 180rpx;
+}
+
+.pl-45,
+.px-45,
+.p-45 {
+  padding-left: 180rpx;
+}
+
+.mt-45,
+.my-45,
+.m-45 {
+  margin-top: 180rpx;
+}
+
+.mr-45,
+.mx-45,
+.m-45 {
+  margin-right: 180rpx;
+}
+
+.mb-45,
+.my-45,
+.m-45 {
+  margin-bottom: 180rpx;
+}
+
+.ml-45,
+.mx-45,
+.m-45 {
+  margin-left: 180rpx;
+}
+
+.pt-46,
+.py-46,
+.p-46 {
+  padding-top: 184rpx;
+}
+
+.pr-46,
+.px-46,
+.p-46 {
+  padding-right: 184rpx;
+}
+
+.pb-46,
+.py-46,
+.p-46 {
+  padding-bottom: 184rpx;
+}
+
+.pl-46,
+.px-46,
+.p-46 {
+  padding-left: 184rpx;
+}
+
+.mt-46,
+.my-46,
+.m-46 {
+  margin-top: 184rpx;
+}
+
+.mr-46,
+.mx-46,
+.m-46 {
+  margin-right: 184rpx;
+}
+
+.mb-46,
+.my-46,
+.m-46 {
+  margin-bottom: 184rpx;
+}
+
+.ml-46,
+.mx-46,
+.m-46 {
+  margin-left: 184rpx;
+}
+
+.pt-47,
+.py-47,
+.p-47 {
+  padding-top: 188rpx;
+}
+
+.pr-47,
+.px-47,
+.p-47 {
+  padding-right: 188rpx;
+}
+
+.pb-47,
+.py-47,
+.p-47 {
+  padding-bottom: 188rpx;
+}
+
+.pl-47,
+.px-47,
+.p-47 {
+  padding-left: 188rpx;
+}
+
+.mt-47,
+.my-47,
+.m-47 {
+  margin-top: 188rpx;
+}
+
+.mr-47,
+.mx-47,
+.m-47 {
+  margin-right: 188rpx;
+}
+
+.mb-47,
+.my-47,
+.m-47 {
+  margin-bottom: 188rpx;
+}
+
+.ml-47,
+.mx-47,
+.m-47 {
+  margin-left: 188rpx;
+}
+
+.pt-48,
+.py-48,
+.p-48 {
+  padding-top: 192rpx;
+}
+
+.pr-48,
+.px-48,
+.p-48 {
+  padding-right: 192rpx;
+}
+
+.pb-48,
+.py-48,
+.p-48 {
+  padding-bottom: 192rpx;
+}
+
+.pl-48,
+.px-48,
+.p-48 {
+  padding-left: 192rpx;
+}
+
+.mt-48,
+.my-48,
+.m-48 {
+  margin-top: 192rpx;
+}
+
+.mr-48,
+.mx-48,
+.m-48 {
+  margin-right: 192rpx;
+}
+
+.mb-48,
+.my-48,
+.m-48 {
+  margin-bottom: 192rpx;
+}
+
+.ml-48,
+.mx-48,
+.m-48 {
+  margin-left: 192rpx;
+}
+
+.pt-49,
+.py-49,
+.p-49 {
+  padding-top: 196rpx;
+}
+
+.pr-49,
+.px-49,
+.p-49 {
+  padding-right: 196rpx;
+}
+
+.pb-49,
+.py-49,
+.p-49 {
+  padding-bottom: 196rpx;
+}
+
+.pl-49,
+.px-49,
+.p-49 {
+  padding-left: 196rpx;
+}
+
+.mt-49,
+.my-49,
+.m-49 {
+  margin-top: 196rpx;
+}
+
+.mr-49,
+.mx-49,
+.m-49 {
+  margin-right: 196rpx;
+}
+
+.mb-49,
+.my-49,
+.m-49 {
+  margin-bottom: 196rpx;
+}
+
+.ml-49,
+.mx-49,
+.m-49 {
+  margin-left: 196rpx;
+}
+
+.pt-50,
+.py-50,
+.p-50 {
+  padding-top: 200rpx;
+}
+
+.pr-50,
+.px-50,
+.p-50 {
+  padding-right: 200rpx;
+}
+
+.pb-50,
+.py-50,
+.p-50 {
+  padding-bottom: 200rpx;
+}
+
+.pl-50,
+.px-50,
+.p-50 {
+  padding-left: 200rpx;
+}
+
+.mt-50,
+.my-50,
+.m-50 {
+  margin-top: 200rpx;
+}
+
+.mr-50,
+.mx-50,
+.m-50 {
+  margin-right: 200rpx;
+}
+
+.mb-50,
+.my-50,
+.m-50 {
+  margin-bottom: 200rpx;
+}
+
+.ml-50,
+.mx-50,
+.m-50 {
+  margin-left: 200rpx;
+}
+
+.pt-51,
+.py-51,
+.p-51 {
+  padding-top: 204rpx;
+}
+
+.pr-51,
+.px-51,
+.p-51 {
+  padding-right: 204rpx;
+}
+
+.pb-51,
+.py-51,
+.p-51 {
+  padding-bottom: 204rpx;
+}
+
+.pl-51,
+.px-51,
+.p-51 {
+  padding-left: 204rpx;
+}
+
+.mt-51,
+.my-51,
+.m-51 {
+  margin-top: 204rpx;
+}
+
+.mr-51,
+.mx-51,
+.m-51 {
+  margin-right: 204rpx;
+}
+
+.mb-51,
+.my-51,
+.m-51 {
+  margin-bottom: 204rpx;
+}
+
+.ml-51,
+.mx-51,
+.m-51 {
+  margin-left: 204rpx;
+}
+
+.pt-52,
+.py-52,
+.p-52 {
+  padding-top: 208rpx;
+}
+
+.pr-52,
+.px-52,
+.p-52 {
+  padding-right: 208rpx;
+}
+
+.pb-52,
+.py-52,
+.p-52 {
+  padding-bottom: 208rpx;
+}
+
+.pl-52,
+.px-52,
+.p-52 {
+  padding-left: 208rpx;
+}
+
+.mt-52,
+.my-52,
+.m-52 {
+  margin-top: 208rpx;
+}
+
+.mr-52,
+.mx-52,
+.m-52 {
+  margin-right: 208rpx;
+}
+
+.mb-52,
+.my-52,
+.m-52 {
+  margin-bottom: 208rpx;
+}
+
+.ml-52,
+.mx-52,
+.m-52 {
+  margin-left: 208rpx;
+}
+
+.pt-53,
+.py-53,
+.p-53 {
+  padding-top: 212rpx;
+}
+
+.pr-53,
+.px-53,
+.p-53 {
+  padding-right: 212rpx;
+}
+
+.pb-53,
+.py-53,
+.p-53 {
+  padding-bottom: 212rpx;
+}
+
+.pl-53,
+.px-53,
+.p-53 {
+  padding-left: 212rpx;
+}
+
+.mt-53,
+.my-53,
+.m-53 {
+  margin-top: 212rpx;
+}
+
+.mr-53,
+.mx-53,
+.m-53 {
+  margin-right: 212rpx;
+}
+
+.mb-53,
+.my-53,
+.m-53 {
+  margin-bottom: 212rpx;
+}
+
+.ml-53,
+.mx-53,
+.m-53 {
+  margin-left: 212rpx;
+}
+
+.pt-54,
+.py-54,
+.p-54 {
+  padding-top: 216rpx;
+}
+
+.pr-54,
+.px-54,
+.p-54 {
+  padding-right: 216rpx;
+}
+
+.pb-54,
+.py-54,
+.p-54 {
+  padding-bottom: 216rpx;
+}
+
+.pl-54,
+.px-54,
+.p-54 {
+  padding-left: 216rpx;
+}
+
+.mt-54,
+.my-54,
+.m-54 {
+  margin-top: 216rpx;
+}
+
+.mr-54,
+.mx-54,
+.m-54 {
+  margin-right: 216rpx;
+}
+
+.mb-54,
+.my-54,
+.m-54 {
+  margin-bottom: 216rpx;
+}
+
+.ml-54,
+.mx-54,
+.m-54 {
+  margin-left: 216rpx;
+}
+
+.pt-55,
+.py-55,
+.p-55 {
+  padding-top: 220rpx;
+}
+
+.pr-55,
+.px-55,
+.p-55 {
+  padding-right: 220rpx;
+}
+
+.pb-55,
+.py-55,
+.p-55 {
+  padding-bottom: 220rpx;
+}
+
+.pl-55,
+.px-55,
+.p-55 {
+  padding-left: 220rpx;
+}
+
+.mt-55,
+.my-55,
+.m-55 {
+  margin-top: 220rpx;
+}
+
+.mr-55,
+.mx-55,
+.m-55 {
+  margin-right: 220rpx;
+}
+
+.mb-55,
+.my-55,
+.m-55 {
+  margin-bottom: 220rpx;
+}
+
+.ml-55,
+.mx-55,
+.m-55 {
+  margin-left: 220rpx;
+}
+
+.pt-56,
+.py-56,
+.p-56 {
+  padding-top: 224rpx;
+}
+
+.pr-56,
+.px-56,
+.p-56 {
+  padding-right: 224rpx;
+}
+
+.pb-56,
+.py-56,
+.p-56 {
+  padding-bottom: 224rpx;
+}
+
+.pl-56,
+.px-56,
+.p-56 {
+  padding-left: 224rpx;
+}
+
+.mt-56,
+.my-56,
+.m-56 {
+  margin-top: 224rpx;
+}
+
+.mr-56,
+.mx-56,
+.m-56 {
+  margin-right: 224rpx;
+}
+
+.mb-56,
+.my-56,
+.m-56 {
+  margin-bottom: 224rpx;
+}
+
+.ml-56,
+.mx-56,
+.m-56 {
+  margin-left: 224rpx;
+}
+
+.pt-57,
+.py-57,
+.p-57 {
+  padding-top: 228rpx;
+}
+
+.pr-57,
+.px-57,
+.p-57 {
+  padding-right: 228rpx;
+}
+
+.pb-57,
+.py-57,
+.p-57 {
+  padding-bottom: 228rpx;
+}
+
+.pl-57,
+.px-57,
+.p-57 {
+  padding-left: 228rpx;
+}
+
+.mt-57,
+.my-57,
+.m-57 {
+  margin-top: 228rpx;
+}
+
+.mr-57,
+.mx-57,
+.m-57 {
+  margin-right: 228rpx;
+}
+
+.mb-57,
+.my-57,
+.m-57 {
+  margin-bottom: 228rpx;
+}
+
+.ml-57,
+.mx-57,
+.m-57 {
+  margin-left: 228rpx;
+}
+
+.pt-58,
+.py-58,
+.p-58 {
+  padding-top: 232rpx;
+}
+
+.pr-58,
+.px-58,
+.p-58 {
+  padding-right: 232rpx;
+}
+
+.pb-58,
+.py-58,
+.p-58 {
+  padding-bottom: 232rpx;
+}
+
+.pl-58,
+.px-58,
+.p-58 {
+  padding-left: 232rpx;
+}
+
+.mt-58,
+.my-58,
+.m-58 {
+  margin-top: 232rpx;
+}
+
+.mr-58,
+.mx-58,
+.m-58 {
+  margin-right: 232rpx;
+}
+
+.mb-58,
+.my-58,
+.m-58 {
+  margin-bottom: 232rpx;
+}
+
+.ml-58,
+.mx-58,
+.m-58 {
+  margin-left: 232rpx;
+}
+
+.pt-59,
+.py-59,
+.p-59 {
+  padding-top: 236rpx;
+}
+
+.pr-59,
+.px-59,
+.p-59 {
+  padding-right: 236rpx;
+}
+
+.pb-59,
+.py-59,
+.p-59 {
+  padding-bottom: 236rpx;
+}
+
+.pl-59,
+.px-59,
+.p-59 {
+  padding-left: 236rpx;
+}
+
+.mt-59,
+.my-59,
+.m-59 {
+  margin-top: 236rpx;
+}
+
+.mr-59,
+.mx-59,
+.m-59 {
+  margin-right: 236rpx;
+}
+
+.mb-59,
+.my-59,
+.m-59 {
+  margin-bottom: 236rpx;
+}
+
+.ml-59,
+.mx-59,
+.m-59 {
+  margin-left: 236rpx;
+}
+
+.pt-60,
+.py-60,
+.p-60 {
+  padding-top: 240rpx;
+}
+
+.pr-60,
+.px-60,
+.p-60 {
+  padding-right: 240rpx;
+}
+
+.pb-60,
+.py-60,
+.p-60 {
+  padding-bottom: 240rpx;
+}
+
+.pl-60,
+.px-60,
+.p-60 {
+  padding-left: 240rpx;
+}
+
+.mt-60,
+.my-60,
+.m-60 {
+  margin-top: 240rpx;
+}
+
+.mr-60,
+.mx-60,
+.m-60 {
+  margin-right: 240rpx;
+}
+
+.mb-60,
+.my-60,
+.m-60 {
+  margin-bottom: 240rpx;
+}
+
+.ml-60,
+.mx-60,
+.m-60 {
+  margin-left: 240rpx;
+}
+
+.pt-61,
+.py-61,
+.p-61 {
+  padding-top: 244rpx;
+}
+
+.pr-61,
+.px-61,
+.p-61 {
+  padding-right: 244rpx;
+}
+
+.pb-61,
+.py-61,
+.p-61 {
+  padding-bottom: 244rpx;
+}
+
+.pl-61,
+.px-61,
+.p-61 {
+  padding-left: 244rpx;
+}
+
+.mt-61,
+.my-61,
+.m-61 {
+  margin-top: 244rpx;
+}
+
+.mr-61,
+.mx-61,
+.m-61 {
+  margin-right: 244rpx;
+}
+
+.mb-61,
+.my-61,
+.m-61 {
+  margin-bottom: 244rpx;
+}
+
+.ml-61,
+.mx-61,
+.m-61 {
+  margin-left: 244rpx;
+}
+
+.pt-62,
+.py-62,
+.p-62 {
+  padding-top: 248rpx;
+}
+
+.pr-62,
+.px-62,
+.p-62 {
+  padding-right: 248rpx;
+}
+
+.pb-62,
+.py-62,
+.p-62 {
+  padding-bottom: 248rpx;
+}
+
+.pl-62,
+.px-62,
+.p-62 {
+  padding-left: 248rpx;
+}
+
+.mt-62,
+.my-62,
+.m-62 {
+  margin-top: 248rpx;
+}
+
+.mr-62,
+.mx-62,
+.m-62 {
+  margin-right: 248rpx;
+}
+
+.mb-62,
+.my-62,
+.m-62 {
+  margin-bottom: 248rpx;
+}
+
+.ml-62,
+.mx-62,
+.m-62 {
+  margin-left: 248rpx;
+}
+
+.pt-63,
+.py-63,
+.p-63 {
+  padding-top: 252rpx;
+}
+
+.pr-63,
+.px-63,
+.p-63 {
+  padding-right: 252rpx;
+}
+
+.pb-63,
+.py-63,
+.p-63 {
+  padding-bottom: 252rpx;
+}
+
+.pl-63,
+.px-63,
+.p-63 {
+  padding-left: 252rpx;
+}
+
+.mt-63,
+.my-63,
+.m-63 {
+  margin-top: 252rpx;
+}
+
+.mr-63,
+.mx-63,
+.m-63 {
+  margin-right: 252rpx;
+}
+
+.mb-63,
+.my-63,
+.m-63 {
+  margin-bottom: 252rpx;
+}
+
+.ml-63,
+.mx-63,
+.m-63 {
+  margin-left: 252rpx;
+}
+
+.pt-64,
+.py-64,
+.p-64 {
+  padding-top: 256rpx;
+}
+
+.pr-64,
+.px-64,
+.p-64 {
+  padding-right: 256rpx;
+}
+
+.pb-64,
+.py-64,
+.p-64 {
+  padding-bottom: 256rpx;
+}
+
+.pl-64,
+.px-64,
+.p-64 {
+  padding-left: 256rpx;
+}
+
+.mt-64,
+.my-64,
+.m-64 {
+  margin-top: 256rpx;
+}
+
+.mr-64,
+.mx-64,
+.m-64 {
+  margin-right: 256rpx;
+}
+
+.mb-64,
+.my-64,
+.m-64 {
+  margin-bottom: 256rpx;
+}
+
+.ml-64,
+.mx-64,
+.m-64 {
+  margin-left: 256rpx;
+}
+
+.w-1 {
+  width: 4rpx;
+}
+
+.h-1 {
+  height: 4rpx;
+}
+
+.z-1 {
+  z-index: 1;
+}
+
+.w-2 {
+  width: 8rpx;
+}
+
+.h-2 {
+  height: 8rpx;
+}
+
+.z-2 {
+  z-index: 2;
+}
+
+.w-3 {
+  width: 12rpx;
+}
+
+.h-3 {
+  height: 12rpx;
+}
+
+.z-3 {
+  z-index: 3;
+}
+
+.w-4 {
+  width: 16rpx;
+}
+
+.h-4 {
+  height: 16rpx;
+}
+
+.z-4 {
+  z-index: 4;
+}
+
+.w-5 {
+  width: 20rpx;
+}
+
+.h-5 {
+  height: 20rpx;
+}
+
+.z-5 {
+  z-index: 5;
+}
+
+.w-6 {
+  width: 24rpx;
+}
+
+.h-6 {
+  height: 24rpx;
+}
+
+.z-6 {
+  z-index: 6;
+}
+
+.w-7 {
+  width: 28rpx;
+}
+
+.h-7 {
+  height: 28rpx;
+}
+
+.z-7 {
+  z-index: 7;
+}
+
+.w-8 {
+  width: 32rpx;
+}
+
+.h-8 {
+  height: 32rpx;
+}
+
+.z-8 {
+  z-index: 8;
+}
+
+.w-9 {
+  width: 36rpx;
+}
+
+.h-9 {
+  height: 36rpx;
+}
+
+.z-9 {
+  z-index: 9;
+}
+
+.w-10 {
+  width: 40rpx;
+}
+
+.h-10 {
+  height: 40rpx;
+}
+
+.z-10 {
+  z-index: 10;
+}
+
+.w-11 {
+  width: 44rpx;
+}
+
+.h-11 {
+  height: 44rpx;
+}
+
+.z-11 {
+  z-index: 11;
+}
+
+.w-12 {
+  width: 48rpx;
+}
+
+.h-12 {
+  height: 48rpx;
+}
+
+.z-12 {
+  z-index: 12;
+}
+
+.w-13 {
+  width: 52rpx;
+}
+
+.h-13 {
+  height: 52rpx;
+}
+
+.z-13 {
+  z-index: 13;
+}
+
+.w-14 {
+  width: 56rpx;
+}
+
+.h-14 {
+  height: 56rpx;
+}
+
+.z-14 {
+  z-index: 14;
+}
+
+.w-15 {
+  width: 60rpx;
+}
+
+.h-15 {
+  height: 60rpx;
+}
+
+.z-15 {
+  z-index: 15;
+}
+
+.w-16 {
+  width: 64rpx;
+}
+
+.h-16 {
+  height: 64rpx;
+}
+
+.z-16 {
+  z-index: 16;
+}
+
+.w-17 {
+  width: 68rpx;
+}
+
+.h-17 {
+  height: 68rpx;
+}
+
+.z-17 {
+  z-index: 17;
+}
+
+.w-18 {
+  width: 72rpx;
+}
+
+.h-18 {
+  height: 72rpx;
+}
+
+.z-18 {
+  z-index: 18;
+}
+
+.w-19 {
+  width: 76rpx;
+}
+
+.h-19 {
+  height: 76rpx;
+}
+
+.z-19 {
+  z-index: 19;
+}
+
+.w-20 {
+  width: 80rpx;
+}
+
+.h-20 {
+  height: 80rpx;
+}
+
+.z-20 {
+  z-index: 20;
+}
+
+.w-21 {
+  width: 84rpx;
+}
+
+.h-21 {
+  height: 84rpx;
+}
+
+.z-21 {
+  z-index: 21;
+}
+
+.w-22 {
+  width: 88rpx;
+}
+
+.h-22 {
+  height: 88rpx;
+}
+
+.z-22 {
+  z-index: 22;
+}
+
+.w-23 {
+  width: 92rpx;
+}
+
+.h-23 {
+  height: 92rpx;
+}
+
+.z-23 {
+  z-index: 23;
+}
+
+.w-24 {
+  width: 96rpx;
+}
+
+.h-24 {
+  height: 96rpx;
+}
+
+.z-24 {
+  z-index: 24;
+}
+
+.w-25 {
+  width: 100rpx;
+}
+
+.h-25 {
+  height: 100rpx;
+}
+
+.z-25 {
+  z-index: 25;
+}
+
+.w-26 {
+  width: 104rpx;
+}
+
+.h-26 {
+  height: 104rpx;
+}
+
+.z-26 {
+  z-index: 26;
+}
+
+.w-27 {
+  width: 108rpx;
+}
+
+.h-27 {
+  height: 108rpx;
+}
+
+.z-27 {
+  z-index: 27;
+}
+
+.w-28 {
+  width: 112rpx;
+}
+
+.h-28 {
+  height: 112rpx;
+}
+
+.z-28 {
+  z-index: 28;
+}
+
+.w-29 {
+  width: 116rpx;
+}
+
+.h-29 {
+  height: 116rpx;
+}
+
+.z-29 {
+  z-index: 29;
+}
+
+.w-30 {
+  width: 120rpx;
+}
+
+.h-30 {
+  height: 120rpx;
+}
+
+.z-30 {
+  z-index: 30;
+}
+
+.w-31 {
+  width: 124rpx;
+}
+
+.h-31 {
+  height: 124rpx;
+}
+
+.z-31 {
+  z-index: 31;
+}
+
+.w-32 {
+  width: 128rpx;
+}
+
+.h-32 {
+  height: 128rpx;
+}
+
+.z-32 {
+  z-index: 32;
+}
+
+.w-33 {
+  width: 132rpx;
+}
+
+.h-33 {
+  height: 132rpx;
+}
+
+.z-33 {
+  z-index: 33;
+}
+
+.w-34 {
+  width: 136rpx;
+}
+
+.h-34 {
+  height: 136rpx;
+}
+
+.z-34 {
+  z-index: 34;
+}
+
+.w-35 {
+  width: 140rpx;
+}
+
+.h-35 {
+  height: 140rpx;
+}
+
+.z-35 {
+  z-index: 35;
+}
+
+.w-36 {
+  width: 144rpx;
+}
+
+.h-36 {
+  height: 144rpx;
+}
+
+.z-36 {
+  z-index: 36;
+}
+
+.w-37 {
+  width: 148rpx;
+}
+
+.h-37 {
+  height: 148rpx;
+}
+
+.z-37 {
+  z-index: 37;
+}
+
+.w-38 {
+  width: 152rpx;
+}
+
+.h-38 {
+  height: 152rpx;
+}
+
+.z-38 {
+  z-index: 38;
+}
+
+.w-39 {
+  width: 156rpx;
+}
+
+.h-39 {
+  height: 156rpx;
+}
+
+.z-39 {
+  z-index: 39;
+}
+
+.w-40 {
+  width: 160rpx;
+}
+
+.h-40 {
+  height: 160rpx;
+}
+
+.z-40 {
+  z-index: 40;
+}
+
+.w-41 {
+  width: 164rpx;
+}
+
+.h-41 {
+  height: 164rpx;
+}
+
+.z-41 {
+  z-index: 41;
+}
+
+.w-42 {
+  width: 168rpx;
+}
+
+.h-42 {
+  height: 168rpx;
+}
+
+.z-42 {
+  z-index: 42;
+}
+
+.w-43 {
+  width: 172rpx;
+}
+
+.h-43 {
+  height: 172rpx;
+}
+
+.z-43 {
+  z-index: 43;
+}
+
+.w-44 {
+  width: 176rpx;
+}
+
+.h-44 {
+  height: 176rpx;
+}
+
+.z-44 {
+  z-index: 44;
+}
+
+.w-45 {
+  width: 180rpx;
+}
+
+.h-45 {
+  height: 180rpx;
+}
+
+.z-45 {
+  z-index: 45;
+}
+
+.w-46 {
+  width: 184rpx;
+}
+
+.h-46 {
+  height: 184rpx;
+}
+
+.z-46 {
+  z-index: 46;
+}
+
+.w-47 {
+  width: 188rpx;
+}
+
+.h-47 {
+  height: 188rpx;
+}
+
+.z-47 {
+  z-index: 47;
+}
+
+.w-48 {
+  width: 192rpx;
+}
+
+.h-48 {
+  height: 192rpx;
+}
+
+.z-48 {
+  z-index: 48;
+}
+
+.w-49 {
+  width: 196rpx;
+}
+
+.h-49 {
+  height: 196rpx;
+}
+
+.z-49 {
+  z-index: 49;
+}
+
+.w-50 {
+  width: 200rpx;
+}
+
+.h-50 {
+  height: 200rpx;
+}
+
+.z-50 {
+  z-index: 50;
+}
+
+.w-51 {
+  width: 204rpx;
+}
+
+.h-51 {
+  height: 204rpx;
+}
+
+.z-51 {
+  z-index: 51;
+}
+
+.w-52 {
+  width: 208rpx;
+}
+
+.h-52 {
+  height: 208rpx;
+}
+
+.z-52 {
+  z-index: 52;
+}
+
+.w-53 {
+  width: 212rpx;
+}
+
+.h-53 {
+  height: 212rpx;
+}
+
+.z-53 {
+  z-index: 53;
+}
+
+.w-54 {
+  width: 216rpx;
+}
+
+.h-54 {
+  height: 216rpx;
+}
+
+.z-54 {
+  z-index: 54;
+}
+
+.w-55 {
+  width: 220rpx;
+}
+
+.h-55 {
+  height: 220rpx;
+}
+
+.z-55 {
+  z-index: 55;
+}
+
+.w-56 {
+  width: 224rpx;
+}
+
+.h-56 {
+  height: 224rpx;
+}
+
+.z-56 {
+  z-index: 56;
+}
+
+.w-57 {
+  width: 228rpx;
+}
+
+.h-57 {
+  height: 228rpx;
+}
+
+.z-57 {
+  z-index: 57;
+}
+
+.w-58 {
+  width: 232rpx;
+}
+
+.h-58 {
+  height: 232rpx;
+}
+
+.z-58 {
+  z-index: 58;
+}
+
+.w-59 {
+  width: 236rpx;
+}
+
+.h-59 {
+  height: 236rpx;
+}
+
+.z-59 {
+  z-index: 59;
+}
+
+.w-60 {
+  width: 240rpx;
+}
+
+.h-60 {
+  height: 240rpx;
+}
+
+.z-60 {
+  z-index: 60;
+}
+
+.w-61 {
+  width: 244rpx;
+}
+
+.h-61 {
+  height: 244rpx;
+}
+
+.z-61 {
+  z-index: 61;
+}
+
+.w-62 {
+  width: 248rpx;
+}
+
+.h-62 {
+  height: 248rpx;
+}
+
+.z-62 {
+  z-index: 62;
+}
+
+.w-63 {
+  width: 252rpx;
+}
+
+.h-63 {
+  height: 252rpx;
+}
+
+.z-63 {
+  z-index: 63;
+}
+
+.w-64 {
+  width: 256rpx;
+}
+
+.h-64 {
+  height: 256rpx;
+}
+
+.z-64 {
+  z-index: 64;
+}
+
+.w-full {
+  width: 100%;
+}
+
+.round {
+  border-radius: 50%;
+}
+
+.pos-static {
+  position: static;
+}
+
+.pos-relative {
+  position: relative;
+}
+
+.pos-absolute {
+  position: absolute;
+}
+
+.pos-fixed {
+  position: fixed;
+}
+
+.pos-sticky {
+  position: sticky;
+}
+
+.mode-fill {
+  object-fit: fill;
+}
+
+.mode-contain {
+  object-fit: contain;
+}
+
+.mode-cover {
+  object-fit: cover;
+}
+
+.mode-none {
+  object-fit: none;
+}
+
+.mode-scale-down {
+  object-fit: scale-down;
+}
+
+.of-visible {
+  overflow: visible;
+}
+
+.of-x-visible {
+  overflow-x: visible;
+}
+
+.of-y-visible {
+  overflow-y: visible;
+}
+
+.of-hidden {
+  overflow: hidden;
+}
+
+.of-x-hidden {
+  overflow-x: hidden;
+}
+
+.of-y-hidden {
+  overflow-y: hidden;
+}
+
+.of-clip {
+  overflow: clip;
+}
+
+.of-x-clip {
+  overflow-x: clip;
+}
+
+.of-y-clip {
+  overflow-y: clip;
+}
+
+.of-scroll {
+  overflow: scroll;
+}
+
+.of-x-scroll {
+  overflow-x: scroll;
+}
+
+.of-y-scroll {
+  overflow-y: scroll;
+}
+
+.of-auto {
+  overflow: auto;
+}
+
+.of-x-auto {
+  overflow-x: auto;
+}
+
+.of-y-auto {
+  overflow-y: auto;
+}
+
+/*# sourceMappingURL=wxbase.css.map */

File diff suppressed because it is too large
+ 0 - 0
view/xcx/miniprogram_npm/mobx-miniprogram-bindings/index.js


Some files were not shown because too many files changed in this diff