fix 同步niucloud

This commit is contained in:
CQ 2026-03-19 14:23:15 +08:00
parent 9f9ed9a0e3
commit ddf0fa3384
851 changed files with 1540 additions and 725 deletions

View File

@ -0,0 +1,90 @@
<?php
// +----------------------------------------------------------------------
// | Niucloud-admin 企业快速开发的saas管理平台
// +----------------------------------------------------------------------
// | 官方网址https://www.niucloud.com
// +----------------------------------------------------------------------
// | niucloud团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: Niucloud Team
// +----------------------------------------------------------------------
namespace app\adminapi\controller\notice;
use app\service\admin\notice\BindMerchantService;
use core\base\BaseAdminController;
use think\Response;
class BindMerchant extends BaseAdminController
{
/**
* 获取商家绑定通知账户信息
* @description 获取商家绑定通知账户信息
* @return Response
*/
public function merchantBindInfo()
{
$res = (new BindMerchantService())->merchantBindInfo();
return success($res);
}
/**
* 接触商家绑定通知账户
* @description 接触商家绑定通知账户
* @return Response
*/
public function unBindMerchant()
{
$data = $this->request->params([
['unbind_type',[]]
]);
(new BindMerchantService())->unBindMerchant($data);
return success('SUCCESS');
}
/**
* 获取小程序二维码
* @return \think\Response
*/
public function getWeappQrcodeUrl()
{
$res = (new BindMerchantService())->getWeappQrcode();
return success($res);
}
/**
* 获取微信二维码地址
* @return \think\Response
*/
public function getWechatQrcodeUrl()
{
$res = (new BindMerchantService())->getWechatUrl();
return success($res);
}
/**
* 发送短信验证码
* @return Response
*/
public function sendBindSms()
{
$mobile = $this->request->param('mobile');
$res = (new BindMerchantService())->sendBindSms($mobile);
return success($res);
}
/**
* 检测短信验证码
* @return Response
*/
public function checkSmsCodeAndBind()
{
$params = $this->request->params([
['mobile_key',''],
['mobile_code',''],
['mobile','']
]);
$res = (new BindMerchantService())->checkMobileCode($params);
return success('SUCCESS');
}
}

View File

@ -264,6 +264,15 @@ class NiuSms extends BaseAdminController
['signType', ""], ['signType', ""],
['imgUrl', ""], ['imgUrl', ""],
['defaultSign', 0], ['defaultSign', 0],
//新增字段
['bizLicenseUrl', ''],
['qccUrl', ''],
['tmnetUrl', ''],
['mobileIcpUrl', ''],
['telecomAppstoreUrl', ''],
['idcardFrontUrl', ''],
['idcardBackUrl', ''],
]); ]);
(new NiuSmsService())->signCreate($username, $params); (new NiuSmsService())->signCreate($username, $params);
return success("SUCCESS"); return success("SUCCESS");

View File

@ -88,6 +88,15 @@ Route::group('notice', function () {
}); });
}); });
//商家消息通知
Route::get('bind/weapp', 'notice.BindMerchant/getWeappQrcodeUrl');
Route::get('bind/wechat', 'notice.BindMerchant/getWechatQrcodeUrl');
Route::post('bind/sms/send', 'notice.BindMerchant/sendBindSms');
Route::post('bind/sms/bind', 'notice.BindMerchant/checkSmsCodeAndBind');
Route::get('bind/info', 'notice.BindMerchant/merchantBindInfo');
Route::post('bind/cancel', 'notice.BindMerchant/unBindMerchant');
})->middleware([ })->middleware([
AdminCheckToken::class, AdminCheckToken::class,
AdminCheckRole::class, AdminCheckRole::class,

View File

@ -78,8 +78,6 @@ Route::group('sys', function() {
//地图设置 //地图设置
Route::put('config/map', 'sys.Config/setMap'); Route::put('config/map', 'sys.Config/setMap');
//地图设置
Route::get('config/map', 'sys.Config/getMap');
//登录注册设置 //登录注册设置
Route::get('config/login', 'login.Config/getConfig'); Route::get('config/login', 'login.Config/getConfig');
@ -339,6 +337,14 @@ Route::group('sys', function() {
AdminLog::class AdminLog::class
]); ]);
//检验登录但是不检验权限
Route::group('sys', function() {
//地图设置
Route::get('config/map', 'sys.Config/getMap');
})->middleware([
AdminCheckToken::class,
AdminLog::class
]);
//系统环境(不效验登录状态) //系统环境(不效验登录状态)
Route::group('sys', function() { Route::group('sys', function() {
Route::get('web/website', 'sys.Config/getWebsite'); Route::get('web/website', 'sys.Config/getWebsite');

View File

@ -21,6 +21,7 @@ use think\facade\Route;
Route::group('weapp', function() { Route::group('weapp', function() {
/***************************************************** 微信配置 ****************************************************/ /***************************************************** 微信配置 ****************************************************/
Route::get('auth_url', 'weapp.Auth/getWeappQrcodeUrl');
Route::get('config', 'weapp.Config/get'); Route::get('config', 'weapp.Config/get');
//设置微信配置 //设置微信配置
Route::put('config', 'weapp.Config/set'); Route::put('config', 'weapp.Config/set');

View File

@ -19,6 +19,7 @@ use think\facade\Route;
* 路由 * 路由
*/ */
Route::group('wechat', function () { Route::group('wechat', function () {
Route::get('auth_url', 'wechat.Auth/getWechatQrcodeUrl');
/***************************************************** 微信配置 ****************************************************/ /***************************************************** 微信配置 ****************************************************/
Route::get('config', 'wechat.Config/get'); Route::get('config', 'wechat.Config/get');

View File

@ -68,4 +68,38 @@ class Upload extends BaseApiController
$base64_service = new Base64Service(); $base64_service = new Base64Service();
return success($base64_service->image($data['content'])); return success($base64_service->image($data['content']));
} }
public function config()
{
return success([
'upload_max_filesize' => [
'unit' => 'KB',
'num'=>$this->convertPhpSizeToBytes(ini_get('upload_max_filesize'))/1024
],
]);
}
private function convertPhpSizeToBytes($size_str) {
// 去除字符串两端的空格,统一转为大写(方便判断单位)
$size_str = trim(strtoupper($size_str));
// 如果是空值或纯数字(无单位),默认单位为字节
if (!preg_match('/^(\d+(\.\d+)?)([BKMGTP]B?)?$/', $size_str, $matches)) {
return (int)$size_str;
}
// 提取数值和单位
$size = (float)$matches[1];
$unit = isset($matches[3]) ? $matches[3] : 'B'; // 默认单位为B
// 根据单位转换为字节
switch ($unit) {
case 'TB': case 'T': $size *= 1024;
case 'GB': case 'G': $size *= 1024;
case 'MB': case 'M': $size *= 1024;
case 'KB': case 'K': $size *= 1024;
case 'B': default: break; // 字节无需转换
}
return (int)$size;
}
} }

View File

@ -103,4 +103,19 @@ class Weapp extends BaseApiController
return success($weapp_auth_service->updateOpenid($data[ 'code' ])); return success($weapp_auth_service->updateOpenid($data[ 'code' ]));
} }
/**
* 绑定商家接受信息小程序账号
* @return Response
*/
public function bindAdminMerchant()
{
$data = $this->request->params([
[ 'user_info', '' ],
[ 'openid', '' ],
[ 'type',''],
]);
$weapp_auth_service = new WeappAuthService();
return success($weapp_auth_service->bindAdminMerchant($data));
}
} }

View File

@ -17,7 +17,7 @@ use EasyWeChat\Kernel\Exceptions\BadRequestException;
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException; use EasyWeChat\Kernel\Exceptions\InvalidArgumentException;
use EasyWeChat\Kernel\Exceptions\RuntimeException; use EasyWeChat\Kernel\Exceptions\RuntimeException;
use ReflectionException; use ReflectionException;
use Symfony\Component\HttpFoundation\Response; use think\facade\Log;
use Throwable; use Throwable;
/** /**
@ -37,6 +37,7 @@ class Serve extends BaseController
* @throws Throwable * @throws Throwable
*/ */
public function serve($site_id){ public function serve($site_id){
Log::write('请求参数'.json_encode($this->request->all()));
ob_clean(); ob_clean();
$result = (new WechatServeService())->serve(); $result = (new WechatServeService())->serve();
return response($result->getBody())->header([ return response($result->getBody())->header([

View File

@ -32,6 +32,7 @@ Route::group('file', function() {
*/ */
Route::group('file', function() { Route::group('file', function() {
//上传图片 //上传图片
Route::get('config', 'upload.Upload/config');
Route::post('image', 'upload.Upload/image'); Route::post('image', 'upload.Upload/image');
//上传视频 //上传视频
Route::post('video', 'upload.Upload/video'); Route::post('video', 'upload.Upload/video');

View File

@ -56,6 +56,7 @@ Route::group(function () {
//公众号扫码登录 //公众号扫码登录
Route::post('wechat/scanlogin', 'wechat.Wechat/scanLogin'); Route::post('wechat/scanlogin', 'wechat.Wechat/scanLogin');
//小程序通过code登录 //小程序通过code登录
Route::post('weapp/bind/merchant', 'weapp.Weapp/bindAdminMerchant');
Route::post('weapp/login', 'weapp.Weapp/login'); Route::post('weapp/login', 'weapp.Weapp/login');
//小程序通过code注册 //小程序通过code注册
Route::post('weapp/register', 'weapp.Weapp/register'); Route::post('weapp/register', 'weapp.Weapp/register');

View File

@ -1,7 +1,7 @@
<?php <?php
declare (strict_types=1); declare (strict_types=1);
namespace app\command\Addon; namespace app\command\addon;
use app\service\core\addon\CoreAddonInstallService; use app\service\core\addon\CoreAddonInstallService;
use Exception; use Exception;

View File

@ -1,7 +1,7 @@
<?php <?php
declare (strict_types=1); declare (strict_types=1);
namespace app\command\Addon; namespace app\command\addon;
use think\console\Command; use think\console\Command;
use think\console\Input; use think\console\Input;

View File

@ -9,7 +9,7 @@ use think\console\Command;
use think\console\Input; use think\console\Input;
use think\console\Output; use think\console\Output;
class refreshAreaCommand extends Command class RefreshAreaCommand extends Command
{ {
protected function configure() protected function configure()
{ {

View File

@ -37,52 +37,67 @@ class CommonActiveDict
self::IMPULSE_BUY => [ self::IMPULSE_BUY => [
'name' => get_lang('common_active_short.impulse_buy_short'), 'name' => get_lang('common_active_short.impulse_buy_short'),
'active_name' => get_lang('common_active_short.impulse_buy_name'), 'active_name' => get_lang('common_active_short.impulse_buy_name'),
'bg_color' => "#FF7700" 'bg_color' => "#FF7700",
'jump_url'=>'/site/shop_impulse_buy/list',/////
'is_need_params'=>1
], ],
self::GIFTCARD => [ self::GIFTCARD => [
'name' => get_lang('common_active_short.gift_card_short'), 'name' => get_lang('common_active_short.gift_card_short'),
'active_name' => get_lang('common_active_short.gift_card_name'), 'active_name' => get_lang('common_active_short.gift_card_name'),
'bg_color' => '#F00000' 'bg_color' => '#F00000',
'jump_url'=>'/site/shop_giftcard/giftcard/list',/////
'is_need_params'=>1
], ],
self::DISCOUNT => [ self::DISCOUNT => [
'name' => get_lang('common_active_short.discount_short'), 'name' => get_lang('common_active_short.discount_short'),
'active_name' => get_lang('common_active_short.discount_name'), 'active_name' => get_lang('common_active_short.discount_name'),
'bg_color' => '#FFA322' 'bg_color' => '#FFA322',
'jump_url'=>'/site/shop/marketing/discount/list',/////
'is_need_params'=>1
], ],
self::EXCHANGE => [ self::EXCHANGE => [
'name' => get_lang('common_active_short.exchange_short'), 'name' => get_lang('common_active_short.exchange_short'),
'active_name' => get_lang('common_active_short.exchange_name'), 'active_name' => get_lang('common_active_short.exchange_name'),
'bg_color' => '#00C441' 'bg_color' => '#00C441',
'jump_url'=>'/site/shop/marketing/exchange/goods_list',/////
'is_need_params'=>1
], ],
self::MANJIANSONG => [ self::MANJIANSONG => [
'name' => get_lang('common_active_short.manjiansong_short'), 'name' => get_lang('common_active_short.manjiansong_short'),
'active_name' => get_lang('common_active_short.manjiansong_name'), 'active_name' => get_lang('common_active_short.manjiansong_name'),
'bg_color' => '#249DE9' 'bg_color' => '#249DE9',
'jump_url'=>'/site/shop/marketing/manjian/list',/////
'is_need_params'=>1
], ],
self::NEWCOMER_DISCOUNT => [ self::NEWCOMER_DISCOUNT => [
'name' => get_lang('common_active_short.newcomer_discount_short'), 'name' => get_lang('common_active_short.newcomer_discount_short'),
'active_name' => get_lang('common_active_short.newcomer_discount_name'), 'active_name' => get_lang('common_active_short.newcomer_discount_name'),
'bg_color' => '#BB27FF' 'bg_color' => '#BB27FF',
'jump_url'=>'/site/shop/marketing/newcomer/config'
], ],
self::SECKILL => [ self::SECKILL => [
'name' => get_lang('common_active_short.seckill_short'), 'name' => get_lang('common_active_short.seckill_short'),
'active_name' => get_lang('common_active_short.seckill_name'), 'active_name' => get_lang('common_active_short.seckill_name'),
'bg_color' => '#F606CA' 'bg_color' => '#F606CA',
'jump_url'=>'/site/seckill/active/list'
], ],
self::PINTUAN => [ self::PINTUAN => [
'name' => get_lang('common_active_short.pintuan_short'), 'name' => get_lang('common_active_short.pintuan_short'),
'active_name' => get_lang('common_active_short.pintuan_name'), 'active_name' => get_lang('common_active_short.pintuan_name'),
'bg_color' => '#FF1C77' 'bg_color' => '#FF1C77',
'jump_url'=>'/site/pintuan/active/list'
], ],
self::RELAY => [ self::RELAY => [
'name' => get_lang('common_active_short.relay_short'), 'name' => get_lang('common_active_short.relay_short'),
'active_name' => get_lang('common_active_short.relay_name'), 'active_name' => get_lang('common_active_short.relay_name'),
'bg_color' => '#0EB108' 'bg_color' => '#0EB108',
'jump_url'=>'/site/relay/active/list'
], ],
self::FRIEND_HELP => [ self::FRIEND_HELP => [
'name' => get_lang('common_active_short.friend_help_short'), 'name' => get_lang('common_active_short.friend_help_short'),
'active_name' => get_lang('common_active_short.friend_help_name'), 'active_name' => get_lang('common_active_short.friend_help_name'),
'bg_color' => '#F20C8A' 'bg_color' => '#F20C8A',
'jump_url'=>'/site/friend_help/active/list'
], ],
]; ];
return !empty($active) ? $data[$active] ?? [] : $data; return !empty($active) ? $data[$active] ?? [] : $data;

View File

@ -189,5 +189,17 @@ return [
//是否累增 //是否累增
'is_change_get' => 0, 'is_change_get' => 0,
], ],
],
MemberAccountTypeDict::GROWTH => [
//调整
'member_register' => [
//名称
'name' => get_lang('dict_member.account_point_member_register'),
//是否增加
'inc' => 1,
//是否减少
'dec' => 0,
],
] ]
]; ];

View File

@ -0,0 +1,21 @@
<?php
// +----------------------------------------------------------------------
// | Niucloud-admin 企业快速开发的saas管理平台
// +----------------------------------------------------------------------
// | 官方网址https://www.niucloud.com
// +----------------------------------------------------------------------
// | niucloud团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: Niucloud Team
// +----------------------------------------------------------------------
namespace app\dict\notice;
class BindMerchantDict
{
//上传方式 图片
public const WECHAT = 'wechat';
//上传方式 视频
public const WEAPP = 'weapp';
public const SMS = 'sms';
}

View File

@ -141,12 +141,12 @@ class NoticeTypeDict
} }
const PARAMS_TYPE_VALID_CODE = 'valid_code'; const PARAMS_TYPE_VALID_CODE = 'valid_code';
const PARAMS_TYPE_MOBILE_NUMBER = 'mobile_number';
const PARAMS_TYPE_OTHER_NUMBER = 'other_number'; const PARAMS_TYPE_OTHER_NUMBER = 'other_number';
const PARAMS_TYPE_AMOUNT = 'amount'; const PARAMS_TYPE_AMOUNT = 'amount';
const PARAMS_TYPE_DATE = 'date'; const PARAMS_TYPE_DATE = 'date';
const PARAMS_TYPE_CHINESE = 'chinese'; const PARAMS_TYPE_CHINESE = 'chinese';
const PARAMS_TYPE_OTHERS = 'others'; const PARAMS_TYPE_OTHERS = 'others';
const PARAMS_TYPE_INT_NUMBER = 'int_number';
public static function getApiParamsType() public static function getApiParamsType()
{ {
return [ return [
@ -159,20 +159,12 @@ class NoticeTypeDict
'max'=>6 'max'=>6
], ],
[ [
'name' => '手机号', 'name' => '其他号码(手机号)',
'type' => self::PARAMS_TYPE_MOBILE_NUMBER,
'desc' => '1-15位纯数字',
'rule' => '/^\d$/',
'min'=>1,
'max'=>15
],
[
'name' => '其他号码',
'type' => self::PARAMS_TYPE_OTHER_NUMBER, 'type' => self::PARAMS_TYPE_OTHER_NUMBER,
'desc' => '1-32位字母+数字组合', 'desc' => '1-20位字母+数字组合',
'rule'=>'/^[a-zA-Z0-9]$/', 'rule'=>'/^[a-zA-Z0-9]$/',
'min'=>1, 'min'=>1,
'max'=>32 'max'=>20
], ],
[ [
'name' => '金额', 'name' => '金额',
@ -189,18 +181,26 @@ class NoticeTypeDict
[ [
'name' => '中文', 'name' => '中文',
'type' => self::PARAMS_TYPE_CHINESE, 'type' => self::PARAMS_TYPE_CHINESE,
'desc' => '1-32中文支持中文园括号()', 'desc' => '1-15中文支持中文圆括号()',
'rule' => '/^[\p{Han}()]$/u', 'rule' => '/^[\p{Han}]+$/u',
'min'=>1, 'min'=>1,
'max'=>32 'max'=>15
],
[
'name' => '纯数字',
'type' => self::PARAMS_TYPE_INT_NUMBER,
'desc' => ' 1-10个数字',
'rule' => '/^\d$/',
'min'=>1,
'max'=>10
], ],
[ [
'name' => '其他', 'name' => '其他',
'type' => self::PARAMS_TYPE_OTHERS, 'type' => self::PARAMS_TYPE_OTHERS,
'desc' => ' 1-35个中文数字字母组合支持中文符号和空格', 'desc' => ' 1-30个中文数字字母组合,支持中文符号。',
'rule' => '/^[\p{Han}\p{N}\p{L}\p{P}\p{S}\s]$/u', 'rule' => '/^[\p{Han}\p{N}\p{L}\p{P}\p{S}\s]$/u',
'min'=>1, 'min'=>1,
'max'=>35 'max'=>30
], ],
]; ];
} }

View File

@ -39,11 +39,16 @@ class PayChannelDict
'key' => $k, 'key' => $k,
'pay_type' => $pay_type 'pay_type' => $pay_type
]; ];
if (in_array($k,[ChannelDict::WEAPP,ChannelDict::WECHAT])){
unset($temp_pay_type[ PayDict::ALIPAY ]);
$list[ $k ][ 'pay_type' ] = $temp_pay_type;
}
// PC端暂不支持 帮付 // PC端暂不支持 帮付
if ($k == ChannelDict::PC) { if ($k == ChannelDict::PC) {
unset($temp_pay_type[ PayDict::FRIENDSPAY ]); unset($temp_pay_type[ PayDict::FRIENDSPAY ]);
$list[ $k ][ 'pay_type' ] = $temp_pay_type; $list[ $k ][ 'pay_type' ] = $temp_pay_type;
} }
} }
return $list; return $list;
} }

View File

@ -22,6 +22,7 @@ class ScanDict
const WECHAT_LOGIN = 'wechat_login';//微信登录 const WECHAT_LOGIN = 'wechat_login';//微信登录
const ADMIN_MERCHANT_BIND_WECHAT = 'admin_merchant_bind_wechat';//微信登录
} }

View File

@ -11,6 +11,7 @@ CREATE TABLE `activity_exchange_code`
`activity_id` INT(11) NOT NULL DEFAULT 0 COMMENT '活动ID', `activity_id` INT(11) NOT NULL DEFAULT 0 COMMENT '活动ID',
`type` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '类型 例seckill_goods-秒杀商品', `type` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '类型 例seckill_goods-秒杀商品',
`type_id` INT(11) NOT NULL DEFAULT 0 COMMENT '类型对应id 秒杀商品id', `type_id` INT(11) NOT NULL DEFAULT 0 COMMENT '类型对应id 秒杀商品id',
`type_item_id` int NOT NULL DEFAULT 0 COMMENT '规格id',
`expire_time` INT(11) NOT NULL DEFAULT 0 COMMENT '过期时间 0-不过期', `expire_time` INT(11) NOT NULL DEFAULT 0 COMMENT '过期时间 0-不过期',
`member_id` INT(11) NOT NULL DEFAULT 0 COMMENT '领取会员', `member_id` INT(11) NOT NULL DEFAULT 0 COMMENT '领取会员',
`received_time` INT(11) NOT NULL DEFAULT 0 COMMENT '领取时间', `received_time` INT(11) NOT NULL DEFAULT 0 COMMENT '领取时间',
@ -388,6 +389,7 @@ CREATE TABLE `member`
`member_label` varchar(255) NOT NULL DEFAULT '' COMMENT '会员标签', `member_label` varchar(255) NOT NULL DEFAULT '' COMMENT '会员标签',
`wx_openid` varchar(255) NOT NULL DEFAULT '' COMMENT '微信用户openid', `wx_openid` varchar(255) NOT NULL DEFAULT '' COMMENT '微信用户openid',
`weapp_openid` varchar(255) NOT NULL DEFAULT '' COMMENT '微信小程序openid', `weapp_openid` varchar(255) NOT NULL DEFAULT '' COMMENT '微信小程序openid',
`wxapp_openid` varchar(255) NOT NULL DEFAULT '' COMMENT '微信移动应用openid',
`wx_unionid` varchar(255) NOT NULL DEFAULT '' COMMENT '微信unionid', `wx_unionid` varchar(255) NOT NULL DEFAULT '' COMMENT '微信unionid',
`ali_openid` varchar(255) NOT NULL DEFAULT '' COMMENT '支付宝账户id', `ali_openid` varchar(255) NOT NULL DEFAULT '' COMMENT '支付宝账户id',
`douyin_openid` varchar(255) NOT NULL DEFAULT '' COMMENT '抖音小程序openid', `douyin_openid` varchar(255) NOT NULL DEFAULT '' COMMENT '抖音小程序openid',
@ -5075,14 +5077,18 @@ VALUES (110000, 0, '北京市', '北京', '116.405285', '39.904989', 1, 0, 1),
(460400500, 460400, '华南热作学院', '华南热作学院', '109.494073', '19.505382', 3, 0, 1); (460400500, 460400, '华南热作学院', '华南热作学院', '109.494073', '19.505382', 3, 0, 1);
ALTER TABLE activity_exchange_code CREATE TABLE `site_merchant_bind`
CHANGE COLUMN activity_type activity_type VARCHAR(20) NOT NULL DEFAULT '' COMMENT '例seckill-秒杀活动'; (
id int NOT NULL AUTO_INCREMENT,
ALTER TABLE activity_exchange_code site_id int NOT NULL DEFAULT 0 COMMENT '站点id',
ADD COLUMN type_item_id INT(11) NOT NULL DEFAULT 0 COMMENT '规格id'; wechat_openid VARCHAR(255) NOT NULL DEFAULT '' COMMENT '微信openid',
weapp_openid VARCHAR(255) NOT NULL DEFAULT '' COMMENT '小程序openid',
ALTER TABLE member mobile VARCHAR(20) NOT NULL DEFAULT '' COMMENT '手机号',
ADD COLUMN wxapp_openid VARCHAR(255) NOT NULL DEFAULT '' COMMENT '微信移动应用openid'; extends TEXT DEFAULT NULL COMMENT '扩展数据 微信用户信息/小程序用户信息',
create_time int NOT NULL DEFAULT 0 COMMENT '创建时间',
ALTER TABLE member update_time int NOT NULL DEFAULT 0 COMMENT '更新时间',
MODIFY wxapp_openid VARCHAR(255) NOT NULL DEFAULT '' COMMENT '微信移动应用openid' AFTER weapp_openid; PRIMARY KEY (id)
) ENGINE = INNODB,
CHARACTER SET utf8mb4,
COLLATE utf8mb4_general_ci,
COMMENT = '商户信息接收账号绑定表';

View File

@ -75,7 +75,7 @@ return [
'ATTACHMENT_GROUP_HAS_IMAGE' => '附件组中存在图片不允许删除', 'ATTACHMENT_GROUP_HAS_IMAGE' => '附件组中存在图片不允许删除',
'OSS_TYPE_NOT_EXIST' => '云存储类型不存在', 'OSS_TYPE_NOT_EXIST' => '云存储类型不存在',
'URL_FILE_NOT_EXIST' => '获取不到网址指向的文件', 'URL_FILE_NOT_EXIST' => '获取不到网址指向的文件',
'PLEACE_SELECT_IMAGE' => '请选择要删除的图片', 'PLEASE_SELECT_IMAGE' => '请选择要删除的图片',
'UPLOAD_TYPE_ERROR' => '不是有效的上传类型', 'UPLOAD_TYPE_ERROR' => '不是有效的上传类型',

View File

@ -122,7 +122,7 @@ return [
'ATTACHMENT_GROUP_HAS_IMAGE' => '附件组中存在图片不允许删除', 'ATTACHMENT_GROUP_HAS_IMAGE' => '附件组中存在图片不允许删除',
'OSS_TYPE_NOT_EXIST' => '云存储类型不存在', 'OSS_TYPE_NOT_EXIST' => '云存储类型不存在',
'URL_FILE_NOT_EXIST' => '获取不到网址指向的文件', 'URL_FILE_NOT_EXIST' => '获取不到网址指向的文件',
'PLEACE_SELECT_IMAGE' => '请选择要删除的图片', 'PLEASE_SELECT_IMAGE' => '请选择要删除的图片',
'UPLOAD_TYPE_ERROR' => '不是有效的上传类型', 'UPLOAD_TYPE_ERROR' => '不是有效的上传类型',
'OSS_FILE_URL_NOT_EXIST' => '远程资源文件地址不能为空', 'OSS_FILE_URL_NOT_EXIST' => '远程资源文件地址不能为空',
'BASE_IMAGE_FILE_NOT_EXIST' => 'base图片资源不能为空', 'BASE_IMAGE_FILE_NOT_EXIST' => 'base图片资源不能为空',
@ -134,6 +134,7 @@ return [
//消息管理 //消息管理
'NEED_BIND_MERCHANT' => '未绑定【商家信息】接收者账号',
'NOTICE_TYPE_NOT_EXIST' => '消息类型不存在', 'NOTICE_TYPE_NOT_EXIST' => '消息类型不存在',
'SMS_TYPE_NOT_EXIST' => '短信类型不存在', 'SMS_TYPE_NOT_EXIST' => '短信类型不存在',
'SMS_DRIVER_NOT_EXIST' => '短信驱动不存在', 'SMS_DRIVER_NOT_EXIST' => '短信驱动不存在',

View File

@ -4,6 +4,7 @@ namespace app\listener\notice;
use app\dict\notice\NoticeTypeDict; use app\dict\notice\NoticeTypeDict;
use app\service\core\member\CoreMemberService; use app\service\core\member\CoreMemberService;
use app\service\core\notice\CoreNoticeBindMerchantService;
use app\service\core\notice\CoreNoticeLogService; use app\service\core\notice\CoreNoticeLogService;
use app\service\core\notice\CoreSmsService; use app\service\core\notice\CoreSmsService;
use core\exception\NoticeException; use core\exception\NoticeException;
@ -27,12 +28,22 @@ class Sms
$member_id = $to[ 'member_id' ] ?? 0; $member_id = $to[ 'member_id' ] ?? 0;
$uid = $to[ 'uid' ] ?? 0; $uid = $to[ 'uid' ] ?? 0;
if (!$mobile) { if (!$mobile) {
if ($template['receiver_type'] ==1){
$member_id = $to[ 'member_id' ] ?? 0;
//会员的 //会员的
if ($member_id > 0) {//查询openid if ($member_id > 0) {//查询openid
$info = ( new CoreMemberService() )->getInfoByMemberId($site_id, $member_id); $info = ( new CoreMemberService() )->getInfoByMemberId($site_id, $member_id);
$mobile = $info[ 'mobile' ] ?? ''; $mobile = $info[ 'mobile' ] ?? '';
$nickname = $info[ 'nickname' ] ?? ''; $nickname = $info[ 'nickname' ] ?? '';
} }
}else{
$merchant_id = $to[ 'merchant_id' ] ?? 0;
if ($merchant_id > 0) {
$info = (new CoreNoticeBindMerchantService())->getInfo($merchant_id);
$mobile = $info[ 'mobile' ] ?? '';
$nickname = '商户通知';
}
}
} }
try { try {

View File

@ -4,6 +4,7 @@ namespace app\listener\notice;
use app\dict\notice\NoticeTypeDict; use app\dict\notice\NoticeTypeDict;
use app\service\core\member\CoreMemberService; use app\service\core\member\CoreMemberService;
use app\service\core\notice\CoreNoticeBindMerchantService;
use app\service\core\notice\CoreNoticeLogService; use app\service\core\notice\CoreNoticeLogService;
use core\exception\NoticeException; use core\exception\NoticeException;
use core\template\TemplateLoader; use core\template\TemplateLoader;
@ -17,19 +18,35 @@ class Weapp
$site_id = $data['site_id']; $site_id = $data['site_id'];
$template = $data['template'];//模板 $template = $data['template'];//模板
$vars = $data['vars'];//模板变量 $vars = $data['vars'];//模板变量
$url = $vars['__weapp_page'] ?? '';
$key = $data['key']; $key = $data['key'];
$to = $data['to'];//发送对象主题 $to = $data['to'];//发送对象主题
Log::write("小程序消息发送" . json_encode($data)); Log::write("小程序消息发送" . json_encode($data));
//完全信任消息的设置, 不再依赖support_type //完全信任消息的设置, 不再依赖support_type
if ($template['is_weapp']) { if ($template['is_weapp']) {
if ($template['receiver_type'] ==1){
$member_id = $to[ 'member_id' ] ?? 0; $member_id = $to[ 'member_id' ] ?? 0;
//会员的
if ($member_id > 0) {//查询openid if ($member_id > 0) {//查询openid
$info = ( new CoreMemberService() )->getInfoByMemberId($site_id, $member_id); $info = ( new CoreMemberService() )->getInfoByMemberId($site_id, $member_id);
$openid = $info[ 'weapp_openid' ] ?? ''; $openid = $info[ 'weapp_openid' ] ?? '';
$nickname = $info[ 'nickname' ] ?? ''; $nickname = $info[ 'nickname' ] ?? '';
} }
Log::write("小程序消息发送 member_id:{$member_id} openid:{$openid}"); Log::write("小程序消息发送 member_id:{$member_id} openid:{$openid}");
}else{ //商户通知不跳转
$merchant_id = $to[ 'merchant_id' ] ?? 0;
if ($merchant_id > 0) {
$info = (new CoreNoticeBindMerchantService())->getInfo($merchant_id);
$openid = $info[ 'weapp_openid' ] ?? '';
$nickname = '商户通知';
}
$url = "";
}
if (!empty($openid)) { if (!empty($openid)) {
$weapp_template_id = $template['weapp_template_id']; $weapp_template_id = $template['weapp_template_id'];
$weapp = $template['weapp']; $weapp = $template['weapp'];
@ -42,12 +59,12 @@ class Weapp
} }
$weapp_data[$v[2]]['value'] = $search_content; $weapp_data[$v[2]]['value'] = $search_content;
} }
$url = $vars['__weapp_page'] ?? '';
$log_data = array( $log_data = array(
'key' => $key, 'key' => $key,
'notice_type' => NoticeTypeDict::WEAPP, 'notice_type' => NoticeTypeDict::WEAPP,
'uid' => $data['uid'] ?? 0, 'uid' => $data['uid'] ?? 0,
'member_id' => $member_id, 'member_id' => $member_id ?? 0,
'nickname' => $nickname ?? '', 'nickname' => $nickname ?? '',
'receiver' => $openid, 'receiver' => $openid,
'params' => $data, 'params' => $data,

View File

@ -4,10 +4,12 @@ namespace app\listener\notice;
use app\dict\notice\NoticeTypeDict; use app\dict\notice\NoticeTypeDict;
use app\service\core\member\CoreMemberService; use app\service\core\member\CoreMemberService;
use app\service\core\notice\CoreNoticeBindMerchantService;
use app\service\core\notice\CoreNoticeLogService; use app\service\core\notice\CoreNoticeLogService;
use app\service\core\weapp\CoreWeappConfigService; use app\service\core\weapp\CoreWeappConfigService;
use core\exception\NoticeException; use core\exception\NoticeException;
use core\template\TemplateLoader; use core\template\TemplateLoader;
use think\facade\Log;
class Wechat class Wechat
{ {
@ -17,11 +19,17 @@ class Wechat
$site_id = $data[ 'site_id' ]; $site_id = $data[ 'site_id' ];
$template = $data[ 'template' ];//模板 $template = $data[ 'template' ];//模板
$vars = $data[ 'vars' ];//模板变量 $vars = $data[ 'vars' ];//模板变量
$weapp_page = $vars[ '__weapp_page' ] ?? '';
$key = $data[ 'key' ]; $key = $data[ 'key' ];
$to = $data[ 'to' ];//发送对象主题 $to = $data[ 'to' ];//发送对象主题
//完全信任消息的设置, 不再依赖support_type //完全信任消息的设置, 不再依赖support_type
if ($template[ 'is_wechat' ]) { if ($template[ 'is_wechat' ]) {
Log::write('template_info');
Log::write(json_encode($template,256));
if ($template['receiver_type'] ==1){
$member_id = $to[ 'member_id' ] ?? 0; $member_id = $to[ 'member_id' ] ?? 0;
//会员的 //会员的
if ($member_id > 0) {//查询openid if ($member_id > 0) {//查询openid
@ -29,6 +37,17 @@ class Wechat
$openid = $info[ 'wx_openid' ] ?? ''; $openid = $info[ 'wx_openid' ] ?? '';
$nickname = $info[ 'nickname' ] ?? ''; $nickname = $info[ 'nickname' ] ?? '';
} }
}else{
$merchant_id = $to[ 'merchant_id' ] ?? 0;
$weapp_page = '';//通知商户的消息不进行跳转
$vars[ '__wechat_page' ] = '';
if ($merchant_id > 0) {
$info = (new CoreNoticeBindMerchantService())->getInfo($merchant_id);
$openid = $info[ 'wechat_openid' ] ?? '';
$nickname = '商户通知';
}
}
//或者还有用户的 //或者还有用户的
if (!empty($openid)) { if (!empty($openid)) {
$wechat_template_id = $template[ 'wechat_template_id' ]; $wechat_template_id = $template[ 'wechat_template_id' ];
@ -53,14 +72,13 @@ class Wechat
'key' => $key, 'key' => $key,
'notice_type' => NoticeTypeDict::WECHAT, 'notice_type' => NoticeTypeDict::WECHAT,
'uid' => $data[ 'uid' ] ?? 0, 'uid' => $data[ 'uid' ] ?? 0,
'member_id' => $member_id, 'member_id' => $member_id ?? 0,
'nickname' => $nickname ?? '', 'nickname' => $nickname ?? '',
'receiver' => $openid, 'receiver' => $openid,
'params' => $vars, 'params' => $vars,
'content' => $wechat 'content' => $wechat
); );
$weapp_page = $vars[ '__weapp_page' ] ?? '';
if (!empty($weapp_page)) { if (!empty($weapp_page)) {
$appid = ( new CoreWeappConfigService() )->getWeappConfig($site_id)[ 'app_id' ] ?? ''; $appid = ( new CoreWeappConfigService() )->getWeappConfig($site_id)[ 'app_id' ] ?? '';
if (!empty($appid)) { if (!empty($appid)) {
@ -82,7 +100,8 @@ class Wechat
if (!empty($miniprogram)) { if (!empty($miniprogram)) {
$send_data[ 'miniprogram' ] = $miniprogram; $send_data[ 'miniprogram' ] = $miniprogram;
} }
( new TemplateLoader(NoticeTypeDict::WECHAT, [ 'site_id' => $site_id ]) )->send($send_data); $send_res = ( new TemplateLoader(NoticeTypeDict::WECHAT, [ 'site_id' => $site_id ]) )->send($send_data);
Log::write('发送结果'.$send_res);
( new CoreNoticeLogService() )->add($site_id, $log_data); ( new CoreNoticeLogService() )->add($site_id, $log_data);
} catch (NoticeException $e) { } catch (NoticeException $e) {
$log_data[ 'result' ] = $e->getMessage(); $log_data[ 'result' ] = $e->getMessage();

View File

@ -11,8 +11,12 @@
namespace app\listener\scan; namespace app\listener\scan;
use app\dict\notice\BindMerchantDict;
use app\dict\scan\ScanDict; use app\dict\scan\ScanDict;
use app\model\site\SiteMerchantBind;
use app\service\api\wechat\WechatAuthService; use app\service\api\wechat\WechatAuthService;
use app\service\core\notice\CoreNoticeBindMerchantService;
use think\facade\Log;
use Throwable; use Throwable;
/** /**
@ -37,6 +41,17 @@ class ScanListener
} }
unset($data['openid']); unset($data['openid']);
break; break;
case ScanDict::ADMIN_MERCHANT_BIND_WECHAT://后台绑定商家通知接收者openid
try {
$data['status'] = ScanDict::SUCCESS;
(new CoreNoticeBindMerchantService())->bindAccount($data['site_id'],$data['openid'],BindMerchantDict::WECHAT);
//绑定信息
} catch ( Throwable $e ) {
$data['status'] = ScanDict::FAIL;
$data['fail_reason'] = get_lang($e->getMessage());
}
unset($data['openid']);
break;
} }
return $data; return $data;

View File

@ -0,0 +1,45 @@
<?php
// +----------------------------------------------------------------------
// | Niucloud-admin 企业快速开发的saas管理平台
// +----------------------------------------------------------------------
// | 官方网址https://www.niucloud.com
// +----------------------------------------------------------------------
// | niucloud团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: Niucloud Team
// +----------------------------------------------------------------------
namespace app\model\site;
use core\base\BaseModel;
/**
* 站点模型
* Class Site
* @package app\model\site
*/
class SiteMerchantBind extends BaseModel
{
protected $type = [
];
/**
* 数据表主键
* @var string
*/
protected $pk = 'id';
/**
* 模型名称
* @var string
*/
protected $name = 'site_merchant_bind';
protected $json = ['extends'];
protected $jsonAssoc = true;
}

View File

@ -0,0 +1,165 @@
<?php
// +----------------------------------------------------------------------
// | Niucloud-admin 企业快速开发的saas管理平台
// +----------------------------------------------------------------------
// | 官方网址https://www.niucloud.com
// +----------------------------------------------------------------------
// | niucloud团队 版权所有 开源版本可自由商用
// +----------------------------------------------------------------------
// | Author: Niucloud Team
// +----------------------------------------------------------------------
namespace app\service\admin\notice;
use app\dict\notice\BindMerchantDict;
use app\dict\scan\ScanDict;
use app\model\site\SiteMerchantBind;
use app\service\core\notice\CoreNoticeBindMerchantService;
use app\service\core\scan\CoreScanService;
use app\service\core\wechat\CoreWechatServeService;
use core\base\BaseAdminService;
use core\exception\AdminException;
use core\exception\AuthException;
use think\facade\Cache;
use think\facade\Log;
/**
* 消息管理服务层
*/
class BindMerchantService extends BaseAdminService
{
public function __construct()
{
parent::__construct();
}
/**
* 获取小程序二维码
* @param string $url
* @param string $scopes
* @return array
*/
public function getWeappQrcode()
{
$dir = 'upload/' . $this->site_id . '/merchant';
try {
$qrcode_data = [
[
'key' => 'tp',
'value' => 'b_m'//bind_merchant
],
[
'key' => 's',
'value' => $this->site_id
]
];
$weapp_path = qrcode('', 'app/pages/setting/authorization', $qrcode_data, $this->site_id, $dir, 'weapp');
return [
'url' => $weapp_path
];
} catch (AdminException $e) {
Log::write('获取推广微信小程序二维码error' . $e->getMessage() . $e->getFile() . $e->getLine() . 'params:');
throw new AdminException($e->getMessage() . $e->getFile() . $e->getLine() . 'params:');
}
}
/**
* 网页授权
* @param string $url
* @param string $scopes
* @return array
*/
public function getWechatUrl()
{
$key = (new CoreScanService())->scan($this->site_id, ScanDict::ADMIN_MERCHANT_BIND_WECHAT, [], 300);
$url = (new CoreWechatServeService())->scan($this->site_id, $key, 300)['url'] ?? '';
return [
'url' => $url,
];
}
public function sendBindSms($mobile)
{
$type = 'bind_merchant';
$code = str_pad(random_int(1, 9999), 4, 0, STR_PAD_LEFT);// 生成4位随机数左侧补0
(new \app\service\core\notice\NoticeService())->send($this->site_id, 'verify_code', ['code' => $code, 'mobile' => $mobile]);
//将验证码存入缓存
$key = md5(uniqid('', true));
$cache_tag_name = "admin_mobile_key" . $mobile . $type;
$this->clearMobileCode($mobile, $type);
Cache::tag($cache_tag_name)->set($key, ['mobile' => $mobile, 'code' => $code, 'type' => $type], 600);
Log::write('bind_merchant--mobile:' . $mobile . ':send_bind_sms_code:' . $code);
return [
'key' => $key,
'mobile' => $mobile,
];
}
public function clearMobileCode($mobile, $type)
{
$cache_tag_name = "admin_mobile_key" . $mobile . $type;
Cache::tag($cache_tag_name)->clear();
}
/**
* 校验手机验证码
* @param string $mobile
* @return true
*/
public function checkMobileCode($params)
{
$mobile = $params['mobile'] ?? '';
if (empty($mobile)) throw new AuthException('MOBILE_NEEDED');
$mobile_key = $params['mobile_key'];
$mobile_code = $params['mobile_code'];
if (empty($mobile_key) || empty($mobile_code)) throw new AuthException('MOBILE_CAPTCHA_ERROR');
$cache = Cache::get($mobile_key);
if (empty($cache)) throw new AuthException('MOBILE_CAPTCHA_ERROR');
$temp_mobile = $cache['mobile'];
$temp_code = $cache['code'];
$temp_type = $cache['type'];
if ($temp_mobile != $mobile || $temp_code != $mobile_code) throw new AuthException('MOBILE_CAPTCHA_ERROR');
(new CoreNoticeBindMerchantService())->bindAccount($this->site_id, $mobile, BindMerchantDict::SMS);
$this->clearMobileCode($temp_mobile, $temp_type);
return true;
}
/**
* 绑定商户通知账户
* @return int[]
*/
public function merchantBindInfo()
{
$return = [
'wechat_openid' => '',
'weapp_openid' => '',
'mobile' => '',
];
$bind_info = (new SiteMerchantBind())->where('site_id', $this->site_id)->findOrEmpty();
$bind_info = $bind_info->toArray();
if (!empty($bind_info['wechat_openid'])) {
$return['wechat_openid'] = $bind_info['wechat_openid'];
}
if (!empty($bind_info['weapp_openid'])) {
$return['weapp_openid'] = $bind_info['weapp_openid'];
}
if (!empty($bind_info['mobile'])) {
$return['mobile'] = $bind_info['mobile'];
}
return $return;
}
/**
* 解绑商户通知账户
* @param $data
* @return bool
*/
public function unBindMerchant($data)
{
return (new CoreNoticeBindMerchantService())->unBindAccount($this->site_id, $data);
}
}

View File

@ -233,10 +233,34 @@ class NiuSmsService extends BaseAdminService
*/ */
public function signCreate($username, $params) public function signCreate($username, $params)
{ {
if (!empty($params['imgUrl']) && strstr($params['imgUrl'], 'http') === false) { $params['imgUrl'] = $this->formatImageUrl($params['imgUrl']);
$params['imgUrl'] = request()->domain() . '/' . $params['imgUrl']; $params['bizLicenseUrl'] = $this->formatImageUrl($params['bizLicenseUrl']);
} else { $params['qccUrl'] = $this->formatImageUrl($params['qccUrl']);
$params['imgUrl'] = $params['imgUrl'] ?? ''; $params['tmnetUrl'] = $this->formatImageUrl($params['tmnetUrl']);
$params['mobileIcpUrl'] = $this->formatImageUrl($params['mobileIcpUrl']);
$params['telecomAppstoreUrl'] = $this->formatImageUrl($params['telecomAppstoreUrl']);
$params['idcardFrontUrl'] = $this->formatImageUrl($params['idcardFrontUrl']);
$params['idcardBackUrl'] = $this->formatImageUrl($params['idcardBackUrl']);
if (empty($params['idcardFrontUrl'])) {
throw new ApiException('身份证正面不能为空');
}
if (empty($params['idcardBackUrl'])) {
throw new ApiException('身份证反面不能为空');
}
if (empty($params['bizLicenseUrl'])) {
throw new ApiException('营业执照');
}
if (in_array($params['signSource'], [4, 5]) && empty($params['telecomAppstoreUrl'])) {
throw new ApiException('应用商店/小程序页面开发者截图不能为空');
}
if (in_array($params['signSource'], [4, 5]) && empty($params['mobileIcpUrl'])) {
throw new ApiException('移动ICP截图不能为空');
}
if (in_array($params['signSource'], [3]) && empty($params['tmnetUrl'])) {
throw new ApiException('中国商标网截图不能为空');
}
if (in_array($params['signSource'], [1, 2]) && $params['signType'] == 1 && empty($params['qccUrl'])) {
throw new ApiException('企查查唯一性截图不能为空');
} }
$res = $this->niu_service->signCreate($username, $params); $res = $this->niu_service->signCreate($username, $params);
if (!empty($res['failList'])) { if (!empty($res['failList'])) {
@ -244,6 +268,21 @@ class NiuSmsService extends BaseAdminService
} }
} }
/**
* 格式化图片地址
* @param $url
* @return string
*/
private function formatImageUrl($url)
{
if (!empty($url) && strstr($url, 'http') === false) {
$url = request()->domain() . '/' . $url;
} else {
$url = $url ?? '';
}
return $url;
}
/** /**
* 签名创建 * 签名创建
* @param $username * @param $username

View File

@ -13,7 +13,9 @@ namespace app\service\admin\notice;
use app\dict\notice\NoticeDict; use app\dict\notice\NoticeDict;
use app\dict\notice\NoticeTypeDict; use app\dict\notice\NoticeTypeDict;
use app\model\site\SiteMerchantBind;
use app\model\sys\SysNotice; use app\model\sys\SysNotice;
use app\service\core\notice\CoreNoticeBindMerchantService;
use app\service\core\notice\CoreNoticeService; use app\service\core\notice\CoreNoticeService;
use core\base\BaseAdminService; use core\base\BaseAdminService;
use core\exception\AdminException; use core\exception\AdminException;
@ -72,7 +74,29 @@ class NoticeService extends BaseAdminService
public function editMessageStatus(string $key, string $type, int $status) public function editMessageStatus(string $key, string $type, int $status)
{ {
if (!array_key_exists($type, NoticeTypeDict::getType())) throw new AdminException('NOTICE_TYPE_NOT_EXIST'); if (!array_key_exists($type, NoticeTypeDict::getType())) throw new AdminException('NOTICE_TYPE_NOT_EXIST');
if (!array_key_exists($key, NoticeDict::getNotice())) return fail('NOTICE_TYPE_NOT_EXIST'); $notice_list = NoticeDict::getNotice();
if (!array_key_exists($key, $notice_list)) return fail('NOTICE_TYPE_NOT_EXIST');
if (isset($notice_list[$key]['is_need_bind_merchant']) && $notice_list[$key]['is_need_bind_merchant'] == 1) {
$bind_info = (new BindMerchantService())->merchantBindInfo();
switch ($type) {
case NoticeTypeDict::SMS:
if ($status == 1 && empty($bind_info['mobile'])) {
throw new AdminException('NEED_BIND_MERCHANT');
}
break;
case NoticeTypeDict::WECHAT:
if ($status == 1 && empty($bind_info['wechat_openid'])) {
throw new AdminException('NEED_BIND_MERCHANT');
}
break;
case NoticeTypeDict::WEAPP:
if ($status == 1 && empty($bind_info['weapp_openid'])) {
throw new AdminException('NEED_BIND_MERCHANT');
}
break;
}
}
return (new CoreNoticeService())->edit($this->site_id, $key, ['is_' . $type => $status]); return (new CoreNoticeService())->edit($this->site_id, $key, ['is_' . $type => $status]);
} }
@ -85,17 +109,32 @@ class NoticeService extends BaseAdminService
public function edit(string $key, string $type, array $data) public function edit(string $key, string $type, array $data)
{ {
if (!array_key_exists($type, NoticeTypeDict::getType())) throw new AdminException('NOTICE_TYPE_NOT_EXIST'); if (!array_key_exists($type, NoticeTypeDict::getType())) throw new AdminException('NOTICE_TYPE_NOT_EXIST');
if (!array_key_exists($key, NoticeDict::getNotice())) return fail('NOTICE_TYPE_NOT_EXIST'); $notice_list = NoticeDict::getNotice();
if (!array_key_exists($key, $notice_list)) return fail('NOTICE_TYPE_NOT_EXIST');
$save_data = ['is_' . $type => $data['status']]; $save_data = ['is_' . $type => $data['status']];
$is_need_bind = 0;
if (isset($notice_list[$key]['is_need_bind_merchant']) && $notice_list[$key]['is_need_bind_merchant'] == 1) {
$is_need_bind = 1;
$bind_info = (new BindMerchantService())->merchantBindInfo();
}
switch ($type) { switch ($type) {
case NoticeTypeDict::SMS: case NoticeTypeDict::SMS:
if ($is_need_bind && $data['status'] == 1 && empty($bind_info['mobile'])) {
throw new AdminException('NEED_BIND_MERCHANT');
}
$save_data['sms_id'] = $data['sms_id'] ?? ''; $save_data['sms_id'] = $data['sms_id'] ?? '';
break; break;
case NoticeTypeDict::WECHAT: case NoticeTypeDict::WECHAT:
if ($is_need_bind && $data['status'] == 1 && empty($bind_info['wechat_openid'])) {
throw new AdminException('NEED_BIND_MERCHANT');
}
$save_data['wechat_first'] = $data['wechat_first'] ?? ''; $save_data['wechat_first'] = $data['wechat_first'] ?? '';
$save_data['wechat_remark'] = $data['wechat_remark'] ?? ''; $save_data['wechat_remark'] = $data['wechat_remark'] ?? '';
break; break;
case NoticeTypeDict::WEAPP: case NoticeTypeDict::WEAPP:
if ($is_need_bind && $data['status'] == 1 && empty($bind_info['weapp_openid'])) {
throw new AdminException('NEED_BIND_MERCHANT');
}
break; break;
} }
if ($type == NoticeTypeDict::SMS && $data['status'] == 1) { if ($type == NoticeTypeDict::SMS && $data['status'] == 1) {
@ -103,5 +142,4 @@ class NoticeService extends BaseAdminService
} }
return (new CoreNoticeService())->edit($this->site_id, $key, $save_data); return (new CoreNoticeService())->edit($this->site_id, $key, $save_data);
} }
} }

View File

@ -93,6 +93,12 @@ class SiteService extends BaseAdminService
$info['site_addons'] = (new Addon())->where([['key', 'in', $site_addons]])->field('key,title,desc,icon,type')->select()->toArray(); $info['site_addons'] = (new Addon())->where([['key', 'in', $site_addons]])->field('key,title,desc,icon,type')->select()->toArray();
$info['uid'] = (new SysUserRole())->where([['site_id', '=', $site_id], ['is_admin', '=', 1]])->value('uid'); $info['uid'] = (new SysUserRole())->where([['site_id', '=', $site_id], ['is_admin', '=', 1]])->value('uid');
} }
if (empty($info['logo'])) {
$info['logo'] = 'static/resource/images/site/logo.png';
}
if (empty($info['icon'])) {
$info['icon'] = 'static/resource/images/site/icon.png';
}
return $info; return $info;
} }
@ -453,7 +459,13 @@ class SiteService extends BaseAdminService
$site_addon = $this->getSiteAddons([]); $site_addon = $this->getSiteAddons([]);
$menu_model = (new SysMenu()); $menu_model = (new SysMenu());
$addon_urls = $menu_model $addon_urls = $menu_model
->where([['addon', 'in', array_column($site_addon, 'key')], ['addon', 'not in', $keys], ['is_show', '=', 1], ['menu_type', '=', 1]]) ->where([
['addon', 'in', array_column($site_addon, 'key')],
['addon', 'not in', $keys],
['is_show', '=', 1],
['menu_type', '=', 1],
['app_type', '=', 'site'],
])
->order('id asc') ->order('id asc')
->group('addon') ->group('addon')
->column('router_path', 'addon'); ->column('router_path', 'addon');

View File

@ -142,10 +142,12 @@ class UpgradeService extends BaseAdminService
// 忽略指定目录niucloud // 忽略指定目录niucloud
$exclude_niucloud_dir = [ $exclude_niucloud_dir = [
'public' . DIRECTORY_SEPARATOR . 'admin', 'public' . DIRECTORY_SEPARATOR . 'admin',
'public' . DIRECTORY_SEPARATOR . 'admin' . DIRECTORY_SEPARATOR .'niucloud.ico',
'public' . DIRECTORY_SEPARATOR . 'wap', 'public' . DIRECTORY_SEPARATOR . 'wap',
'public' . DIRECTORY_SEPARATOR . 'web', 'public' . DIRECTORY_SEPARATOR . 'web',
'public' . DIRECTORY_SEPARATOR . 'upload', 'public' . DIRECTORY_SEPARATOR . 'upload',
'public' . DIRECTORY_SEPARATOR . 'file', 'public' . DIRECTORY_SEPARATOR . 'file',
'public' . DIRECTORY_SEPARATOR . 'favicon.ico',
'runtime', 'runtime',
'vendor', 'vendor',
'.user.ini', '.user.ini',

View File

@ -66,7 +66,7 @@ class WechatTemplateService extends BaseAdminService
//删除原来的消息模板 //删除原来的消息模板
// (new CoreWechatTemplateService())->deletePrivateTemplate($this->site_id, $wechat_template_id); // (new CoreWechatTemplateService())->deletePrivateTemplate($this->site_id, $wechat_template_id);
$template_loader = new TemplateLoader('wechat', [ 'site_id' => $this->site_id ]); $template_loader = new TemplateLoader('wechat', [ 'site_id' => $this->site_id ]);
$template_loader->delete([ 'templateId' => $wechat_template_id ]); $del_res = $template_loader->delete([ 'templateId' => $wechat_template_id ]);
//新的消息模板 //新的消息模板
// $res = (new CoreWechatTemplateService())->addTemplate($this->site_id, $temp_key, $keyword_name_list); // $res = (new CoreWechatTemplateService())->addTemplate($this->site_id, $temp_key, $keyword_name_list);
$res = $template_loader->addTemplate([ 'shortId' => $temp_key, 'keyword_name_list' => $keyword_name_list ]); $res = $template_loader->addTemplate([ 'shortId' => $temp_key, 'keyword_name_list' => $keyword_name_list ]);
@ -75,6 +75,9 @@ class WechatTemplateService extends BaseAdminService
//修改 //修改
$notice_service->modify($key, 'wechat_template_id', $res[ 'template_id' ]); $notice_service->modify($key, 'wechat_template_id', $res[ 'template_id' ]);
} else { } else {
if (isset($res[ 'errcode' ]) && $res[ 'errcode' ] == 45026) {
throw new NoticeException('模板数量超出限制');
}
throw new NoticeException($res[ 'errmsg' ]); throw new NoticeException($res[ 'errmsg' ]);
} }
return true; return true;

View File

@ -13,10 +13,12 @@ namespace app\service\api\weapp;
use app\dict\member\MemberLoginTypeDict; use app\dict\member\MemberLoginTypeDict;
use app\dict\member\MemberRegisterTypeDict; use app\dict\member\MemberRegisterTypeDict;
use app\dict\notice\BindMerchantDict;
use app\service\api\login\LoginService; use app\service\api\login\LoginService;
use app\service\api\login\RegisterService; use app\service\api\login\RegisterService;
use app\service\api\member\MemberConfigService; use app\service\api\member\MemberConfigService;
use app\service\api\member\MemberService; use app\service\api\member\MemberService;
use app\service\core\notice\CoreNoticeBindMerchantService;
use app\service\core\weapp\CoreWeappAuthService; use app\service\core\weapp\CoreWeappAuthService;
use core\base\BaseApiService; use core\base\BaseApiService;
use core\exception\ApiException; use core\exception\ApiException;
@ -258,4 +260,9 @@ class WeappAuthService extends BaseApiService
return true; return true;
} }
public function bindAdminMerchant($data)
{
return (new CoreNoticeBindMerchantService())->bindAccount($this->site_id, $data['openid'],BindMerchantDict::WEAPP,$data['user_info']);
}
} }

View File

@ -175,7 +175,7 @@ class CoreAddonInstallService extends CoreAddonBaseService
} }
if (!isset($install_data['support_version']) || empty($install_data['support_version'])) { if (!isset($install_data['support_version']) || empty($install_data['support_version'])) {
$data['addon_check'][] = [ $data['addon_check'][] = [
'msg' => $install_data['title'] . '插件的info.json文件中未检测到匹配框架当前版本['. $framework_version_arr[0].'.'.$framework_version_arr[1] .'.*]的信息无法安装,<a style="text-decoration: underline;" href="https://www.kancloud.cn/niucloud/niucloud-admin-develop/3244512" target="blank">点击查看相关手册</a>', 'msg' => $install_data['title'] . '插件的info.json文件中未检测到匹配框架当前版本['. $framework_version_arr[0].'.'.$framework_version_arr[1] .'.*]的信息无法安装,<a style="text-decoration: underline;" href="https://doc.press.niucloud.com/php/saas-framework/use/installFAQ/pluginNotCompatible.html" target="blank">点击查看相关手册</a>',
'status' => false 'status' => false
]; ];
continue; continue;
@ -184,7 +184,7 @@ class CoreAddonInstallService extends CoreAddonBaseService
if ($framework_version_arr[0].$framework_version_arr[1] != $support_framework_arr[0].$support_framework_arr[1]) { if ($framework_version_arr[0].$framework_version_arr[1] != $support_framework_arr[0].$support_framework_arr[1]) {
if ((float) "$support_framework_arr[0].$support_framework_arr[1]" < (float) "$framework_version_arr[0].$framework_version_arr[1]") { if ((float) "$support_framework_arr[0].$support_framework_arr[1]" < (float) "$framework_version_arr[0].$framework_version_arr[1]") {
$data['addon_check'][] = [ $data['addon_check'][] = [
'msg' => $install_data['title'] . '插件的info.json文件中检测到支持的框架版本['. $install_data['support_version'] .']低于当前框架版本['. $framework_version_arr[0].'.'.$framework_version_arr[1] .'.*]无法安装,<a style="text-decoration: underline;" href="https://www.kancloud.cn/niucloud/niucloud-admin-develop/3244512" target="blank">点击查看相关手册</a>', 'msg' => $install_data['title'] . '插件的info.json文件中检测到支持的框架版本['. $install_data['support_version'] .']低于当前框架版本['. $framework_version_arr[0].'.'.$framework_version_arr[1] .'.*]无法安装,<a style="text-decoration: underline;" href="https://doc.press.niucloud.com/php/saas-framework/use/installFAQ/pluginNotCompatible.html" target="blank">点击查看相关手册</a>',
'status' => false 'status' => false
]; ];
} }

View File

@ -45,17 +45,20 @@ class CoreAddonService extends CoreAddonBaseService
public function getLocalAddonList() public function getLocalAddonList()
{ {
$list = []; $list = [];
$online_app_list = []; $online_app_list = $online_apps= [];
$install_addon_list = $this->model->append(['status_name'])->column('title, icon, key, desc, status, author, version, install_time, update_time, cover', 'key'); $install_addon_list = $this->model->append(['status_name'])->column('title, icon, key, desc, status, author, version, install_time, update_time, cover', 'key');
try { try {
$niucloud_module_list = (new CoreModuleService())->getModuleList()['data'] ?? []; $niucloud_module_list = (new CoreModuleService())->getModuleList()['data'] ?? [];
foreach ($niucloud_module_list as $v) { foreach ($niucloud_module_list as $v) {
$data = array( $data = array(
'app_id' => $v['app']['app_id'],
'title' => $v['app']['app_name'], 'title' => $v['app']['app_name'],
'desc' => $v['app']['app_desc'], 'desc' => $v['app']['app_desc'],
'key' => $v['app']['app_key'] ?? '', 'key' => $v['app']['app_key'] ?? '',
'version' => $v['version'] ?? '', 'version' => $v['version'] ?? '',
'author' => $v['site_name'], 'author' => $v['site_name'],
'author_phone' => $v['site_phone'],
'expire_time' => $v['expire_time'],
'type' => $v['app']['app_type'], 'type' => $v['app']['app_type'],
'support_app' => $v['app']['support_channel'] ?? [], 'support_app' => $v['app']['support_channel'] ?? [],
'is_download' => false, 'is_download' => false,
@ -67,6 +70,7 @@ class CoreAddonService extends CoreAddonBaseService
$list[$v['app']['app_key']] = $data; $list[$v['app']['app_key']] = $data;
} }
$online_app_list = array_column($list ,'key'); $online_app_list = array_column($list ,'key');
$online_apps = array_column($list,'app_id' ,'key');
} catch (Throwable $e) { } catch (Throwable $e) {
$error = $e->getMessage(); $error = $e->getMessage();
} }
@ -80,8 +84,11 @@ class CoreAddonService extends CoreAddonBaseService
$key = $data['key']; $key = $data['key'];
$data['install_info'] = $install_addon_list[$key] ?? []; $data['install_info'] = $install_addon_list[$key] ?? [];
$data['is_download'] = true; $data['is_download'] = true;
$data['is_local'] = in_array($data['key'], $online_app_list) ? false : true; $data['is_local'] = !in_array($data['key'], $online_app_list);
$data['version'] = isset($list[$data['key']]) ? $list[$data['key']]['version'] : $data['version']; $data['version'] = isset($list[$data['key']]) ? $list[$data['key']]['version'] : $data['version'];
$data['app_id'] = in_array($data['key'], $online_app_list) ? $online_apps[$data['key']] : 0;
$data['author_phone'] = '';
$data['expire_time'] = '长期有效';
$list[$key] = $data; $list[$key] = $data;
} }
} }

View File

@ -126,12 +126,12 @@ trait WapTrait
$content .= " </view>\n"; $content .= " </view>\n";
$content .= " </view>\n"; $content .= " </view>\n";
$content .= " </template>\n"; $content .= " </template>\n";
$content .= " <template v-if=\"diyStore.mode == '' && data.global && diyGroup.showCopyright.value && data.global.copyright && data.global.copyright.isShow\">\n"; $content .= " <template v-if=\"data.global && diyGroup.showCopyright.value && data.global.copyright && data.global.copyright.isShow\">\n";
$content .= " <copy-right :textColor=\"data.global.copyright.textColor\" />\n"; $content .= " <copy-right :textColor=\"data.global.copyright.textColor\" />\n";
$content .= " </template>\n\n"; $content .= " </template>\n\n";
$content .= " <template v-if=\"diyStore.mode == '' && data.global && data.global.bottomTabBar && data.global.bottomTabBar.isShow\">\n"; $content .= " <template v-if=\"diyStore.mode == '' && data.global && data.global.bottomTabBar && data.global.bottomTabBar.isShow\">\n";
$content .= " <view class=\"pt-[20rpx]\"></view>\n"; $content .= " <view class=\"pt-[20rpx]\"></view>\n";
$content .= " <tabbar :addon=\"data.global.bottomTabBar.designNav.key\" />\n"; $content .= " <tabbar :addon=\"data.global.bottomTabBar.designNav?.key\" />\n";
$content .= " </template>\n"; $content .= " </template>\n";
$content .= " </view>\n"; $content .= " </view>\n";
$content .= "</template>\n"; $content .= "</template>\n";

View File

@ -38,10 +38,14 @@ class CoreMemberAccountService extends BaseCoreService
[ 'member_id', '=', $member_id ], [ 'member_id', '=', $member_id ],
[ 'site_id', '=', $site_id ] [ 'site_id', '=', $site_id ]
])->field($account_type . ',' . $account_type . "_get" . ', username, mobile, nickname')->lock(true)->find(); ])->field($account_type . ',' . $account_type . "_get" . ', username, mobile, nickname')->lock(true)->find();
if (empty($member_info)) throw new CommonException('MEMBER_NOT_EXIST'); if (empty($member_info)) {
Db::rollback();
throw new CommonException('MEMBER_NOT_EXIST');
}
$account_new_data = round((float) $member_info[ $account_type ] + (float) $account_data, 2); $account_new_data = round((float) $member_info[ $account_type ] + (float) $account_data, 2);
if ($account_new_data < 0) { if ($account_new_data < 0) {
Db::rollback();
throw new CommonException('ACCOUNT_INSUFFICIENT'); throw new CommonException('ACCOUNT_INSUFFICIENT');
} }

View File

@ -214,11 +214,13 @@ class CoreMemberService extends BaseCoreService
public static function sendGrowth(int $site_id, int $member_id, string $key, array $param = []) public static function sendGrowth(int $site_id, int $member_id, string $key, array $param = [])
{ {
$config = ( new CoreMemberConfigService() )->getGrowthRuleConfig($site_id); $config = ( new CoreMemberConfigService() )->getGrowthRuleConfig($site_id);
if (!isset($config[ $key ]) || empty($config[ $key ]) || empty($config[ $key ][ 'is_use' ])) return true; if (!isset($config[ $key ]) || empty($config[ $key ]) || empty($config[ $key ][ 'is_use' ])) return true;
$config = $config[ $key ]; $config = $config[ $key ];
$dict = ( new DictLoader("GrowthRule") )->load(); $dict = ( new DictLoader("GrowthRule") )->load() ?? [];
if (!isset($dict[ $key ])) return true; if (!isset($dict[ $key ])) return true;
$dict = $dict[ $key ]; $dict = $dict[ $key ];
@ -234,7 +236,7 @@ class CoreMemberService extends BaseCoreService
if ($growth <= 0) return true; if ($growth <= 0) return true;
( new CoreMemberAccountService() )->addLog($site_id, $member_id, MemberAccountTypeDict::GROWTH, $growth, $param[ 'from_type' ] ?? '', $param[ 'momo' ] ?? $dict[ 'desc' ], $param[ 'related_id' ] ?? 0); ( new CoreMemberAccountService() )->addLog($site_id, $member_id, MemberAccountTypeDict::GROWTH, $growth, $param[ 'from_type' ] ?? ($key ?? ''), $param[ 'momo' ] ?? $dict[ 'desc' ], $param[ 'related_id' ] ?? 0);
return true; return true;
} }

View File

@ -281,7 +281,7 @@ class CoreNiuSmsService extends BaseCoreService
public function templateList($username, $params) public function templateList($username, $params)
{ {
$params = array_merge($params, $this->getPageParam()); $params = array_merge($params, $this->getPageParam());
$params['limit'] = $params['limit'] ?? 100; $params['limit'] = $params['size'] ?? 100;
$url = $this->niushop_url_prefix . sprintf(self::TEMPLATE_LIST_URL, $username); $url = $this->niushop_url_prefix . sprintf(self::TEMPLATE_LIST_URL, $username);
$res = (new HttpHelper())->get($url, $params); $res = (new HttpHelper())->get($url, $params);
return $res; return $res;

View File

@ -0,0 +1,81 @@
<?php
namespace app\service\core\notice;
use app\dict\notice\BindMerchantDict;
use app\model\site\SiteMerchantBind;
use core\base\BaseCoreService;
class CoreNoticeBindMerchantService extends BaseCoreService
{
public function __construct()
{
parent::__construct();
}
public function getInfo($id)
{
return (new SiteMerchantBind())->where('id', $id)->find()->toArray();
}
public function bindAccount($site_id, $value, $type = BindMerchantDict::WEAPP, $extends = [])
{
if ($type == BindMerchantDict::WECHAT) {
$openid_column = 'wechat_openid';
} else if ($type == BindMerchantDict::SMS) {
$openid_column = 'mobile';
} else {
$openid_column = 'weapp_openid';
}
$bind_info = (new SiteMerchantBind())->where('site_id', $site_id)->findOrEmpty();
if ($bind_info->isEmpty()) {
if (!empty($extends)) {
$extends[$type] = $extends;
}
$res = (new SiteMerchantBind())->insertGetId([
'extends' => $extends,
$openid_column => $value,
'site_id' => $site_id,
'create_time' => time(),
]);
} else {
$db_extends = $bind_info->toArray()['extends'];
if (!empty($extends)) {
$db_extends[$type] = $extends;
}
$res = (new SiteMerchantBind())->where('site_id', $site_id)->update([
'extends' => $db_extends,
$openid_column => $value,
'update_time' => time(),
]);
}
return $res;
}
public function unBindAccount($site_id, $data)
{
if (in_array(BindMerchantDict::WECHAT, $data['unbind_type']) && in_array(BindMerchantDict::WEAPP, $data['unbind_type']) && in_array(BindMerchantDict::SMS, $data['unbind_type'])) {
return (new SiteMerchantBind())->where('site_id', $site_id)->delete();
}
if (in_array(BindMerchantDict::WECHAT, $data['unbind_type'])) {
(new SiteMerchantBind())->where('site_id', $site_id)->update([
'wechat_openid' => '',
'update_time' => time()
]);
}
if (in_array(BindMerchantDict::WEAPP, $data['unbind_type'])) {
(new SiteMerchantBind())->where('site_id', $site_id)->update([
'weapp_openid' => '',
'update_time' => time()
]);
}
if (in_array(BindMerchantDict::SMS, $data['unbind_type'])) {
(new SiteMerchantBind())->where('site_id', $site_id)->update([
'mobile' => '',
'update_time' => time()
]);
}
return true;
}
}

View File

@ -58,6 +58,7 @@ class CoreScanService extends BaseCoreService
* @return true * @return true
*/ */
public function actionByScan(int $site_id, string $key, array $data){ public function actionByScan(int $site_id, string $key, array $data){
$data['site_id'] = $site_id;
$cache_name = self::$cache_name.$key; $cache_name = self::$cache_name.$key;
$cache = Cache::get($cache_name); $cache = Cache::get($cache_name);
Log::write('scan_log_'.$key); Log::write('scan_log_'.$key);

View File

@ -127,7 +127,7 @@ class CoreAttachmentService extends BaseCoreService
$core_attachment_service = new CoreAttachmentService(); $core_attachment_service = new CoreAttachmentService();
$list = $core_attachment_service->getList($site_id, compact('att_ids')); $list = $core_attachment_service->getList($site_id, compact('att_ids'));
if(empty($list)) if(empty($list))
throw new UploadFileException('PLEACE_SELECT_IMAGE'); throw new UploadFileException('PLEASE_SELECT_IMAGE');
$del_success_ids = []; $del_success_ids = [];
foreach($list as $v){ foreach($list as $v){

View File

@ -14,8 +14,10 @@ namespace app\service\core\sys;
use app\dict\sys\ExportDict; use app\dict\sys\ExportDict;
use app\model\sys\SysExport; use app\model\sys\SysExport;
use core\base\BaseCoreService; use core\base\BaseCoreService;
use PhpOffice\PhpSpreadsheet\Cell\DataType;
use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Alignment; use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use think\facade\Log; use think\facade\Log;
@ -199,9 +201,17 @@ class CoreExportService extends BaseCoreService
foreach ($data as $item) { foreach ($data as $item) {
foreach ($data_column as $k => $v) foreach ($data_column as $k => $v)
{ {
$sheet->setCellValue($v['excel_column_name'] . $row, $item[$k]); $cell_value = $item[$k] ?? '';
// 将样式应用到单元格 $cell_coordinate = $v['excel_column_name'] . $row;
$sheet->getStyle($v['excel_column_name'] . $row)->applyFromArray($style_array); // 步骤1获取单元格对象
$cell = $sheet->getCell($cell_coordinate);
// 步骤2强制单元格格式为纯文本核心
$cell->getStyle()->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_TEXT);
// 步骤3显式赋值为字符串类型避免解析为公式核心
$cell->setValueExplicit($cell_value, DataType::TYPE_STRING);
// 将样式应用到单元格(原有逻辑保留)
$sheet->getStyle($cell_coordinate)->applyFromArray($style_array);
// todo 合并行 // todo 合并行
if (isset($v['merge_type']) && $v['merge_type'] == 'column') { if (isset($v['merge_type']) && $v['merge_type'] == 'column') {

View File

@ -36,10 +36,13 @@ class CoreWechatServeService extends BaseCoreService
* @param string $scopes * @param string $scopes
* @return string * @return string
*/ */
public function authorization(int $site_id, string $url = '', string $scopes = 'snsapi_base') public function authorization(int $site_id, string $url = '', string $scopes = 'snsapi_base',$state = '')
{ {
$oauth = CoreWechatService::app($site_id)->getOauth(); $oauth = CoreWechatService::app($site_id)->getOauth()->scopes([ $scopes ]);
return $oauth->scopes([ $scopes ])->redirect($url); if (!empty($state)){
$oauth = $oauth->withState($state);
}
return $oauth->redirect($url);
} }
/** /**
@ -84,7 +87,6 @@ class CoreWechatServeService extends BaseCoreService
*/ */
public function serve(int $site_id) public function serve(int $site_id)
{ {
$app = CoreWechatService::app($site_id); $app = CoreWechatService::app($site_id);
$server = $app->getServer(); $server = $app->getServer();
$server->with(function($message, \Closure $next) use ($site_id) { $server->with(function($message, \Closure $next) use ($site_id) {

View File

@ -0,0 +1,48 @@
<?php
namespace app\upgrade\v121;
use app\model\diy\Diy;
use app\model\diy_form\DiyForm;
class Upgrade
{
public function handle()
{
$this->handleDiyData();
}
/**
* 处理自定义数据
* @return void
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
private function handleDiyData()
{
$diy_model = new Diy();
$where = [
['value', '<>', ''],
];
$field = 'id,value';
$list = $diy_model->where($where)->field($field)->select()->toArray();
$components_names = ['GoodsList','ManyGoodsList','ShopExchangeGoods','ShopGoodsRecommend','SingleRecommend','ShopNewcomer','ShopGoodsRanking','ShopGoodsHot'];
if (!empty($list)) {
foreach ($list as $k => $v) {
$diy_data = json_decode($v['value'], true);
foreach ($diy_data['value'] as $k1=>$v1) {
if (in_array($v1['componentName'],$components_names)){
$diy_data['value'][$k1]['mode'] = 'aspectFill';
}
}
$diy_data = json_encode($diy_data);
$diy_model->where([['id', '=', $v['id']]])->update(['value' => $diy_data]);
}
}
}
}

View File

@ -0,0 +1,15 @@
CREATE TABLE `site_merchant_bind`
(
id int NOT NULL AUTO_INCREMENT,
site_id int NOT NULL DEFAULT 0 COMMENT '站点id',
wechat_openid VARCHAR(255) NOT NULL DEFAULT '' COMMENT '微信openid',
weapp_openid VARCHAR(255) NOT NULL DEFAULT '' COMMENT '小程序openid',
mobile VARCHAR(20) NOT NULL DEFAULT '' COMMENT '手机号',
extends TEXT DEFAULT NULL COMMENT '扩展数据 微信用户信息/小程序用户信息',
create_time int NOT NULL DEFAULT 0 COMMENT '创建时间',
update_time int NOT NULL DEFAULT 0 COMMENT '更新时间',
PRIMARY KEY (id)
) ENGINE = INNODB,
CHARACTER SET utf8mb4,
COLLATE utf8mb4_general_ci,
COMMENT = '商户信息接收账号绑定表';

View File

@ -6,8 +6,8 @@ use core\dict\DictLoader;
$data = [ $data = [
// 指令定义 // 指令定义
'commands' => [ 'commands' => [
'addon:install' => 'app\command\Addon\Install', 'addon:install' => 'app\command\addon\Install',
'addon:uninstall' => 'app\command\Addon\Uninstall', 'addon:uninstall' => 'app\command\addon\Uninstall',
'menu:refresh' => 'app\command\Menu', 'menu:refresh' => 'app\command\Menu',
//消息队列 自定义命令 //消息队列 自定义命令
'queue:work' => 'app\command\queue\Queue', 'queue:work' => 'app\command\queue\Queue',
@ -19,7 +19,7 @@ $data = [
'workerman' => 'app\command\workerman\Workerman', 'workerman' => 'app\command\workerman\Workerman',
//重置管理员密码 //重置管理员密码
'reset:password' => 'app\command\Resetpassword', 'reset:password' => 'app\command\Resetpassword',
'refresh:area' => 'app\command\refreshAreaCommand', 'refresh:area' => 'app\command\RefreshAreaCommand',
], ],
]; ];
return (new DictLoader("Console"))->load($data); return (new DictLoader("Console"))->load($data);

View File

@ -1,6 +1,6 @@
<?php <?php
return [ return [
'version' => '1.2.0', 'version' => '1.2.1',
'code' => '202601300001' 'code' => '202603170001'
]; ];

View File

@ -49,7 +49,7 @@ class Niuyun extends BaseSms
*/ */
public function send(string $mobile, string $template_id, array $data = []) public function send(string $mobile, string $template_id, array $data = [])
{ {
Log::write("SEND_NY_SMS pre " . json_encode($data, 256)); Log::write("SEND_NY_SMS pre mobile: ".$mobile.' tem_id:'.$template_id . json_encode($data, 256));
if (empty($this->signature)) { if (empty($this->signature)) {
throw new CommonException('签名未配置'); throw new CommonException('签名未配置');
} }

View File

@ -30,6 +30,9 @@ class CloudService
$local_cloud_compile_config = (new CoreConfigService())->getConfig(0, 'LOCAL_CLOUD_COMPILE_CONFIG')['value'] ?? []; $local_cloud_compile_config = (new CoreConfigService())->getConfig(0, 'LOCAL_CLOUD_COMPILE_CONFIG')['value'] ?? [];
if (!empty($local_cloud_compile_config) && isset($local_cloud_compile_config['isOpen']) && $local_cloud_compile_config['isOpen'] == 1){ if (!empty($local_cloud_compile_config) && isset($local_cloud_compile_config['isOpen']) && $local_cloud_compile_config['isOpen'] == 1){
$baseUri = $local_cloud_compile_config['baseUri'] ?? ''; $baseUri = $local_cloud_compile_config['baseUri'] ?? '';
if (empty($baseUri)){
throw new CommonException("已开启`第三方云编译`,但未配置云编译服务器地址,详情查看:平台端》云编译》第三方云编译");
}
} }
if (!empty($local_cloud_compile)){ if (!empty($local_cloud_compile)){

View File

@ -164,7 +164,10 @@ trait HasHttpRequests
public function getHttpClient(): ClientInterface public function getHttpClient(): ClientInterface
{ {
if (!($this->httpClient instanceof ClientInterface)) { if (!($this->httpClient instanceof ClientInterface)) {
$this->httpClient = new Client(['handler' => HandlerStack::create($this->getGuzzleHandler())]); $this->httpClient = new Client([
'handler' => HandlerStack::create($this->getGuzzleHandler()),
// 'proxy'=>''//调试放开
]);
} }
return $this->httpClient; return $this->httpClient;

View File

@ -1 +1 @@
import{d as l,r as d,u as i,o as p,c as u,a as t,b as m,e as x,w as v,f,E as h,p as b,g,h as I,i as w,t as S}from"./index-38aa4eb6.js";/* empty css */import{_ as B}from"./_plugin-vue_export-helper-c27b6911.js";const k=""+new URL("error-ab7e4004.png",import.meta.url).href,o=e=>(b("data-v-4f4088b5"),e=e(),g(),e),y={class:"error"},C={class:"flex items-center"},E=o(()=>t("div",null,[t("img",{class:"w-[240px]",src:k})],-1)),N={class:"text-left ml-[100px]"},R=o(()=>t("div",{class:"error-text text-[28px] font-bold"},"404错误",-1)),U=o(()=>t("div",{class:"text-[#222] text-[20px] mt-[15px]"},"哎呀,出错了!您访问的页面不存在...",-1)),V=o(()=>t("div",{class:"text-[#c4c2c2] text-[12px] mt-[5px]"},"尝试检查URL的错误然后点击浏览器刷新按钮。",-1)),L={class:"mt-[40px]"},$=l({__name:"404",setup(e){let s=null;const a=d(5),n=i();return s=setInterval(()=>{a.value===0?(clearInterval(s),n.go(-1)):a.value--},1e3),p(()=>{s&&clearInterval(s)}),(r,c)=>{const _=h;return I(),u("div",y,[t("div",C,[m(r.$slots,"content",{},()=>[E],!0),t("div",N,[R,U,V,t("div",L,[x(_,{class:"bottom",onClick:c[0]||(c[0]=D=>f(n).go(-1))},{default:v(()=>[w(S(a.value)+" 秒后返回上一页",1)]),_:1})])])])])}}});const z=B($,[["__scopeId","data-v-4f4088b5"]]);export{z as default}; import{d as l,r as d,u as i,o as p,c as u,a as t,b as m,e as x,w as v,f,E as h,p as b,g,h as I,i as w,t as S}from"./index-69eae4f0.js";/* empty css */import{_ as B}from"./_plugin-vue_export-helper-c27b6911.js";const k=""+new URL("error-ab7e4004.png",import.meta.url).href,o=e=>(b("data-v-4f4088b5"),e=e(),g(),e),y={class:"error"},C={class:"flex items-center"},E=o(()=>t("div",null,[t("img",{class:"w-[240px]",src:k})],-1)),N={class:"text-left ml-[100px]"},R=o(()=>t("div",{class:"error-text text-[28px] font-bold"},"404错误",-1)),U=o(()=>t("div",{class:"text-[#222] text-[20px] mt-[15px]"},"哎呀,出错了!您访问的页面不存在...",-1)),V=o(()=>t("div",{class:"text-[#c4c2c2] text-[12px] mt-[5px]"},"尝试检查URL的错误然后点击浏览器刷新按钮。",-1)),L={class:"mt-[40px]"},$=l({__name:"404",setup(e){let s=null;const a=d(5),n=i();return s=setInterval(()=>{a.value===0?(clearInterval(s),n.go(-1)):a.value--},1e3),p(()=>{s&&clearInterval(s)}),(r,c)=>{const _=h;return I(),u("div",y,[t("div",C,[m(r.$slots,"content",{},()=>[E],!0),t("div",N,[R,U,V,t("div",L,[x(_,{class:"bottom",onClick:c[0]||(c[0]=D=>f(n).go(-1))},{default:v(()=>[w(S(a.value)+" 秒后返回上一页",1)]),_:1})])])])])}}});const z=B($,[["__scopeId","data-v-4f4088b5"]]);export{z as default};

View File

@ -0,0 +1 @@
import{dD as f}from"./index-69eae4f0.js";export{f as default};

View File

@ -1 +0,0 @@
import{dC as f}from"./index-38aa4eb6.js";export{f as default};

View File

@ -1 +1 @@
import z from"./VerifySlide-b7e2c0ea.js";import g from"./VerifyPoints-8dcc621d.js";import{Q as k,r as o,m as w,bb as T,Z as V,_ as B,h as p,c as u,a as c,i as N,C as y,y as d,v as C,bc as j,x as v}from"./index-38aa4eb6.js";import{_ as O}from"./_plugin-vue_export-helper-c27b6911.js";import"./index-0f1d8573.js";const P={name:"Vue2Verify",components:{VerifySlide:z,VerifyPoints:g},props:{captchaType:{type:String,required:!0},figure:{type:Number},arith:{type:Number},mode:{type:String,default:"pop"},vSpace:{type:Number},explain:{type:String},imgSize:{type:Object,default(){return{width:"310px",height:"155px"}}},blockSize:{type:Object},barSize:{type:Object}},setup(m){const{captchaType:i,figure:e,arith:t,mode:n,vSpace:h,explain:f,imgSize:Q,blockSize:R,barSize:W}=k(m),a=o(!1),r=o(void 0),s=o(void 0),l=o({}),S=w(()=>n.value=="pop"?a.value:!0),b=()=>{l.value.refresh&&l.value.refresh()},x=()=>{a.value=!1,b()},_=()=>{n.value=="pop"&&(a.value=!0)};return T(()=>{switch(i.value){case"blockPuzzle":r.value="2",s.value="VerifySlide";break;case"clickWord":r.value="",s.value="VerifyPoints";break}}),{clickShow:a,verifyType:r,componentType:s,instance:l,showBox:S,closeBox:x,show:_}}},D={key:0,class:"verifybox-top"},E=c("i",{class:"iconfont icon-close"},null,-1),q=[E];function I(m,i,e,t,n,h){return V((p(),u("div",{class:v(e.mode=="pop"?"mask":"")},[c("div",{class:v(e.mode=="pop"?"verifybox":""),style:d({"max-width":parseInt(e.imgSize.width)+30+"px"})},[e.mode=="pop"?(p(),u("div",D,[N(" 请完成安全验证 "),c("span",{class:"verifybox-close",onClick:i[0]||(i[0]=(...f)=>t.closeBox&&t.closeBox(...f))},q)])):y("",!0),c("div",{class:"verifybox-bottom",style:d({padding:e.mode=="pop"?"15px":"0"})},[t.componentType?(p(),C(j(t.componentType),{key:0,captchaType:e.captchaType,type:t.verifyType,figure:e.figure,arith:e.arith,mode:e.mode,vSpace:e.vSpace,explain:e.explain,imgSize:e.imgSize,blockSize:e.blockSize,barSize:e.barSize,ref:"instance"},null,8,["captchaType","type","figure","arith","mode","vSpace","explain","imgSize","blockSize","barSize"])):y("",!0)],4)],6)],2)),[[B,t.showBox]])}const J=O(P,[["render",I]]);export{J as default}; import z from"./VerifySlide-f94c7d34.js";import g from"./VerifyPoints-b9e4aa92.js";import{P as k,r as o,m as w,bb as T,Y as V,Z as B,h as p,c as u,a as c,i as N,C as y,y as d,v as C,bc as P,x as v}from"./index-69eae4f0.js";import{_ as j}from"./_plugin-vue_export-helper-c27b6911.js";import"./index-209b33df.js";const O={name:"Vue2Verify",components:{VerifySlide:z,VerifyPoints:g},props:{captchaType:{type:String,required:!0},figure:{type:Number},arith:{type:Number},mode:{type:String,default:"pop"},vSpace:{type:Number},explain:{type:String},imgSize:{type:Object,default(){return{width:"310px",height:"155px"}}},blockSize:{type:Object},barSize:{type:Object}},setup(m){const{captchaType:i,figure:e,arith:t,mode:n,vSpace:h,explain:f,imgSize:R,blockSize:W,barSize:Y}=k(m),a=o(!1),r=o(void 0),s=o(void 0),l=o({}),S=w(()=>n.value=="pop"?a.value:!0),b=()=>{l.value.refresh&&l.value.refresh()},x=()=>{a.value=!1,b()},_=()=>{n.value=="pop"&&(a.value=!0)};return T(()=>{switch(i.value){case"blockPuzzle":r.value="2",s.value="VerifySlide";break;case"clickWord":r.value="",s.value="VerifyPoints";break}}),{clickShow:a,verifyType:r,componentType:s,instance:l,showBox:S,closeBox:x,show:_}}},D={key:0,class:"verifybox-top"},E=c("i",{class:"iconfont icon-close"},null,-1),q=[E];function I(m,i,e,t,n,h){return V((p(),u("div",{class:v(e.mode=="pop"?"mask":"")},[c("div",{class:v(e.mode=="pop"?"verifybox":""),style:d({"max-width":parseInt(e.imgSize.width)+30+"px"})},[e.mode=="pop"?(p(),u("div",D,[N(" 请完成安全验证 "),c("span",{class:"verifybox-close",onClick:i[0]||(i[0]=(...f)=>t.closeBox&&t.closeBox(...f))},q)])):y("",!0),c("div",{class:"verifybox-bottom",style:d({padding:e.mode=="pop"?"15px":"0"})},[t.componentType?(p(),C(P(t.componentType),{key:0,captchaType:e.captchaType,type:t.verifyType,figure:e.figure,arith:e.arith,mode:e.mode,vSpace:e.vSpace,explain:e.explain,imgSize:e.imgSize,blockSize:e.blockSize,barSize:e.barSize,ref:"instance"},null,8,["captchaType","type","figure","arith","mode","vSpace","explain","imgSize","blockSize","barSize"])):y("",!0)],4)],6)],2)),[[B,t.showBox]])}const J=j(O,[["render",I]]);export{J as default};

View File

@ -1 +0,0 @@
import{r as F,a as V,b as K,c as G}from"./index-0f1d8573.js";import{Q,bd as X,r as s,q as m,a_ as Y,h as H,c as I,a as l,y as A,Z,_ as U,F as $,W as ee,t as q,ay as te}from"./index-38aa4eb6.js";import{_ as ae}from"./_plugin-vue_export-helper-c27b6911.js";const ie={name:"VerifyPoints",props:{mode:{type:String,default:"fixed"},captchaType:{type:String},vSpace:{type:Number,default:5},imgSize:{type:Object,default(){return{width:"310px",height:"155px"}}},barSize:{type:Object,default(){return{width:"310px",height:"40px"}}}},setup(N,f){const{mode:_,captchaType:e,vSpace:L,imgSize:R,barSize:c}=Q(N),{proxy:n}=X(),h=s(""),z=s(3),p=m([]),a=m([]),o=s(1),O=s(""),w=m([]),v=s(""),u=m({imgHeight:0,imgWidth:0,barHeight:0,barWidth:0}),y=m([]),d=s(""),b=s(void 0),x=s(void 0),j=s(!0),C=s(!0),J=()=>{p.splice(0,p.length),a.splice(0,a.length),o.value=1,B(),te(()=>{const{imgHeight:i,imgWidth:t,barHeight:g,barWidth:r}=F(n);u.imgHeight=i,u.imgWidth=t,u.barHeight=g,u.barWidth=r,n.$parent.$emit("ready",n)})};Y(()=>{J(),n.$el.onselectstart=function(){return!1}});const S=s(null),D=i=>{if(a.push(k(S,i)),o.value==z.value){o.value=T(k(S,i));const t=M(a,u);a.length=0,a.push(...t),setTimeout(()=>{const g=h.value?V(v.value+"---"+JSON.stringify(a),h.value):v.value+"---"+JSON.stringify(a),r={captchaType:e.value,captcha_code:h.value?V(JSON.stringify(a),h.value):JSON.stringify(a),captcha_key:v.value};K(r).then(P=>{P.code==1?(b.value="#4cae4c",x.value="#5cb85c",d.value="验证成功",C.value=!1,_.value=="pop"&&setTimeout(()=>{n.$parent.clickShow=!1,W()},1500),n.$parent.$emit("success",{captchaVerification:g})):(n.$parent.$emit("error",n),b.value="#d9534f",x.value="#d9534f",d.value="验证失败",setTimeout(()=>{W()},700))})},400)}o.value<z.value&&(o.value=T(k(S,i)))},k=function(i,t){const g=t.offsetX,r=t.offsetY;return{x:g,y:r}},T=function(i){return y.push(Object.assign({},i)),o.value+1},W=function(){y.splice(0,y.length),b.value="#000",x.value="#ddd",C.value=!0,p.splice(0,p.length),a.splice(0,a.length),o.value=1,B(),d.value="验证失败",j.value=!0};function B(){const i={captchaType:e.value};G(i).then(t=>{t.code==1?(O.value=t.data.originalImageBase64,v.value=t.data.token,h.value=t.data.secretKey,w.value=t.data.wordList,d.value="请依次点击【"+w.value.join(",")+"】"):d.value=t.msg})}const M=function(i,t){return i.map(r=>{const P=Math.round(310*r.x/parseInt(t.imgWidth)),E=Math.round(155*r.y/parseInt(t.imgHeight));return{x:P,y:E}})};return{secretKey:h,checkNum:z,fontPos:p,checkPosArr:a,num:o,pointBackImgBase:O,pointTextList:w,backToken:v,setSize:u,tempPoints:y,text:d,barAreaColor:b,barAreaBorderColor:x,showRefresh:j,bindingClick:C,init:J,canvas:S,canvasClick:D,getMousePos:k,createPoint:T,refresh:W,getPictrue:B,pointTransfrom:M}}},ne={style:{position:"relative"}},se={class:"verify-img-out"},oe=l("i",{class:"iconfont icon-refresh"},null,-1),re=[oe],ce=["src"],le={class:"verify-msg"};function he(N,f,_,e,L,R){return H(),I("div",ne,[l("div",se,[l("div",{class:"verify-img-panel",style:A({width:e.setSize.imgWidth,height:e.setSize.imgHeight,"background-size":e.setSize.imgWidth+" "+e.setSize.imgHeight,"margin-bottom":_.vSpace+"px"})},[Z(l("div",{class:"verify-refresh",style:{"z-index":"3"},onClick:f[0]||(f[0]=(...c)=>e.refresh&&e.refresh(...c))},re,512),[[U,e.showRefresh]]),l("img",{src:"data:image/png;base64,"+e.pointBackImgBase,ref:"canvas",alt:"",style:{width:"100%",height:"100%",display:"block"},onClick:f[1]||(f[1]=c=>e.bindingClick?e.canvasClick(c):void 0)},null,8,ce),(H(!0),I($,null,ee(e.tempPoints,(c,n)=>(H(),I("div",{key:n,class:"point-area",style:A({"background-color":"#1abd6c",color:"#fff","z-index":9999,width:"20px",height:"20px","text-align":"center","line-height":"20px","border-radius":"50%",position:"absolute",top:parseInt(c.y-10)+"px",left:parseInt(c.x-10)+"px"})},q(n+1),5))),128))],4)]),l("div",{class:"verify-bar-area",style:A({width:e.setSize.imgWidth,color:this.barAreaColor,"border-color":this.barAreaBorderColor,"line-height":this.barSize.height})},[l("span",le,q(e.text),1)],4)])}const fe=ae(ie,[["render",he]]);export{fe as default};

View File

@ -0,0 +1 @@
import{r as F,a as M,b as K,c as Y}from"./index-209b33df.js";import{P as Z,bd as G,r as s,q as m,aZ as X,h as H,c as I,a as l,y as A,Y as Q,Z as U,F as $,V as ee,t as q,ax as te}from"./index-69eae4f0.js";import{_ as ae}from"./_plugin-vue_export-helper-c27b6911.js";const ie={name:"VerifyPoints",props:{mode:{type:String,default:"fixed"},captchaType:{type:String},vSpace:{type:Number,default:5},imgSize:{type:Object,default(){return{width:"310px",height:"155px"}}},barSize:{type:Object,default(){return{width:"310px",height:"40px"}}}},setup(N,f){const{mode:_,captchaType:e,vSpace:L,imgSize:R,barSize:c}=Z(N),{proxy:n}=G(),h=s(""),z=s(3),p=m([]),a=m([]),o=s(1),O=s(""),w=m([]),v=s(""),u=m({imgHeight:0,imgWidth:0,barHeight:0,barWidth:0}),y=m([]),d=s(""),b=s(void 0),x=s(void 0),j=s(!0),C=s(!0),V=()=>{p.splice(0,p.length),a.splice(0,a.length),o.value=1,B(),te(()=>{const{imgHeight:i,imgWidth:t,barHeight:g,barWidth:r}=F(n);u.imgHeight=i,u.imgWidth=t,u.barHeight=g,u.barWidth=r,n.$parent.$emit("ready",n)})};X(()=>{V(),n.$el.onselectstart=function(){return!1}});const S=s(null),D=i=>{if(a.push(k(S,i)),o.value==z.value){o.value=P(k(S,i));const t=J(a,u);a.length=0,a.push(...t),setTimeout(()=>{const g=h.value?M(v.value+"---"+JSON.stringify(a),h.value):v.value+"---"+JSON.stringify(a),r={captchaType:e.value,captcha_code:h.value?M(JSON.stringify(a),h.value):JSON.stringify(a),captcha_key:v.value};K(r).then(W=>{W.code==1?(b.value="#4cae4c",x.value="#5cb85c",d.value="验证成功",C.value=!1,_.value=="pop"&&setTimeout(()=>{n.$parent.clickShow=!1,T()},1500),n.$parent.$emit("success",{captchaVerification:g})):(n.$parent.$emit("error",n),b.value="#d9534f",x.value="#d9534f",d.value="验证失败",setTimeout(()=>{T()},700))})},400)}o.value<z.value&&(o.value=P(k(S,i)))},k=function(i,t){const g=t.offsetX,r=t.offsetY;return{x:g,y:r}},P=function(i){return y.push(Object.assign({},i)),o.value+1},T=function(){y.splice(0,y.length),b.value="#000",x.value="#ddd",C.value=!0,p.splice(0,p.length),a.splice(0,a.length),o.value=1,B(),d.value="验证失败",j.value=!0};function B(){const i={captchaType:e.value};Y(i).then(t=>{t.code==1?(O.value=t.data.originalImageBase64,v.value=t.data.token,h.value=t.data.secretKey,w.value=t.data.wordList,d.value="请依次点击【"+w.value.join(",")+"】"):d.value=t.msg})}const J=function(i,t){return i.map(r=>{const W=Math.round(310*r.x/parseInt(t.imgWidth)),E=Math.round(155*r.y/parseInt(t.imgHeight));return{x:W,y:E}})};return{secretKey:h,checkNum:z,fontPos:p,checkPosArr:a,num:o,pointBackImgBase:O,pointTextList:w,backToken:v,setSize:u,tempPoints:y,text:d,barAreaColor:b,barAreaBorderColor:x,showRefresh:j,bindingClick:C,init:V,canvas:S,canvasClick:D,getMousePos:k,createPoint:P,refresh:T,getPictrue:B,pointTransfrom:J}}},ne={style:{position:"relative"}},se={class:"verify-img-out"},oe=l("i",{class:"iconfont icon-refresh"},null,-1),re=[oe],ce=["src"],le={class:"verify-msg"};function he(N,f,_,e,L,R){return H(),I("div",ne,[l("div",se,[l("div",{class:"verify-img-panel",style:A({width:e.setSize.imgWidth,height:e.setSize.imgHeight,"background-size":e.setSize.imgWidth+" "+e.setSize.imgHeight,"margin-bottom":_.vSpace+"px"})},[Q(l("div",{class:"verify-refresh",style:{"z-index":"3"},onClick:f[0]||(f[0]=(...c)=>e.refresh&&e.refresh(...c))},re,512),[[U,e.showRefresh]]),l("img",{src:"data:image/png;base64,"+e.pointBackImgBase,ref:"canvas",alt:"",style:{width:"100%",height:"100%",display:"block"},onClick:f[1]||(f[1]=c=>e.bindingClick?e.canvasClick(c):void 0)},null,8,ce),(H(!0),I($,null,ee(e.tempPoints,(c,n)=>(H(),I("div",{key:n,class:"point-area",style:A({"background-color":"#1abd6c",color:"#fff","z-index":9999,width:"20px",height:"20px","text-align":"center","line-height":"20px","border-radius":"50%",position:"absolute",top:parseInt(c.y-10)+"px",left:parseInt(c.x-10)+"px"})},q(n+1),5))),128))],4)]),l("div",{class:"verify-bar-area",style:A({width:e.setSize.imgWidth,color:this.barAreaColor,"border-color":this.barAreaBorderColor,"line-height":this.barSize.height})},[l("span",le,q(e.text),1)],4)])}const fe=ae(ie,[["render",he]]);export{fe as default};

View File

@ -1 +1 @@
import{d as V,k as B,u as N,r as x,a_ as S,h as T,c as j,e as o,w as s,a as t,t as n,f as e,s as a,i as h,B as I,aI as R,aJ as $,E as q,a$ as D,b0 as F,b1 as J,K,b2 as M,a9 as P}from"./index-38aa4eb6.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{g as Q}from"./aliapp-f10afabf.js";const U={class:"main-container"},z={class:"flex justify-between items-center"},G={class:"text-page-title"},H={class:"p-[20px]"},L={class:"panel-title !text-sm"},O={class:"text-[14px] font-[700]"},W={class:"text-[#999]"},X={class:"mt-[20px] mb-[40px] h-[32px]"},Y={class:"text-[14px] font-[700]"},Z={class:"text-[#999]"},tt={class:"mt-[20px] mb-[40px] h-[32px]"},et={class:"text-[14px] font-[700]"},st={class:"text-[#999]"},at=t("div",{class:"mt-[20px] mb-[40px] h-[32px]"},null,-1),ot={class:"text-[14px] font-[700]"},nt={class:"text-[#999]"},lt={class:"flex justify-center"},ct={class:"w-[100%] h-[100%] flex items-center justify-center bg-[#f5f7fa]"},pt={class:"mt-[22px] text-center"},it={class:"text-[12px]"},wt=V({__name:"access",setup(_t){const f=B(),d=N(),v=f.meta.title,_=x("/channel/aliapp"),p=x("");S(async()=>{const c=await Q();p.value=c.data.qr_code});const b=c=>{window.open(c,"_blank")},w=c=>{d.push({path:_.value})};return(c,l)=>{const g=R,C=$,m=q,i=D,E=F,u=J,y=K,k=M,A=P;return T(),j("div",U,[o(A,{class:"card !border-none",shadow:"never"},{default:s(()=>[t("div",z,[t("span",G,n(e(v)),1)]),o(C,{modelValue:_.value,"onUpdate:modelValue":l[0]||(l[0]=r=>_.value=r),class:"my-[20px]",onTabChange:w},{default:s(()=>[o(g,{label:e(a)("weappAccessFlow"),name:"/channel/aliapp"},null,8,["label"])]),_:1},8,["modelValue"]),t("div",H,[t("h3",L,n(e(a)("weappInlet")),1),o(k,null,{default:s(()=>[o(u,{span:20},{default:s(()=>[o(E,{active:4,direction:"vertical"},{default:s(()=>[o(i,null,{title:s(()=>[t("p",O,n(e(a)("weappAttestation")),1)]),description:s(()=>[t("span",W,n(e(a)("weappAttest")),1),t("div",X,[o(m,{type:"primary",onClick:l[1]||(l[1]=r=>b("https://open.alipay.com/develop/manage"))},{default:s(()=>[h(n(e(a)("clickAccess")),1)]),_:1})])]),_:1}),o(i,null,{title:s(()=>[t("p",Y,n(e(a)("weappSetting")),1)]),description:s(()=>[t("span",Z,n(e(a)("emplace")),1),t("div",tt,[o(m,{type:"primary",plain:"",onClick:l[2]||(l[2]=r=>e(d).push("/channel/aliapp/config"))},{default:s(()=>[h(n(e(a)("weappSettingBtn")),1)]),_:1})])]),_:1}),o(i,null,{title:s(()=>[t("p",et,n(e(a)("uploadVersion")),1)]),description:s(()=>[t("span",st,n(e(a)("releaseCourse")),1),at]),_:1}),o(i,null,{title:s(()=>[t("p",ot,n(e(a)("completeAccess")),1)]),description:s(()=>[t("span",nt,n(e(a)("releaseCourse")),1)]),_:1})]),_:1})]),_:1}),o(u,{span:4},{default:s(()=>[t("div",lt,[o(y,{class:"w-[180px] h-[180px]",src:p.value?e(I)(p.value):""},{error:s(()=>[t("div",ct,[t("span",null,n(p.value?e(a)("fileErr"):e(a)("emptyQrCode")),1)])]),_:1},8,["src"])]),t("div",pt,[t("p",it,n(e(a)("clickAccess2")),1)])]),_:1})]),_:1})])]),_:1})])}}});export{wt as default}; import{d as V,k as B,u as N,r as x,aZ as S,h as T,c as j,e as o,w as s,a as t,t as n,f as e,s as a,i as h,B as I,aH as R,aI as $,E as q,a_ as D,a$ as F,b0 as H,K,b1 as M,a8 as P}from"./index-69eae4f0.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{g as Q}from"./aliapp-02c8b274.js";const U={class:"main-container"},Z={class:"flex justify-between items-center"},z={class:"text-page-title"},G={class:"p-[20px]"},J={class:"panel-title !text-sm"},L={class:"text-[14px] font-[700]"},O={class:"text-[#999]"},W={class:"mt-[20px] mb-[40px] h-[32px]"},X={class:"text-[14px] font-[700]"},Y={class:"text-[#999]"},tt={class:"mt-[20px] mb-[40px] h-[32px]"},et={class:"text-[14px] font-[700]"},st={class:"text-[#999]"},at=t("div",{class:"mt-[20px] mb-[40px] h-[32px]"},null,-1),ot={class:"text-[14px] font-[700]"},nt={class:"text-[#999]"},lt={class:"flex justify-center"},ct={class:"w-[100%] h-[100%] flex items-center justify-center bg-[#f5f7fa]"},pt={class:"mt-[22px] text-center"},it={class:"text-[12px]"},bt=V({__name:"access",setup(_t){const f=B(),d=N(),v=f.meta.title,_=x("/channel/aliapp"),p=x("");S(async()=>{const c=await Q();p.value=c.data.qr_code});const w=c=>{window.open(c,"_blank")},b=c=>{d.push({path:_.value})};return(c,l)=>{const g=R,C=$,m=q,i=D,E=F,u=H,y=K,k=M,A=P;return T(),j("div",U,[o(A,{class:"card !border-none",shadow:"never"},{default:s(()=>[t("div",Z,[t("span",z,n(e(v)),1)]),o(C,{modelValue:_.value,"onUpdate:modelValue":l[0]||(l[0]=r=>_.value=r),class:"my-[20px]",onTabChange:b},{default:s(()=>[o(g,{label:e(a)("weappAccessFlow"),name:"/channel/aliapp"},null,8,["label"])]),_:1},8,["modelValue"]),t("div",G,[t("h3",J,n(e(a)("weappInlet")),1),o(k,null,{default:s(()=>[o(u,{span:20},{default:s(()=>[o(E,{active:4,direction:"vertical"},{default:s(()=>[o(i,null,{title:s(()=>[t("p",L,n(e(a)("weappAttestation")),1)]),description:s(()=>[t("span",O,n(e(a)("weappAttest")),1),t("div",W,[o(m,{type:"primary",onClick:l[1]||(l[1]=r=>w("https://open.alipay.com/develop/manage"))},{default:s(()=>[h(n(e(a)("clickAccess")),1)]),_:1})])]),_:1}),o(i,null,{title:s(()=>[t("p",X,n(e(a)("weappSetting")),1)]),description:s(()=>[t("span",Y,n(e(a)("emplace")),1),t("div",tt,[o(m,{type:"primary",plain:"",onClick:l[2]||(l[2]=r=>e(d).push("/channel/aliapp/config"))},{default:s(()=>[h(n(e(a)("weappSettingBtn")),1)]),_:1})])]),_:1}),o(i,null,{title:s(()=>[t("p",et,n(e(a)("uploadVersion")),1)]),description:s(()=>[t("span",st,n(e(a)("releaseCourse")),1),at]),_:1}),o(i,null,{title:s(()=>[t("p",ot,n(e(a)("completeAccess")),1)]),description:s(()=>[t("span",nt,n(e(a)("releaseCourse")),1)]),_:1})]),_:1})]),_:1}),o(u,{span:4},{default:s(()=>[t("div",lt,[o(y,{class:"w-[180px] h-[180px]",src:p.value?e(I)(p.value):""},{error:s(()=>[t("div",ct,[t("span",null,n(p.value?e(a)("fileErr"):e(a)("emptyQrCode")),1)])]),_:1},8,["src"])]),t("div",pt,[t("p",it,n(e(a)("clickAccess2")),1)])]),_:1})]),_:1})])]),_:1})])}}});export{bt as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{d as B,k as T,u as $,r as c,a_ as I,b6 as M,o as R,h as W,c as q,e,w as t,a as s,t as o,f as n,s as a,i as u,aI as A,aJ as L,E as U,a$ as j,b0 as D,b1 as F,b2 as G,a9 as J}from"./index-38aa4eb6.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{g as P}from"./wechat-8613d57d.js";const z={class:"main-container"},H={class:"flex justify-between items-center"},K={class:"text-page-title"},O={class:"p-[20px]"},Q={class:"panel-title !text-sm"},X={class:"text-[14px] font-[700]"},Y={class:"text-[#999]"},Z={class:"mt-[20px] mb-[40px] h-[32px]"},tt={class:"text-[14px] font-[700]"},et={class:"mt-[20px] mb-[40px] h-[32px]"},nt={class:"text-[14px] font-[700]"},st={class:"mt-[20px] mb-[40px] h-[32px]"},dt=B({__name:"access",setup(at){const f=T(),_=$(),x=f.meta.title,r=c("/channel/app"),b=c(""),g=c({}),w=c({}),h=async()=>{await P().then(({data:l})=>{g.value=l,b.value=l.qr_code})};I(async()=>{await h(),await M().then(({data:l})=>{w.value=l}),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&h()})}),R(()=>{document.removeEventListener("visibilitychange",()=>{})});const y=l=>{window.open(l,"_blank")},C=l=>{_.push({path:r.value})};return(l,i)=>{const v=A,E=L,d=U,m=j,k=D,V=F,S=G,N=J;return W(),q("div",z,[e(N,{class:"card !border-none",shadow:"never"},{default:t(()=>[s("div",H,[s("span",K,o(n(x)),1)]),e(E,{modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=p=>r.value=p),class:"my-[20px]",onTabChange:C},{default:t(()=>[e(v,{label:n(a)("accessFlow"),name:"/channel/app"},null,8,["label"]),e(v,{label:n(a)("versionManage"),name:"/channel/app/version"},null,8,["label"])]),_:1},8,["modelValue"]),s("div",O,[s("h3",Q,o(n(a)("appInlet")),1),e(S,null,{default:t(()=>[e(V,{span:20},{default:t(()=>[e(k,{class:"!mt-[10px]",active:3,direction:"vertical"},{default:t(()=>[e(m,null,{title:t(()=>[s("p",X,o(n(a)("uniappApp")),1)]),description:t(()=>[s("span",Y,o(n(a)("appAttestation1")),1),s("div",Z,[e(d,{type:"primary",onClick:i[1]||(i[1]=p=>y("https://dcloud.io/"))},{default:t(()=>[u(o(n(a)("toCreate")),1)]),_:1})])]),_:1}),e(m,null,{title:t(()=>[s("p",tt,o(n(a)("appSetting")),1)]),description:t(()=>[s("div",et,[e(d,{type:"primary",onClick:i[2]||(i[2]=p=>n(_).push("/channel/app/config"))},{default:t(()=>[u(o(n(a)("settingInfo")),1)]),_:1})])]),_:1}),e(m,null,{title:t(()=>[s("p",nt,o(n(a)("versionManage")),1)]),description:t(()=>[s("div",st,[e(d,{type:"primary",plain:"",onClick:i[3]||(i[3]=p=>n(_).push("/channel/app/version"))},{default:t(()=>[u(o(n(a)("releaseVersion")),1)]),_:1})])]),_:1})]),_:1})]),_:1})]),_:1})])]),_:1})])}}});export{dt as default}; import{d as B,k as T,u as $,r as c,aZ as I,b6 as M,o as R,h as W,c as q,e,w as t,a as s,t as o,f as n,s as a,i as u,aH as A,aI as L,E as U,a_ as j,a$ as D,b0 as F,b1 as G,a8 as H}from"./index-69eae4f0.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{g as P}from"./wechat-3cea9b68.js";const Z={class:"main-container"},z={class:"flex justify-between items-center"},J={class:"text-page-title"},K={class:"p-[20px]"},O={class:"panel-title !text-sm"},Q={class:"text-[14px] font-[700]"},X={class:"text-[#999]"},Y={class:"mt-[20px] mb-[40px] h-[32px]"},tt={class:"text-[14px] font-[700]"},et={class:"mt-[20px] mb-[40px] h-[32px]"},nt={class:"text-[14px] font-[700]"},st={class:"mt-[20px] mb-[40px] h-[32px]"},dt=B({__name:"access",setup(at){const f=T(),_=$(),x=f.meta.title,r=c("/channel/app"),b=c(""),g=c({}),w=c({}),h=async()=>{await P().then(({data:l})=>{g.value=l,b.value=l.qr_code})};I(async()=>{await h(),await M().then(({data:l})=>{w.value=l}),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&h()})}),R(()=>{document.removeEventListener("visibilitychange",()=>{})});const y=l=>{window.open(l,"_blank")},C=l=>{_.push({path:r.value})};return(l,i)=>{const v=A,E=L,d=U,m=j,k=D,V=F,S=G,N=H;return W(),q("div",Z,[e(N,{class:"card !border-none",shadow:"never"},{default:t(()=>[s("div",z,[s("span",J,o(n(x)),1)]),e(E,{modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=p=>r.value=p),class:"my-[20px]",onTabChange:C},{default:t(()=>[e(v,{label:n(a)("accessFlow"),name:"/channel/app"},null,8,["label"]),e(v,{label:n(a)("versionManage"),name:"/channel/app/version"},null,8,["label"])]),_:1},8,["modelValue"]),s("div",K,[s("h3",O,o(n(a)("appInlet")),1),e(S,null,{default:t(()=>[e(V,{span:20},{default:t(()=>[e(k,{class:"!mt-[10px]",active:3,direction:"vertical"},{default:t(()=>[e(m,null,{title:t(()=>[s("p",Q,o(n(a)("uniappApp")),1)]),description:t(()=>[s("span",X,o(n(a)("appAttestation1")),1),s("div",Y,[e(d,{type:"primary",onClick:i[1]||(i[1]=p=>y("https://dcloud.io/"))},{default:t(()=>[u(o(n(a)("toCreate")),1)]),_:1})])]),_:1}),e(m,null,{title:t(()=>[s("p",tt,o(n(a)("appSetting")),1)]),description:t(()=>[s("div",et,[e(d,{type:"primary",onClick:i[2]||(i[2]=p=>n(_).push("/channel/app/config"))},{default:t(()=>[u(o(n(a)("settingInfo")),1)]),_:1})])]),_:1}),e(m,null,{title:t(()=>[s("p",nt,o(n(a)("versionManage")),1)]),description:t(()=>[s("div",st,[e(d,{type:"primary",plain:"",onClick:i[3]||(i[3]=p=>n(_).push("/channel/app/version"))},{default:t(()=>[u(o(n(a)("releaseVersion")),1)]),_:1})])]),_:1})]),_:1})]),_:1})]),_:1})])]),_:1})])}}});export{dt as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{d as $,k as q,u as j,r as u,a_ as F,b6 as I,o as R,h as w,c as y,e as a,w as s,a as n,t as o,f as e,s as t,i as r,F as U,v as z,B as L,aI as M,aJ as D,E as G,a$ as J,b0 as K,b1 as P,K as Q,b2 as H,a9 as O}from"./index-38aa4eb6.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{g as X}from"./wechat-8613d57d.js";import{a as Y}from"./wxoplatform-e80745b6.js";const Z={class:"main-container"},ee={class:"flex justify-between items-center"},te={class:"text-page-title"},ae={class:"p-[20px]"},se={class:"panel-title !text-sm"},ne={class:"text-[14px] font-[700]"},oe={class:"text-[#999]"},le={class:"mt-[20px] mb-[40px] h-[32px]"},ce={class:"text-[14px] font-[700]"},ie={class:"text-[#999]"},pe={class:"mt-[20px] mb-[40px] h-[32px]"},re={class:"text-[14px] font-[700]"},_e={class:"text-[#999]"},de={class:"mt-[20px] mb-[40px] h-[32px]"},me={class:"flex justify-center"},ue={class:"w-[100%] h-[100%] flex items-center justify-center bg-[#f5f7fa]"},he={class:"mt-[22px] text-center"},fe={class:"text-[12px]"},Be=$({__name:"access",setup(ve){const k=q(),_=j(),C=k.meta.title,h=u("/channel/wechat"),d=u(""),f=u({}),v=u({}),b=async()=>{await X().then(({data:l})=>{f.value=l,d.value=l.qr_code})};F(async()=>{await b(),await I().then(({data:l})=>{v.value=l}),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&b()})}),R(()=>{document.removeEventListener("visibilitychange",()=>{})});const E=l=>{window.open(l,"_blank")},A=l=>{_.push({path:h.value})},S=()=>{Y().then(({data:l})=>{window.open(l)})};return(l,c)=>{const m=M,B=D,i=G,x=J,V=K,g=P,N=Q,T=H,W=O;return w(),y("div",Z,[a(W,{class:"card !border-none",shadow:"never"},{default:s(()=>[n("div",ee,[n("span",te,o(e(C)),1)]),a(B,{modelValue:h.value,"onUpdate:modelValue":c[0]||(c[0]=p=>h.value=p),class:"my-[20px]",onTabChange:A},{default:s(()=>[a(m,{label:e(t)("wechatAccessFlow"),name:"/channel/wechat"},null,8,["label"]),a(m,{label:e(t)("customMenu"),name:"/channel/wechat/menu"},null,8,["label"]),a(m,{label:e(t)("wechatTemplate"),name:"/channel/wechat/message"},null,8,["label"]),a(m,{label:e(t)("reply"),name:"/channel/wechat/reply"},null,8,["label"])]),_:1},8,["modelValue"]),n("div",ae,[n("h3",se,o(e(t)("wechatInlet")),1),a(T,null,{default:s(()=>[a(g,{span:20},{default:s(()=>[a(V,{class:"!mt-[10px]",active:3,direction:"vertical"},{default:s(()=>[a(x,null,{title:s(()=>[n("p",ne,o(e(t)("wechatAttestation")),1)]),description:s(()=>[n("span",oe,o(e(t)("wechatAttestation1")),1),n("div",le,[a(i,{type:"primary",onClick:c[1]||(c[1]=p=>E("https://mp.weixin.qq.com/"))},{default:s(()=>[r(o(e(t)("clickAccess")),1)]),_:1})])]),_:1}),a(x,null,{title:s(()=>[n("p",ce,o(e(t)("wechatSetting")),1)]),description:s(()=>[n("span",ie,o(e(t)("wechatSetting1")),1),n("div",pe,[v.value.app_id&&v.value.app_secret?(w(),y(U,{key:0},[a(i,{type:"primary",onClick:c[2]||(c[2]=p=>e(_).push("/channel/wechat/config"))},{default:s(()=>[r(o(f.value.app_id?e(t)("seeConfig"):e(t)("clickSetting")),1)]),_:1}),a(i,{type:"primary",plain:"",onClick:S},{default:s(()=>[r(o(f.value.is_authorization?e(t)("refreshAuth"):e(t)("authWechat")),1)]),_:1})],64)):(w(),z(i,{key:1,type:"primary",onClick:c[3]||(c[3]=p=>e(_).push("/channel/wechat/config"))},{default:s(()=>[r(o(e(t)("clickSetting")),1)]),_:1}))])]),_:1}),a(x,null,{title:s(()=>[n("p",re,o(e(t)("wechatAccess")),1)]),description:s(()=>[n("span",_e,o(e(t)("wechatAccess")),1),n("div",de,[a(i,{type:"primary",plain:"",onClick:c[4]||(c[4]=p=>e(_).push("/channel/wechat/course"))},{default:s(()=>[r(o(e(t)("releaseCourse")),1)]),_:1})])]),_:1})]),_:1})]),_:1}),a(g,{span:4},{default:s(()=>[n("div",me,[a(N,{class:"w-[180px] h-[180px]",src:d.value?e(L)(d.value):""},{error:s(()=>[n("div",ue,[n("span",null,o(d.value?e(t)("fileErr"):e(t)("emptyQrCode")),1)])]),_:1},8,["src"])]),n("div",he,[n("p",fe,o(e(t)("clickAccess2")),1)])]),_:1})]),_:1})])]),_:1})])}}});export{Be as default}; import{d as $,k as q,u as j,r as u,aZ as F,b6 as I,o as R,h as w,c as y,e as a,w as s,a as n,t as o,f as e,s as t,i as r,F as U,v as z,B as L,aH as M,aI as D,E as G,a_ as H,a$ as K,b0 as P,K as Q,b1 as Z,a8 as J}from"./index-69eae4f0.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{g as O}from"./wechat-3cea9b68.js";import{a as X}from"./wxoplatform-871d008b.js";const Y={class:"main-container"},ee={class:"flex justify-between items-center"},te={class:"text-page-title"},ae={class:"p-[20px]"},se={class:"panel-title !text-sm"},ne={class:"text-[14px] font-[700]"},oe={class:"text-[#999]"},le={class:"mt-[20px] mb-[40px] h-[32px]"},ce={class:"text-[14px] font-[700]"},ie={class:"text-[#999]"},pe={class:"mt-[20px] mb-[40px] h-[32px]"},re={class:"text-[14px] font-[700]"},_e={class:"text-[#999]"},de={class:"mt-[20px] mb-[40px] h-[32px]"},me={class:"flex justify-center"},ue={class:"w-[100%] h-[100%] flex items-center justify-center bg-[#f5f7fa]"},he={class:"mt-[22px] text-center"},fe={class:"text-[12px]"},Be=$({__name:"access",setup(ve){const k=q(),_=j(),C=k.meta.title,h=u("/channel/wechat"),d=u(""),f=u({}),v=u({}),b=async()=>{await O().then(({data:l})=>{f.value=l,d.value=l.qr_code})};F(async()=>{await b(),await I().then(({data:l})=>{v.value=l}),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&b()})}),R(()=>{document.removeEventListener("visibilitychange",()=>{})});const E=l=>{window.open(l,"_blank")},A=l=>{_.push({path:h.value})},S=()=>{X().then(({data:l})=>{window.open(l)})};return(l,c)=>{const m=M,B=D,i=G,x=H,V=K,g=P,N=Q,T=Z,W=J;return w(),y("div",Y,[a(W,{class:"card !border-none",shadow:"never"},{default:s(()=>[n("div",ee,[n("span",te,o(e(C)),1)]),a(B,{modelValue:h.value,"onUpdate:modelValue":c[0]||(c[0]=p=>h.value=p),class:"my-[20px]",onTabChange:A},{default:s(()=>[a(m,{label:e(t)("wechatAccessFlow"),name:"/channel/wechat"},null,8,["label"]),a(m,{label:e(t)("customMenu"),name:"/channel/wechat/menu"},null,8,["label"]),a(m,{label:e(t)("wechatTemplate"),name:"/channel/wechat/message"},null,8,["label"]),a(m,{label:e(t)("reply"),name:"/channel/wechat/reply"},null,8,["label"])]),_:1},8,["modelValue"]),n("div",ae,[n("h3",se,o(e(t)("wechatInlet")),1),a(T,null,{default:s(()=>[a(g,{span:20},{default:s(()=>[a(V,{class:"!mt-[10px]",active:3,direction:"vertical"},{default:s(()=>[a(x,null,{title:s(()=>[n("p",ne,o(e(t)("wechatAttestation")),1)]),description:s(()=>[n("span",oe,o(e(t)("wechatAttestation1")),1),n("div",le,[a(i,{type:"primary",onClick:c[1]||(c[1]=p=>E("https://mp.weixin.qq.com/"))},{default:s(()=>[r(o(e(t)("clickAccess")),1)]),_:1})])]),_:1}),a(x,null,{title:s(()=>[n("p",ce,o(e(t)("wechatSetting")),1)]),description:s(()=>[n("span",ie,o(e(t)("wechatSetting1")),1),n("div",pe,[v.value.app_id&&v.value.app_secret?(w(),y(U,{key:0},[a(i,{type:"primary",onClick:c[2]||(c[2]=p=>e(_).push("/channel/wechat/config"))},{default:s(()=>[r(o(f.value.app_id?e(t)("seeConfig"):e(t)("clickSetting")),1)]),_:1}),a(i,{type:"primary",plain:"",onClick:S},{default:s(()=>[r(o(f.value.is_authorization?e(t)("refreshAuth"):e(t)("authWechat")),1)]),_:1})],64)):(w(),z(i,{key:1,type:"primary",onClick:c[3]||(c[3]=p=>e(_).push("/channel/wechat/config"))},{default:s(()=>[r(o(e(t)("clickSetting")),1)]),_:1}))])]),_:1}),a(x,null,{title:s(()=>[n("p",re,o(e(t)("wechatAccess")),1)]),description:s(()=>[n("span",_e,o(e(t)("wechatAccess")),1),n("div",de,[a(i,{type:"primary",plain:"",onClick:c[4]||(c[4]=p=>e(_).push("/channel/wechat/course"))},{default:s(()=>[r(o(e(t)("releaseCourse")),1)]),_:1})])]),_:1})]),_:1})]),_:1}),a(g,{span:4},{default:s(()=>[n("div",me,[a(N,{class:"w-[180px] h-[180px]",src:d.value?e(L)(d.value):""},{error:s(()=>[n("div",ue,[n("span",null,o(d.value?e(t)("fileErr"):e(t)("emptyQrCode")),1)])]),_:1},8,["src"])]),n("div",he,[n("p",fe,o(e(t)("clickAccess2")),1)])]),_:1})]),_:1})])]),_:1})])}}});export{Be as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{_ as o}from"./add-member.vue_vue_type_script_setup_true_lang-0d836f83.js";import"./index-38aa4eb6.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css */import"./member-d83c7f22.js";export{o as default}; import{_ as o}from"./add-member.vue_vue_type_script_setup_true_lang-b0fb02e8.js";import"./index-69eae4f0.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css */import"./member-204d2223.js";export{o as default};

View File

@ -1 +1 @@
import{d as I,r as m,q as L,m as R,s as o,h as N,v as M,w as d,a as j,e as s,i as k,t as C,f as t,Z as z,bY as A,L as O,M as T,N as Z,E as K,V as S,a3 as Y}from"./index-38aa4eb6.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css */import{p as G,z as J,A as Q}from"./member-d83c7f22.js";const W={class:"dialog-footer"},me=I({__name:"add-member",emits:["complete"],setup(X,{expose:$,emit:x}){const p=m(!1),i=m(!1),f=m(!1);let b="",c="";const w=m(!0),v=m(!0),g=m(!0),_={member_id:"",nickname:"",member_no:"",init_member_no:"",mobile:"",password:"",password_copy:""},r=L({..._}),y=m(),P=R(()=>({member_no:[{required:!0,message:o("memberNoPlaceholder"),trigger:"blur"},{validator:B,trigger:"blur"}],mobile:[{required:!0,message:o("mobilePlaceholder"),trigger:"blur"},{validator:D,trigger:"blur"}],password:[{required:!0,message:o("passwordPlaceholder"),trigger:"blur"}],password_copy:[{required:!0,message:o("passwordPlaceholder"),trigger:"blur"},{validator:E,trigger:"blur"}]})),D=(n,e,a)=>{e&&!/^1[3-9]\d{9}$/.test(e)?a(new Error(o("mobileHint"))):a()},E=(n,e,a)=>{e!=r.password?a(o("doubleCipherHint")):a()},B=(n,e,a)=>{e&&!/^[0-9a-zA-Z]*$/g.test(e)?a(new Error(o("memberNoHint"))):a()},U=async()=>{await J().then(n=>{c=n.data}).catch(()=>{})},q=async n=>{if(i.value||!n)return;const e=Q;await n.validate(async a=>{if(a){if(i.value=!0,f.value)return;f.value=!0,e(r).then(V=>{i.value=!1,f.value=!1,p.value=!1,x("complete")}).catch(()=>{i.value=!1,f.value=!1})}})};return $({showDialog:p,setFormData:async(n=null)=>{if(i.value=!0,Object.assign(r,_),b=o("addMember"),n){b=o("updateMember");const e=await(await G(n.member_id)).data;e&&Object.keys(r).forEach(a=>{e[a]!=null&&(r[a]=e[a])})}else await U(),r.member_no=c,r.init_member_no=c;i.value=!1}}),(n,e)=>{const a=O,u=T,V=Z,h=K,F=S,H=Y;return N(),M(F,{modelValue:p.value,"onUpdate:modelValue":e[14]||(e[14]=l=>p.value=l),title:t(b),width:"500px","destroy-on-close":!0},{footer:d(()=>[j("span",W,[s(h,{onClick:e[12]||(e[12]=l=>p.value=!1)},{default:d(()=>[k(C(t(o)("cancel")),1)]),_:1}),s(h,{type:"primary",loading:i.value,onClick:e[13]||(e[13]=l=>q(y.value))},{default:d(()=>[k(C(t(o)("confirm")),1)]),_:1},8,["loading"])])]),default:d(()=>[z((N(),M(V,{model:r,"label-width":"90px",ref_key:"formRef",ref:y,rules:t(P),class:"page-form"},{default:d(()=>[s(u,{label:t(o)("memberNo"),prop:"member_no"},{default:d(()=>[s(a,{modelValue:r.member_no,"onUpdate:modelValue":e[0]||(e[0]=l=>r.member_no=l),modelModifiers:{trim:!0},clearable:"",maxlength:"20",placeholder:t(o)("memberNoPlaceholder"),class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),s(u,{label:t(o)("mobile"),prop:"mobile"},{default:d(()=>[s(a,{modelValue:r.mobile,"onUpdate:modelValue":e[1]||(e[1]=l=>r.mobile=l),modelModifiers:{trim:!0},clearable:"",placeholder:t(o)("mobilePlaceholder"),maxlength:"11",onKeyup:e[2]||(e[2]=l=>t(A)(l)),class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),s(u,{label:t(o)("nickname")},{default:d(()=>[s(a,{modelValue:r.nickname,"onUpdate:modelValue":e[3]||(e[3]=l=>r.nickname=l),modelModifiers:{trim:!0},clearable:"",placeholder:t(o)("nickNamePlaceholder"),class:"input-width",maxlength:"10","show-word-limit":"",readonly:w.value,onClick:e[4]||(e[4]=l=>w.value=!1),onBlur:e[5]||(e[5]=l=>w.value=!0)},null,8,["modelValue","placeholder","readonly"])]),_:1},8,["label"]),s(u,{label:t(o)("password"),prop:"password"},{default:d(()=>[s(a,{modelValue:r.password,"onUpdate:modelValue":e[6]||(e[6]=l=>r.password=l),modelModifiers:{trim:!0},type:"password",placeholder:t(o)("passwordPlaceholder"),clearable:"",class:"input-width","show-password":!0,readonly:v.value,onClick:e[7]||(e[7]=l=>v.value=!1),onBlur:e[8]||(e[8]=l=>v.value=!0)},null,8,["modelValue","placeholder","readonly"])]),_:1},8,["label"]),s(u,{label:t(o)("passwordCopy"),prop:"password_copy"},{default:d(()=>[s(a,{modelValue:r.password_copy,"onUpdate:modelValue":e[9]||(e[9]=l=>r.password_copy=l),modelModifiers:{trim:!0},type:"password",placeholder:t(o)("passwordPlaceholder"),clearable:"",class:"input-width","show-password":!0,readonly:g.value,onClick:e[10]||(e[10]=l=>g.value=!1),onBlur:e[11]||(e[11]=l=>g.value=!0)},null,8,["modelValue","placeholder","readonly"])]),_:1},8,["label"])]),_:1},8,["model","rules"])),[[H,i.value]])]),_:1},8,["modelValue","title"])}}});export{me as _}; import{d as I,r as m,q as L,m as R,s as o,h as N,v as M,w as d,a as j,e as s,i as k,t as C,f as t,Y as z,bY as A,L as O,M as T,N as Y,E as K,U as S,a2 as Z}from"./index-69eae4f0.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css */import{p as G,z as J,A as Q}from"./member-204d2223.js";const W={class:"dialog-footer"},me=I({__name:"add-member",emits:["complete"],setup(X,{expose:$,emit:x}){const p=m(!1),i=m(!1),f=m(!1);let b="",c="";const w=m(!0),v=m(!0),g=m(!0),_={member_id:"",nickname:"",member_no:"",init_member_no:"",mobile:"",password:"",password_copy:""},r=L({..._}),y=m(),P=R(()=>({member_no:[{required:!0,message:o("memberNoPlaceholder"),trigger:"blur"},{validator:B,trigger:"blur"}],mobile:[{required:!0,message:o("mobilePlaceholder"),trigger:"blur"},{validator:D,trigger:"blur"}],password:[{required:!0,message:o("passwordPlaceholder"),trigger:"blur"}],password_copy:[{required:!0,message:o("passwordPlaceholder"),trigger:"blur"},{validator:E,trigger:"blur"}]})),D=(n,e,a)=>{e&&!/^1[3-9]\d{9}$/.test(e)?a(new Error(o("mobileHint"))):a()},E=(n,e,a)=>{e!=r.password?a(o("doubleCipherHint")):a()},B=(n,e,a)=>{e&&!/^[0-9a-zA-Z]*$/g.test(e)?a(new Error(o("memberNoHint"))):a()},U=async()=>{await J().then(n=>{c=n.data}).catch(()=>{})},q=async n=>{if(i.value||!n)return;const e=Q;await n.validate(async a=>{if(a){if(i.value=!0,f.value)return;f.value=!0,e(r).then(V=>{i.value=!1,f.value=!1,p.value=!1,x("complete")}).catch(()=>{i.value=!1,f.value=!1})}})};return $({showDialog:p,setFormData:async(n=null)=>{if(i.value=!0,Object.assign(r,_),b=o("addMember"),n){b=o("updateMember");const e=await(await G(n.member_id)).data;e&&Object.keys(r).forEach(a=>{e[a]!=null&&(r[a]=e[a])})}else await U(),r.member_no=c,r.init_member_no=c;i.value=!1}}),(n,e)=>{const a=O,u=T,V=Y,h=K,F=S,H=Z;return N(),M(F,{modelValue:p.value,"onUpdate:modelValue":e[14]||(e[14]=l=>p.value=l),title:t(b),width:"500px","destroy-on-close":!0},{footer:d(()=>[j("span",W,[s(h,{onClick:e[12]||(e[12]=l=>p.value=!1)},{default:d(()=>[k(C(t(o)("cancel")),1)]),_:1}),s(h,{type:"primary",loading:i.value,onClick:e[13]||(e[13]=l=>q(y.value))},{default:d(()=>[k(C(t(o)("confirm")),1)]),_:1},8,["loading"])])]),default:d(()=>[z((N(),M(V,{model:r,"label-width":"90px",ref_key:"formRef",ref:y,rules:t(P),class:"page-form"},{default:d(()=>[s(u,{label:t(o)("memberNo"),prop:"member_no"},{default:d(()=>[s(a,{modelValue:r.member_no,"onUpdate:modelValue":e[0]||(e[0]=l=>r.member_no=l),modelModifiers:{trim:!0},clearable:"",maxlength:"20",placeholder:t(o)("memberNoPlaceholder"),class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),s(u,{label:t(o)("mobile"),prop:"mobile"},{default:d(()=>[s(a,{modelValue:r.mobile,"onUpdate:modelValue":e[1]||(e[1]=l=>r.mobile=l),modelModifiers:{trim:!0},clearable:"",placeholder:t(o)("mobilePlaceholder"),maxlength:"11",onKeyup:e[2]||(e[2]=l=>t(A)(l)),class:"input-width"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),s(u,{label:t(o)("nickname")},{default:d(()=>[s(a,{modelValue:r.nickname,"onUpdate:modelValue":e[3]||(e[3]=l=>r.nickname=l),modelModifiers:{trim:!0},clearable:"",placeholder:t(o)("nickNamePlaceholder"),class:"input-width",maxlength:"10","show-word-limit":"",readonly:w.value,onClick:e[4]||(e[4]=l=>w.value=!1),onBlur:e[5]||(e[5]=l=>w.value=!0)},null,8,["modelValue","placeholder","readonly"])]),_:1},8,["label"]),s(u,{label:t(o)("password"),prop:"password"},{default:d(()=>[s(a,{modelValue:r.password,"onUpdate:modelValue":e[6]||(e[6]=l=>r.password=l),modelModifiers:{trim:!0},type:"password",placeholder:t(o)("passwordPlaceholder"),clearable:"",class:"input-width","show-password":!0,readonly:v.value,onClick:e[7]||(e[7]=l=>v.value=!1),onBlur:e[8]||(e[8]=l=>v.value=!0)},null,8,["modelValue","placeholder","readonly"])]),_:1},8,["label"]),s(u,{label:t(o)("passwordCopy"),prop:"password_copy"},{default:d(()=>[s(a,{modelValue:r.password_copy,"onUpdate:modelValue":e[9]||(e[9]=l=>r.password_copy=l),modelModifiers:{trim:!0},type:"password",placeholder:t(o)("passwordPlaceholder"),clearable:"",class:"input-width","show-password":!0,readonly:g.value,onClick:e[10]||(e[10]=l=>g.value=!1),onBlur:e[11]||(e[11]=l=>g.value=!0)},null,8,["modelValue","placeholder","readonly"])]),_:1},8,["label"])]),_:1},8,["model","rules"])),[[H,i.value]])]),_:1},8,["modelValue","title"])}}});export{me as _};

View File

@ -1 +1 @@
import{_ as o}from"./add-table.vue_vue_type_script_setup_true_lang-d85bf56c.js";import"./index-38aa4eb6.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./tools-f2ea1153.js";export{o as default}; import{_ as o}from"./add-table.vue_vue_type_script_setup_true_lang-94822baa.js";import"./index-69eae4f0.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./tools-6a0f97ca.js";export{o as default};

View File

@ -1 +1 @@
import{d as L,u as N,r as c,q as k,m as E,h as p,v as _,w as o,a as b,Z as x,f as t,t as f,s as n,e as d,i as B,ak as z,L as q,E as F,al as P,V as U,a3 as G}from"./index-38aa4eb6.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{k as I,l as M}from"./tools-f2ea1153.js";const le=L({__name:"add-table",setup(R,{expose:h}){const g=N(),m=c(!1),s=c(""),e=k({loading:!0,data:[],searchParam:{table_name:"",table_content:""}}),v=E(()=>e.data.filter(a=>!s.value||a.Name.toLowerCase().includes(s.value.toLowerCase())||a.Comment.toLowerCase().includes(s.value.toLowerCase()))),u=()=>{e.loading=!0,I().then(a=>{e.loading=!1,e.data=a.data}).catch(()=>{e.loading=!1})};u();const w=a=>{const l=a.Name;e.loading=!0,M({table_name:l}).then(i=>{e.loading=!1,m.value=!1,g.push({path:"/tools/code/edit",query:{id:i.data.id}})}).catch(()=>{e.loading=!1})};return h({showDialog:m,setFormData:async(a=null)=>{u()}}),(a,l)=>{const i=z,C=q,V=F,D=P,y=U,T=G;return p(),_(y,{modelValue:m.value,"onUpdate:modelValue":l[1]||(l[1]=r=>m.value=r),title:t(n)("addCode"),width:"800px","destroy-on-close":!0},{default:o(()=>[b("div",null,[x((p(),_(D,{data:t(v),size:"large",height:"400"},{empty:o(()=>[b("span",null,f(e.loading?"":t(n)("emptyData")),1)]),default:o(()=>[d(i,{prop:"Name",label:t(n)("tableName"),"min-width":"150"},null,8,["label"]),d(i,{prop:"Comment",label:t(n)("tableComment"),"min-width":"120"},null,8,["label"]),d(i,{align:"right","min-width":"150"},{header:o(()=>[d(C,{modelValue:s.value,"onUpdate:modelValue":l[0]||(l[0]=r=>s.value=r),modelModifiers:{trim:!0},size:"small",placeholder:t(n)("searchPlaceholder")},null,8,["modelValue","placeholder"])]),default:o(r=>[d(V,{size:"small",type:"primary",onClick:Z=>w(r.row)},{default:o(()=>[B(f(t(n)("addBtn")),1)]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data"])),[[T,e.loading]])])]),_:1},8,["modelValue","title"])}}});export{le as _}; import{d as L,u as N,r as c,q as k,m as E,h as p,v as _,w as o,a as b,Y as x,f as t,t as f,s as n,e as d,i as B,aj as z,L as U,E as q,ak as F,U as P,a2 as j}from"./index-69eae4f0.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{k as G,l as I}from"./tools-6a0f97ca.js";const le=L({__name:"add-table",setup(M,{expose:h}){const g=N(),m=c(!1),s=c(""),e=k({loading:!0,data:[],searchParam:{table_name:"",table_content:""}}),v=E(()=>e.data.filter(a=>!s.value||a.Name.toLowerCase().includes(s.value.toLowerCase())||a.Comment.toLowerCase().includes(s.value.toLowerCase()))),u=()=>{e.loading=!0,G().then(a=>{e.loading=!1,e.data=a.data}).catch(()=>{e.loading=!1})};u();const w=a=>{const l=a.Name;e.loading=!0,I({table_name:l}).then(i=>{e.loading=!1,m.value=!1,g.push({path:"/tools/code/edit",query:{id:i.data.id}})}).catch(()=>{e.loading=!1})};return h({showDialog:m,setFormData:async(a=null)=>{u()}}),(a,l)=>{const i=z,C=U,D=q,V=F,y=P,T=j;return p(),_(y,{modelValue:m.value,"onUpdate:modelValue":l[1]||(l[1]=r=>m.value=r),title:t(n)("addCode"),width:"800px","destroy-on-close":!0},{default:o(()=>[b("div",null,[x((p(),_(V,{data:t(v),size:"large",height:"400"},{empty:o(()=>[b("span",null,f(e.loading?"":t(n)("emptyData")),1)]),default:o(()=>[d(i,{prop:"Name",label:t(n)("tableName"),"min-width":"150"},null,8,["label"]),d(i,{prop:"Comment",label:t(n)("tableComment"),"min-width":"120"},null,8,["label"]),d(i,{align:"right","min-width":"150"},{header:o(()=>[d(C,{modelValue:s.value,"onUpdate:modelValue":l[0]||(l[0]=r=>s.value=r),modelModifiers:{trim:!0},size:"small",placeholder:t(n)("searchPlaceholder")},null,8,["modelValue","placeholder"])]),default:o(r=>[d(D,{size:"small",type:"primary",onClick:S=>w(r.row)},{default:o(()=>[B(f(t(n)("addBtn")),1)]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data"])),[[T,e.loading]])])]),_:1},8,["modelValue","title"])}}});export{le as _};

View File

@ -1 +1 @@
import{_ as e}from"./add-theme.vue_vue_type_script_setup_true_lang-c432bd42.js";const o=Object.freeze(Object.defineProperty({__proto__:null,default:e},Symbol.toStringTag,{value:"Module"}));export{o as _}; import{_ as e}from"./add-theme.vue_vue_type_script_setup_true_lang-2000a85f.js";const o=Object.freeze(Object.defineProperty({__proto__:null,default:e},Symbol.toStringTag,{value:"Module"}));export{o as _};

View File

@ -1 +1 @@
import{d as U,r as d,q as h,m as q,h as B,v as N,w as n,a as R,e as o,i as v,f as _,a6 as F,L as O,M as $,bJ as j,N as A,E as I,V as S}from"./index-38aa4eb6.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";import{u as T}from"./diy-605cb92e.js";const z={class:"dialog-footer"},X=U({__name:"add-theme",emits:["confirm"],setup(J,{expose:g,emit:V}){const y=T(),s=d(!1),i=d(!1),b={title:"",label:"",value:"",tip:""};let f=[];const m=d(""),l=h({...b}),k=r=>{f=r.key,m.value="";for(const e in l)l[e]="";r.data&&Object.keys(r.data).length&&(m.value="edit",Object.keys(l).forEach((e,t)=>{l[e]=r.data[e]?r.data[e]:""})),s.value=!0},p=d(),x=q(()=>({title:[{required:!0,message:"请输入颜色名称",trigger:"blur"}],value:[{required:!0,validator:(r,e,t)=>{e?t():t("请输入颜色value值")},trigger:["blur","change"]}],label:[{required:!0,message:"请输入颜色key值",trigger:"blur"},{validator:(r,e,t)=>{const u=/^[a-zA-Z0-9-]+$/;f.indexOf(e)!=-1&&t("新增颜色key值与已存在颜色key值命名重复请修改命名"),u.test(e)?t():t("颜色key值只能输入字母、数字和连字符")},trigger:"blur"}]})),w=async r=>{var e;i.value||await((e=p.value)==null?void 0:e.validate(async t=>{i.value||(i.value=!0,t&&(i.value=!1,V("confirm",F(l)),s.value=!1))}))};return g({dialogThemeVisible:s,open:k}),(r,e)=>{const t=O,u=$,E=j,C=A,c=I,D=S;return B(),N(D,{modelValue:s.value,"onUpdate:modelValue":e[6]||(e[6]=a=>s.value=a),title:"新增颜色",width:"550px","align-center":""},{footer:n(()=>[R("div",z,[o(c,{onClick:e[4]||(e[4]=a=>s.value=!1)},{default:n(()=>[v("取消")]),_:1}),o(c,{type:"primary",onClick:e[5]||(e[5]=a=>w(p.value))},{default:n(()=>[v("保存")]),_:1})])]),default:n(()=>[o(C,{model:l,"label-width":"120px",ref_key:"formRef",ref:p,rules:_(x)},{default:n(()=>[o(u,{label:"名字",prop:"title"},{default:n(()=>[o(t,{modelValue:l.title,"onUpdate:modelValue":e[0]||(e[0]=a=>l.title=a),class:"!w-[250px]",maxlength:"7",placeholder:"请输入颜色名称"},null,8,["modelValue"])]),_:1}),o(u,{label:"颜色key值",prop:"label"},{default:n(()=>[o(t,{modelValue:l.label,"onUpdate:modelValue":e[1]||(e[1]=a=>l.label=a),class:"!w-[250px]",maxlength:"20",disabled:m.value=="edit",placeholder:"请输入颜色key值"},null,8,["modelValue","disabled"])]),_:1}),o(u,{label:"颜色value值",prop:"value"},{default:n(()=>[o(E,{modelValue:l.value,"onUpdate:modelValue":e[2]||(e[2]=a=>l.value=a),"show-alpha":"",predefine:_(y).predefineColors},null,8,["modelValue","predefine"])]),_:1}),o(u,{label:"颜色提示"},{default:n(()=>[o(t,{modelValue:l.tip,"onUpdate:modelValue":e[3]||(e[3]=a=>l.tip=a),class:"!w-[250px]",placeholder:"请输入颜色提示"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue"])}}});export{X as _}; import{d as D,r as d,q as h,m as q,h as B,v as N,w as n,a as R,e as o,i as v,f as _,a5 as F,L as O,M as $,bJ as j,N as A,E as I,U as S}from"./index-69eae4f0.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";import{u as T}from"./diy-36140a2a.js";const z={class:"dialog-footer"},X=D({__name:"add-theme",emits:["confirm"],setup(J,{expose:g,emit:y}){const V=T(),s=d(!1),i=d(!1),b={title:"",label:"",value:"",tip:""};let f=[];const m=d(""),l=h({...b}),k=r=>{f=r.key,m.value="";for(const e in l)l[e]="";r.data&&Object.keys(r.data).length&&(m.value="edit",Object.keys(l).forEach((e,t)=>{l[e]=r.data[e]?r.data[e]:""})),s.value=!0},p=d(),x=q(()=>({title:[{required:!0,message:"请输入颜色名称",trigger:"blur"}],value:[{required:!0,validator:(r,e,t)=>{e?t():t("请输入颜色value值")},trigger:["blur","change"]}],label:[{required:!0,message:"请输入颜色key值",trigger:"blur"},{validator:(r,e,t)=>{const u=/^[a-zA-Z0-9-]+$/;f.indexOf(e)!=-1&&t("新增颜色key值与已存在颜色key值命名重复请修改命名"),u.test(e)?t():t("颜色key值只能输入字母、数字和连字符")},trigger:"blur"}]})),w=async r=>{var e;i.value||await((e=p.value)==null?void 0:e.validate(async t=>{i.value||(i.value=!0,t&&(i.value=!1,y("confirm",F(l)),s.value=!1))}))};return g({dialogThemeVisible:s,open:k}),(r,e)=>{const t=O,u=$,E=j,C=A,c=I,U=S;return B(),N(U,{modelValue:s.value,"onUpdate:modelValue":e[6]||(e[6]=a=>s.value=a),title:"新增颜色",width:"550px","align-center":""},{footer:n(()=>[R("div",z,[o(c,{onClick:e[4]||(e[4]=a=>s.value=!1)},{default:n(()=>[v("取消")]),_:1}),o(c,{type:"primary",onClick:e[5]||(e[5]=a=>w(p.value))},{default:n(()=>[v("保存")]),_:1})])]),default:n(()=>[o(C,{model:l,"label-width":"120px",ref_key:"formRef",ref:p,rules:_(x)},{default:n(()=>[o(u,{label:"名字",prop:"title"},{default:n(()=>[o(t,{modelValue:l.title,"onUpdate:modelValue":e[0]||(e[0]=a=>l.title=a),class:"!w-[250px]",maxlength:"7",placeholder:"请输入颜色名称"},null,8,["modelValue"])]),_:1}),o(u,{label:"颜色key值",prop:"label"},{default:n(()=>[o(t,{modelValue:l.label,"onUpdate:modelValue":e[1]||(e[1]=a=>l.label=a),class:"!w-[250px]",maxlength:"20",disabled:m.value=="edit",placeholder:"请输入颜色key值"},null,8,["modelValue","disabled"])]),_:1}),o(u,{label:"颜色value值",prop:"value"},{default:n(()=>[o(E,{modelValue:l.value,"onUpdate:modelValue":e[2]||(e[2]=a=>l.value=a),"show-alpha":"",predefine:_(V).predefineColors},null,8,["modelValue","predefine"])]),_:1}),o(u,{label:"颜色提示"},{default:n(()=>[o(t,{modelValue:l.tip,"onUpdate:modelValue":e[3]||(e[3]=a=>l.tip=a),class:"!w-[250px]",placeholder:"请输入颜色提示"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue"])}}});export{X as _};

View File

@ -1 +0,0 @@
import{P as t}from"./index-38aa4eb6.js";function d(n){return t.get("addon/local",n)}function o(n){return t.post(`addon/install/${n.addon}`,n)}function a(n){return t.post(`addon/cloudinstall/${n.addon}`,n)}function s(n){return t.post(`addon/uninstall/${n.addon}`,n,{showSuccessMessage:!0})}function l(n){return t.get(`addon/install/check/${n}`)}function u(){return t.get("addon/installtask")}function i(n){return t.get(`addon/cloudinstall/${n}`)}function r(n){return t.get(`addon/uninstall/check/${n}`)}function c(n){return t.put(`addon/install/cancel/${n}`,{},{showErrorMessage:!1})}function g(){return t.get("addon/list/install")}function f(){return t.get("home/site/group/app_list")}function p(){return t.get("addon/init")}function A(){return t.get("app/index")}function h(){return t.get("index/adv_list")}export{g as a,A as b,h as c,p as d,d as e,u as f,f as g,a as h,o as i,i as j,r as k,c as l,l as p,s as u};

View File

@ -0,0 +1 @@
import{b5 as t}from"./index-69eae4f0.js";function d(n){return t.get("addon/local",n)}function o(n){return t.post(`addon/install/${n.addon}`,n)}function a(n){return t.post(`addon/cloudinstall/${n.addon}`,n)}function s(n){return t.post(`addon/uninstall/${n.addon}`,n,{showSuccessMessage:!0})}function l(n){return t.get(`addon/install/check/${n}`)}function u(){return t.get("addon/installtask")}function i(n){return t.get(`addon/cloudinstall/${n}`)}function r(n){return t.get(`addon/uninstall/check/${n}`)}function c(n){return t.put(`addon/install/cancel/${n}`,{},{showErrorMessage:!1})}function g(){return t.get("addon/list/install")}function f(){return t.get("home/site/group/app_list")}function p(){return t.get("addon/init")}function A(){return t.get("app/index")}function h(){return t.get("index/adv_list")}export{g as a,A as b,h as c,p as d,d as e,u as f,f as g,a as h,o as i,i as j,r as k,c as l,l as p,s as u};

View File

@ -1 +1 @@
import{d as F,k as w,r as g,q as B,h as b,c as L,Z as C,v as D,w as n,e as o,a as s,t as r,f as a,s as l,i as I,ch as k,a6 as y,ci as U,b8 as N,M as T,a9 as R,N as S,E as j,a3 as q}from"./index-38aa4eb6.js";/* empty css *//* empty css *//* empty css *//* empty css */import A from"./index-7f95eef7.js";import"./el-form-item-4ed993c7.js";/* empty css *//* empty css */import"./index.vue_vue_type_style_index_0_lang-c54b1028.js";/* empty css *//* empty css */import"./attachment-e9cc5d6c.js";import"./index.vue_vue_type_script_setup_true_lang-afbe6a00.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_script_setup_true_lang-7756177a.js";/* empty css */import"./index.vue_vue_type_script_setup_true_lang-a1d95079.js";import"./_plugin-vue_export-helper-c27b6911.js";import"./sortable.esm-be94e56d.js";const M={class:"main-container"},O={class:"text-[16px] text-[#1D1F3A] font-bold mb-4"},Z={class:"panel-title !text-[14px] bg-[#F4F5F7] p-3 border-[#E6E6E6] border-solid border-b-[1px]"},$={class:"form-tip"},z={class:"box-card mt-[20px] !border-none"},G={class:"panel-title !text-[14px] bg-[#F4F5F7] p-3 border-[#E6E6E6] border-solid border-b-[1px]"},H={class:"form-tip"},J={class:"text-[12px] text-[#a9a9a9]"},K={class:"text-[12px] text-[#a9a9a9]"},P={class:"fixed-footer-wrap"},Q={class:"fixed-footer"},Ne=F({__name:"adminlogin",setup(W){const f=w().meta.title,d=g(!0),u=g(),t=B({is_captcha:0,is_site_captcha:0,bg:"",site_bg:"",site_login_logo:"",site_login_bg_img:""});(async()=>{const p=await(await k()).data;Object.keys(t).forEach(e=>{t[e]=p[e]}),d.value=!1})();const v=async p=>{d.value||!p||await p.validate(e=>{if(e){const _=y(t);U(_).then(()=>{d.value=!1}).catch(()=>{d.value=!1})}})};return(p,e)=>{const _=N,m=T,c=A,x=R,V=S,h=j,E=q;return b(),L("div",M,[C((b(),D(V,{class:"page-form",model:t,"label-width":"150px",ref_key:"ruleFormRef",ref:u},{default:n(()=>[o(x,{class:"box-card !border-none",shadow:"never"},{default:n(()=>[s("h3",O,r(a(f)),1),s("h3",Z,r(a(l)("admin")),1),o(m,{label:a(l)("isCaptcha")},{default:n(()=>[o(_,{modelValue:t.is_captcha,"onUpdate:modelValue":e[0]||(e[0]=i=>t.is_captcha=i),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1},8,["label"]),o(m,{label:a(l)("bgImg")},{default:n(()=>[o(c,{modelValue:t.bg,"onUpdate:modelValue":e[1]||(e[1]=i=>t.bg=i)},null,8,["modelValue"]),s("div",$,r(a(l)("adminBgImgTip")),1)]),_:1},8,["label"]),s("div",z,[s("h3",G,r(a(l)("site")),1),o(m,{label:a(l)("isCaptcha")},{default:n(()=>[o(_,{modelValue:t.is_site_captcha,"onUpdate:modelValue":e[2]||(e[2]=i=>t.is_site_captcha=i),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1},8,["label"]),o(m,{label:a(l)("bgImg")},{default:n(()=>[o(c,{modelValue:t.site_bg,"onUpdate:modelValue":e[3]||(e[3]=i=>t.site_bg=i)},null,8,["modelValue"]),s("div",H,r(a(l)("siteBgImgTip")),1)]),_:1},8,["label"]),o(m,{label:a(l)("siteLoginLogo")},{default:n(()=>[s("div",null,[o(c,{modelValue:t.site_login_logo,"onUpdate:modelValue":e[4]||(e[4]=i=>t.site_login_logo=i)},null,8,["modelValue"]),s("p",J,r(a(l)("siteLoginLogoTips")),1)])]),_:1},8,["label"]),o(m,{label:a(l)("siteLoginBgImg")},{default:n(()=>[s("div",null,[o(c,{modelValue:t.site_login_bg_img,"onUpdate:modelValue":e[5]||(e[5]=i=>t.site_login_bg_img=i)},null,8,["modelValue"]),s("p",K,r(a(l)("siteLoginBgImgTips")),1)])]),_:1},8,["label"])])]),_:1})]),_:1},8,["model"])),[[E,d.value]]),s("div",P,[s("div",Q,[o(h,{type:"primary",onClick:e[6]||(e[6]=i=>v(u.value))},{default:n(()=>[I(r(a(l)("save")),1)]),_:1})])])])}}});export{Ne as default}; import{d as F,k as w,r as g,q as B,h as b,c as L,Y as C,v as D,w as n,e as o,a as s,t as r,f as a,s as l,i as I,ch as k,a5 as y,ci as U,b8 as N,M as T,a8 as R,N as S,E as j,a2 as q}from"./index-69eae4f0.js";/* empty css *//* empty css *//* empty css *//* empty css */import A from"./index-433a9310.js";import"./el-form-item-4ed993c7.js";/* empty css *//* empty css */import"./index.vue_vue_type_style_index_0_lang-b671f223.js";/* empty css *//* empty css */import"./attachment-edcd969d.js";import"./index.vue_vue_type_script_setup_true_lang-664a6e1b.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_script_setup_true_lang-50a3d7f7.js";/* empty css */import"./index.vue_vue_type_script_setup_true_lang-895d2fd8.js";import"./_plugin-vue_export-helper-c27b6911.js";import"./sortable.esm-be94e56d.js";const M={class:"main-container"},O={class:"text-[16px] text-[#1D1F3A] font-bold mb-4"},Y={class:"panel-title !text-[14px] bg-[#F4F5F7] p-3 border-[#E6E6E6] border-solid border-b-[1px]"},$={class:"form-tip"},z={class:"box-card mt-[20px] !border-none"},G={class:"panel-title !text-[14px] bg-[#F4F5F7] p-3 border-[#E6E6E6] border-solid border-b-[1px]"},H={class:"form-tip"},J={class:"text-[12px] text-[#a9a9a9]"},K={class:"text-[12px] text-[#a9a9a9]"},P={class:"fixed-footer-wrap"},Q={class:"fixed-footer"},Ne=F({__name:"adminlogin",setup(W){const f=w().meta.title,d=g(!0),u=g(),t=B({is_captcha:0,is_site_captcha:0,bg:"",site_bg:"",site_login_logo:"",site_login_bg_img:""});(async()=>{const p=await(await k()).data;Object.keys(t).forEach(e=>{t[e]=p[e]}),d.value=!1})();const v=async p=>{d.value||!p||await p.validate(e=>{if(e){const _=y(t);U(_).then(()=>{d.value=!1}).catch(()=>{d.value=!1})}})};return(p,e)=>{const _=N,m=T,c=A,x=R,V=S,h=j,E=q;return b(),L("div",M,[C((b(),D(V,{class:"page-form",model:t,"label-width":"150px",ref_key:"ruleFormRef",ref:u},{default:n(()=>[o(x,{class:"box-card !border-none",shadow:"never"},{default:n(()=>[s("h3",O,r(a(f)),1),s("h3",Y,r(a(l)("admin")),1),o(m,{label:a(l)("isCaptcha")},{default:n(()=>[o(_,{modelValue:t.is_captcha,"onUpdate:modelValue":e[0]||(e[0]=i=>t.is_captcha=i),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1},8,["label"]),o(m,{label:a(l)("bgImg")},{default:n(()=>[o(c,{modelValue:t.bg,"onUpdate:modelValue":e[1]||(e[1]=i=>t.bg=i)},null,8,["modelValue"]),s("div",$,r(a(l)("adminBgImgTip")),1)]),_:1},8,["label"]),s("div",z,[s("h3",G,r(a(l)("site")),1),o(m,{label:a(l)("isCaptcha")},{default:n(()=>[o(_,{modelValue:t.is_site_captcha,"onUpdate:modelValue":e[2]||(e[2]=i=>t.is_site_captcha=i),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1},8,["label"]),o(m,{label:a(l)("bgImg")},{default:n(()=>[o(c,{modelValue:t.site_bg,"onUpdate:modelValue":e[3]||(e[3]=i=>t.site_bg=i)},null,8,["modelValue"]),s("div",H,r(a(l)("siteBgImgTip")),1)]),_:1},8,["label"]),o(m,{label:a(l)("siteLoginLogo")},{default:n(()=>[s("div",null,[o(c,{modelValue:t.site_login_logo,"onUpdate:modelValue":e[4]||(e[4]=i=>t.site_login_logo=i)},null,8,["modelValue"]),s("p",J,r(a(l)("siteLoginLogoTips")),1)])]),_:1},8,["label"]),o(m,{label:a(l)("siteLoginBgImg")},{default:n(()=>[s("div",null,[o(c,{modelValue:t.site_login_bg_img,"onUpdate:modelValue":e[5]||(e[5]=i=>t.site_login_bg_img=i)},null,8,["modelValue"]),s("p",K,r(a(l)("siteLoginBgImgTips")),1)])]),_:1},8,["label"])])]),_:1})]),_:1},8,["model"])),[[E,d.value]]),s("div",P,[s("div",Q,[o(h,{type:"primary",onClick:e[6]||(e[6]=i=>v(u.value))},{default:n(()=>[I(r(a(l)("save")),1)]),_:1})])])])}}});export{Ne as default};

View File

@ -1 +1 @@
import{d as w,k,q as y,u as x,h as m,c as E,e as a,w as o,a as i,t as r,f as t,Z as C,v as B,s as n,i as p,cj as N,ak as T,E as D,al as L,a9 as j,a3 as A}from"./index-38aa4eb6.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */const V={class:"main-container"},R={class:"flex justify-between items-center"},$={class:"text-page-title"},q={class:"mt-[20px]"},X=w({__name:"agreement",setup(z){const _=k().meta.title,e=y({loading:!0,data:[]});(()=>{e.loading=!0,e.data=[],N().then(l=>{Object.keys(l.data).forEach(d=>e.data.push(l.data[d])),e.loading=!1}).catch(()=>{e.loading=!1})})();const u=x(),g=l=>{u.push(`/setting/agreement/edit?key=${l.agreement_key}`)};return(l,d)=>{const s=T,h=D,f=L,b=j,v=A;return m(),E("div",V,[a(b,{class:"box-card !border-none",shadow:"never"},{default:o(()=>[i("div",R,[i("span",$,r(t(_)),1)]),i("div",q,[C((m(),B(f,{data:e.data,size:"large"},{empty:o(()=>[i("span",null,r(e.loading?"":t(n)("emptyData")),1)]),default:o(()=>[a(s,{prop:"type_name",label:t(n)("typeName"),"min-width":"100","show-overflow-tooltip":!0},null,8,["label"]),a(s,{prop:"title",label:t(n)("title"),"min-width":"100","show-overflow-tooltip":!0},null,8,["label"]),a(s,{label:t(n)("updateTime"),"min-width":"180",align:"center"},{default:o(({row:c})=>[p(r(c.update_time||""),1)]),_:1},8,["label"]),a(s,{label:t(n)("operation"),align:"right",fixed:"right",width:"100"},{default:o(({row:c})=>[a(h,{type:"primary",link:"",onClick:Z=>g(c)},{default:o(()=>[p(r(t(n)("config")),1)]),_:2},1032,["onClick"])]),_:1},8,["label"])]),_:1},8,["data"])),[[v,e.loading]])])]),_:1})])}}});export{X as default}; import{d as w,k,q as y,u as x,h as m,c as E,e as a,w as o,a as i,t as r,f as t,Y as C,v as B,s as n,i as p,cj as N,aj as T,E as j,ak as D,a8 as L,a2 as A}from"./index-69eae4f0.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */const V={class:"main-container"},R={class:"flex justify-between items-center"},$={class:"text-page-title"},q={class:"mt-[20px]"},X=w({__name:"agreement",setup(z){const _=k().meta.title,e=y({loading:!0,data:[]});(()=>{e.loading=!0,e.data=[],N().then(l=>{Object.keys(l.data).forEach(d=>e.data.push(l.data[d])),e.loading=!1}).catch(()=>{e.loading=!1})})();const u=x(),g=l=>{u.push(`/setting/agreement/edit?key=${l.agreement_key}`)};return(l,d)=>{const s=T,h=j,f=D,b=L,v=A;return m(),E("div",V,[a(b,{class:"box-card !border-none",shadow:"never"},{default:o(()=>[i("div",R,[i("span",$,r(t(_)),1)]),i("div",q,[C((m(),B(f,{data:e.data,size:"large"},{empty:o(()=>[i("span",null,r(e.loading?"":t(n)("emptyData")),1)]),default:o(()=>[a(s,{prop:"type_name",label:t(n)("typeName"),"min-width":"100","show-overflow-tooltip":!0},null,8,["label"]),a(s,{prop:"title",label:t(n)("title"),"min-width":"100","show-overflow-tooltip":!0},null,8,["label"]),a(s,{label:t(n)("updateTime"),"min-width":"180",align:"center"},{default:o(({row:c})=>[p(r(c.update_time||""),1)]),_:1},8,["label"]),a(s,{label:t(n)("operation"),align:"right",fixed:"right",width:"100"},{default:o(({row:c})=>[a(h,{type:"primary",link:"",onClick:Y=>g(c)},{default:o(()=>[p(r(t(n)("config")),1)]),_:2},1032,["onClick"])]),_:1},8,["label"])]),_:1},8,["data"])),[[v,e.loading]])])]),_:1})])}}});export{X as default};

View File

@ -1 +1 @@
import{d as q,k as M,u as P,r as y,ck as S,q as T,m as $,s as r,h,c as I,e as a,w as s,f as n,b4 as U,Z as j,v as A,a as k,i as w,t as x,cl as L,cm as O,b5 as H,a9 as Z,L as z,M as G,N as J,E as K,a3 as Q}from"./index-38aa4eb6.js";/* empty css *//* empty css *//* empty css */import{_ as W}from"./index.vue_vue_type_script_setup_true_lang-3848f778.js";import"./el-form-item-4ed993c7.js";/* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_style_index_0_lang-c54b1028.js";/* empty css *//* empty css */import"./attachment-e9cc5d6c.js";import"./index.vue_vue_type_script_setup_true_lang-afbe6a00.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_script_setup_true_lang-7756177a.js";/* empty css */import"./index.vue_vue_type_script_setup_true_lang-a1d95079.js";import"./_plugin-vue_export-helper-c27b6911.js";const X={class:"main-container"},Y={class:"fixed-footer-wrap"},ee={class:"fixed-footer"},Se=q({__name:"agreement_edit",setup(te){const d=M(),V=P(),_=d.query.key||"",i=y(!1),E=S(),B=d.meta.title,f={agreement_key:"",content:"",title:"",agreement_key_name:""},t=T({...f});i.value=!0,_&&(async(m="")=>{Object.assign(t,f);const e=await(await L(m)).data;Object.keys(t).forEach(o=>{e[o]!=null&&(t[o]=e[o])}),i.value=!1})(_);const g=y(),D=$(()=>({title:[{required:!0,message:r("titlePlaceholder"),trigger:"blur"}],content:[{required:!0,trigger:["blur","change"],validator:(m,e,o)=>{if(e==="")o(new Error(r("contentPlaceholder")));else{if(e.length<5||e.length>1e5)return o(new Error(r("contentMaxTips"))),!1;o()}}}]})),C=async m=>{i.value||!m||await m.validate(async e=>{if(e){i.value=!0;const o=t;o.key=t.agreement_key,O(o).then(c=>{i.value=!1,p()}).catch(()=>{i.value=!1})}})},p=()=>{E.removeTab(d.path),V.push({path:"/setting/agreement"})};return(m,e)=>{const o=H,c=Z,v=z,u=G,F=W,N=J,b=K,R=Q;return h(),I("div",X,[a(c,{class:"card !border-none",shadow:"never"},{default:s(()=>[a(o,{content:n(B),icon:n(U),onBack:e[0]||(e[0]=l=>p())},null,8,["content","icon"])]),_:1}),j((h(),A(c,{class:"box-card mt-[15px] !border-none",shadow:"never"},{default:s(()=>[a(N,{model:t,"label-width":"90px",ref_key:"formRef",ref:g,rules:n(D),class:"page-form"},{default:s(()=>[a(u,{label:n(r)("type")},{default:s(()=>[a(v,{modelValue:t.agreement_key_name,"onUpdate:modelValue":e[1]||(e[1]=l=>t.agreement_key_name=l),modelModifiers:{trim:!0},readonly:"",class:"input-width"},null,8,["modelValue"])]),_:1},8,["label"]),a(u,{label:n(r)("title"),prop:"title"},{default:s(()=>[a(v,{modelValue:t.title,"onUpdate:modelValue":e[2]||(e[2]=l=>t.title=l),modelModifiers:{trim:!0},clearable:"",placeholder:n(r)("titlePlaceholder"),class:"input-width",maxlength:"20"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(u,{label:n(r)("content"),prop:"content"},{default:s(()=>[a(F,{modelValue:t.content,"onUpdate:modelValue":e[3]||(e[3]=l=>t.content=l)},null,8,["modelValue"])]),_:1},8,["label"])]),_:1},8,["model","rules"])]),_:1})),[[R,i.value]]),k("div",Y,[k("div",ee,[a(b,{type:"primary",onClick:e[4]||(e[4]=l=>C(g.value))},{default:s(()=>[w(x(n(r)("save")),1)]),_:1}),a(b,{onClick:e[5]||(e[5]=l=>p())},{default:s(()=>[w(x(n(r)("cancel")),1)]),_:1})])])])}}});export{Se as default}; import{d as q,k as M,u as P,r as y,ck as S,q as T,m as $,s as r,h,c as I,e as a,w as s,f as n,b3 as U,Y as j,v as A,a as k,i as w,t as x,cl as L,cm as O,b4 as H,a8 as Y,L as z,M as G,N as J,E as K,a2 as Q}from"./index-69eae4f0.js";/* empty css *//* empty css *//* empty css */import{_ as W}from"./index.vue_vue_type_script_setup_true_lang-22ce18ac.js";import"./el-form-item-4ed993c7.js";/* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_style_index_0_lang-b671f223.js";/* empty css *//* empty css */import"./attachment-edcd969d.js";import"./index.vue_vue_type_script_setup_true_lang-664a6e1b.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_script_setup_true_lang-50a3d7f7.js";/* empty css */import"./index.vue_vue_type_script_setup_true_lang-895d2fd8.js";import"./_plugin-vue_export-helper-c27b6911.js";const X={class:"main-container"},Z={class:"fixed-footer-wrap"},ee={class:"fixed-footer"},Se=q({__name:"agreement_edit",setup(te){const d=M(),V=P(),_=d.query.key||"",i=y(!1),E=S(),B=d.meta.title,f={agreement_key:"",content:"",title:"",agreement_key_name:""},t=T({...f});i.value=!0,_&&(async(m="")=>{Object.assign(t,f);const e=await(await L(m)).data;Object.keys(t).forEach(o=>{e[o]!=null&&(t[o]=e[o])}),i.value=!1})(_);const g=y(),D=$(()=>({title:[{required:!0,message:r("titlePlaceholder"),trigger:"blur"}],content:[{required:!0,trigger:["blur","change"],validator:(m,e,o)=>{if(e==="")o(new Error(r("contentPlaceholder")));else{if(e.length<5||e.length>1e5)return o(new Error(r("contentMaxTips"))),!1;o()}}}]})),C=async m=>{i.value||!m||await m.validate(async e=>{if(e){i.value=!0;const o=t;o.key=t.agreement_key,O(o).then(c=>{i.value=!1,p()}).catch(()=>{i.value=!1})}})},p=()=>{E.removeTab(d.path),V.push({path:"/setting/agreement"})};return(m,e)=>{const o=H,c=Y,v=z,u=G,F=W,N=J,b=K,R=Q;return h(),I("div",X,[a(c,{class:"card !border-none",shadow:"never"},{default:s(()=>[a(o,{content:n(B),icon:n(U),onBack:e[0]||(e[0]=l=>p())},null,8,["content","icon"])]),_:1}),j((h(),A(c,{class:"box-card mt-[15px] !border-none",shadow:"never"},{default:s(()=>[a(N,{model:t,"label-width":"90px",ref_key:"formRef",ref:g,rules:n(D),class:"page-form"},{default:s(()=>[a(u,{label:n(r)("type")},{default:s(()=>[a(v,{modelValue:t.agreement_key_name,"onUpdate:modelValue":e[1]||(e[1]=l=>t.agreement_key_name=l),modelModifiers:{trim:!0},readonly:"",class:"input-width"},null,8,["modelValue"])]),_:1},8,["label"]),a(u,{label:n(r)("title"),prop:"title"},{default:s(()=>[a(v,{modelValue:t.title,"onUpdate:modelValue":e[2]||(e[2]=l=>t.title=l),modelModifiers:{trim:!0},clearable:"",placeholder:n(r)("titlePlaceholder"),class:"input-width",maxlength:"20"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),a(u,{label:n(r)("content"),prop:"content"},{default:s(()=>[a(F,{modelValue:t.content,"onUpdate:modelValue":e[3]||(e[3]=l=>t.content=l)},null,8,["modelValue"])]),_:1},8,["label"])]),_:1},8,["model","rules"])]),_:1})),[[R,i.value]]),k("div",Z,[k("div",ee,[a(b,{type:"primary",onClick:e[4]||(e[4]=l=>C(g.value))},{default:s(()=>[w(x(n(r)("save")),1)]),_:1}),a(b,{onClick:e[5]||(e[5]=l=>p())},{default:s(()=>[w(x(n(r)("cancel")),1)]),_:1})])])])}}});export{Se as default};

View File

@ -0,0 +1 @@
import{b5 as t}from"./index-69eae4f0.js";function e(){return t.get("aliapp/config")}function p(a){return t.put("aliapp/config",a,{showSuccessMessage:!0})}function n(){return t.get("aliapp/static")}export{n as a,e as g,p as s};

View File

@ -1 +0,0 @@
import{P as t}from"./index-38aa4eb6.js";function e(){return t.get("aliapp/config")}function p(a){return t.put("aliapp/config",a,{showSuccessMessage:!0})}function n(){return t.get("aliapp/static")}export{n as a,e as g,p as s};

View File

@ -1 +0,0 @@
import{P as n}from"./index-38aa4eb6.js";function t(){return n.get("channel/app/config")}function r(e){return n.put("channel/app/config",e,{showSuccessMessage:!0})}function a(e){return n.get("channel/app/version",{params:e})}function o(e){return n.get(`channel/app/version/${e}`)}function u(){return n.get("channel/app/platfrom")}function i(e){return n.post("channel/app/version",e,{showSuccessMessage:!0})}function c(e){return n.put(`channel/app/version/${e.id}`,e,{showSuccessMessage:!0})}function p(e){return n.delete(`channel/app/version/${e.id}`)}function g(e){return n.get(`channel/app/build/log/${e}`)}function f(e){return n.put(`channel/app/version/${e}/release`,{},{showSuccessMessage:!0})}function l(e){return n.post("channel/app/generate_sing_cert",e,{showSuccessMessage:!0})}export{a,g as b,u as c,p as d,c as e,i as f,t as g,o as h,l as i,f as r,r as s};

View File

@ -0,0 +1 @@
import{b5 as n}from"./index-69eae4f0.js";function t(){return n.get("channel/app/config")}function r(e){return n.put("channel/app/config",e,{showSuccessMessage:!0})}function a(e){return n.get("channel/app/version",{params:e})}function o(e){return n.get(`channel/app/version/${e}`)}function u(){return n.get("channel/app/platfrom")}function i(e){return n.post("channel/app/version",e,{showSuccessMessage:!0})}function c(e){return n.put(`channel/app/version/${e.id}`,e,{showSuccessMessage:!0})}function p(e){return n.delete(`channel/app/version/${e.id}`)}function g(e){return n.get(`channel/app/build/log/${e}`)}function f(e){return n.put(`channel/app/version/${e}/release`,{},{showSuccessMessage:!0})}function l(e){return n.post("channel/app/generate_sing_cert",e,{showSuccessMessage:!0})}export{a,g as b,u as c,p as d,c as e,i as f,t as g,o as h,l as i,f as r,r as s};

View File

@ -1 +1 @@
import{_ as o}from"./app-version-edit.vue_vue_type_style_index_0_lang-1da6801d.js";import"./index-38aa4eb6.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_style_index_0_lang-a4acb467.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";import"./app-97ec12b5.js";import"./generate-sing-cert.vue_vue_type_script_setup_true_lang-a9fc7de8.js";export{o as default}; import{_ as o}from"./app-version-edit.vue_vue_type_style_index_0_lang-93998c9d.js";import"./index-69eae4f0.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_style_index_0_lang-f08a4fca.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";import"./app-c5028586.js";import"./generate-sing-cert.vue_vue_type_script_setup_true_lang-01f9dda9.js";export{o as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{d as I,u as V,j as M,r as y,q as N,Z as R,h as l,c as x,a as e,t as s,f as a,s as o,e as u,w as c,F as j,W as D,B as T,v as $,i as q,C as k,ca as b,H as w,E as z,K as H,ba as K,cb as O,ab as P,a3 as U,p as W,g as Z}from"./index-38aa4eb6.js";/* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css */import{_ as G}from"./apply_empty-cdca3e85.js";import{a as J}from"./addon-a1e06bf2.js";import{_ as Q}from"./_plugin-vue_export-helper-c27b6911.js";const X=""+new URL("app_store_default-c0531792.png",import.meta.url).href,h=_=>(W("data-v-8a156fb4"),_=_(),Z(),_),Y={class:"box-border pt-[68px] px-[76px] overview-top"},ee={key:0},te={class:"flex justify-between items-center"},se={class:"font-[600] text-[26px] text-[#222] leading-[37px]"},ae={class:"font-[500] text-[14px] text-[#222] leading-[20px] mt-[12px]"},oe=h(()=>e("div",{class:"mr-[9px] text-[#3F3F3F] iconfont iconxiazai01"},null,-1)),ne={class:"font-[600] text-[14px] text-[#222] leading-[20px]"},pe={class:"flex flex-wrap mt-[40px]"},ce=["onClick"],ie={class:"bg-[#F7FAFB] py-[18px] px-[24px] flex items-center app-item-head"},re=h(()=>e("div",{class:"image-slot"},[e("img",{class:"w-[40px] h-[40px] rounded-[8px]",src:X})],-1)),le={class:"py-[18px] px-[24px]"},_e={class:"font-[600] leading-[1] text-[14px] text-[#222]"},de={class:"text-[13px] text-[#6D7278] leading-[18px] mt-[6px] truncate"},xe=h(()=>e("div",{class:"w-[230px] mx-auto"},[e("img",{src:G,class:"max-w-full",alt:""})],-1)),ue={class:"flex items-center"},me=I({__name:"app_manage",setup(_){const v=V(),m=M(),n=y(!0),d=N({appList:[]}),f=y({});(()=>{n.value=!0,J().then(p=>{Object.values(p.data).forEach((t,i)=>{t.type=="app"&&d.appList.push(t)}),m.routers.forEach((t,i)=>{t.children&&t.children.length?(t.name=b(t.children),f.value[t.meta.app]=b(t.children)):f.value[t.meta.app]=t.name}),n.value=!1}).catch(()=>{n.value=!1})})();const L=p=>{w.set({key:"menuAppStorage",data:p.key}),w.set({key:"plugMenuTypeStorage",data:""});const t=m.appMenuList;t.push(p.key),m.setAppMenuList(t);const i=f.value[p.key];v.push({name:i})},g=()=>{v.push("/app_manage/app_store")};return(p,t)=>{const i=z,F=H,E=K,S=O,C=P,A=U;return R((l(),x("div",Y,[d.appList&&!n.value?(l(),x("div",ee,[e("div",te,[e("div",null,[e("div",se,s(a(o)("app")),1),e("div",ae,s(a(o)("versionInfo"))+" "+s(a(o)("currentVersion")),1)]),u(i,{onClick:g,class:"px-[15px]"},{default:c(()=>[oe,e("span",ne,s(a(o)("appStore")),1)]),_:1})]),e("div",pe,[(l(!0),x(j,null,D(d.appList,(r,B)=>(l(),x("div",{key:B,class:"app-item w-[280px] box-border !bg-[#fff] rounded-[6px] cursor-pointer mr-[20px] mb-[20px] overflow-hidden",onClick:he=>L(r)},[e("div",ie,[u(F,{class:"w-[44px] h-[44px] rounded-[8px]",src:a(T)(r.icon),fit:"contain"},{error:c(()=>[re]),_:2},1032,["src"])]),e("div",le,[e("div",_e,s(r.title),1),u(E,{class:"box-item",effect:"light",content:r.desc,placement:"bottom-start"},{default:c(()=>[e("div",de,s(r.desc),1)]),_:2},1032,["content"])])],8,ce))),128)),!d.appList.length&&!n.value?(l(),$(C,{key:0,class:"mx-auto overview-empty"},{image:c(()=>[xe]),description:c(()=>[e("p",ue,[e("span",null,s(a(o)("descriptionLeft")),1),u(S,{type:"primary",onClick:g,class:"mx-[5px]"},{default:c(()=>[q(s(a(o)("link")),1)]),_:1}),e("span",null,s(a(o)("descriptionRight")),1)])]),_:1})):k("",!0)])])):k("",!0)])),[[A,n.value]])}}});const Be=Q(me,[["__scopeId","data-v-8a156fb4"]]);export{Be as default}; import{d as I,u as V,j as M,r as y,q as N,Y as R,h as l,c as x,a as e,t as s,f as a,s as o,e as u,w as c,F as j,V as D,B as T,v as $,i as q,C as k,ca as b,H as w,E as z,K as H,ba as K,cb as O,aa as P,a2 as U,p as Y,g as G}from"./index-69eae4f0.js";/* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css */import{_ as J}from"./apply_empty-cdca3e85.js";import{a as Q}from"./addon-f5e37302.js";import{_ as W}from"./_plugin-vue_export-helper-c27b6911.js";const X=""+new URL("app_store_default-c0531792.png",import.meta.url).href,h=_=>(Y("data-v-8a156fb4"),_=_(),G(),_),Z={class:"box-border pt-[68px] px-[76px] overview-top"},ee={key:0},te={class:"flex justify-between items-center"},se={class:"font-[600] text-[26px] text-[#222] leading-[37px]"},ae={class:"font-[500] text-[14px] text-[#222] leading-[20px] mt-[12px]"},oe=h(()=>e("div",{class:"mr-[9px] text-[#3F3F3F] iconfont iconxiazai01"},null,-1)),ne={class:"font-[600] text-[14px] text-[#222] leading-[20px]"},pe={class:"flex flex-wrap mt-[40px]"},ce=["onClick"],ie={class:"bg-[#F7FAFB] py-[18px] px-[24px] flex items-center app-item-head"},re=h(()=>e("div",{class:"image-slot"},[e("img",{class:"w-[40px] h-[40px] rounded-[8px]",src:X})],-1)),le={class:"py-[18px] px-[24px]"},_e={class:"font-[600] leading-[1] text-[14px] text-[#222]"},de={class:"text-[13px] text-[#6D7278] leading-[18px] mt-[6px] truncate"},xe=h(()=>e("div",{class:"w-[230px] mx-auto"},[e("img",{src:J,class:"max-w-full",alt:""})],-1)),ue={class:"flex items-center"},me=I({__name:"app_manage",setup(_){const v=V(),m=M(),n=y(!0),d=N({appList:[]}),f=y({});(()=>{n.value=!0,Q().then(p=>{Object.values(p.data).forEach((t,i)=>{t.type=="app"&&d.appList.push(t)}),m.routers.forEach((t,i)=>{t.children&&t.children.length?(t.name=b(t.children),f.value[t.meta.app]=b(t.children)):f.value[t.meta.app]=t.name}),n.value=!1}).catch(()=>{n.value=!1})})();const L=p=>{w.set({key:"menuAppStorage",data:p.key}),w.set({key:"plugMenuTypeStorage",data:""});const t=m.appMenuList;t.push(p.key),m.setAppMenuList(t);const i=f.value[p.key];v.push({name:i})},g=()=>{v.push("/app_manage/app_store")};return(p,t)=>{const i=z,F=H,E=K,S=O,C=P,A=U;return R((l(),x("div",Z,[d.appList&&!n.value?(l(),x("div",ee,[e("div",te,[e("div",null,[e("div",se,s(a(o)("app")),1),e("div",ae,s(a(o)("versionInfo"))+" "+s(a(o)("currentVersion")),1)]),u(i,{onClick:g,class:"px-[15px]"},{default:c(()=>[oe,e("span",ne,s(a(o)("appStore")),1)]),_:1})]),e("div",pe,[(l(!0),x(j,null,D(d.appList,(r,B)=>(l(),x("div",{key:B,class:"app-item w-[280px] box-border !bg-[#fff] rounded-[6px] cursor-pointer mr-[20px] mb-[20px] overflow-hidden",onClick:he=>L(r)},[e("div",ie,[u(F,{class:"w-[44px] h-[44px] rounded-[8px]",src:a(T)(r.icon),fit:"contain"},{error:c(()=>[re]),_:2},1032,["src"])]),e("div",le,[e("div",_e,s(r.title),1),u(E,{class:"box-item",effect:"light",content:r.desc,placement:"bottom-start"},{default:c(()=>[e("div",de,s(r.desc),1)]),_:2},1032,["content"])])],8,ce))),128)),!d.appList.length&&!n.value?(l(),$(C,{key:0,class:"mx-auto overview-empty"},{image:c(()=>[xe]),description:c(()=>[e("p",ue,[e("span",null,s(a(o)("descriptionLeft")),1),u(S,{type:"primary",onClick:g,class:"mx-[5px]"},{default:c(()=>[q(s(a(o)("link")),1)]),_:1}),e("span",null,s(a(o)("descriptionRight")),1)])]),_:1})):k("",!0)])])):k("",!0)])),[[A,n.value]])}}});const Be=W(me,[["__scopeId","data-v-8a156fb4"]]);export{Be as default};

View File

@ -1 +1 @@
import{d as f,k as h,r as b,h as m,c as s,e,w as o,a as i,t as y,f as p,F as v,W as x,s as g,aI as V,aJ as k,a9 as w}from"./index-38aa4eb6.js";/* empty css *//* empty css */import E from"./attachment-e9cc5d6c.js";/* empty css */import"./index.vue_vue_type_script_setup_true_lang-afbe6a00.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_script_setup_true_lang-7756177a.js";/* empty css */import"./index.vue_vue_type_script_setup_true_lang-a1d95079.js";import"./_plugin-vue_export-helper-c27b6911.js";const B={class:"main-container attachment-container"},C={class:"flex justify-between items-center mb-[20px]"},N={class:"text-page-title"},it=f({__name:"attachment",setup(T){const l=h().meta.title,a=["image","video","icon"],n=b(a[0]);return(j,r)=>{const c=V,_=k,d=w;return m(),s("div",B,[e(d,{class:"box-card !border-none full-container",shadow:"never"},{default:o(()=>[i("div",C,[i("span",N,y(p(l)),1)]),e(_,{modelValue:n.value,"onUpdate:modelValue":r[0]||(r[0]=t=>n.value=t),"tab-position":"top"},{default:o(()=>[(m(),s(v,null,x(a,(t,u)=>e(c,{label:p(g)(t),name:t,key:u},{default:o(()=>[e(E,{scene:"attachment",type:t},null,8,["type"])]),_:2},1032,["label","name"])),64))]),_:1},8,["modelValue"])]),_:1})])}}});export{it as default}; import{d as f,k as h,r as b,h as m,c as s,e,w as o,a as i,t as y,f as p,F as v,V as x,s as g,aH as V,aI as k,a8 as w}from"./index-69eae4f0.js";/* empty css *//* empty css */import E from"./attachment-edcd969d.js";/* empty css */import"./index.vue_vue_type_script_setup_true_lang-664a6e1b.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-4ed993c7.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./index.vue_vue_type_script_setup_true_lang-50a3d7f7.js";/* empty css */import"./index.vue_vue_type_script_setup_true_lang-895d2fd8.js";import"./_plugin-vue_export-helper-c27b6911.js";const B={class:"main-container attachment-container"},C={class:"flex justify-between items-center mb-[20px]"},N={class:"text-page-title"},it=f({__name:"attachment",setup(T){const l=h().meta.title,a=["image","video","icon"],n=b(a[0]);return(j,r)=>{const c=V,_=k,d=w;return m(),s("div",B,[e(d,{class:"box-card !border-none full-container",shadow:"never"},{default:o(()=>[i("div",C,[i("span",N,y(p(l)),1)]),e(_,{modelValue:n.value,"onUpdate:modelValue":r[0]||(r[0]=t=>n.value=t),"tab-position":"top"},{default:o(()=>[(m(),s(v,null,x(a,(t,u)=>e(c,{label:p(g)(t),name:t,key:u},{default:o(()=>[e(E,{scene:"attachment",type:t},null,8,["type"])]),_:2},1032,["label","name"])),64))]),_:1},8,["modelValue"])]),_:1})])}}});export{it as default};

View File

@ -1 +0,0 @@
.attachment-container{overflow:hidden;min-height:calc(100vh - 94px);background-color:var(--el-bg-color-overlay)}.attachment-container .full-container{height:calc(100vh - 100px)}.attachment-container .el-card__body{height:100%}.attachment-container .el-tabs{display:flex;flex-direction:column-reverse;height:calc(100% - 40px)}.attachment-container .el-tabs__content{flex:1}.attachment-container .el-tabs__content .el-tab-pane{height:100%}.attachment-container .el-tabs__nav-wrap:after{height:1px}.attachment-container .main-wrap{border:none}.attachment-container .main-wrap .group-wrap{padding:0 15px 0 0}.attachment-container .main-wrap .attachment-list-wrap{padding:0 0 0 15px}

View File

@ -0,0 +1 @@
.attachment-container{overflow:hidden;min-height:calc(100vh - 94px);background-color:var(--el-bg-color-overlay)}.attachment-container .full-container{height:calc(100vh - 100px)}.attachment-container .el-card__body{height:100%}.attachment-container .el-tabs{display:flex;flex-direction:column;height:calc(100% - 40px)}.attachment-container .el-tabs__content{flex:1}.attachment-container .el-tabs__content .el-tab-pane{height:100%}.attachment-container .el-tabs__nav-wrap:after{height:1px}.attachment-container .main-wrap{border:none}.attachment-container .main-wrap .group-wrap{padding:0 15px 0 0}.attachment-container .main-wrap .attachment-list-wrap{padding:0 0 0 15px}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{d as b,r as d,q as w,I as m,m as g,R as c,h as E,v as F,w as i,e as n,a,Z as N,i as R,_ as j,aG as B,L as C,M as I,N as O}from"./index-38aa4eb6.js";/* empty css */import"./el-form-item-4ed993c7.js";/* empty css *//* empty css */const k={class:"flex items-center"},D=a("span",{class:"ml-[10px] el-form-item__label"},"消费折扣",-1),M={class:"w-[120px]"},U=a("div",{class:"text-sm text-gray-400 mb-[5px]"},"会员购买产品默认折扣,需要商品设置参与会员折扣有效",-1),Z=b({__name:"benefits-discount",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(p,{expose:_,emit:v}){const f=p,e=d({is_use:0,discount:""}),r=d(null),x=w({discount:[{validator:(l,t,s)=>{e.value.is_use&&(m.empty(e.value.discount)&&s("请输入折扣"),m.decimal(e.value.discount,1)||s("折扣格式错误"),(parseFloat(e.value.discount)<0||parseFloat(e.value.discount)>9.9)&&s("折扣只能输入0~9.9之间的值"),e.value.discount<0&&s("折扣不能小于0")),s()}}]}),o=g({get(){return f.modelValue},set(l){v("update:modelValue",l)}});return c(()=>o.value,(l,t)=>{(!t||!Object.keys(t).length)&&Object.keys(l).length&&(e.value=o.value)},{immediate:!0}),c(()=>e.value,()=>{o.value=e.value},{deep:!0}),_({verify:async()=>{var t;let l=!0;return await((t=r.value)==null?void 0:t.validate(s=>{l=s})),l}}),(l,t)=>{const s=B,V=C,h=I,y=O;return E(),F(y,{ref_key:"formRef",ref:r,model:e.value,rules:x},{default:i(()=>[n(h,{label:"",prop:"discount",class:"!mb-[10px]"},{default:i(()=>[a("div",null,[a("div",k,[n(s,{modelValue:e.value.is_use,"onUpdate:modelValue":t[0]||(t[0]=u=>e.value.is_use=u),"true-label":1,"false-label":0,label:"",size:"large"},null,8,["modelValue"]),D,N(a("div",M,[n(V,{modelValue:e.value.discount,"onUpdate:modelValue":t[1]||(t[1]=u=>e.value.discount=u),modelModifiers:{trim:!0},clearable:""},{append:i(()=>[R("折")]),_:1},8,["modelValue"])],512),[[j,e.value.is_use]])]),U])]),_:1})]),_:1},8,["model","rules"])}}});export{Z as default}; import{d as b,r as d,q as w,I as m,m as g,Q as c,h as F,v as E,w as i,e as n,a,Y as N,i as j,Z as B,aF as C,L as I,M as O,N as R}from"./index-69eae4f0.js";/* empty css */import"./el-form-item-4ed993c7.js";/* empty css *//* empty css */const k={class:"flex items-center"},D=a("span",{class:"ml-[10px] el-form-item__label"},"消费折扣",-1),M={class:"w-[120px]"},U=a("div",{class:"text-sm text-gray-400 mb-[5px]"},"会员购买产品默认折扣,需要商品设置参与会员折扣有效",-1),Y=b({__name:"benefits-discount",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(p,{expose:_,emit:v}){const f=p,e=d({is_use:0,discount:""}),r=d(null),x=w({discount:[{validator:(l,t,s)=>{e.value.is_use&&(m.empty(e.value.discount)&&s("请输入折扣"),m.decimal(e.value.discount,1)||s("折扣格式错误"),(parseFloat(e.value.discount)<0||parseFloat(e.value.discount)>9.9)&&s("折扣只能输入0~9.9之间的值"),e.value.discount<0&&s("折扣不能小于0")),s()}}]}),o=g({get(){return f.modelValue},set(l){v("update:modelValue",l)}});return c(()=>o.value,(l,t)=>{(!t||!Object.keys(t).length)&&Object.keys(l).length&&(e.value=o.value)},{immediate:!0}),c(()=>e.value,()=>{o.value=e.value},{deep:!0}),_({verify:async()=>{var t;let l=!0;return await((t=r.value)==null?void 0:t.validate(s=>{l=s})),l}}),(l,t)=>{const s=C,V=I,h=O,y=R;return F(),E(y,{ref_key:"formRef",ref:r,model:e.value,rules:x},{default:i(()=>[n(h,{label:"",prop:"discount",class:"!mb-[10px]"},{default:i(()=>[a("div",null,[a("div",k,[n(s,{modelValue:e.value.is_use,"onUpdate:modelValue":t[0]||(t[0]=u=>e.value.is_use=u),"true-label":1,"false-label":0,label:"",size:"large"},null,8,["modelValue"]),D,N(a("div",M,[n(V,{modelValue:e.value.discount,"onUpdate:modelValue":t[1]||(t[1]=u=>e.value.discount=u),modelModifiers:{trim:!0},clearable:""},{append:i(()=>[j("折")]),_:1},8,["modelValue"])],512),[[B,e.value.is_use]])]),U])]),_:1})]),_:1},8,["model","rules"])}}});export{Y as default};

View File

@ -1 +1 @@
import{d as U,k as O,r as b,q as V,h as u,c as E,e as n,w as s,a as i,t as m,f as o,Z as z,v as p,s as l,bW as k,C as f,i as v,F as G,W as L,b8 as S,M as j,L as H,aE as I,aF as K,aG as P,bE as q,a9 as X,N as Z,E as $,a3 as J}from"./index-38aa4eb6.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css */import{d as Q,W as Y,X as ee}from"./member-d83c7f22.js";const te={class:"main-container"},ae={class:"flex justify-between items-center"},oe={class:"text-page-title"},se={class:"text-[12px] text-[#999] leading-[24px]"},le=i("span",{class:"ml-2"},"%",-1),ne={class:"text-[12px] text-[#999] leading-[24px]"},re={class:"fixed-footer-wrap"},ie={class:"fixed-footer"},Fe=U({__name:"cash_out",setup(de){const C=O().meta.title,c=b(!0),g=b(),t=V({is_auto_transfer:"0",is_auto_verify:"0",is_open:"0",min:"0",rate:"0",transfer_type:[]}),h=b([]);(async()=>{h.value=await(await Q()).data})(),(async()=>{const d=await(await Y()).data;Object.keys(t).forEach(e=>{d[e]!=null&&(t[e]=d[e])}),c.value=!1})();const R=V({min:[{validator:(d,e,r)=>{Number(e)<.01?r(new Error(l("cashWithdrawalAmountHint"))):r()},trigger:"blur"}],rate:[{validator:(d,e,r)=>{Number(e)>100||Number(e)<0?r(new Error(l("commissionRatioHint"))):r()},trigger:"blur"}]}),F=async d=>{c.value||!d||await d.validate(e=>{if(e){const r={...t};ee(r).then(()=>{c.value=!1}).catch(()=>{c.value=!1})}})};return(d,e)=>{const r=S,_=j,y=H,x=I,N=K,T=P,D=q,w=X,W=Z,A=$,B=J;return u(),E("div",te,[n(w,{class:"box-card !border-none",shadow:"never"},{default:s(()=>[i("div",ae,[i("span",oe,m(o(C)),1)]),z((u(),p(W,{class:"page-form mt-[20px]",model:t,"label-width":"150px",ref_key:"ruleFormRef",ref:g,rules:R},{default:s(()=>[n(w,{class:"box-card !border-none",shadow:"never"},{default:s(()=>[n(_,{label:o(l)("isOpen")},{default:s(()=>[n(r,{modelValue:t.is_open,"onUpdate:modelValue":e[0]||(e[0]=a=>t.is_open=a),"active-value":"1","inactive-value":"0"},null,8,["modelValue"])]),_:1},8,["label"]),t.is_open?(u(),p(_,{key:0,label:o(l)("cashWithdrawalAmount"),prop:"min"},{default:s(()=>[i("div",null,[n(y,{modelValue:t.min,"onUpdate:modelValue":e[1]||(e[1]=a=>t.min=a),modelModifiers:{trim:!0},onKeyup:e[2]||(e[2]=a=>o(k)(a)),class:"input-width",placeholder:o(l)("cashWithdrawalAmountPlaceholder")},null,8,["modelValue","placeholder"]),i("div",se,m(o(l)("minTips")),1)])]),_:1},8,["label"])):f("",!0),t.is_open?(u(),p(_,{key:1,label:o(l)("commissionRatio"),prop:"rate"},{default:s(()=>[n(y,{modelValue:t.rate,"onUpdate:modelValue":e[3]||(e[3]=a=>t.rate=a),modelModifiers:{trim:!0},onKeyup:e[4]||(e[4]=a=>o(k)(a)),class:"input-width",placeholder:o(l)("commissionRatioPlaceholder")},null,8,["modelValue","placeholder"]),le]),_:1},8,["label"])):f("",!0),t.is_open?(u(),p(_,{key:2,label:o(l)("audit"),class:"items-center"},{default:s(()=>[n(N,{modelValue:t.is_auto_verify,"onUpdate:modelValue":e[5]||(e[5]=a=>t.is_auto_verify=a)},{default:s(()=>[n(x,{label:"0",size:"large"},{default:s(()=>[v(m(o(l)("manualAudit")),1)]),_:1}),n(x,{label:"1",size:"large"},{default:s(()=>[v(m(o(l)("automaticAudit")),1)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["label"])):f("",!0),t.is_open?(u(),p(_,{key:3,label:o(l)("transferMode"),class:"items-baseline"},{default:s(()=>[i("div",null,[n(D,{modelValue:t.transfer_type,"onUpdate:modelValue":e[6]||(e[6]=a=>t.transfer_type=a),size:"large"},{default:s(()=>[(u(!0),E(G,null,L(h.value,(a,M)=>(u(),p(T,{label:a.key,key:"a"+M},{default:s(()=>[v(m(a.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"]),i("div",ne,m(o(l)("transferModeTips")),1)])]),_:1},8,["label"])):f("",!0)]),_:1})]),_:1},8,["model","rules"])),[[B,c.value]])]),_:1}),i("div",re,[i("div",ie,[n(A,{type:"primary",onClick:e[7]||(e[7]=a=>F(g.value))},{default:s(()=>[v(m(o(l)("save")),1)]),_:1})])])])}}});export{Fe as default}; import{d as W,k as O,r as b,q as V,h as u,c as E,e as n,w as s,a as i,t as m,f as o,Y as z,v as p,s as l,bW as k,C as f,i as v,F as L,V as S,b8 as j,M as G,L as H,aD as I,aE as K,aF as P,bE as q,a8 as X,N as Y,E as $,a2 as J}from"./index-69eae4f0.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-form-item-4ed993c7.js";/* empty css */import{d as Q,W as Z,X as ee}from"./member-204d2223.js";const te={class:"main-container"},ae={class:"flex justify-between items-center"},oe={class:"text-page-title"},se={class:"text-[12px] text-[#999] leading-[24px]"},le=i("span",{class:"ml-2"},"%",-1),ne={class:"text-[12px] text-[#999] leading-[24px]"},re={class:"fixed-footer-wrap"},ie={class:"fixed-footer"},Fe=W({__name:"cash_out",setup(de){const C=O().meta.title,c=b(!0),g=b(),t=V({is_auto_transfer:"0",is_auto_verify:"0",is_open:"0",min:"0",rate:"0",transfer_type:[]}),h=b([]);(async()=>{h.value=await(await Q()).data})(),(async()=>{const d=await(await Z()).data;Object.keys(t).forEach(e=>{d[e]!=null&&(t[e]=d[e])}),c.value=!1})();const R=V({min:[{validator:(d,e,r)=>{Number(e)<.01?r(new Error(l("cashWithdrawalAmountHint"))):r()},trigger:"blur"}],rate:[{validator:(d,e,r)=>{Number(e)>100||Number(e)<0?r(new Error(l("commissionRatioHint"))):r()},trigger:"blur"}]}),F=async d=>{c.value||!d||await d.validate(e=>{if(e){const r={...t};ee(r).then(()=>{c.value=!1}).catch(()=>{c.value=!1})}})};return(d,e)=>{const r=j,_=G,y=H,x=I,N=K,D=P,T=q,w=X,A=Y,B=$,M=J;return u(),E("div",te,[n(w,{class:"box-card !border-none",shadow:"never"},{default:s(()=>[i("div",ae,[i("span",oe,m(o(C)),1)]),z((u(),p(A,{class:"page-form mt-[20px]",model:t,"label-width":"150px",ref_key:"ruleFormRef",ref:g,rules:R},{default:s(()=>[n(w,{class:"box-card !border-none",shadow:"never"},{default:s(()=>[n(_,{label:o(l)("isOpen")},{default:s(()=>[n(r,{modelValue:t.is_open,"onUpdate:modelValue":e[0]||(e[0]=a=>t.is_open=a),"active-value":"1","inactive-value":"0"},null,8,["modelValue"])]),_:1},8,["label"]),t.is_open?(u(),p(_,{key:0,label:o(l)("cashWithdrawalAmount"),prop:"min"},{default:s(()=>[i("div",null,[n(y,{modelValue:t.min,"onUpdate:modelValue":e[1]||(e[1]=a=>t.min=a),modelModifiers:{trim:!0},onKeyup:e[2]||(e[2]=a=>o(k)(a)),class:"input-width",placeholder:o(l)("cashWithdrawalAmountPlaceholder")},null,8,["modelValue","placeholder"]),i("div",se,m(o(l)("minTips")),1)])]),_:1},8,["label"])):f("",!0),t.is_open?(u(),p(_,{key:1,label:o(l)("commissionRatio"),prop:"rate"},{default:s(()=>[n(y,{modelValue:t.rate,"onUpdate:modelValue":e[3]||(e[3]=a=>t.rate=a),modelModifiers:{trim:!0},onKeyup:e[4]||(e[4]=a=>o(k)(a)),class:"input-width",placeholder:o(l)("commissionRatioPlaceholder")},null,8,["modelValue","placeholder"]),le]),_:1},8,["label"])):f("",!0),t.is_open?(u(),p(_,{key:2,label:o(l)("audit"),class:"items-center"},{default:s(()=>[n(N,{modelValue:t.is_auto_verify,"onUpdate:modelValue":e[5]||(e[5]=a=>t.is_auto_verify=a)},{default:s(()=>[n(x,{label:"0",size:"large"},{default:s(()=>[v(m(o(l)("manualAudit")),1)]),_:1}),n(x,{label:"1",size:"large"},{default:s(()=>[v(m(o(l)("automaticAudit")),1)]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["label"])):f("",!0),t.is_open?(u(),p(_,{key:3,label:o(l)("transferMode"),class:"items-baseline"},{default:s(()=>[i("div",null,[n(T,{modelValue:t.transfer_type,"onUpdate:modelValue":e[6]||(e[6]=a=>t.transfer_type=a),size:"large"},{default:s(()=>[(u(!0),E(L,null,S(h.value,(a,U)=>(u(),p(D,{label:a.key,key:"a"+U},{default:s(()=>[v(m(a.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"]),i("div",ne,m(o(l)("transferModeTips")),1)])]),_:1},8,["label"])):f("",!0)]),_:1})]),_:1},8,["model","rules"])),[[M,c.value]])]),_:1}),i("div",re,[i("div",ie,[n(B,{type:"primary",onClick:e[7]||(e[7]=a=>F(g.value))},{default:s(()=>[v(m(o(l)("save")),1)]),_:1})])])])}}});export{Fe as default};

View File

@ -0,0 +1 @@
.btn-time[data-v-d03eaabf]{line-height:36px;text-align:center}[data-v-d03eaabf] .el-button{border-radius:4px!important}[data-v-d03eaabf] .el-timeline-item__node--normal{width:16px!important;height:16px!important}[data-v-d03eaabf] .el-timeline-item__tail{left:6px!important}[data-v-d03eaabf] .el-timeline-item__node.is-hollow{background:#9699B6!important;border-width:3px!important}

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