diff --git a/admin/src/api/links.ts b/admin/src/api/links.ts new file mode 100644 index 0000000..2b6c912 --- /dev/null +++ b/admin/src/api/links.ts @@ -0,0 +1,9 @@ +import http from '@/utils/http' + +export const EditLink = (data: any) => { + if (data && data.id) { + return http.put(`/links/${data.id}`, data) + } else { + return http.post('/links', data) + } +} diff --git a/admin/src/assets/link/qq.png b/admin/src/assets/link/qq.png new file mode 100644 index 0000000..ad8512f Binary files /dev/null and b/admin/src/assets/link/qq.png differ diff --git a/admin/src/assets/link/qqluodi.png b/admin/src/assets/link/qqluodi.png new file mode 100644 index 0000000..0647003 Binary files /dev/null and b/admin/src/assets/link/qqluodi.png differ diff --git a/admin/src/assets/link/qqqun.png b/admin/src/assets/link/qqqun.png new file mode 100644 index 0000000..527a2d6 Binary files /dev/null and b/admin/src/assets/link/qqqun.png differ diff --git a/admin/src/views/link/addLink/components/qq/create-or-look.vue b/admin/src/views/link/addLink/components/qq/create-or-look.vue new file mode 100644 index 0000000..3a9a71f --- /dev/null +++ b/admin/src/views/link/addLink/components/qq/create-or-look.vue @@ -0,0 +1,221 @@ + + + + + diff --git a/admin/src/views/link/addLink/components/qq/index.vue b/admin/src/views/link/addLink/components/qq/index.vue new file mode 100644 index 0000000..a62259d --- /dev/null +++ b/admin/src/views/link/addLink/components/qq/index.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/admin/src/views/link/addLink/components/qqGroup/create-or-look.vue b/admin/src/views/link/addLink/components/qqGroup/create-or-look.vue new file mode 100644 index 0000000..f89b758 --- /dev/null +++ b/admin/src/views/link/addLink/components/qqGroup/create-or-look.vue @@ -0,0 +1,221 @@ + + + + + diff --git a/admin/src/views/link/addLink/components/qqGroup/index.vue b/admin/src/views/link/addLink/components/qqGroup/index.vue new file mode 100644 index 0000000..a62259d --- /dev/null +++ b/admin/src/views/link/addLink/components/qqGroup/index.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/serve/app/Enums/MiniProgramType.php b/serve/app/Enums/MiniProgramType.php new file mode 100644 index 0000000..55b37ea --- /dev/null +++ b/serve/app/Enums/MiniProgramType.php @@ -0,0 +1,9 @@ +run($command); + unlink($tmpPath); + + if ($scanResult->failed()) { + Log::error('微信二维码识别失败', ['path' => $path, 'error' => $scanResult->output()]); + + return false; + } + + return trim($scanResult->output()); + } +} diff --git a/serve/resources/install/step1.blade.php b/serve/resources/install/step1.blade.php new file mode 100644 index 0000000..9c3f8db --- /dev/null +++ b/serve/resources/install/step1.blade.php @@ -0,0 +1,99 @@ + + + + + + 火星快链安装 + + + + + +
+
+
+
安装步骤
+
+ + +
+
+ 开源系统授权协议 +
+
+

版权所有(c)2019-,火星快链团队保留所有权利。

+

+

为了正确并合法的使用本软件,请你在使用前务必阅读清楚下面的协议条款:

+

一、本授权协议适用且仅适用于火星快链开源软件产品任何版本。

+

二、协议许可的权利

+

+ 1.免费版本可免费商用,不能私自去除官方版权。付费版本需要取得商业授权方可使用,可以去除官方版权,否则会被视为盗版行为并承担相应法律责任。 +

+

+ 2.请尊重火星快链团队劳动成果,严禁使用本系统转手、转卖、倒卖或二次开发后转手、转卖、倒卖等商业行为。 +

+

+ 3.任何企业和个人不允许对程序代码以任何形式任何目的再发布。 +

+

+ 4.你可以在协议规定的约束和限制范围内修改系列开源软件产品或界面风格以适应你的网站要求。 +

+

+ 5.你拥有使用本软件构建的系统全部内容所有权,并独立承担与这些内容的相关法律义务。 +

+

+ 6.获得商业授权之后,你可以将本软件应用于商业用途,同时依据所购买的授权类型中确定的技术支持内容,自购买时刻起,在技术支持期限内拥有通过指定的方式获得指定范围内的技术支持服务。商业授权用户享有反映和提出意见的权力,相关意见将被作为首要考虑,但没有一定被采纳的承诺或保证。 +

+

三、协议规定的约束和限制

+

+ 1.免费版本可免费商用,不能私自去除官方版权。付费版本需要取得商业授权方可使用,可以去除官方版权,否则会被视为盗版行为并承担相应法律责任。 +

+

+ 2.未经许可,不得对本软件或与之关联的商业授权进行出租、出售、抵押或发放子许可证。 +

+

+ 3.未经许可,禁止在开源系统的整体或任何部分基础上以发展任何派生版本、修改版本或第三方版本用于重新分发。 +

+

+ 4.如果你未能遵守本协议的条款,你的授权将被终止,所被许可的权利将被收回,并承担相应法律责任。 +

+

四、有限担保和免责声明

+

+ 1.本软件及所附带的文件是作为不提供任何明确的或隐含的赔偿或担保的形式提供的。 +

+

+ 2.用户出于自愿而使用本软件,你必须了解使用本软件的风险,在尚未购买产品技术服务之前,我们不承诺对免费用户提供任何形式的技术支持、使用担保,也不承担任何因使用本软件而产生问题的相关责任。 +

+

+ 3.电子文本形式的授权协议如同双方书面签署的协议一样,具有完全的和等同的法律效力。你一旦开始确认本协议并安装本软件,即被视为完全理解并接受本协议的各项条款,在享有上述条款授予的权力的同时,受到相关的约束和限制。协议许可范围以外的行为,将直接违反本授权协议并构成侵权,我们有权随时终止授权,责令停止损害,并保留追究相关责任的权力。 +

+

+ 4.如果本软件带有其它软件的整合API示范例子包,这些文件版权不属于本软件官方,并且这些文件是没经过授权发布的,请参考相关软件的使用许可合法的使用。 +

+

+

+ ----------------------------------------------------- +

+
+
+
+
+
+ + +
+
+
+
+
+ + + + diff --git a/serve/resources/install/step2.blade.php b/serve/resources/install/step2.blade.php new file mode 100644 index 0000000..c7fa753 --- /dev/null +++ b/serve/resources/install/step2.blade.php @@ -0,0 +1,221 @@ + + + + + + 火星快链安装 + + + + + +
+
+ @if ($errors->any()) +
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif +
+
安装步骤
+
+ + + +
+
+
+
+ 服务器信息 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
参数值
服务器操作系统{!! PHP_OS !!}
web服务器环境{!! $_SERVER['SERVER_SOFTWARE'] !!}
PHP版本{!! phpversion() !!}
程序安装目录{!! base_path() !!}
磁盘空间{!! $chk['fred_disk_space'] !!}
上传限制 + @if(ini_get('file_uploads')) + {!! ini_get('upload_max_filesize') !!} + @else + 禁止上传 + @endif +
+
+
+
PHP环境要求必须满足下列所有条件,否则系统或系统部分功能将无法使用。
+
+
+ PHP环境要求 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
选项要求状态
PHP版本≥8.1{!! $chk['php_version'] !!}
PDO_MYSQL支持{!! $chk['pdo_mysql'] !!}
allow_url_fopen支持 (建议支持cURL){!! $chk['curl'] !!}
GD2支持{!! $chk['gd2'] !!}
fileinfo支持{!! $chk['fileinfo'] !!}
putenv支持{!! $chk['putenv'] !!}
symlink支持{!! $chk['symlink'] !!}
proc_open支持{!! $chk['proc_open'] !!}
+
+
+
+ 系统要求安装目录下的storage必须可写,才能使用系统的所有功能。 +
+
+
+ 目录权限监测 +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
目录要求状态
/server/storage/logslogs目录可写{!! $chk['log'] !!}
/server/storage/app/publicuploads目录可写{!! $chk['upload'] !!}
/server/storage/frameworkcache目录可写{!! $chk['cache'] !!}
/server/.env.env文件可写{!! $chk['env'] !!}
+
+
+
+
+
+
+
+ 返回 + + + +   + 重新检查 + +
+
+
+
+
+ + + + diff --git a/serve/resources/install/step3.blade.php b/serve/resources/install/step3.blade.php new file mode 100644 index 0000000..f6eac0a --- /dev/null +++ b/serve/resources/install/step3.blade.php @@ -0,0 +1,140 @@ + + + + + + 火星快链安装 + + + + + +
+
+ @if ($errors->any()) +
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif + +
+
安装步骤
+
+ + +
+
+
+ 数据库选项 +
+
+ +
+
+ 数据库主机 +
+
+ +
+
+
+
+ 端口号 +
+
+ +
+
+
+
+ 数据库用户 +
+
+ +
+
+
+
+ 数据库密码 +
+
+ +
+
+
+
+ 数据库名称 +
+
+ +
+
+
+
+
+
+ 管理选项 +
+
+ +
+
+ 管理员账号 +
+
+ +
+
+
+
+ 管理员密码 +
+
+ +
+
+
+
+ 确认密码 +
+
+ +
+
+
+
+
+
+ +
+
+ 返回 + + + +   + 重新检查 + +
+
+ +
+
+
+ + + + diff --git a/serve/resources/install/step4.blade.php b/serve/resources/install/step4.blade.php new file mode 100644 index 0000000..d8c0074 --- /dev/null +++ b/serve/resources/install/step4.blade.php @@ -0,0 +1,56 @@ + + + + + + 火星快链安装 + + + + + +
+
+
+
安装步骤
+
+ + + +
+
+
+ 正在安装中 +
+
+ +
+
+ 安装成功 +
+
+
安装完成,进入管理后台
+
+ 为了您站点的安全,安装完成后即可将网站根目录下的“install”文件夹删除。 +
+ +
+
+
+
+
+
+
+ + + + diff --git a/serve/services/wechatqr-opencv/README.md b/serve/services/wechatqr-opencv/README.md new file mode 100644 index 0000000..8511cf0 --- /dev/null +++ b/serve/services/wechatqr-opencv/README.md @@ -0,0 +1,5 @@ +## install + +```bash +pip3 install opencv-contrib-python +``` diff --git a/serve/services/wechatqr-opencv/cli.py b/serve/services/wechatqr-opencv/cli.py new file mode 100644 index 0000000..3b5241b --- /dev/null +++ b/serve/services/wechatqr-opencv/cli.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 +import cv2 +import sys +from cv2.wechat_qrcode import WeChatQRCode + + +def qr(new_width, new_height, mode): + resized = cv2.resize(image, (new_width, new_height), interpolation=cv2.INTER_CUBIC) + gray = cv2.cvtColor(resized, mode) # cv2.COLOR_RGB2GRAY + detect_obj = WeChatQRCode() + results, _ = detect_obj.detectAndDecode(gray) + + if len(results) < 1: + return "" + + return results[0] + + +try: + image = cv2.imread(sys.argv[1]) + # 放大multiple倍,转灰度 + img_size = image.shape + new_width = 2000 + new_height = int(img_size[0] * (new_width / img_size[1])) + results = qr(new_width, new_height, cv2.COLOR_RGB2GRAY) + if results == "": + results = qr(new_width, new_height, cv2.COLOR_RGB2HSV) + print(results) + sys.exit(0) + print(results) + sys.exit(0) +except Exception as e: # 捕获具体异常 + print(f"Error occurred: {str(e)}") + sys.exit(1)