zory 1 zi în urmă
părinte
comite
79f34c3361
100 a modificat fișierele cu 1074 adăugiri și 49 ștergeri
  1. 195 5
      app/controller/api/Notify.php
  2. 3 2
      app/controller/api/Order.php
  3. 41 0
      app/controller/merchant/Order.php
  4. 35 0
      app/extra/service/saas/OrderService.php
  5. 51 0
      app/model/saas/SaasOrderRefund.php
  6. 29 23
      app/model/saas/SaasShop.php
  7. 49 0
      app/model/saas/SaasShopLog.php
  8. 21 9
      app/model/saas/SaasUserBuy.php
  9. 6 0
      config/route.php
  10. BIN
      print-api.zip
  11. 166 0
      public/code/list/index.vue
  12. 72 0
      public/code/list/save.vue
  13. 2 0
      public/config.js
  14. 1 0
      public/css/404.6bf6efa9.css
  15. 1 0
      public/css/4669.80ee2df5.css
  16. 0 0
      public/css/app.2c236d2b.css
  17. 1 0
      public/css/dashboard.9887dc20.css
  18. 0 0
      public/css/layout.b44eca35.css
  19. 1 0
      public/css/login-components-mobile.24bc2e93.css
  20. 1 0
      public/css/login-components-passwd.b2ae8dd7.css
  21. 0 0
      public/css/login.b04ae682.css
  22. 1 0
      public/css/manage-components-agent.60c4e571.css
  23. 1 0
      public/css/manage-components-password.3d904803.css
  24. 0 0
      public/css/manage-dashboard.6ab66cf8.css
  25. 1 0
      public/css/manage-setting-menu-save.a52d4b45.css
  26. 0 0
      public/css/manage-setting-menu.b5af9ca9.css
  27. 1 0
      public/css/manage-shop-user-components-form.60c4e571.css
  28. 1 0
      public/css/manage-shop-user-components-option.60c4e571.css
  29. 1 0
      public/css/manage-shop-user-components-table.3d904803.css
  30. 1 0
      public/css/manage-shop-user-password.3d904803.css
  31. 0 0
      public/css/manage-shop-user.744ab9c2.css
  32. 1 0
      public/css/merchant-components-agent.a6812323.css
  33. 1 0
      public/css/merchant-components-print.b353e347.css
  34. 1 0
      public/css/merchant-components-store.24376c2f.css
  35. 0 0
      public/css/merchant-dashboard.a64132ae.css
  36. 1 0
      public/css/merchant-member-analysis.0e90862d.css
  37. 1 0
      public/css/merchant-member-recharge.8a4cebcf.css
  38. 1 0
      public/css/merchant-order-index.ca4fc12a.css
  39. 1 0
      public/css/merchant-order-qrcode.ca4fc12a.css
  40. 1 0
      public/css/merchant-print-index-components-form.8ea92bfe.css
  41. 1 0
      public/css/merchant-print-index-components-table.913c4f18.css
  42. 1 0
      public/css/merchant-print-index.913c4f18.css
  43. 1 0
      public/css/merchant-shop-detail.c1bccaf3.css
  44. 0 0
      public/css/merchant-shop-renew.80fac0f7.css
  45. 1 0
      public/css/merchant-shop-user-components-form.8ea92bfe.css
  46. 1 0
      public/css/merchant-shop-user-components-option.8ea92bfe.css
  47. 1 0
      public/css/merchant-shop-user-components-password.3d904803.css
  48. 1 0
      public/css/merchant-shop-user-components-table.3d904803.css
  49. 1 0
      public/css/merchant-shop-user.49c8b64b.css
  50. 1 0
      public/css/merchant-turnover-history.0e90862d.css
  51. 1 0
      public/css/merchant-turnover-index.0e90862d.css
  52. 0 0
      public/css/modules.cfd5f09d.css
  53. BIN
      public/favicon.ico
  54. BIN
      public/img/404.png
  55. BIN
      public/img/Down.png
  56. BIN
      public/img/QRcode.png
  57. BIN
      public/img/account_2.png
  58. BIN
      public/img/account_hover2.png
  59. BIN
      public/img/auth_banner.jpg
  60. BIN
      public/img/avatar.jpg
  61. BIN
      public/img/avatar2.gif
  62. BIN
      public/img/avatar3.gif
  63. BIN
      public/img/blue_bg.c0917702.png
  64. BIN
      public/img/favicon.ico
  65. BIN
      public/img/fslogo.png
  66. BIN
      public/img/loginBg.png
  67. 0 0
      public/img/loginbg.svg
  68. BIN
      public/img/logo-r.png
  69. BIN
      public/img/logo.png
  70. BIN
      public/img/no-select-message.png
  71. 57 0
      public/img/no-widgets.svg
  72. BIN
      public/img/qrcode2.png
  73. BIN
      public/img/qrcode_hover2.png
  74. BIN
      public/img/qwkf.png
  75. BIN
      public/img/tasks-example.png
  76. 236 0
      public/img/ver.svg
  77. BIN
      public/img/wx.png
  78. BIN
      public/img/新建项目.jpg
  79. 67 10
      public/index.html
  80. 1 0
      public/js/404.1a96715f.js
  81. 1 0
      public/js/4669.1e2e0244.js
  82. 1 0
      public/js/4681.7f364035.js
  83. 0 0
      public/js/580.19fa5c26.js
  84. 1 0
      public/js/6089.a5d92021.js
  85. 0 0
      public/js/app.32e2296f.js
  86. 1 0
      public/js/dashboard.1f4bf4fc.js
  87. 0 0
      public/js/echarts.d2455850.js
  88. 0 0
      public/js/elicons.f3fff5c4.js
  89. 0 0
      public/js/layout.405ac6c9.js
  90. 1 0
      public/js/login-forget.16e0192c.js
  91. 0 0
      public/js/login.7cde31bc.js
  92. 0 0
      public/js/manage-dashboard.0b3cbef4.js
  93. 1 0
      public/js/manage-finance-cash.824d1ef3.js
  94. 1 0
      public/js/manage-finance-history.954bfcb5.js
  95. 1 0
      public/js/manage-finance-index.2a16950f.js
  96. 1 0
      public/js/manage-member-analysis.76f19e0f.js
  97. 1 0
      public/js/manage-member-index.24844f48.js
  98. 1 0
      public/js/manage-member-recharge.44e0f6e4.js
  99. 1 0
      public/js/manage-member-record.359f81c7.js
  100. 1 0
      public/js/manage-order-index.32ad5ce8.js

+ 195 - 5
app/controller/api/Notify.php

@@ -3,10 +3,18 @@
 namespace app\controller\api;
 
 use app\extra\basic\Base;
+use app\model\saas\SaasOrder;
+use app\model\saas\SaasShop;
+use app\model\saas\SaasShopLog;
+use app\model\saas\SaasUser;
+use app\model\saas\SaasUserBuy;
+use app\model\saas\SaasUserLog;
 use LinFly\Annotation\Route\Controller;
 use LinFly\Annotation\Route\Route;
 use support\Request;
 use support\Response;
+use think\facade\Db;
+use WeChat\Contracts\Tools;
 
 
 #[Controller(prefix: "/notify")]
@@ -16,12 +24,18 @@ class Notify extends Base
     /**
      * 退款回调
      * @param Request $request
-     * @return Response
      */
     #[Route(path: "refund",methods: "post")]
     public function notifyRefund(Request $request)
     {
         try {
+            echo getDateFull() . "===>退款申请返回\n";
+            $payResp = $request->rawBody();
+            $wechat = new \WePay\Refund($this->getWxConfig());
+            if (empty($payResp)) return $wechat->getNotifySuccessReply();
+            $data = $wechat->getNotify($payResp);
+            if (empty($data)) return $wechat->getNotifySuccessReply();
+            $orderSn = $data['result']['out_refund_no'];
 
         } catch (\Throwable $throwable) {
             return error($throwable->getMessage());
@@ -36,7 +50,60 @@ class Notify extends Base
     public function notifyWx(Request $request)
     {
         try {
+            echo getDateFull()."===>支付返回\n";
+            $payResp = $request->rawBody();
+            $data = $this->payReturn($payResp);
+            $order = (new SaasOrder)->where("order_sn",$data['attach'])->with(['shop' => function($query){
+                $query->field('shop_id,shop_name,shop_address');
+            }])->findOrEmpty();
+            if ($order->isEmpty()) return $this->getNotifySuccessReply();
+            if ($order['status'] <> 0) return $this->getNotifySuccessReply(); // 已支付或者是其他状态
+            $order->status = 1;
+            $order->pay_at = getDateFull();
+            $order->transaction_id = $data['transaction_id']??'';
+            $order->notify_status = 1;
+            $order->pay_type = 1;
+            $order->save();
+            $shop = (new SaasShop)->where("shop_id",$order['shop_id'])->with(['wx' => function($query){
+                $query->field("shop_id,openid,is_msg");
+            }])->findOrEmpty();
+            if ($shop->isEmpty()) return $this->getNotifySuccessReply();
+            $shop->balance = Db::raw("balance+".$order['money']);
+            $shop->total_balance = Db::raw("total_balance+".$order['money']);
+            $shop->save();
+            (new SaasShopLog)->insertGetId([
+                "shop_id"   => $order['shop_id'],
+                "money"     => $order['money'],
+                "balance"   => $shop->balance,
+                "remark"    => "新订单【{$order['order_sn']}】"
+            ]);
+            events("create-order",['shop' => $order['shop_id'],'openid' => $order['openid'],"order" => $order['order_sn']]);
+            // 推送消息-公众号
+            if (!empty($shop['wx'])) {
+                $obj = \We::WeChatTemplate([
+                    "appid" => sConf("wechat.appid"),
+                    "appsecret" => sConf("wechat.secret"),
+                    "token" => sConf("wechat.token"),
+                    "encodingaeskey" => sConf("wechat.aeskey")
+                ]);
+                foreach ($shop['wx'] as $val) {
+                    if ($val['is_msg'] == 1) {
+                        $obj->send([
+                            "touser" => $val['openid'],
+                            "template_id" => "D20ZEWmUNmXMHLwiTOzaEateX5NvM9zoCbp2YwbIHsI",
+                            "data" => [
+                                "thing20" => ["value" => $val['shop_name']],
+                                "character_string1" => ["value" => $order['order_sn']],
+                                "amount16" => ["value" => format_money($order['money'] / 100)],
+                                "time2" => ["value" => date('Y-m-d H:i')]
+                            ],
+                            "url" => "https://inmei.yunenv.cn/weixin/order/detail?id=" . $order['id']
+                        ]);
+                    }
+                }
+            }
 
+            return $this->getNotifySuccessReply();
         } catch (\Throwable $throwable) {
             return error($throwable->getMessage());
         }
@@ -46,11 +113,113 @@ class Notify extends Base
     /**
      * 充值并支付
      */
-    #[Route(path: "payrecharge",methods: "post")]
+    #[Route(path: "recharge",methods: "post")]
     public function notifyPayRecharge(Request $request)
     {
         try {
-
+            echo getDateFull()."===>充值并支付支付返回\n";
+            $payResp = $request->rawBody();
+            $data = $this->payReturn($payResp);
+            $orderBuy = (new SaasUserBuy)->where("order_sn",$data['attach'])->with(['orders'])->findOrEmpty();
+            if ($orderBuy->isEmpty()) return $this->getNotifySuccessReply();
+            if ($orderBuy['status'] <> 0) return $this->getNotifySuccessReply(); // 已支付或者是其他状态
+            $orderMoney = 0;
+            $logData[0] = [
+                "openid"    => $orderBuy['openid'],
+                "card_no"   => $orderBuy['card_no'],
+                "shop_id"   => $orderBuy['shop_id'],
+                "money"     => $orderBuy['total_money'],
+                "type"      => 2,
+                "remark"    => "充值"
+            ];
+            if (!empty($orderBuy['orders']))
+            {
+                $orderMoney = $orderBuy['orders']['money'];
+                $logData[1] = [
+                    "openid"    => $orderBuy['openid'],
+                    "card_no"   => $orderBuy['card_no'],
+                    "shop_id"   => $orderBuy['shop_id'],
+                    "money"     => $orderMoney,
+                    "type"      => 1,
+                    "remark"    => "订单付款"
+                ];
+            };
+            $orderBuy->status = 1;
+            $orderBuy->pay_at = getDateFull();
+            $orderBuy->transaction_id = $data['transaction_id']??'';
+            $orderBuy->save();
+            $shop = (new SaasShop)->where("shop_id",$orderBuy['shop_id'])->with(['wx' => function($query){
+                $query->field("shop_id,openid,is_msg");
+            }])->findOrEmpty();
+            if ($shop->isEmpty()) return $this->getNotifySuccessReply();
+            // 开通vip账户
+            $card = (new SaasUser)->where("card_no",$orderBuy['card_no'])->findOrEmpty();
+            $balanceMoney = $orderBuy['total_money'] - $orderMoney;
+            if ($card->isEmpty()) {
+                $card->insertGetId([
+                    "openid"    => $orderBuy['openid'],
+                    "shop_id"   => $orderBuy['shop_id'],
+                    "card_no"   => $orderBuy['card_no'],
+                    "balance"   => $balanceMoney, // 余额
+                    "total_balance"   => $orderBuy['money'], // 累计充值
+                    "total_consume"   => $orderMoney // 累计消费
+                ]);
+            } else {
+                $card->total_consume = Db::raw("total_consume+{$orderMoney}");
+                $card->total_balance = Db::raw("total_balance+{$orderBuy['money']}");
+                $card->balance = Db::raw("balance+{$balanceMoney}");
+                $card->save();
+            }
+            if (!empty($orderBuy['orders']))
+            {
+                $order = (new SaasOrder)->where("order_sn",$orderBuy['order_sn'])->findOrEmpty();
+                if ($order->isEmpty()) return $this->getNotifySuccessReply();
+                if ($order['status'] <> 0) return $this->getNotifySuccessReply(); // 已支付或者是其他状态
+                $order->status = 1;
+                $order->pay_at = getDateFull();
+                $order->transaction_id = $data['transaction_id']??'';
+                $order->notify_status = 1;
+                $order->pay_type = 1;
+                $order->save();
+                events("create-order",['shop' => $order['shop_id'],'openid' => $order['openid'],"order" => $order['order_sn']]);
+            }
+            $shop->balance = Db::raw("balance+".$orderBuy['money']);
+            $shop->total_balance = Db::raw("total_balance+".$orderBuy['money']);
+            $shop->save();
+            (new SaasShopLog)->insertGetId([
+                "shop_id"   => $orderBuy['shop_id'],
+                "money"     => $orderBuy['money'],
+                "balance"   => $shop->balance,
+                "type"      => 1,
+                "remark"    => "会员卡充值",
+                "status"    => 1
+            ]);
+            // 推送消息-公众号
+            if (!empty($shop['wx'])) {
+                $obj = \We::WeChatTemplate([
+                    "appid" => sConf("wechat.appid"),
+                    "appsecret" => sConf("wechat.secret"),
+                    "token" => sConf("wechat.token"),
+                    "encodingaeskey" => sConf("wechat.aeskey")
+                ]);
+                foreach ($shop['wx'] as $val) {
+                    if ($val['is_msg'] == 1) {
+                        $obj->send([
+                            "touser" => $val['openid'],
+                            "template_id" => "v1TVHflG9h5BPRLb2hH10r8oOV5OFMKD2cmqIw1nH-w",
+                            "data" => [
+                                "thing1" => ["value" => '微信用户'.$orderBuy['openid']],
+                                "thing6" => ["value" => $val['shop_name']],
+                                "amount3" => ["value" => format_money($orderBuy['money'] / 100)],
+                                "character_string9" => ["value" => $orderBuy['order_sn']],
+                                "time4" => ["time5" => date('Y-m-d H:i')]
+                            ]
+                        ]);
+                    }
+                }
+            }
+            (new SaasUserLog)->insertAll($logData);
+            return $this->getNotifySuccessReply();
         } catch (\Throwable $throwable) {
             return error($throwable->getMessage());
         }
@@ -59,16 +228,37 @@ class Notify extends Base
     /**
      * 会员卡充值
      */
-    #[Route(path: "recharge",methods: "post")]
+    #[Route(path: "recharges",methods: "post")]
     public function notifyDataRecharge(Request $request)
     {
         try {
-
+            echo getDateFull()."===>会员卡支付返回\n";
+            $payResp = $request->rawBody();
+            $data = $this->payReturn($payResp);
         } catch (\Throwable $throwable) {
             return error($throwable->getMessage());
         }
     }
 
+    protected function payReturn($payResp)
+    {
+        $wechat = new \WeChat\Pay($this->getWxConfig());
+        if (empty($payResp)) return $this->getNotifySuccessReply();
+        $data = Tools::xml2arr($payResp);
+        if (empty($data)) return $this->getNotifySuccessReply();
+        return $data;
+    }
+
+
+    /**
+     * 获取微信支付通知成功回复 XML
+     * @return string
+     */
+    protected function getNotifySuccessReply(): string
+    {
+        return Tools::arr2xml(['return_code' => 'SUCCESS', 'return_msg' => 'OK']);
+    }
+
 
     /**
      * 小程序配置

+ 3 - 2
app/controller/api/Order.php

@@ -202,11 +202,12 @@ class Order extends Base
                     "money"         => $buyCard['money'] * 100,
                     "total_money"   => ($buyCard['money'] * 100) + ($buyCard['old_money'] * 100),
                     "order_sn"      => $orderSn,
-                    "openid"        => $request->user['openid']
+                    "openid"        => $request->user['openid'],
+                    "card_no"       => strtoupper(md5($request->user['openid'].$param['shop']))
                 ]);
                 $options['body'] = $shop['shop_name']."-充值支付";
                 $options['total_fee'] = $buyCard['money'] * 100;
-                $options['notify_url'] = "https://panel.huiyinduo.cn/notify/payrecharge";
+                $options['notify_url'] = "https://panel.huiyinduo.cn/notify/recharge";
             }
             (new SaasOrder)->insertGetId($orderData);
             $wechat = new \WeChat\Pay($this->getWxConfig());

+ 41 - 0
app/controller/merchant/Order.php

@@ -0,0 +1,41 @@
+<?php
+
+namespace app\controller\merchant;
+
+use app\extra\basic\Base;
+use app\extra\service\saas\OrderService;
+use app\middleware\AuthMiddleware;
+use app\model\saas\SaasOrder;
+use DI\Attribute\Inject;
+use LinFly\Annotation\Route\Controller;
+use LinFly\Annotation\Route\Middleware;
+use LinFly\Annotation\Route\Route;
+use support\Request;
+use support\Response;
+
+
+#[Controller(prefix: "/api/mer/order"),Middleware(AuthMiddleware::class)]
+class Order extends Base
+{
+
+    #[Inject]
+    protected OrderService $service;
+
+    #[Inject]
+    protected SaasOrder $model;
+
+    #[Route(path: "list",methods: "get")]
+    public function getPriceList(Request $request): Response
+    {
+        try {
+            $param = $request->get();
+            $param['shop'] = $request->user['agent_id'];
+            if (empty($param['status'])) $param['statusGt'] = 1;
+            $list = $this->service->getList($param);
+            return successTrans("success.data",pageFormat($list),200);
+        } catch (\Throwable $throwable) {
+            return error($throwable->getMessage());
+        }
+    }
+
+}

+ 35 - 0
app/extra/service/saas/OrderService.php

@@ -0,0 +1,35 @@
+<?php
+
+namespace app\extra\service\saas;
+
+use app\extra\basic\Service;
+use app\model\saas\SaasOrder;
+
+class OrderService extends Service
+{
+
+
+    /**
+     * 列表
+     * @param array $param
+     */
+    public function getList(array $param = [])
+    {
+        $this->mode = new SaasOrder();
+        return $this->searchVal($param,$this->searchFilter($param))->field("*")->paginate([
+            "list_rows" => $param['pageSize'],
+            "page"      => $param['page']
+        ]);
+    }
+
+    protected function searchFilter(array $param = []): array
+    {
+        $filter = [];
+        !empty($param['status']) && $filter[] = ["status", '=', ($param['status']-1)];
+        !empty($param['statusGt']) && $filter[] = ["status", '>', ($param['statusGt']-1)];
+        !empty($param['orderid']) && $filter[] = ["order_sn", 'like', "%{$param['orderid']}%"];
+        !empty($param['shop']) && $filter[] = ["shop_id", '=', $param['shop']];
+        return $filter;
+    }
+
+}

+ 51 - 0
app/model/saas/SaasOrderRefund.php

@@ -0,0 +1,51 @@
+<?php
+
+namespace app\model\saas;
+
+use app\extra\basic\Model;
+
+
+/**
+ * @property integer $id (主键)
+ * @property integer $source 1微信2会员卡
+ * @property string $order_sn 退款编号
+ * @property string $old_order 订单编号
+ * @property integer $money 
+ * @property integer $type 1单笔打印2整笔订单
+ * @property integer $status 
+ * @property integer $order_id 1为打印ID2订单ID
+ * @property mixed $refund_at 
+ * @property mixed $create_at
+ */
+class SaasOrderRefund extends Model
+{
+    /**
+     * The connection name for the model.
+     *
+     * @var string|null
+     */
+    protected $connection = 'mysql';
+    
+    /**
+     * The table associated with the model.
+     *
+     * @var string
+     */
+    protected string $table = "saas_order_refund";
+    
+    /**
+     * The primary key associated with the table.
+     *
+     * @var string
+     */
+    protected string $primaryKey = "id";
+    
+    /**
+     * Indicates if the model should be timestamped.
+     *
+     * @var bool
+     */
+    public bool $timestamps = false;
+
+
+}

+ 29 - 23
app/model/saas/SaasShop.php

@@ -3,32 +3,33 @@
 namespace app\model\saas;
 
 use app\extra\basic\Model;
+use think\model\relation\HasMany;
 
 
 /**
- * @property integer $id (主键)
- * @property integer $agent_id 
- * @property string $shop_name 
- * @property string $start_at 
- * @property string $end_at 营业时间-结束
- * @property string $shop_address 地址
- * @property mixed $rule 收费规则
- * @property integer $rate_type 
- * @property integer $rate_radio 
- * @property integer $rate_money 
- * @property mixed $vip_end VIP到期时间
- * @property string $shop_notice 公告
- * @property integer $is_deleted 
- * @property integer $shop_status 1营业2休息
- * @property string $shop_contact 联系人
- * @property string $shop_mobile 联系电话
- * @property integer $user_card 充值套餐0默认1自定义
- * @property mixed $user_card_price 会员卡充值套餐自定义金额
- * @property integer $balance 
- * @property integer $total_balance 
- * @property float $cash_rate 提现费率
- * @property integer $status 0正常1到期2冻结
- * @property mixed $line_time 最后在线时间
+ * @property integer $id (主键)
+ * @property integer $agent_id 
+ * @property string $shop_name 
+ * @property string $start_at 
+ * @property string $end_at 营业时间-结束
+ * @property string $shop_address 地址
+ * @property mixed $rule 收费规则
+ * @property integer $rate_type 
+ * @property integer $rate_radio 
+ * @property integer $rate_money 
+ * @property mixed $vip_end VIP到期时间
+ * @property string $shop_notice 公告
+ * @property integer $is_deleted 
+ * @property integer $shop_status 1营业2休息
+ * @property string $shop_contact 联系人
+ * @property string $shop_mobile 联系电话
+ * @property integer $user_card 充值套餐0默认1自定义
+ * @property mixed $user_card_price 会员卡充值套餐自定义金额
+ * @property integer $balance 
+ * @property integer $total_balance 
+ * @property float $cash_rate 提现费率
+ * @property integer $status 0正常1到期2冻结
+ * @property mixed $line_time 最后在线时间
  * @property mixed $create_at
  */
 class SaasShop extends Model
@@ -62,4 +63,9 @@ class SaasShop extends Model
     public bool $timestamps = false;
 
 
+    public function wx(): HasMany
+    {
+        return $this->hasMany("app\model\system\SystemUserOpen","shop_id","shop_id");
+    }
+
 }

+ 49 - 0
app/model/saas/SaasShopLog.php

@@ -0,0 +1,49 @@
+<?php
+
+namespace app\model\saas;
+
+use app\extra\basic\Model;
+
+
+/**
+ * @property integer $id (主键)
+ * @property integer $shop_id 
+ * @property integer $money 
+ * @property integer $balance 
+ * @property integer $type 1收入2支出
+ * @property string $remark 
+ * @property integer $status 1到账0待入账
+ * @property mixed $create_at
+ */
+class SaasShopLog extends Model
+{
+    /**
+     * The connection name for the model.
+     *
+     * @var string|null
+     */
+    protected $connection = 'mysql';
+    
+    /**
+     * The table associated with the model.
+     *
+     * @var string
+     */
+    protected string $table = "saas_shop_log";
+    
+    /**
+     * The primary key associated with the table.
+     *
+     * @var string
+     */
+    protected string $primaryKey = "id";
+    
+    /**
+     * Indicates if the model should be timestamped.
+     *
+     * @var bool
+     */
+    public bool $timestamps = false;
+
+
+}

+ 21 - 9
app/model/saas/SaasUserBuy.php

@@ -3,18 +3,19 @@
 namespace app\model\saas;
 
 use app\extra\basic\Model;
+use think\model\relation\HasOne;
 
 
 /**
- * @property integer $id (主键)
- * @property integer $agent_id 
- * @property integer $uid 
- * @property integer $shop_id 
- * @property mixed $order_sn 
- * @property integer $money 金额
- * @property integer $status 0待付款1已支付
- * @property mixed $pay_at 支付时间
- * @property string $transaction_id 交易编号wx
+ * @property integer $id (主键)
+ * @property integer $agent_id 
+ * @property integer $uid 
+ * @property integer $shop_id 
+ * @property mixed $order_sn 
+ * @property integer $money 金额
+ * @property integer $status 0待付款1已支付
+ * @property mixed $pay_at 支付时间
+ * @property string $transaction_id 交易编号wx
  * @property mixed $create_at
  */
 class SaasUserBuy extends Model
@@ -48,4 +49,15 @@ class SaasUserBuy extends Model
     public bool $timestamps = false;
 
 
+    public function card(): HasOne
+    {
+        return $this->hasOne("app\model\saas\SaasUser","card_no","card_no");
+    }
+
+
+    public function orders(): HasOne
+    {
+        return $this->hasOne("app\model\saas\SaasOrder","order_sn","order_sn");
+    }
+
 }

+ 6 - 0
config/route.php

@@ -13,6 +13,12 @@
  */
 
 use Webman\Route;
+
+Route::get("/", function () {
+    $path = public_path().DIRECTORY_SEPARATOR."index.html";
+    return think_view($path);
+});
+
 Route::disableDefaultRoute();
 
 

BIN
print-api.zip


+ 166 - 0
public/code/list/index.vue

@@ -0,0 +1,166 @@
+<!--
+ * @Descripttion: 此文件由SCUI生成,典型的VUE增删改列表页面组件
+ * @version: 1.0
+ * @Author: SCUI AutoCode 模板版本 1.0.0-beta.1
+ * @Date: <%= createDate %>
+ * @LastEditors: (最后更新作者)
+ * @LastEditTime: (最后更新时间)
+-->
+
+<template>
+	<el-container>
+		<el-header>
+			<div class="left-panel">
+				<el-button type="primary" icon="el-icon-plus" @click="add"></el-button>
+				<el-button type="danger" plain icon="el-icon-delete" :disabled="selection.length==0" @click="batch_del"></el-button>
+			</div>
+			<div class="right-panel">
+				<div class="right-panel-search">
+					<el-input v-model="search.keyword" placeholder="关键词搜索" clearable></el-input>
+					<el-button type="primary" icon="el-icon-search" @click="upsearch"></el-button>
+				</div>
+			</div>
+		</el-header>
+		<el-main class="nopadding">
+			<scTable ref="table" :apiObj="apiObj" row-key="<%= base.rowKey %>" @selection-change="selectionChange">
+
+				<el-table-column type="selection" width="50"></el-table-column>
+				<% column.forEach(function(item, index){ %>
+				<el-table-column label="<%= item.label %>" prop="<%= item.prop %>" width="<%= item.width %>"></el-table-column>
+				<% })%>
+				<el-table-column label="操作" fixed="right" align="right" width="140">
+					<template #default="scope">
+						<el-button type="text" size="small" @click="table_show(scope.row, scope.$index)">查看</el-button>
+						<el-button type="text" size="small" @click="table_edit(scope.row, scope.$index)">编辑</el-button>
+						<el-popconfirm title="确定删除吗?" @confirm="table_del(scope.row, scope.$index)">
+							<template #reference>
+								<el-button type="text" size="small">删除</el-button>
+							</template>
+						</el-popconfirm>
+					</template>
+				</el-table-column>
+			</scTable>
+		</el-main>
+	</el-container>
+
+	<el-dialog :title="titleMap[saveMode]" v-model="saveDialogVisible" :width="500" destroy-on-close>
+		<save-dialog ref="saveDialog" :mode="saveMode"></save-dialog>
+		<template #footer>
+			<el-button @click="saveDialogVisible=false" >取 消</el-button>
+			<el-button v-if="saveMode!='show'" type="primary" @click="saveForm()" :loading="isSaveing">保 存</el-button>
+		</template>
+	</el-dialog>
+</template>
+
+<script>
+	import saveDialog from './save'
+
+	export default {
+		name: '<%= base.name %>',
+		components: {
+			saveDialog
+		},
+		data() {
+			return {
+				apiObj: this.$API.<%= api.list %>,
+				selection: [],
+				search: {
+					keyword: ""
+				},
+				saveDialogVisible: false,
+				saveMode: 'add',
+				titleMap: {
+					add: "新增",
+					edit: "编辑",
+					show: "查看"
+				},
+				isSaveing: false,
+			}
+		},
+		mounted(){
+
+		},
+		methods: {
+			//添加
+			add(){
+				this.saveMode = 'add';
+				this.saveDialogVisible = true;
+			},
+			//编辑
+			table_edit(row){
+				this.saveMode = 'edit';
+				this.saveDialogVisible = true;
+				this.$nextTick(() => {
+					//这里可以再次根据ID查询详情接口
+					this.$refs.saveDialog.setData(row)
+				})
+			},
+			//查看
+			table_show(row){
+				this.saveMode = 'show';
+				this.saveDialogVisible = true;
+				this.$nextTick(() => {
+					//这里可以再次根据ID查询详情接口
+					this.$refs.saveDialog.setData(row)
+				})
+			},
+			//删除
+			async table_del(row, index){
+				var reqData = {id: row.id}
+				var res = await this.$API.<%= api.del %>.post(reqData);
+				if(res.code == 200){
+					//这里选择刷新整个表格 OR 插入/编辑现有表格数据
+					this.$refs.table.tableData.splice(index, 1);
+					this.$message.success("删除成功")
+				}else{
+					this.$alert(res.message, "提示", {type: 'error'})
+				}
+			},
+			//批量删除
+			async batch_del(){
+				this.$confirm(`确定删除选中的 ${this.selection.length} 项吗?`, '提示', {
+					type: 'warning'
+				}).then(() => {
+					const loading = this.$loading();
+					this.selection.forEach(item => {
+						this.$refs.table.tableData.forEach((itemI, indexI) => {
+							if (item.id === itemI.id) {
+								this.$refs.table.tableData.splice(indexI, 1)
+							}
+						})
+					})
+					loading.close();
+					this.$message.success("操作成功")
+				}).catch(() => {
+
+				})
+			},
+			//提交
+			saveForm(){
+				this.$refs.saveDialog.submit(async (formData) => {
+					this.isSaveing = true;
+					var res = await this.$API.<%= api.save %>.post(formData);
+					this.isSaveing = false;
+					if(res.code == 200){
+						//这里选择刷新整个表格 OR 插入/编辑现有表格数据
+						this.saveDialogVisible = false;
+						this.$message.success("操作成功")
+					}else{
+						this.$alert(res.message, "提示", {type: 'error'})
+					}
+				})
+			},
+			//表格选择后回调事件
+			selectionChange(selection){
+				this.selection = selection;
+			},
+			//搜索
+			upsearch(){
+
+			}
+		}
+	}
+</script>
+
+<style>
+</style>

+ 72 - 0
public/code/list/save.vue

@@ -0,0 +1,72 @@
+<!--
+ * @Descripttion: 此文件由SCUI生成,典型的VUE增删改列表页面组件
+ * @version: 1.0
+ * @Author: SCUI AutoCode 模板版本 1.0.0-beta.1
+ * @Date: <%= createDate %>
+ * @LastEditors: (最后更新作者)
+ * @LastEditTime: (最后更新时间)
+-->
+
+<template>
+	<el-form :model="form" :rules="rules" :disabled="mode=='show'" ref="dialogForm" label-width="100px" label-position="left">
+		<% column.forEach(function(item, index){ %>
+		<el-form-item label="<%= item.label %>" prop="<%= item.prop %>">
+			<el-input v-model="form.<%= item.prop %>" clearable></el-input>
+		</el-form-item>
+		<% })%>
+	</el-form>
+</template>
+
+<script>
+	export default {
+		props: {
+			mode: { type: String, default: "add" }
+		},
+		data() {
+			return {
+				//表单数据
+				form: {
+					<%= base.rowKey %>:"",
+					<% column.forEach(function(item, index){ %>
+					<%= item.prop %>: "",
+					<% })%>
+				},
+				//验证规则
+				rules: {
+					<% column.forEach(function(item, index){ %>
+					<%= item.prop %>: [
+						{required: true, message: '请输入<%= item.label %>'}
+					],
+					<% })%>
+				},
+			}
+		},
+		mounted(){
+
+		},
+		methods: {
+			//表单提交方法
+			submit(callback){
+				this.$refs.dialogForm.validate((valid) => {
+					if (valid) {
+						callback(this.form)
+					}else{
+						return false;
+					}
+				})
+			},
+			//表单注入数据
+			setData(data){
+				this.form.<%= base.rowKey %> = data.<%= base.rowKey %>
+				<% column.forEach(function(item, index){ %>
+				this.form.<%= item.prop %> = data.<%= item.prop %>
+				<% })%>
+				//可以和上面一样单个注入,也可以像下面一样直接合并进去
+				//Object.assign(this.form, data)
+			}
+		}
+	}
+</script>
+
+<style>
+</style>

+ 2 - 0
public/config.js

@@ -0,0 +1,2 @@
+const APP_CONFIG = {
+}

+ 1 - 0
public/css/404.6bf6efa9.css

@@ -0,0 +1 @@
+.router-err[data-v-10b4695c]{display:flex;width:900px;margin:50px auto;align-items:center}.router-err__icon[data-v-10b4695c]{width:400px}.router-err__icon img[data-v-10b4695c]{width:100%}.router-err__content[data-v-10b4695c]{flex:1;padding:40px}.router-err__content h2[data-v-10b4695c]{font-size:26px}.router-err__content p[data-v-10b4695c]{font-size:14px;color:#999;margin:15px 0 30px 0;line-height:1.5}@media (max-width:992px){.router-err[data-v-10b4695c]{display:block;width:100%;margin-top:10px;text-align:center}.router-err__icon[data-v-10b4695c]{width:280px;margin:0 auto}}

+ 1 - 0
public/css/4669.80ee2df5.css

@@ -0,0 +1 @@
+.sc-cropper[data-v-5a089473]{height:300px}.sc-cropper__img[data-v-5a089473]{height:100%;width:400px;float:left;background:#ebeef5}.sc-cropper__img img[data-v-5a089473]{display:none}.sc-cropper__preview[data-v-5a089473]{width:120px;margin-left:20px;float:left}.sc-cropper__preview h4[data-v-5a089473]{font-weight:400;font-size:12px;color:#999;margin-bottom:20px}.sc-cropper__preview__img[data-v-5a089473]{overflow:hidden;width:120px;height:120px;border:1px solid #ebeef5}

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/css/app.2c236d2b.css


+ 1 - 0
public/css/dashboard.9887dc20.css

@@ -0,0 +1 @@
+.router-err[data-v-55fec15c]{display:flex;width:900px;margin:50px auto;align-items:center}.router-err__icon[data-v-55fec15c]{width:400px}.router-err__icon img[data-v-55fec15c]{width:100%}.router-err__content[data-v-55fec15c]{flex:1;padding:40px}.router-err__content h2[data-v-55fec15c]{font-size:26px}.router-err__content p[data-v-55fec15c]{font-size:14px;color:#999;margin:15px 0 30px 0;line-height:1.5}@media (max-width:992px){.router-err[data-v-55fec15c]{display:block;width:100%;margin-top:10px;text-align:center}.router-err__icon[data-v-55fec15c]{width:280px;margin:0 auto}}

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/css/layout.b44eca35.css


+ 1 - 0
public/css/login-components-mobile.24bc2e93.css

@@ -0,0 +1 @@
+.privacy{color:#333}.privacy span{color:red}.showPrivacy{max-height:500px;overflow:hidden;overflow-y:scroll;line-height:1.5}.el-input--large .el-input__wrapper{position:relative}.captcha{display:flex;align-items:center;cursor:pointer;position:absolute;right:1px;top:1px;bottom:1px;z-index:99}.captcha img{height:38px;border-radius:5px}

+ 1 - 0
public/css/login-components-passwd.b2ae8dd7.css

@@ -0,0 +1 @@
+.login-forgot{text-align:right}.privacy{color:#333}.privacy span{color:red}.showPrivacy{max-height:500px;overflow:hidden;overflow-y:scroll;line-height:1.5}.el-input--large .el-input__wrapper{position:relative}.captcha{display:flex;align-items:center;cursor:pointer;position:absolute;right:1px;top:1px;bottom:1px;z-index:99}.captcha img{height:38px;border-radius:5px}

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/css/login.b04ae682.css


+ 1 - 0
public/css/manage-components-agent.60c4e571.css

@@ -0,0 +1 @@
+.main[data-v-9910a2aa]{display:flex;border:1px solid #dfe1e6}.main-left[data-v-9910a2aa]{overflow:hidden;flex:1}.main-left .main-body-wrap[data-v-9910a2aa]{position:relative;height:380px}.main-top[data-v-9910a2aa]{position:relative;padding:10px 0;border-bottom:1px solid #dfe1e6}.main-top.is-right[data-v-9910a2aa]{height:53px;display:flex;align-items:center;padding:0 10px;justify-content:space-between}.main-body.is-right[data-v-9910a2aa]{padding:8px 16px;overflow-y:auto;position:relative;height:calc(100% - 53px);max-height:380px}.mx-1[data-v-9910a2aa]{margin:0 .5rem .5rem 0}.main-right[data-v-9910a2aa]{flex:.4}.el-form-item--default[data-v-9910a2aa]{margin-bottom:0}.checkbox[data-v-9910a2aa]{border:1px solid #dfe1e6;width:14px;height:14px;border-radius:2px;background-color:#fff;cursor:pointer;position:relative}.current-row .checkbox[data-v-9910a2aa]{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.current-row .checkbox[data-v-9910a2aa]:after{transform:rotate(45deg) scaleY(1);box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}

+ 1 - 0
public/css/manage-components-password.3d904803.css

@@ -0,0 +1 @@
+.sc-password-strength[data-v-c391cecc]{height:5px;width:100%;background:var(--el-color-info-light-5);border-radius:5px;position:relative;margin:10px 0}.sc-password-strength[data-v-c391cecc]:before{left:20%}.sc-password-strength[data-v-c391cecc]:after{right:20%}.sc-password-strength[data-v-c391cecc]:after,.sc-password-strength[data-v-c391cecc]:before{position:absolute;content:"";display:block;width:20%;height:inherit;border:5px solid var(--el-bg-color-overlay);border-top:0;border-bottom:0;z-index:1;background-color:transparent;box-sizing:border-box}.sc-password-strength-bar[data-v-c391cecc]{position:absolute;height:inherit;width:0;border-radius:inherit;transition:width .5s ease-in-out,background .25s;background:transparent}.sc-password-strength-level-1[data-v-c391cecc]{width:20%;background-color:var(--el-color-error)}.sc-password-strength-level-2[data-v-c391cecc]{width:40%;background-color:var(--el-color-error)}.sc-password-strength-level-3[data-v-c391cecc]{width:60%;background-color:var(--el-color-warning)}.sc-password-strength-level-4[data-v-c391cecc]{width:80%;background-color:var(--el-color-success)}.sc-password-strength-level-5[data-v-c391cecc]{width:100%;background-color:var(--el-color-success)}

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/css/manage-dashboard.6ab66cf8.css


+ 1 - 0
public/css/manage-setting-menu-save.a52d4b45.css

@@ -0,0 +1 @@
+.sc-icon-select[data-v-608ca6b8]{display:inline-flex}.sc-icon-select__wrapper[data-v-608ca6b8]{cursor:pointer;display:inline-flex}.sc-icon-select__wrapper[data-v-608ca6b8] .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.sc-icon-select__wrapper[data-v-608ca6b8] .el-input__inner{flex-grow:0;width:0}.sc-icon-select__wrapper[data-v-608ca6b8] .el-input__icon{margin:0;font-size:16px}.sc-icon-select__wrapper.hasValue[data-v-608ca6b8] .el-input__icon{color:var(--el-text-color-regular)}.sc-icon-select__list[data-v-608ca6b8]{height:270px;overflow:auto}.sc-icon-select__list li[data-v-608ca6b8]{display:inline-block;width:80px;height:80px;margin:5px;vertical-align:top;transition:all .1s;border-radius:4px;position:relative}.sc-icon-select__list li span[data-v-608ca6b8]{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;cursor:pointer}.sc-icon-select__list li i[data-v-608ca6b8]{display:inline-block;width:100%;height:100%;font-size:26px;color:#6d7882;display:flex;justify-content:center;align-items:center;border-radius:4px}.sc-icon-select__list li[data-v-608ca6b8]:hover{box-shadow:0 0 1px 4px var(--el-color-primary);background:var(--el-color-primary-light-9)}.sc-icon-select__list li:hover i[data-v-608ca6b8]{color:var(--el-color-primary)}h2[data-v-2d023f7d]{font-size:17px;color:#3c4a54;padding:0 0 30px 0}.apilist[data-v-2d023f7d]{border-left:1px solid #eee}[data-theme=dark] h2[data-v-2d023f7d]{color:#fff}[data-theme=dark] .apilist[data-v-2d023f7d]{border-color:#434343}

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/css/manage-setting-menu.b5af9ca9.css


+ 1 - 0
public/css/manage-shop-user-components-form.60c4e571.css

@@ -0,0 +1 @@
+.main[data-v-9910a2aa]{display:flex;border:1px solid #dfe1e6}.main-left[data-v-9910a2aa]{overflow:hidden;flex:1}.main-left .main-body-wrap[data-v-9910a2aa]{position:relative;height:380px}.main-top[data-v-9910a2aa]{position:relative;padding:10px 0;border-bottom:1px solid #dfe1e6}.main-top.is-right[data-v-9910a2aa]{height:53px;display:flex;align-items:center;padding:0 10px;justify-content:space-between}.main-body.is-right[data-v-9910a2aa]{padding:8px 16px;overflow-y:auto;position:relative;height:calc(100% - 53px);max-height:380px}.mx-1[data-v-9910a2aa]{margin:0 .5rem .5rem 0}.main-right[data-v-9910a2aa]{flex:.4}.el-form-item--default[data-v-9910a2aa]{margin-bottom:0}.checkbox[data-v-9910a2aa]{border:1px solid #dfe1e6;width:14px;height:14px;border-radius:2px;background-color:#fff;cursor:pointer;position:relative}.current-row .checkbox[data-v-9910a2aa]{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.current-row .checkbox[data-v-9910a2aa]:after{transform:rotate(45deg) scaleY(1);box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}

+ 1 - 0
public/css/manage-shop-user-components-option.60c4e571.css

@@ -0,0 +1 @@
+.main[data-v-9910a2aa]{display:flex;border:1px solid #dfe1e6}.main-left[data-v-9910a2aa]{overflow:hidden;flex:1}.main-left .main-body-wrap[data-v-9910a2aa]{position:relative;height:380px}.main-top[data-v-9910a2aa]{position:relative;padding:10px 0;border-bottom:1px solid #dfe1e6}.main-top.is-right[data-v-9910a2aa]{height:53px;display:flex;align-items:center;padding:0 10px;justify-content:space-between}.main-body.is-right[data-v-9910a2aa]{padding:8px 16px;overflow-y:auto;position:relative;height:calc(100% - 53px);max-height:380px}.mx-1[data-v-9910a2aa]{margin:0 .5rem .5rem 0}.main-right[data-v-9910a2aa]{flex:.4}.el-form-item--default[data-v-9910a2aa]{margin-bottom:0}.checkbox[data-v-9910a2aa]{border:1px solid #dfe1e6;width:14px;height:14px;border-radius:2px;background-color:#fff;cursor:pointer;position:relative}.current-row .checkbox[data-v-9910a2aa]{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.current-row .checkbox[data-v-9910a2aa]:after{transform:rotate(45deg) scaleY(1);box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}

+ 1 - 0
public/css/manage-shop-user-components-table.3d904803.css

@@ -0,0 +1 @@
+.sc-password-strength[data-v-c391cecc]{height:5px;width:100%;background:var(--el-color-info-light-5);border-radius:5px;position:relative;margin:10px 0}.sc-password-strength[data-v-c391cecc]:before{left:20%}.sc-password-strength[data-v-c391cecc]:after{right:20%}.sc-password-strength[data-v-c391cecc]:after,.sc-password-strength[data-v-c391cecc]:before{position:absolute;content:"";display:block;width:20%;height:inherit;border:5px solid var(--el-bg-color-overlay);border-top:0;border-bottom:0;z-index:1;background-color:transparent;box-sizing:border-box}.sc-password-strength-bar[data-v-c391cecc]{position:absolute;height:inherit;width:0;border-radius:inherit;transition:width .5s ease-in-out,background .25s;background:transparent}.sc-password-strength-level-1[data-v-c391cecc]{width:20%;background-color:var(--el-color-error)}.sc-password-strength-level-2[data-v-c391cecc]{width:40%;background-color:var(--el-color-error)}.sc-password-strength-level-3[data-v-c391cecc]{width:60%;background-color:var(--el-color-warning)}.sc-password-strength-level-4[data-v-c391cecc]{width:80%;background-color:var(--el-color-success)}.sc-password-strength-level-5[data-v-c391cecc]{width:100%;background-color:var(--el-color-success)}

+ 1 - 0
public/css/manage-shop-user-password.3d904803.css

@@ -0,0 +1 @@
+.sc-password-strength[data-v-c391cecc]{height:5px;width:100%;background:var(--el-color-info-light-5);border-radius:5px;position:relative;margin:10px 0}.sc-password-strength[data-v-c391cecc]:before{left:20%}.sc-password-strength[data-v-c391cecc]:after{right:20%}.sc-password-strength[data-v-c391cecc]:after,.sc-password-strength[data-v-c391cecc]:before{position:absolute;content:"";display:block;width:20%;height:inherit;border:5px solid var(--el-bg-color-overlay);border-top:0;border-bottom:0;z-index:1;background-color:transparent;box-sizing:border-box}.sc-password-strength-bar[data-v-c391cecc]{position:absolute;height:inherit;width:0;border-radius:inherit;transition:width .5s ease-in-out,background .25s;background:transparent}.sc-password-strength-level-1[data-v-c391cecc]{width:20%;background-color:var(--el-color-error)}.sc-password-strength-level-2[data-v-c391cecc]{width:40%;background-color:var(--el-color-error)}.sc-password-strength-level-3[data-v-c391cecc]{width:60%;background-color:var(--el-color-warning)}.sc-password-strength-level-4[data-v-c391cecc]{width:80%;background-color:var(--el-color-success)}.sc-password-strength-level-5[data-v-c391cecc]{width:100%;background-color:var(--el-color-success)}

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/css/manage-shop-user.744ab9c2.css


+ 1 - 0
public/css/merchant-components-agent.a6812323.css

@@ -0,0 +1 @@
+.main[data-v-e1aa6832]{display:flex;border:1px solid #dfe1e6}.main-left[data-v-e1aa6832]{overflow:hidden;flex:1}.main-left .main-body-wrap[data-v-e1aa6832]{position:relative;height:380px}.main-top[data-v-e1aa6832]{position:relative;padding:10px 0;border-bottom:1px solid #dfe1e6}.main-top.is-right[data-v-e1aa6832]{height:53px;display:flex;align-items:center;padding:0 10px;justify-content:space-between}.main-body.is-right[data-v-e1aa6832]{padding:8px 16px;overflow-y:auto;position:relative;height:calc(100% - 53px);max-height:380px}.mx-1[data-v-e1aa6832]{margin:0 .5rem .5rem 0}.main-right[data-v-e1aa6832]{flex:.4}.el-form-item--default[data-v-e1aa6832]{margin-bottom:0}.checkbox[data-v-e1aa6832]{border:1px solid #dfe1e6;width:14px;height:14px;border-radius:2px;background-color:#fff;cursor:pointer;position:relative}.current-row .checkbox[data-v-e1aa6832]{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.current-row .checkbox[data-v-e1aa6832]:after{transform:rotate(45deg) scaleY(1);box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}

+ 1 - 0
public/css/merchant-components-print.b353e347.css

@@ -0,0 +1 @@
+.main[data-v-6c1236f8]{display:flex;border:1px solid #dfe1e6}.main-left[data-v-6c1236f8]{overflow:hidden;flex:1}.main-left .main-body-wrap[data-v-6c1236f8]{position:relative;height:380px}.main-top[data-v-6c1236f8]{position:relative;padding:10px 0;border-bottom:1px solid #dfe1e6}.main-top.is-right[data-v-6c1236f8]{height:53px;display:flex;align-items:center;padding:0 10px;justify-content:space-between}.main-body.is-right[data-v-6c1236f8]{padding:8px 16px;overflow-y:auto;position:relative;height:calc(100% - 53px);max-height:380px}.mx-1[data-v-6c1236f8]{margin:0 .5rem .5rem 0}.main-right[data-v-6c1236f8]{flex:.4}.el-form-item--default[data-v-6c1236f8]{margin-bottom:0}.checkbox[data-v-6c1236f8]{border:1px solid #dfe1e6;width:14px;height:14px;border-radius:2px;background-color:#fff;cursor:pointer;position:relative}.current-row .checkbox[data-v-6c1236f8]{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.current-row .checkbox[data-v-6c1236f8]:after{transform:rotate(45deg) scaleY(1);box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}

+ 1 - 0
public/css/merchant-components-store.24376c2f.css

@@ -0,0 +1 @@
+.main[data-v-63578552]{display:flex;border:1px solid #dfe1e6}.main-left[data-v-63578552]{overflow:hidden;flex:1}.main-left .main-body-wrap[data-v-63578552]{position:relative;height:380px}.main-top[data-v-63578552]{position:relative;padding:10px 0;border-bottom:1px solid #dfe1e6}.main-top.is-right[data-v-63578552]{height:53px;display:flex;align-items:center;padding:0 10px;justify-content:space-between}.main-body.is-right[data-v-63578552]{padding:8px 16px;overflow-y:auto;position:relative;height:calc(100% - 53px);max-height:380px}.mx-1[data-v-63578552]{margin:0 .5rem .5rem 0}.main-right[data-v-63578552]{flex:.4}.el-form-item--default[data-v-63578552]{margin-bottom:0}.checkbox[data-v-63578552]{border:1px solid #dfe1e6;width:14px;height:14px;border-radius:2px;background-color:#fff;cursor:pointer;position:relative}.current-row .checkbox[data-v-63578552]{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.current-row .checkbox[data-v-63578552]:after{transform:rotate(45deg) scaleY(1);box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/css/merchant-dashboard.a64132ae.css


+ 1 - 0
public/css/merchant-member-analysis.0e90862d.css

@@ -0,0 +1 @@
+.user-card-body{display:flex;align-items:center;justify-content:space-around;padding:10px 0}.user-card-body .card-item{text-align:center}.user-card-body .card-tips{font-size:12px;color:#666;display:flex;align-items:center}.user-card-body .card-tips i{font-style:normal;margin-left:5px}.user-card-body .card-num{font-size:20px;font-weight:700}.mb10{margin-bottom:15px}.news-title{font-size:16px;color:#000;font-weight:700;margin-bottom:10px;display:flex;align-items:center}.news-title:before{content:"";width:4px;height:16px;display:block;background-color:var(--el-color-primary);margin-right:8px}

+ 1 - 0
public/css/merchant-member-recharge.8a4cebcf.css

@@ -0,0 +1 @@
+.font-s14{font-size:14px}.color-red{color:red}.form-flex{font-size:14px;display:flex;align-items:center;gap:10px}

+ 1 - 0
public/css/merchant-order-index.ca4fc12a.css

@@ -0,0 +1 @@
+.user-card-body{display:flex;align-items:center;justify-content:space-around;padding:10px 0}.user-card-body .card-item{text-align:center}.user-card-body .card-item .card-num span{font-size:12px;color:#666;font-weight:400}.user-card-body .card-tips{font-size:12px;color:#666;display:flex;align-items:center}.user-card-body .card-tips i{font-style:normal;margin-left:5px}.user-card-body .card-num{font-size:20px;font-weight:700}.mb10{margin-bottom:15px}.news-title{font-size:16px;color:#000;font-weight:700;margin-bottom:10px;display:flex;align-items:center}.news-title:before{content:"";width:4px;height:16px;display:block;background-color:var(--el-color-primary);margin-right:8px}

+ 1 - 0
public/css/merchant-order-qrcode.ca4fc12a.css

@@ -0,0 +1 @@
+.user-card-body{display:flex;align-items:center;justify-content:space-around;padding:10px 0}.user-card-body .card-item{text-align:center}.user-card-body .card-item .card-num span{font-size:12px;color:#666;font-weight:400}.user-card-body .card-tips{font-size:12px;color:#666;display:flex;align-items:center}.user-card-body .card-tips i{font-style:normal;margin-left:5px}.user-card-body .card-num{font-size:20px;font-weight:700}.mb10{margin-bottom:15px}.news-title{font-size:16px;color:#000;font-weight:700;margin-bottom:10px;display:flex;align-items:center}.news-title:before{content:"";width:4px;height:16px;display:block;background-color:var(--el-color-primary);margin-right:8px}

+ 1 - 0
public/css/merchant-print-index-components-form.8ea92bfe.css

@@ -0,0 +1 @@
+.mt20{margin-top:20px}.login-msg-yzm{display:flex;width:100%}.login-msg-yzm .el-button{margin-left:10px;--el-button-size:42px}

+ 1 - 0
public/css/merchant-print-index-components-table.913c4f18.css

@@ -0,0 +1 @@
+.mt20{margin-top:20px}.login-msg-yzm{display:flex;width:100%}.login-msg-yzm .el-button{margin-left:10px;--el-button-size:42px}.flex-tag{display:flex;align-items:center;gap:10px}

+ 1 - 0
public/css/merchant-print-index.913c4f18.css

@@ -0,0 +1 @@
+.mt20{margin-top:20px}.login-msg-yzm{display:flex;width:100%}.login-msg-yzm .el-button{margin-left:10px;--el-button-size:42px}.flex-tag{display:flex;align-items:center;gap:10px}

+ 1 - 0
public/css/merchant-shop-detail.c1bccaf3.css

@@ -0,0 +1 @@
+.font-s14{font-size:14px}.text-center{text-align:center}.qrcode{border:1px solid #ccc;padding:5px;border-radius:5px}.qrcode img{width:100%;height:100%}.qrcode-down{width:100%;margin-top:10px}

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/css/merchant-shop-renew.80fac0f7.css


+ 1 - 0
public/css/merchant-shop-user-components-form.8ea92bfe.css

@@ -0,0 +1 @@
+.mt20{margin-top:20px}.login-msg-yzm{display:flex;width:100%}.login-msg-yzm .el-button{margin-left:10px;--el-button-size:42px}

+ 1 - 0
public/css/merchant-shop-user-components-option.8ea92bfe.css

@@ -0,0 +1 @@
+.mt20{margin-top:20px}.login-msg-yzm{display:flex;width:100%}.login-msg-yzm .el-button{margin-left:10px;--el-button-size:42px}

+ 1 - 0
public/css/merchant-shop-user-components-password.3d904803.css

@@ -0,0 +1 @@
+.sc-password-strength[data-v-c391cecc]{height:5px;width:100%;background:var(--el-color-info-light-5);border-radius:5px;position:relative;margin:10px 0}.sc-password-strength[data-v-c391cecc]:before{left:20%}.sc-password-strength[data-v-c391cecc]:after{right:20%}.sc-password-strength[data-v-c391cecc]:after,.sc-password-strength[data-v-c391cecc]:before{position:absolute;content:"";display:block;width:20%;height:inherit;border:5px solid var(--el-bg-color-overlay);border-top:0;border-bottom:0;z-index:1;background-color:transparent;box-sizing:border-box}.sc-password-strength-bar[data-v-c391cecc]{position:absolute;height:inherit;width:0;border-radius:inherit;transition:width .5s ease-in-out,background .25s;background:transparent}.sc-password-strength-level-1[data-v-c391cecc]{width:20%;background-color:var(--el-color-error)}.sc-password-strength-level-2[data-v-c391cecc]{width:40%;background-color:var(--el-color-error)}.sc-password-strength-level-3[data-v-c391cecc]{width:60%;background-color:var(--el-color-warning)}.sc-password-strength-level-4[data-v-c391cecc]{width:80%;background-color:var(--el-color-success)}.sc-password-strength-level-5[data-v-c391cecc]{width:100%;background-color:var(--el-color-success)}

+ 1 - 0
public/css/merchant-shop-user-components-table.3d904803.css

@@ -0,0 +1 @@
+.sc-password-strength[data-v-c391cecc]{height:5px;width:100%;background:var(--el-color-info-light-5);border-radius:5px;position:relative;margin:10px 0}.sc-password-strength[data-v-c391cecc]:before{left:20%}.sc-password-strength[data-v-c391cecc]:after{right:20%}.sc-password-strength[data-v-c391cecc]:after,.sc-password-strength[data-v-c391cecc]:before{position:absolute;content:"";display:block;width:20%;height:inherit;border:5px solid var(--el-bg-color-overlay);border-top:0;border-bottom:0;z-index:1;background-color:transparent;box-sizing:border-box}.sc-password-strength-bar[data-v-c391cecc]{position:absolute;height:inherit;width:0;border-radius:inherit;transition:width .5s ease-in-out,background .25s;background:transparent}.sc-password-strength-level-1[data-v-c391cecc]{width:20%;background-color:var(--el-color-error)}.sc-password-strength-level-2[data-v-c391cecc]{width:40%;background-color:var(--el-color-error)}.sc-password-strength-level-3[data-v-c391cecc]{width:60%;background-color:var(--el-color-warning)}.sc-password-strength-level-4[data-v-c391cecc]{width:80%;background-color:var(--el-color-success)}.sc-password-strength-level-5[data-v-c391cecc]{width:100%;background-color:var(--el-color-success)}

+ 1 - 0
public/css/merchant-shop-user.49c8b64b.css

@@ -0,0 +1 @@
+.mt20{margin-top:20px}.login-msg-yzm{display:flex;width:100%}.login-msg-yzm .el-button{margin-left:10px;--el-button-size:42px}.sc-password-strength[data-v-c391cecc]{height:5px;width:100%;background:var(--el-color-info-light-5);border-radius:5px;position:relative;margin:10px 0}.sc-password-strength[data-v-c391cecc]:before{left:20%}.sc-password-strength[data-v-c391cecc]:after{right:20%}.sc-password-strength[data-v-c391cecc]:after,.sc-password-strength[data-v-c391cecc]:before{position:absolute;content:"";display:block;width:20%;height:inherit;border:5px solid var(--el-bg-color-overlay);border-top:0;border-bottom:0;z-index:1;background-color:transparent;box-sizing:border-box}.sc-password-strength-bar[data-v-c391cecc]{position:absolute;height:inherit;width:0;border-radius:inherit;transition:width .5s ease-in-out,background .25s;background:transparent}.sc-password-strength-level-1[data-v-c391cecc]{width:20%;background-color:var(--el-color-error)}.sc-password-strength-level-2[data-v-c391cecc]{width:40%;background-color:var(--el-color-error)}.sc-password-strength-level-3[data-v-c391cecc]{width:60%;background-color:var(--el-color-warning)}.sc-password-strength-level-4[data-v-c391cecc]{width:80%;background-color:var(--el-color-success)}.sc-password-strength-level-5[data-v-c391cecc]{width:100%;background-color:var(--el-color-success)}

+ 1 - 0
public/css/merchant-turnover-history.0e90862d.css

@@ -0,0 +1 @@
+.user-card-body{display:flex;align-items:center;justify-content:space-around;padding:10px 0}.user-card-body .card-item{text-align:center}.user-card-body .card-tips{font-size:12px;color:#666;display:flex;align-items:center}.user-card-body .card-tips i{font-style:normal;margin-left:5px}.user-card-body .card-num{font-size:20px;font-weight:700}.mb10{margin-bottom:15px}.news-title{font-size:16px;color:#000;font-weight:700;margin-bottom:10px;display:flex;align-items:center}.news-title:before{content:"";width:4px;height:16px;display:block;background-color:var(--el-color-primary);margin-right:8px}

+ 1 - 0
public/css/merchant-turnover-index.0e90862d.css

@@ -0,0 +1 @@
+.user-card-body{display:flex;align-items:center;justify-content:space-around;padding:10px 0}.user-card-body .card-item{text-align:center}.user-card-body .card-tips{font-size:12px;color:#666;display:flex;align-items:center}.user-card-body .card-tips i{font-style:normal;margin-left:5px}.user-card-body .card-num{font-size:20px;font-weight:700}.mb10{margin-bottom:15px}.news-title{font-size:16px;color:#000;font-weight:700;margin-bottom:10px;display:flex;align-items:center}.news-title:before{content:"";width:4px;height:16px;display:block;background-color:var(--el-color-primary);margin-right:8px}

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/css/modules.cfd5f09d.css


BIN
public/favicon.ico


BIN
public/img/404.png


BIN
public/img/Down.png


BIN
public/img/QRcode.png


BIN
public/img/account_2.png


BIN
public/img/account_hover2.png


BIN
public/img/auth_banner.jpg


BIN
public/img/avatar.jpg


BIN
public/img/avatar2.gif


BIN
public/img/avatar3.gif


BIN
public/img/blue_bg.c0917702.png


BIN
public/img/favicon.ico


BIN
public/img/fslogo.png


BIN
public/img/loginBg.png


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/img/loginbg.svg


BIN
public/img/logo-r.png


BIN
public/img/logo.png


BIN
public/img/no-select-message.png


+ 57 - 0
public/img/no-widgets.svg

@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 23.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 750 750" style="enable-background:new 0 0 750 750;" xml:space="preserve">
+<style type="text/css">
+	.st0{opacity:0.35;fill:#B3B3B3;}
+	.st1{opacity:0.1;fill:#B3B3B3;}
+	.st2{opacity:0.3;fill:#B3B3B3;}
+	.st3{opacity:0.1;}
+	.st4{fill:#B3B3B3;}
+</style>
+<g>
+	<path class="st0" d="M465.1,261.4H264c-1.3,0-2.4,1.1-2.4,2.4v255.6c0,1.3,1.1,2.4,2.4,2.4h201.1c1.3,0,2.4-1.1,2.4-2.4V263.8
+		C467.5,262.4,466.4,261.4,465.1,261.4z M417.9,443c0,1.3-1.1,2.4-2.4,2.4h-102c-1.3,0-2.4-1.1-2.4-2.4v-11.3c0-1.3,1.1-2.4,2.4-2.4
+		h102c1.3,0,2.4,1.1,2.4,2.4V443z M417.9,397.2c0,1.3-1.1,2.4-2.4,2.4h-102c-1.3,0-2.4-1.1-2.4-2.4v-11.3c0-1.3,1.1-2.4,2.4-2.4h102
+		c1.3,0,2.4,1.1,2.4,2.4V397.2z M417.9,351.5c0,1.3-1.1,2.4-2.4,2.4h-102c-1.3,0-2.4-1.1-2.4-2.4v-11.3c0-1.3,1.1-2.4,2.4-2.4h102
+		c1.3,0,2.4,1.1,2.4,2.4V351.5z"/>
+	<g>
+		<path class="st1" d="M462.1,236.8L462.1,236.8C384.8,236.2,321,295.1,314,370.7c-18.5-19.1-44.4-31.1-73.1-31.3h0
+			c-56.8-0.4-103.2,45.3-103.6,102.1l-0.8,101.4l175.6,1.3l30.1,0.2l265.1,2l1.2-160.9C609.2,304,543.6,237.4,462.1,236.8z"/>
+		<path class="st2" d="M216.9,227.4c-3.4,0-6.5,1.1-9,2.9c0.2-1,0.3-2,0.3-3c0.1-8.3-6.6-15.1-15-15.2s-15.1,6.6-15.2,15
+			c0,0.3,0,0.6,0,0.9c-1.6-0.6-3.4-1-5.2-1c-8.3-0.1-15.1,6.6-15.2,15c-0.1,8.2,6.4,14.9,14.5,15.2l0,0l44.6,0.3
+			c8.3,0.1,15.1-6.6,15.2-15S225.2,227.5,216.9,227.4z"/>
+		<path class="st2" d="M596.4,194.2c-3.4,0-6.5,1.1-9,2.9c0.2-1,0.3-2,0.3-3c0.1-8.3-6.6-15.1-15-15.2s-15.1,6.6-15.2,15
+			c0,0.3,0,0.6,0,0.9c-1.6-0.6-3.4-1-5.2-1c-8.3-0.1-15.1,6.6-15.2,15c-0.1,8.2,6.4,14.9,14.5,15.2l0,0l44.6,0.3
+			c8.3,0.1,15.1-6.6,15.2-15S604.7,194.3,596.4,194.2z"/>
+		<g>
+			<g class="st3">
+				<path class="st4" d="M496.9,497.5c-2.1,0-3.7,1.6-3.7,3.7c0,1.5,0.8,2.7,2,3.3l-0.5,65.1l3.5,0l0.5-65.3
+					c1.1-0.6,1.8-1.8,1.8-3.1C500.6,499.1,499,497.6,496.9,497.5z"/>
+				<path class="st4" d="M572.3,501.7c0-1.9-1.6-3.6-3.7-3.7c-2.1,0-3.7,1.6-3.7,3.7c0,1.4,0.8,2.6,1.9,3.2l-0.5,65.2l3.5,0
+					l0.5-65.2C571.5,504.3,572.2,503.1,572.3,501.7z"/>
+			</g>
+			
+				<rect x="522.7" y="472.2" transform="matrix(7.448311e-03 -1 1 7.448311e-03 8.6828 1045.4733)" class="st1" width="16.5" height="92.3"/>
+			<polygon class="st1" points="495.4,509.8 495.2,510.1 485.5,526.3 484.8,526.3 484.9,509.8 			"/>
+			<polygon class="st1" points="518.7,510 508.8,526.5 496.3,526.4 500.2,519.8 506,509.9 			"/>
+			<polygon class="st1" points="542,510.2 532.1,526.6 519.6,526.5 529.3,510.1 			"/>
+			<polygon class="st1" points="565.3,510.4 555.5,526.8 542.9,526.7 552.7,510.3 			"/>
+			<polygon class="st1" points="577.2,510.4 577.1,527 566.2,526.9 576,510.4 			"/>
+			
+				<rect x="522.5" y="497.7" transform="matrix(7.448311e-03 -1 1 7.448311e-03 -17.0149 1070.603)" class="st1" width="16.5" height="92.3"/>
+			<polygon class="st1" points="495.2,535.3 495,535.6 485.3,551.8 484.6,551.8 484.7,535.3 			"/>
+			<polygon class="st1" points="518.5,535.5 508.6,552 496.1,551.9 500,545.3 505.8,535.4 			"/>
+			<polygon class="st1" points="541.8,535.7 531.9,552.1 519.4,552 529.1,535.6 			"/>
+			<polygon class="st1" points="565.1,535.9 555.4,552.3 542.7,552.2 552.5,535.8 			"/>
+			<polygon class="st1" points="577,536 576.9,552.5 566,552.4 575.8,536 			"/>
+			<path class="st1" d="M577.1,527c0,0,0-0.1,0-0.3l0-0.9c0-0.7,0-1.8,0-3.2c0-2.8,0.1-6.9,0.1-12.2l0.1,0.1l-92.3-0.5l0,0l0.1-0.1
+				c0,5.6-0.1,11.2-0.1,16.5l-0.1-0.1l65.8,0.6l19.5,0.1l5.3,0l0,0l-5.3,0l-19.5-0.1l-65.8-0.3l-0.3,0l0.1-16.8l0.1,0l92.3,0.8
+				l0.1,0l0,0.1c0,5.3-0.1,9.4-0.1,12.2c0,1.5,0,2.5,0,3.2l0,0.7C577.1,526.8,577.1,527,577.1,527z"/>
+			<path class="st1" d="M576.9,552.5c0,0,0-0.1,0-0.3l0-0.9c0-0.7,0-1.8,0-3.2c0-2.8,0.1-6.9,0.1-12.2l0.1,0.1l-92.3-0.5l0,0
+				l0.1-0.1c0,5.6-0.1,11.2-0.1,16.5l-0.1-0.1l65.8,0.6l19.5,0.1l5.3,0l0,0l-5.3,0l-19.5-0.1l-65.8-0.3l-0.3,0l0.1-16.7l0.1,0
+				l92.3,0.8l0.1,0l0,0.1c0,5.3-0.1,9.4-0.1,12.2c0,1.5,0,2.5,0,3.2l0,0.7C576.9,552.3,576.9,552.5,576.9,552.5z"/>
+		</g>
+	</g>
+</g>
+</svg>

BIN
public/img/qrcode2.png


BIN
public/img/qrcode_hover2.png


BIN
public/img/qwkf.png


BIN
public/img/tasks-example.png


+ 236 - 0
public/img/ver.svg

@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 456 262.1" style="enable-background:new 0 0 456 262.1;" xml:space="preserve">
+<style type="text/css">
+	.st0{opacity:0.4;fill:url(#SVGID_1_);enable-background:new    ;}
+	.st1{opacity:0.7;}
+	.st2{opacity:0.4;fill:url(#SVGID_2_);enable-background:new    ;}
+	.st3{opacity:0.4;fill:url(#SVGID_3_);enable-background:new    ;}
+	.st4{opacity:0.4;fill:url(#SVGID_4_);enable-background:new    ;}
+	.st5{opacity:0.4;fill:url(#SVGID_5_);enable-background:new    ;}
+	.st6{opacity:0.6;}
+	.st7{fill:#0073CD;}
+	.st8{fill:#40A8F5;}
+	.st9{fill:#53B9F5;}
+	.st10{fill:#85D3FF;}
+	.st11{fill:#8CD7FF;}
+	.st12{fill:#EBFCFF;}
+	.st13{fill:none;stroke:url(#SVGID_6_);stroke-width:2;stroke-miterlimit:10;}
+	.st14{fill:none;stroke:url(#SVGID_7_);stroke-width:2;stroke-miterlimit:10;}
+	.st15{fill:none;stroke:url(#SVGID_8_);stroke-width:2;stroke-miterlimit:10;}
+	.st16{fill:none;stroke:url(#SVGID_9_);stroke-width:2;stroke-miterlimit:10;}
+	.st17{fill:none;stroke:url(#SVGID_10_);stroke-width:2;stroke-miterlimit:10;}
+	.st18{fill:none;stroke:url(#SVGID_11_);stroke-width:2;stroke-miterlimit:10;}
+</style>
+<title>升级中</title>
+<g id="图层_2_1_">
+	<g id="图层_1-2">
+		
+			<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="232.745" y1="39.57" x2="232.745" y2="1.88" gradientTransform="matrix(1 0 0 -1 0 264)">
+			<stop  offset="0" style="stop-color:#81CFFF"/>
+			<stop  offset="1" style="stop-color:#5ECFFF;stop-opacity:0"/>
+		</linearGradient>
+		<path class="st0" d="M412.3,262.1c-23-23-61-37.7-179.5-37.7S76.2,239.1,53.2,262.1H412.3z"/>
+		<g class="st1">
+			
+				<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="349.365" y1="237.3224" x2="349.365" y2="59.9676" gradientTransform="matrix(1 0 0 -1 0 264)">
+				<stop  offset="0" style="stop-color:#81CFFF"/>
+				<stop  offset="1" style="stop-color:#5ECFFF;stop-opacity:0"/>
+			</linearGradient>
+			<path class="st2" d="M380.7,26.7h-62.6c-1.5-0.1-2.8,1.1-2.8,2.6v172.2c0.1,1.5,1.3,2.7,2.8,2.6h62.6c1.5,0.1,2.7-1.1,2.8-2.6
+				V29.3C383.4,27.8,382.2,26.6,380.7,26.7z M328.3,147c0,0.5-0.4,0.9-0.9,0.9c0,0,0,0,0,0h-3.6c-0.5,0-0.9-0.4-0.9-0.8c0,0,0,0,0,0
+				v-19.7c0-0.5,0.4-0.9,0.9-0.9c0,0,0,0,0,0h3.6c0.5,0,0.9,0.4,0.9,0.9c0,0,0,0,0,0V147z M328.3,116.8c0,0.5-0.4,0.9-0.9,0.9
+				c0,0,0,0,0,0h-3.6c-0.5,0-0.9-0.4-0.9-0.9c0,0,0,0,0,0V97c0-0.5,0.4-0.9,0.9-0.9c0,0,0,0,0,0h3.6c0.5,0,0.9,0.4,0.9,0.9
+				c0,0,0,0,0,0V116.8z M328.3,86.5c0,0.5-0.4,0.9-0.9,0.9c0,0,0,0,0,0h-3.6c-0.5,0-0.9-0.4-0.9-0.9c0,0,0,0,0,0V66.8
+				c0-0.5,0.4-0.9,0.9-0.9c0,0,0,0,0,0h3.6c0.5,0,0.9,0.4,0.9,0.9c0,0,0,0,0,0V86.5z M328.3,56.3c0,0.5-0.4,0.9-0.9,0.9c0,0,0,0,0,0
+				h-3.6c-0.5,0-0.9-0.4-0.9-0.9c0,0,0,0,0,0V36.6c0-0.5,0.4-0.9,0.9-0.9c0,0,0,0,0,0h3.6c0.5,0,0.9,0.4,0.9,0.9c0,0,0,0,0,0V56.3z
+				 M340,147c0,0.5-0.4,0.9-0.9,0.9c0,0,0,0,0,0h-3.6c-0.5,0-0.9-0.4-0.9-0.9c0,0,0,0,0,0v-19.7c0-0.5,0.4-0.9,1-0.9h3.6
+				c0.5,0,0.9,0.4,0.9,0.9V147z M340,116.8c0,0.5-0.4,0.9-0.9,0.9h-3.6c-0.5,0-0.9-0.4-1-0.9V97c0-0.5,0.4-0.9,1-0.9h3.6
+				c0.5,0,0.9,0.4,0.9,0.9V116.8z M340,86.5c0,0.5-0.4,0.9-0.9,0.9h-3.6c-0.5,0-0.9-0.4-1-0.9V66.8c0-0.5,0.4-0.9,1-0.9h3.6
+				c0.5,0,0.9,0.4,0.9,0.9V86.5z M340,56.3c0,0.5-0.4,0.9-0.9,0.9h-3.6c-0.5,0-0.9-0.4-1-0.9V36.6c0-0.5,0.4-0.9,1-0.9h3.6
+				c0.5,0,0.9,0.4,0.9,0.9V56.3z M351.7,147c0,0.5-0.4,0.9-0.9,0.9c0,0,0,0,0,0h-3.6c-0.5,0-0.9-0.4-0.9-0.9c0,0,0,0,0,0v-19.7
+				c0-0.5,0.4-0.9,0.9-0.9h3.6c0.5,0,0.9,0.4,0.9,0.9V147z M351.7,116.8c0,0.5-0.4,0.9-0.9,0.9h-3.6c-0.5,0-0.9-0.4-0.9-0.9V97
+				c0-0.5,0.4-0.9,0.9-0.9h3.6c0.5,0,0.9,0.4,0.9,0.9V116.8z M351.7,86.5c0,0.5-0.4,0.9-0.9,0.9h-3.6c-0.5,0-0.9-0.4-0.9-0.9V66.8
+				c0-0.5,0.4-0.9,0.9-0.9h3.6c0.5,0,0.9,0.4,0.9,0.9V86.5z M351.7,56.3c0,0.5-0.4,0.9-0.9,0.9h-3.6c-0.5,0-0.9-0.4-0.9-0.9V36.6
+				c0-0.5,0.4-0.9,0.9-0.9h3.6c0.5,0,0.9,0.4,0.9,0.9V56.3z M363.4,147c0,0.5-0.4,0.9-0.9,0.9c0,0,0,0,0,0h-3.6
+				c-0.5,0-0.9-0.4-0.9-0.9c0,0,0,0,0,0v-19.7c0-0.5,0.4-0.9,0.9-0.9h3.6c0.5,0,0.9,0.4,0.9,0.9V147z M363.4,116.8
+				c0,0.5-0.4,0.9-0.9,0.9h-3.6c-0.5,0-0.9-0.4-0.9-0.9V97c0-0.5,0.4-0.9,0.9-0.9h3.6c0.5,0,0.9,0.4,0.9,0.9V116.8z M363.4,86.5
+				c0,0.5-0.4,0.9-0.9,0.9h-3.6c-0.5,0-0.9-0.4-0.9-0.9V66.8c0-0.5,0.4-0.9,0.9-0.9h3.6c0.5,0,0.9,0.4,0.9,0.9V86.5z M363.4,56.3
+				c0,0.5-0.4,0.9-0.9,0.9h-3.6c-0.5,0-0.9-0.4-0.9-0.9V36.6c0-0.5,0.4-0.9,0.9-0.9h3.6c0.5,0,0.9,0.4,0.9,0.9V56.3z M375.1,147
+				c0,0.5-0.4,0.9-0.9,0.9c0,0,0,0,0,0h-3.6c-0.5,0-0.9-0.4-0.9-0.9c0,0,0,0,0,0v-19.7c0-0.5,0.4-0.9,0.9-0.9h3.6
+				c0.5,0,0.9,0.4,1,0.9V147z M375.1,116.8c0,0.5-0.4,0.9-1,0.9h-3.6c-0.5,0-0.9-0.4-0.9-0.9V97c0-0.5,0.4-0.9,0.9-0.9h3.6
+				c0.5,0,0.9,0.4,1,0.9V116.8z M375.1,86.5c0,0.5-0.4,0.9-1,0.9h-3.6c-0.5,0-0.9-0.4-0.9-0.9V66.8c0-0.5,0.4-0.9,0.9-0.9h3.6
+				c0.5,0,0.9,0.4,1,0.9V86.5z M375.1,56.3c0,0.5-0.4,0.9-1,0.9h-3.6c-0.5,0-0.9-0.4-0.9-0.9V36.6c0-0.5,0.4-0.9,0.9-0.9h3.6
+				c0.5,0,0.9,0.4,1,0.9V56.3z"/>
+			
+				<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="201.46" y1="208.3924" x2="201.46" y2="59.9976" gradientTransform="matrix(1 0 0 -1 0 264)">
+				<stop  offset="0" style="stop-color:#81CFFF"/>
+				<stop  offset="1" style="stop-color:#5ECFFF;stop-opacity:0"/>
+			</linearGradient>
+			<path class="st3" d="M231.1,55.6h-59.3c-1.5-0.1-2.7,1.1-2.8,2.6v143.2c0.1,1.5,1.3,2.6,2.8,2.6h59.3c1.5,0.1,2.8-1.1,2.8-2.6
+				V58.2C233.9,56.7,232.6,55.5,231.1,55.6z M182.5,159.4c0,0.6-0.6,1.1-1.2,1.1h-5.4c-0.6,0-1.2-0.5-1.2-1.1v-5.2
+				c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h5.4c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0V159.4z M182.5,146.5c0,0.6-0.6,1.1-1.2,1.1
+				c0,0,0,0,0,0h-5.4c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.2c0-0.6,0.6-1.1,1.2-1.1h5.4c0.6,0,1.2,0.5,1.2,1.1V146.5z
+				 M182.5,133.6c0,0.6-0.6,1.1-1.2,1.1h-5.4c-0.6,0-1.2-0.5-1.2-1.1v-5.2c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h5.4
+				c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0V133.6z M182.5,120.7c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0h-5.4c-0.6,0-1.2-0.5-1.2-1.1
+				c0,0,0,0,0,0v-5.2c0-0.6,0.6-1.1,1.2-1.1h5.4c0.6,0,1.2,0.5,1.2,1.1V120.7z M182.5,107.8c0,0.6-0.6,1.1-1.2,1.1h-5.4
+				c-0.6,0-1.2-0.5-1.2-1.1v-5.2c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h5.4c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0V107.8z M182.5,94.9
+				c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0h-5.4c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.2c0-0.6,0.6-1.1,1.2-1.1h5.4
+				c0.6,0,1.2,0.5,1.2,1.1V94.9z M182.5,82.1c0,0.6-0.6,1.1-1.2,1.1h-5.4c-0.6,0-1.2-0.5-1.2-1.1v-5.2c0-0.6,0.6-1.1,1.2-1.1
+				c0,0,0,0,0,0h5.4c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0V82.1z M182.5,69.2c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0h-5.4
+				c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0V64c0-0.6,0.6-1.1,1.2-1.1h5.4c0.6,0,1.2,0.5,1.2,1.1V69.2z M192.6,159.4
+				c0,0.6-0.6,1.1-1.2,1.1H186c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.2c0-0.6,0.6-1.1,1.2-1.1h5.4c0.6,0,1.2,0.5,1.2,1.1
+				c0,0,0,0,0,0L192.6,159.4z M192.6,146.5c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0H186c-0.6,0-1.2-0.5-1.2-1.1v-5.2
+				c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h5.4c0.6,0,1.2,0.5,1.2,1.1L192.6,146.5z M192.6,133.6c0,0.6-0.6,1.1-1.2,1.1H186
+				c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.2c0-0.6,0.6-1.1,1.2-1.1h5.4c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0L192.6,133.6z
+				 M192.6,120.7c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0H186c-0.6,0-1.2-0.5-1.2-1.1v-5.2c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h5.4
+				c0.6,0,1.2,0.5,1.2,1.1L192.6,120.7z M192.6,107.8c0,0.6-0.6,1.1-1.2,1.1H186c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.2
+				c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h5.4c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0L192.6,107.8z M192.6,94.9c0,0.6-0.6,1.1-1.2,1.1
+				c0,0,0,0,0,0H186c-0.6,0-1.2-0.5-1.2-1.1v-5.2c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h5.4c0.6,0,1.2,0.5,1.2,1.1L192.6,94.9z
+				 M192.6,82.1c0,0.6-0.6,1.1-1.2,1.1H186c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.2c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h5.4
+				c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0L192.6,82.1z M192.6,69.2c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0H186c-0.6,0-1.2-0.5-1.2-1.1V64
+				c0-0.6,0.5-1.2,1.2-1.2c0,0,0,0,0,0h5.4c0.6,0,1.2,0.5,1.2,1.1L192.6,69.2z M202.6,159.4c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0H196
+				c-0.6,0-1.2-0.5-1.2-1.1v-5.2c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h5.4c0.6,0,1.2,0.5,1.2,1.1L202.6,159.4z M202.6,146.5
+				c0,0.6-0.6,1.1-1.2,1.1H196c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.2c0-0.6,0.6-1.1,1.2-1.1h5.4c0.6,0,1.2,0.5,1.2,1.1
+				c0,0,0,0,0,0L202.6,146.5z M202.6,133.6c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0H196c-0.6,0-1.2-0.5-1.2-1.1v-5.2
+				c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h5.4c0.6,0,1.2,0.5,1.2,1.1L202.6,133.6z M202.6,120.7c0,0.6-0.6,1.1-1.2,1.1H196
+				c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.2c0-0.6,0.6-1.1,1.2-1.1h5.4c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0L202.6,120.7z
+				 M202.6,107.8c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0H196c-0.6,0-1.2-0.5-1.2-1.1v-5.2c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h5.4
+				c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0L202.6,107.8z M202.6,94.9c0,0.6-0.6,1.1-1.2,1.1H196c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0
+				v-5.2c0-0.6,0.6-1.1,1.2-1.1h5.4c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0L202.6,94.9z M202.6,82.1c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0
+				H196c-0.6,0-1.2-0.5-1.2-1.1v-5.2c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h5.4c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0L202.6,82.1z
+				 M202.6,69.2c0,0.6-0.6,1.1-1.2,1.1H196c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0V64c0-0.6,0.6-1.1,1.2-1.1h5.4c0.6,0,1.2,0.4,1.2,1.1
+				c0,0,0,0,0,0V69.2z M227.8,159.4c0,0.6-0.6,1.1-1.2,1.1h-20.5c-0.6,0-1.2-0.5-1.2-1.1v-5.2c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0
+				h20.5c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0L227.8,159.4z M227.8,146.5c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0h-20.5
+				c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.2c0-0.6,0.6-1.1,1.2-1.1h20.5c0.6,0,1.2,0.5,1.2,1.1L227.8,146.5z M227.8,133.6
+				c0,0.6-0.6,1.1-1.2,1.1h-20.5c-0.6,0-1.2-0.5-1.2-1.1v-5.2c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h20.5c0.6,0,1.2,0.5,1.2,1.1
+				c0,0,0,0,0,0L227.8,133.6z M227.8,120.7c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0h-20.5c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.2
+				c0-0.6,0.6-1.1,1.2-1.1h20.5c0.6,0,1.2,0.5,1.2,1.1L227.8,120.7z M227.8,107.8c0,0.6-0.6,1.1-1.2,1.1h-20.5
+				c-0.6,0-1.2-0.5-1.2-1.1v-5.2c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h20.5c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0L227.8,107.8z
+				 M227.8,94.9c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0h-20.5c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.2c0-0.6,0.6-1.1,1.2-1.1h20.5
+				c0.6,0,1.2,0.5,1.2,1.1L227.8,94.9z M227.8,82.1c0,0.6-0.6,1.1-1.2,1.1h-20.5c-0.6,0-1.2-0.5-1.2-1.1v-5.2c0-0.6,0.6-1.1,1.2-1.1
+				c0,0,0,0,0,0h20.5c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0L227.8,82.1z M227.8,69.2c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0h-20.5
+				c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0V64c0-0.6,0.6-1.1,1.2-1.1h20.5c0.6,0,1.2,0.5,1.2,1.1L227.8,69.2z"/>
+			
+				<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="122.975" y1="237.3228" x2="122.975" y2="59.9971" gradientTransform="matrix(1 0 0 -1 0 264)">
+				<stop  offset="0" style="stop-color:#81CFFF"/>
+				<stop  offset="1" style="stop-color:#5ECFFF;stop-opacity:0"/>
+			</linearGradient>
+			<path class="st4" d="M161.1,26.7H84.8c-1.5-0.1-2.8,1.1-2.8,2.6c0,0,0,0,0,0v172.2c0.1,1.5,1.3,2.6,2.8,2.6h76.3
+				c1.5,0.1,2.8-1.1,2.8-2.6V29.3C163.9,27.8,162.6,26.6,161.1,26.7z M154.3,161c0,0.6-0.6,1.1-1.2,1.1H92.8c-0.6,0-1.2-0.5-1.2-1.1
+				c0,0,0,0,0,0v-5.2c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h60.3c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0V161z M154.3,146.3
+				c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0H92.8c-0.6,0-1.2-0.5-1.2-1.1v-5.2c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h60.3
+				c0.6,0,1.2,0.5,1.2,1.1V146.3z M154.3,131.6c0,0.6-0.6,1.1-1.2,1.1H92.8c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.2
+				c0-0.6,0.6-1.1,1.2-1.1h60.3c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0V131.6z M154.3,117c0,0.6-0.6,1.1-1.2,1.1H92.8
+				c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.2c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h60.3c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0V117z
+				 M154.3,102.3c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0H92.8c-0.6,0-1.2-0.5-1.2-1.1V97c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h60.3
+				c0.6,0,1.2,0.5,1.2,1.1V102.3z M154.3,87.6c0,0.6-0.6,1.1-1.2,1.1H92.8c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.3
+				c0-0.6,0.6-1.1,1.2-1.1h60.3c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0V87.6z M154.3,72.9c0,0.6-0.6,1.1-1.2,1.1H92.8
+				c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.3c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h60.3c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0V72.9z
+				 M154.3,58.3c0,0.6-0.6,1.1-1.2,1.1c0,0,0,0,0,0H92.8c-0.6,0-1.2-0.5-1.2-1.1V53c0-0.6,0.6-1.1,1.2-1.1c0,0,0,0,0,0h60.3
+				c0.6,0,1.2,0.5,1.2,1.1V58.3z M154.3,43.6c0,0.6-0.6,1.1-1.2,1.1H92.8c-0.6,0-1.2-0.5-1.2-1.1c0,0,0,0,0,0v-5.3
+				c0-0.6,0.6-1.1,1.2-1.1h60.3c0.6,0,1.2,0.5,1.2,1.1c0,0,0,0,0,0V43.6z"/>
+			
+				<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="273.51" y1="264" x2="273.51" y2="54.46" gradientTransform="matrix(1 0 0 -1 0 264)">
+				<stop  offset="0" style="stop-color:#81CFFF"/>
+				<stop  offset="1" style="stop-color:#5ECFFF;stop-opacity:0"/>
+			</linearGradient>
+			<path class="st5" d="M306.2,0h-65.4c-1.4,0-2.5,1.2-2.4,2.6v204.4c-0.1,1.4,1,2.5,2.4,2.6c0,0,0,0,0,0h65.4
+				c1.4-0.1,2.5-1.2,2.4-2.6V2.6C308.7,1.2,307.6,0.1,306.2,0z M300.4,119.6c0,0.6-0.4,1.1-1,1.1h-51.7c-0.6,0-1-0.5-1-1.1v-5.2
+				c0-0.6,0.4-1.1,1-1.1h51.7c0.6,0,1,0.5,1,1.1L300.4,119.6z M300.4,90.3c0,0.6-0.4,1.1-1,1.1h-51.7c-0.6,0-1-0.5-1-1.1V85
+				c0-0.6,0.4-1.1,1-1.1h51.7c0.6,0,1,0.5,1,1.1L300.4,90.3z M300.4,60.9c0,0.6-0.4,1.1-1,1.1h-51.7c-0.6,0-1-0.5-1-1.1v-5.2
+				c0-0.6,0.4-1.1,1-1.1h51.7c0.6,0,1,0.5,1,1.1L300.4,60.9z M300.4,31.5c0,0.6-0.4,1.1-1,1.1h-51.7c-0.6,0-1-0.5-1-1.1v-5.2
+				c0-0.6,0.4-1.1,1-1.1h51.7c0.6,0,1,0.5,1,1.1L300.4,31.5z M300.4,16.9c0,0.6-0.4,1.1-1,1.1h-51.7c-0.6,0-1-0.5-1-1.1v-5.2
+				c0-0.6,0.4-1.1,1-1.1h51.7c0.6,0,1,0.5,1,1.1L300.4,16.9z"/>
+		</g>
+		<g class="st6">
+			<path class="st7" d="M244.2,130.7c3.3,1.9,5.7,13.6,1,20.7c-5.3,6.8-7,9-6.1,14c-4.3-7.3-0.6-7.4-5.8-14.2
+				c-4.6-6.2-2.5-17.4,0.7-20.5C237.4,131.3,240.8,131.3,244.2,130.7L244.2,130.7z"/>
+			<path class="st8" d="M280.4,211.9c-0.1,0.6-0.1,1.2-0.1,1.7c0,0.7,0.1,1.3,0.2,2c-2.1-0.8-4.3-1.2-6.5-1.2
+				c-2.6,0-5.2,0.6-7.5,1.7c-0.8-4.2-4.8-7-9-6.2c-2.8,0.5-5,2.5-5.9,5.2c-3.4-2.1-7.7-2-11.1,0.1c-0.4-5.7-4.1-0.8-9.8-0.8
+				c-6,0-11.8-4.4-11.8,1.7c0,1.1,0.2,2.2,0.4,3.2c-1.1,0.1-2.1,0.5-3,1c-0.9-7-6.8-12.4-13.9-12.7c22.6-10.3,22.4-44.6,24.8-74.6
+				c0.1-1.7,1.2-4.1,1.8-4.4l0,0c1.5,1.1,3.2,1.8,5.1,2.1c-3.2,3.1-5.4,14.3-0.7,20.5c5.3,6.8,1.6,6.9,5.8,14.2
+				c-0.9-5,0.8-7.2,6.1-14c4.8-7.2,2.3-18.8-1-20.7c1.8-0.3,3.6-1,5.1-2.1l0,0c0.6,0.3,1.7,2.7,1.8,4.4
+				C253.6,164.6,250.4,198.5,280.4,211.9z"/>
+			<path class="st9" d="M303.3,203.2c-5.4,0-9.8,4.4-9.8,9.8c0,0.3,0,0.6,0,0.9c-1.5-1.7-3.7-2.6-6-2.5c-0.7,0-1.4,0.1-2.1,0.3
+				c0.7-1.3,1.1-2.8,1.1-4.3c-0.1-4.6-3.9-8.3-8.5-8.2c-4,0.1-7.4,3-8.1,6.9c-0.1,0.4-0.1,0.9-0.1,1.3c0,0.5,0,1,0.1,1.6
+				c-3.5-1.4-7.4-1.3-10.8,0.4c-0.7-3.2-3.9-5.3-7.2-4.6c-2,0.4-3.6,1.9-4.3,3.8c-1.3-0.8-2.7-1.2-4.2-1.2c-1.5,0-3.1,0.4-4.4,1.3
+				c-0.2-4.6-4.1-8.2-8.7-8s-8.2,4.1-8,8.7l0,0c0,0.8,0.1,1.7,0.3,2.5c-0.8,0.1-1.6,0.4-2.3,0.8c-0.7-5.4-5.2-9.6-10.7-9.8h-0.4
+				c-3.4,0-6.7,1.6-8.8,4.3c-3-6.2-10.4-8.9-16.7-5.9c-2.9,1.4-5.2,3.9-6.3,7c4.1,3,6.6,7.8,6.6,12.9c0,2.3-0.5,4.6-1.5,6.6
+				c2-2.2,4.8-3.4,7.8-3.4c0.9,0,1.8,0.1,2.7,0.3c-2.9-5-1.2-11.5,3.8-14.4c1.2-0.7,2.6-1.2,3.9-1.3c0.5-0.1,0.9-0.1,1.4-0.1
+				c5.8,0,10.6,4.7,10.6,10.6l0,0c0,0.6-0.1,1.3-0.2,1.9c4.4-1.7,9.3-1.6,13.6,0.4c0.9-4.1,4.9-6.7,9-5.8c2.6,0.6,4.7,2.4,5.5,4.9
+				c1.6-0.9,3.5-1.4,5.3-1.4c1.9,0,3.8,0.5,5.4,1.5l0.1,0.1c0.3-4.5,3.6-8.4,8-9.4c0.8-0.2,1.7-0.3,2.5-0.3
+				c5.8,0,10.6,4.7,10.6,10.6c0,1-0.2,2-0.4,3c1.1,0.1,2.1,0.5,3,1c1-7,7-12.1,14-12.1c1.5,0,3,0.2,4.4,0.7c2.6,0.8,5,2.5,6.7,4.6
+				c2.4-4.8,7-8.2,12.4-8.8C311.4,205.9,307.6,203.2,303.3,203.2z"/>
+			<path class="st10" d="M314.4,209.9c-0.6,0-1.2,0-1.8,0.1c-5.4,0.6-10.1,3.9-12.5,8.7c-1.7-2.2-4-3.8-6.7-4.6
+				c-1.4-0.5-2.9-0.7-4.4-0.7c-7,0-13,5.2-14,12.1c-0.9-0.5-1.9-0.9-3-1c0.3-1,0.4-2,0.4-3c0-5.8-4.7-10.5-10.5-10.5
+				c-0.8,0-1.7,0.1-2.5,0.3c-4.4,1.1-7.7,4.9-8,9.4l-0.1-0.1c-1.6-1-3.5-1.5-5.4-1.5c-1.9,0-3.7,0.5-5.3,1.4c-1.4-3.9-5.7-6-9.6-4.6
+				c-2.5,0.9-4.3,3-4.9,5.5c-4.3-2-9.2-2.1-13.6-0.4c0.1-0.6,0.2-1.3,0.2-1.9c0-5.8-4.7-10.6-10.6-10.6l0,0c-0.5,0-0.9,0-1.4,0.1
+				c-5.8,0.8-9.9,6.1-9.1,11.8c0.2,1.4,0.6,2.7,1.3,3.9c-0.9-0.2-1.8-0.3-2.7-0.3c-2.9,0-5.8,1.2-7.8,3.4c1-2.1,1.5-4.3,1.5-6.6
+				c0-5.1-2.4-9.9-6.6-12.9l0,0c-7.1-5.2-17-3.6-22.2,3.5c-5.2,7.1-3.6,17,3.5,22.2c6.8,5,16.4,3.7,21.7-2.8
+				c-2.1,5.5,0.7,11.6,6.1,13.6c5.5,2.1,11.6-0.7,13.6-6.1c0.5-1.2,0.7-2.5,0.7-3.7c0-1.9,0.4-0.1,0.4,2.7c0,9.7,7.8,17.6,17.5,17.6
+				c9.7,0,17.6-7.8,17.6-17.5c0-2.4-0.5-4.8-1.4-7l0.5-0.1c0.5,5.8,5.7,10.1,11.5,9.5c5-0.5,9-4.4,9.5-9.4c1.7,1,3.6,1.6,5.5,1.6
+				c0.6,0,1.2,0,1.7-0.1v0.1c0,4.2,3.4,7.6,7.6,7.5c2.6,0,5-1.4,6.4-3.6c4.7,6.3,13.5,7.5,19.8,2.9c1.5-1.1,2.8-2.5,3.7-4.2
+				c4.9,7.3,14.8,9.1,22.1,4.2s9.1-14.8,4.2-22.1C324.5,212.5,319.6,209.9,314.4,209.9L314.4,209.9z"/>
+		</g>
+		<path class="st11" d="M239.1,70c6.4,0,11.6,5.2,11.6,11.6c0,6.4-5.2,11.6-11.6,11.6c-6.4,0-11.6-5.2-11.6-11.6c0,0,0,0,0,0
+			C227.5,75.2,232.7,70,239.1,70z"/>
+		<path class="st8" d="M239.1,137.2c8.3,0,13.5-1.7,16.6-7.9c0,3.2-1.5,6.2-4.1,8.1c-1.9,1.3-4,2.2-6.2,2.6c-4.1,0.8-8.4,0.8-12.5,0
+			c-2.2-0.4-4.3-1.3-6.2-2.6c-2.6-1.9-4.2-4.9-4.2-8.1C225.6,135.5,230.7,137.2,239.1,137.2z"/>
+		<path class="st8" d="M288.4,151.7c0,0.5-0.3,0.8-0.8,0.8c-0.3,0-0.5-0.1-0.7-0.3c-7.6-10.3-25.5-25-30.4-24.7
+			c2.4-6.1,3.4-15.9,3.6-31.2C271.5,100.3,288.3,122.4,288.4,151.7z"/>
+		<path class="st8" d="M218.1,96.3c0.3,15.2,1.2,25,3.6,31.1l-0.2,0.1c-4.9-0.3-22.8,14.5-30.4,24.7c-0.3,0.4-0.8,0.5-1.1,0.2
+			c-0.2-0.2-0.4-0.4-0.3-0.7C189.7,122.3,206.6,100.2,218.1,96.3L218.1,96.3z"/>
+		<path class="st8" d="M250.7,81.6c0-6.4-5.2-11.6-11.6-11.6c-6.4,0-11.6,5.2-11.6,11.6s5.2,11.6,11.6,11.6l0,0
+			C245.5,93.2,250.7,88,250.7,81.6z M252.9,81.6c0,7.6-6.2,13.8-13.8,13.8c-7.6,0-13.8-6.2-13.8-13.8c0-7.6,6.2-13.8,13.8-13.8
+			c0,0,0,0,0,0C246.7,67.8,252.9,74,252.9,81.6z"/>
+		<path class="st8" d="M239.1,48.7c5.7,0,10.7-2,13.8-4.9c0.5,1.3,1,2.6,1.4,4c-3.3,3.3-8.9,5.4-15.3,5.4s-11.9-2.1-15.3-5.4
+			c0.5-1.3,1-2.7,1.4-4C228.4,46.8,233.4,48.7,239.1,48.7z"/>
+		<path class="st9" d="M252.9,43.8c-3.1,3-8.1,4.9-13.8,4.9s-10.7-2-13.8-4.9c2-5.1,4.5-10,7.6-14.5c0.5-0.7,0.9-1.3,1.4-1.9
+			c2-2.7,5.8-3.2,8.5-1.2c0.4,0.3,0.8,0.7,1.2,1.2c0.5,0.6,0.9,1.2,1.4,1.9C248.4,33.8,250.9,38.7,252.9,43.8z"/>
+		<path class="st10" d="M260.1,96.4c-0.3,15.3-1.2,25-3.6,31.2c-0.2,0.6-0.5,1.2-0.8,1.7c-3.1,6.2-8.3,7.9-16.6,7.9
+			s-13.5-1.7-16.6-7.9c-0.3-0.6-0.5-1.1-0.8-1.8c-2.4-6.2-3.4-15.9-3.6-31.1c-0.1-3.4-0.1-7.1-0.1-11.1c-0.1-12.7,1.8-25.4,5.8-37.5
+			c3.3,3.3,8.9,5.4,15.3,5.4s11.9-2.1,15.3-5.4c4,12.1,6,24.8,5.8,37.5C260.2,89.2,260.1,92.9,260.1,96.4z M252.9,81.6
+			c0-7.6-6.2-13.8-13.8-13.8c-7.6,0-13.8,6.2-13.8,13.8c0,7.6,6.2,13.8,13.8,13.8c0,0,0,0,0,0C246.7,95.4,252.9,89.2,252.9,81.6
+			L252.9,81.6z"/>
+		<path class="st12" d="M139.2,246.1l18.4,0.4v0.7l-19.4-0.4v-0.7V246C138.4,246.1,138.6,246.1,139.2,246.1z"/>
+		
+			<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="112.2357" y1="190.775" x2="112.2357" y2="101.005" gradientTransform="matrix(1 0 0 -1 0 264)">
+			<stop  offset="0" style="stop-color:#81CFFF"/>
+			<stop  offset="1" style="stop-color:#5ECFFF;stop-opacity:0"/>
+		</linearGradient>
+		<line class="st13" x1="112.2" y1="73.2" x2="112.2" y2="163"/>
+		
+			<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="348.955" y1="195.605" x2="348.955" y2="105.835" gradientTransform="matrix(1 0 0 -1 0 264)">
+			<stop  offset="0" style="stop-color:#81CFFF"/>
+			<stop  offset="1" style="stop-color:#5ECFFF;stop-opacity:0"/>
+		</linearGradient>
+		<line class="st14" x1="349" y1="68.4" x2="349" y2="158.2"/>
+		
+			<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="40.9" y1="120.12" x2="40.9" y2="64.49" gradientTransform="matrix(1 0 0 -1 0 264)">
+			<stop  offset="0" style="stop-color:#81CFFF"/>
+			<stop  offset="1" style="stop-color:#5ECFFF;stop-opacity:0"/>
+		</linearGradient>
+		<line class="st15" x1="40.9" y1="143.9" x2="40.9" y2="199.5"/>
+		
+			<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="64.97" y1="168.64" x2="64.97" y2="140.83" gradientTransform="matrix(1 0 0 -1 0 264)">
+			<stop  offset="0" style="stop-color:#81CFFF"/>
+			<stop  offset="1" style="stop-color:#5ECFFF;stop-opacity:0"/>
+		</linearGradient>
+		<line class="st16" x1="65" y1="95.4" x2="65" y2="123.2"/>
+		
+			<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="397.23" y1="159.8" x2="397.23" y2="131.98" gradientTransform="matrix(1 0 0 -1 0 264)">
+			<stop  offset="0" style="stop-color:#81CFFF"/>
+			<stop  offset="1" style="stop-color:#5ECFFF;stop-opacity:0"/>
+		</linearGradient>
+		<line class="st17" x1="397.2" y1="104.2" x2="397.2" y2="132"/>
+		
+			<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="424.75" y1="130.51" x2="424.75" y2="74.87" gradientTransform="matrix(1 0 0 -1 0 264)">
+			<stop  offset="0" style="stop-color:#81CFFF"/>
+			<stop  offset="1" style="stop-color:#5ECFFF;stop-opacity:0"/>
+		</linearGradient>
+		<line class="st18" x1="424.8" y1="133.5" x2="424.8" y2="189.1"/>
+	</g>
+</g>
+</svg>

BIN
public/img/wx.png


BIN
public/img/新建项目.jpg


+ 67 - 10
public/index.html

@@ -1,10 +1,67 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Title</title>
-</head>
-<body>
-
-</body>
-</html>
+<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>印美打印</title><script>document.write("<script src='config.js?"+new Date().getTime()+"'><\/script>");</script><script defer="defer" src="js/elicons.f3fff5c4.js"></script><script defer="defer" src="js/modules.fcf5ada1.js"></script><script defer="defer" src="js/app.32e2296f.js"></script><link href="css/modules.cfd5f09d.css" rel="stylesheet"><link href="css/app.2c236d2b.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but 印美打印 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><script>var dark = window.localStorage.getItem('APP_DARK');
+			if(dark){
+				document.documentElement.classList.add("dark")
+			}</script><div id="app" class="aminui"><div class="app-loading"><div class="app-loading__loader"></div></div><style>.app-loading {position: absolute;top:0px;left:0px;right:0px;bottom:0px;display: flex;justify-content: center;align-items: center;flex-direction: column;background: #fff;}
+				.app-loading__logo {margin-bottom: 30px;}
+				.app-loading__logo img {width: 90px;vertical-align: bottom;}
+				.app-loading__loader {box-sizing: border-box;width: 35px;height: 35px;border: 5px solid transparent;border-top-color: #000;border-radius: 50%;animation: .5s loader linear infinite;position: relative;}
+				.app-loading__loader:before {box-sizing: border-box;content: '';display: block;width: inherit;height: inherit;position: absolute;top: -5px;left: -5px;border: 5px solid #ccc;border-radius: 50%;opacity: .5;}
+				.app-loading__title {font-size: 24px;color: #333;margin-top: 30px;}
+				.dark .app-loading {background: #222225;}
+				.dark .app-loading__loader {border-top-color: #fff;}
+				.dark .app-loading__title {color: #d0d0d0;}
+				@keyframes loader {
+				    0% {
+				        transform: rotate(0deg);
+				    }
+				    100% {
+				        transform: rotate(360deg);
+				    }
+				}</style></div></body><div id="versionCheck" style="display: none;position: absolute;z-index: 99;top:0;left:0;right:0;bottom:0;padding:40px;background:rgba(255,255,255,0.9);color: #333;"><h2 style="line-height: 1;margin: 0;font-size: 24px;">当前使用的浏览器内核版本过低 :(</h2><p style="line-height: 1;margin: 0;font-size: 14px;margin-top: 20px;opacity: 0.8;">当前版本:<span id="versionCheck-type">--</span> <span id="versionCheck-version">--</span></p><p style="line-height: 1;margin: 0;font-size: 14px;margin-top: 10px;opacity: 0.8;">最低版本要求:Chrome 71+、Firefox 65+、Safari 12+、Edge 97+。</p><p style="line-height: 1;margin: 0;font-size: 14px;margin-top: 10px;opacity: 0.8;">请升级浏览器版本,或更换现代浏览器,如果你使用的是双核浏览器,请切换到极速/高速模式。</p></div><script>function getBrowerInfo(){
+		var userAgent = window.navigator.userAgent;
+		var browerInfo = {
+			type: 'unknown',
+			version: 'unknown',
+			userAgent: userAgent
+		};
+		if(document.documentMode){
+			browerInfo.type = "IE"
+			browerInfo.version = document.documentMode + ''
+		}else if(indexOf(userAgent, "Firefox")){
+			browerInfo.type = "Firefox"
+			browerInfo.version = userAgent.match(/Firefox\/([\d.]+)/)[1]
+		}else if(indexOf(userAgent, "Opera")){
+			browerInfo.type = "Opera"
+			browerInfo.version = userAgent.match(/Opera\/([\d.]+)/)[1]
+		}else if(indexOf(userAgent, "Edg")){
+			browerInfo.type = "Edg"
+			browerInfo.version = userAgent.match(/Edg\/([\d.]+)/)[1]
+		}else if(indexOf(userAgent, "Chrome")){
+			browerInfo.type = "Chrome"
+			browerInfo.version = userAgent.match(/Chrome\/([\d.]+)/)[1]
+		}else if(indexOf(userAgent, "Safari")){
+			browerInfo.type = "Safari"
+			browerInfo.version = userAgent.match(/Safari\/([\d.]+)/)[1]
+		}
+		return browerInfo
+	}
+    function indexOf(userAgent, brower) {
+        return userAgent.indexOf(brower) > -1
+    }
+	function isSatisfyBrower(){
+		var minVer = {
+			"Chrome": 71,
+			"Firefox": 65,
+			"Safari": 12,
+			"Edg": 97,
+			"IE": 999
+		}
+		var browerInfo = getBrowerInfo()
+		var materVer = browerInfo.version.split('.')[0]
+        return materVer >= minVer[browerInfo.type]
+	}
+	if(!isSatisfyBrower()){
+		document.getElementById('versionCheck').style.display = 'block';
+		document.getElementById('versionCheck-type').innerHTML = getBrowerInfo().type;
+		document.getElementById('versionCheck-version').innerHTML = getBrowerInfo().version;
+	}</script></html>

+ 1 - 0
public/js/404.1a96715f.js

@@ -0,0 +1 @@
+"use strict";(self["webpackChunkhxmini"]=self["webpackChunkhxmini"]||[]).push([[2389],{19080:function(o,n,r){r.r(n),r.d(n,{default:function(){return g}});var e=r(20641);const t=o=>((0,e.Qi)("data-v-10b4695c"),o=o(),(0,e.jt)(),o),i={class:"router-err"},c=t(()=>(0,e.Lk)("div",{class:"router-err__icon"},[(0,e.Lk)("img",{src:"img/404.png"})],-1)),l={class:"router-err__content"},u=t(()=>(0,e.Lk)("h2",null,"无权限或找不到页面",-1)),a=t(()=>(0,e.Lk)("p",null,"当前页面无权限访问或者打开了一个不存在的链接,请检查当前账户权限和链接的可访问性。",-1));function k(o,n,r,t,k,s){const d=(0,e.g2)("el-button");return(0,e.uX)(),(0,e.CE)("div",i,[c,(0,e.Lk)("div",l,[u,a,(0,e.bF)(d,{type:"primary",plain:"",round:"",onClick:s.gohome},{default:(0,e.k6)(()=>[(0,e.eW)("返回首页")]),_:1},8,["onClick"]),(0,e.bF)(d,{type:"primary",plain:"",round:"",onClick:s.gologin},{default:(0,e.k6)(()=>[(0,e.eW)("重新登录")]),_:1},8,["onClick"]),(0,e.bF)(d,{type:"primary",round:"",onClick:s.goback},{default:(0,e.k6)(()=>[(0,e.eW)("返回上一页")]),_:1},8,["onClick"])])])}r(28743);var s={methods:{gohome(){location.href="#/"},goback(){this.$router.go(-1)},gologin(){this.$router.push("/login")}}},d=r(66262);const p=(0,d.A)(s,[["render",k],["__scopeId","data-v-10b4695c"]]);var g=p}}]);

+ 1 - 0
public/js/4669.1e2e0244.js

@@ -0,0 +1 @@
+"use strict";(self["webpackChunkhxmini"]=self["webpackChunkhxmini"]||[]).push([[4669],{34669:function(e,t,s){s.r(t),s.d(t,{default:function(){return f}});var r=s(20641);const i=e=>((0,r.Qi)("data-v-5a089473"),e=e(),(0,r.jt)(),e),p={class:"sc-cropper"},a={class:"sc-cropper__img"},o=["src"],c={class:"sc-cropper__preview"},n=i(()=>(0,r.Lk)("h4",null,"图像预览",-1)),l={class:"sc-cropper__preview__img",ref:"preview"};function d(e,t,s,i,d,u){return(0,r.uX)(),(0,r.CE)("div",p,[(0,r.Lk)("div",a,[(0,r.Lk)("img",{src:s.src,ref:"img"},null,8,o)]),(0,r.Lk)("div",c,[n,(0,r.Lk)("div",l,null,512)])])}var u=s(65643),h=s.n(u),g={props:{src:{type:String,default:""},compress:{type:Number,default:1},aspectRatio:{type:Number,default:NaN}},data(){return{crop:null}},watch:{aspectRatio(e){this.crop.setAspectRatio(e)}},mounted(){this.init()},methods:{init(){this.crop=new(h())(this.$refs.img,{viewMode:2,dragMode:"move",responsive:!1,aspectRatio:this.aspectRatio,preview:this.$refs.preview})},setAspectRatio(e){this.crop.setAspectRatio(e)},getCropData(e,t="image/jpeg"){e(this.crop.getCroppedCanvas().toDataURL(t,this.compress))},getCropBlob(e,t="image/jpeg"){this.crop.getCroppedCanvas().toBlob(t=>{e(t)},t,this.compress)},getCropFile(e,t="fileName.jpg",s="image/jpeg"){this.crop.getCroppedCanvas().toBlob(r=>{let i=new File([r],t,{type:s});e(i)},s,this.compress)}}},m=s(66262);const v=(0,m.A)(g,[["render",d],["__scopeId","data-v-5a089473"]]);var f=v}}]);

+ 1 - 0
public/js/4681.7f364035.js

@@ -0,0 +1 @@
+"use strict";(self["webpackChunkhxmini"]=self["webpackChunkhxmini"]||[]).push([[4681],{64681:function(n,r,e){e.r(r),e.d(r,{default:function(){return a}});var u=e(20641);function t(n,r){const e=(0,u.g2)("router-view");return(0,u.uX)(),(0,u.Wv)(e)}var i=e(66262);const c={},s=(0,i.A)(c,[["render",t]]);var a=s}}]);

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/js/580.19fa5c26.js


+ 1 - 0
public/js/6089.a5d92021.js

@@ -0,0 +1 @@
+"use strict";(self["webpackChunkhxmini"]=self["webpackChunkhxmini"]||[]).push([[6089],{19235:function(__unused_webpack_module,__webpack_exports__){__webpack_exports__.A={name:"uploadRender",props:{modelValue:[String,Number,Boolean,Date,Object,Array],item:{type:Object,default:()=>{}}},data(){return{value:this.modelValue,apiObj:this.getApiObj()}},watch:{value(e){this.$emit("update:modelValue",e)}},mounted(){},methods:{getApiObj(){return eval("this."+this.item.options.apiObj)}}}},26089:function(e,t,l){l.r(t),l.d(t,{default:function(){return n}});var a=l(20641);function u(e,t,l,u,p,i){const o=(0,a.g2)("el-table-column"),n=(0,a.g2)("sc-table-select");return(0,a.uX)(),(0,a.Wv)(n,{modelValue:p.value,"onUpdate:modelValue":t[0]||(t[0]=e=>p.value=e),apiObj:p.apiObj,"table-width":600,multiple:l.item.options.multiple,props:l.item.options.props,style:{width:"100%"}},{default:(0,a.k6)(()=>[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(l.item.options.column,(e,t)=>((0,a.uX)(),(0,a.Wv)(o,{key:t,prop:e.prop,label:e.label,width:e.width},null,8,["prop","label","width"]))),128))]),_:1},8,["modelValue","apiObj","multiple","props"])}var p=l(19235),i=l(66262);const o=(0,i.A)(p.A,[["render",u]]);var n=o}}]);

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/js/app.32e2296f.js


+ 1 - 0
public/js/dashboard.1f4bf4fc.js

@@ -0,0 +1 @@
+"use strict";(self["webpackChunkhxmini"]=self["webpackChunkhxmini"]||[]).push([[945],{37491:function(o,n,r){r.r(n),r.d(n,{default:function(){return g}});var e=r(20641);const t=o=>((0,e.Qi)("data-v-55fec15c"),o=o(),(0,e.jt)(),o),i={class:"router-err"},c=t(()=>(0,e.Lk)("div",{class:"router-err__icon"},[(0,e.Lk)("img",{src:"img/404.png"})],-1)),l={class:"router-err__content"},u=t(()=>(0,e.Lk)("h2",null,"无权限或找不到页面",-1)),a=t(()=>(0,e.Lk)("p",null,"当前页面无权限访问或者打开了一个不存在的链接,请检查当前账户权限和链接的可访问性。",-1));function k(o,n,r,t,k,s){const d=(0,e.g2)("el-button");return(0,e.uX)(),(0,e.CE)("div",i,[c,(0,e.Lk)("div",l,[u,a,(0,e.bF)(d,{type:"primary",plain:"",round:"",onClick:s.gohome},{default:(0,e.k6)(()=>[(0,e.eW)("返回首页")]),_:1},8,["onClick"]),(0,e.bF)(d,{type:"primary",plain:"",round:"",onClick:s.gologin},{default:(0,e.k6)(()=>[(0,e.eW)("重新登录")]),_:1},8,["onClick"]),(0,e.bF)(d,{type:"primary",round:"",onClick:s.goback},{default:(0,e.k6)(()=>[(0,e.eW)("返回上一页")]),_:1},8,["onClick"])])])}r(28743);var s={methods:{gohome(){location.href="#/"},goback(){this.$router.go(-1)},gologin(){this.$router.push("/login")}}},d=r(66262);const p=(0,d.A)(s,[["render",k],["__scopeId","data-v-55fec15c"]]);var g=p}}]);

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/js/echarts.d2455850.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/js/elicons.f3fff5c4.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/js/layout.405ac6c9.js


+ 1 - 0
public/js/login-forget.16e0192c.js

@@ -0,0 +1 @@
+"use strict";(self["webpackChunkhxmini"]=self["webpackChunkhxmini"]||[]).push([[3228],{36676:function(n,r,u){u.r(r),u.d(r,{default:function(){return f}});var e=u(20641);function i(n,r){return(0,e.uX)(),(0,e.CE)("div")}var t=u(66262);const c={},a=(0,t.A)(c,[["render",i]]);var f=a}}]);

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/js/login.7cde31bc.js


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
public/js/manage-dashboard.0b3cbef4.js


+ 1 - 0
public/js/manage-finance-cash.824d1ef3.js

@@ -0,0 +1 @@
+"use strict";(self["webpackChunkhxmini"]=self["webpackChunkhxmini"]||[]).push([[5053],{95652:function(n,u,e){function r(n,u){return null}e.r(u),e.d(u,{default:function(){return f}});var t=e(66262);const i={},c=(0,t.A)(i,[["render",r]]);var f=c}}]);

+ 1 - 0
public/js/manage-finance-history.954bfcb5.js

@@ -0,0 +1 @@
+"use strict";(self["webpackChunkhxmini"]=self["webpackChunkhxmini"]||[]).push([[540],{79813:function(n,u,e){function r(n,u){return null}e.r(u),e.d(u,{default:function(){return f}});var t=e(66262);const i={},c=(0,t.A)(i,[["render",r]]);var f=c}}]);

+ 1 - 0
public/js/manage-finance-index.2a16950f.js

@@ -0,0 +1 @@
+"use strict";(self["webpackChunkhxmini"]=self["webpackChunkhxmini"]||[]).push([[6560],{98898:function(n,u,e){function r(n,u){return null}e.r(u),e.d(u,{default:function(){return f}});var t=e(66262);const i={},c=(0,t.A)(i,[["render",r]]);var f=c}}]);

+ 1 - 0
public/js/manage-member-analysis.76f19e0f.js

@@ -0,0 +1 @@
+"use strict";(self["webpackChunkhxmini"]=self["webpackChunkhxmini"]||[]).push([[444],{34729:function(n,u,e){function r(n,u){return null}e.r(u),e.d(u,{default:function(){return f}});var t=e(66262);const i={},c=(0,t.A)(i,[["render",r]]);var f=c}}]);

+ 1 - 0
public/js/manage-member-index.24844f48.js

@@ -0,0 +1 @@
+"use strict";(self["webpackChunkhxmini"]=self["webpackChunkhxmini"]||[]).push([[5614],{4019:function(n,u,e){function r(n,u){return null}e.r(u),e.d(u,{default:function(){return f}});var t=e(66262);const i={},c=(0,t.A)(i,[["render",r]]);var f=c}}]);

+ 1 - 0
public/js/manage-member-recharge.44e0f6e4.js

@@ -0,0 +1 @@
+"use strict";(self["webpackChunkhxmini"]=self["webpackChunkhxmini"]||[]).push([[1313],{12861:function(n,u,e){function r(n,u){return null}e.r(u),e.d(u,{default:function(){return f}});var t=e(66262);const i={},c=(0,t.A)(i,[["render",r]]);var f=c}}]);

+ 1 - 0
public/js/manage-member-record.359f81c7.js

@@ -0,0 +1 @@
+"use strict";(self["webpackChunkhxmini"]=self["webpackChunkhxmini"]||[]).push([[1081],{6653:function(n,u,e){function r(n,u){return null}e.r(u),e.d(u,{default:function(){return f}});var t=e(66262);const i={},c=(0,t.A)(i,[["render",r]]);var f=c}}]);

+ 1 - 0
public/js/manage-order-index.32ad5ce8.js

@@ -0,0 +1 @@
+"use strict";(self["webpackChunkhxmini"]=self["webpackChunkhxmini"]||[]).push([[1370],{17962:function(n,u,e){function r(n,u){return null}e.r(u),e.d(u,{default:function(){return f}});var t=e(66262);const i={},c=(0,t.A)(i,[["render",r]]);var f=c}}]);

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff