Browse Source

最新版本

tushan 1 year ago
parent
commit
8b03f00868
99 changed files with 200 additions and 47 deletions
  1. 47 3
      README.md
  2. 2 2
      app/controller/Admin.php
  3. 44 19
      app/controller/Api.php
  4. 9 4
      app/controller/Index.php
  5. 57 2
      app/controller/LinkStore.php
  6. 1 1
      app/controller/User.php
  7. 15 0
      app/model/LinkFolderModel.php
  8. 10 1
      install.sql
  9. 0 0
      public/dist/assets/360.1699270951405.svg
  10. 0 0
      public/dist/assets/about.1699270951405.css
  11. 1 1
      public/dist/assets/about.1699270951405.js
  12. 0 0
      public/dist/assets/about.1699270951405.svg
  13. 0 0
      public/dist/assets/add.1699270951405.svg
  14. 0 0
      public/dist/assets/addicon.1699270951405.css
  15. 1 1
      public/dist/assets/addicon.1699270951405.js
  16. 0 1
      public/dist/assets/appSide.1698223837127.css
  17. 0 0
      public/dist/assets/appSide.1698223837127.js
  18. 0 0
      public/dist/assets/appSide.1699270951405.css
  19. 0 0
      public/dist/assets/appSide.1699270951405.js
  20. 0 0
      public/dist/assets/appstore.1699270951405.svg
  21. 0 0
      public/dist/assets/baidu.1699270951405.svg
  22. 0 0
      public/dist/assets/baidudev.1699270951405.png
  23. 0 0
      public/dist/assets/bilibiliico.1699270951405.png
  24. 0 0
      public/dist/assets/bing.1699270951405.svg
  25. 0 0
      public/dist/assets/boy.1699270951405.svg
  26. 0 0
      public/dist/assets/class.1699270951405.svg
  27. 0 0
      public/dist/assets/clienthome.1699270951405.svg
  28. 0 0
      public/dist/assets/close.1699270951405.svg
  29. 0 0
      public/dist/assets/controller.1699270951405.css
  30. 0 0
      public/dist/assets/controller.1699270951405.js
  31. 0 0
      public/dist/assets/cover.1699270951405.svg
  32. 0 0
      public/dist/assets/custom.1698223837127.js
  33. 0 0
      public/dist/assets/custom.1699270951405.css
  34. 0 0
      public/dist/assets/custom.1699270951405.js
  35. 0 0
      public/dist/assets/custom.1699270951405.svg
  36. 0 0
      public/dist/assets/del.1699270951405.svg
  37. 0 0
      public/dist/assets/deskTopMouse.1699270951405.css
  38. 1 1
      public/dist/assets/deskTopMouse.1699270951405.js
  39. 0 1
      public/dist/assets/edit.1698223837127.js
  40. 1 0
      public/dist/assets/edit.1699270951405.js
  41. 0 0
      public/dist/assets/edit.1699270951405.svg
  42. 0 0
      public/dist/assets/google.1699270951405.svg
  43. 0 0
      public/dist/assets/href.1698223837127.js
  44. 0 0
      public/dist/assets/href.1699270951405.js
  45. 0 0
      public/dist/assets/iconGroup.1698223837127.css
  46. 0 1
      public/dist/assets/iconGroup.1698223837127.js
  47. 0 0
      public/dist/assets/iconGroup.1699270951405.css
  48. 0 0
      public/dist/assets/iconGroup.1699270951405.js
  49. 0 1
      public/dist/assets/iconGroupBox.1698223837127.css
  50. 0 0
      public/dist/assets/iconGroupBox.1698223837127.js
  51. 1 0
      public/dist/assets/iconGroupBox.1699270951405.css
  52. 0 0
      public/dist/assets/iconGroupBox.1699270951405.js
  53. 0 0
      public/dist/assets/index.1698223837127.css
  54. 0 0
      public/dist/assets/index.16982238371274.css
  55. 0 0
      public/dist/assets/index.1699270951405.css
  56. 0 0
      public/dist/assets/index.1699270951405.js
  57. 1 0
      public/dist/assets/index.16992709514052.css
  58. 1 1
      public/dist/assets/index.16992709514052.js
  59. 0 0
      public/dist/assets/index.16992709514053.css
  60. 0 0
      public/dist/assets/index.16992709514053.js
  61. 0 0
      public/dist/assets/index.16992709514054.css
  62. 1 0
      public/dist/assets/index.16992709514054.js
  63. 0 0
      public/dist/assets/index.16992709514055.css
  64. 1 1
      public/dist/assets/index.16992709514055.js
  65. 1 1
      public/dist/assets/jquery.1699270951405.js
  66. 0 0
      public/dist/assets/kong.1699270951405.svg
  67. 0 0
      public/dist/assets/lajitong.1699270951405.svg
  68. 0 0
      public/dist/assets/layout.1699270951405.css
  69. 1 1
      public/dist/assets/layout.1699270951405.js
  70. 0 0
      public/dist/assets/layout.1699270951405.svg
  71. 0 0
      public/dist/assets/linkstore.1698223837127.js
  72. 0 0
      public/dist/assets/linkstore.1699270951405.css
  73. 0 0
      public/dist/assets/linkstore.1699270951405.js
  74. 0 0
      public/dist/assets/mouseMenu.1699270951405.js
  75. 0 0
      public/dist/assets/onlineMall.1698223837127.js
  76. 0 0
      public/dist/assets/onlineMall.1699270951405.css
  77. 0 0
      public/dist/assets/onlineMall.1699270951405.js
  78. 0 0
      public/dist/assets/open.1699270951405.svg
  79. 0 0
      public/dist/assets/openType.1699270951405.css
  80. 1 1
      public/dist/assets/openType.1699270951405.js
  81. 0 0
      public/dist/assets/openType.1699270951405.svg
  82. 0 0
      public/dist/assets/reload.1699270951405.svg
  83. 0 0
      public/dist/assets/search.1699270951405.svg
  84. 0 0
      public/dist/assets/setting.1698223837127.js
  85. 0 0
      public/dist/assets/setting.1699270951405.css
  86. 0 0
      public/dist/assets/setting.1699270951405.js
  87. 0 0
      public/dist/assets/setting.1699270951405.svg
  88. 0 0
      public/dist/assets/sougou.1699270951405.svg
  89. 0 0
      public/dist/assets/theme.1699270951405.js
  90. 0 0
      public/dist/assets/theme.1699270951405.svg
  91. 0 0
      public/dist/assets/user.16982238371272.js
  92. 0 0
      public/dist/assets/user.1699270951405.css
  93. 0 0
      public/dist/assets/user.1699270951405.js
  94. 0 0
      public/dist/assets/user.16992709514052.js
  95. 0 0
      public/dist/assets/wapp.1699270951405.svg
  96. 0 0
      public/dist/assets/weiboico.1699270951405.png
  97. 0 0
      public/dist/assets/wiki.1699270951405.png
  98. 1 1
      public/dist/index.html
  99. 2 2
      public/index.php

+ 47 - 3
README.md

@@ -31,10 +31,54 @@ Mtab书签的界面设计美观简洁,操作简单直观,让你可以专注
 
 # Mtab安装教程
 
-**准备环境 Linux系统+php7.4+mysql8(mysql5.7也行,支持json就行)+Nginx+Redis;**
+## 注意本文档基于宝塔面板的环境下进行编写
 
-php请安装**redis,fileinfo**扩展,然后并且解除一些禁用函数(宝塔默认禁用了一些函数)
+**准备环境 Linux系统+php7.4+mysql8(mysql5.7也行,支持json就行)+Nginx+Redis;**
 
+php请安装**redis,fileinfo,zip,curl,mysqli,json,json**等常用的扩展,然后并且解除一些禁用函数(宝塔默认禁用了一些函数)
+常用的扩展如下,一般来说安装php除了上述几个,一下的都是有的,需要去php.ini去解除
+```
+Core
+ctype
+curl
+date
+dom
+exif
+fileinfo
+filter
+gd
+gmp
+hash
+iconv
+igbinary
+imagick
+json
+libxml
+mbstring
+mysqli
+mysqlnd
+openssl
+pcntl
+pcre
+PDO
+pdo_mysql
+pdo_sqlite
+Phar
+posix
+readline
+redis
+Reflection
+session
+SPL
+sqlite3
+standard
+xml
+xmlreader
+xmlrpc
+xmlwriter
+zip
+zlib
+```
 需要解除的函数具体如下
 
 `shell_exec,putenv`
@@ -56,7 +100,7 @@ location ~^/ {
 ```
 4,然后配置好域名或者通过你自己的服务器的ip访问网站,不出意外会出现安装 页面,填写好一些基础的配置信息安装即可。(填写配置信息的是后请确保数据库账户和redis相关信息正确)
 
-5,安装完成后即可舒心访问网站,可通过登录安装时填写的账户登录网站进入后台
+5,安装完成后即可访问网站,可通过登录安装时填写的账户登录网站进入后台
 
 
 宝塔一键部署方式(预计国庆假期结束后一周左右上线)

+ 2 - 2
app/controller/Admin.php

@@ -4,8 +4,6 @@ namespace app\controller;
 
 use app\BaseController;
 use app\model\UserModel;
-use GuzzleHttp\Exception\GuzzleException;
-use think\facade\Log;
 
 class Admin extends BaseController
 {
@@ -34,6 +32,8 @@ class Admin extends BaseController
         //如果字段中的password有内容则md5加密后保存
         if (isset($data['password']) && mb_strlen($data['password']) > 0) {
             $data['password'] = md5($data['password']);
+        } else {
+            unset($data['password']);
         }
         $user->save($data);
         return $this->success('ok');

+ 44 - 19
app/controller/Api.php

@@ -63,14 +63,21 @@ class Api extends BaseController
             $urlInfo = parse_url($url);
             $host = $urlInfo['host'] ?? $urlInfo['path'];
             $title = '';
-            $scheme = "https";
+            $scheme = "http";
             if (isset($urlInfo['scheme'])) {
                 $scheme = $urlInfo["scheme"];
             }
             $realUrl = $scheme . "://" . $host;
-            $client = new Client();
-            $response = $client->get($realUrl);
-            $status = $response->getStatusCode();
+            $client = \Axios::http();
+            $response = null;
+            $status = null;
+            try {
+                $response = $client->get($realUrl);
+                $status = $response->getStatusCode();
+            } catch (\Exception $e) {
+                return $this->error('获取失败');
+            }
+
             if ($status == 200) {
                 $body = $response->getBody()->getContents();
                 $dom = new Dom();
@@ -83,13 +90,27 @@ class Api extends BaseController
                     $list = $dom->find('[rel="icon"]');
                     if (count($list) > 0) {
                         $icon = $list->href;
-                        if (preg_match('/\.(png|jpg|jpeg|ico|svg )$/', $icon, $matches)) {
-                            $fileFormat = $matches[1];
-                            $iconInfo = parse_url($icon);
-                            if (!isset($iconInfo['scheme'])) {
+                        $iconInfo = parse_url($icon);
+                        if (!isset($iconInfo['scheme'])) {
+                            if (isset($iconInfo['host'])) {
+                                $icon = "https://" . $iconInfo["host"] . $icon;
+                            } else {
                                 $icon = $realUrl . $icon;
                             }
-                            $icon = $this->downloadFile($icon, md5($realUrl) . '.' . $fileFormat);
+                        }
+                        $response = \Axios::http()->head($icon);
+                        $contentType = $response->getHeader('content-type');
+                        $contentType = $contentType[0];
+                        if (preg_match('/(png|jpg|jpeg|x-icon|svg\+xml)$/', $contentType, $matches)) {
+                            $contentType = array(
+                                'png' => 'png',
+                                'jpg' => 'jpg',
+                                'jpeg' => 'jpeg',
+                                'x-icon' => 'ico',
+                                'svg+xml' => 'svg'
+                            );
+                            $fileFormat = $matches[1];
+                            $icon = $this->downloadFile($icon, md5($realUrl) . '.' . $contentType[$fileFormat]);
                             if ($icon) {
                                 $icon = $cdn . $icon;
                             }
@@ -102,15 +123,19 @@ class Api extends BaseController
                 }
             }
             if (strlen($icon) == 0) {
-                $client = new Client();
-                $response = $client->get($realUrl . '/favicon.ico');
-                $status = $response->getStatusCode();
-                if ($status == 200) {
-                    $icon = $realUrl . '/favicon.ico';
-                    $icon = $this->downloadFile($icon, md5($realUrl) . ".ico");
-                    if ($icon) {
-                        $icon = $cdn . $icon;
+                try {
+                    $client = \Axios::http();
+                    $response = $client->get($realUrl . '/favicon.ico');
+                    $status = $response->getStatusCode();
+                    if ($status == 200) {
+                        $icon = $realUrl . '/favicon.ico';
+                        $icon = $this->downloadFile($icon, md5($realUrl) . '.ico');
+                        if ($icon) {
+                            $icon = $cdn . $icon;
+                        }
                     }
+                } catch (\Exception $e) {
+
                 }
             }
             if (strlen($icon) > 0) {
@@ -122,7 +147,7 @@ class Api extends BaseController
 
     private function downloadFile($url, $name)
     {
-        $client = new Client();
+        $client = \Axios::http();
         $path = '/images/' . date('Y/m/d/');
         $remotePath = public_path() . $path;
         $downloadPath = $remotePath . $name;
@@ -160,7 +185,7 @@ class Api extends BaseController
         if ($file->getSize() > 1024 * 1024 * 5) {
             return $this->error('max fileSize is 5M');
         }
-        if (in_array(strtolower($file->getOriginalExtension()), ['png', 'jpg', 'jpeg', 'webp'])) {
+        if (in_array(strtolower($file->getOriginalExtension()), ['png', 'jpg', 'jpeg', 'webp', 'ico'])) {
             // 验证文件并保存
             try {
                 // 构建保存路径

+ 9 - 4
app/controller/Index.php

@@ -1,5 +1,7 @@
 <?php
+
 namespace app\controller;
+
 use app\BaseController;
 use app\model\SettingModel;
 use GuzzleHttp\Exception\GuzzleException;
@@ -7,14 +9,17 @@ use think\exception\ErrorException;
 use think\facade\Cache;
 use think\facade\View;
 use think\Request;
+
 class Index extends BaseController
 {
     function index(Request $request, $s = ''): string
     {
-        $title = SettingModel::Config('title','Mtab书签');
-        View::assign("title",$title);
-        View::assign("keywords",SettingModel::Config('keywords','Mtab书签'));
-        View::assign("description",SettingModel::Config('description','Mtab书签'));
+        $title = SettingModel::Config('title', 'Mtab书签');
+        View::assign("title", $title);
+        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',''));
         return View::fetch("dist/index.html");
     }
 

+ 57 - 2
app/controller/LinkStore.php

@@ -3,6 +3,7 @@
 namespace app\controller;
 
 use app\BaseController;
+use app\model\LinkFolderModel;
 use app\model\LinkStoreModel;
 use think\facade\Db;
 
@@ -15,17 +16,41 @@ class LinkStore extends BaseController
         $area = $this->request->post('area', false);
         $sql = [];
         if ($name) {
-            $sql[] = ['name', 'like', "%" . $name . "%"];
+            $sql[] = ['name|tips', 'like', "%" . $name . "%"];
         }
         $list = LinkStoreModel::where($sql);
         //area需要使用find_in_set来匹配
-        if ($area) {
+        if ($area && $area != '全部') {
             $list = $list->whereRaw("find_in_set('$area',area)");
         }
         $list = $list->order("hot", 'desc')->paginate($limit);
         return $this->success('ok', $list);
     }
 
+    public function ListManager(): \think\response\Json
+    {
+        $admin = $this->getAdmin();
+        $limit = $this->request->post('limit', 15);
+        $name = $this->request->post('search.name', false);
+        $area = $this->request->post('search.area', false);
+        $sql = [];
+        if ($name) {
+            $sql[] = ['name|tips', 'like', '%' . $name . '%'];
+        }
+        $list = LinkStoreModel::where($sql);
+        //area需要使用find_in_set来匹配
+        if ($area && $area != '全部') {
+            $list = $list->whereRaw("find_in_set('$area',area)");
+        }
+        $list = $list->order('hot', 'desc')->paginate($limit);
+        return $this->success('ok', $list);
+    }
+
+    function getFolder(): \think\response\Json
+    {
+        return $this->success("ok", LinkFolderModel::order("sort","desc")->select());
+    }
+
     private function update(): \think\response\Json
     {
         $data = $this->request->post("form");
@@ -81,6 +106,36 @@ class LinkStore extends BaseController
         return $this->error('fail');
     }
 
+    function createFolder(): \think\response\Json
+    {
+        $type = $this->request->post('type', false);
+        $this->getAdmin();
+        if ($type === 'edit') {
+            $form = $this->request->post('info');
+            $id = $this->request->post('info.id', false);
+            if ($id && $id > 0) {
+                $model = LinkFolderModel::find($id);
+                $model->update($form);
+            } else {
+                $model = new LinkFolderModel();
+                $model->insert($form);
+            }
+
+        } else if ($type === 'del') {
+            $id = $this->request->post('id');
+            $result = LinkFolderModel::where("id", $id)->find();
+            if ($result) {
+                $result->delete();
+                Db::query(
+                    "UPDATE linkstore
+                     SET area = TRIM(BOTH ',' FROM REPLACE(CONCAT(',', area, ','), ',$id,', ','))
+                     WHERE FIND_IN_SET('$id', area) > 0;"
+                );
+            }
+        }
+        return $this->success('处理完毕!');
+    }
+
     public function del(): \think\response\Json
     {
         $this->getAdmin();

+ 1 - 1
app/controller/User.php

@@ -60,7 +60,7 @@ class User extends BaseController
                 return $this->error("密码过短");
             }
             $cacheCode = Cache::get("code" . $user);
-            if (!$cacheCode && $cacheCode != $code) {
+            if (!$cacheCode || $cacheCode != $code) {
                 return $this->error('验证码错误');
             }
             if (UserModel::where("mail", $user)->field("id,mail")->find()) {

+ 15 - 0
app/model/LinkFolderModel.php

@@ -0,0 +1,15 @@
+<?php
+/*
+ * @description:
+ * @Date: 2022-09-26 20:27:01
+ * @LastEditTime: 2022-09-26 20:27:53
+ */
+
+namespace app\model;
+
+use think\Model;
+
+class LinkFolderModel extends Model{
+    protected $pk = 'id';
+    protected $name = 'link_folder';
+}

+ 10 - 1
install.sql

@@ -32,7 +32,7 @@ create table linkstore
     size        varchar(20) default '1x1'  null,
     create_time datetime                   null,
     hot         bigint      default 0      null,
-    area        varchar(20) default '综合' null comment '专区',
+    area        varchar(20) default '' null comment '专区',
     tips        varchar(30)                null comment '介绍',
     domain      varchar(100)               null,
     app         int         default 0      null comment '是否app',
@@ -102,6 +102,15 @@ create table user
         unique (mail)
 );
 
+
+create table link_folder
+(
+    id   int auto_increment comment 'id'
+        primary key,
+    name varchar(50)   null comment '分类名称',
+    sort int default 0 null
+)
+    comment '标签链接分类';
 INSERT INTO linkstore (name, src, url, type, size, create_time, hot, area, 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);
 INSERT INTO linkstore (name, src, url, type, size, create_time, hot, area, tips, domain, app, install_num) VALUES ('蓝易云', '/static/tsy.png', 'https://www.tsyvps.com/aff/IRYIGFMX', 'icon', '1x1', '2022-11-07 22:02:41', 0, '综合,开发,推荐', '蓝易云-持证高性价比服务器', 'www.tsyvps.com,tsyvps.com', 0, 0);
 INSERT INTO linkstore (name, src, url, type, size, create_time, hot, area, tips, domain, app, install_num) VALUES ('ImgUrl', '/static/imgurl.png', 'https://imgurl.ink', 'icon', '1x1', '2022-11-07 22:05:46', 0, '推荐,综合,开发,在线工具', 'ImgUrl图床,图片外链', 'imgurl.ink,www.imgurl.ink', 0, 0);

+ 0 - 0
public/dist/assets/360.1698223837127.svg → public/dist/assets/360.1699270951405.svg


+ 0 - 0
public/dist/assets/about.1698223837127.css → public/dist/assets/about.1699270951405.css


+ 1 - 1
public/dist/assets/about.1698223837127.js → public/dist/assets/about.1699270951405.js

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

+ 0 - 0
public/dist/assets/about.1698223837127.svg → public/dist/assets/about.1699270951405.svg


+ 0 - 0
public/dist/assets/add.1698223837127.svg → public/dist/assets/add.1699270951405.svg


+ 0 - 0
public/dist/assets/addicon.1698223837127.css → public/dist/assets/addicon.1699270951405.css


+ 1 - 1
public/dist/assets/addicon.1698223837127.js → public/dist/assets/addicon.1699270951405.js

@@ -1 +1 @@
-import{B as s,C as a,N as l,r as t,c as e,d,e as i,n as c,j as n,g as o,a9 as p}from"./index.1698223837127.js";const r={class:"addiconframe flex"},u={class:"left"},v=i("div",{class:"titleTop flex pl-5 items-center"},[i("span",{class:"text-2xl"},"添加图标")],-1),m={class:"add-body space-y-3 pl-3 pr-3"},_=[i("img",{src:"/dist/assets/appstore.1698223837127.svg",alt:""},null,-1),i("span",null,"标签商城",-1)],f=[i("img",{src:"/dist/assets/custom.1698223837127.svg",alt:""},null,-1),i("span",null,"自定义标签",-1)],g={class:"right"},x={__name:"addicon",props:{data:{type:Object}},setup(x){var j;const y=x,C=s((()=>a((()=>import("./custom.1698223837127.js")),["assets/custom.1698223837127.js","assets/custom.1698223837127.css","assets/index.1698223837127.js","assets/index.16982238371274.css","assets/appSide.1698223837127.js","assets/appSide.1698223837127.css"]))),E=s((()=>a((()=>import("./onlineMall.1698223837127.js")),["assets/onlineMall.1698223837127.js","assets/onlineMall.1698223837127.css","assets/index.1698223837127.js","assets/index.16982238371274.css","assets/href.1698223837127.js"]))),O=l(E),T=t({}),b=s=>{O.value=s};return(null==(j=y.data)?void 0:j.id)&&(T.value=y.data,b(C)),(s,a)=>(e(),d("div",r,[i("div",u,[v,i("div",m,[i("div",{class:c(["add-type",{selectCom:n(O)==n(E)}]),onClick:a[0]||(a[0]=s=>b(n(E)))},_,2),i("div",{class:c(["add-type",{selectCom:n(O)==n(C)}]),onClick:a[1]||(a[1]=s=>b(n(C)))},f,2)])]),i("div",g,[(e(),o(p(n(O)),{data:T.value},null,8,["data"]))])]))}};export{x as default};
+import{B as s,C as a,N as l,r as t,c as e,d,e as i,n as c,j as n,g as o,a9 as p}from"./index.1699270951405.js";const r={class:"addiconframe flex"},u={class:"left"},v=i("div",{class:"titleTop flex pl-5 items-center"},[i("span",{class:"text-2xl"},"添加图标")],-1),m={class:"add-body space-y-3 pl-3 pr-3"},_=[i("img",{src:"/dist/assets/appstore.1699270951405.svg",alt:""},null,-1),i("span",null,"标签商城",-1)],f=[i("img",{src:"/dist/assets/custom.1699270951405.svg",alt:""},null,-1),i("span",null,"自定义标签",-1)],g={class:"right"},x={__name:"addicon",props:{data:{type:Object}},setup(x){var j;const y=x,C=s((()=>a((()=>import("./custom.1699270951405.js")),["assets/custom.1699270951405.js","assets/custom.1699270951405.css","assets/index.1699270951405.js","assets/index.16992709514055.css","assets/appSide.1699270951405.js","assets/appSide.1699270951405.css"]))),E=s((()=>a((()=>import("./onlineMall.1699270951405.js")),["assets/onlineMall.1699270951405.js","assets/onlineMall.1699270951405.css","assets/index.1699270951405.js","assets/index.16992709514055.css","assets/href.1699270951405.js"]))),O=l(E),T=t({}),b=s=>{O.value=s};return(null==(j=y.data)?void 0:j.id)&&(T.value=y.data,b(C)),(s,a)=>(e(),d("div",r,[i("div",u,[v,i("div",m,[i("div",{class:c(["add-type",{selectCom:n(O)==n(E)}]),onClick:a[0]||(a[0]=s=>b(n(E)))},_,2),i("div",{class:c(["add-type",{selectCom:n(O)==n(C)}]),onClick:a[1]||(a[1]=s=>b(n(C)))},f,2)])]),i("div",g,[(e(),o(p(n(O)),{data:T.value},null,8,["data"]))])]))}};export{x as default};

+ 0 - 1
public/dist/assets/appSide.1698223837127.css

@@ -1 +0,0 @@
-:root{--framerSvg: #a5a5a5;--frameHeight: 500px}.componentView{position:absolute;width:100%;height:calc(100% - 28px)}.framerAlert{overflow:hidden;min-height:500px;height:var(--frameHeight)}.framerAlert>.el-dialog__header{height:28px;margin-right:0;border-radius:10px 10px 0 0;overflow:hidden;padding:0!important}.framerAlert>.el-dialog__body{padding:0!important}.framerAlert .windowController{padding:5px 10px}.framerAlert .windowController>svg{width:18px;height:18px}.framerAlert .windowfull:hover{--framerSvg: #ffffff;background-color:#2fb8f8}.framerAlert .windowclose:hover{--framerSvg: #ffffff;background-color:#ff000d}.appSide{position:fixed;z-index:999}

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


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


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


+ 0 - 0
public/dist/assets/appstore.1698223837127.svg → public/dist/assets/appstore.1699270951405.svg


+ 0 - 0
public/dist/assets/baidu.1698223837127.svg → public/dist/assets/baidu.1699270951405.svg


+ 0 - 0
public/dist/assets/baidudev.1698223837127.png → public/dist/assets/baidudev.1699270951405.png


+ 0 - 0
public/dist/assets/bilibiliico.1698223837127.png → public/dist/assets/bilibiliico.1699270951405.png


+ 0 - 0
public/dist/assets/bing.1698223837127.svg → public/dist/assets/bing.1699270951405.svg


+ 0 - 0
public/dist/assets/boy.1698223837127.svg → public/dist/assets/boy.1699270951405.svg


+ 0 - 0
public/dist/assets/class.1698223837127.svg → public/dist/assets/class.1699270951405.svg


+ 0 - 0
public/dist/assets/clienthome.1698223837127.svg → public/dist/assets/clienthome.1699270951405.svg


+ 0 - 0
public/dist/assets/close.1698223837127.svg → public/dist/assets/close.1699270951405.svg


+ 0 - 0
public/dist/assets/controller.1698223837127.css → public/dist/assets/controller.1699270951405.css


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


+ 0 - 0
public/dist/assets/cover.1698223837127.svg → public/dist/assets/cover.1699270951405.svg


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


+ 0 - 0
public/dist/assets/custom.1698223837127.css → public/dist/assets/custom.1699270951405.css


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


+ 0 - 0
public/dist/assets/custom.1698223837127.svg → public/dist/assets/custom.1699270951405.svg


+ 0 - 0
public/dist/assets/del.1698223837127.svg → public/dist/assets/del.1699270951405.svg


+ 0 - 0
public/dist/assets/mouseMenu.1698223837127.css → public/dist/assets/deskTopMouse.1699270951405.css


+ 1 - 1
public/dist/assets/deskTopMouse.1698223837127.js → public/dist/assets/deskTopMouse.1699270951405.js

@@ -1 +1 @@
-import{u as s,r as e,a7 as o,p as t,o as n,c as l,d as a,e as i,l as u,x as m,m as p,a8 as d}from"./index.1698223837127.js";import{_ as c}from"./edit.1698223837127.js";import{a as r}from"./href.1698223837127.js";const v=["onClick"],k=[i("img",{src:"/dist/assets/add.1698223837127.svg"},null,-1),i("span",null,"添加图标",-1)],g=["onClick"],C=[i("img",{src:"/dist/assets/class.1698223837127.svg"},null,-1),i("span",null,"创建分类",-1)],f=["onClick"],x=[i("img",{src:c},null,-1),i("span",null,"批量编辑",-1)],h=["onClick"],w=[i("img",{src:"/dist/assets/reload.1698223837127.svg"},null,-1),i("span",null,"刷新页面",-1)],I=["onClick"],M=[i("img",{src:"/dist/assets/setting.1698223837127.svg"},null,-1),i("span",null,"设置",-1)],j={__name:"deskTopMouse",setup(c){const j=s(),y=e(!1),L=o({top:"0px",left:"0px"}),T=()=>{r("tab://setting"),y.value=!1},_=()=>{let s={id:d(),size:"2x2",component:"iconGroup",name:"创建分组",type:"component",url:"iconGroup",children:[]};j.state.link.push(s),j.commit("updateLink"),y.value=!1},b=()=>{j.state.editStatus=!0,y.value=!1},E=()=>{r("tab://addicon"),y.value=!1},G=()=>{t.emit("reload"),y.value=!1},z=s=>{L.top=s.top+"px",L.left=s.left+"px",y.value=!0},S=s=>{y.value&&(y.value=!1)};return window.addEventListener("mousedown",S),t.on("deskTopMouse",z),n((()=>{window.removeEventListener("mousedown",S),t.off("deskTopMouse",z)})),(s,e)=>y.value?(l(),a("div",{key:0,class:"mouseMenu",style:m(L),onMousedown:e[0]||(e[0]=u((()=>{}),["stop"])),onContextmenu:e[1]||(e[1]=u((()=>{}),["prevent"]))},[i("div",{onClick:u(E,["stop"]),class:"mouseItem mhover"},k,8,v),i("div",{onClick:u(_,["stop"]),class:"mouseItem mhover"},C,8,g),i("div",{onClick:u(b,["stop"]),class:"mouseItem mhover"},x,8,f),i("div",{onClick:u(G,["stop"]),class:"mouseItem mhover"},w,8,h),i("div",{onClick:u(T,["stop"]),class:"mouseItem mhover"},M,8,I)],36)):p("",!0)}};export{j as default};
+import{u as s,r as e,a7 as o,p as t,o as n,c as l,d as a,e as i,l as u,x as m,m as p,a8 as d}from"./index.1699270951405.js";import{_ as c}from"./edit.1699270951405.js";import{a as r}from"./href.1699270951405.js";const v=["onClick"],k=[i("img",{src:"/dist/assets/add.1699270951405.svg"},null,-1),i("span",null,"添加图标",-1)],g=["onClick"],C=[i("img",{src:"/dist/assets/class.1699270951405.svg"},null,-1),i("span",null,"创建分类",-1)],f=["onClick"],x=[i("img",{src:c},null,-1),i("span",null,"批量编辑",-1)],h=["onClick"],w=[i("img",{src:"/dist/assets/reload.1699270951405.svg"},null,-1),i("span",null,"刷新页面",-1)],I=["onClick"],M=[i("img",{src:"/dist/assets/setting.1699270951405.svg"},null,-1),i("span",null,"设置",-1)],j={__name:"deskTopMouse",setup(c){const j=s(),y=e(!1),L=o({top:"0px",left:"0px"}),T=()=>{r("tab://setting"),y.value=!1},_=()=>{let s={id:d(),size:"2x2",component:"iconGroup",name:"创建分组",type:"component",url:"iconGroup",children:[]};j.state.link.push(s),j.commit("updateLink"),y.value=!1},b=()=>{j.state.editStatus=!0,y.value=!1},E=()=>{r("tab://addicon"),y.value=!1},G=()=>{t.emit("reload"),y.value=!1},z=s=>{L.top=s.top+"px",L.left=s.left+"px",y.value=!0},S=s=>{y.value&&(y.value=!1)};return window.addEventListener("mousedown",S),t.on("deskTopMouse",z),n((()=>{window.removeEventListener("mousedown",S),t.off("deskTopMouse",z)})),(s,e)=>y.value?(l(),a("div",{key:0,class:"mouseMenu",style:m(L),onMousedown:e[0]||(e[0]=u((()=>{}),["stop"])),onContextmenu:e[1]||(e[1]=u((()=>{}),["prevent"]))},[i("div",{onClick:u(E,["stop"]),class:"mouseItem mhover"},k,8,v),i("div",{onClick:u(_,["stop"]),class:"mouseItem mhover"},C,8,g),i("div",{onClick:u(b,["stop"]),class:"mouseItem mhover"},x,8,f),i("div",{onClick:u(G,["stop"]),class:"mouseItem mhover"},w,8,h),i("div",{onClick:u(T,["stop"]),class:"mouseItem mhover"},M,8,I)],36)):p("",!0)}};export{j as default};

+ 0 - 1
public/dist/assets/edit.1698223837127.js

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

+ 1 - 0
public/dist/assets/edit.1699270951405.js

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

+ 0 - 0
public/dist/assets/edit.1698223837127.svg → public/dist/assets/edit.1699270951405.svg


+ 0 - 0
public/dist/assets/google.1698223837127.svg → public/dist/assets/google.1699270951405.svg


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


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


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


+ 0 - 1
public/dist/assets/iconGroup.1698223837127.js

@@ -1 +0,0 @@
-import{r as a,u as e,w as o,p as s,o as t,c as n,d as i,e as l,n as d,l as r,F as v,f as u,g as c,h as p,t as m,T as w,j as f,G as D,D as g}from"./index.1698223837127.js";import{$ as M}from"./jquery.1698223837127.js";const h=["onDragenter","onDragleave","onClick"],x=["onDragleave","onDragenter"],y={class:"item"},G={class:"itemBox hover"},k=["src"],z={__name:"iconGroup",props:{data:{type:Object,default:()=>({size:"1x1"})}},setup(z){var C;const j=z,B=a(!1),T=a(j.data),_=e(),b=a(_.getters.findChildren(j.data.id)||[]),L=a(j.data.size);let R=!1,Z=null,$=null;const q=()=>{$=setTimeout((()=>{0==window.MoveData.canMove&&(window.MoveData.canMove=!0)}),300)},F=()=>{clearTimeout($),window.MoveData.canMove=!1},O=a=>{"component"!==window.MoveData.type&&(B.value=!0,M(`.${T.value.id}`).parent().parent().addClass("selBoxsss"),"icon"===window.MoveData.type&&(R=!0,window.MoveData.canMove="lock","number"==typeof Z&&clearTimeout(Z),Z=setTimeout((()=>{R&&E()}),1e3)))},P=()=>{M(`.${T.value.id}`).parent().parent().removeClass("selBoxsss"),B.value=!1,window.MoveData.canMove=!1,R=!1},A=()=>{s.emit("addGroupBox",{type:"show",pid:j.data.id})},E=()=>{s.emit("addGroupBox",{type:"add",pid:j.data.id})};(null==(C=j.data)?void 0:C.id)&&o(j.data,(a=>{var e;e=a,T.value=e,L.value=e.size}));const H=()=>{b.value=g({},_.getters.findChildren(j.data.id))};return s.on("RefreshLink",H),t((()=>{s.off("RefreshLink",H)})),(a,e)=>(n(),i("div",{class:d(["w-full h-full hover",T.value.id]),onDragenter:r(q,["stop"]),onDragleave:r(F,["stop"]),onClick:r(A,["stop"])},[l("div",{class:d("1x1"===L.value?"iconGroupzzz":"iconGroupZZ"),onDragleave:r(P,["stop"]),onDragenter:r(O,["stop"])},null,42,x),l("div",{class:d(["iconGP pointer-events-none","f"+L.value])},[(n(!0),i(v,null,u(f(D)(b.value).slice(0,8),(a=>(n(),c(w,{key:a.id},{default:p((()=>[l("div",y,[l("div",G,[l("img",{class:"icon",src:a.src},null,8,k),l("div",null,m(a.name),1)])])])),_:2},1024)))),128))],2)],42,h))}};export{z as default};

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


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


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

@@ -1 +0,0 @@
-.model{position:relative;width:-moz-min-content;width:min-content;height:420px;display:flex;align-items:center;justify-content:center;transform:translateY(-30px)!important}#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) + 35px));border-radius:var(--iconRadius);display:grid;padding:20px;background-color:#ffffff7d;grid-template-columns:repeat(4,var(--iconWidth));grid-column-gap:26px;grid-auto-flow:dense;grid-template-rows:repeat(auto-fill,calc(var(--iconWidth) + 35px))}#iconGroupBox .iconGroupItem::-webkit-scrollbar{display:none}.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.1698223837127.js


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

@@ -0,0 +1 @@
+.model{position:relative;width:calc(((var(--iconWidth) + 26px) * 4) + 60px);height:calc(4 * (var(--iconWidth) + 35px) + 60px);display:flex;align-items:center;justify-content:center;transform:translateY(-30px)!important}#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(4,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}.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.1699270951405.js


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


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


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


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


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

@@ -0,0 +1 @@
+.image-uploadBtn[data-v-2f88d8ca]{width:80px;height:32px;background:#409eff;justify-content:center;align-items:center;display:flex;border-radius:5px;cursor:pointer}.image-uploadBtn>span[data-v-2f88d8ca]{font-size:13px;color:#fff;pointer-events:none}.image-uploadBtn>input[type=file][data-v-2f88d8ca]{position:absolute;width:100%;height:100%;cursor:pointer;left:0;top:0;opacity:0;font-size:0;z-index:1}

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


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


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


+ 0 - 0
public/dist/assets/index.16982238371272.css → public/dist/assets/index.16992709514054.css


+ 1 - 0
public/dist/assets/index.16992709514054.js

@@ -0,0 +1 @@
+import{_ as a,r as e,b as l,c as s,d as t,k as d,h as u,W as o,Y as i,Z as n,e as p}from"./index.1699270951405.js";const r={class:"p-4 flex"},c=(a=>(i("data-v-2f88d8ca"),a=a(),n(),a))((()=>p("div",{class:"ml-auto"},[p("div",{class:"relative image-uploadBtn"},[p("span",null,"上传图片"),p("input",{type:"file",accept:"image/png, image/jpeg, image/jpg"})])],-1)));var f=a({__name:"index",setup(a){const i=e("1");return(a,e)=>{const n=l("el-radio-button"),p=l("el-radio-group");return s(),t("div",r,[d(p,{modelValue:i.value,"onUpdate:modelValue":e[0]||(e[0]=a=>i.value=a),size:"default"},{default:u((()=>[d(n,{label:"1"},{default:u((()=>[o("图片压缩")])),_:1}),d(n,{label:"2"},{default:u((()=>[o("尺寸调整")])),_:1}),d(n,{label:"3"},{default:u((()=>[o("图片裁剪")])),_:1})])),_:1},8,["modelValue"]),c])}}},[["__scopeId","data-v-2f88d8ca"]]);export{f as default};

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


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


+ 1 - 1
public/dist/assets/jquery.1698223837127.js → public/dist/assets/jquery.1699270951405.js

@@ -1,4 +1,4 @@
-import{q as e}from"./index.1698223837127.js";var t,n,r={exports:{}};
+import{q as e}from"./index.1699270951405.js";var t,n,r={exports:{}};
 /*!
  * jQuery JavaScript Library v3.6.1
  * https://jquery.com/

+ 0 - 0
public/dist/assets/kong.1698223837127.svg → public/dist/assets/kong.1699270951405.svg


+ 0 - 0
public/dist/assets/lajitong.1698223837127.svg → public/dist/assets/lajitong.1699270951405.svg


+ 0 - 0
public/dist/assets/layout.1698223837127.css → public/dist/assets/layout.1699270951405.css


+ 1 - 1
public/dist/assets/layout.1698223837127.js → public/dist/assets/layout.1699270951405.js

@@ -1 +1 @@
-import{B as e,$ as a,b as t,c as s,d as l,k as n,j as u,e as r,h as i,C as d,a0 as m,W as o,a1 as f,a2 as c,a3 as _}from"./index.1698223837127.js";const g={class:"Manager"},v={class:"manager-menu"},x=r("a",{target:"_blank",href:"/"},[r("div",{class:"flex mb-2 hover:text-blue-400 justify-center flex-col items-center"},[r("img",{class:"clientHome mt-4",src:"/dist/assets/clienthome.1698223837127.svg",alt:""}),r("div",{class:"mt-2 text-sm"},"客户端")])],-1),p={class:"manager-view"},h={__name:"layout",setup(h){const k=e((()=>d((()=>import("./appSide.1698223837127.js").then((function(e){return e.a}))),["assets/appSide.1698223837127.js","assets/appSide.1698223837127.css","assets/index.1698223837127.js","assets/index.16982238371274.css"]))),b=(e,a)=>{},j=(e,a)=>{},w=a().path;return(e,a)=>{const d=t("el-icon"),h=t("el-menu-item"),y=t("router-link"),C=t("el-menu"),E=t("router-view");return s(),l("div",g,[n(u(k)),r("div",v,[n(C,{"default-active":u(w),class:"el-menu-vertical-demo h-full",onOpen:b,onClose:j},{default:i((()=>[x,n(y,{to:"/manager/index"},{default:i((()=>[n(h,{index:"/manager/index"},{default:i((()=>[n(d,null,{default:i((()=>[n(u(m))])),_:1}),o(" 数据管理 ")])),_:1})])),_:1}),n(y,{to:"/manager/user"},{default:i((()=>[n(h,{index:"/manager/user"},{default:i((()=>[n(d,null,{default:i((()=>[n(u(f))])),_:1}),o(" 用户列表 ")])),_:1})])),_:1}),n(y,{to:"/manager/linkstore"},{default:i((()=>[n(h,{index:"/manager/linkstore"},{default:i((()=>[n(d,null,{default:i((()=>[n(u(c))])),_:1}),o(" 标签商城 ")])),_:1})])),_:1}),n(y,{to:"/manager/setting"},{default:i((()=>[n(h,{index:"/manager/setting"},{default:i((()=>[n(d,null,{default:i((()=>[n(u(_))])),_:1}),o(" 系统设置 ")])),_:1})])),_:1})])),_:1},8,["default-active"])]),r("div",p,[n(E)])])}}};export{h as default};
+import{B as e,$ as a,b as t,c as s,d as l,k as n,j as u,e as r,h as i,C as d,a0 as m,W as o,a1 as f,a2 as c,a3 as _}from"./index.1699270951405.js";const g={class:"Manager"},v={class:"manager-menu"},x=r("a",{target:"_blank",href:"/"},[r("div",{class:"flex mb-2 hover:text-blue-400 justify-center flex-col items-center"},[r("img",{class:"clientHome mt-4",src:"/dist/assets/clienthome.1699270951405.svg",alt:""}),r("div",{class:"mt-2 text-sm"},"客户端")])],-1),p={class:"manager-view"},h={__name:"layout",setup(h){const k=e((()=>d((()=>import("./appSide.1699270951405.js").then((function(e){return e.a}))),["assets/appSide.1699270951405.js","assets/appSide.1699270951405.css","assets/index.1699270951405.js","assets/index.16992709514055.css"]))),b=(e,a)=>{},j=(e,a)=>{},w=a().path;return(e,a)=>{const d=t("el-icon"),h=t("el-menu-item"),y=t("router-link"),C=t("el-menu"),E=t("router-view");return s(),l("div",g,[n(u(k)),r("div",v,[n(C,{"default-active":u(w),class:"el-menu-vertical-demo h-full",onOpen:b,onClose:j},{default:i((()=>[x,n(y,{to:"/manager/index"},{default:i((()=>[n(h,{index:"/manager/index"},{default:i((()=>[n(d,null,{default:i((()=>[n(u(m))])),_:1}),o(" 数据管理 ")])),_:1})])),_:1}),n(y,{to:"/manager/user"},{default:i((()=>[n(h,{index:"/manager/user"},{default:i((()=>[n(d,null,{default:i((()=>[n(u(f))])),_:1}),o(" 用户列表 ")])),_:1})])),_:1}),n(y,{to:"/manager/linkstore"},{default:i((()=>[n(h,{index:"/manager/linkstore"},{default:i((()=>[n(d,null,{default:i((()=>[n(u(c))])),_:1}),o(" 标签商城 ")])),_:1})])),_:1}),n(y,{to:"/manager/setting"},{default:i((()=>[n(h,{index:"/manager/setting"},{default:i((()=>[n(d,null,{default:i((()=>[n(u(_))])),_:1}),o(" 系统设置 ")])),_:1})])),_:1})])),_:1},8,["default-active"])]),r("div",p,[n(E)])])}}};export{h as default};

+ 0 - 0
public/dist/assets/layout.1698223837127.svg → public/dist/assets/layout.1699270951405.svg


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


+ 0 - 0
public/dist/assets/linkstore.1698223837127.css → public/dist/assets/linkstore.1699270951405.css


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


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


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


+ 0 - 0
public/dist/assets/onlineMall.1698223837127.css → public/dist/assets/onlineMall.1699270951405.css


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


+ 0 - 0
public/dist/assets/open.1698223837127.svg → public/dist/assets/open.1699270951405.svg


+ 0 - 0
public/dist/assets/openType.1698223837127.css → public/dist/assets/openType.1699270951405.css


+ 1 - 1
public/dist/assets/openType.1698223837127.js → public/dist/assets/openType.1699270951405.js

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

+ 0 - 0
public/dist/assets/openType.1698223837127.svg → public/dist/assets/openType.1699270951405.svg


+ 0 - 0
public/dist/assets/reload.1698223837127.svg → public/dist/assets/reload.1699270951405.svg


+ 0 - 0
public/dist/assets/search.1698223837127.svg → public/dist/assets/search.1699270951405.svg


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


+ 0 - 0
public/dist/assets/setting.1698223837127.css → public/dist/assets/setting.1699270951405.css


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


+ 0 - 0
public/dist/assets/setting.1698223837127.svg → public/dist/assets/setting.1699270951405.svg


+ 0 - 0
public/dist/assets/sougou.1698223837127.svg → public/dist/assets/sougou.1699270951405.svg


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


+ 0 - 0
public/dist/assets/theme.1698223837127.svg → public/dist/assets/theme.1699270951405.svg


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


+ 0 - 0
public/dist/assets/user.1698223837127.css → public/dist/assets/user.1699270951405.css


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


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


+ 0 - 0
public/dist/assets/wapp.1698223837127.svg → public/dist/assets/wapp.1699270951405.svg


+ 0 - 0
public/dist/assets/weiboico.1698223837127.png → public/dist/assets/weiboico.1699270951405.png


+ 0 - 0
public/dist/assets/wiki.1698223837127.png → public/dist/assets/wiki.1699270951405.png


+ 1 - 1
public/dist/index.html

@@ -1 +1 @@
-<!doctype html><html lang="zh"><head><meta charset="UTF-8"/><link href="/favicon" rel="icon"/><meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1"><meta content="94bf23e1dde78573f451676137b9235b" name="baidu_union_verify"><title>{$title}</title><meta content="{$keywords}" name="keywords"/><meta content="{$description}" name="description"/><script type="module" crossorigin src="/dist/assets/index.1698223837127.js"></script><link rel="stylesheet" href="/dist/assets/index.16982238371274.css"></head><body><div id="app"></div></body></html>
+<!doctype html><html lang="zh"><head><meta charset="UTF-8"/><link href="/favicon" rel="icon"/><meta name="version" content="{$version}"><meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1"><title>{$title}</title>{$customHead|raw}<meta content="{$keywords}" name="keywords"/><meta content="{$description}" name="description"/><script type="module" crossorigin src="/dist/assets/index.1699270951405.js"></script><link rel="stylesheet" href="/dist/assets/index.16992709514055.css"></head><body><div id="app"></div></body></html>

+ 2 - 2
public/index.php

@@ -10,8 +10,8 @@
 // +----------------------------------------------------------------------
 // [ 应用入口文件 ]
 namespace think;
-define('app_version', '1.1.2');
-define('app_version_code', 12);
+define('app_version', '1.2.0');
+define('app_version_code', 20);
 require __DIR__ . '/../vendor/autoload.php';
 
 // 执行HTTP应用并响应

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