Browse Source

新增桌面分组,新增鼠标滚动逻辑,切换动画,优化大量UI和功能

tushan 1 year ago
parent
commit
7cbdf2a41d
100 changed files with 427 additions and 57 deletions
  1. 2 1
      .gitignore
  2. 1 1
      Dockerfile
  3. 3 2
      app/BaseController.php
  4. 1 1
      app/controller/Admin.php
  5. 52 7
      app/controller/Api.php
  6. 4 3
      app/controller/Config.php
  7. 51 6
      app/controller/Index.php
  8. 1 2
      app/controller/Link.php
  9. 11 4
      app/controller/LinkStore.php
  10. 16 2
      app/controller/SearchEngine.php
  11. 11 2
      app/controller/Setting.php
  12. 146 0
      app/controller/Wallpaper.php
  13. 4 1
      app/controller/admin/Index.php
  14. 9 12
      app/model/CardModel.php
  15. 0 1
      app/model/SettingModel.php
  16. 11 0
      app/model/WallpaperModel.php
  17. 1 1
      auto_install.json
  18. 1 1
      config/log.php
  19. 1 1
      config/route.php
  20. 6 3
      docker/install.sh
  21. 2 2
      docker/start.sh
  22. 10 1
      extend/Axios.php
  23. 1 1
      extend/PluginStaticSystem.php
  24. 1 1
      extend/Upgrade2.php
  25. 21 1
      install.sql
  26. 1 0
      public/dist/assets/about.1711290598880.css
  27. 1 0
      public/dist/assets/about.1711290598880.js
  28. BIN
      public/dist/assets/add.1711290598880.png
  29. 1 0
      public/dist/assets/add.1711290598880.svg
  30. 1 0
      public/dist/assets/addCard.1711290598880.css
  31. 1 0
      public/dist/assets/addCard.1711290598880.js
  32. 1 0
      public/dist/assets/addSearchEngine.1711290598880.css
  33. 0 0
      public/dist/assets/addSearchEngine.1711290598880.js
  34. 1 0
      public/dist/assets/addicon.1711290598880.css
  35. 0 0
      public/dist/assets/addicon.1711290598880.js
  36. 0 0
      public/dist/assets/appSide.1711290598880.css
  37. 0 0
      public/dist/assets/appSide.1711290598880.js
  38. 1 0
      public/dist/assets/apps.1711290598880.svg
  39. 1 0
      public/dist/assets/arc.1711290598880.svg
  40. 0 0
      public/dist/assets/auth.1711290598880.svg
  41. BIN
      public/dist/assets/avatar.1711290598880.png
  42. 1 0
      public/dist/assets/background.1711290598880.css
  43. 0 0
      public/dist/assets/background.1711290598880.js
  44. BIN
      public/dist/assets/bg4.1711290598880.png
  45. 1 0
      public/dist/assets/browserImport.1711290598880.js
  46. 1 0
      public/dist/assets/class.1711290598880.svg
  47. 0 0
      public/dist/assets/clienthome.1711290598880.svg
  48. 1 0
      public/dist/assets/close.1711290598880.svg
  49. 1 0
      public/dist/assets/controller.1711290598880.css
  50. 0 0
      public/dist/assets/controller.1711290598880.js
  51. 1 0
      public/dist/assets/custom.1711290598880.css
  52. 0 0
      public/dist/assets/custom.1711290598880.js
  53. 1 0
      public/dist/assets/del.1711290598880.svg
  54. 1 0
      public/dist/assets/deskTopMouse.1711290598880.css
  55. 1 0
      public/dist/assets/deskTopMouse.1711290598880.js
  56. 0 0
      public/dist/assets/dialog.1711290598880.js
  57. 0 0
      public/dist/assets/dock.1711290598880.svg
  58. 1 0
      public/dist/assets/edit.1711290598880.svg
  59. BIN
      public/dist/assets/favicon.1711290598880.png
  60. BIN
      public/dist/assets/gonganbeian.1711290598880.ico
  61. 1 0
      public/dist/assets/help.1711290598880.css
  62. 0 0
      public/dist/assets/help.1711290598880.js
  63. 1 0
      public/dist/assets/href.1711290598880.js
  64. 0 0
      public/dist/assets/iconGroup.1711290598880.css
  65. 0 0
      public/dist/assets/iconGroup.1711290598880.js
  66. 1 0
      public/dist/assets/iconGroupBox.1711290598880.css
  67. 0 0
      public/dist/assets/iconGroupBox.1711290598880.js
  68. 1 0
      public/dist/assets/index.1711290598880.css
  69. 0 0
      public/dist/assets/index.1711290598880.js
  70. 1 0
      public/dist/assets/index.17112905988802.css
  71. 0 0
      public/dist/assets/index.17112905988802.js
  72. 0 0
      public/dist/assets/index.17112905988803.css
  73. 0 0
      public/dist/assets/index.17112905988803.js
  74. 0 0
      public/dist/assets/index.17112905988804.css
  75. 0 0
      public/dist/assets/index.17112905988804.js
  76. 0 0
      public/dist/assets/index.17112905988805.css
  77. 0 0
      public/dist/assets/index.17112905988805.js
  78. 0 0
      public/dist/assets/jiesan.1711290598880.svg
  79. 13 0
      public/dist/assets/jquery.1711290598880.js
  80. 0 0
      public/dist/assets/kong.1711290598880.svg
  81. 1 0
      public/dist/assets/kongzhi.1711290598880.svg
  82. BIN
      public/dist/assets/lajitong.1711290598880.png
  83. 1 0
      public/dist/assets/layout.1711290598880.css
  84. 0 0
      public/dist/assets/layout.1711290598880.js
  85. 1 0
      public/dist/assets/layout.1711290598880.svg
  86. 1 0
      public/dist/assets/light.1711290598880.svg
  87. 1 0
      public/dist/assets/linkstore.1711290598880.css
  88. 0 0
      public/dist/assets/linkstore.1711290598880.js
  89. 1 0
      public/dist/assets/mouseMenu.1711290598880.css
  90. 0 0
      public/dist/assets/mouseMenu.1711290598880.js
  91. 1 0
      public/dist/assets/net.1711290598880.js
  92. 1 0
      public/dist/assets/net.1711290598880.svg
  93. 1 0
      public/dist/assets/onlineMall.1711290598880.css
  94. 0 0
      public/dist/assets/onlineMall.1711290598880.js
  95. 1 0
      public/dist/assets/open.1711290598880.svg
  96. 1 0
      public/dist/assets/openType.1711290598880.css
  97. 1 0
      public/dist/assets/openType.1711290598880.js
  98. 1 0
      public/dist/assets/right.1711290598880.svg
  99. 9 0
      public/dist/assets/search.1711290598880.svg
  100. 1 0
      public/dist/assets/searchEngine.1711290598880.css

+ 2 - 1
.gitignore

@@ -12,4 +12,5 @@ public/.user.ini
 public/images
 public/installed.lock
 .user.ini
-/mtab
+/mtab
+mtab.zip

+ 1 - 1
Dockerfile

@@ -17,7 +17,7 @@ COPY . /www
 RUN chmod +x /install.sh && /install.sh && rm /install.sh
 
 
-EXPOSE 6379 80 443 8080
+EXPOSE 80
 
 CMD ["./start.sh"]
 

+ 3 - 2
app/BaseController.php

@@ -68,6 +68,7 @@ class BaseController
     // 初始化
     protected function initialize()
     {
+
     }
 
     //系统设置项
@@ -98,8 +99,8 @@ class BaseController
      */
     public function getUser(bool $must = false)
     {
-        $id = $this->request->header("Userid", $this->request->cookie('Userid',''));
-        $token = $this->request->header("Token", $this->request->cookie('Token',''));
+        $id = $this->request->header("Userid", $this->request->cookie('Userid', ''));
+        $token = $this->request->header("Token", $this->request->cookie('Token', ''));
         if ($id && $token) {
             if ($this->user_temp) return $this->user_temp;
             $user = TokenModel::where("user_id", $id)->where('token', $token)->field("user_id,token,create_time")->find();

+ 1 - 1
app/controller/Admin.php

@@ -191,7 +191,7 @@ class Admin extends BaseController
         $this->getAdmin();
         $user_id = $this->request->post('user_id');
         if ($user_id && !is_demo_mode()) {
-            $list = TokenModel::where("user_id", $user_id)->field('user_id,FROM_UNIXTIME(create_time) as create_time,user_agent,ip')->order('id', 'desc')->limit(100)->select()->toArray();
+            $list = TokenModel::where("user_id", $user_id)->field('user_id,FROM_UNIXTIME(create_time) as create_time,user_agent,ip')->order('create_time', 'desc')->limit(100)->select()->toArray();
             return $this->success('', $list);
         }
         return $this->success('', []);

+ 52 - 7
app/controller/Api.php

@@ -11,6 +11,7 @@ use GuzzleHttp\Exception\RequestException;
 use PHPHtmlParser\Dom;
 use think\facade\Cache;
 use think\facade\Filesystem;
+use think\facade\View;
 use think\helper\Str;
 
 class Api extends BaseController
@@ -24,18 +25,40 @@ class Api extends BaseController
         return $this->success("ok", [
             'email' => $this->Setting('email', ''),
             'qqGroup' => $this->Setting("qqGroup", ''),
+            'beianMps' => $this->Setting("beianMps", ''),
+            'copyright' => $this->Setting("copyright", ''),
             "recordNumber" => $this->Setting("recordNumber", ''),
             "auth" => $auth
         ]);
     }
 
-    public function background()
+    public function background(): \think\response\File
     {
-        $bg = $this->Setting('backgroundImage');
-        if ($bg) {
-            return redirect($bg, 302);
+        $config = $this->Setting('defaultTab', 'static/defaultTab.json', true);
+        if ($config) {
+            $fp = public_path() . $config;
+            if (file_exists($fp)) {
+                $file = file_get_contents($fp);
+                $json = json_decode($file, true);
+                if (isset($json['config']['theme']['backgroundImage'])) {
+                    $bg = $json['config']['theme']['backgroundImage'];
+                    $path = joinPath(public_path(), $bg);
+                    if (file_exists($path)) {
+                        return download($path, 'background')->mimeType(\PluginStaticSystem::mimeType($path))->force(false)->expire(60 * 60 * 24 * 3);
+                    }
+                }
+            }
+        }
+        return download("static/background.jpeg", "background.jpeg")->mimeType(\PluginStaticSystem::mimeType("static/background.jpeg"))->force(false)->expire(60 * 60 * 24 * 3);
+    }
+
+    function globalNotify()
+    {
+        $info = SettingModel::Config("globalNotify", false);
+        if ($info) {
+            return $this->success('ok', $info);
         }
-        return download("static/background.jpeg",);
+        return $this->error('empty');
     }
 
     //获取邮件验证码
@@ -47,7 +70,24 @@ class Api extends BaseController
             if (Cache::get('code' . $mail)) {
                 return $this->success("请勿频繁获取验证码");
             }
-            $status = \Mail::send($mail, "<h2>您的验证码是: <b style='color:#1d5cdc'>$code</b></h2>");
+            $k = SettingModel::Config('smtp_code_template', false);
+            if ($k === false || mb_strlen(trim($k)) == 0) {
+                $k = '
+                        <div style="border:1px #DEDEDE solid;border-top:3px #009944 solid;padding:25px;background-color:#FFF;">
+                            <div style="font-size:17px;font-weight:bold;">邮箱验证码</div>
+                            <div style="font-size:14px;line-height:36px;padding-top:15px;padding-bottom:15px;">
+                                尊敬的用户,您好!<br>
+                                您的验证码是:<b style="color: #1e9fff">{$code}</b>。5分钟内有效,请尽快验证。
+                            </div>
+                            <div style="line-height:15px;">
+                                此致
+                            </div>
+                        </div>
+                ';
+
+            }
+            $html = View::display($k, ['time' => date('Y-m-d H:i:s'), 'code' => $code]);
+            $status = \Mail::send($mail, $html);
             if ($status) {
                 Cache::set('code' . $mail, $code, 60);
                 return $this->success("发送成功");
@@ -198,7 +238,6 @@ class Api extends BaseController
                         }
                     }
                 } catch (\Exception $e) {
-
                 }
             }
             if (strlen($icon) > 0) {
@@ -305,4 +344,10 @@ class Api extends BaseController
         }
         return $this->error("not login");
     }
+
+    function ts()
+    {
+        $k = SettingModel::Config('smtp_code_template');
+        return View::display($k, ["time" => date("Y-m-d H:i:s"), 'code' => 123456]);
+    }
 }

+ 4 - 3
app/controller/Config.php

@@ -8,6 +8,7 @@ use app\BaseController;
 use app\model\ConfigModel;
 use app\model\SearchEngineModel;
 use app\model\UserSearchEngineModel;
+use stdClass;
 
 class Config extends BaseController
 {
@@ -46,10 +47,10 @@ class Config extends BaseController
                 $file = file_get_contents($fp);
                 $json = json_decode($file, true);
                 if (isset($json['config'])) {
-                    return $this->success('ok', $json['config']);
+                    return $this->success('noLogin', $json['config']);
                 }
             }
         }
-        return $this->error('no Config');
+        return $this->success('no Config', new stdClass());
     }
-}
+}

+ 51 - 6
app/controller/Index.php

@@ -4,8 +4,6 @@ namespace app\controller;
 
 use app\BaseController;
 use app\model\SettingModel;
-use DateTime;
-use think\facade\Cache;
 use think\facade\View;
 use think\Request;
 
@@ -18,19 +16,66 @@ class Index extends BaseController
         View::assign("keywords", SettingModel::Config('keywords', 'Mtab书签'));
         View::assign("description", SettingModel::Config('description', 'Mtab书签'));
         View::assign("version", app_version);
-        View::assign("customHead", SettingModel::Config('customHead', ''));
+        $customHead = SettingModel::Config('customHead', '');
+        if (SettingModel::Config('pwa', 0) == '1') {
+            $customHead .= '<link rel="manifest" href="/manifest.json">';
+        }
+        View::assign("customHead", $customHead);
         View::assign("favicon", SettingModel::Config('logo', '/favicon.ico'));
         return View::fetch("dist/index.html");
     }
-
+    function all()
+    {
+        $app = app();
+        $ids = $this->request->post("ids", []);
+        $dt = [];
+        if (!in_array("link", $ids)) {
+            $dt['link'] = (new Link($app))->get()->getData()['data'];
+        }
+        if (!in_array("tabbar", $ids)) {
+            $dt['tabbar'] = (new Tabbar($app))->get()->getData()['data'];
+        }
+        if (!in_array("config", $ids)) {
+            $dt['config'] = (new Config($app))->get()->getData()['data'];
+        }
+        $dt['site'] = (new Api($app))->site()->getData()['data'];
+        return $this->success("ok", $dt);
+    }
     function favicon()
     {
         //从配置中获取logo
         $favicon = $this->Setting('logo');
         $file = public_path() . $favicon;
-        if (file_exists($file)&&is_file($file)) {
-            return download($file)->mimeType(\PluginStaticSystem::mimeType($file))->header(['Cache-Control' => 'max-age=68400']);
+        if (file_exists($file) && is_file($file)) {
+            return download($file)->mimeType(\PluginStaticSystem::mimeType($file))->force(false)->expire(60 * 60 * 24);
         }
         return redirect("/static/mtab.png");
     }
+
+    function manifest(): \think\response\Json
+    {
+        $manifest = [
+            'name' => SettingModel::Config('title', 'Mtab书签'),
+            'short_name' => SettingModel::Config('title', 'Mtab书签'),
+            'description' => SettingModel::Config('description', 'Mtab书签'),
+            'manifest_version' => 2,
+            'version' => app_version,
+            'theme_color' => SettingModel::Config('theme_color', '#141414'),
+            'icons' => [
+                [
+                    'src' => SettingModel::Config('logo', '/favicon.ico'),
+                    'sizes' => '144x144'
+                ]
+            ],
+            'display' => 'standalone',
+            'orientation' => 'portrait',
+            'start_url' => '/',
+            'scope' => '/',
+            'permissions' => [
+                'geolocation',
+                'notifications'
+            ]
+        ];
+        return json($manifest);
+    }
 }

+ 1 - 2
app/controller/Link.php

@@ -6,7 +6,6 @@ use app\BaseController;
 use app\model\ConfigModel;
 use app\model\HistoryModel;
 use app\model\LinkModel;
-use app\model\SettingModel;
 use app\model\TabbarModel;
 
 class Link extends BaseController
@@ -24,7 +23,7 @@ class Link extends BaseController
                 } else {
                     LinkModel::create(["user_id" => $user['user_id'], "link" => $link]);
                 }
-                HistoryModel::create(["user_id" => $user['user_id'], "link" => $link]); //历史记录备份,用于用户误操作复用途
+                HistoryModel::create(["user_id" => $user['user_id'], "link" => $link]); //历史记录备份,用于用户误操作复用途
                 return $this->success('ok');
             }
         }

+ 11 - 4
app/controller/LinkStore.php

@@ -43,13 +43,13 @@ class LinkStore extends BaseController
         if ($area && $area != '全部') {
             $list = $list->whereRaw("find_in_set('$area',area)");
         }
-        $list = $list->order($this->request->post('sort.prop','id'), $this->request->post('sort.order','asc'))->paginate($limit);
+        $list = $list->order($this->request->post('sort.prop', 'id'), $this->request->post('sort.order', 'asc'))->paginate($limit);
         return $this->success('ok', $list);
     }
 
     function getFolder(): \think\response\Json
     {
-        return $this->success("ok", LinkFolderModel::order("sort","desc")->select());
+        return $this->success("ok", LinkFolderModel::order("sort", "desc")->select());
     }
 
     private function update(): \think\response\Json
@@ -124,7 +124,6 @@ class LinkStore extends BaseController
                 $model = new LinkFolderModel();
                 $model->insert($form);
             }
-
         } else if ($type === 'del') {
             $id = $this->request->post('id');
             $result = LinkFolderModel::where("id", $id)->find();
@@ -145,9 +144,17 @@ class LinkStore extends BaseController
         $this->getAdmin();
         $ids = $this->request->post('link', []);
         $area = $this->request->post('area', '');
-        LinkStoreModel::where('id', 'in', $ids)->update(['area'=>$area]);
+        LinkStoreModel::where('id', 'in', $ids)->update(['area' => $area]);
         return $this->success('处理完毕!');
     }
+    function sortFolder()
+    {
+        $sort = (array)$this->request->post();
+        foreach ($sort as $key => $value) {
+            LinkFolderModel::where("id", $value['id'])->update(['sort' => $value['sort']]);
+        }
+        return $this->success("ok");
+    }
     public function del(): \think\response\Json
     {
         is_demo_mode(true);

+ 16 - 2
app/controller/SearchEngine.php

@@ -6,6 +6,7 @@ use app\BaseController;
 use app\model\LinkStoreModel;
 use app\model\SearchEngineModel;
 use app\model\UserSearchEngineModel;
+use think\facade\Cache;
 
 class SearchEngine extends BaseController
 {
@@ -39,6 +40,7 @@ class SearchEngine extends BaseController
                 $model = $model->find($data['id']);
             }
             $model->save($data);
+            Cache::delete("searchEngine");
             return $this->success("保存成功!");
         }
         return $this->error('缺少数据');
@@ -50,6 +52,7 @@ class SearchEngine extends BaseController
         $this->getAdmin();
         $ids = $this->request->post('ids', []);
         SearchEngineModel::where('id', 'in', $ids)->delete();
+        Cache::delete("searchEngine");
         return $this->success('删除成功');
     }
 
@@ -62,7 +65,11 @@ class SearchEngine extends BaseController
                 return $this->success('ok', $data['list']);
             }
         }
-        $list = SearchEngineModel::where('status', 1)->order('sort', 'desc')->limit(10)->select()->toArray();
+        $list = Cache::get("searchEngine", false);
+        if (!$list) {
+            $list = SearchEngineModel::where('status', 1)->order('sort', 'desc')->limit(10)->select()->toArray();
+            Cache::set("searchEngine", $list, 60 * 60 * 24);
+        }
         return $this->success('ok', $list);
     }
 
@@ -84,4 +91,11 @@ class SearchEngine extends BaseController
         }
         return $this->error('保存失败');
     }
-}
+    function sort(){
+        $sort = (array)$this->request->post();
+        foreach ($sort as $key => $value) {
+            SearchEngineModel::where("id", $value['id'])->update(['sort' => $value['sort']]);
+        }
+        return $this->success("ok");
+    }
+}

+ 11 - 2
app/controller/Setting.php

@@ -36,10 +36,19 @@ class Setting extends BaseController
     function getSetting(): \think\response\Json
     {
         $admin = $this->getAdmin();
+        $role = $this->request->post('role', []);
         $info = SettingModel::Config();
+        $tmp = [];
         if ($info) {
-            return $this->success('ok', $info);
+            if (count($role) > 0) {
+                foreach ($info as $key => $val) {
+                    if (in_array($key, $role)) {
+                        $tmp[$key] = $val;
+                    }
+                }
+            }
+            return $this->success('ok', $tmp);
         }
         return $this->error('empty');
     }
-}
+}

+ 146 - 0
app/controller/Wallpaper.php

@@ -0,0 +1,146 @@
+<?php
+
+
+namespace app\controller;
+
+use app\BaseController;
+use app\model\WallpaperModel;
+
+class Wallpaper extends BaseController
+{
+
+    function editFolder()
+    {
+        $this->getAdmin();
+        is_demo_mode(true);
+        $data = $this->request->post();
+        if (isset($data['id']) && strlen($data['id']) > 0) {
+            $mode = WallpaperModel::find($data['id']);
+        } else {
+            $mode = new WallpaperModel();
+        }
+        $mode->name = $data['name'];
+        $mode->type = 1;
+        $mode->save();
+        $list = WallpaperModel::where("type", 1)->field("id,name,type,sort,create_time")->order("sort")->select();
+        return $this->success("处理完毕", $list);
+    }
+    function DelFolder()
+    {
+        $this->getAdmin();
+        $id = $this->request->post("id");
+        if ($id) {
+            $find = WallpaperModel::where("id", $id)->find();
+            if (!$find) {
+                return $this->error("分类不存在!");
+            }
+        }
+        $find->delete();
+        $list = WallpaperModel::where("type", 0)->where("folder", $id)->select()->toArray();
+        foreach ($list as $key => $value) {
+            //删除资源
+            $url = joinPath(public_path(), $value['url']);
+            if (file_exists($url)) {
+                try {
+                    unlink($url);
+                } catch (\Throwable $th) {
+                }
+            }
+            $cover = joinPath(public_path(), $value['cover']);
+            if (file_exists($cover)) {
+                try {
+                    unlink($cover);
+                } catch (\Throwable $th) {
+                }
+            }
+        }
+        $list = WallpaperModel::where("type", 0)->where("folder", $id)->delete(); //删除数据库数据;
+        $list = WallpaperModel::where("type", 1)->field("id,name,type,sort,create_time")->order("sort")->select();
+        return $this->success("ok", $list);
+    }
+    function getFolder()
+    {
+        $this->getAdmin();
+        $list = WallpaperModel::where("type", 1)->field("id,name,type,sort,create_time")->order("sort")->select();
+        return $this->success("ok", $list);
+    }
+    function getFolderClient()
+    {
+        $list = WallpaperModel::where("type", 1)->field("id,name,type,sort,create_time")->order("sort")->select();
+        return $this->success("ok", $list);
+    }
+    function getFolderWallpaper()
+    {
+        $this->getAdmin();
+        $folder_id = $this->request->post("id");
+        if ($folder_id) {
+            $list = WallpaperModel::where("type", 0)->where("folder", $folder_id)->order("create_time", 'desc')->paginate($this->request->post("limit", 19));
+            return $this->success("ok", $list);
+        }
+    }
+    function getFolderWallpaperClient()
+    {
+        $folder_id = $this->request->post("id");
+        $offset = $this->request->post("offset", 0);
+        if ($folder_id) {
+            $list = WallpaperModel::where("type", 0)->where("folder", $folder_id)->field("create_time,id,folder,cover,type,mime,url")->order("id", 'desc')->limit($offset * 20, 20)->select();
+            return $this->success("ok", $list);
+        }
+    }
+    function deleteWallpaper()
+    {
+        $this->getAdmin();
+        $id = $this->request->post("id");
+        if ($id) {
+            $find = WallpaperModel::where("id", $id)->find();
+            if ($find) {
+                $find->delete();
+                //删除资源
+                $url = joinPath(public_path(), $find['url']);
+                if (file_exists($url)) {
+                    try {
+                        unlink($url);
+                    } catch (\Throwable $th) {
+                    }
+                }
+                $cover = joinPath(public_path(), $find['cover']);
+                if (file_exists($cover)) {
+                    try {
+                        unlink($cover);
+                    } catch (\Throwable $th) {
+                    }
+                }
+            }
+            return $this->success("ok");
+        }
+    }
+    function addWallpaper()
+    {
+        $this->getAdmin();
+        $data = [];
+        $data['cover'] = $this->request->post("cover");
+        $data['url'] = $this->request->post("url");
+        $data['type'] = $this->request->post("type");
+        $data['mime'] = $this->request->post("mime");
+        $data['folder'] = $this->request->post("folder");
+        $id = $this->request->post("id");
+        if($id){
+            $res = WallpaperModel::where("id", $id)->find();
+            if($res){
+                $res->save($data);
+            }
+        }else{
+            $res = WallpaperModel::create($data);
+        }
+        return $this->success("ok", $res);
+    }
+    function sortFolder()
+    {
+        $this->getAdmin();
+        $sort = (array)$this->request->post();
+        foreach ($sort as $key => $value) {
+            WallpaperModel::where("id", $value['id'])->update(['sort' => $value['sort']]);
+        }
+        return $this->success("ok");
+    }
+}

+ 4 - 1
app/controller/admin/Index.php

@@ -95,10 +95,11 @@ class Index extends BaseController
         $this->getAdmin();
         $this->initAuth();
         $result = \Axios::http()->post($this->authService . '/checkAuth', [
-            'timeout' => 5,
+            'timeout' => 10,
             'form_params' => [
                 'authorization_code' => $this->authCode,
                 'version_code' => app_version_code,
+                'domain' => request()->domain()
             ]
         ]);
         $info = [];
@@ -148,6 +149,7 @@ class Index extends BaseController
     function stopCard(): \think\response\Json
     {
         $this->getAdmin();
+        is_demo_mode(true);
         $name_en = $this->request->post('name_en', '');
         CardModel::where('name_en', $name_en)->update(['status' => 0]);
         Cache::delete('cardList');
@@ -205,6 +207,7 @@ class Index extends BaseController
     function uninstallCard(): \think\response\Json
     {
         $this->getAdmin();
+        is_demo_mode(true);
         $name_en = $this->request->post("name_en");
         if ($name_en) {
             $this->deleteDirectory(root_path() . 'plugins/' . $name_en);

+ 9 - 12
app/model/CardModel.php

@@ -56,19 +56,16 @@ class CardModel extends Model
     public static function config(string $cardName = '', string $key = '', string $default = '')
     {
         $card = self::where('name_en', $cardName)->value('dict_option');
-        if ($card) {
-            try {
-                $json = json_decode($card, true);
-                if (isset($json[$key])) {
-                    return $json[$key];
-                }
-            } catch (\Exception $e) {
+        try {
+            $json = json_decode($card, true);
+            if (isset($json[$key])) {
+                return $json[$key];
             }
+        } catch (\Exception $e) {
+        }
 
-            if ($default) {
-                return $default;
-            }
-            return null;
+        if ($default) {
+            return $default;
         }
         return null;
     }
@@ -125,7 +122,7 @@ class CardModel extends Model
      * @throws DbException
      * @throws ModelNotFoundException
      */
-    public static function saveConfig(string $cardName = '', string $key = '', $value=''): bool
+    public static function saveConfig(string $cardName = '', string $key = '', $value = ''): bool
     {
         $card = self::where('name_en', $cardName)->find();
         if ($card) {

+ 0 - 1
app/model/SettingModel.php

@@ -16,7 +16,6 @@ class SettingModel extends Model
     protected $pk = "keys";
     static array $CacheConfig = [];
 
- 
 
     public static function Config($key = false, $default = '##')
     {

+ 11 - 0
app/model/WallpaperModel.php

@@ -0,0 +1,11 @@
+<?php
+
+namespace app\model;
+
+use think\Model;
+
+class WallpaperModel extends Model
+{
+    protected $name = "wallpaper";
+    protected $pk = "id";
+}

+ 1 - 1
auto_install.json

@@ -1,5 +1,5 @@
 {
-  "php_ext": "redis,fileinfo",
+  "php_ext": "redis,fileinfo,opcache",
   "chmod": [
     {
       "mode": 755,

+ 1 - 1
config/log.php

@@ -27,7 +27,7 @@ return [
             // 独立日志级别
             'apart_level'    => [],
             // 最大日志文件数量
-            'max_files'      => 0,
+            'max_files'      => 7,
             // 使用JSON格式记录
             'json'           => false,
             // 日志处理

+ 1 - 1
config/route.php

@@ -27,7 +27,7 @@ return [
     // 默认的路由变量规则
     'default_route_pattern' => '/[\w\.]+',
     // 是否开启请求缓存 true自动缓存 支持设置请求缓存规则
-    'request_cache_key'     => false,
+    'request_cache_key'     => true,
     // 请求缓存有效期
     'request_cache_expire'  => null,
     // 全局请求缓存排除规则

+ 6 - 3
docker/install.sh

@@ -1,8 +1,11 @@
+#!/bin/sh
 
 apk add php7 php7-pdo_mysql php7-xml php7-xmlrpc php7-openssl php7-posix php7-pcntl php7-sqlite3 php7-pdo_sqlite php7-curl php7-json php7-session php7-phar php7-iconv php7-mbstring php7-fileinfo php7-exif php7-redis php7-gd php7-pecl-imagick-dev php7-pecl-imagick php7-mysqlnd php7-mysqli php7-ctype php7-gmp php7-redis composer unzip  php7-xmlreader php7-xmlwriter php7-dom php7-fpm
 
 apk add php7-simplexml
 
+apk add php7-opcache
+
 apk add nginx
 
 apk add redis
@@ -23,16 +26,16 @@ mv /php.ini /etc/php7/php.ini
 mv /nginx.conf /etc/nginx/nginx.conf
 
 # 检查是否存在 .git 目录
-if [ -d "/www/.git" ];then
+if [ -d "/www/.git" ]; then
     rm -rf "/www/.git"
 fi
 
 # 检查是否存在 .ide 目录
-if [ -d "/www/.idea" ];then
+if [ -d "/www/.idea" ]; then
     rm -rf "/www/.idea"
 fi
 
-if [ -d "/www/vendor/bin/" ];then
+if [ -d "/www/vendor/bin/" ]; then
     rm -rf "/www/vendor/bin/"
 fi
 

+ 2 - 2
docker/start.sh

@@ -10,14 +10,14 @@ lock_file="/move.lock"
 source_dir="/www/"
 destination_dir="/app"
 
-if [ ! -e "$destination_dir" ];then
+if [ ! -e "$destination_dir" ]; then
     mkdir "$destination_dir"
 fi
 
 chmod -R 777 "$destination_dir"
 
 # 检查是否存在锁文件
-if [ ! -e "$lock_file" ];then
+if [ ! -e "$lock_file" ]; then
     # 如果锁文件不存在,执行移动操作
     chmod -R 777 "$source_dir"
     rsync -aL "$source_dir/" "$destination_dir"

+ 10 - 1
extend/Axios.php

@@ -3,8 +3,17 @@
 
 class Axios
 {
-    public static function http (): \GuzzleHttp\Client
+    public static function http(): \GuzzleHttp\Client
     {
         return new \GuzzleHttp\Client(['verify' => false]);
     }
+
+    public static function toJson($content = "")
+    {
+        try {
+            return json_decode($content, true);
+        } catch (\Exception $e) {
+            return false;
+        }
+    }
 }

+ 1 - 1
extend/PluginStaticSystem.php

@@ -7,7 +7,7 @@ class PluginStaticSystem
         $file = preg_replace("#\.\.#", "", $file);
         $file = plugins_path("static/" . $file);
         if (file_exists($file)) {
-            return download($file)->force(false)->mimeType(self::mimeType($file))->header(['Cache-Control' => 'max-age=68400']);
+            return download($file)->force(false)->mimeType(self::mimeType($file))->expire(60*60*24*7);
         }
         return response('', 404);
     }

+ 1 - 1
extend/Upgrade2.php

@@ -119,7 +119,7 @@ class Upgrade2
         foreach ($sql_statements as $sql_statement) {
             if (!empty($sql_statement)) {
                 try {
-                    \think\facade\Db::query($sql_statement);
+                    \think\facade\Db::execute($sql_statement);
                 } catch (Exception $e) {
 
                 }

+ 21 - 1
install.sql

@@ -163,6 +163,19 @@ create table user_search_engine
 )
     comment '用户搜索引擎同步表';
 
+create table wallpaper
+(
+    id          int auto_increment
+        primary key,
+    type        int             null comment '1=folder;0=assets',
+    folder      int             null comment '0',
+    mime        int default 0   null comment '文件类型0=images,1=video',
+    url         text            null comment '图片地址',
+    cover       text            null comment '封面',
+    create_time datetime        null,
+    name        varchar(200)    null comment '标题',
+    sort        int default 999 null
+);
 
 
 INSERT INTO linkstore (name, src, url, type, size, create_time, hot, tips, domain, app, install_num) VALUES ('Bilibili', '/static/bilibili.png', 'https://bilibili.com', 'icon', '1x1', '2022-11-07 21:51:42', 0, 'Bilibili弹幕视频网站Acg网站', 'bilibili.com,www.bilibili.com', 0, 0);
@@ -184,4 +197,11 @@ INSERT INTO search_engine (id, name, icon, url, sort, create_time, status, tips)
 INSERT INTO search_engine (id, name, icon, url, sort, create_time, status, tips) VALUES (7, '开发者搜索', '/static/searchEngine/baidudev.png', 'https://kaifa.baidu.com/searchPage?module=SEARCH&wd={1}', 0, '2024-01-14 23:21:45', 1, '专注于技术文档、API 和开发者资源的搜索引擎,为开发者提供快速准确的技术信息检索服务,支持多种编程');
 INSERT INTO search_engine (id, name, icon, url, sort, create_time, status, tips) VALUES (8, 'B站', '/static/searchEngine/bilibiliico.png', 'https://search.bilibili.com/all?vt=21160573&keyword={1}', 0, '2024-01-14 23:21:57', 1, '中国弹幕视频平台,以二次元文化为特色,提供丰富的动画、游戏、音乐等内容,用户可通过弹幕互动分享观感。');
 INSERT INTO search_engine (id, name, icon, url, sort, create_time, status, tips) VALUES (9, '微博', '/static/searchEngine/weiboico.png', 'https://s.weibo.com/weibo?q={1}', 0, '2024-01-14 23:22:12', 1, '中国社交媒体平台,用户可以发布短文、图片和视频,关注他人并互动评论,是实时新闻、话题讨论和社交分享的');
-INSERT INTO search_engine (id, name, icon, url, sort, create_time, status, tips) VALUES (10, 'DuckDuckGo', '/static/searchEngine/DuckDuckGo.svg', 'https://duckduckgo.com/?t=h_&q={1}&ia=web', 96, '2024-01-15 21:37:44', 1, '注重隐私保护的搜索引擎,致力于不追踪用户个人信息,提供匿名、安全的搜索服务,受到关注的隐私倡导者青睐');
+INSERT INTO search_engine (id, name, icon, url, sort, create_time, status, tips) VALUES (10, 'DuckDuckGo', '/static/searchEngine/DuckDuckGo.svg', 'https://duckduckgo.com/?t=h_&q={1}&ia=web', 96, '2024-01-15 21:37:44', 1, '注重隐私保护的搜索引擎,致力于不追踪用户个人信息,提供匿名、安全的搜索服务,受到关注的隐私倡导者青睐');
+
+INSERT INTO wallpaper (id, type, folder, mime, url, cover, create_time, name, sort) VALUES (1, 1, null, 0, null, null, '2024-02-22 12:29:21', '默认壁纸', 999);
+INSERT INTO wallpaper (id, type, folder, mime, url, cover, create_time, name, sort) VALUES (2, 0, 1, 0, '/static/wallpaper/wallpaper-1.jpeg', '/static/wallpaper/m_wallpaper-1.jpeg', '2024-02-22 12:35:59', null, 999);
+INSERT INTO wallpaper (id, type, folder, mime, url, cover, create_time, name, sort) VALUES (3, 0, 1, 0, '/static/wallpaper/wallpaper-2.jpeg', '/static/wallpaper/m_wallpaper-2.jpeg', '2024-02-22 12:36:27', null, 999);
+INSERT INTO wallpaper (id, type, folder, mime, url, cover, create_time, name, sort) VALUES (4, 0, 1, 0, '/static/wallpaper/wallpaper-3.jpeg', '/static/wallpaper/m_wallpaper-3.jpeg', '2024-02-22 12:36:43', null, 999);
+INSERT INTO wallpaper (id, type, folder, mime, url, cover, create_time, name, sort) VALUES (5, 0, 1, 0, '/static/wallpaper/wallpaper-4.jpeg', '/static/wallpaper/m_wallpaper-4.jpeg', '2024-02-22 12:36:52', null, 999);
+INSERT INTO wallpaper (id, type, folder, mime, url, cover, create_time, name, sort) VALUES (6, 0, 1, 0, '/static/wallpaper/wallpaper-5.jpeg', '/static/wallpaper/m_wallpaper-5.jpeg', '2024-02-22 12:37:03', null, 999);

+ 1 - 0
public/dist/assets/about.1711290598880.css

@@ -0,0 +1 @@
+.about>div{border-radius:8px;background-color:#fff;padding:15px;display:flex;align-items:center;justify-content:space-between;-webkit-user-select:text;-moz-user-select:text;user-select:text}.about>div:hover{color:#6495ed}.about>div>span{font-size:13px}

+ 1 - 0
public/dist/assets/about.1711290598880.js

@@ -0,0 +1 @@
+import{r as a,U as e,c as l,d as s,e as t,t as u,m}from"./index.1711290598880.js";const r={class:"about"},n={key:0,class:"labelItem"},o=t("span",null,"联系邮箱",-1),c={class:"ml-4 text-yellow-500"},d={key:1,class:"labelItem mt-3"},p=t("span",null,"QQ交流群",-1),i={class:"ml-4 text-yellow-500"},v={key:2,class:"labelItem mt-3"},b=t("span",null,"备案号",-1),q={class:"ml-4 text-blue-500"},x={__name:"about",setup(x){const y=a({email:"",recordNumber:"",qq:""});return e({url:"/api/site"}).then((a=>{1===a.code&&(y.value=a.data)})),(a,e)=>(l(),s("div",r,[y.value.email?(l(),s("div",n,[o,t("span",c,u(y.value.email),1)])):m("",!0),y.value.qqGroup?(l(),s("div",d,[p,t("span",i,u(y.value.qqGroup),1)])):m("",!0),y.value.recordNumber?(l(),s("div",v,[b,t("span",q,u(y.value.recordNumber),1)])):m("",!0)]))}};export{x as default};

BIN
public/dist/assets/add.1711290598880.png


+ 1 - 0
public/dist/assets/add.1711290598880.svg

@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M25 40H7C5.34315 40 4 38.6569 4 37V11C4 9.34315 5.34315 8 7 8H41C42.6569 8 44 9.34315 44 11V24.9412" stroke="#000" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/><path d="M4 11C4 9.34315 5.34315 8 7 8H41C42.6569 8 44 9.34315 44 11V20H4V11Z" fill="none" stroke="#000" stroke-width="3"/><path d="M32 35H44" stroke="#000" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/><path d="M38 29V41" stroke="#000" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/><circle r="2" transform="matrix(-1.31134e-07 -1 -1 1.31134e-07 10 14)" fill="#000"/><circle r="2" transform="matrix(-1.31134e-07 -1 -1 1.31134e-07 16 14)" fill="#000"/></svg>

+ 1 - 0
public/dist/assets/addCard.1711290598880.css

@@ -0,0 +1 @@
+.addCardBox[data-v-606d6130]{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(auto-fill,1fr);gap:15px}@media (max-width: 768px){.addCardBox[data-v-606d6130]{grid-template-columns:1fr}}.addCardBox>.cardItem[data-v-606d6130]{width:100%;height:100%;padding:15px;border-radius:10px;background-color:#44444b1a}.addCardBox>.cardItem>iframe[data-v-606d6130]{border-radius:12px;border:none;outline:none;width:100%;height:180px}.addCardWindow[data-v-606d6130]{position:relative;width:100%;height:100%;overflow-y:scroll;padding-bottom:20px}

+ 1 - 0
public/dist/assets/addCard.1711290598880.js

@@ -0,0 +1 @@
+import{_ as a,r as e,u as s,U as t,b as n,c as l,d as i,g as r,m as d,e as c,F as o,f as u,h as m,t as p,C as v,j as x,ac as f,k as _,T as g,D as y,J as k,P as h,Q as b}from"./index.1711290598880.js";const w={class:"addCardWindow"},C={class:"addCardBox mt-2"},j={class:"cardItem"},z={class:"text-center text-base text-black"},G={class:"text-center text-gray-700 text-sm",style:{height:"40px",display:"flex","align-items":"center","justify-content":"center"}},I=["src"],B={class:"mt-4 flex justify-between"},D=(a=>(h("data-v-606d6130"),a=a(),b(),a))((()=>c("span",{class:"iconfont icon-redu text-red-500 text-lg"},null,-1)));var F=a({__name:"addCard",setup(a){const h=e(!1),b=s(),F=e([]);t({url:"/card/index"}).then((a=>{1===a.code&&(F.value=a.data,h.value=!0)}));return(a,e)=>{const s=n("el-empty"),J=n("el-button");return l(),i("div",w,[h.value&&0===F.value.length?(l(),r(s,{key:0,description:"目前还没有卡片应用哟!"})):d("",!0),c("div",C,[(l(!0),i(o,null,u(F.value,((a,e)=>(l(),r(g,{key:e},{default:m((()=>[c("div",j,[c("h3",z,p(a.name),1),c("div",G,[c("span",null,p(a.tips),1)]),c("iframe",{src:a.url,class:"mt-2"},null,8,I),c("div",B,[c("div",null,[D,v(" "+p(x(f)(a.install_num)),1)]),_(J,{onClick:e=>(async a=>{let e={sort:99999,id:y(),name:a.name,name_en:a.name_en,size:"2x4",src:a.src,url:a.url,window:a.window,type:"component",component:"plugins",app:1,tips:a.tips,version:a.version,origin_id:a.id,pageGroup:b.state.pageGroup};if(b.state.link.find((e=>{const{name_en:s=!1}=e;if(s&&s===a.name_en)return!0})))return k.error("您已添加过了!请勿重复添加相同卡片!"),!1;b.state.link.push(e),b.commit("updateLink"),await t({url:"/card/install_num",method:"post",data:{id:a.id}})})(a),size:"small",round:"",style:{"background-color":"rgba(243,243,243,0.45)"}},{default:m((()=>[v("添加 ")])),_:2},1032,["onClick"])])])])),_:2},1024)))),128))])])}}},[["__scopeId","data-v-606d6130"]]);export{F as default};

+ 1 - 0
public/dist/assets/addSearchEngine.1711290598880.css

@@ -0,0 +1 @@
+.searchEngineUserManager{position:absolute;top:10px;left:0;overflow-y:scroll;width:100%;height:calc(100% - 10px);padding:0 0 20px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.searchEngineUserManager>.myEngine{min-height:80px}.search-add-ico{position:absolute;border-radius:30px;right:11px;top:-11px;width:22px;height:22px;background-color:#008bd7;display:flex;justify-content:center;align-items:center;cursor:pointer}.search-del-ico{position:absolute;border-radius:30px;right:11px;top:-11px;width:22px;height:22px;background-color:#d70000;display:flex;justify-content:center;align-items:center;cursor:pointer}.searchEngineTitle{position:fixed;top:8px;width:230px;height:20px;left:15px;color:#0d0c22;font-size:15px}.customEngineName{width:105px;border-radius:4px;padding:6px 10px;font-size:12px;outline:none}.customEngineUrl{border-radius:4px;padding:6px 10px;font-size:12px;outline:none;flex:1}.addCustom{width:80px;flex-shrink:0;background:#04a3ff;padding:0 10px;outline:none;border:none;color:#fff;font-size:12px}@media (max-width: 500px){.addCustom{width:100%}}

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/addSearchEngine.1711290598880.js


+ 1 - 0
public/dist/assets/addicon.1711290598880.css

@@ -0,0 +1 @@
+.selectCom{background-color:#7c94b0a6!important;color:#fff!important}.addIconBottom{display:grid;grid-template-columns:repeat(3,1fr)}@media (min-width: 500px){.addIconBottom{display:none}}.addIconBottom>div{display:flex;flex-direction:column;justify-content:center;align-items:center;color:#000;height:50px}.addIconBottom>.selectCom{background-color:transparent!important;color:#1664ff!important}.addiconframe{height:100%;width:100%;display:flex}@media (max-width: 500px){.addiconframe{display:block}}.addiconframe>.left{width:145px;height:calc(100% + 28px);transform:translateY(-28px)}@media (max-width: 500px){.addiconframe>.left{display:none}}.addiconframe>.left .titleTop{height:80px;color:#000}.addiconframe>.left>.add-body>.add-type{cursor:pointer;display:flex;align-items:center;border-radius:5px;padding:8px 10px;font-size:15px;width:100%;color:#000;transition:all .3s}.addiconframe>.left>.add-body>.add-type>.iconfont{font-size:18px}.addiconframe>.left>.add-body>.add-type>span:not(.iconfont){margin-left:5px}.addiconframe>.right{width:calc(100% - 145px);padding:0 15px}@media (max-width: 500px){.addiconframe>.right{position:relative;width:100%;height:calc(100% - 55px);overflow-y:scroll}}

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/addicon.1711290598880.js


File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/appSide.1711290598880.css


File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/appSide.1711290598880.js


+ 1 - 0
public/dist/assets/apps.1711290598880.svg

@@ -0,0 +1 @@
+<svg t="1709550431098" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9318" width="128" height="128"><path d="M882.521 282.988l-354.987-204.861c-8.98-5.219-20.146-5.219-29.127 0l-354.987 204.861c-8.98 5.219-14.563 14.806-14.563 25.244v409.842c0 10.437 5.583 20.025 14.563 25.244l354.987 204.982c4.491 2.548 9.588 3.884 14.563 3.884s10.073-1.334 14.563-3.884l354.987-204.982c8.98-5.219 14.563-14.806 14.563-25.244v-409.842c0-10.437-5.583-20.025-14.563-25.244zM838.83 701.326l-325.859 188.112-325.859-188.112v-376.225l325.859-188.112 325.859 188.112v376.225z" fill="#ffffff" p-id="9319" stroke-width="3"></path><path d="M270.124 383.476c-8.010 13.957-3.277 31.797 10.681 39.807l202.676 116.994v231.439c0 16.142 12.986 29.127 29.127 29.127s29.127-12.986 29.127-29.127v-231.075l203.404-117.479c13.957-8.010 18.69-25.851 10.681-39.807s-25.851-18.69-39.807-10.681l-203.040 117.236-203.040-117.236c-13.957-8.010-31.676-3.155-39.807 10.801z" fill="#ffffff" p-id="9320" stroke-width="3"></path></svg>

+ 1 - 0
public/dist/assets/arc.1711290598880.svg

@@ -0,0 +1 @@
+<svg t="1704989608955" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2460" width="128" height="128"><path d="M512 512m-442.7 0a442.7 442.7 0 1 0 885.4 0 442.7 442.7 0 1 0-885.4 0Z" fill="#9BBFFD" p-id="2461"></path><path d="M512 512m-263 0a263 263 0 1 0 526 0 263 263 0 1 0-526 0Z" fill="#377FFC" p-id="2462"></path></svg>

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/auth.1711290598880.svg


BIN
public/dist/assets/avatar.1711290598880.png


+ 1 - 0
public/dist/assets/background.1711290598880.css

@@ -0,0 +1 @@
+#backgroundManager{position:relative;height:calc(100vh - 30px)}.leftScrollBackground::-webkit-scrollbar{display:none!important}.leftScrollBackground::-webkit-scrollbar-thumb{display:none!important}

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/background.1711290598880.js


BIN
public/dist/assets/bg4.1711290598880.png


+ 1 - 0
public/dist/assets/browserImport.1711290598880.js

@@ -0,0 +1 @@
+import{r as e,c as l,d as t,e as s,F as a,f as r,g as n,h as u,C as o,t as i,T as c,m as f}from"./index.1711290598880.js";const p={class:"w-full h-full"},d={class:"flex flex-wrap"},h={style:{width:"150px"}},x=["src"],m={key:0,class:"flex h-full flex-col items-center justify-center"},v={class:"relative bg-blue-500 rounded-full text-white py-2 px-4 cursor-pointer"},g=s("span",null,"上传浏览器导出书签文件",-1),w={__name:"browserImport",setup(w){const y=e([]);const b=e=>{const l=e.target.files;if(l.length>=0){const e=l[0],t=new FileReader;t.onload=e=>{y.value=function(e){let l=(new DOMParser).parseFromString(e,"text/html").querySelectorAll("a"),t=[];return l.forEach((e=>{var l,s;console.log(e);const{href:a,icon:r,text:n}=e;let u={name:n,src:null==(s=null==(l=e.attributes)?void 0:l.icon)?void 0:s.value,url:a};t.push(u)})),t}(e.target.result)},t.readAsText(e)}};return(e,w)=>(l(),t("div",p,[s("div",d,[(l(!0),t(a,null,r(y.value,(e=>(l(),n(c,null,{default:u((()=>[s("div",h,[s("img",{src:e.src,style:{width:"50px",height:"50px"}},null,8,x),o(" "+i(e.name),1)])])),_:2},1024)))),256))]),0===y.value.length?(l(),t("div",m,[s("button",v,[s("input",{class:"inset-0 cursor-pointer absolute w-full h-full opacity-0",onChange:b,type:"file",accept:"text/html",name:"file"},null,32),g])])):f("",!0)]))}};export{w as default};

+ 1 - 0
public/dist/assets/class.1711290598880.svg

@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="6" y="28" width="36" height="14" rx="4" stroke="#000" stroke-width="3"/><path d="M20 7H10C7.79086 7 6 8.79086 6 11V17C6 19.2091 7.79086 21 10 21H20" stroke="#000" stroke-width="3" stroke-linecap="round"/><circle cx="34" cy="14" r="8" fill="none" stroke="#000" stroke-width="3"/><circle cx="34" cy="14" r="3" fill="#000"/></svg>

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/clienthome.1711290598880.svg


+ 1 - 0
public/dist/assets/close.1711290598880.svg

@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14 14L34 34" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><path d="M14 34L34 14" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg>

+ 1 - 0
public/dist/assets/controller.1711290598880.css

@@ -0,0 +1 @@
+.control-menu-item{display:flex;align-items:center;margin:5px 10px;padding:8px 10px;border-radius:6px;transition:all .3s;cursor:pointer}.control-menu-item:hover{background-color:#f3f4f6}.control-menu-item>.icons{padding:4px;border-radius:6px;display:block;font-size:17px}@media (max-width: 480px){.control-menu-item>.icons{font-size:20px}}.control-menu-item>.names{margin-left:3px;font-size:12px}.closeController{position:absolute;width:100%;bottom:30px;display:flex;align-items:center}.closeController>svg{margin-left:20px;width:25px;height:25px;cursor:pointer}.selectControl{background-color:#ebf3fd!important;color:#0095ff!important}.setting-controller>.el-drawer{z-index:201;min-width:360px;border-bottom-left-radius:50px;background-color:#fff}.setting-controller>.el-drawer>.el-drawer__body{padding:0!important;height:100%}.control-model{display:flex;height:100%}.control-model .control-menu{min-width:72px;max-width:140px;height:100%}.control-model .control-setting{flex:1;height:100%}.control-model .control-setting .control-setting-top{width:100%;height:100px}.control-model .control-setting .control-box{border-radius:10px 0 0;background-color:#f7f7f7;width:100%;height:calc(100% - 100px);padding:10px}

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/controller.1711290598880.js


+ 1 - 0
public/dist/assets/custom.1711290598880.css

@@ -0,0 +1 @@
+.customBox{width:100%}.iconsel{position:absolute;color:#fff;width:60px;height:60px;font-size:20px;display:flex;align-items:center;justify-content:center;border-radius:var(--iconRadius);background-color:#0000001a}.colors-picker{width:30px;height:30px;background-color:#0ff;border-radius:4px}.input_div>.el-input__wrapper,.input_div>.el-textarea__inner{background-color:#e1e1e157;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.el-input__count,.el-input__count-inner{background-color:transparent!important}.bgColorPicker{display:flex;gap:15px;margin-right:15px;flex-wrap:wrap}.bgColorPicker>li{border:1px solid rgba(255,255,255,.47);width:32px;height:32px;border-radius:3px;display:flex;justify-content:center;align-items:center}.bgColorPicker>li>div{width:22px;height:22px;border-radius:2px;border:1px solid #8c939d}.touming{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAANJJREFUWEftlz0OAWEQhp9NREejonIHFWdwBx3ncAAH4BouoFO5AI2KSqWiYgoKmdeur/lWMpNs8052Z/Jk/rYgsxWZ41O7BKbAwKGyA1aC1ljoe8Cer/ZJYCkSWANz8SVL2rNNJBAEUghYQXWdijoAR1FsTaGfgIvjuwPXl151DoyAiQg0E3of6Dg+C/5uz0ggCNSOQOyCIBAE7BzrOfO7AbTFzN8K/fa8orw2N/0cyygI/CWBoaj2hdDttGuJi+jnLij7wUn2V13HyQHKXsyewAONol4hxQbtygAAAABJRU5ErkJggg==) no-repeat center / cover}

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/custom.1711290598880.js


+ 1 - 0
public/dist/assets/del.1711290598880.svg

@@ -0,0 +1 @@
+<svg t="1708268706476" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="32597" width="128" height="128"><path d="M92.748283 203.507071h838.503434v44.140606H92.748283zM644.402424 115.238788v44.127677h44.127677V115.238788c0-24.384646-19.75596-44.127677-43.998384-44.127677h-265.050505a43.97899 43.97899 0 0 0-31.172525 12.916364 43.918222 43.918222 0 0 0-12.825859 31.211313v44.127677h44.127677V115.238788h264.791919z m0 0" fill="#000" p-id="32598"></path><path d="M203.073939 909.614545v-661.979798H158.946263V909.575758c0 24.410505 19.639596 44.179394 44.179394 44.179394h617.761616c24.410505 0 44.179394-19.639596 44.179394-44.179394V247.634747H820.926061v661.979798H203.073939z m0 0" fill="#000" p-id="32599"></path><path d="M313.412525 335.90303h44.127677V733.090909h-44.127677V335.90303z m176.523637 0h44.127676V733.090909H489.936162V335.90303z m176.523636 0h44.127677V733.090909h-44.127677V335.90303z m0 0" fill="#000" p-id="32600"></path></svg>

+ 1 - 0
public/dist/assets/deskTopMouse.1711290598880.css

@@ -0,0 +1 @@
+.layoutSet{padding:0 10px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;grid-gap:10px;margin-bottom:10px}.layoutSet>div{cursor:pointer;width:100%;height:25px;line-height:25px;padding:0 10px;font-size:13px;border-radius:30px;background-color:#ffffffa4}.layoutSet>div:hover{background-color:#fff}@keyframes fade-in{0%{transform:scale3d(0,0,1)}to{transform:scaleZ(1)}}.deskMouseMenu{position:fixed;width:140px;z-index:999;background-color:transparent;border-radius:10px;padding:5px;transform:scale3d(0,0,1);transform-origin:left top;animation:fade-in .2s forwards}.deskMouseMenu:before{content:"";position:absolute;width:100%;height:100%;top:0;border-radius:10px;left:0;background:rgba(243,243,243,.7);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(40px);z-index:-1}.deskMouseMenu .mhover:hover{background-color:#ffffff5e;border-radius:8px}.deskMouseMenu .mouseItem{padding:0 10px;display:flex;align-items:center;min-height:35px;cursor:pointer}.deskMouseMenu .mouseItem>img{width:15px;height:15px}.deskMouseMenu .mouseItem>span{margin-left:5px;font-size:13px}

+ 1 - 0
public/dist/assets/deskTopMouse.1711290598880.js

@@ -0,0 +1 @@
+import{r as s,u as e,s as o,E as n,o as t,i as a,v as l,c as i,d as p,e as u,l as d,p as r,D as m}from"./index.1711290598880.js";import{a as c}from"./href.1711290598880.js";import"./dialog.1711290598880.js";const v=["onClick"],k=[u("img",{src:"/dist/assets/add.1711290598880.svg"},null,-1),u("span",null,"添加图标",-1)],g=["onClick"],w=[u("img",{src:"/dist/assets/class.1711290598880.svg"},null,-1),u("span",null,"创建文件夹",-1)],f=["onClick"],h=[u("img",{src:"/dist/assets/wallpaper.1711290598880.svg"},null,-1),u("span",null,"更换壁纸",-1)],x=["onClick"],C=[u("img",{src:"/dist/assets/setting.1711290598880.svg"},null,-1),u("span",null,"设置",-1)],M={__name:"deskTopMouse",setup(M){const b=s(""),G=e(),I=s(!1),T=o({top:"0px",left:"0px"}),j=()=>{c("tab://setting"),I.value=!1},y=()=>{c("tab://background"),I.value=!1},E=()=>{let s={id:m(),size:"2x2",component:"iconGroup",name:"新文件夹",type:"component",url:"iconGroup",pageGroup:G.state.pageGroup,children:[]};G.state.link.push(s),G.commit("updateLink"),I.value=!1},L=()=>{c("tab://addicon"),I.value=!1},_=s=>{T.top=s.top+"px",s.top+180>window.innerHeight&&(T.top=window.innerHeight-160+"px",s.left+=2),T.left=s.left+"px",s.left+140>window.innerWidth&&(T.left=window.innerWidth-150+"px"),I.value=!0},H=s=>{I.value&&(I.value=!1)};return n.on("deskTopMouseClose",H),window.addEventListener("mousedown",H),n.on("deskTopMouse",_),t((()=>{window.removeEventListener("mousedown",H),n.off("deskTopMouse",_)})),(s,e)=>a((i(),p("div",{class:"deskMouseMenu",ref_key:"mouseMenu",ref:b,style:r(T),onMousedown:e[0]||(e[0]=d((()=>{}),["stop"])),onContextmenu:e[1]||(e[1]=d((()=>{}),["prevent"]))},[u("div",{onClick:d(L,["stop"]),class:"mouseItem mhover"},k,8,v),u("div",{onClick:d(E,["stop"]),class:"mouseItem mhover"},w,8,g),u("div",{onClick:d(y,["stop"]),class:"mouseItem mhover"},h,8,f),u("div",{onClick:d(j,["stop"]),class:"mouseItem mhover"},C,8,x)],36)),[[l,I.value]])}};export{M as default};

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/dialog.1711290598880.js


File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/dock.1711290598880.svg


+ 1 - 0
public/dist/assets/edit.1711290598880.svg

@@ -0,0 +1 @@
+<svg t="1708268429994" class="icon" viewBox="0 0 1034 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="25262" width="128" height="128"><path d="M867.727088 1023.998849h-741.646209A125.568375 125.568375 0 0 1 0.001023 898.558344v-741.64621A125.568375 125.568375 0 0 1 125.441529 30.832279h370.823104a36.31509 36.31509 0 1 1 0 72.50231h-370.823104a52.938195 52.938195 0 0 0-52.938195 52.938195v742.28556a53.066065 53.066065 0 0 0 52.938195 52.938195h742.285559A53.066065 53.066065 0 0 0 920.665283 898.558344v-370.823105a36.31509 36.31509 0 0 1 72.50231 0v370.823105a125.568375 125.568375 0 0 1-125.440505 125.440505z" p-id="25263" fill="#000"></path><path d="M294.102106 761.353795a35.80361 35.80361 0 0 1-25.574007-10.868953 36.18722 36.18722 0 0 1 0-51.148014L972.580518 10.500943a36.18722 36.18722 0 1 1 51.148014 51.787365L319.676113 750.996322a35.93148 35.93148 0 0 1-25.574007 10.357473z" p-id="25264" fill="#000"></path></svg>

BIN
public/dist/assets/favicon.1711290598880.png


BIN
public/dist/assets/gonganbeian.1711290598880.ico


+ 1 - 0
public/dist/assets/help.1711290598880.css

@@ -0,0 +1 @@
+.help-card[data-v-29f44f95]{width:100%;height:100%;border-radius:10px;overflow:scroll}.help-card[data-v-29f44f95]::-webkit-scrollbar{display:none}

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/help.1711290598880.js


+ 1 - 0
public/dist/assets/href.1711290598880.js

@@ -0,0 +1 @@
+import{E as e,y as n}from"./index.1711290598880.js";import{a as i}from"./dialog.1711290598880.js";const t={"tab://setting":()=>{e.emit("openController")},"tab://addSearchEngine":(n={})=>{n.size={width:window.innerWidth<500?"380px":"600px",height:"400px",top:window.innerHeight>700?"260px":"15vh"},n.component="addSearchEngine",e.emit("openPlugin",n)},"tab://addicon":(n={})=>{n.full=!1,n.size={width:window.innerWidth<500?"calc(100% - 15px)":"1000px",height:window.innerWidth>500?"550px":window.innerHeight-200+"px"},n.component="addicon",e.emit("openPlugin",n)},"tab://editAll":(e={})=>{setTimeout((()=>{n.state.editStatus=!0}),100)},"tab://background":(n={})=>{n.full=!1,n.size={width:window.innerWidth<500?"calc(100% - 15px)":"1000px",height:window.innerWidth>500?"550px":window.innerHeight-200+"px"},n.component="background",e.emit("openPlugin",n)}};window.openCard=function(e){const{width:n=null,height:t=null,minHeight:o=null,minWidth:d=null,custom:l={}}=e;new i({width:null==n?window.innerWidth<1250?850:1200:n,height:null==t?window.innerHeight<750?550:700:t,title:e.name,ico:e.src,url:e.url,minHeight:o,minWidth:d,custom:l}).open()};const o=e=>{n.state.moveStatus=!1,window.openCard({name:e.name,src:e.src,url:e.window})},d=(e,i=0)=>{const t=n.getters.find(e);if(t){const{app:e=0}=t;if(1===e){let e="";e=(/^http/.test(t.url),t.url),window.openCard({name:t.name,src:t.src,url:e,custom:t})}else a(t.url)}},l=e=>{let n=document.createElement("a");n.href=e,n.target="_blank",n.click(),n.remove()},a=(e,i=!1)=>{if(t[e])t[e]();else if(i)l(e);else if(n.state.config.openType.linkOpen)l(e);else{let n=document.createElement("a");n.href=e,n.click(),n.remove()}};export{t as C,a,o as b,l as o,d as r};

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/iconGroup.1711290598880.css


File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/iconGroup.1711290598880.js


+ 1 - 0
public/dist/assets/iconGroupBox.1711290598880.css

@@ -0,0 +1 @@
+.model{position:relative;width:calc(((var(--iconWidth) + 26px) * 8) + 60px);height:calc(4 * (var(--iconWidth) + 35px) + 60px);display:flex;align-items:center;justify-content:center;transform:translateY(-30px)!important}@media (max-width: 900px){.model{width:calc(((var(--iconWidth) + 26px) * 4) + 60px)}}#iconGroupBox{position:fixed;width:100vw;height:100vh;z-index:10;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:all .5s;background-color:#3d3d3da1;display:flex;flex-direction:column;align-items:center;justify-content:center}#iconGroupBox .groupName{margin-bottom:30px;transform:translateY(-30px)}#iconGroupBox .groupName>.el-input{width:200px;height:35px;background-color:transparent}#iconGroupBox .groupName>.el-input>.el-input__wrapper{border-radius:10px;background-color:#8b8b8b53;border:3px solid rgba(255,255,255,.53);box-shadow:none!important}#iconGroupBox .groupName>.el-input>.el-input__wrapper>.el-input__inner{text-align:center;color:#fff}#iconGroupBox .iconGroupItem{overflow-y:scroll;transition:all .3s;transform:translateZ(0);width:-moz-max-content;width:max-content;height:calc(4 * (var(--iconWidth) + 40px));border-radius:var(--iconRadius);display:grid;padding:20px;background-color:#ffffff7d;grid-template-columns:repeat(8,var(--iconWidth));grid-column-gap:26px;grid-row-gap:5px;grid-auto-flow:dense;grid-template-rows:repeat(auto-fit,calc(var(--iconWidth) + 35px))}#iconGroupBox .iconGroupItem::-webkit-scrollbar{display:none}@media (max-width: 900px){#iconGroupBox .iconGroupItem{grid-template-columns:repeat(4,var(--iconWidth))}}.groupBox-enter-active,.groupBox-leave-active{transition:opacity .5s ease}.groupBox-enter-from,.groupBox-leave-to{opacity:0}

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/iconGroupBox.1711290598880.js


+ 1 - 0
public/dist/assets/index.1711290598880.css

@@ -0,0 +1 @@
+.selectWallpaperItem{background-color:#7c94b0a6!important;color:#fff!important}.background-addBox{height:100%;width:100%;display:flex}.background-addBox>.bg-left{width:145px;height:calc(100% + 28px);transform:translateY(-28px)}.background-addBox>.bg-left .titleTop{height:80px;color:#000}.background-addBox>.bg-left>div>div{cursor:pointer;display:flex;align-items:center;border-radius:5px;padding:6px 8px;font-size:13px;width:100%;color:#000;transition:all .3s}.background-addBox>.bg-left>div>div>.iconfont{font-size:18px}.background-addBox>.bg-left>div>div>span:not(.iconfont){margin-left:5px}.background-addBox>.bg-right{width:calc(100% - 145px);padding:0 15px 0 0}

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/index.1711290598880.js


+ 1 - 0
public/dist/assets/index.17112905988802.css

@@ -0,0 +1 @@
+.note-weight{position:relative;bottom:0;height:12px;width:12px;border-radius:100%}.maxWeight{position:relative;width:25px;height:25px}.selWeight:before{margin-left:5px;font-size:20px;font-weight:700;position:relative;content:"\221a";color:#fff}.weight-0{background-color:#e5e5e5}.weight-1{background-color:#f1c40f}.weight-2{background-color:#e67e22}.weight-3{background-color:#27ae60}.weight-4{background-color:#3498db}.weight-5{background-color:#8e44ad}.weight-6{background-color:#e74c3c}.noteApp{position:relative;width:100vw;height:100vh}.noteApp>.noteApp-left{position:relative;flex-shrink:0;width:250px;height:calc(100vh - 20px);overflow:scroll}.noteApp>.noteApp-left .addNote{position:fixed;bottom:15px;left:215px;cursor:pointer;width:30px;height:30px;border-radius:30px;background:#60a5fa;display:flex;justify-content:center;align-items:center;font-size:25px;font-weight:700;color:#fff;z-index:99}.noteApp>.noteApp-left .noteApp-item{position:relative;padding:10px 15px}.noteApp>.noteApp-left .noteApp-item:hover{cursor:pointer}.noteApp>.noteApp-left .noteApp-title{width:calc(100% + -0px);height:20px;font-size:14px}.noteApp>.noteApp-left .noteApp-time{color:#999;font-size:12px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.noteApp .noteApp-context{width:calc(100vw - 260px)}.noteApp #noteAppTitle{height:35px;width:100%;outline:none;font-weight:700;text-indent:10px;font-size:20px}.noteApp-listSelect:after{position:absolute;top:0;left:0;content:" ";width:5px;height:100%;border-radius:0 5px 5px 0;background-color:#0a82f3bb}.noteSearch>.el-input__wrapper{border-radius:80px}

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/index.17112905988802.js


File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/index.17112905988803.css


File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/index.17112905988803.js


File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/index.17112905988804.css


File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/index.17112905988804.js


File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/index.17112905988805.css


File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/index.17112905988805.js


File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/jiesan.1711290598880.svg


File diff suppressed because it is too large
+ 13 - 0
public/dist/assets/jquery.1711290598880.js


File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/kong.1711290598880.svg


+ 1 - 0
public/dist/assets/kongzhi.1711290598880.svg

@@ -0,0 +1 @@
+<svg t="1709550969872" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="17631" width="128" height="128"><path d="M898.04 328.62H666.42c-15.82 0-28.96-13.12-28.96-28.96 0-15.82 13.12-28.96 28.96-28.96h231.62c15.82 0 28.96 13.12 28.96 28.96 0 15.84-13.12 28.96-28.96 28.96zM280.38 328.62H125.96c-15.82 0-28.96-13.12-28.96-28.96 0-15.82 13.12-28.96 28.96-28.96h154.42c15.82 0 28.96 13.12 28.96 28.96-0.02 15.84-13.14 28.96-28.96 28.96z" fill="#ffffff" p-id="17632" data-spm-anchor-id="a313x.search_index.0.i26.29f93a81JYBNL7" class="selected"></path><path d="M434.8 463.74c-90.34 0-164.06-73.74-164.06-164.06S344.46 135.6 434.8 135.6s164.06 73.74 164.06 164.06-73.74 164.08-164.06 164.08z m0-270.22c-58.68 0-106.16 47.48-106.16 106.16s47.48 106.16 106.16 106.16 106.16-47.48 106.16-106.16-47.5-106.16-106.16-106.16zM898.04 753.28h-154.42c-15.82 0-28.96-13.12-28.96-28.96 0-15.82 13.12-28.96 28.96-28.96h154.42c15.82 0 28.96 13.12 28.96 28.96 0 15.84-13.12 28.96-28.96 28.96zM357.58 753.28H125.96c-15.82 0-28.96-13.12-28.96-28.96 0-15.82 13.12-28.96 28.96-28.96h231.62c15.82 0 28.96 13.12 28.96 28.96 0 15.84-13.14 28.96-28.96 28.96z" fill="#ffffff" p-id="17633" data-spm-anchor-id="a313x.search_index.0.i25.29f93a81JYBNL7" class="selected"></path><path d="M589.2 888.4c-90.34 0-164.06-73.74-164.06-164.06s73.74-164.06 164.06-164.06 164.06 73.74 164.06 164.06-73.72 164.06-164.06 164.06z m0-270.24c-58.68 0-106.16 47.48-106.16 106.16s47.48 106.16 106.16 106.16 106.16-47.48 106.16-106.16c0.02-58.68-47.48-106.16-106.16-106.16z" fill="#ffffff" p-id="17634" data-spm-anchor-id="a313x.search_index.0.i23.29f93a81JYBNL7" class="selected"></path></svg>

BIN
public/dist/assets/lajitong.1711290598880.png


+ 1 - 0
public/dist/assets/layout.1711290598880.css

@@ -0,0 +1 @@
+.manager-menu{position:fixed;height:calc(100vh - 30px);width:145px;left:15px;top:15px;border-radius:12px;overflow:hidden}.manager-menu>ul{border-right:none!important}.Manager{background-color:#eee}.manager-view{margin-left:160px;width:calc(100% - 160px);min-height:100vh;background-color:#eee;padding:15px}.el-menu-item{min-width:100%!important}.clientHome{width:60px;height:60px}

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/layout.1711290598880.js


+ 1 - 0
public/dist/assets/layout.1711290598880.svg

@@ -0,0 +1 @@
+<svg t="1708399729042" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4422" width="128" height="128"><path d="M921.6 581.632c0 12.288-8.192 20.48-20.48 20.48s-20.48-8.192-20.48-20.48V204.8c0-34.816-26.624-61.44-61.44-61.44h-614.4c-34.816 0-61.44 26.624-61.44 61.44v614.4c0 34.816 26.624 61.44 61.44 61.44h614.4c34.816 0 61.44-26.624 61.44-61.44v-90.112c0-12.288 8.192-20.48 20.48-20.48s20.48 8.192 20.48 20.48v90.112c0 57.344-45.056 102.4-102.4 102.4h-614.4c-57.344 0-102.4-45.056-102.4-102.4v-614.4c0-57.344 45.056-102.4 102.4-102.4h614.4c57.344 0 102.4 45.056 102.4 102.4v376.832z m-430.08-315.392c0-12.288 8.192-20.48 20.48-20.48s20.48 8.192 20.48 20.48v102.4c0 12.288-8.192 20.48-20.48 20.48s-20.48-8.192-20.48-20.48v-102.4z m-204.8 389.12c0-12.288 8.192-20.48 20.48-20.48s20.48 8.192 20.48 20.48v102.4c0 12.288-8.192 20.48-20.48 20.48s-20.48-8.192-20.48-20.48v-102.4z m409.6 0c0-12.288 8.192-20.48 20.48-20.48s20.48 8.192 20.48 20.48v102.4c0 12.288-8.192 20.48-20.48 20.48s-20.48-8.192-20.48-20.48v-102.4z m-204.8-184.32c0-12.288 8.192-20.48 20.48-20.48s20.48 8.192 20.48 20.48v286.72c0 12.288-8.192 20.48-20.48 20.48s-20.48-8.192-20.48-20.48v-286.72z m-204.8-204.8c0-12.288 8.192-20.48 20.48-20.48s20.48 8.192 20.48 20.48v286.72c0 12.288-8.192 20.48-20.48 20.48s-20.48-8.192-20.48-20.48v-286.72z m409.6 0c0-12.288 8.192-20.48 20.48-20.48s20.48 8.192 20.48 20.48v286.72c0 12.288-8.192 20.48-20.48 20.48s-20.48-8.192-20.48-20.48v-286.72z" fill="#000" p-id="4423"></path></svg>

+ 1 - 0
public/dist/assets/light.1711290598880.svg

@@ -0,0 +1 @@
+<svg t="1709550212337" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7856" width="128" height="128"><path d="M671.532413 735.729527c-56.056714 0-163.475212-10.083659-253.105578-77.69043-83.522252-63.001893-125.861546-138.243551-166.805051-211.011877-42.092677-74.815963-81.857333-145.482419-164.451445-204.449416a24.530696 24.530696 0 0 1-9.646708-25.483394 24.533766 24.533766 0 0 1 19.84907-18.670222c2.831488-0.472767 70.517053-11.610432 167.918408-11.610432 102.18531 0 251.90217 12.8077 384.852158 73.845869 200.576201 92.066859 198.407816 263.489066 197.378369 345.867262-0.203638 15.939017-0.455371 35.775808 1.545193 41.027415 5.665023 11.45489 4.861728 24.831548-2.347465 36.417421-22.094204 35.568077-106.304118 51.757804-175.186951 51.757804zM161.981185 240.267179c61.565171 56.83545 97.460706 120.627335 132.393309 182.708252 40.243563 71.522963 78.252225 139.075499 153.595191 195.904808 78.217433 58.996672 173.636642 67.804269 223.561705 67.804269 71.409376 0 116.998691-16.299221 130.315997-25.783223-3.891633-13.418614-3.675716-30.824029-3.37691-54.996568 1.041726-82.995249 2.790556-221.903949-168.780031-300.664758-124.902708-57.337893-267.104407-69.372997-364.397291-69.372997-40.644699-0.001023-76.152401 2.065032-103.31197 4.400217z" stroke-width="3" p-id="7857" fill="#ffffff"></path><path d="M922.584216 837.18522c-9.783831 0-19.029402-5.903453-22.837125-15.5563-11.184737-28.405957-165.798117-313.587068-367.367948-438.818258C363.915313 278.145881 101.290941 247.285013 98.654904 246.986207c-13.45443-1.532913-23.130813-13.681604-21.597901-27.136033 1.521656-13.465686 13.658068-23.154349 27.123754-21.603018 11.190877 1.269923 276.121781 32.333406 454.088033 142.901641C772.388449 474.182696 931.648662 768.758782 945.396781 803.666826c4.957919 12.597923-1.234107 26.837228-13.84431 31.806403a24.416086 24.416086 0 0 1-8.968255 1.711991z" p-id="7858" stroke-width="3" fill="#ffffff"></path></svg>

+ 1 - 0
public/dist/assets/linkstore.1711290598880.css

@@ -0,0 +1 @@
+.logoiconRadius{height:55px;width:55px;border-radius:12px;border:2px solid #eeeeee}.bgColorPicker{display:flex;gap:15px;margin-right:15px}.bgColorPicker>li{border:1px solid #ccc;width:32px;height:32px;border-radius:3px;display:flex;justify-content:center;align-items:center}.bgColorPicker>li>div{width:22px;height:22px;border-radius:2px;border:1px solid #8c939d}.el-message-box__message{width:100%}.touming{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAANJJREFUWEftlz0OAWEQhp9NREejonIHFWdwBx3ncAAH4BouoFO5AI2KSqWiYgoKmdeur/lWMpNs8052Z/Jk/rYgsxWZ41O7BKbAwKGyA1aC1ljoe8Cer/ZJYCkSWANz8SVL2rNNJBAEUghYQXWdijoAR1FsTaGfgIvjuwPXl151DoyAiQg0E3of6Dg+C/5uz0ggCNSOQOyCIBAE7BzrOfO7AbTFzN8K/fa8orw2N/0cyygI/CWBoaj2hdDttGuJi+jnLij7wUn2V13HyQHKXsyewAONol4hxQbtygAAAABJRU5ErkJggg==) no-repeat center / cover}

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/linkstore.1711290598880.js


+ 1 - 0
public/dist/assets/mouseMenu.1711290598880.css

@@ -0,0 +1 @@
+.layoutSet{padding:0 10px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;grid-gap:10px;margin-bottom:10px}.layoutSet>div{cursor:pointer;width:100%;height:25px;line-height:25px;padding:0 10px;font-size:13px;border-radius:30px;background-color:#ffffffa4}.layoutSet>div:hover{background-color:#fff}.pageGroup:hover .childrenMenu{display:block!important}.childrenMenu{display:none;position:absolute;left:calc(100% + 6px);top:-5px;width:120px;background-color:#f0f8ff;border-radius:10px;padding:5px;font-size:14px;background:rgba(243,243,243,.7);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(40px)}.childrenMenu:after{position:absolute;z-index:0;content:" ";width:50px;background-color:transparent;top:0;height:50px;left:-25px}@keyframes fade-in{0%{transform:scale3d(0,0,1)}to{transform:scaleZ(1)}}.mouseMenu{position:fixed;width:140px;z-index:999;background-color:transparent;border-radius:10px;padding:5px;transform:scale3d(0,0,1);transform-origin:left top;animation:fade-in .2s forwards}.mouseMenu:before{content:"";position:absolute;width:100%;height:100%;top:0;border-radius:10px;left:0;background:rgba(255,255,255,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(40px);z-index:-1}.mouseMenu .mhover{border-radius:8px;transition:background-color .2s}.mouseMenu .mhover:hover{background-color:#ffffff5e}.mouseMenu .mouseItem{position:relative;z-index:10;padding:0 10px;display:flex;align-items:center;min-height:35px;cursor:pointer}.mouseMenu .mouseItem>img{width:15px;height:15px}.mouseMenu .mouseItem>span{margin-left:5px;font-size:13px}

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/mouseMenu.1711290598880.js


+ 1 - 0
public/dist/assets/net.1711290598880.js

@@ -0,0 +1 @@
+var s="/dist/assets/net.1711290598880.svg";export{s as _};

+ 1 - 0
public/dist/assets/net.1711290598880.svg

@@ -0,0 +1 @@
+<svg t="1705409061788" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3608" width="128" height="128"><path d="M511.5 82c-236.6 0-429 192.4-429 429 0 236.5 192.5 429 429 429 236.6 0 429-192.4 429-429 0-236.5-192.4-429-429-429z m377.6 403.8H734.3c-4-139.9-41.4-259.9-97.5-331.9C776.5 203 879 332 889.1 485.8z m-402.8-349v349h-147c5.5-175.5 68.6-322.6 147-349z m0 399.4v349c-78.4-26.4-141.4-173.5-147-349h147z m50.5 349v-349h147c-5.6 175.5-68.6 322.6-147 349z m0-399.4v-349c78.4 26.4 141.4 173.5 147 349h-147zM386.3 153.9c-56.1 72-93.5 192-97.5 331.9H133.9C144.1 332 246.5 203 386.3 153.9zM133.9 536.2h154.8c4 139.9 41.4 259.9 97.5 331.9C246.5 819 144.1 690 133.9 536.2z m502.8 331.9c56.1-72 93.5-192 97.5-331.9H889C879 690 776.5 819 636.7 868.1z" fill="#2c2c2c" p-id="3609"></path></svg>

+ 1 - 0
public/dist/assets/onlineMall.1711290598880.css

@@ -0,0 +1 @@
+.onlinemall{position:relative;width:100%;height:100%}.iconSearch{height:40px}.iconSearch>.el-input__wrapper{border-radius:30px}.iconSearch>.el-input__wrapper>input{font-size:14px;text-indent:10px!important}.linkscroll{position:relative;overflow-y:auto;width:100%;height:calc(100% - 100px)}.linkscroll::-webkit-scrollbar{display:none}.linklist{grid-gap:10px}.linklist>div{height:100px;border-radius:8px;background-color:#44444b1a;padding:10px}.linklist>div>.links{display:flex}.linklist>div>.links>.linklogo{flex-shrink:0;border-radius:8px;width:40px;height:40px;display:block}.linklist>div>.links>.linkTips{margin-left:10px;display:flex;color:#0d0c22;flex-direction:column}.linklist>div>.links>.linkTips>div{text-overflow:ellipsis;height:32px;overflow:hidden}.background-orange{background-color:#0080ff!important;color:#f3f3f3}.linkarea{width:100%;height:40px;display:flex;align-items:center;overflow-y:scroll;color:#0d0c22}.linkarea>div{cursor:pointer;flex-shrink:0;padding:3px 10px;font-size:12px;border-radius:20px;display:flex;background-color:#44444b1a}.iconSearch>.is-focus{box-shadow:0 0 0 1px #04a3ff!important}.iconSearch>.el-input__wrapper{background-color:#44444b1a;box-shadow:0 0 0 1px transparent}.iconSearch>.el-input__wrapper>input::-moz-placeholder{color:#505050}.iconSearch>.el-input__wrapper>input::placeholder{color:#505050}

File diff suppressed because it is too large
+ 0 - 0
public/dist/assets/onlineMall.1711290598880.js


+ 1 - 0
public/dist/assets/open.1711290598880.svg

@@ -0,0 +1 @@
+<svg t="1708268580445" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="31538" width="128" height="128"><path d="M880.94 960H248.47c-43.6 0-79.06-35.46-79.06-79.06V248.47c0-43.6 35.46-79.06 79.06-79.06h632.47c43.6 0 79.06 35.46 79.06 79.06v632.47c0 43.6-35.46 79.06-79.06 79.06zM248.47 222.12c-14.53 0-26.35 11.82-26.35 26.35v632.47c0 14.53 11.82 26.35 26.35 26.35h632.47c14.53 0 26.35-11.82 26.35-26.35V248.47c0-14.53-11.82-26.35-26.35-26.35H248.47z" fill="#000" p-id="31539"></path><path d="M933.65 383.53H195.76c-14.55 0-26.35-11.8-26.35-26.35V248.47c0-43.6 35.46-79.06 79.06-79.06h632.47c43.6 0 79.06 35.46 79.06 79.06v108.71c0 14.55-11.8 26.35-26.35 26.35z m-711.53-52.71H907.3v-82.35c0-14.53-11.82-26.35-26.35-26.35H248.47c-14.53 0-26.35 11.82-26.35 26.35v82.35z" fill="#000" p-id="31540"></path><path d="M288 276.47m-23.06 0a23.06 23.06 0 1 0 46.12 0 23.06 23.06 0 1 0-46.12 0Z" fill="#000" p-id="31541"></path><path d="M357.18 276.47m-23.06 0a23.06 23.06 0 1 0 46.12 0 23.06 23.06 0 1 0-46.12 0Z" fill="#000" p-id="31542"></path><path d="M426.35 276.47m-23.06 0a23.06 23.06 0 1 0 46.12 0 23.06 23.06 0 1 0-46.12 0Z" fill="#000" p-id="31543"></path><path d="M195.76 854.59h-52.71c-43.6 0-79.06-35.46-79.06-79.06V143.06C64 99.46 99.46 64 143.06 64h632.47c43.6 0 79.06 35.46 79.06 79.06v52.71c0 14.55-11.8 26.35-26.35 26.35H248.47c-14.53 0-26.35 11.82-26.35 26.35v579.76c0 14.56-11.8 26.36-26.36 26.36z m-52.7-737.88c-14.53 0-26.35 11.82-26.35 26.35v632.47c0 14.53 11.82 26.35 26.35 26.35h26.35V248.47c0-43.6 35.46-79.06 79.06-79.06h553.41v-26.35c0-14.53-11.82-26.35-26.35-26.35H143.06z" fill="#000" p-id="31544"></path></svg>

+ 1 - 0
public/dist/assets/openType.1711290598880.css

@@ -0,0 +1 @@
+.openType>div{border-radius:6px;background-color:#fff;padding:10px;display:flex;align-items:center;justify-content:space-between}.openType>div>span{font-size:13px}

+ 1 - 0
public/dist/assets/openType.1711290598880.js

@@ -0,0 +1 @@
+import{u as e,b as l,c as n,d as a,e as o,k as s,j as p}from"./index.1711290598880.js";const u={class:"openType space-y-2"},t=o("span",null,"搜索新页面打开",-1),c=o("span",null,"标签新页面打开",-1),d=o("span",null,"进入程序自动聚焦搜索",-1),m=o("span",null,"搜索词联想功能",-1),i=o("span",null,"图标快捷搜索展示",-1),g={__name:"openType",setup(g){const f=e(),V=()=>{f.commit("updateConfig")};return(e,g)=>{const r=l("el-switch");return n(),a("div",u,[o("div",null,[t,s(r,{onChange:V,modelValue:p(f).state.config.openType.searchOpen,"onUpdate:modelValue":g[0]||(g[0]=e=>p(f).state.config.openType.searchOpen=e),class:"ml-2"},null,8,["modelValue"])]),o("div",null,[c,s(r,{onChange:V,modelValue:p(f).state.config.openType.linkOpen,"onUpdate:modelValue":g[1]||(g[1]=e=>p(f).state.config.openType.linkOpen=e),class:"ml-2"},null,8,["modelValue"])]),o("div",null,[d,s(r,{onChange:V,modelValue:p(f).state.config.openType.autofocus,"onUpdate:modelValue":g[2]||(g[2]=e=>p(f).state.config.openType.autofocus=e),class:"ml-2"},null,8,["modelValue"])]),o("div",null,[m,s(r,{onChange:V,modelValue:p(f).state.config.openType.searchRecommend,"onUpdate:modelValue":g[3]||(g[3]=e=>p(f).state.config.openType.searchRecommend=e),class:"ml-2"},null,8,["modelValue"])]),o("div",null,[i,s(r,{onChange:V,modelValue:p(f).state.config.openType.searchLink,"onUpdate:modelValue":g[4]||(g[4]=e=>p(f).state.config.openType.searchLink=e),class:"ml-2"},null,8,["modelValue"])])])}}};export{g as default};

+ 1 - 0
public/dist/assets/right.1711290598880.svg

@@ -0,0 +1 @@
+<svg t="1709561529421" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29759" width="128" height="128"><path d="M595.858286 512l-206.518857-206.482286a18.285714 18.285714 0 0 1 25.892571-25.892571l219.428571 219.428571a18.285714 18.285714 0 0 1 0 25.892572l-219.428571 219.428571a18.285714 18.285714 0 0 1-25.892571-25.892571L595.858286 512z" fill="#2c2c2c" p-id="29760"></path></svg>

+ 9 - 0
public/dist/assets/search.1711290598880.svg

@@ -0,0 +1,9 @@
+<svg width="22" height="22" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
+          <path
+            d="M21 38C30.3888 38 38 30.3888 38 21C38 11.6112 30.3888 4 21 4C11.6112 4 4 11.6112 4 21C4 30.3888 11.6112 38 21 38Z"
+            fill="none" stroke="#747474" stroke-width="4" stroke-linejoin="round" />
+          <path d="M26.657 14.3431C25.2093 12.8954 23.2093 12 21.0001 12C18.791 12 16.791 12.8954 15.3433 14.3431"
+            stroke="#747474" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" />
+          <path d="M33.2216 33.2217L41.7069 41.707" stroke="#747474" stroke-width="4" stroke-linecap="round"
+            stroke-linejoin="round" />
+        </svg>

+ 1 - 0
public/dist/assets/searchEngine.1711290598880.css

@@ -0,0 +1 @@
+.searchEngineLogo[data-v-2a7874d8]{width:40px;height:40px;border-radius:12px;border:2px solid #eeeeee;padding:5px;margin:auto}

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