Переглянути джерело

【程序目录】更新优化

吴昊天 3 роки тому
батько
коміт
f96b5a7451
100 змінених файлів з 626 додано та 95 видалено
  1. 12 9
      crmeb/app/adminapi/controller/UpgradeController.php
  2. 1 1
      crmeb/app/adminapi/controller/v1/freight/Express.php
  3. 14 0
      crmeb/app/adminapi/controller/v1/setting/LangCode.php
  4. 2 0
      crmeb/app/adminapi/route/setting.php
  5. 1 1
      crmeb/app/services/activity/seckill/StoreSeckillServices.php
  6. 3 0
      crmeb/app/services/order/StoreOrderServices.php
  7. 1 0
      crmeb/app/services/order/StoreOrderSplitServices.php
  8. 1 1
      crmeb/app/services/system/admin/SystemRoleServices.php
  9. 27 0
      crmeb/app/services/system/lang/LangCodeServices.php
  10. 9 31
      crmeb/app/services/user/UserExtractServices.php
  11. 2 1
      crmeb/composer.json
  12. 428 2
      crmeb/composer.lock
  13. 80 0
      crmeb/crmeb/utils/Translate.php
  14. 1 1
      crmeb/public/admin/css/app.b5aec2df.css
  15. BIN
      crmeb/public/admin/css/app.775d8f4a.css.gz
  16. BIN
      crmeb/public/admin/css/app.b5aec2df.css.gz
  17. 1 1
      crmeb/public/admin/css/chunk-28a4367e.603cb5cb.css
  18. 0 1
      crmeb/public/admin/css/chunk-02873ba0.294f5336.css
  19. 1 0
      crmeb/public/admin/css/chunk-02ca0c38.b36702c6.css
  20. 1 1
      crmeb/public/admin/css/chunk-803262aa.c8d5f71a.css
  21. 1 0
      crmeb/public/admin/css/chunk-07e7639e.812d2100.css
  22. 1 0
      crmeb/public/admin/css/chunk-0814bf2b.c91d4a3c.css
  23. BIN
      crmeb/public/admin/css/chunk-0814bf2b.c91d4a3c.css.gz
  24. 0 1
      crmeb/public/admin/css/chunk-0af9cd42.f885f7a1.css
  25. 0 1
      crmeb/public/admin/css/chunk-0d5a0daa.7a05f9ef.css
  26. 0 1
      crmeb/public/admin/css/chunk-10148a87.091a3745.css
  27. 1 1
      crmeb/public/admin/css/chunk-0869dfc5.6cbad704.css
  28. 0 1
      crmeb/public/admin/css/chunk-11b76a7e.1affe12a.css
  29. 1 0
      crmeb/public/admin/css/chunk-124c1be4.c486543b.css
  30. 0 1
      crmeb/public/admin/css/chunk-126ca984.f327b292.css
  31. 0 1
      crmeb/public/admin/css/chunk-14070da6.77e67292.css
  32. 0 1
      crmeb/public/admin/css/chunk-15ee830b.332cfb47.css
  33. 0 1
      crmeb/public/admin/css/chunk-1a90efc7.051d6872.css
  34. 1 0
      crmeb/public/admin/css/chunk-1ab64b57.659a336b.css
  35. 0 1
      crmeb/public/admin/css/chunk-1c3cfae6.ffb5cf4d.css
  36. 1 0
      crmeb/public/admin/css/chunk-1dc67ed4.a1f0b1ed.css
  37. 0 1
      crmeb/public/admin/css/chunk-1e2d10e4.f3b00c46.css
  38. 1 0
      crmeb/public/admin/css/chunk-1ec5a8a6.90af9357.css
  39. 0 1
      crmeb/public/admin/css/chunk-1ed0ed93.20acb6df.css
  40. 1 0
      crmeb/public/admin/css/chunk-1f894614.c0a99313.css
  41. 0 1
      crmeb/public/admin/css/chunk-236b5fe8.4d29a483.css
  42. 1 0
      crmeb/public/admin/css/chunk-245ca332.97d49f63.css
  43. 1 1
      crmeb/public/admin/css/chunk-84e22458.392fe364.css
  44. 1 0
      crmeb/public/admin/css/chunk-295998af.11234701.css
  45. 1 0
      crmeb/public/admin/css/chunk-29e98b5f.0357c398.css
  46. 1 0
      crmeb/public/admin/css/chunk-2b4d3374.62a7578b.css
  47. 0 1
      crmeb/public/admin/css/chunk-2ca25cc1.6202bb49.css
  48. BIN
      crmeb/public/admin/css/chunk-2ca25cc1.6202bb49.css.gz
  49. 0 1
      crmeb/public/admin/css/chunk-2d6b1a6c.42690298.css
  50. 0 1
      crmeb/public/admin/css/chunk-2dfd8e5e.24aa46ff.css
  51. 1 0
      crmeb/public/admin/css/chunk-2e3a27a8.75f96eb7.css
  52. 1 0
      crmeb/public/admin/css/chunk-2e90bd4b.9805da2f.css
  53. 1 0
      crmeb/public/admin/css/chunk-2eae1aba.e46873bd.css
  54. 1 1
      crmeb/public/admin/css/chunk-55c06f49.5f5e25a1.css
  55. 0 1
      crmeb/public/admin/css/chunk-33a99382.c16ae7ba.css
  56. 1 0
      crmeb/public/admin/css/chunk-33cdb792.4ad5fee0.css
  57. 1 1
      crmeb/public/admin/css/chunk-c2c68508.484b44db.css
  58. 0 0
      crmeb/public/admin/css/chunk-35b7fede.e5498d43.css
  59. 1 0
      crmeb/public/admin/css/chunk-35bfa462.f7644335.css
  60. 1 0
      crmeb/public/admin/css/chunk-36d4002a.30ad3682.css
  61. 0 1
      crmeb/public/admin/css/chunk-3967fab8.cc1dabb9.css
  62. 0 1
      crmeb/public/admin/css/chunk-3afc7a10.f56b1863.css
  63. 1 0
      crmeb/public/admin/css/chunk-3c10a4af.38eccd70.css
  64. 0 1
      crmeb/public/admin/css/chunk-3fef49de.d957eec0.css
  65. 1 1
      crmeb/public/admin/css/chunk-4c8b2a2f.d9136047.css
  66. 1 1
      crmeb/public/admin/css/chunk-65e43b7e.311815b8.css
  67. 1 1
      crmeb/public/admin/css/chunk-6bf06aec.4e9fb28f.css
  68. BIN
      crmeb/public/admin/css/chunk-6bf06aec.4e9fb28f.css.gz
  69. 0 1
      crmeb/public/admin/css/chunk-43337cc8.60181094.css
  70. 0 1
      crmeb/public/admin/css/chunk-45281dc6.fe4ffca2.css
  71. 0 1
      crmeb/public/admin/css/chunk-46a01148.b954d146.css
  72. 1 0
      crmeb/public/admin/css/chunk-4790b9f5.0dca26a3.css
  73. 1 0
      crmeb/public/admin/css/chunk-47e94014.1871f329.css
  74. 1 1
      crmeb/public/admin/css/chunk-63dabe45.56dc4700.css
  75. 1 0
      crmeb/public/admin/css/chunk-4a6e0eaf.fa0dfb87.css
  76. 0 1
      crmeb/public/admin/css/chunk-4caf6556.3b0c7950.css
  77. 0 1
      crmeb/public/admin/css/chunk-4e744958.87943f3c.css
  78. 0 1
      crmeb/public/admin/css/chunk-4ee9aa33.76ba2ee1.css
  79. 1 1
      crmeb/public/admin/css/chunk-0d6c14e8.7e487d1d.css
  80. 0 1
      crmeb/public/admin/css/chunk-50c64bee.e9a03fde.css
  81. 0 1
      crmeb/public/admin/css/chunk-52028903.7a68a769.css
  82. 1 0
      crmeb/public/admin/css/chunk-53c7abcb.8f568174.css
  83. 1 0
      crmeb/public/admin/css/chunk-542425bb.f3be83dc.css
  84. 1 0
      crmeb/public/admin/css/chunk-55970e0b.c7513d37.css
  85. 1 0
      crmeb/public/admin/css/chunk-55b679e9.0475462e.css
  86. 0 1
      crmeb/public/admin/css/chunk-580e6e94.0bb6488c.css
  87. 1 0
      crmeb/public/admin/css/chunk-58c461e8.544d1dce.css
  88. 1 0
      crmeb/public/admin/css/chunk-5cc34f42.f15c944e.css
  89. BIN
      crmeb/public/admin/css/chunk-5cc34f42.f15c944e.css.gz
  90. 0 1
      crmeb/public/admin/css/chunk-5e3ade6c.78048a43.css
  91. 0 1
      crmeb/public/admin/css/chunk-5e75d41e.d94f01bc.css
  92. 1 1
      crmeb/public/admin/css/chunk-6a965ca9.f8d438e3.css
  93. 1 0
      crmeb/public/admin/css/chunk-5ef03c2f.3bb2c7be.css
  94. 0 1
      crmeb/public/admin/css/chunk-611e73b1.39e846bb.css
  95. 1 1
      crmeb/public/admin/css/chunk-0ee3b9f5.6fc25c10.css
  96. 0 1
      crmeb/public/admin/css/chunk-630fbf30.4d2243da.css
  97. 0 1
      crmeb/public/admin/css/chunk-64b9eb34.abc9ed34.css
  98. 1 1
      crmeb/public/admin/css/chunk-6bc497da.09595a04.css
  99. 1 0
      crmeb/public/admin/css/chunk-680149f1.0fa23273.css
  100. 0 0
      crmeb/public/admin/css/chunk-68cb56e9.99b1f5ce.css

+ 12 - 9
crmeb/app/adminapi/controller/UpgradeController.php

@@ -147,15 +147,18 @@ class UpgradeController
 //                file_put_contents(app()->getRootPath() . '.version', "version=" . $data['new_version'] . "\nversion_code=" . $data['new_code']);
 //                return app('json')->success(['sleep' => -1]);
 //            }
-            $limit = 100;
-            if (!$this->setIsUpgrade('cartInfo')) {
-                $res = $this->handleCartInfo((int)$sleep, (int)$page, (int)$limit);
-                return app('json')->success($res);
-            } else {
-                file_put_contents(app()->getRootPath() . '.version', "version=" . $data['new_version'] . "\nversion_code=" . $data['new_code'] . "\napp_id=ze7x9rxsv09l6pvsyo" . "\napp_key=fuF7U9zaybLa5gageVQzxtxQMFnvU2OI");
-                $this->services->generateSignature();
-                return app('json')->success(['sleep' => -1]);
-            }
+//            $limit = 100;
+//            if (!$this->setIsUpgrade('cartInfo')) {
+//                $res = $this->handleCartInfo((int)$sleep, (int)$page, (int)$limit);
+//                return app('json')->success($res);
+//            } else {
+//                file_put_contents(app()->getRootPath() . '.version', "version=" . $data['new_version'] . "\nversion_code=" . $data['new_code'] . "\napp_id=ze7x9rxsv09l6pvsyo" . "\napp_key=fuF7U9zaybLa5gageVQzxtxQMFnvU2OI");
+//                $this->services->generateSignature();
+//                return app('json')->success(['sleep' => -1]);
+//            }
+            file_put_contents(app()->getRootPath() . '.version', "version=" . $data['new_version'] . "\nversion_code=" . $data['new_code'] . "\nplatform=CRMEB\napp_id=ze7x9rxsv09l6pvsyo" . "\napp_key=fuF7U9zaybLa5gageVQzxtxQMFnvU2OI");
+            $this->services->generateSignature();
+            return app('json')->success(['sleep' => -1]);
         }
         $sql = $sql_arr[$sleep];
         Db::startTrans();

+ 1 - 1
crmeb/app/adminapi/controller/v1/freight/Express.php

@@ -168,6 +168,6 @@ class Express extends AuthController
     public function syncExpress()
     {
         $this->services->syncExpress();
-        return app('json')->success(100039);
+        return app('json')->success(100038);
     }
 }

+ 14 - 0
crmeb/app/adminapi/controller/v1/setting/LangCode.php

@@ -88,4 +88,18 @@ class LangCode extends AuthController
         $this->services->langCodeDel($id);
         return app('json')->success(100002);
     }
+
+    /**
+     * 机器翻译
+     * @return mixed
+     * @throws \Throwable
+     */
+    public function langCodeTranslate()
+    {
+        [$text] = $this->request->postMore([
+            ['text', '']
+        ], true);
+        if ($text == '') return app('json')->fail(100100);
+        return app('json')->success($this->services->langCodeTranslate($text));
+    }
 }

+ 2 - 0
crmeb/app/adminapi/route/setting.php

@@ -211,6 +211,8 @@ Route::group('setting', function () {
     Route::post('lang_code/save', 'v1.setting.LangCode/langCodeSave')->option(['real_name' => '保存修改语言']);
     //删除语言
     Route::delete('lang_code/del/:id', 'v1.setting.LangCode/langCodeDel')->option(['real_name' => '删除语言']);
+    //机器翻译
+    Route::post('lang_code/translate', 'v1.setting.LangCode/langCodeTranslate')->option(['real_name' => '机器翻译']);
 })->middleware([
     \app\http\middleware\AllowOriginMiddleware::class,
     \app\adminapi\middleware\AdminAuthTokenMiddleware::class,

+ 1 - 1
crmeb/app/services/activity/seckill/StoreSeckillServices.php

@@ -513,7 +513,7 @@ class StoreSeckillServices extends BaseServices
         if ($storeInfo['status'] == 1) {
             if ($storeInfo['start_time'] > time()) {
                 $storeInfo['status'] = 2;
-            } elseif ($storeInfo['end_time'] < time()) {
+            } elseif ($storeInfo['stop_time'] < time()) {
                 $storeInfo['status'] = 0;
             } else {
                 /** @var SystemGroupDataServices $systemGroupDataService */

+ 3 - 0
crmeb/app/services/order/StoreOrderServices.php

@@ -2418,6 +2418,9 @@ HTML;
         if (count($res) == 2) {
             return ['type' => 0];
         } else {
+            if ($res[0] == 2 && sys_config('store_self_mention') == 0) {
+                return ['type' => 1];
+            }
             return ['type' => (int)$res[0]];
         }
     }

+ 1 - 0
crmeb/app/services/order/StoreOrderSplitServices.php

@@ -170,6 +170,7 @@ class StoreOrderSplitServices extends BaseServices
                 $new_order = $this->dao->get($new_id);
                 $storeOrderCartInfoServices->clearOrderCartInfo($new_id);
                 $this->splitComputeOrder((int)$new_id, $cart_data_all, (float)($change_price ? $order_pay_price : 0), (float)$orderInfo['pay_price'], (float)($new_order['pay_price'] ?? 0));
+                $new_order = $this->dao->get($new_id);
                 if ($key == 'new') {
                     $order = $new_order;
                 } else {

+ 1 - 1
crmeb/app/services/system/admin/SystemRoleServices.php

@@ -121,7 +121,7 @@ class SystemRoleServices extends BaseServices
 
         // 获取管理员的接口权限列表,存在时放行
         $auth = $this->getRolesByAuth($request->adminInfo()['roles'], 2);
-        if (in_array($rule, $auth[$method])) {
+        if (isset($auth[$method]) && in_array($rule, $auth[$method])) {
             return true;
         } else {
             throw new AuthException(110000);

+ 27 - 0
crmeb/app/services/system/lang/LangCodeServices.php

@@ -6,6 +6,7 @@ use app\dao\system\lang\LangCodeDao;
 use app\services\BaseServices;
 use crmeb\exceptions\AdminException;
 use crmeb\services\CacheService;
+use crmeb\utils\Translate;
 
 class LangCodeServices extends BaseServices
 {
@@ -139,4 +140,30 @@ class LangCodeServices extends BaseServices
         }
         return true;
     }
+
+    /**
+     * 机器翻译
+     * @param string $text
+     * @return array
+     * @throws \Throwable
+     */
+    public function langCodeTranslate(string $text = ''): array
+    {
+        $translator = Translate::getInstance();
+        $translator->setAccessKey('');
+        $translator->setSecretKey('');
+        /** @var LangTypeServices $langTypeServices */
+        $langTypeServices = app()->make(LangTypeServices::class);
+        $typeList = $langTypeServices->getColumn([['status', '=', 1], ['is_del', '=', 0]], 'language_name,file_name,id', 'id');
+        $data = [];
+        foreach ($typeList as $item) {
+            if ($item['file_name'] == 'zh-Hant') {
+                $lang = 'zh-Hant';
+            } else {
+                $lang = substr($item['file_name'], 0, 2);
+            }
+            $data[$item['id']] = $translator->translateText("", $lang, array($text))[0]['Translation'];
+        }
+        return $data;
+    }
 }

+ 9 - 31
crmeb/app/services/user/UserExtractServices.php

@@ -182,11 +182,12 @@ class UserExtractServices extends BaseServices
         }
 
         $insertData = ['order_id' => $order_id, 'nickname' => $nickname, 'phone' => $phone];
-
-        $openid = $wechatServices->getWechatOpenid($userExtract['uid'], 'wechat');
-
+        
         //自动提现到零钱
-        if ($userExtract['extract_type'] == 'weixin' && sys_config('brokerage_type', 0) && $openid) {
+        if ($userExtract['extract_type'] == 'weixin' && sys_config('brokerage_type', 0)) {
+
+            $openid = $wechatServices->uidToOpenid($userExtract['uid'], 'wechat');
+            if (!$openid) $openid = $wechatServices->uidToOpenid($userExtract['uid'], 'routine');
 
             /** @var StoreOrderCreateServices $services */
             $services = app()->make(StoreOrderCreateServices::class);
@@ -405,7 +406,10 @@ class UserExtractServices extends BaseServices
 
         /** @var WechatUserServices $wechatServices */
         $wechatServices = app()->make(WechatUserServices::class);
-        if ($data['extract_type'] == 'weixin' && sys_config('brokerage_type', 0) && !$wechatServices->uidToOpenid($uid, 'wechat')) {
+        $openid = $wechatServices->uidToOpenid($uid, 'wechat');
+        if (!$openid) $openid = $wechatServices->uidToOpenid($uid, 'routine');
+
+        if ($data['extract_type'] == 'weixin' && sys_config('brokerage_type', 0) && !$openid) {
             throw new ApiException(410024);
         }
 
@@ -435,7 +439,6 @@ class UserExtractServices extends BaseServices
         if ($data['money'] <= 0) {
             throw new ApiException(400664);
         }
-        $openid = '';
         $insertData = [
             'uid' => $user['uid'],
             'extract_type' => $data['extract_type'],
@@ -462,9 +465,6 @@ class UserExtractServices extends BaseServices
         } else if ($data['extract_type'] == 'weixin') {
             $insertData['qrcode_url'] = $data['qrcode_url'];
             $mark = '使用微信提现' . $insertData['extract_price'] . '元';
-            /** @var WechatUserServices $wechatServices */
-            $wechatServices = app()->make(WechatUserServices::class);
-            $openid = $wechatServices->getWechatOpenid($uid, 'wechat');
             if (sys_config('brokerage_type', 0) && $openid) {
                 if ($data['money'] < 1) {
                     throw new ApiException(400665);
@@ -484,28 +484,6 @@ class UserExtractServices extends BaseServices
             /** @var UserBrokerageServices $userBrokerageServices */
             $userBrokerageServices = app()->make(UserBrokerageServices::class);
             $userBrokerageServices->income('extract', $uid, ['mark' => $mark, 'number' => $data['money']], $balance, $res1['id']);
-
-            /** @var WechatUserServices $wechatServices */
-            $wechatServices = app()->make(WechatUserServices::class);
-            $openid = $wechatServices->uidToOpenid($uid, 'wechat');
-
-            //自动提现到零钱
-            if ($insertData['extract_type'] == 'weixin' && $insertData['status'] == 1 && isset($insertData['wechat_order_id'])) {
-                $res = WechatService::merchantPay($openid, $insertData['wechat_order_id'], $data['money'], '提现佣金到零钱');
-                if (!$res) {
-                    throw new ApiException(400658);
-                }
-                /** @var CapitalFlowServices $capitalFlowServices */
-                $capitalFlowServices = app()->make(CapitalFlowServices::class);
-                $capitalFlowServices->setFlow([
-                    'order_id' => $insertData['wechat_order_id'],
-                    'uid' => $uid,
-                    'price' => bcmul('-1', $data['money'], 2),
-                    'pay_type' => 'weixin',
-                    'nickname' => $user['nickname'],
-                    'phone' => $user['phone']
-                ], 'extract');
-            }
             return $res1;
         });
 

+ 2 - 1
crmeb/composer.json

@@ -46,7 +46,8 @@
         "alipaysdk/easysdk": "2.0",
         "lizhichao/word": "^2.1",
         "alibabacloud/dysmsapi-20170525": "2.0.16",
-        "fastknife/ajcaptcha": "^1.1"
+        "fastknife/ajcaptcha": "^1.1",
+        "volcengine/volc-sdk-php": "^1.0"
     },
     "autoload": {
         "psr-4": {

+ 428 - 2
crmeb/composer.lock

@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "79e704df6a1f0e82d133706c2ab8a98e",
+    "content-hash": "ed7eebc8a056a7e32a6817940c48882c",
     "packages": [
         {
             "name": "adbario/php-dot-notation",
@@ -1179,6 +1179,382 @@
             ],
             "time": "2020-05-25T06:13:54+00:00"
         },
+        {
+            "name": "google/auth",
+            "version": "v1.20.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/googleapis/google-auth-library-php.git",
+                "reference": "3a1a5c5b5a3006b3d05256d5df7066f37252112c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/3a1a5c5b5a3006b3d05256d5df7066f37252112c",
+                "reference": "3a1a5c5b5a3006b3d05256d5df7066f37252112c",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "firebase/php-jwt": "~5.0",
+                "guzzlehttp/guzzle": "^6.2.1|^7.0",
+                "guzzlehttp/psr7": "^1.7|^2.0",
+                "php": "^7.1||^8.0",
+                "psr/cache": "^1.0|^2.0|^3.0",
+                "psr/http-message": "^1.0"
+            },
+            "require-dev": {
+                "guzzlehttp/promises": "0.1.1|^1.3",
+                "kelvinmo/simplejwt": "^0.2.5|^0.5.1",
+                "phpseclib/phpseclib": "^2.0.31",
+                "phpspec/prophecy-phpunit": "^1.1",
+                "phpunit/phpunit": "^7.5||^8.5",
+                "sebastian/comparator": ">=1.2.3",
+                "squizlabs/php_codesniffer": "^3.5"
+            },
+            "suggest": {
+                "phpseclib/phpseclib": "May be used in place of OpenSSL for signing strings or for token management. Please require version ^2."
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Google\\Auth\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "description": "Google Auth Library for PHP",
+            "homepage": "http://github.com/google/google-auth-library-php",
+            "keywords": [
+                "Authentication",
+                "google",
+                "oauth2"
+            ],
+            "support": {
+                "docs": "https://googleapis.github.io/google-auth-library-php/main/",
+                "issues": "https://github.com/googleapis/google-auth-library-php/issues",
+                "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.20.1"
+            },
+            "time": "2022-04-12T15:24:52+00:00"
+        },
+        {
+            "name": "google/common-protos",
+            "version": "v3.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/googleapis/common-protos-php.git",
+                "reference": "168393c1d19297fde8d5c875a540ba92c5aa970c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/googleapis/common-protos-php/zipball/168393c1d19297fde8d5c875a540ba92c5aa970c",
+                "reference": "168393c1d19297fde8d5c875a540ba92c5aa970c",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "google/protobuf": "^3.6.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^4.8.36||^8.5",
+                "sami/sami": "*"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Google\\": "src",
+                    "GPBMetadata\\Google\\": "metadata"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "description": "Google API Common Protos for PHP",
+            "homepage": "https://github.com/googleapis/common-protos-php",
+            "keywords": [
+                "google"
+            ],
+            "support": {
+                "issues": "https://github.com/googleapis/common-protos-php/issues",
+                "source": "https://github.com/googleapis/common-protos-php/tree/v3.0.0"
+            },
+            "time": "2022-07-29T20:50:18+00:00"
+        },
+        {
+            "name": "google/gax",
+            "version": "v1.17.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/googleapis/gax-php.git",
+                "reference": "bb8d95187dcfebe04a40d2de916951fa4942fc35"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/googleapis/gax-php/zipball/bb8d95187dcfebe04a40d2de916951fa4942fc35",
+                "reference": "bb8d95187dcfebe04a40d2de916951fa4942fc35",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "google/auth": "^1.18.0",
+                "google/common-protos": "^1.3.1||^2.0||^3.0",
+                "google/grpc-gcp": "^0.2",
+                "google/longrunning": "^0.2",
+                "google/protobuf": "^3.21.4",
+                "grpc/grpc": "^1.13",
+                "guzzlehttp/promises": "^1.3",
+                "guzzlehttp/psr7": "^1.7.0||^2",
+                "php": ">=7.0"
+            },
+            "conflict": {
+                "ext-protobuf": "<3.7.0"
+            },
+            "require-dev": {
+                "phpspec/prophecy": "^1.10",
+                "phpunit/phpunit": "^5.5||^8.5",
+                "squizlabs/php_codesniffer": "3.*",
+                "yoast/phpunit-polyfills": "^1.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Google\\ApiCore\\": "src",
+                    "GPBMetadata\\ApiCore\\": "metadata/ApiCore"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "description": "Google API Core for PHP",
+            "homepage": "https://github.com/googleapis/gax-php",
+            "keywords": [
+                "google"
+            ],
+            "support": {
+                "issues": "https://github.com/googleapis/gax-php/issues",
+                "source": "https://github.com/googleapis/gax-php/tree/v1.17.0"
+            },
+            "time": "2022-09-12T15:22:54+00:00"
+        },
+        {
+            "name": "google/grpc-gcp",
+            "version": "v0.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/GoogleCloudPlatform/grpc-gcp-php.git",
+                "reference": "2465c2273e11ada1e95155aa1e209f3b8f03c314"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/GoogleCloudPlatform/grpc-gcp-php/zipball/2465c2273e11ada1e95155aa1e209f3b8f03c314",
+                "reference": "2465c2273e11ada1e95155aa1e209f3b8f03c314",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "google/auth": "^1.3",
+                "google/protobuf": "^v3.3.0",
+                "grpc/grpc": "^v1.13.0",
+                "php": ">=5.5.0",
+                "psr/cache": "^1.0.1||^2.0.0||^3.0.0"
+            },
+            "require-dev": {
+                "google/cloud-spanner": "^1.7",
+                "phpunit/phpunit": "4.8.36"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Grpc\\Gcp\\": "src/"
+                },
+                "classmap": [
+                    "src/generated/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "description": "gRPC GCP library for channel management",
+            "support": {
+                "issues": "https://github.com/GoogleCloudPlatform/grpc-gcp-php/issues",
+                "source": "https://github.com/GoogleCloudPlatform/grpc-gcp-php/tree/v0.2.0"
+            },
+            "time": "2021-09-27T22:57:18+00:00"
+        },
+        {
+            "name": "google/longrunning",
+            "version": "v0.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/googleapis/php-longrunning.git",
+                "reference": "5b7500eede9d6b18ef038bef0b5449cbf085e1d6"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/googleapis/php-longrunning/zipball/5b7500eede9d6b18ef038bef0b5449cbf085e1d6",
+                "reference": "5b7500eede9d6b18ef038bef0b5449cbf085e1d6",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require-dev": {
+                "google/gax": "^1.13.0",
+                "phpunit/phpunit": "^4.8|^5.0|^8.0"
+            },
+            "type": "library",
+            "extra": {
+                "component": {
+                    "id": "longrunning",
+                    "path": "LongRunning",
+                    "entry": null,
+                    "target": "googleapis/php-longrunning"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Google\\LongRunning\\": "src/LongRunning",
+                    "Google\\ApiCore\\LongRunning\\": "src/ApiCore/LongRunning",
+                    "GPBMetadata\\Google\\Longrunning\\": "metadata/Longrunning"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "description": "Google LongRunning Client for PHP",
+            "support": {
+                "source": "https://github.com/googleapis/php-longrunning/tree/v0.2.0"
+            },
+            "time": "2022-08-05T00:41:21+00:00"
+        },
+        {
+            "name": "google/protobuf",
+            "version": "v3.21.8",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/protocolbuffers/protobuf-php.git",
+                "reference": "6377c52338fd18634dddf6becfde94b8b16cd9f5"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/6377c52338fd18634dddf6becfde94b8b16cd9f5",
+                "reference": "6377c52338fd18634dddf6becfde94b8b16cd9f5",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.0.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": ">=5.0.0"
+            },
+            "suggest": {
+                "ext-bcmath": "Need to support JSON deserialization"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Google\\Protobuf\\": "src/Google/Protobuf",
+                    "GPBMetadata\\Google\\Protobuf\\": "src/GPBMetadata/Google/Protobuf"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "description": "proto library for PHP",
+            "homepage": "https://developers.google.com/protocol-buffers/",
+            "keywords": [
+                "proto"
+            ],
+            "support": {
+                "source": "https://github.com/protocolbuffers/protobuf-php/tree/v3.21.8"
+            },
+            "time": "2022-10-18T18:22:00+00:00"
+        },
+        {
+            "name": "grpc/grpc",
+            "version": "1.42.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/grpc/grpc-php.git",
+                "reference": "9fa44f104cb92e924d4da547323a97f3d8aca6d4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/grpc/grpc-php/zipball/9fa44f104cb92e924d4da547323a97f3d8aca6d4",
+                "reference": "9fa44f104cb92e924d4da547323a97f3d8aca6d4",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.0.0"
+            },
+            "require-dev": {
+                "google/auth": "^v1.3.0"
+            },
+            "suggest": {
+                "ext-protobuf": "For better performance, install the protobuf C extension.",
+                "google/protobuf": "To get started using grpc quickly, install the native protobuf library."
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Grpc\\": "src/lib/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "description": "gRPC library for PHP",
+            "homepage": "https://grpc.io",
+            "keywords": [
+                "rpc"
+            ],
+            "support": {
+                "source": "https://github.com/grpc/grpc-php/tree/v1.42.0"
+            },
+            "time": "2021-11-19T08:13:51+00:00"
+        },
         {
             "name": "guzzle/guzzle",
             "version": "v3.9.3",
@@ -4651,6 +5027,56 @@
             "description": "thinkphp template driver",
             "time": "2019-10-07T12:23:10+00:00"
         },
+        {
+            "name": "volcengine/volc-sdk-php",
+            "version": "v1.0.54",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/volcengine/volc-sdk-php.git",
+                "reference": "a8f818e60faab207c794d9bad0cf161ceb0a3c4b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/volcengine/volc-sdk-php/zipball/a8f818e60faab207c794d9bad0cf161ceb0a3c4b",
+                "reference": "a8f818e60faab207c794d9bad0cf161ceb0a3c4b",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "ext-json": "*",
+                "ext-openssl": "*",
+                "google/gax": "*",
+                "google/protobuf": "*",
+                "guzzlehttp/guzzle": "*",
+                "php": ">=7.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Test\\": "tests/",
+                    "Volc\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "bytedance"
+                }
+            ],
+            "support": {
+                "issues": "https://github.com/volcengine/volc-sdk-php/issues",
+                "source": "https://github.com/volcengine/volc-sdk-php/tree/v1.0.54"
+            },
+            "time": "2022-11-11T07:42:29+00:00"
+        },
         {
             "name": "workerman/channel",
             "version": "v1.0.5",
@@ -4882,5 +5308,5 @@
         "ext-mbstring": "*"
     },
     "platform-dev": [],
-    "plugin-api-version": "2.2.0"
+    "plugin-api-version": "2.3.0"
 }

+ 80 - 0
crmeb/crmeb/utils/Translate.php

@@ -0,0 +1,80 @@
+<?php
+
+namespace crmeb\utils;
+
+use crmeb\exceptions\ApiException;
+use Volc\Base\V4Curl;
+
+/**
+ * 机器翻译
+ */
+class Translate extends V4Curl
+{
+    protected $apiList = [
+        "LangDetect" => [
+            "url" => "/",
+            "method" => "post",
+            "config" => [
+                "query" => [
+                    "Action" => "LangDetect",
+                    "Version" => "2020-06-01",
+                ],
+            ],
+        ],
+        "TranslateText" => [
+            "url" => "/",
+            "method" => "post",
+            "config" => [
+                "query" => [
+                    "Action" => "TranslateText",
+                    "Version" => "2020-06-01",
+                ],
+            ],
+        ],
+    ];
+
+    protected function getConfig(string $region)
+    {
+        return [
+            "host" => "https://open.volcengineapi.com",
+            "config" => [
+                "timeout" => 5.0,
+                "headers" => [
+                    "Accept" => "application/json"
+                ],
+                "v4_credentials" => [
+                    "region" => "cn-north-1",
+                    "service" => "translate",
+                ],
+            ],
+        ];
+    }
+
+    public function langDetect(array $textList): array
+    {
+        $req = array('TextList' => $textList);
+        try {
+            $resp = $this->request('LangDetect', ['json' => $req]);
+        } catch (\Throwable $e) {
+            throw $e;
+        }
+        if ($resp->getStatusCode() != 200) {
+            throw new ApiException("failed to detect language: status_code=%d, resp=%s", $resp->getStatusCode(), $resp->getBody());
+        }
+        return json_decode($resp->getBody()->getContents(), true)["DetectedLanguageList"];
+    }
+
+    public function translateText(string $sourceLanguage, string $targetLanguage, array $textList): array
+    {
+        $req = array('SourceLanguage' => $sourceLanguage, 'TargetLanguage' => $targetLanguage, 'TextList' => $textList);
+        try {
+            $resp = $this->request('TranslateText', ['json' => $req]);
+        } catch (\Throwable $e) {
+            throw $e;
+        }
+        if ($resp->getStatusCode() != 200) {
+            throw new ApiException("failed to translate: status_code=%d, resp=%s", $resp->getStatusCode(), $resp->getBody());
+        }
+        return json_decode($resp->getBody()->getContents(), true)["TranslationList"];
+    }
+}

Різницю між файлами не показано, бо вона завелика
+ 1 - 1
crmeb/public/admin/css/app.b5aec2df.css


BIN
crmeb/public/admin/css/app.775d8f4a.css.gz


BIN
crmeb/public/admin/css/app.b5aec2df.css.gz


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
crmeb/public/admin/css/chunk-28a4367e.603cb5cb.css


+ 0 - 1
crmeb/public/admin/css/chunk-02873ba0.294f5336.css

@@ -1 +0,0 @@
-.code[data-v-3509985e]{position:relative}.QRpic[data-v-3509985e]{width:180px}.QRpic img[data-v-3509985e]{width:100%;height:100%}

+ 1 - 0
crmeb/public/admin/css/chunk-02ca0c38.b36702c6.css

@@ -0,0 +1 @@
+.ivu-tabs[data-v-a5d1e788]{margin-bottom:18px}.fromBox[data-v-a5d1e788]{min-height:600px}

Різницю між файлами не показано, бо вона завелика
+ 1 - 1
crmeb/public/admin/css/chunk-803262aa.c8d5f71a.css


+ 1 - 0
crmeb/public/admin/css/chunk-07e7639e.812d2100.css

@@ -0,0 +1 @@
+.tabBox_img[data-v-d6bb0688]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-d6bb0688]{width:100%;height:100%}

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
crmeb/public/admin/css/chunk-0814bf2b.c91d4a3c.css


BIN
crmeb/public/admin/css/chunk-0814bf2b.c91d4a3c.css.gz


+ 0 - 1
crmeb/public/admin/css/chunk-0af9cd42.f885f7a1.css

@@ -1 +0,0 @@
-.tableBox[data-v-62cf58b4] .ivu-table-header table{border:none!important}

Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-0d5a0daa.7a05f9ef.css


+ 0 - 1
crmeb/public/admin/css/chunk-10148a87.091a3745.css

@@ -1 +0,0 @@
-.trees-coadd[data-v-4e933e19]{width:100%;height:385px}.trees-coadd .scollhide[data-v-4e933e19]{width:100%;height:100%;overflow-x:hidden;overflow-y:scroll}.scollhide[data-v-4e933e19]::-webkit-scrollbar{display:none}

Різницю між файлами не показано, бо вона завелика
+ 1 - 1
crmeb/public/admin/css/chunk-0869dfc5.6cbad704.css


+ 0 - 1
crmeb/public/admin/css/chunk-11b76a7e.1affe12a.css

@@ -1 +0,0 @@
-.tabBox_img[data-v-2bec1356]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-2bec1356]{width:100%;height:100%}

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
crmeb/public/admin/css/chunk-124c1be4.c486543b.css


Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-126ca984.f327b292.css


+ 0 - 1
crmeb/public/admin/css/chunk-14070da6.77e67292.css

@@ -1 +0,0 @@
-.input[data-v-32e4e24c]{width:400px}

+ 0 - 1
crmeb/public/admin/css/chunk-15ee830b.332cfb47.css

@@ -1 +0,0 @@
-.tabBox_img[data-v-613b939a]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-613b939a]{width:100%;height:100%}

Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-1a90efc7.051d6872.css


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
crmeb/public/admin/css/chunk-1ab64b57.659a336b.css


+ 0 - 1
crmeb/public/admin/css/chunk-1c3cfae6.ffb5cf4d.css

@@ -1 +0,0 @@
-.tabBox_img[data-v-9dabc0a2]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-9dabc0a2]{width:100%;height:100%}

+ 1 - 0
crmeb/public/admin/css/chunk-1dc67ed4.a1f0b1ed.css

@@ -0,0 +1 @@
+.tabBox_img[data-v-35cf4bf8]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-35cf4bf8]{width:100%;height:100%}.prize[data-v-35cf4bf8]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.prize img[data-v-35cf4bf8]{width:36px;height:36px;border-radius:4px;cursor:pointer;margin-right:5px}.trips[data-v-35cf4bf8]{color:#ccc}

Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-1e2d10e4.f3b00c46.css


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
crmeb/public/admin/css/chunk-1ec5a8a6.90af9357.css


+ 0 - 1
crmeb/public/admin/css/chunk-1ed0ed93.20acb6df.css

@@ -1 +0,0 @@
-.QRpic[data-v-76281ca9]{width:180px;height:180px}.QRpic img[data-v-76281ca9]{width:100%;height:100%}

+ 1 - 0
crmeb/public/admin/css/chunk-1f894614.c0a99313.css

@@ -0,0 +1 @@
+.tabBox_img[data-v-160a2f5e]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-160a2f5e]{width:100%;height:100%}

Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-236b5fe8.4d29a483.css


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
crmeb/public/admin/css/chunk-245ca332.97d49f63.css


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
crmeb/public/admin/css/chunk-84e22458.392fe364.css


+ 1 - 0
crmeb/public/admin/css/chunk-295998af.11234701.css

@@ -0,0 +1 @@
+.tabBox_img[data-v-53c95776]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-53c95776]{width:100%;height:100%}

+ 1 - 0
crmeb/public/admin/css/chunk-29e98b5f.0357c398.css

@@ -0,0 +1 @@
+.tabBox_img[data-v-3abfb812]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-3abfb812]{width:100%;height:100%}

+ 1 - 0
crmeb/public/admin/css/chunk-2b4d3374.62a7578b.css

@@ -0,0 +1 @@
+.tabBox_img[data-v-ea11ee44]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-ea11ee44]{width:100%;height:100%}

Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-2ca25cc1.6202bb49.css


BIN
crmeb/public/admin/css/chunk-2ca25cc1.6202bb49.css.gz


Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-2d6b1a6c.42690298.css


+ 0 - 1
crmeb/public/admin/css/chunk-2dfd8e5e.24aa46ff.css

@@ -1 +0,0 @@
-[data-v-1d6e6942] .ivu-tag-cyan .ivu-tag-text{color:#19be6b!important}.ivu-tag-cyan[data-v-1d6e6942]{background:rgba(25,190,170,.1);border-color:#19be6b!important}.tabBox_img[data-v-1d6e6942]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-1d6e6942]{width:100%;height:100%}

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
crmeb/public/admin/css/chunk-2e3a27a8.75f96eb7.css


+ 1 - 0
crmeb/public/admin/css/chunk-2e90bd4b.9805da2f.css

@@ -0,0 +1 @@
+.input[data-v-7c5354e2]{width:400px}

+ 1 - 0
crmeb/public/admin/css/chunk-2eae1aba.e46873bd.css

@@ -0,0 +1 @@
+[data-v-49837f74] .ivu-tag-cyan .ivu-tag-text{color:#19be6b!important}.ivu-tag-cyan[data-v-49837f74]{background:rgba(25,190,170,.1);border-color:#19be6b!important}.tabBox_img[data-v-49837f74]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-49837f74]{width:100%;height:100%}

+ 1 - 1
crmeb/public/admin/css/chunk-55c06f49.5f5e25a1.css

@@ -1 +1 @@
-.v-transfer-dom[data-v-671a3e20] .ivu-modal-content-drag{z-index:2!important}.radio[data-v-671a3e20]{margin-bottom:14px}.radio[data-v-671a3e20] .name{width:125px;text-align:right;padding-right:12px}.ivu-col:first-of-type .ivu-form-item .ivu-form-item-label[data-v-91b2cca8]{width:80px!important}.ivu-col:first-of-type .ivu-form-item .ivu-form-item-content[data-v-91b2cca8]{margin-left:80px!important}
+.v-transfer-dom[data-v-671a3e20] .ivu-modal-content-drag{z-index:2!important}.radio[data-v-671a3e20]{margin-bottom:14px}.radio[data-v-671a3e20] .name{width:125px;text-align:right;padding-right:12px}.ivu-col:first-of-type .ivu-form-item .ivu-form-item-label[data-v-bc7e515e]{width:80px!important}.ivu-col:first-of-type .ivu-form-item .ivu-form-item-content[data-v-bc7e515e]{margin-left:80px!important}

Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-33a99382.c16ae7ba.css


+ 1 - 0
crmeb/public/admin/css/chunk-33cdb792.4ad5fee0.css

@@ -0,0 +1 @@
+.box[data-v-a53a6202]{width:100%;background:#fff}

+ 1 - 1
crmeb/public/admin/css/chunk-c2c68508.484b44db.css

@@ -1 +1 @@
-.v-transfer-dom[data-v-671a3e20] .ivu-modal-content-drag{z-index:2!important}.radio[data-v-671a3e20]{margin-bottom:14px}.radio[data-v-671a3e20] .name{width:125px;text-align:right;padding-right:12px}.treeSel[data-v-468419d8] .ivu-select-dropdown-list{padding:0 10px!important;-webkit-box-sizing:border-box;box-sizing:border-box}.tabBox_img[data-v-468419d8]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-468419d8]{width:100%;height:100%}
+.v-transfer-dom[data-v-671a3e20] .ivu-modal-content-drag{z-index:2!important}.radio[data-v-671a3e20]{margin-bottom:14px}.radio[data-v-671a3e20] .name{width:125px;text-align:right;padding-right:12px}.treeSel[data-v-70052f0a] .ivu-select-dropdown-list{padding:0 10px!important;-webkit-box-sizing:border-box;box-sizing:border-box}.tabBox_img[data-v-70052f0a]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-70052f0a]{width:100%;height:100%}

crmeb/public/admin/css/chunk-d0943fb2.e5498d43.css → crmeb/public/admin/css/chunk-35b7fede.e5498d43.css


+ 1 - 0
crmeb/public/admin/css/chunk-35bfa462.f7644335.css

@@ -0,0 +1 @@
+.tabBox_img[data-v-368237e0]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-368237e0]{width:100%;height:100%}

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
crmeb/public/admin/css/chunk-36d4002a.30ad3682.css


Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-3967fab8.cc1dabb9.css


Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-3afc7a10.f56b1863.css


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
crmeb/public/admin/css/chunk-3c10a4af.38eccd70.css


+ 0 - 1
crmeb/public/admin/css/chunk-3fef49de.d957eec0.css

@@ -1 +0,0 @@
-.fa[data-v-2f4de818]{color:#0a6aa1;display:block}.sheng[data-v-2f4de818]{color:red;display:block}.tabBox_img[data-v-2f4de818]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-2f4de818]{width:100%;height:100%}

Різницю між файлами не показано, бо вона завелика
+ 1 - 1
crmeb/public/admin/css/chunk-4c8b2a2f.d9136047.css


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
crmeb/public/admin/css/chunk-65e43b7e.311815b8.css


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
crmeb/public/admin/css/chunk-6bf06aec.4e9fb28f.css


BIN
crmeb/public/admin/css/chunk-6bf06aec.4e9fb28f.css.gz


+ 0 - 1
crmeb/public/admin/css/chunk-43337cc8.60181094.css

@@ -1 +0,0 @@
-.btn_box[data-v-0f6b1266] .ivu-form-item-content{margin-left:0!important}

+ 0 - 1
crmeb/public/admin/css/chunk-45281dc6.fe4ffca2.css

@@ -1 +0,0 @@
-[data-v-0b70a5b2] .ivu-modal{top:20%!important}[data-v-0b70a5b2] .ivu-input{width:80px}

Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-46a01148.b954d146.css


+ 1 - 0
crmeb/public/admin/css/chunk-4790b9f5.0dca26a3.css

@@ -0,0 +1 @@
+[data-v-718668b8] .ivu-form-item-content{line-height:unset!important}

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
crmeb/public/admin/css/chunk-47e94014.1871f329.css


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
crmeb/public/admin/css/chunk-63dabe45.56dc4700.css


+ 1 - 0
crmeb/public/admin/css/chunk-4a6e0eaf.fa0dfb87.css

@@ -0,0 +1 @@
+.clear_tit[data-v-e6471a22]{margin-top:150px}

+ 0 - 1
crmeb/public/admin/css/chunk-4caf6556.3b0c7950.css

@@ -1 +0,0 @@
-.input[data-v-934e33c8]{width:400px}

Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-4e744958.87943f3c.css


+ 0 - 1
crmeb/public/admin/css/chunk-4ee9aa33.76ba2ee1.css

@@ -1 +0,0 @@
-.clear_tit[data-v-1c4ef79c]{margin-top:150px}

Різницю між файлами не показано, бо вона завелика
+ 1 - 1
crmeb/public/admin/css/chunk-0d6c14e8.7e487d1d.css


+ 0 - 1
crmeb/public/admin/css/chunk-50c64bee.e9a03fde.css

@@ -1 +0,0 @@
-.tabBox_img[data-v-98cad0ac]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-98cad0ac]{width:100%;height:100%}

Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-52028903.7a68a769.css


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
crmeb/public/admin/css/chunk-53c7abcb.8f568174.css


+ 1 - 0
crmeb/public/admin/css/chunk-542425bb.f3be83dc.css

@@ -0,0 +1 @@
+.QRpic[data-v-5dd18fe8]{width:180px;height:180px}.QRpic img[data-v-5dd18fe8]{width:100%;height:100%}

+ 1 - 0
crmeb/public/admin/css/chunk-55970e0b.c7513d37.css

@@ -0,0 +1 @@
+[data-v-b2a93e24] .ivu-tag-cyan .ivu-tag-text{color:#19be6b!important}.ivu-tag-cyan[data-v-b2a93e24]{background:rgba(25,190,170,.1);border-color:#19be6b!important}.tabBox_img[data-v-b2a93e24]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-b2a93e24]{width:100%;height:100%}

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
crmeb/public/admin/css/chunk-55b679e9.0475462e.css


Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-580e6e94.0bb6488c.css


+ 1 - 0
crmeb/public/admin/css/chunk-58c461e8.544d1dce.css

@@ -0,0 +1 @@
+.code[data-v-1c1aab0b]{position:relative}.QRpic[data-v-1c1aab0b]{width:180px}.QRpic img[data-v-1c1aab0b]{width:100%;height:100%}

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
crmeb/public/admin/css/chunk-5cc34f42.f15c944e.css


BIN
crmeb/public/admin/css/chunk-5cc34f42.f15c944e.css.gz


+ 0 - 1
crmeb/public/admin/css/chunk-5e3ade6c.78048a43.css

@@ -1 +0,0 @@
-.reset[data-v-0ab81074]{margin-left:10px}.form-content[data-v-0ab81074]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.form-content[data-v-0ab81074],.input-button[data-v-0ab81074]{display:-webkit-box;display:-ms-flexbox;display:flex}w .trip[data-v-0ab81074]{color:#aaa;line-height:20px}.setting-style[data-v-0ab81074] .ivu-form-item{margin-bottom:14px}

+ 0 - 1
crmeb/public/admin/css/chunk-5e75d41e.d94f01bc.css

@@ -1 +0,0 @@
-[data-v-67db297a] .ivu-form-item-content{line-height:unset!important}

Різницю між файлами не показано, бо вона завелика
+ 1 - 1
crmeb/public/admin/css/chunk-6a965ca9.f8d438e3.css


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
crmeb/public/admin/css/chunk-5ef03c2f.3bb2c7be.css


+ 0 - 1
crmeb/public/admin/css/chunk-611e73b1.39e846bb.css

@@ -1 +0,0 @@
-.tabBox_img[data-v-1f98752f]{width:36px;height:36px;border-radius:4px;cursor:pointer}.tabBox_img img[data-v-1f98752f]{width:100%;height:100%}

Різницю між файлами не показано, бо вона завелика
+ 1 - 1
crmeb/public/admin/css/chunk-0ee3b9f5.6fc25c10.css


+ 0 - 1
crmeb/public/admin/css/chunk-630fbf30.4d2243da.css

@@ -1 +0,0 @@
-.ivu-tabs[data-v-7d220ec8]{margin-bottom:18px}.fromBox[data-v-7d220ec8]{min-height:600px}

Різницю між файлами не показано, бо вона завелика
+ 0 - 1
crmeb/public/admin/css/chunk-64b9eb34.abc9ed34.css


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
crmeb/public/admin/css/chunk-6bc497da.09595a04.css


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
crmeb/public/admin/css/chunk-680149f1.0fa23273.css


+ 0 - 0
crmeb/public/admin/css/chunk-68cb56e9.99b1f5ce.css


Деякі файли не було показано, через те що забагато файлів було змінено