mirror of
https://gitee.com/zongzhige/shopxo.git
synced 2024-11-29 10:29:27 +08:00
v6.3.0
This commit is contained in:
parent
d8f8153ba8
commit
fc93254f88
@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 ShopXO
|
||||
Copyright (c) 2024 ShopXO免费开源商城
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
39
README.md
39
README.md
@ -1,5 +1,5 @@
|
||||
<p align="center">
|
||||
<img src="https://doc.shopxo.net/upload/image/20210727/1627379966617129.jpg" width="360" />
|
||||
<img src="https://shopxoserver.oss-cn-beijing.aliyuncs.com/demo/system/logo.jpg" width="360" />
|
||||
</p>
|
||||
|
||||
<div align="center">
|
||||
@ -26,13 +26,13 @@
|
||||
|
||||
### 项目介绍
|
||||
#### ShopXO国内企业级免费开源电商系统!
|
||||
* 求实进取、创新专注、自主研发、国内企业级电商系统解决方案。
|
||||
* 求实进取、创新专注、自主研发、专注于企业信息化、数字化、电商一体化解决方案。
|
||||
* 遵循MIT开源协议发布,无需授权、可商用、可二次开发、满足99%的电商运营需求。
|
||||
* 支持PC+手机自适应,独立H5、小程序(支付宝、微信、百度、头条&抖音、QQ、快手),APP(IOS、Android)
|
||||
* 支持多仓库、多商户、多门店、进销存(组件插件化、即插即用),可视化DIY拖拽装修。
|
||||
|
||||
### 体验码
|
||||
![二维码](https://doc.shopxo.net/upload/image/20211211/1639234221484373.jpg "qrcode.jpg")
|
||||
![二维码](https://shopxoserver.oss-cn-beijing.aliyuncs.com/demo/system/demo-qrcode.jpg "qrcode.jpg")
|
||||
|
||||
|
||||
### 基础信息
|
||||
@ -43,9 +43,9 @@
|
||||
| 开源协议 | [https://license.shopxo.net/](https://license.shopxo.net/) | 手机端 | [https://uniapp.shopxo.net/](https://uniapp.shopxo.net/) |
|
||||
|
||||
### 官方QQ群、答案`shopxo.net`
|
||||
| 官方1群 | 官方2群 | 官方3群 | 官方4群 | 官方多商户群 | 官方多门店群 | 官方进销存群 | 官方uniapp群 |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| 833531593 | 641730223 | 1127073697 | 323523483 | 782971010 | 281418967 | 719894308 | 679303149 |
|
||||
| 官方1群 | 官方2群 | 官方3群 | 官方4群 | 官方多商户群 | 官方多门店群 | 官方进销存群 | 官方uniapp群 | 官方DIY群 |
|
||||
|---|---|---|---|---|---|---|---|---|
|
||||
| 833531593 | 641730223 | 1127073697 | 323523483 | 782971010 | 281418967 | 719894308 | 679303149 | 934312116 |
|
||||
|
||||
### 当前项目源代码平台
|
||||
| 平台 | 地址 |
|
||||
@ -55,7 +55,7 @@
|
||||
| Coding | [https://zongzhige.coding.net/public/shopxo/shopxo/git](https://zongzhige.coding.net/public/shopxo/shopxo/git) |
|
||||
| GitCode | [https://gitcode.com/zongzhige/shopxo](https://gitcode.com/zongzhige/shopxo) |
|
||||
|
||||
### uniapp端源代码平台
|
||||
### uniapp手机端源代码平台
|
||||
| 平台 | 地址 |
|
||||
|----|----|
|
||||
| Gitee | [https://gitee.com/zongzhige/shopxo-uniapp](https://gitee.com/zongzhige/shopxo-uniapp) |
|
||||
@ -64,6 +64,13 @@
|
||||
| GitCode | [https://gitcode.com/zongzhige/shopxo-uniapp](https://gitcode.com/zongzhige/shopxo-uniapp) |
|
||||
| uni-app | [https://ext.dcloud.net.cn/plugin?id=6380](https://ext.dcloud.net.cn/plugin?id=6380) |
|
||||
|
||||
### DIY装修源代码平台
|
||||
| 平台 | 地址 |
|
||||
|----|----|
|
||||
| Gitee | [https://gitee.com/zongzhige/shopxo-diy](https://gitee.com/zongzhige/shopxo-diy) |
|
||||
| GitHub | [https://github.com/gongfuxiang/shopxo-diy](https://github.com/gongfuxiang/shopxo-diy) |
|
||||
| GitCode | [https://gitcode.com/zongzhige/shopxo-diy](https://gitcode.com/zongzhige/shopxo-diy) |
|
||||
|
||||
### 部分功能特性
|
||||
| 名称 | 描述 |
|
||||
|---------|-------------------------------------------------|
|
||||
@ -106,21 +113,19 @@
|
||||
![后端](https://shopxoserver.oss-cn-beijing.aliyuncs.com/demo/admin/main.jpg "首页")
|
||||
|
||||
|
||||
### 手机DIY装修展示
|
||||
![手机DIY装修](https://shopxoserver.oss-cn-beijing.aliyuncs.com/demo/diy/diy.jpg "手机DIY装修")
|
||||
|
||||
|
||||
### 可视化DIY拖拽装修展示
|
||||
![可视化拖拽](https://doc.shopxo.net/upload/image/20210727/1627370212919280.gif "可视化DIY拖拽装修")
|
||||
|
||||
|
||||
### 系统管理模块
|
||||
![系统管理模块](http://assets.processon.com/chart_image/611f249c0e3e745cf8fe56e7.png?_=1629691225594 "系统管理模块")
|
||||
### Gitee荣誉证书展示
|
||||
![Gitee荣誉证书](https://shopxoserver.oss-cn-beijing.aliyuncs.com/demo/system/gitee-gvp.jpg "Gitee荣誉证书")
|
||||
|
||||
### 用户端模块
|
||||
![用户端模块](http://assets.processon.com/chart_image/6123129d0e3e743b327ab85e.png?_=1629691012295 "用户端模块")
|
||||
|
||||
### 扩展功能
|
||||
![扩展功能](http://assets.processon.com/chart_image/612258ca5653bb6788ddc05e.png?_=1629691075045 "扩展功能")
|
||||
|
||||
### 荣誉证书
|
||||
![GVP证书](https://doc.shopxo.net/upload/image/20210727/1627370213278731.jpeg "GVP高清图片.jpeg")
|
||||
### GitCode荣誉证书展示
|
||||
![GitCode荣誉证书](https://shopxoserver.oss-cn-beijing.aliyuncs.com/demo/system/gotcode-star.jpg "GitCode荣誉证书")
|
||||
|
||||
|
||||
### 如何参与项目
|
||||
|
@ -18,6 +18,7 @@ use think\exception\HttpResponseException;
|
||||
use think\exception\ValidateException;
|
||||
use think\Response;
|
||||
use Throwable;
|
||||
use app\service\ErrorLogService;
|
||||
|
||||
/**
|
||||
* 应用异常处理类
|
||||
@ -45,6 +46,40 @@ class ExceptionHandle extends Handle
|
||||
*/
|
||||
public function report(Throwable $exception): void
|
||||
{
|
||||
// 请求对象
|
||||
$request = request();
|
||||
// 请求参数
|
||||
$params = $request->param();
|
||||
//运行时长(单位 秒)
|
||||
$runtime = round(microtime(true) - app()->getBeginTime(), 10);
|
||||
// 内存占用
|
||||
$memory_use = (memory_get_usage() - app()->getBeginMem()) / 1024;
|
||||
if($memory_use > 1024)
|
||||
{
|
||||
$memory_use = $memory_use / 1024;
|
||||
if($memory_use > 1024)
|
||||
{
|
||||
$memory_use = number_format($memory_use / 1024, 2).'GB';
|
||||
} else {
|
||||
$memory_use = number_format($memory_use, 2).'MB';
|
||||
}
|
||||
} else {
|
||||
$memory_use = number_format($memory_use, 2).'KB';
|
||||
}
|
||||
$data = [
|
||||
'message' => $this->getMessage($exception),
|
||||
'file' => $exception->getFile(),
|
||||
'line' => $exception->getLine(),
|
||||
'code' => $this->getCode($exception),
|
||||
'ip' => $request->ip(),
|
||||
'uri' => $request->url(),
|
||||
'request_params' => empty($params) ? '' : (is_array($params) ? json_encode($params, JSON_UNESCAPED_UNICODE) : $params),
|
||||
'tsc' => number_format($runtime, 6),
|
||||
'memory_use' => $memory_use,
|
||||
'add_time' => time(),
|
||||
];
|
||||
ErrorLogService::ErrorLogAdd($data);
|
||||
|
||||
// 使用内置的方式记录异常日志
|
||||
parent::report($exception);
|
||||
}
|
||||
@ -59,8 +94,10 @@ class ExceptionHandle extends Handle
|
||||
*/
|
||||
public function render($request, Throwable $e): Response
|
||||
{
|
||||
// 存在token也返回json处理结果
|
||||
$token = $request->param('token');
|
||||
// 添加自定义异常处理机制
|
||||
if(IS_AJAX)
|
||||
if(IS_AJAX || !empty($token))
|
||||
{
|
||||
// 参数验证错误
|
||||
if($e instanceof ValidateException)
|
||||
|
@ -13,6 +13,7 @@ namespace app\admin\controller;
|
||||
use app\admin\controller\Base;
|
||||
use app\service\ApiService;
|
||||
use app\service\ConfigService;
|
||||
use app\service\DiyService;
|
||||
|
||||
/**
|
||||
* 手机端 - 配置
|
||||
@ -50,6 +51,16 @@ class AppConfig extends Base
|
||||
*/
|
||||
public function Index()
|
||||
{
|
||||
// diy页面
|
||||
$ret = DiyService::DiyList([
|
||||
'n' => 0,
|
||||
'field' => 'id,name',
|
||||
'where' => [
|
||||
['is_enable', '=', 1],
|
||||
],
|
||||
]);
|
||||
$diy_list = empty($ret['data']) ? [] : $ret['data'];
|
||||
|
||||
$assign = [
|
||||
// 配置数据
|
||||
'data' => ConfigService::ConfigList(),
|
||||
@ -57,6 +68,8 @@ class AppConfig extends Base
|
||||
'nav_data' => MyLang('appconfig.base_nav_list'),
|
||||
// 页面导航
|
||||
'nav_type' => $this->nav_type,
|
||||
// diy页面
|
||||
'diy_list' => $diy_list,
|
||||
];
|
||||
MyViewAssign($assign);
|
||||
return MyView($this->nav_type);
|
||||
|
96
app/admin/controller/Attachment.php
Normal file
96
app/admin/controller/Attachment.php
Normal file
@ -0,0 +1,96 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ShopXO 国内领先企业级B2C免费开源电商系统
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://opensource.org/licenses/mit-license.php )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Devil
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\admin\controller\Base;
|
||||
use app\service\ApiService;
|
||||
use app\service\AttachmentService;
|
||||
|
||||
/**
|
||||
* 附件管理
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
class Attachment extends Base
|
||||
{
|
||||
/**
|
||||
* 列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function Index()
|
||||
{
|
||||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function Detail()
|
||||
{
|
||||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑页面
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function SaveInfo()
|
||||
{
|
||||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function Save()
|
||||
{
|
||||
$params = $this->data_request;
|
||||
$params['admin'] = $this->admin;
|
||||
return ApiService::ApiDataReturn(AttachmentService::AttachmentSave($params));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function Delete()
|
||||
{
|
||||
$params = $this->data_request;
|
||||
$params['admin'] = $this->admin;
|
||||
return ApiService::ApiDataReturn(AttachmentService::AttachmentDelete($params));
|
||||
}
|
||||
}
|
||||
?>
|
98
app/admin/controller/Attachmentcategory.php
Normal file
98
app/admin/controller/Attachmentcategory.php
Normal file
@ -0,0 +1,98 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ShopXO 国内领先企业级B2C免费开源电商系统
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://opensource.org/licenses/mit-license.php )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Devil
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\admin\controller\Base;
|
||||
use app\service\ApiService;
|
||||
use app\service\AttachmentCategoryService;
|
||||
|
||||
/**
|
||||
* 附件分类管理
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
class AttachmentCategory extends Base
|
||||
{
|
||||
/**
|
||||
* 列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function Index()
|
||||
{
|
||||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取节点子列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function GetNodeSon()
|
||||
{
|
||||
return ApiService::ApiDataReturn(AttachmentCategoryService::AttachmentCategoryNodeSon($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function Save()
|
||||
{
|
||||
$params = $this->data_request;
|
||||
$params['admin'] = $this->admin;
|
||||
return ApiService::ApiDataReturn(AttachmentCategoryService::AttachmentCategorySave($params));
|
||||
}
|
||||
|
||||
/**
|
||||
* 状态更新
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2021-03-31
|
||||
* @desc description
|
||||
*/
|
||||
public function StatusUpdate()
|
||||
{
|
||||
$params = $this->data_request;
|
||||
$params['admin'] = $this->admin;
|
||||
return ApiService::ApiDataReturn(AttachmentCategoryService::AttachmentCategoryStatusUpdate($params));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function Delete()
|
||||
{
|
||||
$params = $this->data_request;
|
||||
$params['admin'] = $this->admin;
|
||||
return ApiService::ApiDataReturn(AttachmentCategoryService::AttachmentCategoryDelete($params));
|
||||
}
|
||||
}
|
||||
?>
|
@ -24,85 +24,91 @@ use app\service\AdminPowerService;
|
||||
*/
|
||||
class Cache extends Base
|
||||
{
|
||||
/**
|
||||
* 首页
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2017-02-26T19:13:29+0800
|
||||
*/
|
||||
public function Index()
|
||||
{
|
||||
// 缓存类型
|
||||
MyViewAssign('cache_type_list', CacheService::AdminCacheTypeList());
|
||||
return MyView();
|
||||
}
|
||||
/**
|
||||
* 首页
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2017-02-26T19:13:29+0800
|
||||
*/
|
||||
public function Index()
|
||||
{
|
||||
// 缓存类型
|
||||
MyViewAssign('cache_type_list', CacheService::AdminCacheTypeList());
|
||||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 站点缓存更新
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2017-02-26T19:53:14+0800
|
||||
*/
|
||||
public function StatusUpdate()
|
||||
{
|
||||
// 模板 cache
|
||||
// 系统配置缓存 data
|
||||
\base\FileUtil::UnlinkDir(ROOT.'runtime'.DS.'cache');
|
||||
\base\FileUtil::UnlinkDir(ROOT.'runtime'.DS.'data');
|
||||
/**
|
||||
* 站点缓存更新
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2017-02-26T19:53:14+0800
|
||||
*/
|
||||
public function StatusUpdate()
|
||||
{
|
||||
try {
|
||||
// 模板 cache
|
||||
// 系统配置缓存 data
|
||||
\base\FileUtil::UnlinkDir(ROOT.'runtime'.DS.'cache');
|
||||
\base\FileUtil::UnlinkDir(ROOT.'runtime'.DS.'data');
|
||||
|
||||
// 缓存操作清除
|
||||
\think\facade\Cache::clear();
|
||||
// 缓存操作清除
|
||||
\think\facade\Cache::clear();
|
||||
} catch(\Exception $e) {}
|
||||
|
||||
// 初始化菜单
|
||||
AdminPowerService::PowerMenuInit($this->admin);
|
||||
// 初始化菜单
|
||||
AdminPowerService::PowerMenuInit($this->admin);
|
||||
|
||||
return ApiService::ApiDataReturn(DataReturn(MyLang('update_success'), 0));
|
||||
}
|
||||
return ApiService::ApiDataReturn(DataReturn(MyLang('update_success'), 0));
|
||||
}
|
||||
|
||||
/**
|
||||
* 模板缓存更新
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2017-02-26T19:53:14+0800
|
||||
*/
|
||||
public function TemplateUpdate()
|
||||
{
|
||||
// 模板 cache
|
||||
\base\FileUtil::UnlinkDir(ROOT.'runtime'.DS.'index'.DS.'temp');
|
||||
\base\FileUtil::UnlinkDir(ROOT.'runtime'.DS.'api'.DS.'temp');
|
||||
/**
|
||||
* 模板缓存更新
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2017-02-26T19:53:14+0800
|
||||
*/
|
||||
public function TemplateUpdate()
|
||||
{
|
||||
try {
|
||||
// 模板 cache
|
||||
\base\FileUtil::UnlinkDir(ROOT.'runtime'.DS.'index'.DS.'temp');
|
||||
\base\FileUtil::UnlinkDir(ROOT.'runtime'.DS.'api'.DS.'temp');
|
||||
} catch(\Exception $e) {}
|
||||
|
||||
return ApiService::ApiDataReturn(DataReturn(MyLang('update_success'), 0));
|
||||
}
|
||||
return ApiService::ApiDataReturn(DataReturn(MyLang('update_success'), 0));
|
||||
}
|
||||
|
||||
/**
|
||||
* 模块缓存更新
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2017-02-26T19:53:14+0800
|
||||
*/
|
||||
public function ModuleUpdate()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DataReturn(MyLang('update_success'), 0));
|
||||
}
|
||||
/**
|
||||
* 模块缓存更新
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2017-02-26T19:53:14+0800
|
||||
*/
|
||||
public function ModuleUpdate()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DataReturn(MyLang('update_success'), 0));
|
||||
}
|
||||
|
||||
/**
|
||||
* 日志删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2017-02-26T19:53:14+0800
|
||||
*/
|
||||
public function LogDelete()
|
||||
{
|
||||
\base\FileUtil::UnlinkDir(ROOT.'runtime'.DS.'admin'.DS.'log');
|
||||
\base\FileUtil::UnlinkDir(ROOT.'runtime'.DS.'index'.DS.'log');
|
||||
\base\FileUtil::UnlinkDir(ROOT.'runtime'.DS.'api'.DS.'log');
|
||||
/**
|
||||
* 日志删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2017-02-26T19:53:14+0800
|
||||
*/
|
||||
public function LogDelete()
|
||||
{
|
||||
try {
|
||||
\base\FileUtil::UnlinkDir(ROOT.'runtime'.DS.'admin'.DS.'log');
|
||||
\base\FileUtil::UnlinkDir(ROOT.'runtime'.DS.'index'.DS.'log');
|
||||
\base\FileUtil::UnlinkDir(ROOT.'runtime'.DS.'api'.DS.'log');
|
||||
} catch(\Exception $e) {}
|
||||
|
||||
return ApiService::ApiDataReturn(DataReturn(MyLang('update_success'), 0));
|
||||
}
|
||||
return ApiService::ApiDataReturn(DataReturn(MyLang('update_success'), 0));
|
||||
}
|
||||
}
|
||||
?>
|
@ -16,7 +16,6 @@ use app\service\SystemService;
|
||||
use app\service\SystemBaseService;
|
||||
use app\service\AdminService;
|
||||
use app\service\AdminPowerService;
|
||||
use app\service\ConfigService;
|
||||
use app\service\ResourcesService;
|
||||
use app\service\StoreService;
|
||||
use app\service\MultilingualService;
|
||||
@ -104,11 +103,6 @@ class Common extends BaseController
|
||||
// 检测是否是新安装
|
||||
SystemService::SystemInstallCheck();
|
||||
|
||||
// 输入参数
|
||||
$this->data_post = input('post.');
|
||||
$this->data_get = input('get.');
|
||||
$this->data_request = input();
|
||||
|
||||
// 系统初始化
|
||||
$this->SystemInit();
|
||||
|
||||
@ -154,8 +148,10 @@ class Common extends BaseController
|
||||
*/
|
||||
private function SystemInit()
|
||||
{
|
||||
// 配置信息初始化
|
||||
ConfigService::ConfigInit();
|
||||
// 输入参数
|
||||
$this->data_post = input('post.');
|
||||
$this->data_get = input('get.');
|
||||
$this->data_request = input();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -169,9 +165,12 @@ class Common extends BaseController
|
||||
{
|
||||
if(empty($this->admin))
|
||||
{
|
||||
if(IS_AJAX)
|
||||
if(IS_AJAX || IS_POST)
|
||||
{
|
||||
exit(json_encode(DataReturn(MyLang('login_failure_tips'), -400)));
|
||||
exit(json_encode(DataReturn(MyLang('login_failure_tips'), -400, [
|
||||
'login' => MyUrl('admin/admin/logininfo'),
|
||||
'logout' => MyUrl('admin/admin/logout'),
|
||||
])));
|
||||
} else {
|
||||
die('<script type="text/javascript">if(self.frameElement && self.frameElement.tagName == "IFRAME"){parent.location.reload();}else{window.location.href="'.MyUrl('admin/admin/logininfo').'";}</script>');
|
||||
}
|
||||
@ -188,7 +187,17 @@ class Common extends BaseController
|
||||
public function ViewInit()
|
||||
{
|
||||
// 模板数据
|
||||
$assign = [];
|
||||
$assign = [
|
||||
// 静态文件缓存版本号
|
||||
'static_cache_version' => MyC('home_static_cache_version'),
|
||||
// logo
|
||||
'home_site_logo' => AttachmentPathViewHandle(MyC('home_site_logo')),
|
||||
'home_site_logo_wap' => AttachmentPathViewHandle(MyC('home_site_logo_wap')),
|
||||
'home_site_logo_app' => AttachmentPathViewHandle(MyC('home_site_logo_app')),
|
||||
'home_site_logo_square' => AttachmentPathViewHandle(MyC('home_site_logo_square')),
|
||||
// 站点名称
|
||||
'home_site_name' => MyC('home_site_name'),
|
||||
];
|
||||
|
||||
// 系统类型
|
||||
$this->system_type = SystemService::SystemTypeValue();
|
||||
@ -314,9 +323,12 @@ class Common extends BaseController
|
||||
// 当前url地址
|
||||
$assign['my_domain'] = __MY_DOMAIN__;
|
||||
|
||||
// 当前完整url地址
|
||||
// 当前站点url地址
|
||||
$assign['my_url'] = __MY_URL__;
|
||||
|
||||
// 当前完整url地址
|
||||
$assign['my_view_url'] = __MY_VIEW_URL__;
|
||||
|
||||
// 项目public目录URL地址
|
||||
$assign['my_public_url'] = __MY_PUBLIC_URL__;
|
||||
|
||||
@ -332,8 +344,8 @@ class Common extends BaseController
|
||||
// 加载页面加载层、是否加载图片动画
|
||||
$assign['is_page_loading'] = ($this->module_name.$this->controller_name.$this->action_name == 'adminindexindex') ? 0 : 1;
|
||||
$assign['is_page_loading_images'] = 0;
|
||||
$assign['page_loading_logo'] = $assign['home_site_logo_square'];
|
||||
$assign['page_loading_images_url'] = StaticAttachmentUrl('loading.gif');
|
||||
$assign['page_loading_logo'] = AttachmentPathViewHandle(MyC('home_site_logo_square'));
|
||||
$assign['page_loading_logo_border'] = StaticAttachmentUrl('loading-border.svg', 'svg');
|
||||
|
||||
// 是否加载附件组件
|
||||
@ -369,13 +381,16 @@ class Common extends BaseController
|
||||
// 默认不加载代码编辑器
|
||||
$assign['is_load_ace_builds'] = 0;
|
||||
|
||||
// 是否加载webuploader
|
||||
$assign['is_load_webuploader'] = 0;
|
||||
|
||||
// 站点名称
|
||||
$assign['admin_theme_site_name'] = MyC('admin_theme_site_name', 'ShopXO', true);
|
||||
|
||||
// 站点商店信息
|
||||
$site_store_error = '';
|
||||
$site_store_info = StoreService::SiteStoreInfo();
|
||||
if(empty($site_store_info))
|
||||
if(empty($site_store_info) && !empty($this->admin))
|
||||
{
|
||||
$ret = StoreService::SiteStoreAccountsBindHandle('', '', 'auto');
|
||||
if($ret['code'] == 0)
|
||||
@ -395,6 +410,9 @@ class Common extends BaseController
|
||||
// 系统基础信息
|
||||
$is_system_show_base = (empty($site_store_info) || empty($site_store_info['vip']) || !isset($site_store_info['vip']['status']) || $site_store_info['vip']['status'] == 0 || ($site_store_info['vip']['status'] == 1 && (AdminIsPower('index', 'storeaccountsbind') || AdminIsPower('index', 'inspectupgrade')))) ? 1 : 0;
|
||||
$assign['is_system_show_base'] = $is_system_show_base;
|
||||
// 是否已绑定商店账户
|
||||
$is_not_bind_accounts = AdminIsPower('index', 'storeaccountsbind') && (empty($site_store_info) || empty($site_store_info['user'])) ? 1 : 0;
|
||||
$assign['is_not_bind_accounts'] = $is_not_bind_accounts;
|
||||
|
||||
// 后台公告
|
||||
$admin_notice = MyC('admin_notice');
|
||||
@ -512,7 +530,7 @@ class Common extends BaseController
|
||||
if(!AdminIsPower(null, null, $unwanted_power))
|
||||
{
|
||||
$msg = MyLang('no_power_tips');
|
||||
if(IS_AJAX)
|
||||
if(IS_AJAX || IS_POST)
|
||||
{
|
||||
exit(json_encode(DataReturn($msg, -1000)));
|
||||
} else {
|
||||
@ -532,7 +550,7 @@ class Common extends BaseController
|
||||
*/
|
||||
public function NotBindStoreAccountTips($msg)
|
||||
{
|
||||
MyViewAssign('ext_html', '<p class="am-margin-top-sm"><button type="button" class="am-btn am-btn-primary am-radius am-btn-xs am-margin-left-xs am-icon-gg store-accounts-event"> '.MyLang('store_bind_account_name').'</button></p><p class="am-text-warning am-margin-top-xl">'.MyLang('store_bind_account_tips').'</p>');
|
||||
MyViewAssign('ext_html', '<p class="am-margin-top-sm"><button type="button" class="am-btn am-btn-primary am-radius am-btn-xs am-margin-left-xs am-icon-gg store-accounts-event"> '.MyLang('store_bind_accounts_name').'</button></p><p class="am-text-warning am-margin-top-xl">'.MyLang('store_already_bind_accounts_tips').'</p>');
|
||||
MyViewAssign('msg', $msg);
|
||||
return MyView('public/tips_error');
|
||||
}
|
||||
|
@ -35,9 +35,11 @@ class Config extends Base
|
||||
// 模板数据
|
||||
$assign = [
|
||||
// 数据
|
||||
'data' => ConfigService::ConfigList(),
|
||||
'data' => ConfigService::ConfigList(),
|
||||
// 页面类型
|
||||
'view_type' => 'index',
|
||||
'view_type' => 'index',
|
||||
// 静态数据
|
||||
'common_token_created_rules_list' => MyConst('common_token_created_rules_list'),
|
||||
];
|
||||
MyViewAssign($assign);
|
||||
return MyView();
|
||||
@ -87,6 +89,7 @@ class Config extends Base
|
||||
$field_list[] = 'admin_logo';
|
||||
$field_list[] = 'admin_login_logo';
|
||||
$field_list[] = 'admin_login_ad_images';
|
||||
$field_list[] = 'common_token_created_rules';
|
||||
break;
|
||||
|
||||
// 商店信息
|
||||
|
@ -17,7 +17,7 @@ use app\service\BrandService;
|
||||
use app\service\StoreService;
|
||||
use app\service\GoodsService;
|
||||
use app\service\GoodsCategoryService;
|
||||
use app\layout\service\BaseLayout;
|
||||
use app\module\LayoutModule;
|
||||
|
||||
/**
|
||||
* 页面设计管理
|
||||
@ -44,6 +44,19 @@ class Design extends Base
|
||||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-09-10
|
||||
* @desc description
|
||||
*/
|
||||
public function Detail()
|
||||
{
|
||||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑页面
|
||||
* @author Devil
|
||||
@ -69,7 +82,7 @@ class Design extends Base
|
||||
}
|
||||
|
||||
// 配置处理
|
||||
$layout_data = BaseLayout::ConfigAdminHandle($data['config']);
|
||||
$layout_data = LayoutModule::ConfigAdminHandle($data['config']);
|
||||
unset($data['config']);
|
||||
|
||||
// 商品分类
|
||||
@ -81,7 +94,7 @@ class Design extends Base
|
||||
'layout_data' => $layout_data,
|
||||
'data' => $data,
|
||||
// 页面列表
|
||||
'pages_list' => BaseLayout::PagesList(),
|
||||
'pages_list' => LayoutModule::PagesList(),
|
||||
// 商品分类
|
||||
'goods_category_list' => $goods_category,
|
||||
// 商品搜索分类(分类)
|
||||
@ -90,11 +103,11 @@ class Design extends Base
|
||||
// 品牌
|
||||
'brand_list' => BrandService::CategoryBrand(),
|
||||
// 静态数据
|
||||
'border_style_type_list' => BaseLayout::ConstData('border_style_type_list'),
|
||||
'goods_view_list_show_style' => BaseLayout::ConstData('goods_view_list_show_style'),
|
||||
'many_images_view_list_show_style' => BaseLayout::ConstData('many_images_view_list_show_style'),
|
||||
'images_text_view_list_show_style' => BaseLayout::ConstData('images_text_view_list_show_style'),
|
||||
'images_magic_cube_view_list_show_style' => BaseLayout::ConstData('images_magic_cube_view_list_show_style'),
|
||||
'border_style_type_list' => LayoutModule::ConstData('border_style_type_list'),
|
||||
'goods_view_list_show_style' => LayoutModule::ConstData('goods_view_list_show_style'),
|
||||
'many_images_view_list_show_style' => LayoutModule::ConstData('many_images_view_list_show_style'),
|
||||
'images_text_view_list_show_style' => LayoutModule::ConstData('images_text_view_list_show_style'),
|
||||
'images_magic_cube_view_list_show_style' => LayoutModule::ConstData('images_magic_cube_view_list_show_style'),
|
||||
// 首页商品排序规则
|
||||
'common_goods_order_by_type_list' => MyConst('common_goods_order_by_type_list'),
|
||||
'common_data_order_by_rule_list' => MyConst('common_data_order_by_rule_list'),
|
||||
@ -189,5 +202,23 @@ class Design extends Base
|
||||
{
|
||||
return ApiService::ApiDataReturn(DesignService::DesignUpload($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 模板市场
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2022-04-19
|
||||
* @desc description
|
||||
*/
|
||||
public function Market()
|
||||
{
|
||||
$ret = DesignService::DesignMarket($this->data_request);
|
||||
if($ret['code'] == 0 && isset($ret['data']['data_list']))
|
||||
{
|
||||
$ret['data']['data_list'] = MyView('public/market/list', ['data_list'=>$ret['data']['data_list']]);
|
||||
}
|
||||
return ApiService::ApiDataReturn($ret);
|
||||
}
|
||||
}
|
||||
?>
|
196
app/admin/controller/Diy.php
Normal file
196
app/admin/controller/Diy.php
Normal file
@ -0,0 +1,196 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ShopXO 国内领先企业级B2C免费开源电商系统
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://opensource.org/licenses/mit-license.php )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Devil
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\admin\controller\Base;
|
||||
use app\service\ApiService;
|
||||
use app\service\DiyService;
|
||||
use app\service\StoreService;
|
||||
|
||||
/**
|
||||
* DIY装修
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-09-10
|
||||
* @desc description
|
||||
*/
|
||||
class Diy extends Base
|
||||
{
|
||||
/**
|
||||
* 首页
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-09-10
|
||||
* @desc description
|
||||
*/
|
||||
public function Index()
|
||||
{
|
||||
// 页面类型
|
||||
$view_type = empty($this->data_request['view_type']) ? 'index' : $this->data_request['view_type'];
|
||||
// 应用商店
|
||||
MyViewAssign('store_diy_url', StoreService::StoreDiyUrl());
|
||||
return MyView($view_type);
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-09-10
|
||||
* @desc description
|
||||
*/
|
||||
public function Detail()
|
||||
{
|
||||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 预览
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-09-10
|
||||
* @desc description
|
||||
*/
|
||||
public function Preview()
|
||||
{
|
||||
MyViewAssign('data', DiyService::DiyPreviewUrl($this->data_detail));
|
||||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑页面
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-09-10
|
||||
* @desc description
|
||||
*/
|
||||
public function SaveInfo()
|
||||
{
|
||||
$data = $this->data_detail;
|
||||
if(empty($data))
|
||||
{
|
||||
$is_auto_create = isset($this->data_request['is_auto_create']) ? intval($this->data_request['is_auto_create']) : 1;
|
||||
if($is_auto_create == 1)
|
||||
{
|
||||
$ret = DiyService::DiySave();
|
||||
if($ret['code'] == 0)
|
||||
{
|
||||
return MyRedirect(MyUrl('admin/diy/saveinfo', ['id'=>$ret['data']]));
|
||||
}
|
||||
return MyView('public/tips_error', ['msg'=>$ret['msg']]);
|
||||
}
|
||||
} else {
|
||||
if(!empty($data['md5_key']))
|
||||
{
|
||||
$ret = DiyService::DiyLegalCheck($data['md5_key'], $data);
|
||||
if($ret['code'] != 0)
|
||||
{
|
||||
return MyView('public/tips_error', ['msg'=>$ret['msg']]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2022-04-17
|
||||
* @desc description
|
||||
*/
|
||||
public function Download()
|
||||
{
|
||||
$ret = DiyService::DiyDownload($this->data_request);
|
||||
if(isset($ret['code']) && $ret['code'] != 0)
|
||||
{
|
||||
MyViewAssign('msg', $ret['msg']);
|
||||
return MyView('public/tips_error');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-09-29
|
||||
* @desc description
|
||||
*/
|
||||
public function Save()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyService::DiySave($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 状态更新
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2021-03-31
|
||||
* @desc description
|
||||
*/
|
||||
public function StatusUpdate()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyService::DiyStatusUpdate($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2021-03-31
|
||||
* @desc description
|
||||
*/
|
||||
public function Delete()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyService::DiyDelete($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2022-04-19
|
||||
* @desc description
|
||||
*/
|
||||
public function Upload()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyService::DiyUpload($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 模板市场
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2022-04-19
|
||||
* @desc description
|
||||
*/
|
||||
public function Market()
|
||||
{
|
||||
$ret = DiyService::DiyMarket($this->data_request);
|
||||
if($ret['code'] == 0 && isset($ret['data']['data_list']))
|
||||
{
|
||||
$ret['data']['data_list'] = MyView('public/market/list', ['data_list'=>$ret['data']['data_list']]);
|
||||
}
|
||||
return ApiService::ApiDataReturn($ret);
|
||||
}
|
||||
}
|
||||
?>
|
450
app/admin/controller/Diyapi.php
Normal file
450
app/admin/controller/Diyapi.php
Normal file
@ -0,0 +1,450 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ShopXO 国内领先企业级B2C免费开源电商系统
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://opensource.org/licenses/mit-license.php )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Devil
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\admin\controller\Base;
|
||||
use app\service\ApiService;
|
||||
use app\service\DiyApiService;
|
||||
|
||||
/**
|
||||
* DiyApi接口
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
class DiyApi extends Base
|
||||
{
|
||||
/**
|
||||
* 公共初始化
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function Init()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::Init($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 附件分类
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function AttachmentCategory()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::AttachmentCategory($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 附件列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function AttachmentList()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::AttachmentList($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 附件保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function AttachmentSave()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::AttachmentSave($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 附件删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function AttachmentDelete()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::AttachmentDelete($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 附件上传
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function AttachmentUpload()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::AttachmentUpload($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 远程下载
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function AttachmentCatch()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::AttachmentCatch($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 附件扫码上传数据
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function AttachmentScanUploadData()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::AttachmentScanUploadData($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 附件移动分类
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function AttachmentMoveCategory()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::AttachmentMoveCategory($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 附件分类保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function AttachmentCategorySave()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::AttachmentCategorySave($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 附件分类删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function AttachmentCategoryDelete()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::AttachmentCategoryDelete($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function GoodsList()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::GoodsList($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 自定义页面列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function CustomViewList()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::CustomViewList($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 页面设计列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function DesignList()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::DesignList($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function ArticleList()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::ArticleList($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 品牌列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function BrandList()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::BrandList($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* Diy装修列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function DiyList()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::DiyList($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* Diy装修详情
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function DiyDetail()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::DiyDetail($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* Diy装修保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function DiySave()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::DiySave($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* Diy装修导入
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function DiyUpload()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::DiyUpload($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* Diy装修导出
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function DiyDownload()
|
||||
{
|
||||
$ret = DiyApiService::DiyDownload($this->data_request);
|
||||
if($ret['code'] != 0)
|
||||
{
|
||||
return MyView('public/tips_error', ['msg'=>$ret['msg']]);
|
||||
}
|
||||
return ApiService::ApiDataReturn($ret);
|
||||
}
|
||||
|
||||
/**
|
||||
* diy模板安装
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2022-04-19
|
||||
* @desc description
|
||||
*/
|
||||
public function DiyInstall()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::DiyInstall($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* diy模板市场
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2022-04-19
|
||||
* @desc description
|
||||
*/
|
||||
public function DiyMarket()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::DiyMarket($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 底部菜单保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function AppTabbarSave()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::AppTabbarSave($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 底部菜单数据
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function AppTabbarData()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::AppTabbarData($this->data_request));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 商品初始化
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function GoodsInit()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::GoodsInit($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品指定数据
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function GoodsAppointData()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::GoodsAppointData($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品自动数据
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function GoodsAutoData()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::GoodsAutoData($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章指定数据
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function ArticleAppointData()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::ArticleAppointData($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 文章自动数据
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function ArticleAutoData()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::ArticleAutoData($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户头部数据
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function UserHeadData()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::UserHeadData($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 自定义初始化
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-18
|
||||
* @desc description
|
||||
*/
|
||||
public function CustomInit()
|
||||
{
|
||||
return ApiService::ApiDataReturn(DiyApiService::CustomInit($this->data_request));
|
||||
}
|
||||
}
|
||||
?>
|
82
app/admin/controller/Errorlog.php
Normal file
82
app/admin/controller/Errorlog.php
Normal file
@ -0,0 +1,82 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ShopXO 国内领先企业级B2C免费开源电商系统
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://opensource.org/licenses/mit-license.php )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Devil
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\admin\controller\Base;
|
||||
use app\service\ApiService;
|
||||
use app\service\ErrorLogService;
|
||||
|
||||
/**
|
||||
* 错误日志管理
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-01T21:51:08+0800
|
||||
*/
|
||||
class ErrorLog extends Base
|
||||
{
|
||||
/**
|
||||
* 列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2022-08-01
|
||||
* @desc description
|
||||
*/
|
||||
public function Index()
|
||||
{
|
||||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 详情
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2022-08-01
|
||||
* @desc description
|
||||
*/
|
||||
public function Detail()
|
||||
{
|
||||
return MyView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-07-28
|
||||
* @desc description
|
||||
*/
|
||||
public function Delete()
|
||||
{
|
||||
$params = $this->data_request;
|
||||
$params['admin'] = $this->admin;
|
||||
return ApiService::ApiDataReturn(ErrorLogService::ErrorLogDelete($params));
|
||||
}
|
||||
|
||||
/**
|
||||
* 全部删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2021-11-18
|
||||
* @desc description
|
||||
*/
|
||||
public function AllDelete()
|
||||
{
|
||||
$params = $this->data_request;
|
||||
$params['admin'] = $this->admin;
|
||||
return ApiService::ApiDataReturn(ErrorLogService::ErrorLogAllDelete($params));
|
||||
}
|
||||
}
|
||||
?>
|
@ -58,8 +58,8 @@ class Index extends Common
|
||||
*/
|
||||
public function Index()
|
||||
{
|
||||
// 默认进入页面初始化
|
||||
$to_url = MyUrl('admin/index/init');
|
||||
// 默认地址
|
||||
$to_url = '';
|
||||
|
||||
// 是否指定页面地址
|
||||
if(!empty($this->data_request['to_url']))
|
||||
|
@ -12,7 +12,7 @@ namespace app\admin\controller;
|
||||
|
||||
use app\admin\controller\Base;
|
||||
use app\service\ApiService;
|
||||
use app\service\PluginsUpgradeService;
|
||||
use app\service\PackageUpgradeService;
|
||||
|
||||
/**
|
||||
* 软件包更新
|
||||
@ -33,7 +33,7 @@ class Packageupgrade extends Base
|
||||
*/
|
||||
public function Upgrade()
|
||||
{
|
||||
return ApiService::ApiDataReturn(PluginsUpgradeService::Run($this->data_request));
|
||||
return ApiService::ApiDataReturn(PackageUpgradeService::Run($this->data_request));
|
||||
}
|
||||
}
|
||||
?>
|
@ -52,38 +52,45 @@ class Payment extends Base
|
||||
*/
|
||||
public function Index()
|
||||
{
|
||||
// 插件列表
|
||||
$payment = PaymentService::PluginsPaymentList($this->nav_type);
|
||||
|
||||
// 插件更新信息
|
||||
$upgrade = PaymentService::PaymentUpgradeInfo($payment['data']);
|
||||
// 是否未绑定商店账号
|
||||
if($upgrade['code'] == -300)
|
||||
{
|
||||
return $this->NotBindStoreAccountTips($upgrade['msg']);
|
||||
}
|
||||
|
||||
// 模板数据
|
||||
$assign = [
|
||||
// 导航类型
|
||||
'nav_type' => $this->nav_type,
|
||||
// 支付插件列表
|
||||
'data_list' => empty($payment['data']) ? [] : $payment['data'],
|
||||
// 不能删除的支付方式
|
||||
'cannot_deleted_list' => PaymentService::$cannot_deleted_list,
|
||||
// 管理导航
|
||||
'nav_data' => MyLang('payment.base_nav_list'),
|
||||
// 适用平台
|
||||
'common_platform_type' => MyConst('common_platform_type'),
|
||||
// 应用商店
|
||||
'store_payment_url' => StoreService::StorePaymentUrl(),
|
||||
// 支付插件更新信息
|
||||
'upgrade_info' => $upgrade['data'],
|
||||
'store_payment_url' => StoreService::StorePaymentUrl(),
|
||||
];
|
||||
|
||||
// 数据赋值
|
||||
// 页面类型
|
||||
$view_type = empty($this->data_request['view_type']) ? 'index' : $this->data_request['view_type'];
|
||||
if($view_type == 'index')
|
||||
{
|
||||
// 插件列表
|
||||
$payment = PaymentService::PluginsPaymentList($this->nav_type);
|
||||
|
||||
// 插件更新信息
|
||||
$upgrade = PaymentService::PaymentUpgradeInfo($payment['data']);
|
||||
// 是否未绑定商店账号
|
||||
if($upgrade['code'] == -300)
|
||||
{
|
||||
return $this->NotBindStoreAccountTips($upgrade['msg']);
|
||||
}
|
||||
|
||||
// 模板数据
|
||||
$assign = array_merge($assign, [
|
||||
// 导航类型
|
||||
'nav_type' => $this->nav_type,
|
||||
// 支付插件列表
|
||||
'data_list' => empty($payment['data']) ? [] : $payment['data'],
|
||||
// 不能删除的支付方式
|
||||
'cannot_deleted_list' => PaymentService::$cannot_deleted_list,
|
||||
// 管理导航
|
||||
'nav_data' => MyLang('payment.base_nav_list'),
|
||||
// 适用平台
|
||||
'common_platform_type' => MyConst('common_platform_type'),
|
||||
// 支付插件更新信息
|
||||
'upgrade_info' => $upgrade['data'],
|
||||
]);
|
||||
}
|
||||
MyViewAssign($assign);
|
||||
return MyView();
|
||||
return MyView($view_type);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -197,5 +204,23 @@ class Payment extends Base
|
||||
{
|
||||
return ApiService::ApiDataReturn(PaymentService::Upload($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 应用市场
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2022-04-19
|
||||
* @desc description
|
||||
*/
|
||||
public function Market()
|
||||
{
|
||||
$ret = PaymentService::PaymentMarket($this->data_request);
|
||||
if($ret['code'] == 0 && isset($ret['data']['data_list']))
|
||||
{
|
||||
$ret['data']['data_list'] = MyView('public/market/list', ['data_list'=>$ret['data']['data_list']]);
|
||||
}
|
||||
return ApiService::ApiDataReturn($ret);
|
||||
}
|
||||
}
|
||||
?>
|
@ -16,7 +16,7 @@ use app\service\StoreService;
|
||||
use app\service\PluginsAdminService;
|
||||
use app\service\ResourcesService;
|
||||
use app\service\PluginsService;
|
||||
use app\service\PluginsUpgradeService;
|
||||
use app\service\PackageUpgradeService;
|
||||
use app\service\PluginsCategoryService;
|
||||
|
||||
/**
|
||||
@ -28,24 +28,6 @@ use app\service\PluginsCategoryService;
|
||||
*/
|
||||
class Pluginsadmin extends Base
|
||||
{
|
||||
private $view_type;
|
||||
|
||||
/**
|
||||
* 构造方法
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-03T12:39:08+0800
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// 调用父类前置方法
|
||||
parent::__construct();
|
||||
|
||||
// 小导航
|
||||
$this->view_type = empty($this->data_request['view_type']) ? 'index' : $this->data_request['view_type'];
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表
|
||||
* @author Devil
|
||||
@ -57,16 +39,13 @@ class Pluginsadmin extends Base
|
||||
{
|
||||
// 模板数据
|
||||
$assign = [
|
||||
// 导航参数
|
||||
'view_type' => $this->view_type,
|
||||
// 管理导航
|
||||
'nav_data' => MyLang('pluginsadmin.base_nav_list'),
|
||||
// 应用商店地址
|
||||
'store_url' => StoreService::StoreUrl(),
|
||||
];
|
||||
|
||||
// 页面类型
|
||||
if($this->view_type == 'index')
|
||||
$view_type = empty($this->data_request['view_type']) ? 'index' : $this->data_request['view_type'];
|
||||
if($view_type == 'index')
|
||||
{
|
||||
// 插件列表
|
||||
$ret = PluginsAdminService::PluginsList(['is_power'=>true]);
|
||||
@ -80,10 +59,8 @@ class Pluginsadmin extends Base
|
||||
$categosy = PluginsCategoryService::PluginsCategoryList();
|
||||
$assign['plugins_categosy_list'] = $categosy['data'];
|
||||
}
|
||||
|
||||
// 数据赋值
|
||||
MyViewAssign($assign);
|
||||
return MyView($this->view_type);
|
||||
return MyView($view_type);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -310,7 +287,25 @@ class Pluginsadmin extends Base
|
||||
*/
|
||||
public function Upgrade()
|
||||
{
|
||||
return ApiService::ApiDataReturn(PluginsUpgradeService::Run($this->data_request));
|
||||
return ApiService::ApiDataReturn(PackageUpgradeService::Run($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 应用市场
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2022-04-19
|
||||
* @desc description
|
||||
*/
|
||||
public function Market()
|
||||
{
|
||||
$ret = PluginsAdminService::PluginsAdminMarket($this->data_request);
|
||||
if($ret['code'] == 0 && isset($ret['data']['data_list']))
|
||||
{
|
||||
$ret['data']['data_list'] = MyView('public/market/list', ['data_list'=>$ret['data']['data_list']]);
|
||||
}
|
||||
return ApiService::ApiDataReturn($ret);
|
||||
}
|
||||
}
|
||||
?>
|
@ -159,45 +159,47 @@ class Site extends Base
|
||||
// 模板数据
|
||||
$assign = [
|
||||
// 主/子导航
|
||||
'nav_type' => $this->nav_type,
|
||||
'view_type' => $this->view_type,
|
||||
'nav_type' => $this->nav_type,
|
||||
'view_type' => $this->view_type,
|
||||
// 时区
|
||||
'common_site_timezone_list' => MyLang('common_site_timezone_list'),
|
||||
'common_site_timezone_list' => MyLang('common_site_timezone_list'),
|
||||
// 平台
|
||||
'common_platform_type' => MyConst('common_platform_type'),
|
||||
'common_platform_type' => MyConst('common_platform_type'),
|
||||
// 关闭开启
|
||||
'common_close_open_list' => MyConst('common_close_open_list'),
|
||||
'common_close_open_list' => MyConst('common_close_open_list'),
|
||||
// 登录方式
|
||||
'common_login_type_list' => MyConst('common_login_type_list'),
|
||||
'common_login_type_list' => MyConst('common_login_type_list'),
|
||||
// 用户注册类型列表
|
||||
'common_user_reg_type_list' => MyConst('common_user_reg_type_list'),
|
||||
'common_user_reg_type_list' => MyConst('common_user_reg_type_list'),
|
||||
// 图片验证码类型
|
||||
'common_site_images_verify_rand_type_list' => MyConst('common_site_images_verify_rand_type_list'),
|
||||
// 图片验证码规则
|
||||
'common_site_images_verify_rules_list' => MyConst('common_site_images_verify_rules_list'),
|
||||
'common_site_images_verify_rules_list' => MyConst('common_site_images_verify_rules_list'),
|
||||
// 热门搜索关键字
|
||||
'common_search_keywords_type_list' => MyConst('common_search_keywords_type_list'),
|
||||
'common_search_keywords_type_list' => MyConst('common_search_keywords_type_list'),
|
||||
// 是否
|
||||
'common_is_text_list' => MyConst('common_is_text_list'),
|
||||
'common_is_text_list' => MyConst('common_is_text_list'),
|
||||
// 站点类型
|
||||
'common_site_type_list' => MyConst('common_site_type_list'),
|
||||
'common_site_type_list' => MyConst('common_site_type_list'),
|
||||
// 扣除库存规则
|
||||
'common_deduction_inventory_rules_list' => MyConst('common_deduction_inventory_rules_list'),
|
||||
'common_deduction_inventory_rules_list' => MyConst('common_deduction_inventory_rules_list'),
|
||||
// 增加销量规则
|
||||
'common_sales_count_inc_rules_list' => MyConst('common_sales_count_inc_rules_list'),
|
||||
'common_sales_count_inc_rules_list' => MyConst('common_sales_count_inc_rules_list'),
|
||||
// 首页商品排序规则
|
||||
'common_goods_order_by_type_list' => MyConst('common_goods_order_by_type_list'),
|
||||
'common_data_order_by_rule_list' => MyConst('common_data_order_by_rule_list'),
|
||||
'common_goods_order_by_type_list' => MyConst('common_goods_order_by_type_list'),
|
||||
'common_data_order_by_rule_list' => MyConst('common_data_order_by_rule_list'),
|
||||
// 首页楼层数据类型
|
||||
'common_site_floor_data_type_list' => MyConst('common_site_floor_data_type_list'),
|
||||
'common_site_floor_data_type_list' => MyConst('common_site_floor_data_type_list'),
|
||||
// 搜索参数类型
|
||||
'common_goods_parameters_type_list' => MyConst('common_goods_parameters_type_list'),
|
||||
'common_goods_parameters_type_list' => MyConst('common_goods_parameters_type_list'),
|
||||
// 多语言
|
||||
'common_multilingual_list' => MyConst('common_multilingual_list'),
|
||||
'common_multilingual_list' => MyConst('common_multilingual_list'),
|
||||
// 商品分类
|
||||
'common_show_goods_category_level_list' => MyConst('common_show_goods_category_level_list'),
|
||||
'common_show_goods_category_level_list' => MyConst('common_show_goods_category_level_list'),
|
||||
// 主导航
|
||||
'base_nav_list' => MyLang('site.base_nav_list'),
|
||||
'base_nav_list' => MyLang('site.base_nav_list'),
|
||||
// 网站设置导航
|
||||
'siteset_nav_list' => MyLang('site.siteset_nav_list'),
|
||||
'siteset_nav_list' => MyLang('site.siteset_nav_list'),
|
||||
];
|
||||
return $assign;
|
||||
}
|
||||
|
@ -24,101 +24,56 @@ use app\service\StoreService;
|
||||
*/
|
||||
class ThemeAdmin extends Base
|
||||
{
|
||||
private $view_type;
|
||||
|
||||
/**
|
||||
* 构造方法
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-03T12:39:08+0800
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// 调用父类前置方法
|
||||
parent::__construct();
|
||||
|
||||
// 小导航
|
||||
$this->view_type = empty($this->data_request['view_type']) ? 'index' : $this->data_request['view_type'];
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* 列表
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-06T21:31:53+0800
|
||||
*/
|
||||
public function Index()
|
||||
{
|
||||
// 获取主题列表
|
||||
$data_list = ThemeAdminService::ThemeAdminList();
|
||||
|
||||
// 插件更新信息
|
||||
$upgrade = ThemeAdminService::ThemeAdminUpgradeInfo($data_list);
|
||||
// 是否未绑定商店账号
|
||||
if($upgrade['code'] == -300)
|
||||
{
|
||||
return $this->NotBindStoreAccountTips($upgrade['msg']);
|
||||
}
|
||||
|
||||
// 模板数据
|
||||
MyViewAssign([
|
||||
// 导航参数
|
||||
'view_type' => $this->view_type,
|
||||
// 基础导航
|
||||
'base_nav' => MyLang('theme.base_nav_list'),
|
||||
// 默认主题
|
||||
'theme' => ThemeAdminService::DefaultTheme(),
|
||||
// 主题列表
|
||||
'data_list' => $data_list,
|
||||
// 主题数据管理url
|
||||
'admin_url_data' => ThemeAdminService::ThemeAdminDataUrl(),
|
||||
// 插件更新信息
|
||||
'upgrade_info' => $upgrade['data'],
|
||||
public function Index()
|
||||
{
|
||||
// 模板数据
|
||||
$assign = [
|
||||
// 应用商店
|
||||
'store_theme_url' => StoreService::StoreThemeUrl(),
|
||||
]);
|
||||
return MyView($this->view_type);
|
||||
}
|
||||
];
|
||||
// 页面类型
|
||||
$view_type = empty($this->data_request['view_type']) ? 'index' : $this->data_request['view_type'];
|
||||
if($view_type == 'index')
|
||||
{
|
||||
// 获取主题列表
|
||||
$data_list = ThemeAdminService::ThemeAdminList();
|
||||
|
||||
/**
|
||||
* 切换保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2018-12-19T00:58:47+0800
|
||||
*/
|
||||
public function Save()
|
||||
{
|
||||
return ApiService::ApiDataReturn(ThemeAdminService::ThemeAdminSwitch($this->data_request));
|
||||
}
|
||||
// 更新信息
|
||||
$upgrade = ThemeAdminService::ThemeAdminUpgradeInfo($data_list);
|
||||
// 是否未绑定商店账号
|
||||
if($upgrade['code'] == -300)
|
||||
{
|
||||
return $this->NotBindStoreAccountTips($upgrade['msg']);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-09T21:13:47+0800
|
||||
*/
|
||||
public function Delete()
|
||||
{
|
||||
return ApiService::ApiDataReturn(ThemeAdminService::ThemeAdminDelete($this->data_request));
|
||||
}
|
||||
// 模板数据
|
||||
$assign = array_merge($assign, [
|
||||
// 基础导航
|
||||
'base_nav' => MyLang('theme.base_nav_list'),
|
||||
// 默认主题
|
||||
'theme' => ThemeAdminService::DefaultTheme(),
|
||||
// 主题列表
|
||||
'data_list' => $data_list,
|
||||
// 主题数据管理url
|
||||
'admin_url_data' => ThemeAdminService::ThemeAdminDataUrl(),
|
||||
// 插件更新信息
|
||||
'upgrade_info' => $upgrade['data'],
|
||||
// 应用商店
|
||||
'store_theme_url' => StoreService::StoreThemeUrl(),
|
||||
]);
|
||||
}
|
||||
MyViewAssign($assign);
|
||||
return MyView($view_type);
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传安装
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2017-05-10T16:27:09+0800
|
||||
*/
|
||||
public function Upload()
|
||||
{
|
||||
return ApiService::ApiDataReturn(ThemeAdminService::ThemeAdminUpload($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* 打包下载
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
@ -135,5 +90,59 @@ class ThemeAdmin extends Base
|
||||
return MyView('public/tips_error');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2018-12-19T00:58:47+0800
|
||||
*/
|
||||
public function Save()
|
||||
{
|
||||
return ApiService::ApiDataReturn(ThemeAdminService::ThemeAdminSwitch($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-09T21:13:47+0800
|
||||
*/
|
||||
public function Delete()
|
||||
{
|
||||
return ApiService::ApiDataReturn(ThemeAdminService::ThemeAdminDelete($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传安装
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2017-05-10T16:27:09+0800
|
||||
*/
|
||||
public function Upload()
|
||||
{
|
||||
return ApiService::ApiDataReturn(ThemeAdminService::ThemeAdminUpload($this->data_request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 模板市场
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2022-04-19
|
||||
* @desc description
|
||||
*/
|
||||
public function Market()
|
||||
{
|
||||
$ret = ThemeAdminService::ThemeAdminMarket($this->data_request);
|
||||
if($ret['code'] == 0 && isset($ret['data']['data_list']))
|
||||
{
|
||||
$ret['data']['data_list'] = MyView('public/market/list', ['data_list'=>$ret['data']['data_list']]);
|
||||
}
|
||||
return ApiService::ApiDataReturn($ret);
|
||||
}
|
||||
}
|
||||
?>
|
@ -77,12 +77,13 @@ class Article
|
||||
'images_height' => 25,
|
||||
],
|
||||
[
|
||||
'label' => $lang['info'],
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'article/module/info',
|
||||
'grid_size' => 'sm',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'label' => $lang['info'],
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'article/module/info',
|
||||
'grid_size' => 'sm',
|
||||
'is_sort' => 1,
|
||||
'params_where_name' => 'keywords',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'form_name' => 'title',
|
||||
'where_type' => 'like',
|
||||
@ -102,12 +103,13 @@ class Article
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['article_category_name'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'article_category_name',
|
||||
'is_sort' => 1,
|
||||
'width' => 140,
|
||||
'search_config' => [
|
||||
'label' => $lang['article_category_name'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'article_category_name',
|
||||
'is_sort' => 1,
|
||||
'width' => 140,
|
||||
'params_where_name' => 'category_ids',
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'form_name' => 'article_category_id',
|
||||
'where_type' => 'in',
|
||||
@ -118,15 +120,16 @@ class Article
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['is_enable'],
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_enable',
|
||||
'post_url' => MyUrl('admin/article/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'width' => 130,
|
||||
'search_config' => [
|
||||
'label' => $lang['is_enable'],
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_enable',
|
||||
'post_url' => MyUrl('admin/article/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'width' => 130,
|
||||
'params_where_name' => 'is_enable',
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'where_type' => 'in',
|
||||
'data' => MyConst('common_is_text_list'),
|
||||
|
219
app/admin/form/Attachment.php
Normal file
219
app/admin/form/Attachment.php
Normal file
@ -0,0 +1,219 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ShopXO 国内领先企业级B2C免费开源电商系统
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://opensource.org/licenses/mit-license.php )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Devil
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\admin\form;
|
||||
|
||||
use app\service\AttachmentCategoryService;
|
||||
|
||||
/**
|
||||
* 附件动态表格
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-06-16
|
||||
* @desc description
|
||||
*/
|
||||
class Attachment
|
||||
{
|
||||
// 基础条件
|
||||
public $condition_base = [];
|
||||
|
||||
// 附件分类
|
||||
public $category_list;
|
||||
|
||||
/**
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-06-29
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public function __construct($params = [])
|
||||
{
|
||||
// 附件分类
|
||||
$res = AttachmentCategoryService::AttachmentCategoryList(['field'=>'id,name']);
|
||||
$this->category_list = empty($res) ? [] : array_column($res, 'name', 'id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 入口
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-06-16
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public function Run($params = [])
|
||||
{
|
||||
$lang = MyLang('attachment.form_table');
|
||||
return [
|
||||
// 基础配置
|
||||
'base' => [
|
||||
'key_field' => 'id',
|
||||
'is_search' => 1,
|
||||
'is_delete' => 1,
|
||||
'is_middle' => 0,
|
||||
],
|
||||
// 表单配置
|
||||
'form' => [
|
||||
[
|
||||
'view_type' => 'checkbox',
|
||||
'is_checked' => 0,
|
||||
'checked_text' => MyLang('reverse_select_title'),
|
||||
'not_checked_text' => MyLang('select_all_title'),
|
||||
'align' => 'center',
|
||||
'width' => 80,
|
||||
],
|
||||
[
|
||||
'label' => $lang['category_name'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'category_name',
|
||||
'is_sort' => 1,
|
||||
'width' => 160,
|
||||
'params_where_name' => 'category_id',
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'form_name' => 'category_id',
|
||||
'where_type' => 'in',
|
||||
'data' => $this->category_list,
|
||||
'is_multiple' => 1,
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['type_name'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'type_name',
|
||||
'is_sort' => 1,
|
||||
'width' => 120,
|
||||
'params_where_name' => 'type',
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'form_name' => 'type',
|
||||
'where_type' => 'in',
|
||||
'data' => MyConst('common_attachment_type_list'),
|
||||
'data_key' => 'id',
|
||||
'data_name' => 'name',
|
||||
'is_multiple' => 1,
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['info'],
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'attachment/module/info',
|
||||
'width' => 80,
|
||||
],
|
||||
[
|
||||
'label' => $lang['original'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'original',
|
||||
'grid_size' => 'sm',
|
||||
'is_sort' => 1,
|
||||
'params_where_name' => 'keywords',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => 'like',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['title'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'title',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => 'like',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['size'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'size',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'section',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['ext'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'ext',
|
||||
'is_sort' => 1,
|
||||
'width' => 120,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => '=',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['url'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'url',
|
||||
'is_copy' => 1,
|
||||
'is_sort' => 1,
|
||||
'grid_size' => 'xl',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => 'like',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['hash'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'hash',
|
||||
'is_copy' => 1,
|
||||
'is_sort' => 1,
|
||||
'width' => 270,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => '=',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['add_time'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'add_time',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'datetime',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => MyLang('operate_title'),
|
||||
'view_type' => 'operate',
|
||||
'view_key' => 'attachment/module/operate',
|
||||
'align' => 'center',
|
||||
'fixed' => 'right',
|
||||
],
|
||||
],
|
||||
// 数据配置
|
||||
'data' => [
|
||||
'table_name' => 'Attachment',
|
||||
'is_page' => 1,
|
||||
'is_handle_annex_size_unit' => 1,
|
||||
'is_handle_annex_field' => 1,
|
||||
'handle_annex_fields' => ['url'],
|
||||
'is_handle_time_field' => 1,
|
||||
'is_fixed_name_field' => 1,
|
||||
'fixed_name_data' => [
|
||||
'category_id' => [
|
||||
'data' => $this->category_list,
|
||||
'field' => 'category_name',
|
||||
],
|
||||
'type' => [
|
||||
'data' => MyConst('common_attachment_type_list'),
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
?>
|
@ -61,12 +61,25 @@ class Brand
|
||||
'width' => 80,
|
||||
],
|
||||
[
|
||||
'label' => $lang['name'],
|
||||
'label' => $lang['id'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'name',
|
||||
'view_key' => 'id',
|
||||
'width' => 110,
|
||||
'is_copy' => 1,
|
||||
'is_sort' => 1,
|
||||
'width' => 150,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => '=',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['name'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'name',
|
||||
'is_sort' => 1,
|
||||
'width' => 150,
|
||||
'params_where_name' => 'keywords',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => 'like',
|
||||
],
|
||||
@ -101,11 +114,12 @@ class Brand
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['brand_category_text'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'brand_category_text',
|
||||
'width' => 140,
|
||||
'search_config' => [
|
||||
'label' => $lang['brand_category_text'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'brand_category_text',
|
||||
'width' => 140,
|
||||
'params_where_name' => 'category_ids',
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'form_name' => 'id',
|
||||
'where_type' => 'in',
|
||||
@ -117,15 +131,16 @@ class Brand
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['is_enable'],
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_enable',
|
||||
'post_url' => MyUrl('admin/brand/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'width' => 130,
|
||||
'search_config' => [
|
||||
'label' => $lang['is_enable'],
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_enable',
|
||||
'post_url' => MyUrl('admin/brand/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'width' => 130,
|
||||
'params_where_name' => 'is_enable',
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'where_type' => 'in',
|
||||
'data' => MyConst('common_is_text_list'),
|
||||
|
@ -56,27 +56,46 @@ class CustomView
|
||||
'width' => 80,
|
||||
],
|
||||
[
|
||||
'label' => $lang['info'],
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'customview/module/info',
|
||||
'grid_size' => 'sm',
|
||||
'label' => $lang['id'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'id',
|
||||
'width' => 110,
|
||||
'is_copy' => 1,
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'form_name' => 'title',
|
||||
'where_type' => '=',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['logo'],
|
||||
'view_type' => 'images',
|
||||
'view_key' => 'logo',
|
||||
'images_width' => 30,
|
||||
'width' => 80,
|
||||
],
|
||||
[
|
||||
'label' => $lang['name'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'name',
|
||||
'is_sort' => 1,
|
||||
'params_where_name' => 'keywords',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => 'like',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['is_enable'],
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_enable',
|
||||
'post_url' => MyUrl('admin/customview/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'width' => 130,
|
||||
'search_config' => [
|
||||
'label' => $lang['is_enable'],
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_enable',
|
||||
'post_url' => MyUrl('admin/customview/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'width' => 130,
|
||||
'params_where_name' => 'is_enable',
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'where_type' => 'in',
|
||||
'data' => MyConst('common_is_text_list'),
|
||||
|
@ -58,7 +58,8 @@ class Design
|
||||
'label' => $lang['id'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'id',
|
||||
'width' => 105,
|
||||
'width' => 110,
|
||||
'is_copy' => 1,
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
@ -66,16 +67,21 @@ class Design
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['info'],
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'design/module/info',
|
||||
'grid_size' => 'sm',
|
||||
'is_sort' => 1,
|
||||
'sort_field' => 'name',
|
||||
'label' => $lang['logo'],
|
||||
'view_type' => 'images',
|
||||
'view_key' => 'logo',
|
||||
'images_width' => 30,
|
||||
'width' => 80,
|
||||
],
|
||||
[
|
||||
'label' => $lang['name'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'name',
|
||||
'is_sort' => 1,
|
||||
'params_where_name' => 'keywords',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => 'like',
|
||||
'placeholder' => $lang['info_placeholder'],
|
||||
],
|
||||
],
|
||||
[
|
||||
@ -89,15 +95,16 @@ class Design
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['is_enable'],
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_enable',
|
||||
'post_url' => MyUrl('admin/design/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'width' => 130,
|
||||
'search_config' => [
|
||||
'label' => $lang['is_enable'],
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_enable',
|
||||
'post_url' => MyUrl('admin/design/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'width' => 130,
|
||||
'params_where_name' => 'is_enable',
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'where_type' => 'in',
|
||||
'data' => MyConst('common_is_text_list'),
|
||||
|
184
app/admin/form/Diy.php
Normal file
184
app/admin/form/Diy.php
Normal file
@ -0,0 +1,184 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ShopXO 国内领先企业级B2C免费开源电商系统
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://opensource.org/licenses/mit-license.php )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Devil
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\admin\form;
|
||||
|
||||
/**
|
||||
* DIY装修动态表格-管理
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-05-16
|
||||
* @desc description
|
||||
*/
|
||||
class Diy
|
||||
{
|
||||
// 基础条件
|
||||
public $condition_base = [];
|
||||
|
||||
/**
|
||||
* 入口
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-05-16
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public function Run($params = [])
|
||||
{
|
||||
$lang = MyLang('diy.form_table');
|
||||
return [
|
||||
// 基础配置
|
||||
'base' => [
|
||||
'key_field' => 'id',
|
||||
'status_field' => 'is_enable',
|
||||
'is_search' => 1,
|
||||
'is_delete' => 1,
|
||||
'is_middle' => 0,
|
||||
],
|
||||
// 表单配置
|
||||
'form' => [
|
||||
[
|
||||
'view_type' => 'checkbox',
|
||||
'is_checked' => 0,
|
||||
'checked_text' => MyLang('reverse_select_title'),
|
||||
'not_checked_text' => MyLang('select_all_title'),
|
||||
'align' => 'center',
|
||||
'width' => 80,
|
||||
],
|
||||
[
|
||||
'label' => $lang['id'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'id',
|
||||
'width' => 110,
|
||||
'is_copy' => 1,
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => '=',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['md5_key'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'md5_key',
|
||||
'width' => 300,
|
||||
'is_copy' => 1,
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => '=',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['logo'],
|
||||
'view_type' => 'images',
|
||||
'view_key' => 'logo',
|
||||
'images_width' => 30,
|
||||
'width' => 80,
|
||||
],
|
||||
[
|
||||
'label' => $lang['name'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'name',
|
||||
'is_sort' => 1,
|
||||
'params_where_name' => 'keywords',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => 'like',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['describe'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'describe',
|
||||
'text_truncate' => 2,
|
||||
'grid_size' => 'lg',
|
||||
'is_popover' => 1,
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => 'like',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['is_enable'],
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_enable',
|
||||
'post_url' => MyUrl('admin/diy/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'width' => 130,
|
||||
'params_where_name' => 'is_enable',
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'where_type' => 'in',
|
||||
'data' => MyConst('common_is_text_list'),
|
||||
'data_key' => 'id',
|
||||
'data_name' => 'name',
|
||||
'is_multiple' => 1,
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['access_count'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'access_count',
|
||||
'is_sort' => 1,
|
||||
'width' => 160,
|
||||
'search_config' => [
|
||||
'form_type' => 'section',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['add_time'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'add_time',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'datetime',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['upd_time'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'upd_time',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'datetime',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => MyLang('operate_title'),
|
||||
'view_type' => 'operate',
|
||||
'view_key' => 'diy/module/operate',
|
||||
'align' => 'center',
|
||||
'fixed' => 'right',
|
||||
],
|
||||
],
|
||||
// 数据配置
|
||||
'data' => [
|
||||
'table_name' => 'Diy',
|
||||
'data_handle' => 'DiyService::DiyListHandle',
|
||||
'detail_action' => ['detail', 'saveinfo', 'preview'],
|
||||
'is_page' => 1,
|
||||
'is_handle_annex_field' => 1,
|
||||
'data_params' => [
|
||||
'is_config_handle' => 1,
|
||||
],
|
||||
'detail_params' => [
|
||||
'is_config_data_handle' => 1
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
?>
|
@ -188,6 +188,7 @@ class EmailLog
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'section',
|
||||
'is_point' => 1,
|
||||
],
|
||||
],
|
||||
[
|
||||
|
184
app/admin/form/Errorlog.php
Normal file
184
app/admin/form/Errorlog.php
Normal file
@ -0,0 +1,184 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ShopXO 国内领先企业级B2C免费开源电商系统
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://opensource.org/licenses/mit-license.php )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Devil
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\admin\form;
|
||||
|
||||
/**
|
||||
* 错误日志动态表格
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-06-26
|
||||
* @desc description
|
||||
*/
|
||||
class ErrorLog
|
||||
{
|
||||
// 基础条件
|
||||
public $condition_base = [];
|
||||
|
||||
/**
|
||||
* 入口
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-06-26
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public function Run($params = [])
|
||||
{
|
||||
$lang = MyLang('errorlog.form_table');
|
||||
return [
|
||||
// 基础配置
|
||||
'base' => [
|
||||
'key_field' => 'id',
|
||||
'is_search' => 1,
|
||||
'is_delete' => 1,
|
||||
'is_middle' => 0,
|
||||
],
|
||||
// 表单配置
|
||||
'form' => [
|
||||
[
|
||||
'view_type' => 'checkbox',
|
||||
'is_checked' => 0,
|
||||
'checked_text' => MyLang('reverse_select_title'),
|
||||
'not_checked_text' => MyLang('select_all_title'),
|
||||
'align' => 'center',
|
||||
'width' => 80,
|
||||
],
|
||||
[
|
||||
'label' => $lang['message'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'message',
|
||||
'text_truncate' => 2,
|
||||
'is_popover' => 1,
|
||||
'is_sort' => 1,
|
||||
'grid_size' => 'lg',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => 'like',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['file'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'file',
|
||||
'text_truncate' => 2,
|
||||
'is_popover' => 1,
|
||||
'is_sort' => 1,
|
||||
'grid_size' => 'lg',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => 'like',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['line'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'line',
|
||||
'is_sort' => 1,
|
||||
'width' => 150,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['code'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'code',
|
||||
'is_sort' => 1,
|
||||
'width' => 130,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['ip'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'ip',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['uri'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'uri',
|
||||
'text_truncate' => 2,
|
||||
'is_popover' => 1,
|
||||
'is_sort' => 1,
|
||||
'grid_size' => 'lg',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => 'like',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['request_params'],
|
||||
'view_type' => 'field',
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'errorlog/module/request_params',
|
||||
'align' => 'left',
|
||||
'grid_size' => 'lg',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'form_name' => 'request_params',
|
||||
'where_type' => 'like',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['memory_use'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'memory_use',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'where_type' => 'like',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['tsc'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'tsc',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'section',
|
||||
'is_point' => 1,
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['add_time'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'add_time',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'datetime',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => MyLang('operate_title'),
|
||||
'view_type' => 'operate',
|
||||
'view_key' => 'errorlog/module/operate',
|
||||
'align' => 'center',
|
||||
'fixed' => 'right',
|
||||
'width' => 120,
|
||||
],
|
||||
],
|
||||
// 数据配置
|
||||
'data' => [
|
||||
'table_name' => 'ErrorLog',
|
||||
'is_page' => 1,
|
||||
'is_handle_time_field' => 1,
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
?>
|
@ -74,13 +74,14 @@ class Goods
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['info'],
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'goods/module/info',
|
||||
'grid_size' => 'lg',
|
||||
'is_sort' => 1,
|
||||
'sort_field' => 'title',
|
||||
'search_config' => [
|
||||
'label' => $lang['info'],
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'goods/module/info',
|
||||
'grid_size' => 'lg',
|
||||
'is_sort' => 1,
|
||||
'sort_field' => 'title',
|
||||
'params_where_name' => 'keywords',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
'form_name' => 'id',
|
||||
'where_type_custom' => 'in',
|
||||
@ -89,12 +90,13 @@ class Goods
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['category_text'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'category_text',
|
||||
'search_config' => [
|
||||
'label' => $lang['category_text'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'category_text',
|
||||
'params_where_name' => 'category_ids',
|
||||
'search_config' => [
|
||||
'form_type' => 'module',
|
||||
'template' => 'lib/module/goods_category',
|
||||
'template' => 'lib/module/multi_level_category',
|
||||
'form_name' => 'id',
|
||||
'where_type' => 'in',
|
||||
'where_value_custom' => 'WhereValueGoodsCategory',
|
||||
@ -102,11 +104,13 @@ class Goods
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['brand_name'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'brand_name',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'label' => $lang['brand_name'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'brand_name',
|
||||
'params_where_name' => 'brand_ids',
|
||||
'is_sort' => 1,
|
||||
'width' => 140,
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'form_name' => 'brand_id',
|
||||
'where_type' => 'in',
|
||||
@ -150,14 +154,16 @@ class Goods
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => $lang['is_shelves'],
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_shelves',
|
||||
'post_url' => MyUrl('admin/goods/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'label' => $lang['is_shelves'],
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_shelves',
|
||||
'post_url' => MyUrl('admin/goods/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'width' => 130,
|
||||
'params_where_name' => 'is_shelves',
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'where_type' => 'in',
|
||||
'data' => MyConst('common_is_shelves_list'),
|
||||
@ -173,6 +179,7 @@ class Goods
|
||||
'post_url' => MyUrl('admin/goods/statusupdate'),
|
||||
'align' => 'center',
|
||||
'is_sort' => 1,
|
||||
'width' => 130,
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'where_type' => 'in',
|
||||
@ -189,6 +196,7 @@ class Goods
|
||||
'view_data_key' => 'name',
|
||||
'view_data' => MyConst('common_site_type_list'),
|
||||
'is_sort' => 1,
|
||||
'width' => 140,
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'where_type' => 'in',
|
||||
|
@ -51,8 +51,11 @@ class Payment
|
||||
],
|
||||
[
|
||||
'label' => $lang['logo'],
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'payment/module/logo',
|
||||
'view_type' => 'images',
|
||||
'view_key' => 'logo',
|
||||
'images_width' => 40,
|
||||
'images_height' => 40,
|
||||
'width' => 80,
|
||||
],
|
||||
[
|
||||
'label' => $lang['version'],
|
||||
@ -82,14 +85,17 @@ class Payment
|
||||
],
|
||||
[
|
||||
'label' => $lang['enable'],
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'payment/module/enable',
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_enable',
|
||||
'post_url' => MyUrl('admin/payment/statusupdate'),
|
||||
'is_form_su' => 1,
|
||||
'align' => 'center',
|
||||
],
|
||||
[
|
||||
'label' => $lang['open_user'],
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'payment/module/open_user',
|
||||
'view_type' => 'status',
|
||||
'view_key' => 'is_open_user',
|
||||
'post_url' => MyUrl('admin/payment/statusupdate'),
|
||||
'align' => 'center',
|
||||
],
|
||||
[
|
||||
|
@ -188,6 +188,7 @@ class SmsLog
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
'form_type' => 'section',
|
||||
'is_point' => 1,
|
||||
],
|
||||
],
|
||||
[
|
||||
|
@ -61,7 +61,7 @@ class User
|
||||
'label' => $lang['id'],
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'id',
|
||||
'width' => 105,
|
||||
'width' => 110,
|
||||
'is_copy' => 1,
|
||||
'is_sort' => 1,
|
||||
'search_config' => [
|
||||
|
@ -284,6 +284,7 @@ return [
|
||||
'base_nav_title' => '品牌',
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'id' => '品牌ID',
|
||||
'name' => '名稱',
|
||||
'describe' => '描述',
|
||||
'logo' => 'LOGO',
|
||||
@ -336,7 +337,9 @@ return [
|
||||
'save_view_tips' => '請先保存再預覽效果',
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'info' => '標題',
|
||||
'id' => '數據ID',
|
||||
'logo' => 'logo',
|
||||
'name' => '名稱',
|
||||
'is_enable' => '是否啟用',
|
||||
'is_header' => '是否頭部',
|
||||
'is_footer' => '是否尾部',
|
||||
@ -359,8 +362,8 @@ return [
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'id' => '數據ID',
|
||||
'info' => '基礎資訊',
|
||||
'info_placeholder' => '請輸入名稱',
|
||||
'logo' => 'logo',
|
||||
'name' => '名稱',
|
||||
'access_count' => '訪問次數',
|
||||
'is_enable' => '是否啟用',
|
||||
'is_header' => '是否含頭部',
|
||||
@ -887,7 +890,7 @@ return [
|
||||
['name' => '未安裝', 'type' => 1],
|
||||
],
|
||||
'base_nav_title' => '支付方式',
|
||||
'base_upload_payment_name' => '上傳支付',
|
||||
'base_upload_payment_name' => '導入支付',
|
||||
'base_nav_store_payment_name' => '更多主題下載',
|
||||
'upload_top_list_tips' => [
|
||||
[
|
||||
@ -937,7 +940,7 @@ return [
|
||||
['name' => '當前主題', 'type' => 'index'],
|
||||
['name' => '主題安裝', 'type' => 'upload'],
|
||||
],
|
||||
'base_upload_theme_name' => '上傳主題',
|
||||
'base_upload_theme_name' => '導入主題',
|
||||
'base_nav_store_theme_name' => '更多主題下載',
|
||||
'list_author_title' => '作者',
|
||||
'list_version_title' => '適用版本',
|
||||
@ -1081,11 +1084,7 @@ return [
|
||||
],
|
||||
// 基础导航
|
||||
'base_nav_title' => '應用',
|
||||
'base_nav_list' => [
|
||||
['name' => '應用管理', 'type' => 'index'],
|
||||
['name' => '上傳應用', 'type' => 'upload'],
|
||||
],
|
||||
'base_upload_application_name' => '上傳應用',
|
||||
'base_upload_application_name' => '導入應用',
|
||||
'base_nav_more_plugins_download_name' => '更多挿件下載',
|
||||
// 基础页面
|
||||
'base_search_input_placeholder' => '請輸入名稱/描述',
|
||||
@ -1206,6 +1205,52 @@ return [
|
||||
],
|
||||
],
|
||||
|
||||
// diy装修
|
||||
'diy' => [
|
||||
'nav_store_diy_name' => '更多diy範本下載',
|
||||
'nav_apptabbar_name' => '底部選單',
|
||||
'upload_list_tips' => [
|
||||
'1. 選擇已下載的diy設計zip包',
|
||||
'2. 導入將自動新增一條數據',
|
||||
],
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'id' => '數據ID',
|
||||
'md5_key' => '唯一標識',
|
||||
'logo' => 'logo',
|
||||
'name' => '名稱',
|
||||
'describe' => '描述',
|
||||
'access_count' => '訪問次數',
|
||||
'is_enable' => '是否啟用',
|
||||
'add_time' => '創建時間',
|
||||
'upd_time' => '更新時間',
|
||||
],
|
||||
],
|
||||
|
||||
// 附件
|
||||
'attachment' => [
|
||||
'base_nav_title' => '附件',
|
||||
'category_admin_title' => '分類管理',
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'category_name' => '分類',
|
||||
'type_name' => '類型',
|
||||
'info' => '附件',
|
||||
'original' => '原檔名',
|
||||
'title' => '新檔名',
|
||||
'size' => '大小',
|
||||
'ext' => '尾碼',
|
||||
'url' => 'url地址 ',
|
||||
'hash' => 'hash',
|
||||
'add_time' => '創建時間',
|
||||
],
|
||||
],
|
||||
|
||||
// 附件分类
|
||||
'attachmentcategory' => [
|
||||
'base_nav_title' => '附件分類',
|
||||
],
|
||||
|
||||
// 积分日志
|
||||
'integrallog' => [
|
||||
// 动态表格
|
||||
@ -1460,72 +1505,84 @@ return [
|
||||
'navigation_index' => [
|
||||
'name' => '網站',
|
||||
'item' => [
|
||||
'navigation_index' => '導航管理',
|
||||
'navigation_save' => '導航添加/編輯',
|
||||
'navigation_delete' => '導航删除',
|
||||
'navigation_statusupdate' => '導航狀態更新',
|
||||
'customview_index' => '自定義頁面',
|
||||
'customview_saveinfo' => '自定義頁面添加/編輯頁面',
|
||||
'customview_save' => '自定義頁面添加/編輯',
|
||||
'customview_delete' => '自定義頁面删除',
|
||||
'customview_statusupdate' => '自定義頁面狀態更新',
|
||||
'customview_detail' => '自定義頁面詳情',
|
||||
'link_index' => '友情連結',
|
||||
'link_saveinfo' => '友情連結添加/編輯頁面',
|
||||
'link_save' => '友情連結添加/編輯',
|
||||
'link_delete' => '友情連結删除',
|
||||
'link_statusupdate' => '友情連結狀態更新',
|
||||
'link_detail' => '友情連結詳情',
|
||||
'themeadmin_index' => '主題管理',
|
||||
'themeadmin_save' => '主題管理添加/編輯',
|
||||
'themeadmin_upload' => '主題上傳安裝',
|
||||
'themeadmin_delete' => '主題删除',
|
||||
'themeadmin_download' => '主題下載',
|
||||
'themedata_index' => '主題數據',
|
||||
'themedata_saveinfo' => '主題數據添加/編輯頁面',
|
||||
'themedata_save' => '主題數據添加/編輯',
|
||||
'themedata_upload' => '主題數據上傳',
|
||||
'themedata_delete' => '主題數據删除',
|
||||
'themedata_download' => '主題數據下載',
|
||||
'slide_index' => '首頁輪播',
|
||||
'slide_saveinfo' => '輪播添加/編輯頁面',
|
||||
'slide_save' => '輪播添加/編輯',
|
||||
'slide_statusupdate' => '輪播狀態更新',
|
||||
'slide_delete' => '輪播删除',
|
||||
'slide_detail' => '輪播詳情',
|
||||
'screeningprice_index' => '篩選價格',
|
||||
'screeningprice_save' => '篩選價格添加/編輯',
|
||||
'screeningprice_delete' => '篩選價格删除',
|
||||
'region_index' => '地區管理',
|
||||
'region_save' => '地區添加/編輯',
|
||||
'region_statusupdate' => '地區狀態更新',
|
||||
'region_delete' => '地區删除',
|
||||
'region_codedata' => '獲取地區編號數據',
|
||||
'express_index' => '快遞管理',
|
||||
'express_save' => '快遞添加/編輯',
|
||||
'express_delete' => '快遞删除',
|
||||
'payment_index' => '支付方式',
|
||||
'payment_saveinfo' => '支付方式安裝/編輯頁面',
|
||||
'payment_save' => '支付方式安裝/編輯',
|
||||
'payment_delete' => '支付方式删除',
|
||||
'payment_install' => '支付方式安裝',
|
||||
'payment_statusupdate' => '支付方式狀態更新',
|
||||
'payment_uninstall' => '支付方式卸載',
|
||||
'payment_upload' => '支付方式上傳',
|
||||
'quicknav_index' => '快捷導航',
|
||||
'quicknav_saveinfo' => '快捷導航添加/編輯頁面',
|
||||
'quicknav_save' => '快捷導航添加/編輯',
|
||||
'quicknav_statusupdate' => '快捷導航狀態更新',
|
||||
'quicknav_delete' => '快捷導航删除',
|
||||
'quicknav_detail' => '快捷導航詳情',
|
||||
'design_index' => '頁面設計',
|
||||
'design_saveinfo' => '頁面設計添加/編輯頁面',
|
||||
'design_save' => '頁面設計添加/編輯',
|
||||
'design_statusupdate' => '頁面設計狀態更新',
|
||||
'design_upload' => '頁面設計導入',
|
||||
'design_download' => '頁面設計下載',
|
||||
'design_sync' => '頁面設計同步首頁',
|
||||
'design_delete' => '頁面設計删除',
|
||||
'navigation_index' => '導航管理',
|
||||
'navigation_save' => '導航添加/編輯',
|
||||
'navigation_delete' => '導航删除',
|
||||
'navigation_statusupdate' => '導航狀態更新',
|
||||
'customview_index' => '自定義頁面',
|
||||
'customview_saveinfo' => '自定義頁面添加/編輯頁面',
|
||||
'customview_save' => '自定義頁面添加/編輯',
|
||||
'customview_delete' => '自定義頁面删除',
|
||||
'customview_statusupdate' => '自定義頁面狀態更新',
|
||||
'customview_detail' => '自定義頁面詳情',
|
||||
'link_index' => '友情連結',
|
||||
'link_saveinfo' => '友情連結添加/編輯頁面',
|
||||
'link_save' => '友情連結添加/編輯',
|
||||
'link_delete' => '友情連結删除',
|
||||
'link_statusupdate' => '友情連結狀態更新',
|
||||
'link_detail' => '友情連結詳情',
|
||||
'themeadmin_index' => '主題管理',
|
||||
'themeadmin_save' => '主題管理添加/編輯',
|
||||
'themeadmin_upload' => '主題上傳安裝',
|
||||
'themeadmin_delete' => '主題删除',
|
||||
'themeadmin_download' => '主題下載',
|
||||
'themeadmin_market' => '主題範本市場',
|
||||
'themedata_index' => '主題數據',
|
||||
'themedata_saveinfo' => '主題數據添加/編輯頁面',
|
||||
'themedata_save' => '主題數據添加/編輯',
|
||||
'themedata_upload' => '主題數據上傳',
|
||||
'themedata_delete' => '主題數據删除',
|
||||
'themedata_download' => '主題數據下載',
|
||||
'slide_index' => '首頁輪播',
|
||||
'slide_saveinfo' => '輪播添加/編輯頁面',
|
||||
'slide_save' => '輪播添加/編輯',
|
||||
'slide_statusupdate' => '輪播狀態更新',
|
||||
'slide_delete' => '輪播删除',
|
||||
'slide_detail' => '輪播詳情',
|
||||
'screeningprice_index' => '篩選價格',
|
||||
'screeningprice_save' => '篩選價格添加/編輯',
|
||||
'screeningprice_delete' => '篩選價格删除',
|
||||
'region_index' => '地區管理',
|
||||
'region_save' => '地區添加/編輯',
|
||||
'region_statusupdate' => '地區狀態更新',
|
||||
'region_delete' => '地區删除',
|
||||
'region_codedata' => '獲取地區編號數據',
|
||||
'express_index' => '快遞管理',
|
||||
'express_save' => '快遞添加/編輯',
|
||||
'express_delete' => '快遞删除',
|
||||
'payment_index' => '支付方式',
|
||||
'payment_saveinfo' => '支付方式安裝/編輯頁面',
|
||||
'payment_save' => '支付方式安裝/編輯',
|
||||
'payment_delete' => '支付方式删除',
|
||||
'payment_install' => '支付方式安裝',
|
||||
'payment_statusupdate' => '支付方式狀態更新',
|
||||
'payment_uninstall' => '支付方式卸載',
|
||||
'payment_upload' => '支付方式上傳',
|
||||
'payment_market' => '支付挿件市場',
|
||||
'quicknav_index' => '快捷導航',
|
||||
'quicknav_saveinfo' => '快捷導航添加/編輯頁面',
|
||||
'quicknav_save' => '快捷導航添加/編輯',
|
||||
'quicknav_statusupdate' => '快捷導航狀態更新',
|
||||
'quicknav_delete' => '快捷導航删除',
|
||||
'quicknav_detail' => '快捷導航詳情',
|
||||
'design_index' => '頁面設計',
|
||||
'design_saveinfo' => '頁面設計添加/編輯頁面',
|
||||
'design_save' => '頁面設計添加/編輯',
|
||||
'design_statusupdate' => '頁面設計狀態更新',
|
||||
'design_upload' => '頁面設計導入',
|
||||
'design_download' => '頁面設計下載',
|
||||
'design_sync' => '頁面設計同步首頁',
|
||||
'design_delete' => '頁面設計删除',
|
||||
'design_market' => '頁面設計範本市場',
|
||||
'attachment_index' => '附件管理',
|
||||
'attachment_detail' => '附件管理詳情',
|
||||
'attachment_saveinfo' => '附件管理添加/編輯頁面',
|
||||
'attachment_save' => '附件管理添加/編輯',
|
||||
'attachment_delete' => '附件管理删除',
|
||||
'attachmentcategory_index' => '附件分類',
|
||||
'attachmentcategory_save' => '附件分類添加/編輯',
|
||||
'attachmentcategory_statusupdate' => '附件狀態更新',
|
||||
'attachmentcategory_delete' => '附件分類删除',
|
||||
]
|
||||
],
|
||||
'brand_index' => [
|
||||
@ -1565,29 +1622,69 @@ return [
|
||||
'app_index' => [
|
||||
'name' => '手機',
|
||||
'item' => [
|
||||
'appconfig_index' => '基礎配寘',
|
||||
'appconfig_save' => '基礎配寘保存',
|
||||
'apphomenav_index' => '首頁導航',
|
||||
'apphomenav_saveinfo' => '首頁導航添加/編輯頁面',
|
||||
'apphomenav_save' => '首頁導航添加/編輯',
|
||||
'apphomenav_statusupdate' => '首頁導航狀態更新',
|
||||
'apphomenav_delete' => '首頁導航删除',
|
||||
'apphomenav_detail' => '首頁導航詳情',
|
||||
'appcenternav_index' => '用戶中心導航',
|
||||
'appcenternav_saveinfo' => '用戶中心導航添加/編輯頁面',
|
||||
'appcenternav_save' => '用戶中心導航添加/編輯',
|
||||
'appcenternav_statusupdate' => '用戶中心導航狀態更新',
|
||||
'appcenternav_delete' => '用戶中心導航删除',
|
||||
'appcenternav_detail' => '用戶中心導航詳情',
|
||||
'appmini_index' => '小程式清單',
|
||||
'appmini_created' => '小程式包生成',
|
||||
'appmini_delete' => '小程式包删除',
|
||||
'appmini_themeupload' => '小程式主題上傳',
|
||||
'appmini_themesave' => '小程式主題切換',
|
||||
'appmini_themedelete' => '小程式主題切換',
|
||||
'appmini_themedownload' => '小程式主題下載',
|
||||
'appmini_config' => '小程式配寘',
|
||||
'appmini_save' => '小程式配寘保存',
|
||||
'appconfig_index' => '基礎配寘',
|
||||
'appconfig_save' => '基礎配寘保存',
|
||||
'appmini_index' => '小程式清單',
|
||||
'appmini_created' => '小程式包生成',
|
||||
'appmini_delete' => '小程式包删除',
|
||||
'appmini_themeupload' => '小程式主題上傳',
|
||||
'appmini_themesave' => '小程式主題切換',
|
||||
'appmini_themedelete' => '小程式主題切換',
|
||||
'appmini_themedownload' => '小程式主題下載',
|
||||
'appmini_config' => '小程式配寘',
|
||||
'appmini_save' => '小程式配寘保存',
|
||||
'diy_index' => 'DIY裝修',
|
||||
'diy_saveinfo' => 'DIY裝修添加/編輯頁面',
|
||||
'diy_save' => 'DIY裝修添加/編輯',
|
||||
'diy_statusupdate' => 'DIY裝修狀態更新',
|
||||
'diy_delete' => 'DIY裝修删除',
|
||||
'diy_download' => 'DIY裝修匯出',
|
||||
'diy_upload' => 'DIY裝修導入',
|
||||
'diy_detail' => 'DIY裝修詳情',
|
||||
'diy_preview' => 'DIY裝修預覽',
|
||||
'diy_market' => 'DIY裝修範本市場',
|
||||
'diy_apptabbar' => 'DIY裝修底部選單',
|
||||
'diyapi_init' => 'DIY裝修-公共初始化',
|
||||
'diyapi_attachmentcategory' => 'DIY裝修-附件分類',
|
||||
'diyapi_attachmentlist' => 'DIY裝修-附件清單',
|
||||
'diyapi_attachmentsave' => 'DIY裝修-附件保存',
|
||||
'diyapi_attachmentdelete' => 'DIY裝修-附件删除',
|
||||
'diyapi_attachmentupload' => 'DIY裝修-附件上傳',
|
||||
'diyapi_attachmentcatch' => 'DIY裝修-附件遠程下載',
|
||||
'diyapi_attachmentscanuploaddata' => 'DIY裝修-附件掃碼上傳數據',
|
||||
'diyapi_attachmentmovecategory' => 'DIY裝修-附件移動分類',
|
||||
'diyapi_attachmentcategorysave' => 'DIY裝修-附件分類保存',
|
||||
'diyapi_attachmentcategorydelete' => 'DIY裝修-附件分類删除',
|
||||
'diyapi_goodslist' => 'DIY裝修-商品列表',
|
||||
'diyapi_customviewlist' => 'DIY裝修-自定義頁面清單',
|
||||
'diyapi_designlist' => 'DIY裝修-頁面設計清單',
|
||||
'diyapi_articlelist' => 'DIY裝修-文章列表',
|
||||
'diyapi_brandlist' => 'DIY裝修-品牌列表',
|
||||
'diyapi_diylist' => 'DIY裝修-DIY裝修清單',
|
||||
'diyapi_diydetail' => 'DIY裝修-DIY裝修詳情',
|
||||
'diyapi_diysave' => 'DIY裝修-DIY裝修保存',
|
||||
'diyapi_diyupload' => 'DIY裝修-DIY裝修導入',
|
||||
'diyapi_diydownload' => 'DIY裝修-DIY裝修匯出',
|
||||
'diyapi_diyinstall' => 'DIY裝修-DIY裝修範本安裝',
|
||||
'diyapi_diymarket' => 'DIY裝修-DIY裝修範本市場',
|
||||
'diyapi_goodsappointdata' => 'DIY裝修-商品指定數據',
|
||||
'diyapi_goodsautodata' => 'DIY裝修-商品自動數據',
|
||||
'diyapi_articleappointdata' => 'DIY裝修-文章指定數據',
|
||||
'diyapi_articleautodata' => 'DIY裝修-文章自動數據',
|
||||
'diyapi_userheaddata' => 'DIY裝修-用戶頭部數據',
|
||||
'diyapi_custominit' => 'DIY裝修-自定義初始化',
|
||||
'apphomenav_index' => '首頁導航',
|
||||
'apphomenav_saveinfo' => '首頁導航添加/編輯頁面',
|
||||
'apphomenav_save' => '首頁導航添加/編輯',
|
||||
'apphomenav_statusupdate' => '首頁導航狀態更新',
|
||||
'apphomenav_delete' => '首頁導航删除',
|
||||
'apphomenav_detail' => '首頁導航詳情',
|
||||
'appcenternav_index' => '用戶中心導航',
|
||||
'appcenternav_saveinfo' => '用戶中心導航添加/編輯頁面',
|
||||
'appcenternav_save' => '用戶中心導航添加/編輯',
|
||||
'appcenternav_statusupdate' => '用戶中心導航狀態更新',
|
||||
'appcenternav_delete' => '用戶中心導航删除',
|
||||
'appcenternav_detail' => '用戶中心導航詳情',
|
||||
]
|
||||
],
|
||||
'article_index' => [
|
||||
@ -1621,6 +1718,16 @@ return [
|
||||
'integrallog_detail' => '積分日誌詳情',
|
||||
'smslog_index' => '簡訊日誌',
|
||||
'smslog_detail' => '簡訊日誌詳情',
|
||||
'smslog_delete' => '簡訊日誌删除',
|
||||
'smslog_alldelete' => '簡訊日誌全部删除',
|
||||
'emaillog_index' => '郵件日誌',
|
||||
'emaillog_detail' => '郵件日誌詳情',
|
||||
'emaillog_delete' => '郵件日誌删除',
|
||||
'emaillog_alldelete' => '郵件日誌全部删除',
|
||||
'errorlog_index' => '錯誤日誌',
|
||||
'errorlog_detail' => '錯誤日誌詳情',
|
||||
'errorlog_delete' => '錯誤日誌删除',
|
||||
'errorlog_alldelete' => '錯誤日誌全部删除',
|
||||
]
|
||||
],
|
||||
'store_index' => [
|
||||
@ -1637,6 +1744,7 @@ return [
|
||||
'pluginsadmin_install' => '應用安裝',
|
||||
'pluginsadmin_uninstall' => '應用卸載',
|
||||
'pluginsadmin_sortsave' => '應用排序保存',
|
||||
'pluginsadmin_market' => '應用挿件市場',
|
||||
'store_index' => '應用商店',
|
||||
'packageinstall_index' => '套裝軟體安裝頁面',
|
||||
'packageinstall_install' => '套裝軟體安裝',
|
||||
|
@ -284,6 +284,7 @@ return [
|
||||
'base_nav_title' => 'Brand',
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'id' => 'Brand ID',
|
||||
'name' => 'Name',
|
||||
'describe' => 'Describe',
|
||||
'logo' => 'LOGO',
|
||||
@ -336,7 +337,9 @@ return [
|
||||
'save_view_tips' => 'Please save before previewing the effect',
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'info' => 'Title',
|
||||
'id' => 'Data ID',
|
||||
'logo' => 'logo',
|
||||
'name' => 'name',
|
||||
'is_enable' => 'Enable or not',
|
||||
'is_header' => 'Header or not',
|
||||
'is_footer' => 'Footer or not',
|
||||
@ -363,8 +366,8 @@ return [
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'id' => 'Data ID',
|
||||
'info' => 'Base Info',
|
||||
'info_placeholder' => 'Please enter a name',
|
||||
'logo' => 'logo',
|
||||
'name' => 'Name',
|
||||
'access_count' => 'Access Count',
|
||||
'is_enable' => 'Enable or not',
|
||||
'is_header' => 'Header or not',
|
||||
@ -905,7 +908,7 @@ return [
|
||||
['name' => 'Not Installed', 'type' => 1],
|
||||
],
|
||||
'base_nav_title' => 'PaymentMethod',
|
||||
'base_upload_payment_name' => 'Upload payment',
|
||||
'base_upload_payment_name' => 'Import payment',
|
||||
'base_nav_store_payment_name' => 'More PaymentMethod downloads',
|
||||
'upload_top_list_tips' => [
|
||||
[
|
||||
@ -955,7 +958,7 @@ return [
|
||||
['name' => 'Current Theme', 'type' => 'index'],
|
||||
['name' => 'Theme Install', 'type' => 'upload'],
|
||||
],
|
||||
'base_upload_theme_name' => 'Upload Theme',
|
||||
'base_upload_theme_name' => 'Import Theme',
|
||||
'base_nav_store_theme_name' => 'More topic downloads',
|
||||
'list_author_title' => 'Author',
|
||||
'list_version_title' => 'Applicable Version',
|
||||
@ -1099,11 +1102,7 @@ return [
|
||||
],
|
||||
// 基础导航
|
||||
'base_nav_title' => 'Plugins',
|
||||
'base_nav_list' => [
|
||||
['name' => 'Application Management', 'type' => 'index'],
|
||||
['name' => 'Upload Application', 'type' => 'upload'],
|
||||
],
|
||||
'base_upload_application_name' => 'Upload application',
|
||||
'base_upload_application_name' => 'Import application',
|
||||
'base_nav_more_plugins_download_name' => 'More plug-in downloads',
|
||||
// 基础页面
|
||||
'base_search_input_placeholder' => 'Please enter a name/description',
|
||||
@ -1224,6 +1223,52 @@ return [
|
||||
],
|
||||
],
|
||||
|
||||
// diy装修
|
||||
'diy' => [
|
||||
'nav_store_diy_name' => 'More DIY template downloads',
|
||||
'nav_apptabbar_name' => 'Bottom menu',
|
||||
'upload_list_tips' => [
|
||||
'1. Select the downloaded DIY design zip file',
|
||||
'2. Importing will automatically add a new piece of data',
|
||||
],
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'id' => 'Data ID',
|
||||
'md5_key' => 'unique identification',
|
||||
'logo' => 'logo',
|
||||
'name' => 'name',
|
||||
'describe' => 'describe',
|
||||
'access_count' => 'Number of visits',
|
||||
'is_enable' => 'Is it enabled',
|
||||
'add_time' => 'Creation time',
|
||||
'upd_time' => 'Update time',
|
||||
],
|
||||
],
|
||||
|
||||
// 附件
|
||||
'attachment' => [
|
||||
'base_nav_title' => 'annex',
|
||||
'category_admin_title' => 'Category management',
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'category_name' => 'Category',
|
||||
'type_name' => 'Type',
|
||||
'info' => 'Info',
|
||||
'original' => 'Original file name',
|
||||
'title' => 'New file name',
|
||||
'size' => 'Size',
|
||||
'ext' => 'Suffix',
|
||||
'url' => 'Url address ',
|
||||
'hash' => 'Hash',
|
||||
'add_time' => 'Creation time',
|
||||
],
|
||||
],
|
||||
|
||||
// 附件分类
|
||||
'attachmentcategory' => [
|
||||
'base_nav_title' => 'Attachment Category',
|
||||
],
|
||||
|
||||
// 积分日志
|
||||
'integrallog' => [
|
||||
// 动态表格
|
||||
@ -1478,72 +1523,84 @@ return [
|
||||
'navigation_index' => [
|
||||
'name' => 'Web',
|
||||
'item' => [
|
||||
'navigation_index' => 'Navigation admin',
|
||||
'navigation_save' => 'Navigation add/edit',
|
||||
'navigation_delete' => 'Navigation delete',
|
||||
'navigation_statusupdate' => 'Navigation status update',
|
||||
'customview_index' => 'Custom page',
|
||||
'customview_saveinfo' => 'Custom page add/edit page',
|
||||
'customview_save' => 'Custom page add/edit',
|
||||
'customview_delete' => 'Custom page delete',
|
||||
'customview_statusupdate' => 'Custom page status update',
|
||||
'customview_detail' => 'Custom page details',
|
||||
'link_index' => 'Links',
|
||||
'link_saveinfo' => 'Link add/edit page',
|
||||
'link_save' => 'Add / Edit Links',
|
||||
'link_delete' => 'Link delete',
|
||||
'link_statusupdate' => 'Link status update',
|
||||
'link_detail' => 'Link details',
|
||||
'themeadmin_index' => 'Theme admin',
|
||||
'themeadmin_save' => 'Theme admin add/edit',
|
||||
'themeadmin_upload' => 'Theme upload and installation',
|
||||
'themeadmin_delete' => 'Theme delete',
|
||||
'themeadmin_download' => 'Theme download',
|
||||
'themedata_index' => 'Theme data',
|
||||
'themedata_saveinfo' => 'Theme data add/edit page',
|
||||
'themedata_save' => 'Theme data add/edit',
|
||||
'themedata_upload' => 'Theme data upload',
|
||||
'themedata_delete' => 'Theme data delete',
|
||||
'themedata_download' => 'Theme data download',
|
||||
'slide_index' => 'HomePage Slide',
|
||||
'slide_saveinfo' => 'Carousel add/edit page',
|
||||
'slide_save' => 'Carousel add/edit',
|
||||
'slide_statusupdate' => 'Rotation status update',
|
||||
'slide_delete' => 'Rotation delete',
|
||||
'slide_detail' => 'Rotation details',
|
||||
'screeningprice_index' => 'Screening price',
|
||||
'screeningprice_save' => 'Filter price add/edit',
|
||||
'screeningprice_delete' => 'Filter price delete',
|
||||
'region_index' => 'Regional admin',
|
||||
'region_save' => 'Region add/edit',
|
||||
'region_statusupdate' => 'Regional status update',
|
||||
'region_delete' => 'Region delete',
|
||||
'region_codedata' => 'Get area number data',
|
||||
'express_index' => 'Express Management',
|
||||
'express_save' => 'Express add/edit',
|
||||
'express_delete' => 'Express delete',
|
||||
'payment_index' => 'Payment method',
|
||||
'payment_saveinfo' => 'Payment method installation / editing page',
|
||||
'payment_save' => 'Payment method installation / editing',
|
||||
'payment_delete' => 'Payment method delete',
|
||||
'payment_install' => 'Payment method installation',
|
||||
'payment_statusupdate' => 'Payment method status update',
|
||||
'payment_uninstall' => 'Payment method unloading',
|
||||
'payment_upload' => 'Payment method upload',
|
||||
'quicknav_index' => 'Quick navigation',
|
||||
'quicknav_saveinfo' => 'Quick navigation add/edit page',
|
||||
'quicknav_save' => 'Quick navigation add/edit',
|
||||
'quicknav_statusupdate' => 'Quick navigation status update',
|
||||
'quicknav_delete' => 'Quick navigation delete',
|
||||
'quicknav_detail' => 'Quick navigation details',
|
||||
'design_index' => 'Page design',
|
||||
'design_saveinfo' => 'Page design add/edit page',
|
||||
'design_save' => 'Page design add/edit',
|
||||
'design_statusupdate' => 'Page design status update',
|
||||
'design_upload' => 'Page design import',
|
||||
'design_download' => 'Page Design Download',
|
||||
'design_sync' => 'Page design synchronization home page',
|
||||
'design_delete' => 'Page design delete',
|
||||
'navigation_index' => 'Navigation admin',
|
||||
'navigation_save' => 'Navigation add/edit',
|
||||
'navigation_delete' => 'Navigation delete',
|
||||
'navigation_statusupdate' => 'Navigation status update',
|
||||
'customview_index' => 'Custom page',
|
||||
'customview_saveinfo' => 'Custom page add/edit page',
|
||||
'customview_save' => 'Custom page add/edit',
|
||||
'customview_delete' => 'Custom page delete',
|
||||
'customview_statusupdate' => 'Custom page status update',
|
||||
'customview_detail' => 'Custom page details',
|
||||
'link_index' => 'Links',
|
||||
'link_saveinfo' => 'Link add/edit page',
|
||||
'link_save' => 'Add / Edit Links',
|
||||
'link_delete' => 'Link delete',
|
||||
'link_statusupdate' => 'Link status update',
|
||||
'link_detail' => 'Link details',
|
||||
'themeadmin_index' => 'Theme admin',
|
||||
'themeadmin_save' => 'Theme admin add/edit',
|
||||
'themeadmin_upload' => 'Theme upload and installation',
|
||||
'themeadmin_delete' => 'Theme delete',
|
||||
'themeadmin_download' => 'Theme download',
|
||||
'themeadmin_market' => 'Theme template market',
|
||||
'themedata_index' => 'Theme data',
|
||||
'themedata_saveinfo' => 'Theme data add/edit page',
|
||||
'themedata_save' => 'Theme data add/edit',
|
||||
'themedata_upload' => 'Theme data upload',
|
||||
'themedata_delete' => 'Theme data delete',
|
||||
'themedata_download' => 'Theme data download',
|
||||
'slide_index' => 'HomePage Slide',
|
||||
'slide_saveinfo' => 'Carousel add/edit page',
|
||||
'slide_save' => 'Carousel add/edit',
|
||||
'slide_statusupdate' => 'Rotation status update',
|
||||
'slide_delete' => 'Rotation delete',
|
||||
'slide_detail' => 'Rotation details',
|
||||
'screeningprice_index' => 'Screening price',
|
||||
'screeningprice_save' => 'Filter price add/edit',
|
||||
'screeningprice_delete' => 'Filter price delete',
|
||||
'region_index' => 'Regional admin',
|
||||
'region_save' => 'Region add/edit',
|
||||
'region_statusupdate' => 'Regional status update',
|
||||
'region_delete' => 'Region delete',
|
||||
'region_codedata' => 'Get area number data',
|
||||
'express_index' => 'Express Management',
|
||||
'express_save' => 'Express add/edit',
|
||||
'express_delete' => 'Express delete',
|
||||
'payment_index' => 'Payment method',
|
||||
'payment_saveinfo' => 'Payment method installation / editing page',
|
||||
'payment_save' => 'Payment method installation / editing',
|
||||
'payment_delete' => 'Payment method delete',
|
||||
'payment_install' => 'Payment method installation',
|
||||
'payment_statusupdate' => 'Payment method status update',
|
||||
'payment_uninstall' => 'Payment method unloading',
|
||||
'payment_upload' => 'Payment method upload',
|
||||
'payment_market' => 'Payment Plugin Market',
|
||||
'quicknav_index' => 'Quick navigation',
|
||||
'quicknav_saveinfo' => 'Quick navigation add/edit page',
|
||||
'quicknav_save' => 'Quick navigation add/edit',
|
||||
'quicknav_statusupdate' => 'Quick navigation status update',
|
||||
'quicknav_delete' => 'Quick navigation delete',
|
||||
'quicknav_detail' => 'Quick navigation details',
|
||||
'design_index' => 'Page design',
|
||||
'design_saveinfo' => 'Page design add/edit page',
|
||||
'design_save' => 'Page design add/edit',
|
||||
'design_statusupdate' => 'Page design status update',
|
||||
'design_upload' => 'Page design import',
|
||||
'design_download' => 'Page Design Download',
|
||||
'design_sync' => 'Page design synchronization home page',
|
||||
'design_delete' => 'Page design delete',
|
||||
'design_market' => 'Page design template market',
|
||||
'attachment_index' => 'Annex manage',
|
||||
'attachment_detail' => 'Annex manage Details',
|
||||
'attachment_saveinfo' => 'Annex manage Add/Edit Page',
|
||||
'attachment_save' => 'Annex manage Add/Edit',
|
||||
'attachment_delete' => 'Annex manage deletion',
|
||||
'attachmentcategory_index' => 'Annex category',
|
||||
'attachmentcategory_save' => 'Annex category add/edit',
|
||||
'attachmentcategory_statusupdate' => 'Annex status update',
|
||||
'attachmentcategory_delete' => 'Annex category deletion',
|
||||
]
|
||||
],
|
||||
'brand_index' => [
|
||||
@ -1555,9 +1612,9 @@ return [
|
||||
'brand_statusupdate' => 'Brand status update',
|
||||
'brand_delete' => 'Brand delete',
|
||||
'brand_detail' => 'Brand details',
|
||||
'brandcategory_index' => 'Brand classification',
|
||||
'brandcategory_index' => 'Brand category',
|
||||
'brandcategory_save' => 'Brand category add/edit',
|
||||
'brandcategory_delete' => 'Brand classification delete',
|
||||
'brandcategory_delete' => 'Brand category delete',
|
||||
]
|
||||
],
|
||||
'warehouse_index' => [
|
||||
@ -1583,29 +1640,69 @@ return [
|
||||
'app_index' => [
|
||||
'name' => 'Mobile',
|
||||
'item' => [
|
||||
'appconfig_index' => 'Basic config',
|
||||
'appconfig_save' => 'Basic config saving',
|
||||
'apphomenav_index' => 'Home page navigation',
|
||||
'apphomenav_saveinfo' => 'Home navigation add/edit page',
|
||||
'apphomenav_save' => 'Home page navigation add/edit',
|
||||
'apphomenav_statusupdate' => 'Homepage navigation status update',
|
||||
'apphomenav_delete' => 'Home page navigation delete',
|
||||
'apphomenav_detail' => 'Home page navigation details',
|
||||
'appcenternav_index' => 'User center navigation',
|
||||
'appcenternav_saveinfo' => 'User center navigation add/edit page',
|
||||
'appcenternav_save' => 'User center navigation add/edit',
|
||||
'appcenternav_statusupdate' => 'User center navigation status update',
|
||||
'appcenternav_delete' => 'User center navigation delete',
|
||||
'appcenternav_detail' => 'User center navigation details',
|
||||
'appmini_index' => 'Applet list',
|
||||
'appmini_created' => 'Applet package generation',
|
||||
'appmini_delete' => 'Applet package delete',
|
||||
'appmini_themeupload' => 'Applet theme upload',
|
||||
'appmini_themesave' => 'Applet theme switching',
|
||||
'appmini_themedelete' => 'Applet theme switching',
|
||||
'appmini_themedownload' => 'Applet theme download',
|
||||
'appmini_config' => 'Applet config',
|
||||
'appmini_save' => 'Applet config save',
|
||||
'appconfig_index' => 'Basic config',
|
||||
'appconfig_save' => 'Basic config saving',
|
||||
'appmini_index' => 'Applet list',
|
||||
'appmini_created' => 'Applet package generation',
|
||||
'appmini_delete' => 'Applet package delete',
|
||||
'appmini_themeupload' => 'Applet theme upload',
|
||||
'appmini_themesave' => 'Applet theme switching',
|
||||
'appmini_themedelete' => 'Applet theme switching',
|
||||
'appmini_themedownload' => 'Applet theme download',
|
||||
'appmini_config' => 'Applet config',
|
||||
'appmini_save' => 'Applet config save',
|
||||
'diy_index' => 'DIY decoration',
|
||||
'diy_saveinfo' => 'DIY Decoration Add/Edit Page',
|
||||
'diy_save' => 'DIY decoration addition/editing',
|
||||
'diy_statusupdate' => 'DIY decoration status update',
|
||||
'diy_delete' => 'DIY Decoration Delete',
|
||||
'diy_download' => 'DIY decoration export',
|
||||
'diy_upload' => 'DIY decoration import',
|
||||
'diy_detail' => 'DIY Decoration Details',
|
||||
'diy_preview' => 'DIY Decoration Preview',
|
||||
'diy_market' => 'DIY decoration template market',
|
||||
'diy_apptabbar' => 'DIY Decoration Bottom Menu',
|
||||
'diyapi_init' => 'DIY Decoration - Public Initialization',
|
||||
'diyapi_attachmentcategory' => 'DIY Decoration - Attachment Classification',
|
||||
'diyapi_attachmentlist' => 'DIY Decoration - Attachment List',
|
||||
'diyapi_attachmentsave' => 'DIY Decoration - Attachment Storage',
|
||||
'diyapi_attachmentdelete' => 'DIY Decoration - Attachment Deletion',
|
||||
'diyapi_attachmentupload' => 'DIY Decoration - Attachment Upload',
|
||||
'diyapi_attachmentcatch' => 'DIY Decoration - Remote Download of Accessories',
|
||||
'diyapi_attachmentscanuploaddata' => 'DIY Decoration - Scan the QR code for attachments and upload data',
|
||||
'diyapi_attachmentmovecategory' => 'DIY Decoration - Attachment Mobile Classification',
|
||||
'diyapi_attachmentcategorysave' => 'DIY Decoration - Attachment Classification and Storage',
|
||||
'diyapi_attachmentcategorydelete' => 'DIY Decoration - Attachment Category Delete',
|
||||
'diyapi_goodslist' => 'DIY Decoration - Product List',
|
||||
'diyapi_customviewlist' => 'DIY Decoration - Custom Page List',
|
||||
'diyapi_designlist' => 'DIY Decoration - Page Design List',
|
||||
'diyapi_articlelist' => 'DIY Decoration - Article List',
|
||||
'diyapi_brandlist' => 'DIY Decoration - Brand List',
|
||||
'diyapi_diylist' => 'DIY Decoration - DIY Decoration List',
|
||||
'diyapi_diydetail' => 'DIY Decoration - DIY Decoration Details',
|
||||
'diyapi_diysave' => 'DIY decoration - DIY decoration preservation',
|
||||
'diyapi_diyupload' => 'DIY Decoration - DIY Decoration Import',
|
||||
'diyapi_diydownload' => 'DIY Decoration - DIY Decoration Export',
|
||||
'diyapi_diyinstall' => 'DIY decoration - DIY decoration template installation',
|
||||
'diyapi_diymarket' => 'DIY Decoration - DIY Decoration Template Market',
|
||||
'diyapi_goodsappointdata' => 'DIY Decoration - Product Specific Data',
|
||||
'diyapi_goodsautodata' => 'DIY Decoration - Automated Product Data',
|
||||
'diyapi_articleappointdata' => 'DIY Decoration - Article Specific Data',
|
||||
'diyapi_articleautodata' => 'DIY Decoration - Automatic Article Data',
|
||||
'diyapi_userheaddata' => 'DIY Decoration - User Head Data',
|
||||
'diyapi_custominit' => 'DIY Decoration - Custom Initialization',
|
||||
'apphomenav_index' => 'Home page navigation',
|
||||
'apphomenav_saveinfo' => 'Home navigation add/edit page',
|
||||
'apphomenav_save' => 'Home page navigation add/edit',
|
||||
'apphomenav_statusupdate' => 'Homepage navigation status update',
|
||||
'apphomenav_delete' => 'Home page navigation delete',
|
||||
'apphomenav_detail' => 'Home page navigation details',
|
||||
'appcenternav_index' => 'User center navigation',
|
||||
'appcenternav_saveinfo' => 'User center navigation add/edit page',
|
||||
'appcenternav_save' => 'User center navigation add/edit',
|
||||
'appcenternav_statusupdate' => 'User center navigation status update',
|
||||
'appcenternav_delete' => 'User center navigation delete',
|
||||
'appcenternav_detail' => 'User center navigation details',
|
||||
]
|
||||
],
|
||||
'article_index' => [
|
||||
@ -1639,6 +1736,16 @@ return [
|
||||
'integrallog_detail' => 'Points log details',
|
||||
'smslog_index' => 'SMS log',
|
||||
'smslog_detail' => 'SMS log details',
|
||||
'smslog_delete' => 'Delete SMS logs',
|
||||
'smslog_alldelete' => 'Delete all SMS logs',
|
||||
'emaillog_index' => 'Email log',
|
||||
'emaillog_detail' => 'Email log details',
|
||||
'emaillog_delete' => 'Email log deletion',
|
||||
'emaillog_alldelete' => 'Delete all email logs',
|
||||
'errorlog_index' => 'Error log',
|
||||
'errorlog_detail' => 'Error log details',
|
||||
'errorlog_delete' => 'Error log deletion',
|
||||
'errorlog_alldelete' => 'Delete all error logs',
|
||||
]
|
||||
],
|
||||
'store_index' => [
|
||||
@ -1655,6 +1762,7 @@ return [
|
||||
'pluginsadmin_install' => 'Application installation',
|
||||
'pluginsadmin_uninstall' => 'Apps Uninstall',
|
||||
'pluginsadmin_sortsave' => 'Apply sort save',
|
||||
'pluginsadmin_market' => 'Application Plugin Market',
|
||||
'store_index' => 'App store',
|
||||
'packageinstall_index' => 'Package installation page',
|
||||
'packageinstall_install' => 'Package installation',
|
||||
|
@ -284,6 +284,7 @@ return [
|
||||
'base_nav_title' => 'Marca',
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'id' => 'ID de marca',
|
||||
'name' => 'Nombre',
|
||||
'describe' => 'Descripción',
|
||||
'logo' => 'LOGO',
|
||||
@ -336,7 +337,9 @@ return [
|
||||
'save_view_tips' => 'Guarde antes de Previsualizar el efecto',
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'info' => 'Título',
|
||||
'id' => 'ID de datos',
|
||||
'logo' => 'logo',
|
||||
'name' => 'Nombre',
|
||||
'is_enable' => 'Si habilitar',
|
||||
'is_header' => 'Si la cabeza',
|
||||
'is_footer' => 'Si la cola',
|
||||
@ -359,8 +362,8 @@ return [
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'id' => 'ID de datos',
|
||||
'info' => 'Información básica',
|
||||
'info_placeholder' => 'Por favor, introduzca el nombre',
|
||||
'logo' => 'logo',
|
||||
'name' => 'Nombre',
|
||||
'access_count' => 'Número de visitas',
|
||||
'is_enable' => 'Si habilitar',
|
||||
'is_header' => 'Si incluye la cabeza',
|
||||
@ -887,7 +890,7 @@ return [
|
||||
['name' => 'No instalado', 'type' => 1],
|
||||
],
|
||||
'base_nav_title' => 'Método de pago',
|
||||
'base_upload_payment_name' => 'Cargar pago',
|
||||
'base_upload_payment_name' => 'Importar pago',
|
||||
'base_nav_store_payment_name' => 'Descarga de más métodos de pago',
|
||||
'upload_top_list_tips' => [
|
||||
[
|
||||
@ -937,7 +940,7 @@ return [
|
||||
['name' => 'Temas actuales', 'type' => 'index'],
|
||||
['name' => 'Instalación temática', 'type' => 'upload'],
|
||||
],
|
||||
'base_upload_theme_name' => 'Subir Tema',
|
||||
'base_upload_theme_name' => 'Importar temas',
|
||||
'base_nav_store_theme_name' => 'Descarga de más temas',
|
||||
'list_author_title' => 'Autor',
|
||||
'list_version_title' => 'Versión aplicable',
|
||||
@ -1081,11 +1084,7 @@ return [
|
||||
],
|
||||
// 基础导航
|
||||
'base_nav_title' => 'Aplicación',
|
||||
'base_nav_list' => [
|
||||
['name' => 'Gestión de aplicaciones', 'type' => 'index'],
|
||||
['name' => 'Cargar aplicación', 'type' => 'upload'],
|
||||
],
|
||||
'base_upload_application_name' => 'Cargar aplicación',
|
||||
'base_upload_application_name' => 'Importar aplicaciones',
|
||||
'base_nav_more_plugins_download_name' => 'Descarga de más plug - ins',
|
||||
// 基础页面
|
||||
'base_search_input_placeholder' => 'Introduzca el nombre / descripción',
|
||||
@ -1206,6 +1205,52 @@ return [
|
||||
],
|
||||
],
|
||||
|
||||
// diy装修
|
||||
'diy' => [
|
||||
'nav_store_diy_name' => 'Más descargas de plantillas DIY',
|
||||
'nav_apptabbar_name' => 'Menú inferior',
|
||||
'upload_list_tips' => [
|
||||
'1. Elija el paquete zip de diseño DIY descargado',
|
||||
'2. La importación agregará automáticamente un nuevo dato',
|
||||
],
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'id' => 'ID de datos',
|
||||
'md5_key' => 'Identificación única',
|
||||
'logo' => 'logo',
|
||||
'name' => 'Nombre',
|
||||
'describe' => 'Descripción',
|
||||
'access_count' => 'Número de visitas',
|
||||
'is_enable' => 'Si habilitar',
|
||||
'add_time' => 'Tiempo de creación',
|
||||
'upd_time' => 'Tiempo de actualización',
|
||||
],
|
||||
],
|
||||
|
||||
// 附件
|
||||
'attachment' => [
|
||||
'base_nav_title' => 'Anexo',
|
||||
'category_admin_title' => 'Gestión clasificada',
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'category_name' => 'Clasificación',
|
||||
'type_name' => 'Tipo',
|
||||
'info' => 'Anexo',
|
||||
'original' => 'Nombre del archivo original',
|
||||
'title' => 'Nuevo nombre de archivo',
|
||||
'size' => 'Tamaño',
|
||||
'ext' => 'Sufijo',
|
||||
'url' => 'Dirección URL ',
|
||||
'hash' => 'hash',
|
||||
'add_time' => 'Tiempo de creación',
|
||||
],
|
||||
],
|
||||
|
||||
// 附件分类
|
||||
'attachmentcategory' => [
|
||||
'base_nav_title' => 'Clasificación de los anexos',
|
||||
],
|
||||
|
||||
// 积分日志
|
||||
'integrallog' => [
|
||||
// 动态表格
|
||||
@ -1460,72 +1505,84 @@ return [
|
||||
'navigation_index' => [
|
||||
'name' => 'Gestión del sitio web',
|
||||
'item' => [
|
||||
'navigation_index' => 'Gestión de la navegación',
|
||||
'navigation_save' => 'Navegación añadir / editar',
|
||||
'navigation_delete' => 'Eliminar navegación',
|
||||
'navigation_statusupdate' => 'Actualización del Estado de navegación',
|
||||
'customview_index' => 'Página personalizada',
|
||||
'customview_saveinfo' => 'Página personalizada para agregar / editar Página',
|
||||
'customview_save' => 'Añadir / editar página personalizada',
|
||||
'customview_delete' => 'Eliminar página personalizada',
|
||||
'customview_statusupdate' => 'Actualización del Estado de la página personalizada',
|
||||
'customview_detail' => 'Detalles de la página personalizada',
|
||||
'link_index' => 'Enlace amistoso',
|
||||
'link_saveinfo' => 'Enlace de amistad para agregar / editar Página',
|
||||
'link_save' => 'Añadir / editar enlaces de amistad',
|
||||
'link_delete' => 'Eliminar enlaces de amistad',
|
||||
'link_statusupdate' => 'Actualización del Estado del enlace de amistad',
|
||||
'link_detail' => 'Detalles del enlace amistoso',
|
||||
'themeadmin_index' => 'Gestión temática',
|
||||
'themeadmin_save' => 'Gestión temática añadir / editar',
|
||||
'themeadmin_upload' => 'Instalación de carga de temas',
|
||||
'themeadmin_delete' => 'Eliminación del tema',
|
||||
'themeadmin_download' => 'Descarga del tema',
|
||||
'themedata_index' => 'Datos temáticos',
|
||||
'themedata_saveinfo' => 'Página de adición / edición de datos temáticos',
|
||||
'themedata_save' => 'Añadir / editar datos temáticos',
|
||||
'themedata_upload' => 'Carga de datos temáticos',
|
||||
'themedata_delete' => 'Eliminación de datos temáticos',
|
||||
'themedata_download' => 'Descarga de datos temáticos',
|
||||
'slide_index' => 'Rotación de la página de inicio',
|
||||
'slide_saveinfo' => 'Página de adición / edición de la rotación',
|
||||
'slide_save' => 'Añadir / editar a la rotación',
|
||||
'slide_statusupdate' => 'Actualización del Estado de rotación',
|
||||
'slide_delete' => 'Eliminación de la rotación',
|
||||
'slide_detail' => 'Detalles de la rotación',
|
||||
'screeningprice_index' => 'Precio de selección',
|
||||
'screeningprice_save' => 'Filtrar precio añadir / editar',
|
||||
'screeningprice_delete' => 'Eliminar el precio del filtro',
|
||||
'region_index' => 'Gestión regional',
|
||||
'region_save' => 'Área añadir / editar',
|
||||
'region_statusupdate' => 'Actualización del Estado regional',
|
||||
'region_delete' => 'Área eliminada',
|
||||
'region_codedata' => 'Obtención de datos de numeración regional',
|
||||
'express_index' => 'Gestión de mensajería',
|
||||
'express_save' => 'Añadir / editar mensajería',
|
||||
'express_delete' => 'Eliminación de mensajería',
|
||||
'payment_index' => 'Método de pago',
|
||||
'payment_saveinfo' => 'Página de instalación / edición del método de pago',
|
||||
'payment_save' => 'Instalación / edición del método de pago',
|
||||
'payment_delete' => 'Eliminación del método de pago',
|
||||
'payment_install' => 'Instalación del método de pago',
|
||||
'payment_statusupdate' => 'Actualización del Estado del método de pago',
|
||||
'payment_uninstall' => 'Descarga del método de pago',
|
||||
'payment_upload' => 'Método de pago cargado',
|
||||
'quicknav_index' => 'Navegación rápida',
|
||||
'quicknav_saveinfo' => 'Navegación rápida para agregar / editar páginas',
|
||||
'quicknav_save' => 'Navegación rápida añadir / editar',
|
||||
'quicknav_statusupdate' => 'Actualización del Estado de navegación rápida',
|
||||
'quicknav_delete' => 'Navegación rápida eliminada',
|
||||
'quicknav_detail' => 'Detalles de navegación rápida',
|
||||
'design_index' => 'Diseño de página',
|
||||
'design_saveinfo' => 'Diseño de página para agregar / editar páginas',
|
||||
'design_save' => 'Diseño de página añadir / editar',
|
||||
'design_statusupdate' => 'Actualización del Estado de diseño de la página',
|
||||
'design_upload' => 'Importación de diseño de página',
|
||||
'design_download' => 'Descarga de diseño de página',
|
||||
'design_sync' => 'Página de inicio de sincronización de diseño de página',
|
||||
'design_delete' => 'Diseño de página eliminado',
|
||||
'navigation_index' => 'Gestión de la navegación',
|
||||
'navigation_save' => 'Navegación añadir / editar',
|
||||
'navigation_delete' => 'Eliminar navegación',
|
||||
'navigation_statusupdate' => 'Actualización del Estado de navegación',
|
||||
'customview_index' => 'Página personalizada',
|
||||
'customview_saveinfo' => 'Página personalizada para agregar / editar Página',
|
||||
'customview_save' => 'Añadir / editar página personalizada',
|
||||
'customview_delete' => 'Eliminar página personalizada',
|
||||
'customview_statusupdate' => 'Actualización del Estado de la página personalizada',
|
||||
'customview_detail' => 'Detalles de la página personalizada',
|
||||
'link_index' => 'Enlace amistoso',
|
||||
'link_saveinfo' => 'Enlace de amistad para agregar / editar Página',
|
||||
'link_save' => 'Añadir / editar enlaces de amistad',
|
||||
'link_delete' => 'Eliminar enlaces de amistad',
|
||||
'link_statusupdate' => 'Actualización del Estado del enlace de amistad',
|
||||
'link_detail' => 'Detalles del enlace amistoso',
|
||||
'themeadmin_index' => 'Gestión temática',
|
||||
'themeadmin_save' => 'Gestión temática añadir / editar',
|
||||
'themeadmin_upload' => 'Instalación de carga de temas',
|
||||
'themeadmin_delete' => 'Eliminación del tema',
|
||||
'themeadmin_download' => 'Descarga del tema',
|
||||
'themeadmin_market' => 'Plantilla temática Mercado',
|
||||
'themedata_index' => 'Datos temáticos',
|
||||
'themedata_saveinfo' => 'Página de adición / edición de datos temáticos',
|
||||
'themedata_save' => 'Añadir / editar datos temáticos',
|
||||
'themedata_upload' => 'Carga de datos temáticos',
|
||||
'themedata_delete' => 'Eliminación de datos temáticos',
|
||||
'themedata_download' => 'Descarga de datos temáticos',
|
||||
'slide_index' => 'Rotación de la página de inicio',
|
||||
'slide_saveinfo' => 'Página de adición / edición de la rotación',
|
||||
'slide_save' => 'Añadir / editar a la rotación',
|
||||
'slide_statusupdate' => 'Actualización del Estado de rotación',
|
||||
'slide_delete' => 'Eliminación de la rotación',
|
||||
'slide_detail' => 'Detalles de la rotación',
|
||||
'screeningprice_index' => 'Precio de selección',
|
||||
'screeningprice_save' => 'Filtrar precio añadir / editar',
|
||||
'screeningprice_delete' => 'Eliminar el precio del filtro',
|
||||
'region_index' => 'Gestión regional',
|
||||
'region_save' => 'Área añadir / editar',
|
||||
'region_statusupdate' => 'Actualización del Estado regional',
|
||||
'region_delete' => 'Área eliminada',
|
||||
'region_codedata' => 'Obtención de datos de numeración regional',
|
||||
'express_index' => 'Gestión de mensajería',
|
||||
'express_save' => 'Añadir / editar mensajería',
|
||||
'express_delete' => 'Eliminación de mensajería',
|
||||
'payment_index' => 'Método de pago',
|
||||
'payment_saveinfo' => 'Página de instalación / edición del método de pago',
|
||||
'payment_save' => 'Instalación / edición del método de pago',
|
||||
'payment_delete' => 'Eliminación del método de pago',
|
||||
'payment_install' => 'Instalación del método de pago',
|
||||
'payment_statusupdate' => 'Actualización del Estado del método de pago',
|
||||
'payment_uninstall' => 'Descarga del método de pago',
|
||||
'payment_upload' => 'Método de pago cargado',
|
||||
'payment_market' => 'Mercado de complementos de pago',
|
||||
'quicknav_index' => 'Navegación rápida',
|
||||
'quicknav_saveinfo' => 'Navegación rápida para agregar / editar páginas',
|
||||
'quicknav_save' => 'Navegación rápida añadir / editar',
|
||||
'quicknav_statusupdate' => 'Actualización del Estado de navegación rápida',
|
||||
'quicknav_delete' => 'Navegación rápida eliminada',
|
||||
'quicknav_detail' => 'Detalles de navegación rápida',
|
||||
'design_index' => 'Diseño de página',
|
||||
'design_saveinfo' => 'Diseño de página para agregar / editar páginas',
|
||||
'design_save' => 'Diseño de página añadir / editar',
|
||||
'design_statusupdate' => 'Actualización del Estado de diseño de la página',
|
||||
'design_upload' => 'Importación de diseño de página',
|
||||
'design_download' => 'Descarga de diseño de página',
|
||||
'design_sync' => 'Página de inicio de sincronización de diseño de página',
|
||||
'design_delete' => 'Diseño de página eliminado',
|
||||
'design_market' => 'Plantilla de diseño de página Mercado',
|
||||
'attachment_index' => 'Gestión de Anexos',
|
||||
'attachment_detail' => 'Detalles de la gestión de Anexos',
|
||||
'attachment_saveinfo' => 'Gestión de accesorios añadir / editar Página',
|
||||
'attachment_save' => 'Gestión de anexos añadir / editar',
|
||||
'attachment_delete' => 'Eliminación de la gestión de Anexos',
|
||||
'attachmentcategory_index' => 'Clasificación de los anexos',
|
||||
'attachmentcategory_save' => 'Clasificación de anexos añadir / editar',
|
||||
'attachmentcategory_statusupdate' => 'Actualización del Estado del Anexo',
|
||||
'attachmentcategory_delete' => 'Eliminación de la clasificación de Anexos',
|
||||
]
|
||||
],
|
||||
'brand_index' => [
|
||||
@ -1565,29 +1622,69 @@ return [
|
||||
'app_index' => [
|
||||
'name' => 'Gestión de teléfonos móviles',
|
||||
'item' => [
|
||||
'appconfig_index' => 'Configuración básica',
|
||||
'appconfig_save' => 'Guardar configuración básica',
|
||||
'apphomenav_index' => 'Navegación en la página de inicio',
|
||||
'apphomenav_saveinfo' => 'Página de inicio navegación añadir / editar Página',
|
||||
'apphomenav_save' => 'Navegación de página de inicio añadir / editar',
|
||||
'apphomenav_statusupdate' => 'Actualización del Estado de navegación de la página de inicio',
|
||||
'apphomenav_delete' => 'Eliminar la navegación de la página de inicio',
|
||||
'apphomenav_detail' => 'Detalles de la navegación en la página de inicio',
|
||||
'appcenternav_index' => 'Navegación del Centro de usuarios',
|
||||
'appcenternav_saveinfo' => 'Navegación del Centro de usuarios para agregar / editar páginas',
|
||||
'appcenternav_save' => 'Navegación del Centro de usuarios añadir / editar',
|
||||
'appcenternav_statusupdate' => 'Actualización del Estado de navegación del Centro de usuarios',
|
||||
'appcenternav_delete' => 'Eliminación de navegación del Centro de usuarios',
|
||||
'appcenternav_detail' => 'Detalles de navegación del Centro de usuarios',
|
||||
'appmini_index' => 'Lista de applets',
|
||||
'appmini_created' => 'Generación de pequeños paquetes',
|
||||
'appmini_delete' => 'Eliminación de paquetes pequeños',
|
||||
'appmini_themeupload' => 'Carga del tema del applet',
|
||||
'appmini_themesave' => 'Cambio de tema del applet',
|
||||
'appmini_themedelete' => 'Cambio de tema del applet',
|
||||
'appmini_themedownload' => 'Descarga del tema del applet',
|
||||
'appmini_config' => 'Configuración del applet',
|
||||
'appmini_save' => 'Guardar la configuración del applet',
|
||||
'appconfig_index' => 'Configuración básica',
|
||||
'appconfig_save' => 'Guardar configuración básica',
|
||||
'appmini_index' => 'Lista de applets',
|
||||
'appmini_created' => 'Generación de pequeños paquetes',
|
||||
'appmini_delete' => 'Eliminación de paquetes pequeños',
|
||||
'appmini_themeupload' => 'Carga del tema del applet',
|
||||
'appmini_themesave' => 'Cambio de tema del applet',
|
||||
'appmini_themedelete' => 'Cambio de tema del applet',
|
||||
'appmini_themedownload' => 'Descarga del tema del applet',
|
||||
'appmini_config' => 'Configuración del applet',
|
||||
'appmini_save' => 'Guardar la configuración del applet',
|
||||
'diy_index' => 'Decoración de bricolaje',
|
||||
'diy_saveinfo' => 'Página añadir / editar decoración de bricolaje',
|
||||
'diy_save' => 'Añadir / editar decoración de bricolaje',
|
||||
'diy_statusupdate' => 'Actualización del Estado de decoración de bricolaje',
|
||||
'diy_delete' => 'Decoración de bricolaje eliminada',
|
||||
'diy_download' => 'Exportación de decoración de bricolaje',
|
||||
'diy_upload' => 'Importación de decoración de bricolaje',
|
||||
'diy_detail' => 'Detalles de la decoración de bricolaje',
|
||||
'diy_preview' => 'Vista previa de la decoración de bricolaje',
|
||||
'diy_market' => 'Plantilla de decoración de bricolaje Mercado',
|
||||
'diy_apptabbar' => 'Menú inferior de la decoración de bricolaje',
|
||||
'diyapi_init' => 'Decoración de bricolaje - iniciación pública',
|
||||
'diyapi_attachmentcategory' => 'Decoración de bricolaje - Clasificación de accesorios',
|
||||
'diyapi_attachmentlist' => 'Decoración de bricolaje - Lista de accesorios',
|
||||
'diyapi_attachmentsave' => 'Decoración de bricolaje - conservación de accesorios',
|
||||
'diyapi_attachmentdelete' => 'Decoración de bricolaje - Eliminación de accesorios',
|
||||
'diyapi_attachmentupload' => 'Decoración de bricolaje - carga de accesorios',
|
||||
'diyapi_attachmentcatch' => 'Decoración de bricolaje - descarga remota de accesorios',
|
||||
'diyapi_attachmentscanuploaddata' => 'Decoración de bricolaje - Código de escaneo de accesorios para cargar datos',
|
||||
'diyapi_attachmentmovecategory' => 'Decoración de bricolaje - Clasificación móvil de accesorios',
|
||||
'diyapi_attachmentcategorysave' => 'Decoración de bricolaje - conservación clasificada de accesorios',
|
||||
'diyapi_attachmentcategorydelete' => 'Decoración de bricolaje - Eliminación de la clasificación de accesorios',
|
||||
'diyapi_goodslist' => 'Decoración de bricolaje - Lista de productos',
|
||||
'diyapi_customviewlist' => 'Decoración de bricolaje - Lista de páginas personalizadas',
|
||||
'diyapi_designlist' => 'Decoración de bricolaje - Lista de diseños de páginas',
|
||||
'diyapi_articlelist' => 'Decoración de bricolaje - Lista de artículos',
|
||||
'diyapi_brandlist' => 'Decoración de bricolaje - Lista de marcas',
|
||||
'diyapi_diylist' => 'Decoración de bricolaje - Lista de decoración de bricolaje',
|
||||
'diyapi_diydetail' => 'Decoración de bricolaje - detalles de la decoración de bricolaje',
|
||||
'diyapi_diysave' => 'Decoración de bricolaje - conservación de la decoración de bricolaje',
|
||||
'diyapi_diyupload' => 'Decoración de bricolaje - importación de decoración de bricolaje',
|
||||
'diyapi_diydownload' => 'Decoración de bricolaje - exportación de decoración de bricolaje',
|
||||
'diyapi_diyinstall' => 'Decoración de bricolaje - instalación de ENCOFRADOS de decoración de bricolaje',
|
||||
'diyapi_diymarket' => 'Decoración de bricolaje - mercado de ENCOFRADOS de decoración de bricolaje',
|
||||
'diyapi_goodsappointdata' => 'Decoración de bricolaje - datos de designación de productos',
|
||||
'diyapi_goodsautodata' => 'Decoración de bricolaje - datos automáticos de la mercancía',
|
||||
'diyapi_articleappointdata' => 'Decoración de bricolaje - datos especificados en el artículo',
|
||||
'diyapi_articleautodata' => 'Decoración de bricolaje - datos automáticos del artículo',
|
||||
'diyapi_userheaddata' => 'Decoración de bricolaje - datos de la cabeza del usuario',
|
||||
'diyapi_custominit' => 'Decoración de bricolaje - iniciación personalizada',
|
||||
'apphomenav_index' => 'Navegación en la página de inicio',
|
||||
'apphomenav_saveinfo' => 'Página de inicio navegación añadir / editar Página',
|
||||
'apphomenav_save' => 'Navegación de página de inicio añadir / editar',
|
||||
'apphomenav_statusupdate' => 'Actualización del Estado de navegación de la página de inicio',
|
||||
'apphomenav_delete' => 'Eliminar la navegación de la página de inicio',
|
||||
'apphomenav_detail' => 'Detalles de la navegación en la página de inicio',
|
||||
'appcenternav_index' => 'Navegación del Centro de usuarios',
|
||||
'appcenternav_saveinfo' => 'Navegación del Centro de usuarios para agregar / editar páginas',
|
||||
'appcenternav_save' => 'Navegación del Centro de usuarios añadir / editar',
|
||||
'appcenternav_statusupdate' => 'Actualización del Estado de navegación del Centro de usuarios',
|
||||
'appcenternav_delete' => 'Eliminación de navegación del Centro de usuarios',
|
||||
'appcenternav_detail' => 'Detalles de navegación del Centro de usuarios',
|
||||
]
|
||||
],
|
||||
'article_index' => [
|
||||
@ -1621,6 +1718,16 @@ return [
|
||||
'integrallog_detail' => 'Detalles del registro de puntos',
|
||||
'smslog_index' => 'Registro de mensajes cortos',
|
||||
'smslog_detail' => 'Detalles del registro de mensajes cortos',
|
||||
'smslog_delete' => 'Eliminación del registro de mensajes cortos',
|
||||
'smslog_alldelete' => 'Todos los registros de mensajes cortos se eliminan',
|
||||
'emaillog_index' => 'Registro de correo',
|
||||
'emaillog_detail' => 'Detalles del registro de correo',
|
||||
'emaillog_delete' => 'Eliminación del registro de correo',
|
||||
'emaillog_alldelete' => 'Eliminar todos los registros de correo',
|
||||
'errorlog_index' => 'Registro de errores',
|
||||
'errorlog_detail' => 'Detalles del registro de errores',
|
||||
'errorlog_delete' => 'Eliminación del registro de errores',
|
||||
'errorlog_alldelete' => 'Todos los registros de errores se eliminan',
|
||||
]
|
||||
],
|
||||
'store_index' => [
|
||||
@ -1637,6 +1744,7 @@ return [
|
||||
'pluginsadmin_install' => 'Instalación de aplicaciones',
|
||||
'pluginsadmin_uninstall' => 'Desinstalación de aplicaciones',
|
||||
'pluginsadmin_sortsave' => 'Ordenar y guardar aplicaciones',
|
||||
'pluginsadmin_market' => 'Mercado de plug - INS de aplicaciones',
|
||||
'store_index' => 'Tienda de aplicaciones',
|
||||
'packageinstall_index' => 'Página de instalación de paquetes de software',
|
||||
'packageinstall_install' => 'Instalación de paquetes de software',
|
||||
|
@ -284,6 +284,7 @@ return [
|
||||
'base_nav_title' => '品牌',
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'id' => '品牌ID',
|
||||
'name' => '名称',
|
||||
'describe' => '描述',
|
||||
'logo' => 'LOGO',
|
||||
@ -336,7 +337,9 @@ return [
|
||||
'save_view_tips' => '请先保存再预览效果',
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'info' => '标题',
|
||||
'id' => '数据ID',
|
||||
'logo' => 'logo',
|
||||
'name' => '名称',
|
||||
'is_enable' => '是否启用',
|
||||
'is_header' => '是否头部',
|
||||
'is_footer' => '是否尾部',
|
||||
@ -359,8 +362,8 @@ return [
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'id' => '数据ID',
|
||||
'info' => '基础信息',
|
||||
'info_placeholder' => '请输入名称',
|
||||
'logo' => 'logo',
|
||||
'name' => '名称',
|
||||
'access_count' => '访问次数',
|
||||
'is_enable' => '是否启用',
|
||||
'is_header' => '是否含头部',
|
||||
@ -888,7 +891,7 @@ return [
|
||||
['name' => '未安装', 'type' => 1],
|
||||
],
|
||||
'base_nav_title' => '支付方式',
|
||||
'base_upload_payment_name' => '上传支付',
|
||||
'base_upload_payment_name' => '导入支付',
|
||||
'base_nav_store_payment_name' => '更多支付方式下载',
|
||||
'upload_top_list_tips' => [
|
||||
[
|
||||
@ -938,7 +941,7 @@ return [
|
||||
['name' => '当前主题', 'type' => 'index'],
|
||||
['name' => '主题安装', 'type' => 'upload'],
|
||||
],
|
||||
'base_upload_theme_name' => '上传主题',
|
||||
'base_upload_theme_name' => '导入主题',
|
||||
'base_nav_store_theme_name' => '更多主题下载',
|
||||
'list_author_title' => '作者',
|
||||
'list_version_title' => '适用版本',
|
||||
@ -1082,11 +1085,7 @@ return [
|
||||
],
|
||||
// 基础导航
|
||||
'base_nav_title' => '应用',
|
||||
'base_nav_list' => [
|
||||
['name' => '应用管理', 'type' => 'index'],
|
||||
['name' => '上传应用', 'type' => 'upload'],
|
||||
],
|
||||
'base_upload_application_name' => '上传应用',
|
||||
'base_upload_application_name' => '导入应用',
|
||||
'base_nav_more_plugins_download_name' => '更多插件下载',
|
||||
// 基础页面
|
||||
'base_search_input_placeholder' => '请输入名称/描述',
|
||||
@ -1207,6 +1206,52 @@ return [
|
||||
],
|
||||
],
|
||||
|
||||
// diy装修
|
||||
'diy' => [
|
||||
'nav_store_diy_name' => '更多diy模板下载',
|
||||
'nav_apptabbar_name' => '底部菜单',
|
||||
'upload_list_tips' => [
|
||||
'1. 选择已下载的diy设计zip包',
|
||||
'2. 导入将自动新增一条数据',
|
||||
],
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'id' => '数据ID',
|
||||
'md5_key' => '唯一标识',
|
||||
'logo' => 'logo',
|
||||
'name' => '名称',
|
||||
'describe' => '描述',
|
||||
'access_count' => '访问次数',
|
||||
'is_enable' => '是否启用',
|
||||
'add_time' => '创建时间',
|
||||
'upd_time' => '更新时间',
|
||||
],
|
||||
],
|
||||
|
||||
// 附件
|
||||
'attachment' => [
|
||||
'base_nav_title' => '附件',
|
||||
'category_admin_title' => '分类管理',
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'category_name' => '分类',
|
||||
'type_name' => '类型',
|
||||
'info' => '附件',
|
||||
'original' => '原文件名',
|
||||
'title' => '新文件名',
|
||||
'size' => '大小',
|
||||
'ext' => '后缀',
|
||||
'url' => 'url地址 ',
|
||||
'hash' => 'hash',
|
||||
'add_time' => '创建时间',
|
||||
],
|
||||
],
|
||||
|
||||
// 附件分类
|
||||
'attachmentcategory' => [
|
||||
'base_nav_title' => '附件分类',
|
||||
],
|
||||
|
||||
// 积分日志
|
||||
'integrallog' => [
|
||||
// 动态表格
|
||||
@ -1280,6 +1325,23 @@ return [
|
||||
],
|
||||
],
|
||||
|
||||
// 错误日志
|
||||
'errorlog' => [
|
||||
// 动态表格
|
||||
'form_table' => [
|
||||
'message' => '错误信息',
|
||||
'file' => '错误文件路径',
|
||||
'line' => '错误文件行号',
|
||||
'code' => '错误编码',
|
||||
'ip' => '请求ip',
|
||||
'uri' => 'uri地址段',
|
||||
'request_params' => '请求参数',
|
||||
'memory_use' => '使用内存',
|
||||
'tsc' => '耗时(秒)',
|
||||
'add_time' => '添加时间',
|
||||
],
|
||||
],
|
||||
|
||||
// sql控制台
|
||||
'sqlconsole' => [
|
||||
'top_tips' => 'PS:非开发人员请不要随意执行任何SQL语句,操作可能导致将整个系统数据库被删除。',
|
||||
@ -1461,75 +1523,87 @@ return [
|
||||
'navigation_index' => [
|
||||
'name' => '网站',
|
||||
'item' => [
|
||||
'navigation_index' => '导航管理',
|
||||
'navigation_save' => '导航添加/编辑',
|
||||
'navigation_delete' => '导航删除',
|
||||
'navigation_statusupdate' => '导航状态更新',
|
||||
'customview_index' => '自定义页面',
|
||||
'customview_saveinfo' => '自定义页面添加/编辑页面',
|
||||
'customview_save' => '自定义页面添加/编辑',
|
||||
'customview_delete' => '自定义页面删除',
|
||||
'customview_statusupdate' => '自定义页面状态更新',
|
||||
'customview_detail' => '自定义页面详情',
|
||||
'link_index' => '友情链接',
|
||||
'link_saveinfo' => '友情链接添加/编辑页面',
|
||||
'link_save' => '友情链接添加/编辑',
|
||||
'link_delete' => '友情链接删除',
|
||||
'link_statusupdate' => '友情链接状态更新',
|
||||
'link_detail' => '友情链接详情',
|
||||
'themeadmin_index' => '主题管理',
|
||||
'themeadmin_save' => '主题管理添加/编辑',
|
||||
'themeadmin_upload' => '主题上传安装',
|
||||
'themeadmin_delete' => '主题删除',
|
||||
'themeadmin_download' => '主题下载',
|
||||
'themedata_index' => '主题数据',
|
||||
'themedata_saveinfo' => '主题数据添加/编辑页面',
|
||||
'themedata_save' => '主题数据添加/编辑',
|
||||
'themedata_upload' => '主题数据上传',
|
||||
'themedata_delete' => '主题数据删除',
|
||||
'themedata_download' => '主题数据下载',
|
||||
'themedata_detail' => '主题数据详情',
|
||||
'themedata_goodssearch' => '主题数据商品搜索',
|
||||
'themedata_articlesearch' => '主题数据文章搜索',
|
||||
'slide_index' => '首页轮播',
|
||||
'slide_saveinfo' => '轮播添加/编辑页面',
|
||||
'slide_save' => '轮播添加/编辑',
|
||||
'slide_statusupdate' => '轮播状态更新',
|
||||
'slide_delete' => '轮播删除',
|
||||
'slide_detail' => '轮播详情',
|
||||
'screeningprice_index' => '筛选价格',
|
||||
'screeningprice_save' => '筛选价格添加/编辑',
|
||||
'screeningprice_delete' => '筛选价格删除',
|
||||
'region_index' => '地区管理',
|
||||
'region_save' => '地区添加/编辑',
|
||||
'region_statusupdate' => '地区状态更新',
|
||||
'region_delete' => '地区删除',
|
||||
'region_codedata' => '获取地区编号数据',
|
||||
'express_index' => '快递管理',
|
||||
'express_save' => '快递添加/编辑',
|
||||
'express_delete' => '快递删除',
|
||||
'payment_index' => '支付方式',
|
||||
'payment_saveinfo' => '支付方式安装/编辑页面',
|
||||
'payment_save' => '支付方式安装/编辑',
|
||||
'payment_delete' => '支付方式删除',
|
||||
'payment_install' => '支付方式安装',
|
||||
'payment_statusupdate' => '支付方式状态更新',
|
||||
'payment_uninstall' => '支付方式卸载',
|
||||
'payment_upload' => '支付方式上传',
|
||||
'quicknav_index' => '快捷导航',
|
||||
'quicknav_saveinfo' => '快捷导航添加/编辑页面',
|
||||
'quicknav_save' => '快捷导航添加/编辑',
|
||||
'quicknav_statusupdate' => '快捷导航状态更新',
|
||||
'quicknav_delete' => '快捷导航删除',
|
||||
'quicknav_detail' => '快捷导航详情',
|
||||
'design_index' => '页面设计',
|
||||
'design_saveinfo' => '页面设计添加/编辑页面',
|
||||
'design_save' => '页面设计添加/编辑',
|
||||
'design_statusupdate' => '页面设计状态更新',
|
||||
'design_upload' => '页面设计导入',
|
||||
'design_download' => '页面设计下载',
|
||||
'design_sync' => '页面设计同步首页',
|
||||
'design_delete' => '页面设计删除',
|
||||
'navigation_index' => '导航管理',
|
||||
'navigation_save' => '导航添加/编辑',
|
||||
'navigation_delete' => '导航删除',
|
||||
'navigation_statusupdate' => '导航状态更新',
|
||||
'customview_index' => '自定义页面',
|
||||
'customview_saveinfo' => '自定义页面添加/编辑页面',
|
||||
'customview_save' => '自定义页面添加/编辑',
|
||||
'customview_delete' => '自定义页面删除',
|
||||
'customview_statusupdate' => '自定义页面状态更新',
|
||||
'customview_detail' => '自定义页面详情',
|
||||
'link_index' => '友情链接',
|
||||
'link_saveinfo' => '友情链接添加/编辑页面',
|
||||
'link_save' => '友情链接添加/编辑',
|
||||
'link_delete' => '友情链接删除',
|
||||
'link_statusupdate' => '友情链接状态更新',
|
||||
'link_detail' => '友情链接详情',
|
||||
'themeadmin_index' => '主题管理',
|
||||
'themeadmin_save' => '主题管理添加/编辑',
|
||||
'themeadmin_upload' => '主题上传安装',
|
||||
'themeadmin_delete' => '主题删除',
|
||||
'themeadmin_download' => '主题下载',
|
||||
'themeadmin_market' => '主题模板市场',
|
||||
'themedata_index' => '主题数据',
|
||||
'themedata_saveinfo' => '主题数据添加/编辑页面',
|
||||
'themedata_save' => '主题数据添加/编辑',
|
||||
'themedata_upload' => '主题数据上传',
|
||||
'themedata_delete' => '主题数据删除',
|
||||
'themedata_download' => '主题数据下载',
|
||||
'themedata_detail' => '主题数据详情',
|
||||
'themedata_goodssearch' => '主题数据商品搜索',
|
||||
'themedata_articlesearch' => '主题数据文章搜索',
|
||||
'slide_index' => '首页轮播',
|
||||
'slide_saveinfo' => '轮播添加/编辑页面',
|
||||
'slide_save' => '轮播添加/编辑',
|
||||
'slide_statusupdate' => '轮播状态更新',
|
||||
'slide_delete' => '轮播删除',
|
||||
'slide_detail' => '轮播详情',
|
||||
'screeningprice_index' => '筛选价格',
|
||||
'screeningprice_save' => '筛选价格添加/编辑',
|
||||
'screeningprice_delete' => '筛选价格删除',
|
||||
'region_index' => '地区管理',
|
||||
'region_save' => '地区添加/编辑',
|
||||
'region_statusupdate' => '地区状态更新',
|
||||
'region_delete' => '地区删除',
|
||||
'region_codedata' => '获取地区编号数据',
|
||||
'express_index' => '快递管理',
|
||||
'express_save' => '快递添加/编辑',
|
||||
'express_delete' => '快递删除',
|
||||
'payment_index' => '支付方式',
|
||||
'payment_saveinfo' => '支付方式安装/编辑页面',
|
||||
'payment_save' => '支付方式安装/编辑',
|
||||
'payment_delete' => '支付方式删除',
|
||||
'payment_install' => '支付方式安装',
|
||||
'payment_statusupdate' => '支付方式状态更新',
|
||||
'payment_uninstall' => '支付方式卸载',
|
||||
'payment_upload' => '支付方式上传',
|
||||
'payment_market' => '支付插件市场',
|
||||
'quicknav_index' => '快捷导航',
|
||||
'quicknav_saveinfo' => '快捷导航添加/编辑页面',
|
||||
'quicknav_save' => '快捷导航添加/编辑',
|
||||
'quicknav_statusupdate' => '快捷导航状态更新',
|
||||
'quicknav_delete' => '快捷导航删除',
|
||||
'quicknav_detail' => '快捷导航详情',
|
||||
'design_index' => '页面设计',
|
||||
'design_saveinfo' => '页面设计添加/编辑页面',
|
||||
'design_save' => '页面设计添加/编辑',
|
||||
'design_statusupdate' => '页面设计状态更新',
|
||||
'design_upload' => '页面设计导入',
|
||||
'design_download' => '页面设计下载',
|
||||
'design_sync' => '页面设计同步首页',
|
||||
'design_delete' => '页面设计删除',
|
||||
'design_market' => '页面设计模板市场',
|
||||
'attachment_index' => '附件管理',
|
||||
'attachment_detail' => '附件管理详情',
|
||||
'attachment_saveinfo' => '附件管理添加/编辑页面',
|
||||
'attachment_save' => '附件管理添加/编辑',
|
||||
'attachment_delete' => '附件管理删除',
|
||||
'attachmentcategory_index' => '附件分类',
|
||||
'attachmentcategory_save' => '附件分类添加/编辑',
|
||||
'attachmentcategory_statusupdate' => '附件状态更新',
|
||||
'attachmentcategory_delete' => '附件分类删除',
|
||||
]
|
||||
],
|
||||
'brand_index' => [
|
||||
@ -1569,29 +1643,69 @@ return [
|
||||
'app_index' => [
|
||||
'name' => '手机',
|
||||
'item' => [
|
||||
'appconfig_index' => '基础配置',
|
||||
'appconfig_save' => '基础配置保存',
|
||||
'apphomenav_index' => '首页导航',
|
||||
'apphomenav_saveinfo' => '首页导航添加/编辑页面',
|
||||
'apphomenav_save' => '首页导航添加/编辑',
|
||||
'apphomenav_statusupdate' => '首页导航状态更新',
|
||||
'apphomenav_delete' => '首页导航删除',
|
||||
'apphomenav_detail' => '首页导航详情',
|
||||
'appcenternav_index' => '用户中心导航',
|
||||
'appcenternav_saveinfo' => '用户中心导航添加/编辑页面',
|
||||
'appcenternav_save' => '用户中心导航添加/编辑',
|
||||
'appcenternav_statusupdate' => '用户中心导航状态更新',
|
||||
'appcenternav_delete' => '用户中心导航删除',
|
||||
'appcenternav_detail' => '用户中心导航详情',
|
||||
'appmini_index' => '小程序列表',
|
||||
'appmini_created' => '小程序包生成',
|
||||
'appmini_delete' => '小程序包删除',
|
||||
'appmini_themeupload' => '小程序主题上传',
|
||||
'appmini_themesave' => '小程序主题切换',
|
||||
'appmini_themedelete' => '小程序主题切换',
|
||||
'appmini_themedownload' => '小程序主题下载',
|
||||
'appmini_config' => '小程序配置',
|
||||
'appmini_save' => '小程序配置保存',
|
||||
'appconfig_index' => '基础配置',
|
||||
'appconfig_save' => '基础配置保存',
|
||||
'appmini_index' => '小程序列表',
|
||||
'appmini_created' => '小程序包生成',
|
||||
'appmini_delete' => '小程序包删除',
|
||||
'appmini_themeupload' => '小程序主题上传',
|
||||
'appmini_themesave' => '小程序主题切换',
|
||||
'appmini_themedelete' => '小程序主题切换',
|
||||
'appmini_themedownload' => '小程序主题下载',
|
||||
'appmini_config' => '小程序配置',
|
||||
'appmini_save' => '小程序配置保存',
|
||||
'diy_index' => 'DIY装修',
|
||||
'diy_saveinfo' => 'DIY装修添加/编辑页面',
|
||||
'diy_save' => 'DIY装修添加/编辑',
|
||||
'diy_statusupdate' => 'DIY装修状态更新',
|
||||
'diy_delete' => 'DIY装修删除',
|
||||
'diy_download' => 'DIY装修导出',
|
||||
'diy_upload' => 'DIY装修导入',
|
||||
'diy_detail' => 'DIY装修详情',
|
||||
'diy_preview' => 'DIY装修预览',
|
||||
'diy_market' => 'DIY装修模板市场',
|
||||
'diy_apptabbar' => 'DIY装修底部菜单',
|
||||
'diyapi_init' => 'DIY装修-公共初始化',
|
||||
'diyapi_attachmentcategory' => 'DIY装修-附件分类',
|
||||
'diyapi_attachmentlist' => 'DIY装修-附件列表',
|
||||
'diyapi_attachmentsave' => 'DIY装修-附件保存',
|
||||
'diyapi_attachmentdelete' => 'DIY装修-附件删除',
|
||||
'diyapi_attachmentupload' => 'DIY装修-附件上传',
|
||||
'diyapi_attachmentcatch' => 'DIY装修-附件远程下载',
|
||||
'diyapi_attachmentscanuploaddata' => 'DIY装修-附件扫码上传数据',
|
||||
'diyapi_attachmentmovecategory' => 'DIY装修-附件移动分类',
|
||||
'diyapi_attachmentcategorysave' => 'DIY装修-附件分类保存',
|
||||
'diyapi_attachmentcategorydelete' => 'DIY装修-附件分类删除',
|
||||
'diyapi_goodslist' => 'DIY装修-商品列表',
|
||||
'diyapi_customviewlist' => 'DIY装修-自定义页面列表',
|
||||
'diyapi_designlist' => 'DIY装修-页面设计列表',
|
||||
'diyapi_articlelist' => 'DIY装修-文章列表',
|
||||
'diyapi_brandlist' => 'DIY装修-品牌列表',
|
||||
'diyapi_diylist' => 'DIY装修-DIY装修列表',
|
||||
'diyapi_diydetail' => 'DIY装修-DIY装修详情',
|
||||
'diyapi_diysave' => 'DIY装修-DIY装修保存',
|
||||
'diyapi_diyupload' => 'DIY装修-DIY装修导入',
|
||||
'diyapi_diydownload' => 'DIY装修-DIY装修导出',
|
||||
'diyapi_diyinstall' => 'DIY装修-DIY装修模板安装',
|
||||
'diyapi_diymarket' => 'DIY装修-DIY装修模板市场',
|
||||
'diyapi_goodsappointdata' => 'DIY装修-商品指定数据',
|
||||
'diyapi_goodsautodata' => 'DIY装修-商品自动数据',
|
||||
'diyapi_articleappointdata' => 'DIY装修-文章指定数据',
|
||||
'diyapi_articleautodata' => 'DIY装修-文章自动数据',
|
||||
'diyapi_userheaddata' => 'DIY装修-用户头部数据',
|
||||
'diyapi_custominit' => 'DIY装修-自定义初始化',
|
||||
'apphomenav_index' => '首页导航',
|
||||
'apphomenav_saveinfo' => '首页导航添加/编辑页面',
|
||||
'apphomenav_save' => '首页导航添加/编辑',
|
||||
'apphomenav_statusupdate' => '首页导航状态更新',
|
||||
'apphomenav_delete' => '首页导航删除',
|
||||
'apphomenav_detail' => '首页导航详情',
|
||||
'appcenternav_index' => '用户中心导航',
|
||||
'appcenternav_saveinfo' => '用户中心导航添加/编辑页面',
|
||||
'appcenternav_save' => '用户中心导航添加/编辑',
|
||||
'appcenternav_statusupdate' => '用户中心导航状态更新',
|
||||
'appcenternav_delete' => '用户中心导航删除',
|
||||
'appcenternav_detail' => '用户中心导航详情',
|
||||
]
|
||||
],
|
||||
'article_index' => [
|
||||
@ -1625,6 +1739,16 @@ return [
|
||||
'integrallog_detail' => '积分日志详情',
|
||||
'smslog_index' => '短信日志',
|
||||
'smslog_detail' => '短信日志详情',
|
||||
'smslog_delete' => '短信日志删除',
|
||||
'smslog_alldelete' => '短信日志全部删除',
|
||||
'emaillog_index' => '邮件日志',
|
||||
'emaillog_detail' => '邮件日志详情',
|
||||
'emaillog_delete' => '邮件日志删除',
|
||||
'emaillog_alldelete' => '邮件日志全部删除',
|
||||
'errorlog_index' => '错误日志',
|
||||
'errorlog_detail' => '错误日志详情',
|
||||
'errorlog_delete' => '错误日志删除',
|
||||
'errorlog_alldelete' => '错误日志全部删除',
|
||||
]
|
||||
],
|
||||
'store_index' => [
|
||||
@ -1641,6 +1765,7 @@ return [
|
||||
'pluginsadmin_install' => '应用安装',
|
||||
'pluginsadmin_uninstall' => '应用卸载',
|
||||
'pluginsadmin_sortsave' => '应用排序保存',
|
||||
'pluginsadmin_market' => '应用插件市场',
|
||||
'store_index' => '应用商店',
|
||||
'packageinstall_index' => '软件包安装页面',
|
||||
'packageinstall_install' => '软件包安装',
|
||||
|
@ -23,7 +23,7 @@
|
||||
<span>{{:MyLang('agreement.view_detail_name')}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<textarea class="am-radius am-validate" name="{{$data.common_agreement_userlogout.only_tag}}" maxlength="105000" id="editor-tag" data-validation-message="{{$data.common_agreement_userlogout.error_tips}}">{{if !empty($data)}}{{$data.common_agreement_userlogout.value|raw}}{{/if}}</textarea>
|
||||
<textarea class="am-radius am-validate" name="{{$data.common_agreement_userlogout.only_tag}}" id="editor-tag" data-validation-message="{{$data.common_agreement_userlogout.error_tips}}">{{if !empty($data)}}{{$data.common_agreement_userlogout.value|raw}}{{/if}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
<span>{{:MyLang('agreement.view_detail_name')}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<textarea class="am-radius am-validate" name="{{$data.common_agreement_userprivacy.only_tag}}" maxlength="105000" id="editor-tag" data-validation-message="{{$data.common_agreement_userprivacy.error_tips}}">{{if !empty($data)}}{{$data.common_agreement_userprivacy.value|raw}}{{/if}}</textarea>
|
||||
<textarea class="am-radius am-validate" name="{{$data.common_agreement_userprivacy.only_tag}}" id="editor-tag" data-validation-message="{{$data.common_agreement_userprivacy.error_tips}}">{{if !empty($data)}}{{$data.common_agreement_userprivacy.value|raw}}{{/if}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
<span>{{:MyLang('agreement.view_detail_name')}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<textarea class="am-radius am-validate" name="{{$data.common_agreement_userregister.only_tag}}" maxlength="105000" id="editor-tag" data-validation-message="{{$data.common_agreement_userregister.error_tips}}">{{if !empty($data)}}{{$data.common_agreement_userregister.value|raw}}{{/if}}</textarea>
|
||||
<textarea class="am-radius am-validate" name="{{$data.common_agreement_userregister.only_tag}}" id="editor-tag" data-validation-message="{{$data.common_agreement_userregister.error_tips}}">{{if !empty($data)}}{{$data.common_agreement_userregister.value|raw}}{{/if}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-popup-submit">
|
||||
|
@ -31,6 +31,45 @@
|
||||
<div class="nav-content">
|
||||
<!-- 基础配置 -->
|
||||
<div class="item am-active" data-key="base-config-title">
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">{{$data.common_app_is_index_data_diy_mode.name}}<span class="am-form-group-label-tips">{{$data.common_app_is_index_data_diy_mode.describe}}</span></label>
|
||||
<div class="am-radio-group">
|
||||
<div>
|
||||
{{foreach :MyConst('common_is_text_list') as $v}}
|
||||
<label class="am-radio-inline">
|
||||
<input type="radio" value="{{$v.id}}" name="{{$data.common_app_is_index_data_diy_mode.only_tag}}" data-validation-message="{{$data.common_app_is_index_data_diy_mode.error_tips}}" required {{if isset($data['common_app_is_index_data_diy_mode']['value']) and $data['common_app_is_index_data_diy_mode']['value'] eq $v['id']}}checked{{/if}} data-am-ucheck>{{$v.name}}
|
||||
</label>
|
||||
{{/foreach}}
|
||||
<div class="diy-list-select am-inline-block am-margin-left-sm">
|
||||
<select name="{{$data.common_app_index_data_diy_mode_value.only_tag}}" class="am-radius chosen-select" data-placeholder="{{:MyLang('please_select_tips')}}" data-validation-message="{{$data.common_app_index_data_diy_mode_value.error_tips}}">
|
||||
<option value="">{{:MyLang('please_select_tips')}}</option>
|
||||
{{if !empty($diy_list)}}
|
||||
{{foreach $diy_list as $v}}
|
||||
<option value="{{$v.id}}" {{if !empty($data['common_app_index_data_diy_mode_value']['value']) and $data['common_app_index_data_diy_mode_value']['value'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="am-inline-block">
|
||||
<select name="{{$data.common_app_index_data_diy_mode_value.only_tag}}" class="am-radius chosen-select" data-placeholder="{{:MyLang('please_select_tips')}}" data-validation-message="{{$data.common_app_index_data_diy_mode_value.error_tips}}">
|
||||
<option value="">{{:MyLang('please_select_tips')}}</option>
|
||||
{{if !empty($site_default_index_data_list)}}
|
||||
{{foreach $site_default_index_data_list as $v}}
|
||||
{{if !empty($v['data']) and is_array($v['data']) and !empty($v['name'])}}
|
||||
<optgroup label="{{$v.name}}" class="am-color-ccc">
|
||||
{{foreach $v.data as $vs}}
|
||||
<option value="{{$vs.type}}|{{$vs.value}}" {{if !empty($data['common_app_index_data_diy_mode_value']['value']) and $data['common_app_index_data_diy_mode_value']['value'] eq $vs['type'].'|'.$vs['value']}}selected{{/if}}>{{$vs.name}}</option>
|
||||
{{/foreach}}
|
||||
</optgroup>
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</select>
|
||||
</div> -->
|
||||
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">{{$data.common_app_is_use_mobile_detail.name}}<span class="am-form-group-label-tips">{{$data.common_app_is_use_mobile_detail.describe}}</span></label>
|
||||
<div class="am-radio-group">
|
||||
|
@ -72,7 +72,7 @@
|
||||
|
||||
<div class="am-form-group">
|
||||
<label>{{:MyLang('common_service.article.form_item_content_title')}}<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<textarea class="am-radius am-validate" name="content" rows="5" minlength="10" maxlength="105000" {{if !IsMobile()}}id="editor-tag" data-url="{{:MyUrl('admin/ueditor/index', ['path_type'=>'article'])}}" placeholder="{{:MyLang('common_service.article.form_item_content_message')}}" {{else /}} placeholder="{{:MyLang('common_service.article.form_item_content_placeholder')}}" {{/if}} data-validation-message="{{:MyLang('common_service.article.form_item_content_message')}}" required>{{if !empty($data['content'])}}{{$data.content}}{{/if}}</textarea>
|
||||
<textarea class="am-radius am-validate" name="content" rows="5" minlength="10" {{if !IsMobile()}}id="editor-tag" data-url="{{:MyUrl('admin/ueditor/index', ['path_type'=>'article'])}}" placeholder="{{:MyLang('common_service.article.form_item_content_message')}}" {{else /}} placeholder="{{:MyLang('common_service.article.form_item_content_placeholder')}}" {{/if}} data-validation-message="{{:MyLang('common_service.article.form_item_content_message')}}" required>{{if !empty($data['content'])}}{{$data.content}}{{/if}}</textarea>
|
||||
</div>
|
||||
|
||||
<!-- 插件扩展数据 start -->
|
||||
|
2
app/admin/view/default/attachment/detail.html
Normal file
2
app/admin/view/default/attachment/detail.html
Normal file
@ -0,0 +1,2 @@
|
||||
<!-- 继承公共的 form -->
|
||||
{{extend name="../../../module/view/form_table/detail" /}}
|
16
app/admin/view/default/attachment/index.html
Normal file
16
app/admin/view/default/attachment/index.html
Normal file
@ -0,0 +1,16 @@
|
||||
<!-- 继承公共的 form -->
|
||||
{{extend name="../../../module/view/form_table/form" /}}
|
||||
|
||||
<!-- 表单顶部操作栏 -->
|
||||
{{block name="form_operate_top"}}
|
||||
<!-- 是否有附件分类页面权限 -->
|
||||
{{if AdminIsPower('attachmentcategory', 'index')}}
|
||||
<button type="button" class="am-btn am-btn-primary am-btn-xs am-radius submit-popup" data-url="{{:MyUrl('admin/attachmentcategory/index')}}" data-title="{{:MyLang('attachment.category_admin_title')}}" data-full-max="1" data-full-max-size="lg">
|
||||
<i class="iconfont icon-type-manage am-show-sm-only"></i>
|
||||
<span>{{:MyLang('attachment.category_admin_title')}}</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
|
||||
<!-- 父级内容 -->
|
||||
{__block__}
|
||||
{{/block}}
|
13
app/admin/view/default/attachment/module/info.html
Normal file
13
app/admin/view/default/attachment/module/info.html
Normal file
@ -0,0 +1,13 @@
|
||||
{{if !empty($module_data['type']) and !empty($module_data['url'])}}
|
||||
{{switch $module_data.type}}
|
||||
{{case image|scrawl|remote}}
|
||||
<img src="{{$module_data.url}}" data-is-download="1" data-download-name="{{if isset($module_data['original'])}}{{$module_data.original}}{{/if}}" class="am-radius am-block common-annex-view-event" width="40" height="40" />
|
||||
{{/case}}
|
||||
{{case file}}
|
||||
<span class="am-color-blue common-annex-download-event" data-value="{{$module_data.url}}" data-name="{{if isset($module_data['original'])}}{{$module_data.original}}{{/if}}" data-am-loading="{spinner: 'circle-o-notch', loadingText:'{{:MyLang('download_title')}}'}">{{:MyLang('download_title')}}</span>
|
||||
{{/case}}
|
||||
{{case video}}
|
||||
<video src="{{$module_data.url}}" data-is-download="1" data-download-name="{{if isset($module_data['original'])}}{{$module_data.original}}{{/if}}" class="am-radius am-block common-annex-view-event" data-type="video" width="40" height="40"></video>
|
||||
{{/case}}
|
||||
{{/switch}}
|
||||
{{/if}}
|
13
app/admin/view/default/attachment/module/operate.html
Normal file
13
app/admin/view/default/attachment/module/operate.html
Normal file
@ -0,0 +1,13 @@
|
||||
<!-- 操作栏 -->
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xs am-radius am-btn-block submit-popup" data-url="{{:MyUrl('admin/attachment/detail', ['id'=>$module_data['id']])}}" data-title="{{:MyLang('detail_title')}}">
|
||||
<i class="am-icon-eye"></i>
|
||||
<span>{{:MyLang('detail_title')}}</span>
|
||||
</button>
|
||||
<button type="button" class="am-btn am-btn-secondary am-btn-xs am-radius am-btn-block submit-modal" data-url="{{:MyUrl('admin/attachment/saveinfo', ['id'=>$module_data['id']])}}" data-title="{{:MyLang('edit_title')}}" data-width="400" data-height="250">
|
||||
<i class="am-icon-edit"></i>
|
||||
<span>{{:MyLang('edit_title')}}</span>
|
||||
</button>
|
||||
<button type="button" class="am-btn am-btn-danger am-btn-xs am-radius am-btn-block submit-delete" data-url="{{:MyUrl('admin/attachment/delete')}}" data-id="{{$module_data.id}}" data-key="ids">
|
||||
<i class="iconfont icon-delete"></i>
|
||||
<span>{{:MyLang('delete_title')}}</span>
|
||||
</button>
|
31
app/admin/view/default/attachment/saveinfo.html
Executable file
31
app/admin/view/default/attachment/saveinfo.html
Executable file
@ -0,0 +1,31 @@
|
||||
{{:ModuleInclude('public/header')}}
|
||||
|
||||
<!-- right content start -->
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation am-form-full-screen am-form-popup-fixed" action="{{:MyUrl('admin/attachment/save')}}" method="POST" request-type="ajax-reload" request-value="parent">
|
||||
<div class="am-form-group">
|
||||
<label>{{:MyLang('common_service.attachment.form_item_original')}}</label>
|
||||
<input type="text" name="original" class="am-radius" placeholder="{{:MyLang('common_service.attachment.form_item_original_message')}}" data-validation-message="{{:MyLang('common_service.attachment.form_item_original_message')}}" value="{{if !empty($data['original'])}}{{$data.original}}{{/if}}" required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-popup-submit">
|
||||
<input type="hidden" name="id" value="{{if !empty($data)}}{{$data.id}}{{/if}}" />
|
||||
<button type="button" class="am-btn am-btn-warning am-radius am-btn-xs am-margin-right-lg" data-am-modal-close>
|
||||
<i class="am-icon-paint-brush"></i>
|
||||
<span>{{:MyLang('cancel_title')}}</span>
|
||||
</button>
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example" data-am-loading="{spinner: 'circle-o-notch', loadingText:'{{:MyLang('confirm_title')}}'}">
|
||||
<i class="am-icon-check"></i>
|
||||
<span>{{:MyLang('confirm_title')}}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<!-- form end -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- right content end -->
|
||||
|
||||
<!-- footer start -->
|
||||
{{:ModuleInclude('public/footer')}}
|
76
app/admin/view/default/attachmentcategory/index.html
Normal file
76
app/admin/view/default/attachmentcategory/index.html
Normal file
@ -0,0 +1,76 @@
|
||||
{{:ModuleInclude('public/header')}}
|
||||
|
||||
<!-- right content start -->
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<!-- operation start -->
|
||||
<div class="am-g">
|
||||
<button class="am-btn am-btn-primary am-radius am-btn-xs tree-submit-add" data-am-modal="{target: '#data-save-win', width: 400, height: 350}">
|
||||
<i class="iconfont icon-btn-add am-show-sm-only"></i>
|
||||
<span>{{:MyLang('add_title')}}</span>
|
||||
</button>
|
||||
</div>
|
||||
<!-- operation end -->
|
||||
|
||||
<!-- save win start -->
|
||||
<div class="am-modal am-modal-no-btn" tabindex="-1" id="data-save-win">
|
||||
<div class="am-modal-dialog am-radius am-nbfc">
|
||||
<div class="am-modal-hd">
|
||||
<span data-add-title="{{:MyLang('attachmentcategory.base_nav_title')}}{{:MyLang('add_title')}}" data-edit-title="{{:MyLang('attachmentcategory.base_nav_title')}}{{:MyLang('edit_title')}}">{{:MyLang('attachmentcategory.base_nav_title')}}{{:MyLang('add_title')}}</span>
|
||||
<a href="javascript: void(0)" class="am-close am-close-spin" data-am-modal-close>×</a>
|
||||
</div>
|
||||
<div class="am-modal-bd">
|
||||
<div class="am-padding-sm">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/attachmentcategory/save')}}" method="POST" request-type="ajax-fun" request-value="TreeFormSaveBack">
|
||||
<div class="am-form-group row">
|
||||
<label>{{:MyLang('common_service.attachmentcategory.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" placeholder="{{:MyLang('common_service.attachmentcategory.form_item_name_message')}}" name="name" minlength="1" maxlength="60" data-validation-message="{{:MyLang('common_service.attachmentcategory.form_item_name_message')}}" class="am-radius" required />
|
||||
</div>
|
||||
<div class="am-form-group row">
|
||||
<label>{{:MyLang('common_service.attachmentcategory.form_item_path')}}<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" placeholder="{{:MyLang('common_service.attachmentcategory.form_item_path_message')}}" name="path" minlength="1" maxlength="60" data-validation-message="{{:MyLang('common_service.attachmentcategory.form_item_path_message')}}" class="am-radius" required />
|
||||
</div>
|
||||
{{:ModuleInclude('lib/sort', ['is_row'=>1])}}
|
||||
{{:ModuleInclude('lib/is_enable', ['is_row'=>1])}}
|
||||
<div class="am-form-popup-submit">
|
||||
<input type="hidden" name="id" />
|
||||
<input type="hidden" name="pid" />
|
||||
<button type="button" class="am-btn am-btn-warning am-radius am-btn-xs am-margin-right-lg" data-am-modal-close>
|
||||
<i class="am-icon-paint-brush"></i>
|
||||
<span>{{:MyLang('cancel_title')}}</span>
|
||||
</button>
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example" data-am-loading="{spinner: 'circle-o-notch', loadingText:'{{:MyLang('save_title')}}'}">
|
||||
<i class="am-icon-save"></i>
|
||||
<span>{{:MyLang('save_title')}}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<!-- form end -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- save win end -->
|
||||
|
||||
<!-- list start -->
|
||||
<div id="tree" class="am-margin-top-sm" data-head='[{"name":"ID","field":"id"},{"name":"{{:MyLang("name_title")}}","field":"name","is_arrow":"1","value_style":{"style":"color:#999","value_style_key":"is_enable","value_style_key_status":"0"}},{"name":"{{:MyLang("form_is_enable_title")}}","field":"is_enable","type":"status"},{"name":"{{:MyLang("common_service.attachmentcategory.form_item_path")}}","field":"path"},{"name":"{{:MyLang("operate_title")}}","type":"operate"}]' data-additional='[{"field":"path", "value":"", "type":"input"}]' data-node-url="{{:MyUrl('admin/attachmentcategory/getnodeson')}}" data-del-url="{{:MyUrl('admin/attachmentcategory/delete')}}" data-popup-tag="#data-save-win" data-status-url="{{:MyUrl('admin/attachmentcategory/statusupdate')}}" data-modal-config="{width: 400, height: 350}" data-rank="2">
|
||||
{{:ModuleInclude('public/loading')}}
|
||||
</div>
|
||||
<!-- list end -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- right content end -->
|
||||
|
||||
<!-- footer start -->
|
||||
{{:ModuleInclude('public/footer')}}
|
||||
<script type="text/javascript">
|
||||
// 初始化
|
||||
Tree(0, $('#tree').data('node-url'));
|
||||
|
||||
// 回调处理
|
||||
function TreeFormSaveBack(e)
|
||||
{
|
||||
TreeFormSaveBackHandle(e);
|
||||
}
|
||||
</script>
|
@ -242,6 +242,17 @@
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">{{$data.common_token_created_rules.name}}<span class="am-form-group-label-tips">{{$data.common_token_created_rules.describe}}</span></label>
|
||||
<div class="am-checkbox-group">
|
||||
{{foreach $common_token_created_rules_list as $v}}
|
||||
<label class="am-checkbox-inline">
|
||||
<input type="checkbox" name="{{$data.common_token_created_rules.only_tag}}" value="{{$v.value}}" {{if isset($data['common_token_created_rules']['value']) and in_array($v['value'], $data['common_token_created_rules']['value'])}}checked{{/if}} data-validation-message="{{$data.common_token_created_rules.error_tips}}" data-am-ucheck /> {{$v.name}}
|
||||
</label>
|
||||
{{/foreach}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-popup-submit">
|
||||
|
2
app/admin/view/default/design/detail.html
Normal file
2
app/admin/view/default/design/detail.html
Normal file
@ -0,0 +1,2 @@
|
||||
<!-- 继承公共的 form -->
|
||||
{{extend name="../../../module/view/form_table/detail" /}}
|
@ -12,54 +12,93 @@
|
||||
{{/if}}
|
||||
<!-- 导入 -->
|
||||
{{if AdminIsPower('design', 'upload')}}
|
||||
<button type="button" class="am-btn am-btn-default-plain am-btn-xs am-radius" data-am-modal="{target: '#popup-design-upload'}">
|
||||
<button type="button" class="am-btn am-btn-default-plain am-btn-xs am-radius package-install-open-upload-submit" data-am-modal="{target: '#popup-design-upload'}">
|
||||
<i class="iconfont icon-upload am-show-sm-only"></i>
|
||||
<span>{{:MyLang('import_title')}}</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
<!-- 父级内容 -->
|
||||
{__block__}
|
||||
{{if $is_system_show_base eq 1 and !empty($store_design_url)}}
|
||||
<a class="am-margin-left-sm" href="{{$store_design_url}}" target="_blank">{{:MyLang('design.nav_store_design_name')}} <i class="am-icon-external-link"></i></a>
|
||||
{{if $is_system_show_base eq 1 and AdminIsPower('packageinstall', 'index') and !empty($store_design_url)}}
|
||||
<a class="am-margin-left-sm" href="{{$store_design_url}}" target="_blank">
|
||||
<i class="iconfont icon-download-btn"></i>
|
||||
<span class="am-hide-sm-only am-margin-left-xs">{{:MyLang('design.nav_store_design_name')}}</span>
|
||||
</a>
|
||||
{{/if}}
|
||||
{{/block}}
|
||||
|
||||
<!-- 扩展 -->
|
||||
{{block name="form_extend"}}
|
||||
<!-- upload start -->
|
||||
<div class="am-popup am-radius" id="popup-design-upload">
|
||||
<div class="am-popup am-radius am-popup-full-max-xl package-install-list-popup-container" id="popup-design-upload">
|
||||
<div class="am-popup-inner">
|
||||
<div class="am-popup-hd">
|
||||
<h4 class="am-popup-title">{{:MyLang('import_title')}}</h4>
|
||||
<span data-am-modal-close class="am-close">×</span>
|
||||
</div>
|
||||
<div class="am-popup-bd">
|
||||
<!-- win form start -->
|
||||
<form class="am-form form-validation am-form-popup-fixed am-upload-file" action="{{:MyUrl('admin/design/upload')}}" method="POST" request-type="ajax-reload" enctype="multipart/form-data">
|
||||
<div class="am-form-group am-flex-1">
|
||||
<div class="am-form-file">
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xl am-radius"><i class="iconfont icon-upload-file"></i></button>
|
||||
<input type="file" name="file" class="file-event" data-tips-tag="#form-payment-tips" data-validation-message="{{:MyLang('form_upload_file_message')}}" accept=".zip" multiple required />
|
||||
<div id="form-payment-tips" class="am-margin-top-xs"></div>
|
||||
{{if is_array(MyLang('design.upload_list_tips'))}}
|
||||
<div class="tips am-text-xs am-color-ccc am-margin-top-sm">
|
||||
<p class="am-margin-top-xs">{{:implode('</p><p class="am-margin-top-xs">', MyLang('design.upload_list_tips'))}}</p>
|
||||
<div class="am-popup-bd am-padding-0">
|
||||
{{if $is_not_bind_accounts eq 1}}
|
||||
<div class="am-padding-xl am-margin-top-xl am-padding-bottom-xl am-text-center">
|
||||
<button type="button" class="am-btn am-btn-primary am-radius am-btn-xs am-margin-left-xs am-icon-gg store-accounts-event"> {{:MyLang('store_bind_accounts_name')}}</button>
|
||||
<p class="am-color-grey am-margin-top-sm">{{:MyLang('store_bind_accounts_tips')}}</p>
|
||||
<p class="am-color-yellow am-margin-top-xl">{{:MyLang('store_already_bind_accounts_tips')}}</p>
|
||||
</div>
|
||||
{{else /}}
|
||||
{{:ModuleInclude('public/detail_nav_switch_tabs', [
|
||||
'nav_data' => [
|
||||
[
|
||||
'name' => MyLang('local_import_title'),
|
||||
'key' => 'upload',
|
||||
],
|
||||
[
|
||||
'name' => MyLang('template_market_title'),
|
||||
'key' => 'market',
|
||||
],
|
||||
]
|
||||
])}}
|
||||
<div class="detail-content-switch-data-item">
|
||||
<!-- 本地导入 -->
|
||||
<div class="item am-ht-auto am-active" data-key="upload">
|
||||
<form class="am-form form-validation am-form-popup-fixed am-upload-file" action="{{:MyUrl('admin/design/upload')}}" method="POST" request-type="ajax-reload" enctype="multipart/form-data">
|
||||
<div class="am-form-group am-flex-1">
|
||||
<div class="am-form-file">
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xl am-radius"><i class="iconfont icon-upload-file"></i></button>
|
||||
<input type="file" name="file" class="file-event" data-tips-tag="#form-upload-file-tips" data-validation-message="{{:MyLang('form_upload_file_message')}}" accept=".zip" multiple required />
|
||||
<div id="form-upload-file-tips" class="am-margin-top-xs"></div>
|
||||
{{if is_array(MyLang('design.upload_list_tips'))}}
|
||||
<div class="tips am-text-xs am-color-ccc am-margin-top-sm">
|
||||
<p class="am-margin-top-xs">{{:implode('</p><p class="am-margin-top-xs">', MyLang('design.upload_list_tips'))}}</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="am-form-popup-submit">
|
||||
<button type="button" class="am-btn am-btn-warning am-radius am-btn-xs am-margin-right-lg" data-am-modal-close>
|
||||
<i class="am-icon-paint-brush"></i>
|
||||
<span>{{:MyLang('cancel_title')}}</span>
|
||||
</button>
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example" data-am-loading="{spinner: 'circle-o-notch', loadingText:'{{:MyLang('confirm_title')}}'}">
|
||||
<i class="am-icon-save"></i>
|
||||
<span>{{:MyLang('confirm_title')}}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- 模板市场 -->
|
||||
<div class="item am-ht-auto" data-key="market">
|
||||
{{:ModuleInclude('public/market/index', [
|
||||
'type' => 'design',
|
||||
'back_url' => MyUrl('admin/design/saveinfo', ['id'=>0]),
|
||||
'back_url_field' => 'id',
|
||||
'back_url_is_new_win' => 1,
|
||||
'back_url_is_new_win_data_list_query' => 1,
|
||||
'search_url' => MyUrl('admin/design/market'),
|
||||
'more_download_url' => empty($store_design_url) ? '' : $store_design_url,
|
||||
'more_download_name' => MyLang('design.nav_store_design_name'),
|
||||
])}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-popup-submit">
|
||||
<button type="button" class="am-btn am-btn-warning am-radius am-btn-xs am-margin-right-lg" data-am-modal-close>
|
||||
<i class="am-icon-paint-brush"></i>
|
||||
<span>{{:MyLang('cancel_title')}}</span>
|
||||
</button>
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example" data-am-loading="{spinner: 'circle-o-notch', loadingText:'{{:MyLang('confirm_title')}}'}">
|
||||
<i class="am-icon-save"></i>
|
||||
<span>{{:MyLang('confirm_title')}}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<!-- win form end -->
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,5 +1,9 @@
|
||||
<!-- 操作栏 -->
|
||||
{{if !empty($module_data)}}
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xs am-radius am-btn-block submit-popup" data-url="{{:MyUrl('admin/design/detail', ['id'=>$module_data['id']])}}" data-title="{{:MyLang('detail_title')}}">
|
||||
<i class="am-icon-eye"></i>
|
||||
<span>{{:MyLang('detail_title')}}</span>
|
||||
</button>
|
||||
<a class="am-btn am-btn-default am-btn-xs am-radius am-btn-block" href="{{:MyUrl('index/design/index', ['id'=>$module_data['id']])}}" target="_blank">
|
||||
<i class="am-icon-eye"></i>
|
||||
<span>{{:MyLang('view_title')}}</span>
|
||||
|
@ -21,7 +21,7 @@
|
||||
<span>{{:MyLang('save_title')}}</span>
|
||||
</button>
|
||||
</div>
|
||||
{{:ModuleInclude('../../../layout/view/base')}}
|
||||
{{:ModuleInclude('../../../module/view/layout/base')}}
|
||||
</div>
|
||||
|
||||
<!-- 页面编辑-->
|
||||
@ -55,4 +55,4 @@ function FormBackSaveinfoEdit(e)
|
||||
</script>
|
||||
|
||||
<!-- layout formback -->
|
||||
{{:ModuleInclude('../../../layout/view/form_back')}}
|
||||
{{:ModuleInclude('../../../module/view/layout/form_back')}}
|
2
app/admin/view/default/diy/detail.html
Normal file
2
app/admin/view/default/diy/detail.html
Normal file
@ -0,0 +1,2 @@
|
||||
<!-- 继承公共的 form -->
|
||||
{{extend name="../../../module/view/form_table/detail" /}}
|
52
app/admin/view/default/diy/index.html
Normal file
52
app/admin/view/default/diy/index.html
Normal file
@ -0,0 +1,52 @@
|
||||
<!-- 继承公共的 form -->
|
||||
{{extend name="../../../module/view/form_table/form" /}}
|
||||
|
||||
<!-- 表单顶部操作栏 -->
|
||||
{{block name="form_operate_top"}}
|
||||
<!-- 新增 -->
|
||||
{{if AdminIsPower('diy', 'saveinfo')}}
|
||||
<a href="{{:MyUrl('admin/diy/saveinfo')}}" class="am-btn am-btn-primary am-radius am-btn-xs" target="_blank">
|
||||
<i class="iconfont icon-btn-add am-show-sm-only"></i>
|
||||
<span>{{:MyLang('add_title')}}</span>
|
||||
</a>
|
||||
{{/if}}
|
||||
<!-- 导入 -->
|
||||
{{if AdminIsPower('diy', 'upload')}}
|
||||
<button type="button" class="am-btn am-btn-default-plain am-btn-xs am-radius submit-popup" data-url="{{:MyUrl('admin/diy/index', ['view_type'=>'upload'])}}" data-title="{{:MyLang('import_title')}}" data-full-max="1" data-full-max-size="xl">
|
||||
<i class="iconfont icon-upload am-show-sm-only"></i>
|
||||
<span>{{:MyLang('import_title')}}</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
<!-- 底部菜单 -->
|
||||
{{if AdminIsPower('diy', 'apptabbar')}}
|
||||
<button type="button" class="am-btn am-btn-default-plain am-radius am-btn-xs submit-popup" data-offcanvas="right" data-url="{{:MyUrl('admin/diy/saveinfo', ['is_auto_create'=>0])}}#/tabbar" data-title="{{:MyLang('diy.nav_apptabbar_name')}}">
|
||||
<i class="iconfont icon-wechart am-show-sm-only"></i>
|
||||
<span>{{:MyLang('diy.nav_apptabbar_name')}}</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
<!-- 父级内容 -->
|
||||
{__block__}
|
||||
{{if $is_system_show_base eq 1 and AdminIsPower('packageinstall', 'index') and !empty($store_diy_url)}}
|
||||
<a class="am-margin-left-sm" href="{{$store_diy_url}}" target="_blank">
|
||||
<i class="iconfont icon-download-btn"></i>
|
||||
<span class="am-hide-sm-only am-margin-left-xs">{{:MyLang('diy.nav_store_diy_name')}}</span>
|
||||
</a>
|
||||
{{/if}}
|
||||
{{/block}}
|
||||
|
||||
<!-- 扩展 -->
|
||||
{{block name="form_extend"}}
|
||||
<!-- upload start -->
|
||||
<div class="am-popup am-radius am-popup-full-max-xl package-install-list-popup-container" id="popup-diy-upload">
|
||||
<div class="am-popup-inner">
|
||||
<div class="am-popup-hd">
|
||||
<h4 class="am-popup-title">{{:MyLang('import_title')}}</h4>
|
||||
<span data-am-modal-close class="am-close">×</span>
|
||||
</div>
|
||||
<div class="am-popup-bd am-padding-0">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- upload end -->
|
||||
{{/block}}
|
23
app/admin/view/default/diy/module/operate.html
Normal file
23
app/admin/view/default/diy/module/operate.html
Normal file
@ -0,0 +1,23 @@
|
||||
<!-- 操作栏 -->
|
||||
{{if !empty($module_data)}}
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xs am-radius am-btn-block submit-popup" data-url="{{:MyUrl('admin/diy/detail', ['id'=>$module_data['id']])}}" data-title="{{:MyLang('detail_title')}}">
|
||||
<i class="am-icon-eye"></i>
|
||||
<span>{{:MyLang('detail_title')}}</span>
|
||||
</button>
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xs am-radius am-btn-block submit-popup" data-url="{{:MyUrl('admin/diy/preview', ['id'=>$module_data['id']])}}" data-offcanvas="right" data-title="{{:MyLang('preview_title')}}">
|
||||
<i class="am-icon-eye"></i>
|
||||
<span>{{:MyLang('preview_title')}}</span>
|
||||
</button>
|
||||
<a class="am-btn am-btn-success am-btn-xs am-radius am-btn-block" href="{{:MyUrl('admin/diy/download', array_merge($params, ['id'=>$module_data['id']]))}}" target="_blank">
|
||||
<i class="am-icon-download"></i>
|
||||
<span>{{:MyLang('download_title')}}</span>
|
||||
</a>
|
||||
<a class="am-btn am-btn-secondary am-btn-xs am-radius am-btn-block" href="{{:MyUrl('admin/diy/saveinfo', array_merge($params, ['id'=>$module_data['id']]))}}" target="_blank">
|
||||
<i class="am-icon-edit"></i>
|
||||
<span>{{:MyLang('edit_title')}}</span>
|
||||
</a>
|
||||
<button type="button" class="am-btn am-btn-danger am-btn-xs am-radius am-btn-block submit-delete" data-url="{{:MyUrl('admin/diy/delete')}}" data-id="{{$module_data.id}}" data-key="ids">
|
||||
<i class="iconfont icon-delete"></i>
|
||||
<span>{{:MyLang('delete_title')}}</span>
|
||||
</button>
|
||||
{{/if}}
|
21
app/admin/view/default/diy/preview.html
Normal file
21
app/admin/view/default/diy/preview.html
Normal file
@ -0,0 +1,21 @@
|
||||
{{:ModuleInclude('public/header')}}
|
||||
|
||||
<!-- content start -->
|
||||
<div class="content-right">
|
||||
{{if $data.code eq 0}}
|
||||
<iframe src="{{$data.data}}" class="mobile-iframe am-radius"></iframe>
|
||||
<div class="qrcode-content am-background-white am-radius am-padding-main">
|
||||
<div class="view-qrcode-init" data-value="{{$data.data}}" data-width="140" data-height="140"></div>
|
||||
<div class="am-margin-top-sm am-text-center">
|
||||
<span class="am-color-grey">{{:MyLang('common_service.diy.preview_scan_tips')}}</span>
|
||||
<span class="text-copy-submit am-color-blue am-margin-left-sm" data-value="{{$data.data}}">{{:MyLang('common_service.diy.preview_url_copy_name')}}</span>
|
||||
</div>
|
||||
</div>
|
||||
{{else /}}
|
||||
{{:ModuleInclude('public/not_data', ['msg'=>$data['msg']])}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<!-- content end -->
|
||||
|
||||
<!-- footer start -->
|
||||
{{:ModuleInclude('public/footer')}}
|
2
app/admin/view/default/diy/saveinfo.html
Normal file
2
app/admin/view/default/diy/saveinfo.html
Normal file
@ -0,0 +1,2 @@
|
||||
<!-- 继承公共的 diy -->
|
||||
{{extend name="../../../module/view/diy/index" /}}
|
67
app/admin/view/default/diy/upload.html
Normal file
67
app/admin/view/default/diy/upload.html
Normal file
@ -0,0 +1,67 @@
|
||||
{{:ModuleInclude('public/header')}}
|
||||
|
||||
{{if $is_not_bind_accounts eq 1}}
|
||||
<div class="am-padding-xl am-margin-top-xl am-padding-bottom-xl am-text-center">
|
||||
<button type="button" class="am-btn am-btn-primary am-radius am-btn-xs am-margin-left-xs am-icon-gg store-accounts-event"> {{:MyLang('store_bind_accounts_name')}}</button>
|
||||
<p class="am-color-grey am-margin-top-sm">{{:MyLang('store_bind_accounts_tips')}}</p>
|
||||
<p class="am-color-yellow am-margin-top-xl">{{:MyLang('store_already_bind_accounts_tips')}}</p>
|
||||
</div>
|
||||
{{else /}}
|
||||
{{:ModuleInclude('public/detail_nav_switch_tabs', [
|
||||
'nav_data' => [
|
||||
[
|
||||
'name' => MyLang('local_import_title'),
|
||||
'key' => 'upload',
|
||||
],
|
||||
[
|
||||
'name' => MyLang('template_market_title'),
|
||||
'key' => 'market',
|
||||
],
|
||||
]
|
||||
])}}
|
||||
<div class="detail-content-switch-data-item">
|
||||
<!-- 本地导入 -->
|
||||
<div class="item am-ht-auto am-active" data-key="upload">
|
||||
<form class="am-form form-validation am-form-popup-fixed am-upload-file" action="{{:MyUrl('admin/diy/upload')}}" method="POST" request-type="ajax-reload" request-value="parent" enctype="multipart/form-data">
|
||||
<div class="am-form-group am-flex-1">
|
||||
<div class="am-form-file">
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xl am-radius"><i class="iconfont icon-upload-file"></i></button>
|
||||
<input type="file" name="file" class="file-event" data-tips-tag="#form-upload-file-tips" data-validation-message="{{:MyLang('form_upload_file_message')}}" accept=".zip" multiple required />
|
||||
<div id="form-upload-file-tips" class="am-margin-top-xs"></div>
|
||||
{{if is_array(MyLang('diy.upload_list_tips'))}}
|
||||
<div class="tips am-text-xs am-color-ccc am-margin-top-sm">
|
||||
<p class="am-margin-top-xs">{{:implode('</p><p class="am-margin-top-xs">', MyLang('diy.upload_list_tips'))}}</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-popup-submit">
|
||||
<button type="button" class="am-btn am-btn-warning am-radius am-btn-xs am-margin-right-lg" data-am-modal-close>
|
||||
<i class="am-icon-paint-brush"></i>
|
||||
<span>{{:MyLang('cancel_title')}}</span>
|
||||
</button>
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example" data-am-loading="{spinner: 'circle-o-notch', loadingText:'{{:MyLang('confirm_title')}}'}">
|
||||
<i class="am-icon-save"></i>
|
||||
<span>{{:MyLang('confirm_title')}}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- 模板市场 -->
|
||||
<div class="item am-ht-auto" data-key="market">
|
||||
{{:ModuleInclude('public/market/index', [
|
||||
'type' => 'diy',
|
||||
'back_url' => MyUrl('admin/diy/saveinfo', ['id'=>0]),
|
||||
'back_url_field' => 'id',
|
||||
'back_url_is_new_win' => 1,
|
||||
'back_win_refresh_type' => 'none',
|
||||
'search_url' => MyUrl('admin/diy/market'),
|
||||
'more_download_url' => empty($store_diy_url) ? '' : $store_diy_url,
|
||||
'more_download_name' => MyLang('diy.nav_store_diy_name'),
|
||||
])}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- footer start -->
|
||||
{{:ModuleInclude('public/footer')}}
|
2
app/admin/view/default/errorlog/detail.html
Normal file
2
app/admin/view/default/errorlog/detail.html
Normal file
@ -0,0 +1,2 @@
|
||||
<!-- 继承公共的 form -->
|
||||
{{extend name="../../../module/view/form_table/detail" /}}
|
13
app/admin/view/default/errorlog/index.html
Normal file
13
app/admin/view/default/errorlog/index.html
Normal file
@ -0,0 +1,13 @@
|
||||
<!-- 继承公共的 form -->
|
||||
{{extend name="../../../module/view/form_table/form" /}}
|
||||
|
||||
<!-- 表单顶部操作栏 -->
|
||||
{{block name="form_operate_top"}}
|
||||
<button type="button" class="am-btn am-btn-default-plain am-btn-xs am-radius submit-ajax" data-url="{{:MyUrl('admin/errorlog/alldelete')}}" data-view="reload">
|
||||
<i class="iconfont icon-clear am-show-sm-only"></i>
|
||||
<span>{{:MyLang('delete_all_title')}}</span>
|
||||
</button>
|
||||
|
||||
<!-- 父级内容 -->
|
||||
{__block__}
|
||||
{{/block}}
|
9
app/admin/view/default/errorlog/module/operate.html
Normal file
9
app/admin/view/default/errorlog/module/operate.html
Normal file
@ -0,0 +1,9 @@
|
||||
<!-- 操作栏 -->
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xs am-radius am-btn-block submit-popup" data-url="{{:MyUrl('admin/errorlog/detail', ['id'=>$module_data['id']])}}" data-title="{{:MyLang('detail_title')}}">
|
||||
<i class="am-icon-eye"></i>
|
||||
<span>{{:MyLang('detail_title')}}</span>
|
||||
</button>
|
||||
<button type="button" class="am-btn am-btn-danger am-btn-xs am-radius am-btn-block submit-delete" data-url="{{:MyUrl('admin/errorlog/delete')}}" data-id="{{$module_data.id}}" data-key="ids">
|
||||
<i class="iconfont icon-delete"></i>
|
||||
<span>{{:MyLang('delete_title')}}</span>
|
||||
</button>
|
@ -0,0 +1,3 @@
|
||||
{{if !empty($module_data) and !empty($module_data['request_params'])}}
|
||||
<pre class="am-scrollable-vertical am-scrollable-horizontal am-padding-xs am-radius pre-container">{{$module_data.request_params}}</pre>
|
||||
{{/if}}
|
@ -7,11 +7,11 @@
|
||||
<i class="am-icon-edit"></i>
|
||||
<span>{{:MyLang('edit_title')}}</span>
|
||||
</a>
|
||||
<a class="am-btn am-btn-success am-btn-xs am-radius am-btn-block" href="{{:MyUrl('admin/goods/saveinfo', array_merge($params, ['id'=>$module_data['id'], 'is_copy'=>1]))}}">
|
||||
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-btn-block submit-url" data-url="{{:MyUrl('admin/goods/saveinfo', array_merge($params, ['id'=>$module_data['id'], 'is_copy'=>1]))}}" data-msg="{{:MyLang('copy_goods_confirm_tips')}}">
|
||||
<i class="am-icon-copy"></i>
|
||||
<span>{{:MyLang('copy_title')}}</span>
|
||||
</a>
|
||||
<div class="am-dropdown am-dropdown-down am-btn am-btn-danger am-btn-xs am-radius am-btn-block" data-am-dropdown>
|
||||
</button>
|
||||
<div class="am-dropdown am-dropdown-left am-btn am-btn-danger am-btn-xs am-radius am-btn-block" data-am-dropdown>
|
||||
<div class="am-dropdown-toggle">
|
||||
<i class="iconfont icon-delete"></i>
|
||||
<span>{{:MyLang('delete_title')}}</span>
|
||||
|
@ -337,7 +337,7 @@
|
||||
</div>
|
||||
<div class="am-form-group content-app-right am-padding-bottom-0">
|
||||
<label>{{:MyLang('common_service.goods.form_app_value_title')}}</label>
|
||||
<textarea rows="5" name="content_app_text_{{$v.id}}" maxlength="105000" class="am-radius" placeholder="{{:MyLang('common_service.goods.form_app_value_title')}}" data-validation-message="{{:MyLang('common_service.goods.form_app_value_message')}}">{{if !empty($v)}}{{$v.content_old|raw}}{{/if}}</textarea>
|
||||
<textarea rows="5" name="content_app_text_{{$v.id}}" class="am-radius" placeholder="{{:MyLang('common_service.goods.form_app_value_title')}}" data-validation-message="{{:MyLang('common_service.goods.form_app_value_message')}}">{{if !empty($v)}}{{$v.content_old|raw}}{{/if}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-flex am-flex-items-center am-gap-32 am-margin-top-sm">
|
||||
@ -365,7 +365,7 @@
|
||||
<div id="goods-nav-web" class="item" data-key="web">
|
||||
<div class="am-form-group">
|
||||
<label>{{$goods_nav_list.web.name}}<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<textarea class="am-radius" name="content_web" maxlength="105000" id="editor-tag" data-validation-message="{{:MyLang('common_service.goods.form_web_content_message')}}">{{if !empty($data['content_web'])}}{{$data.content_web}}{{/if}}</textarea>
|
||||
<textarea class="am-radius" name="content_web" id="editor-tag" data-validation-message="{{:MyLang('common_service.goods.form_web_content_message')}}">{{if !empty($data['content_web'])}}{{$data.content_web}}{{/if}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
17
app/admin/view/default/lib/module/goods.html
Normal file
17
app/admin/view/default/lib/module/goods.html
Normal file
@ -0,0 +1,17 @@
|
||||
{{if !empty($module_data) and !empty($module_data['goods']) and is_array($module_data['goods'])}}
|
||||
<div class="am-nbfc">
|
||||
{{if !empty($module_data['goods']['images'])}}
|
||||
<a {{if empty($module_data['goods']['goods_url'])}}href="javascript:;"{{else /}}href="{{$module_data.goods.goods_url}}" target="_blank"{{/if}} class="am-margin-right-sm am-fl">
|
||||
<img src="{{$module_data.goods.images}}" class="am-img-thumbnail am-radius" width="40" height="40" />
|
||||
</a>
|
||||
{{/if}}
|
||||
<div class="am-nbfc am-text-truncate">
|
||||
{{if !empty($module_data['goods']['title'])}}
|
||||
<a {{if empty($module_data['goods']['goods_url'])}}href="javascript:;"{{else /}}href="{{$module_data.goods.goods_url}}" target="_blank"{{/if}}>{{$module_data.goods.title}}</a>
|
||||
{{/if}}
|
||||
{{if !empty($module_data['goods']['price'])}}
|
||||
<p class="am-color-price">{{$currency_symbol}}{{$module_data.goods.price}}</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
@ -5,10 +5,10 @@
|
||||
<option value="{{$v.id}}" {{if !empty($module_data['params']) and !empty($module_data['params'][$module_data['form_name_key']]) and is_array($module_data['params'][$module_data['form_name_key']]) and in_array($v['id'], $module_data['params'][$module_data['form_name_key']])}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{if !empty($v['items'])}}
|
||||
{{foreach $v.items as $vs}}
|
||||
<option style="padding-left: 15px;" value="{{$vs.id}}" {{if !empty($module_data['params']) and !empty($module_data['params'][$module_data['form_name_key']]) and is_array($module_data['params'][$module_data['form_name_key']]) and in_array($vs['id'], $module_data['params'][$module_data['form_name_key']])}}selected{{/if}}>{{$vs.name}}</option>
|
||||
<option style="padding-left: 15px;" value="{{$vs.id}}" {{if !empty($module_data['params']) and !empty($module_data['params'][$module_data['form_name_key']]) and is_array($module_data['params'][$module_data['form_name_key']]) and in_array($vs['id'], $module_data['params'][$module_data['form_name_key']])}}selected{{/if}}>{{if empty($vs['items'])}}├{{else /}}└{{/if}}² {{$vs.name}}</option>
|
||||
{{if !empty($vs['items'])}}
|
||||
{{foreach $vs.items as $vss}}
|
||||
<option style="padding-left: 30px;" value="{{$vss.id}}" {{if !empty($module_data['params']) and !empty($module_data['params'][$module_data['form_name_key']]) and is_array($module_data['params'][$module_data['form_name_key']]) and in_array($vss['id'], $module_data['params'][$module_data['form_name_key']])}}selected{{/if}}>{{$vss.name}}</option>
|
||||
{{foreach $vs.items as $kss=>$vss}}
|
||||
<option style="padding-left: 30px;" value="{{$vss.id}}" {{if !empty($module_data['params']) and !empty($module_data['params'][$module_data['form_name_key']]) and is_array($module_data['params'][$module_data['form_name_key']]) and in_array($vss['id'], $module_data['params'][$module_data['form_name_key']])}}selected{{/if}}>{{if $kss eq count($vs['items'])-1}}└{{else /}}├{{/if}}³ {{$vss.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
@ -15,68 +15,11 @@
|
||||
<!-- nav end -->
|
||||
|
||||
{{if AdminIsPower('payment', 'upload')}}
|
||||
<button type="button" class="am-btn am-btn-default-plain am-btn-xs am-radius" data-am-modal="{target: '#payment-upload-win'}">
|
||||
<button type="button" class="am-btn am-btn-default-plain am-btn-xs am-radius submit-popup" data-url="{{:MyUrl('admin/payment/index', ['view_type'=>'upload'])}}" data-title="{{:MyLang('payment.base_upload_payment_name')}}" data-full-max="1" data-full-max-size="xl">
|
||||
<i class="iconfont icon-upload"></i>
|
||||
<span>{{:MyLang('payment.base_upload_payment_name')}}</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
<!-- 父级内容 -->
|
||||
{__block__}
|
||||
{{/block}}
|
||||
|
||||
<!-- 扩展 -->
|
||||
{{block name="form_extend"}}
|
||||
<!-- upload start -->
|
||||
<div class="am-popup am-radius" id="payment-upload-win">
|
||||
<div class="am-popup-inner">
|
||||
<div class="am-popup-hd">
|
||||
<h4 class="am-popup-title">{{:MyLang('payment.base_upload_payment_name')}}</h4>
|
||||
<span data-am-modal-close class="am-close">×</span>
|
||||
</div>
|
||||
<div class="am-popup-bd">
|
||||
<!-- win form start -->
|
||||
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/payment/upload')}}" method="POST" request-type="ajax-reload" enctype="multipart/form-data">
|
||||
{{if is_array(MyLang('payment.upload_top_list_tips'))}}
|
||||
<div class="am-operate-stretch-tips">
|
||||
<div class="title">
|
||||
<i class="iconfont icon-tips"></i>
|
||||
<strong title="{{:MyLang('operate_list_tips_msg')}}">{{:MyLang('operate_list_tips_button_text')}}</strong>
|
||||
<i class="iconfont icon-contract contract" title="{{:MyLang('operate_list_tips_retract_text')}}"></i>
|
||||
</div>
|
||||
{{foreach :MyLang('payment.upload_top_list_tips') as $v}}
|
||||
<p>{{$v.name}}</p>
|
||||
{{if !empty($v['item']) and is_array($v['item'])}}
|
||||
<div class="am-margin-left-lg">
|
||||
{{foreach $v.item as $vs}}
|
||||
<p>{{$vs}}</p>
|
||||
{{/foreach}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
<p class="am-margin-top-xs am-text-danger">{{:MyLang('payment.upload_top_tips_ps')}}</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="am-form-group am-form-group-refreshing">
|
||||
<div class="am-form-file">
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xs am-radius"><i class="am-icon-cloud-upload"></i> {{:MyLang('form_choice_file_title')}}</button>
|
||||
<input type="file" name="file" class="file-event" data-tips-tag="#form-payment-tips" data-validation-message="{{:MyLang('form_upload_file_message')}}" accept=".zip" multiple required />
|
||||
<div id="form-payment-tips" class="am-margin-top-xs"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-popup-submit">
|
||||
<button type="button" class="am-btn am-btn-warning am-radius am-btn-xs am-margin-right-lg" data-am-modal-close>
|
||||
<i class="am-icon-paint-brush"></i>
|
||||
<span>{{:MyLang('cancel_title')}}</span>
|
||||
</button>
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example" data-am-loading="{spinner: 'circle-o-notch', loadingText:'{{:MyLang('confirm_title')}}'}">
|
||||
<i class="am-icon-check"></i>
|
||||
<span>{{:MyLang('confirm_title')}}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<!-- win form end -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- upload end -->
|
||||
{{/block}}
|
74
app/admin/view/default/payment/upload.html
Normal file
74
app/admin/view/default/payment/upload.html
Normal file
@ -0,0 +1,74 @@
|
||||
{{:ModuleInclude('public/header')}}
|
||||
|
||||
{{if $is_not_bind_accounts eq 1}}
|
||||
<div class="am-padding-xl am-margin-top-xl am-padding-bottom-xl am-text-center">
|
||||
<button type="button" class="am-btn am-btn-primary am-radius am-btn-xs am-margin-left-xs am-icon-gg store-accounts-event"> {{:MyLang('store_bind_accounts_name')}}</button>
|
||||
<p class="am-color-grey am-margin-top-sm">{{:MyLang('store_bind_accounts_tips')}}</p>
|
||||
<p class="am-color-yellow am-margin-top-xl">{{:MyLang('store_already_bind_accounts_tips')}}</p>
|
||||
</div>
|
||||
{{else /}}
|
||||
{{:ModuleInclude('public/detail_nav_switch_tabs', [
|
||||
'nav_data' => [
|
||||
[
|
||||
'name' => MyLang('local_import_title'),
|
||||
'key' => 'upload',
|
||||
],
|
||||
[
|
||||
'name' => MyLang('plugins_market_title'),
|
||||
'key' => 'market',
|
||||
],
|
||||
]
|
||||
])}}
|
||||
<div class="detail-content-switch-data-item">
|
||||
<!-- 本地导入 -->
|
||||
<div class="item am-ht-auto am-active" data-key="upload">
|
||||
<form class="am-form form-validation am-form-popup-fixed am-upload-file" action="{{:MyUrl('admin/payment/upload')}}" method="POST" request-type="ajax-reload" request-value="parent" enctype="multipart/form-data">
|
||||
<div class="am-form-group am-flex-1">
|
||||
<div class="am-form-file">
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xl am-radius"><i class="iconfont icon-upload-file"></i></button>
|
||||
<input type="file" name="file" class="file-event" data-tips-tag="#form-upload-file-tips" data-validation-message="{{:MyLang('form_upload_file_message')}}" accept=".zip" multiple required />
|
||||
<div id="form-upload-file-tips" class="am-margin-top-xs"></div>
|
||||
{{if is_array(MyLang('payment.upload_top_list_tips'))}}
|
||||
<div class="tips am-text-xs am-color-ccc am-margin-top-sm">
|
||||
{{foreach :MyLang('payment.upload_top_list_tips') as $v}}
|
||||
<p>{{$v.name}}</p>
|
||||
{{if !empty($v['item']) and is_array($v['item'])}}
|
||||
<div class="am-margin-left-lg">
|
||||
{{foreach $v.item as $vs}}
|
||||
<p>{{$vs}}</p>
|
||||
{{/foreach}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
<p class="am-margin-top-xs am-text-danger">{{:MyLang('payment.upload_top_tips_ps')}}</p>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-popup-submit">
|
||||
<button type="button" class="am-btn am-btn-warning am-radius am-btn-xs am-margin-right-lg" data-am-modal-close>
|
||||
<i class="am-icon-paint-brush"></i>
|
||||
<span>{{:MyLang('cancel_title')}}</span>
|
||||
</button>
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius am-btn-xs btn-loading-example" data-am-loading="{spinner: 'circle-o-notch', loadingText:'{{:MyLang('confirm_title')}}'}">
|
||||
<i class="am-icon-save"></i>
|
||||
<span>{{:MyLang('confirm_title')}}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- 模板市场 -->
|
||||
<div class="item am-ht-auto" data-key="market">
|
||||
{{:ModuleInclude('public/market/index', [
|
||||
'type' => 'payment',
|
||||
'back_win_refresh_type' => 'none',
|
||||
'search_url' => MyUrl('admin/payment/market'),
|
||||
'more_download_url' => empty($store_payment_url) ? '' : $store_payment_url,
|
||||
'more_download_name' => MyLang('payment.base_nav_store_payment_name'),
|
||||
])}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- footer start -->
|
||||
{{:ModuleInclude('public/footer')}}
|
@ -12,7 +12,7 @@
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation am-form-popup-sticky" action="{{:MyUrl('admin/pluginsadmin/saveinfo')}}" method="POST" request-type="form" enctype="multipart/form-data">
|
||||
<div class="am-form-group">
|
||||
<label>{{:MyLang('common_service.pluginsadmin.form_item_plugins')}}<span class="am-form-group-label-tips">{{:MyLang('common_service.pluginsadmin.form_item_plugins_tips')}}</span></label>
|
||||
<label>{{:MyLang('common_service.pluginsadmin.form_item_plugins')}}<span class="am-form-group-label-tips-must">*</span><span class="am-form-group-label-tips">{{:MyLang('common_service.pluginsadmin.form_item_plugins_tips')}}</span></label>
|
||||
<input type="text" name="plugins" placeholder="{{:MyLang('common_service.pluginsadmin.form_item_plugins_message')}}" minlength="2" maxlength="60" data-validation-message="{{:MyLang('common_service.pluginsadmin.form_item_plugins_message')}}" pattern="^[a-z0-9_]{2,60}$" class="am-radius" {{if !empty($data['plugins'])}} value="{{$data.plugins}}"{{/if}} required />
|
||||
<!-- 校验信息 -->
|
||||
{{if !empty($verification_msg)}}
|
||||
|
@ -14,7 +14,7 @@
|
||||
</a>
|
||||
{{/if}}
|
||||
{{if AdminIsPower('pluginsadmin', 'upload')}}
|
||||
<button type="button" class="am-btn am-btn-default-plain am-btn-xs am-radius submit-popup" data-url="{{:MyUrl('admin/pluginsadmin/index', ['view_type'=>'upload'])}}" data-title="{{:MyLang('pluginsadmin.base_upload_application_name')}}">
|
||||
<button type="button" class="am-btn am-btn-default-plain am-btn-xs am-radius submit-popup" data-url="{{:MyUrl('admin/pluginsadmin/index', ['view_type'=>'upload'])}}" data-title="{{:MyLang('pluginsadmin.base_upload_application_name')}}" data-full-max="1" data-full-max-size="xl">
|
||||
<i class="iconfont icon-upload"></i>
|
||||
<span>{{:MyLang('pluginsadmin.base_upload_application_name')}}</span>
|
||||
</button>
|
||||
@ -65,7 +65,7 @@
|
||||
{{/if}}
|
||||
</p>
|
||||
{{/if}}
|
||||
{{if AdminIsPower('index', 'storeaccountsbind') and (empty($site_store_info) or empty($site_store_info['user']))}}
|
||||
{{if $is_not_bind_accounts eq 1}}
|
||||
<p>
|
||||
<span>{{:MyLang('store_bind_accounts_tips')}}</span>
|
||||
<button type="button" class="am-btn am-btn-primary am-radius am-btn-xs am-margin-left-xs am-icon-gg store-accounts-event"> {{:MyLang('store_bind_accounts_name')}}</button>
|
||||
@ -86,8 +86,8 @@
|
||||
</div>
|
||||
{{if AdminIsPower('pluginscategory', 'index')}}
|
||||
<a href="javascript:;" class="am-text-sm submit-popup am-flex" data-url="{{:MyUrl('admin/pluginscategory/index')}}" data-class="plugins-category-save-popup" data-title="{{:MyLang('pluginsadmin.plugins_category_title')}}">
|
||||
<i class="iconfont icon-type-manage"></i>
|
||||
<span class="am-hide-sm-only am-margin-left-xs">{{:MyLang('pluginsadmin.plugins_category_admin_title')}}</span>
|
||||
<i class="iconfont icon-type-manage"></i>
|
||||
<span class="am-hide-sm-only am-margin-left-xs">{{:MyLang('pluginsadmin.plugins_category_admin_title')}}</span>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
@ -161,7 +161,7 @@
|
||||
</button>
|
||||
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true}}
|
||||
<button class="am-btn am-btn-default am-btn-xs am-radius submit-popup" data-url="{{:MyUrl('admin/pluginsadmin/storeuploadinfo', ['id'=>$v['plugins']])}}">
|
||||
<button class="am-btn am-btn-default am-btn-xs am-radius submit-popup" data-url="{{:MyUrl('admin/pluginsadmin/storeuploadinfo', ['id'=>$v['plugins']])}}" data-title="{{:MyLang('upload_title')}}">
|
||||
<i class="iconfont icon-application-upload"></i>
|
||||
<span>{{:MyLang('upload_title')}}</span>
|
||||
</button>
|
||||
@ -240,11 +240,6 @@
|
||||
<div class="desc">{{$v.desc}}</div>
|
||||
</div>
|
||||
<div class="operation">
|
||||
<button class="am-btn am-btn-default am-btn-xs am-radius submit-delete-modal am-padding-left-0" data-url="{{:MyUrl('admin/pluginsadmin/delete')}}" data-id="{{$v.plugins}}">
|
||||
<i class="iconfont icon-application-delete"></i>
|
||||
<span>{{:MyLang('delete_title')}}</span>
|
||||
</button>
|
||||
|
||||
<button class="am-btn am-btn-default am-btn-xs am-radius submit-ajax" data-url="{{:MyUrl('admin/pluginsadmin/install')}}" data-id="{{$v.plugins}}" data-view="reload" data-msg="{{:MyLang('install_confirm_tips')}}">
|
||||
<i class="iconfont icon-application-install"></i>
|
||||
<span>{{:MyLang('install_title')}}</span>
|
||||
@ -264,6 +259,11 @@
|
||||
<span>{{:MyLang('download_title')}}</span>
|
||||
</a>
|
||||
{{/if}}
|
||||
|
||||
<button class="am-btn am-btn-default am-btn-xs am-radius submit-delete-modal" data-url="{{:MyUrl('admin/pluginsadmin/delete')}}" data-id="{{$v.plugins}}">
|
||||
<i class="iconfont icon-application-delete"></i>
|
||||
<span>{{:MyLang('delete_title')}}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -12,12 +12,12 @@
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation am-form-full-screen am-form-popup-sticky" action="{{:MyUrl('admin/pluginsadmin/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/pluginsadmin/index')}}" enctype="multipart/form-data">
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_plugins')}}<span class="am-form-group-label-tips">{{:MyLang('common_service.pluginsadmin.form_item_plugins_tips')}}</span></label>
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_plugins')}}<span class="am-form-group-label-tips-must">*</span><span class="am-form-group-label-tips">{{:MyLang('common_service.pluginsadmin.form_item_plugins_tips')}}</span></label>
|
||||
<input type="text" name="plugins" placeholder="{{:MyLang('common_service.pluginsadmin.form_item_plugins_message')}}" minlength="2" maxlength="60" data-validation-message="{{:MyLang('common_service.pluginsadmin.form_item_plugins_message')}}" pattern="^[a-z0-9_]{2,60}$" class="am-radius" {{if !empty($plugins)}} value="{{$plugins}}"{{/if}} readonly="true" required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_logo')}}<span class="am-form-group-label-tips">{{:MyLang('common_service.pluginsadmin.form_item_logo_tips')}}</span></label>
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_logo')}}<span class="am-form-group-label-tips-must">*</span><span class="am-form-group-label-tips">{{:MyLang('common_service.pluginsadmin.form_item_logo_tips')}}</span></label>
|
||||
<div class="am-form-file-upload-container">
|
||||
<ul class="plug-file-upload-view plugins-logo-view" data-form-name="logo" data-max-number="1" data-dialog-type="images" data-is-eye="1">
|
||||
<li class="plug-file-upload-submit" data-view-tag="ul.plugins-logo-view">
|
||||
@ -34,30 +34,30 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_name')}}</label>
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_name')}}<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="name" placeholder="{{:MyLang('common_service.pluginsadmin.form_item_name_message')}}" minlength="1" maxlength="80" data-validation-message="{{:MyLang('common_service.pluginsadmin.form_item_name_message')}}" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_version')}}<span class="am-form-group-label-tips">{{:MyLang('common_service.pluginsadmin.form_item_version_tips')}}</span></label>
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_version')}}<span class="am-form-group-label-tips-must">*</span><span class="am-form-group-label-tips">{{:MyLang('common_service.pluginsadmin.form_item_version_tips')}}</span></label>
|
||||
<input type="text" name="version" placeholder="{{:MyLang('common_service.pluginsadmin.form_item_version')}}" minlength="5" maxlength="18" data-validation-message="{{:MyLang('common_service.pluginsadmin.form_item_version_message')}}" pattern="{{:MyConst('common_regex_version')}}" class="am-radius" {{if !empty($data['version'])}} value="{{$data.version}}"{{/if}} required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_author')}}</label>
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_author')}}<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<input type="text" name="author" placeholder="{{:MyLang('common_service.pluginsadmin.form_item_author_message')}}" minlength="1" maxlength="80" data-validation-message="{{:MyLang('common_service.pluginsadmin.form_item_author_message')}}" class="am-radius" {{if !empty($data['author'])}} value="{{$data.author}}"{{/if}} required />
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_author_url')}}<span class="am-form-group-label-tips">{{:MyLang('common_service.pluginsadmin.form_item_author_url_tips')}}</span></label>
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_author_url')}}<span class="am-form-group-label-tips-must">*</span><span class="am-form-group-label-tips">{{:MyLang('common_service.pluginsadmin.form_item_author_url_tips')}}</span></label>
|
||||
<input type="url" placeholder="{{:MyLang('common_service.pluginsadmin.form_item_author_url_tips')}}" name="author_url" data-validation-message="{{:MyLang('common_service.pluginsadmin.form_item_author_url_message')}}" class="am-radius" {{if !empty($data['author_url'])}} value="{{$data.author_url}}"{{/if}} required />
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_desc')}}</label>
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_desc')}}<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<textarea rows="2" name="desc" class="am-radius am-field-valid" placeholder="{{:MyLang('common_service.pluginsadmin.form_item_desc_message')}}" minlength="2" maxlength="255" data-validation-message="{{:MyLang('common_service.pluginsadmin.form_item_desc_message')}}">{{if !empty($data['desc'])}}{{$data.desc}}{{/if}}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_apply_terminal')}}</label>
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_apply_terminal')}}<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<div class="am-checkbox-group am-flex am-gap-12 am-flex-warp">
|
||||
{{foreach :MyConst('common_platform_type') as $v}}
|
||||
<label class="am-checkbox-inline">
|
||||
@ -68,7 +68,7 @@
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_apply_version')}}</label>
|
||||
<label class="am-block">{{:MyLang('common_service.pluginsadmin.form_item_apply_version')}}<span class="am-form-group-label-tips-must">*</span></label>
|
||||
<div class="am-checkbox-group am-flex am-gap-12 am-flex-warp">
|
||||
{{foreach :MyConst('common_system_version_list') as $v}}
|
||||
<label class="am-checkbox-inline">
|
||||
|
81
app/admin/view/default/pluginsadmin/upload.html
Executable file → Normal file
81
app/admin/view/default/pluginsadmin/upload.html
Executable file → Normal file
@ -1,33 +1,60 @@
|
||||
{{:ModuleInclude('public/header')}}
|
||||
|
||||
<!-- right content start -->
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/pluginsadmin/upload')}}" method="POST" request-type="ajax-reload" request-value="parent" enctype="multipart/form-data">
|
||||
<div class="am-form-group am-flex-1">
|
||||
<div class="am-form-file">
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xl am-radius"><i class="iconfont icon-upload-file"></i></button>
|
||||
<input type="file" name="file" class="file-event" data-tips-tag="#form-file-tips" data-validation-message="{{:MyLang('form_upload_file_message')}}" accept=".zip" required />
|
||||
<div id="form-file-tips" class="am-margin-top"></div>
|
||||
<div class="tips am-text-xs am-color-ccc am-margin-top-sm">{{:MyLang('common_service.pluginsadmin.form_item_upload_tips')}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-popup-submit">
|
||||
<button type="button" class="am-btn am-btn-warning am-btn-xs am-radius" data-am-modal-close>
|
||||
<i class="am-icon-paint-brush"></i>
|
||||
<span>{{:MyLang('cancel_title')}}</span>
|
||||
</button>
|
||||
<button type="submit" class="am-btn am-btn-primary am-btn-xs am-radius btn-loading-example am-margin-left" data-am-loading="{spinner: 'circle-o-notch', loadingText:'{{:MyLang('confirm_title')}}'}">
|
||||
<i class="am-icon-check"></i>
|
||||
<span>{{:MyLang('confirm_title')}}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<!-- form end -->
|
||||
{{if $is_not_bind_accounts eq 1}}
|
||||
<div class="am-padding-xl am-margin-top-xl am-padding-bottom-xl am-text-center">
|
||||
<button type="button" class="am-btn am-btn-primary am-radius am-btn-xs am-margin-left-xs am-icon-gg store-accounts-event"> {{:MyLang('store_bind_accounts_name')}}</button>
|
||||
<p class="am-color-grey am-margin-top-sm">{{:MyLang('store_bind_accounts_tips')}}</p>
|
||||
<p class="am-color-yellow am-margin-top-xl">{{:MyLang('store_already_bind_accounts_tips')}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- right content end -->
|
||||
{{else /}}
|
||||
{{:ModuleInclude('public/detail_nav_switch_tabs', [
|
||||
'nav_data' => [
|
||||
[
|
||||
'name' => MyLang('local_import_title'),
|
||||
'key' => 'upload',
|
||||
],
|
||||
[
|
||||
'name' => MyLang('plugins_market_title'),
|
||||
'key' => 'market',
|
||||
],
|
||||
]
|
||||
])}}
|
||||
<div class="detail-content-switch-data-item">
|
||||
<!-- 本地导入 -->
|
||||
<div class="item am-ht-auto am-active" data-key="upload">
|
||||
<form class="am-form form-validation am-form-popup-fixed am-upload-file" action="{{:MyUrl('admin/pluginsadmin/upload')}}" method="POST" request-type="ajax-reload" request-value="parent" enctype="multipart/form-data">
|
||||
<div class="am-form-group am-flex-1">
|
||||
<div class="am-form-file">
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xl am-radius"><i class="iconfont icon-upload-file"></i></button>
|
||||
<input type="file" name="file" class="file-event" data-tips-tag="#form-file-tips" data-validation-message="{{:MyLang('form_upload_file_message')}}" accept=".zip" required />
|
||||
<div id="form-file-tips" class="am-margin-top"></div>
|
||||
<div class="tips am-text-xs am-color-ccc am-margin-top-sm">{{:MyLang('common_service.pluginsadmin.form_item_upload_tips')}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-popup-submit">
|
||||
<button type="button" class="am-btn am-btn-warning am-btn-xs am-radius" data-am-modal-close>
|
||||
<i class="am-icon-paint-brush"></i>
|
||||
<span>{{:MyLang('cancel_title')}}</span>
|
||||
</button>
|
||||
<button type="submit" class="am-btn am-btn-primary am-btn-xs am-radius btn-loading-example am-margin-left" data-am-loading="{spinner: 'circle-o-notch', loadingText:'{{:MyLang('confirm_title')}}'}">
|
||||
<i class="am-icon-check"></i>
|
||||
<span>{{:MyLang('confirm_title')}}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- 模板市场 -->
|
||||
<div class="item am-ht-auto" data-key="market">
|
||||
{{:ModuleInclude('public/market/index', [
|
||||
'type' => 'plugins',
|
||||
'back_win_refresh_type' => 'none',
|
||||
'search_url' => MyUrl('admin/pluginsadmin/market'),
|
||||
'more_download_url' => empty($store_url) ? '' : $store_url,
|
||||
'more_download_name' => MyLang('pluginsadmin.base_nav_more_plugins_download_name'),
|
||||
])}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- footer start -->
|
||||
{{:ModuleInclude('public/footer')}}
|
@ -5,10 +5,9 @@
|
||||
<div class="content">
|
||||
<!-- operation start -->
|
||||
<div class="am-g">
|
||||
<button class="am-btn am-btn-primary am-radius am-btn-xs tree-submit-add" data-am-modal="{target: '#data-save-win'}">
|
||||
<i class="iconfont icon-btn-add"></i>
|
||||
<button class="am-btn am-btn-primary am-radius am-btn-xs tree-submit-add" data-am-modal="{target: '#data-save-win', width: 400, height: 300}">
|
||||
<i class="iconfont icon-btn-add am-show-sm-only"></i>
|
||||
<span>{{:MyLang('add_title')}}</span>
|
||||
|
||||
</button>
|
||||
</div>
|
||||
<!-- operation end -->
|
||||
|
@ -1,8 +1,9 @@
|
||||
{{if !empty($module_data['title']) and !empty($module_data['back_url'])}}
|
||||
<legend>
|
||||
<span class="am-text-sm am-font-weight">{{$module_data.title}}</span>
|
||||
<a href="{{$module_data.back_url}}" class="am-fr am-text-lg">
|
||||
<a href="{{$module_data.back_url}}" class="am-text-lg">
|
||||
<i class="iconfont icon-back"></i>
|
||||
</a>
|
||||
<em class="form-nav-top-retreat-ds am-color-grey-light am-text-xs am-margin-horizontal-sm">|</em>
|
||||
<span class="am-text-sm am-font-weight">{{$module_data.title}}</span>
|
||||
</legend>
|
||||
{{/if}}
|
@ -96,64 +96,67 @@
|
||||
</html>
|
||||
|
||||
<!-- 类库 -->
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/jquery/jquery-2.2.4.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/assets/js/amazeui.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/jquery/jquery-2.2.4.min.js?v={{$static_cache_version}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/assets/js/amazeui.js?v={{$static_cache_version}}"></script>
|
||||
|
||||
<!-- jshash -->
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/jshash/md5-min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/jshash/md5-min.js?v={{$static_cache_version}}"></script>
|
||||
|
||||
<!-- echarts 图表 -->
|
||||
{{if isset($is_load_echarts) and $is_load_echarts eq 1}}
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/echarts/echarts.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/echarts/macarons.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/echarts/shine.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/echarts/echarts.min.js?v={{$static_cache_version}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/echarts/macarons.js?v={{$static_cache_version}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/echarts/shine.js?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
|
||||
<!-- highlight代码高亮 -->
|
||||
<script src="{{$public_host}}static/common/lib/highlight/highlight.min.js?v={{$static_cache_version}}"></script>
|
||||
|
||||
<!-- ueditor 编辑器 -->
|
||||
<script type='text/javascript' src="{{$my_public_url}}static/common/lib/ueditor/ueditor.config.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/ueditor/ueditor.all.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$my_public_url}}static/common/lib/ueditor/ueditor.config.js?v={{$static_cache_version}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/ueditor/ueditor.all.js?v={{$static_cache_version}}"></script>
|
||||
|
||||
<!-- 颜色选择器 -->
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/xncolorpicker/xncolorpicker.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/xncolorpicker/xncolorpicker.min.js?v={{$static_cache_version}}"></script>
|
||||
|
||||
<!-- 元素拖拽排序插件 -->
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/dragsort/jquery.dragsort-0.5.2.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/dragsort/jquery.dragsort-0.5.2.min.js?v={{$static_cache_version}}"></script>
|
||||
|
||||
<!-- 动画数数 -->
|
||||
{{if isset($is_load_animation_count) and $is_load_animation_count eq 1}}
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/animation-count-to/animation.count.to.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/animation-count-to/animation.count.to.js?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
|
||||
<!-- amazeui插件 -->
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/amazeui-switch/amazeui.switch.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/amazeui-chosen/amazeui.chosen.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/amazeui-dialog/amazeui.dialog.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/amazeui-tagsinput/amazeui.tagsinput.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/amazeui-switch/amazeui.switch.min.js?v={{$static_cache_version}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/amazeui-chosen/amazeui.chosen.js?v={{$static_cache_version}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/amazeui-dialog/amazeui.dialog.js?v={{$static_cache_version}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/amazeui-tagsinput/amazeui.tagsinput.min.js?v={{$static_cache_version}}"></script>
|
||||
|
||||
<!-- 轮播插件 -->
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/swiper/swiper.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/swiper/swiper-bundle.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/swiper/swiper.min.js?v={{$static_cache_version}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/swiper/swiper-bundle.min.js?v={{$static_cache_version}}"></script>
|
||||
|
||||
<!-- 日期组件 -->
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/My97DatePicker/WdatePicker.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/My97DatePicker/WdatePicker.js?v={{$static_cache_version}}"></script>
|
||||
|
||||
<!-- 元素拖动 -->
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/tdrag/tdrag.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/tdrag/tdrag.min.js?v={{$static_cache_version}}"></script>
|
||||
|
||||
<!-- 复制插件 -->
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/clipboard/clipboard.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/clipboard/clipboard.min.js?v={{$static_cache_version}}"></script>
|
||||
|
||||
<!-- base64 -->
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/base64/base64csvtojson.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/base64/base64csvtojson.js?v={{$static_cache_version}}"></script>
|
||||
|
||||
<!-- ckplayer播放器 -->
|
||||
{{if isset($is_load_ckplayer) and $is_load_ckplayer eq 1}}
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/ckplayer/js/ckplayer.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/ckplayer/js/ckplayer.min.js?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
|
||||
<!-- 条形码 -->
|
||||
{{if isset($is_load_barcode) and $is_load_barcode eq 1}}
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/JsBarcode/JsBarcode.all.min.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/lib/JsBarcode/JsBarcode.all.min.js?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
|
||||
<!-- map -->
|
||||
@ -182,32 +185,37 @@
|
||||
|
||||
<!-- 打印js -->
|
||||
{{if isset($is_load_hiprint) and $is_load_hiprint eq 1}}
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/hiprint.bundle.js"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/polyfill.min.js"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/jquery.hiwprint.js"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/JsBarcode.all.min.js"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/qrcode.js"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/jquery.minicolors.min.js"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/jspdf/canvas2image.js"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/jspdf/canvg.min.js"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/jspdf/html2canvas.min.js"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/jspdf/jspdf.min.js"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/hiprint.config.js"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/hiprint.bundle.js?v={{$static_cache_version}}"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/polyfill.min.js?v={{$static_cache_version}}"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/jquery.hiwprint.js?v={{$static_cache_version}}"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/JsBarcode.all.min.js?v={{$static_cache_version}}"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/qrcode.js?v={{$static_cache_version}}"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/jquery.minicolors.min.js?v={{$static_cache_version}}"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/jspdf/canvas2image.js?v={{$static_cache_version}}"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/jspdf/canvg.min.js?v={{$static_cache_version}}"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/jspdf/html2canvas.min.js?v={{$static_cache_version}}"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/plugins/jspdf/jspdf.min.js?v={{$static_cache_version}}"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/hiprint/hiprint.config.js?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
|
||||
<!-- 调用摄像头扫码js -->
|
||||
{{if isset($is_load_video_scan) and $is_load_video_scan eq 1}}
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/ZXing/ZXing.min.js"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/ZXing/ZXing.min.js?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
|
||||
<!-- 代码编辑器js -->
|
||||
{{if isset($is_load_ace_builds) and $is_load_ace_builds eq 1}}
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/ace-builds/src-min/ace.js"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/ace-builds/src-min/ace.js?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
|
||||
<!-- 范围滑条 -->
|
||||
{{if isset($is_load_jrange) and $is_load_jrange eq 1}}
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/jRange/jquery.range.js"></script>
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/jRange/jquery.range.js?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
|
||||
<!-- webuploader -->
|
||||
{{if isset($is_load_webuploader) and $is_load_webuploader eq 1}}
|
||||
<script type="text/javascript" src="{{$public_host}}static/common/lib/ueditor/third-party/webuploader/webuploader.min.js?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
|
||||
<!-- 隐藏编辑器初始化 -->
|
||||
@ -245,33 +253,33 @@
|
||||
</script>
|
||||
|
||||
<!-- 项目公共 -->
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/js/common.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/js/common.js?v={{$static_cache_version}}"></script>
|
||||
{{if !empty($static_path_data['common_js'])}}
|
||||
<script type='text/javascript' src="{{$public_host}}static/{{$static_path_data.common_js}}?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/{{$static_path_data.common_js}}?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
{{if !empty($static_path_data['theme_import_js']) and is_array($static_path_data['theme_import_js'])}}
|
||||
{{foreach $static_path_data.theme_import_js as $v}}
|
||||
<script type='text/javascript' src="{{$public_host}}static/{{$v}}?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/{{$v}}?v={{$static_cache_version}}"></script>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
{{if !empty($static_path_data['module_js'])}}
|
||||
<script type='text/javascript' src="{{$public_host}}static/{{$static_path_data.module_js}}?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/{{$static_path_data.module_js}}?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
{{if !empty($static_path_data['other_js'])}}
|
||||
<script type='text/javascript' src="{{$public_host}}static/{{$static_path_data.other_js}}?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/{{$static_path_data.other_js}}?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
{{if isset($is_load_layout_admin) and $is_load_layout_admin eq 1}}
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/js/layout.admin.js?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/common/js/layout.admin.js?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
|
||||
<!-- 应用插件公共js -->
|
||||
{{if !empty($static_path_data['plugins_js'])}}
|
||||
<script type='text/javascript' src="{{$public_host}}static/{{$static_path_data.plugins_js}}?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/{{$static_path_data.plugins_js}}?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
|
||||
<!-- 当前控制器js -->
|
||||
{{if !empty($static_path_data['page_js'])}}
|
||||
<script type='text/javascript' src="{{$public_host}}static/{{$static_path_data.page_js}}?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}static/{{$static_path_data.page_js}}?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
|
||||
<!-- js钩子 -->
|
||||
@ -279,17 +287,17 @@
|
||||
{{foreach $plugins_admin_js_data as $hook}}
|
||||
{{if !empty($hook) and is_string($hook)}}
|
||||
{{if substr($hook, 0, 4) eq 'http'}}
|
||||
<script type='text/javascript' src="{{$hook}}?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$hook}}?v={{$static_cache_version}}"></script>
|
||||
{{else /}}
|
||||
<script type='text/javascript' src="{{$public_host}}{{$hook}}?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}{{$hook}}?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
{{elseif is_array($hook) /}}
|
||||
{{foreach $hook as $hook_js}}
|
||||
{{if !empty($hook_js) and is_string($hook_js)}}
|
||||
{{if substr($hook_js, 0, 4) eq 'http'}}
|
||||
<script type='text/javascript' src="{{$hook_js}}?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$hook_js}}?v={{$static_cache_version}}"></script>
|
||||
{{else /}}
|
||||
<script type='text/javascript' src="{{$public_host}}{{$hook_js}}?v={{:MyC('home_static_cache_version')}}"></script>
|
||||
<script type='text/javascript' src="{{$public_host}}{{$hook_js}}?v={{$static_cache_version}}"></script>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
|
@ -5,38 +5,41 @@
|
||||
<link rel="shortcut icon" type="image/x-icon" href="{{$public_host}}favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1, maximum-scale=1" />
|
||||
<title>{{$admin_theme_site_name}}{{:MyLang('common.admin_browser_title')}}</title>
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/iconfont/iconfont.css?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/assets/css/amazeui.css?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/amazeui-switch/amazeui.switch.css?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/amazeui-chosen/amazeui.chosen.css?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/amazeui-tagsinput/amazeui.tagsinput.css?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/iconfont/iconfont.css?v={{$static_cache_version}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/assets/css/amazeui.css?v={{$static_cache_version}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/amazeui-switch/amazeui.switch.css?v={{$static_cache_version}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/amazeui-chosen/amazeui.chosen.css?v={{$static_cache_version}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/amazeui-tagsinput/amazeui.tagsinput.css?v={{$static_cache_version}}" />
|
||||
|
||||
<!-- 轮播插件 -->
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/swiper/swiper.min.css?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/swiper/swiper-bundle.min.css?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/swiper/swiper.min.css?v={{$static_cache_version}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/swiper/swiper-bundle.min.css?v={{$static_cache_version}}" />
|
||||
|
||||
<!-- highlight代码高亮 -->
|
||||
<link rel="stylesheet" href="{{$public_host}}static/common/lib/highlight/monokai_sublime.min.css?v={{$static_cache_version}}" />
|
||||
|
||||
<!-- 公共css -->
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/css/common.css?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/css/common.css?v={{$static_cache_version}}" />
|
||||
|
||||
<!-- 模块公共css -->
|
||||
{{if !empty($static_path_data['common_css'])}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/{{$static_path_data.common_css}}?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/{{$static_path_data.common_css}}?v={{$static_cache_version}}" />
|
||||
{{/if}}
|
||||
{{if !empty($static_path_data['theme_import_css']) and is_array($static_path_data['theme_import_css'])}}
|
||||
{{foreach $static_path_data.theme_import_css as $v}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/{{$v}}?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/{{$v}}?v={{$static_cache_version}}" />
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
{{if !empty($static_path_data['module_css'])}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/{{$static_path_data.module_css}}?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/{{$static_path_data.module_css}}?v={{$static_cache_version}}" />
|
||||
{{/if}}
|
||||
{{if !empty($static_path_data['other_css'])}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/{{$static_path_data.other_css}}?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/{{$static_path_data.other_css}}?v={{$static_cache_version}}" />
|
||||
{{/if}}
|
||||
|
||||
<!-- ckplayer播放器 -->
|
||||
{{if isset($is_load_ckplayer) and $is_load_ckplayer eq 1}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/ckplayer/css/ckplayer.css?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/ckplayer/css/ckplayer.css?v={{$static_cache_version}}" />
|
||||
{{/if}}
|
||||
|
||||
<!-- 打印css -->
|
||||
@ -47,25 +50,30 @@
|
||||
|
||||
<!-- 范围滑条 -->
|
||||
{{if isset($is_load_jrange) and $is_load_jrange eq 1}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/jRange/jquery.range.css?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/jRange/jquery.range.css?v={{$static_cache_version}}" />
|
||||
{{/if}}
|
||||
|
||||
<!-- webuploader -->
|
||||
{{if isset($is_load_webuploader) and $is_load_webuploader eq 1}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/lib/ueditor/third-party/webuploader/webuploader.css?v={{$static_cache_version}}" />
|
||||
{{/if}}
|
||||
|
||||
<!-- 可视化拖拽 -->
|
||||
{{if isset($is_load_layout) and $is_load_layout eq 1}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/css/layout.css?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/css/layout.css?v={{$static_cache_version}}" />
|
||||
{{/if}}
|
||||
{{if isset($is_load_layout_admin) and $is_load_layout_admin eq 1}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/css/layout.admin.css?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/common/css/layout.admin.css?v={{$static_cache_version}}" />
|
||||
{{/if}}
|
||||
|
||||
<!-- 插件 -->
|
||||
{{if !empty($static_path_data['plugins_css'])}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/{{$static_path_data.plugins_css}}?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/{{$static_path_data.plugins_css}}?v={{$static_cache_version}}" />
|
||||
{{/if}}
|
||||
|
||||
<!-- 页面样式 -->
|
||||
{{if !empty($static_path_data['page_css'])}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/{{$static_path_data.page_css}}?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}static/{{$static_path_data.page_css}}?v={{$static_cache_version}}" />
|
||||
{{/if}}
|
||||
|
||||
<!-- css钩子 -->
|
||||
@ -73,17 +81,17 @@
|
||||
{{foreach $plugins_admin_css_data as $hook}}
|
||||
{{if !empty($hook) and is_string($hook)}}
|
||||
{{if substr($hook, 0, 4) eq 'http'}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$hook}}?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$hook}}?v={{$static_cache_version}}" />
|
||||
{{else /}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}{{$hook}}?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}{{$hook}}?v={{$static_cache_version}}" />
|
||||
{{/if}}
|
||||
{{elseif is_array($hook) /}}
|
||||
{{foreach $hook as $hook_css}}
|
||||
{{if !empty($hook_css) and is_string($hook_css)}}
|
||||
{{if substr($hook_css, 0, 4) eq 'http'}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$hook_css}}?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$hook_css}}?v={{$static_cache_version}}" />
|
||||
{{else /}}
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}{{$hook_css}}?v={{:MyC('home_static_cache_version')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$public_host}}{{$hook_css}}?v={{$static_cache_version}}" />
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
|
36
app/admin/view/default/public/market/index.html
Normal file
36
app/admin/view/default/public/market/index.html
Normal file
@ -0,0 +1,36 @@
|
||||
<form class="am-form package-install-list-container"
|
||||
data-url="{{:MyUrl('admin/packageinstall/install')}}"
|
||||
data-type="{{if !empty($module_data['type'])}}{{$module_data.type}}{{/if}}"
|
||||
data-back-url="{{if !empty($module_data['back_url'])}}{{$module_data.back_url}}{{/if}}"
|
||||
data-back-url-field="{{if !empty($module_data['back_url_field'])}}{{$module_data.back_url_field}}{{/if}}"
|
||||
data-back-url-is-new-win="{{if isset($module_data['back_url_is_new_win'])}}{{$module_data.back_url_is_new_win}}{{/if}}"
|
||||
data-back-url-is-new-win-data-list-query="{{if isset($module_data['back_url_is_new_win_data_list_query'])}}{{$module_data.back_url_is_new_win_data_list_query}}{{/if}}"
|
||||
data-back-url-is-new-win-refresh="{{if isset($module_data['back_url_is_new_win_refresh'])}}{{$module_data.back_url_is_new_win_refresh}}{{/if}}"
|
||||
data-back-win-refresh-type="{{if isset($module_data['back_win_refresh_type'])}}{{$module_data.back_win_refresh_type}}{{/if}}"
|
||||
>
|
||||
<!-- 搜索 -->
|
||||
<div class="forth-selection-container" data-search-url="{{if !empty($module_data['search_url'])}}{{$module_data.search_url}}{{/if}}">
|
||||
<input type="text" placeholder="{{:MyLang('form_search_keywords_placeholder')}}" class="am-radius forth-selection-form-keywords" />
|
||||
<button type="button" class="am-btn am-btn-primary am-radius am-btn-xs search-submit" data-am-loading="{spinner: 'circle-o-notch', loadingText: '{{:MyLang('search_title')}}'}">
|
||||
<i class="iconfont icon-search"></i>
|
||||
<span>{{:MyLang('search_title')}}</span>
|
||||
</button>
|
||||
<label class="am-checkbox-inline am-margin-left-sm am-margin-top-xs">
|
||||
<input type="checkbox" value="1" class="is-already-buy" data-am-ucheck /> {{:MyLang('already_buy_title')}}
|
||||
</label>
|
||||
{{if !empty($module_data['more_download_url']) and !empty($module_data['more_download_name']) and $is_system_show_base eq 1 and AdminIsPower('packageinstall', 'index')}}
|
||||
<a class="am-fr am-margin-top-sm" href="{{$module_data.more_download_url}}" target="_blank">
|
||||
<i class="iconfont icon-download-btn"></i>
|
||||
<span class="am-margin-left-xs">{{$module_data.more_download_name}}</span>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<!-- 数据列表 -->
|
||||
<div class="am-scrollable-vertical am-margin-top-sm am-padding-bottom-xs am-radius package-data-list-container" data-loading-msg="{{:MyLang('searching_tips')}}">
|
||||
<ul class="am-gallery am-gallery-bordered am-avg-sm-2 am-avg-md-3 am-avg-lg-6"></ul>
|
||||
</div>
|
||||
|
||||
<!-- 分页 -->
|
||||
<div class="am-margin-top-sm am-text-center package-data-page-container"></div>
|
||||
</form>
|
48
app/admin/view/default/public/market/list.html
Normal file
48
app/admin/view/default/public/market/list.html
Normal file
@ -0,0 +1,48 @@
|
||||
{{if !empty($data_list) and is_array($data_list)}}
|
||||
{{foreach $data_list as $v}}
|
||||
<li>
|
||||
<div class="am-gallery-item am-radius">
|
||||
<div class="am-padding-xs">
|
||||
<div class="images-content am-radius am-nbfc">
|
||||
<img src="{{$v.images}}" class="am-radius" />
|
||||
<a href="{{$v.goods_url}}" target="_blank" class="am-btn am-btn-primary-light am-btn-xs am-round">
|
||||
<i class="iconfont icon-eye"></i>
|
||||
<span>{{:MyLang('view_detail_title')}}</span>
|
||||
</a>
|
||||
</div>
|
||||
<p class="am-margin-top-xs am-text-sm am-text-truncate-2">{{$v.title}}</p>
|
||||
<div class="am-margin-top-xs am-flex am-flex-justify-between am-flex-items-center">
|
||||
<strong class="am-text-sm am-color-{{if $v['min_price'] gt 0}}price{{else /}}green{{/if}}">{{$v.price_data.value}}</strong>
|
||||
{{if $v.buy_data.status eq 1}}
|
||||
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius package-install-submit" data-id="{{$v.id}}">{{$v.buy_data.title}}</button>
|
||||
{{elseif $v.buy_data.status eq 2 /}}
|
||||
<button type="button" class="am-btn am-btn-primary am-btn-xs am-radius package-install-submit" disabled>{{$v.buy_data.title}}</button>
|
||||
{{else /}}
|
||||
<a href="{{$v.goods_url}}" target="_blank" class="am-btn am-btn-primary am-btn-xs am-radius am-fr">{{$v.buy_data.title}}</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="am-margin-top-sm am-flex am-flex-justify-between">
|
||||
<div class="am-dropdown am-dropdown-up" data-am-dropdown>
|
||||
<span class="am-color-grey am-dropdown-toggle">{{$v.version_apply.name}}</span>
|
||||
<div class="am-dropdown-content am-radius am-padding-0">
|
||||
<div class="am-radius am-nbfc">
|
||||
<div class="am-scrollable-vertical am-padding-sm">{{:implode('<br />', $v.version_apply.data)}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{if !empty($v['buy_auth_domain'])}}
|
||||
<div class="am-dropdown am-dropdown-up" data-am-dropdown>
|
||||
<span class="am-color-grey am-dropdown-toggle iconfont icon-domain"> {{:MyLang('auth_domain_title')}}</span>
|
||||
<div class="am-dropdown-content am-radius am-padding-0">
|
||||
<div class="am-radius am-nbfc">
|
||||
<div class="am-scrollable-vertical am-padding-sm">{{:implode('<br />', $v.buy_auth_domain)}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
@ -0,0 +1,5 @@
|
||||
<div class="am-padding-xl am-margin-top-xl am-padding-bottom-xl am-text-center">
|
||||
<button type="button" class="am-btn am-btn-primary am-radius am-btn-xs am-margin-left-xs am-icon-gg store-accounts-event"> {{:MyLang('store_bind_accounts_name')}}</button>
|
||||
<p class="am-color-grey am-margin-top-sm">{{:MyLang('store_bind_accounts_tips')}}</p>
|
||||
<p class="am-color-yellow am-margin-top-xl">{{:MyLang('store_already_bind_accounts_tips')}}</p>
|
||||
</div>
|
@ -1,9 +1,10 @@
|
||||
{{if !empty($module_data['plugins']) and (!empty($module_data['title']) or (!empty($module_data['nav_data']) and is_array($module_data['nav_data'])))}}
|
||||
<div class="nav-switch-tabs am-pr plugins-admin-nav-container {{$module_data.plugins}}">
|
||||
<div class="nav-switch-tabs am-pr plugins-admin-nav-container {{if !empty($module_data['nav_data']) and is_array($module_data['nav_data'])}} admin-nav-data{{/if}} {{$module_data.plugins}}">
|
||||
{{if !isset($module_data['is_back_btn']) or $module_data['is_back_btn'] eq 1}}
|
||||
<a href="{{if empty($module_data['back_url'])}}{{:MyUrl('admin/pluginsadmin/index')}}{{else /}}{{$module_data.back_url}}{{/if}}" class="form-nav-top-right-retreat am-fr am-text-lg">
|
||||
<a href="{{if empty($module_data['back_url'])}}{{:MyUrl('admin/pluginsadmin/index')}}{{else /}}{{$module_data.back_url}}{{/if}}" class="form-nav-top-retreat am-text-lg">
|
||||
<i class="iconfont icon-back"></i>
|
||||
</a>
|
||||
<em class="form-nav-top-retreat-ds am-color-grey-light am-text-xs am-margin-left am-margin-right-xs">|</em>
|
||||
{{/if}}
|
||||
{{if !empty($module_data['nav_data']) and is_array($module_data['nav_data'])}}
|
||||
<ul>
|
||||
|
@ -69,7 +69,7 @@
|
||||
<div class="am-flex am-flex-col am-flex-items-center drop-mode am-color-999 am-text-xs am-gap-1">
|
||||
<img src="{{:StaticAttachmentUrl('site/siteset/index/drop.png')}}"/>
|
||||
{{:MyLang('site.site_setup_layout_tips')}}
|
||||
<a href="{{:MyUrl('index/index/index', ['is_design'=>1, 'save_url'=>urlencode(base64_encode(MyUrl('admin/layout/layoutindexhomesave')))])}}" target="_blank" class="am-btn am-btn-primary am-radius">{{:MyLang('site.site_setup_layout_button_name')}}</a>
|
||||
<a href="{{:MyUrl('index/index/index', ['is_design'=>1, 'save_url'=>urlencode(base64_encode(MyUrl('admin/layout/layoutindexhomesave')))])}}" target="_blank" class="am-btn am-btn-primary am-btn-xs am-radius">{{:MyLang('site.site_setup_layout_button_name')}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -238,11 +238,10 @@
|
||||
<!-- right content end -->
|
||||
|
||||
<!-- 商品添加弹窗 -->
|
||||
<div class="am-popup am-radius" id="siteset-goods-popup">
|
||||
<div class="am-popup am-radius am-popup-full-max-lg" id="siteset-goods-popup">
|
||||
<div class="am-popup-inner">
|
||||
<div class="am-popup-hd">
|
||||
<h4 class="am-popup-title">{{:MyLang('site.add_goods_title')}}</h4>
|
||||
<span class="am-icon-arrows-alt am-full"></span>
|
||||
<span data-am-modal-close class="am-close">×</span>
|
||||
</div>
|
||||
<div class="am-popup-bd am-padding-0">
|
||||
@ -276,7 +275,7 @@
|
||||
|
||||
<!-- 商品列表 -->
|
||||
<div class="am-scrollable-vertical am-margin-top-sm am-padding-bottom-xs am-radius goods-list-container" data-loading-msg="{{:MyLang('searching_tips')}}">
|
||||
<ul class="am-gallery am-avg-sm-3 am-avg-md-4 am-avg-lg-5 am-gallery-bordered"></ul>
|
||||
<ul class="am-gallery am-avg-sm-2 am-avg-md-6 am-avg-lg-8 am-gallery-bordered"></ul>
|
||||
</div>
|
||||
|
||||
<!-- 分页 -->
|
||||
|
@ -145,10 +145,10 @@
|
||||
</div>
|
||||
<p>{{:MyLang('site.site_setup_order_default_payment_tips')}}</p>
|
||||
</div>
|
||||
<div class="am-flex am-flex-warp am-gap-12 payment-list-width">
|
||||
<div class="default-payment-list am-margin-bottom-lg">
|
||||
{{foreach $common_platform_type as $v}}
|
||||
<div class="am-form-group am-flex-shrink">
|
||||
<label>{{$v.name}}</label>
|
||||
<div class="am-flex am-flex-row am-flex-items-center am-gap-1 am-margin-top-sm">
|
||||
<span class="am-text-right">{{$v.name}}</span>
|
||||
<select name="common_default_payment[{{$v.value}}]" class="am-radius chosen-select" data-placeholder="{{:MyLang('optional_tips')}}" data-validation-message="{{:MyLang('site.site_setup_choice_payment_message', ['name'=>$v['name']])}}">
|
||||
<option value="">{{:MyLang('optional_tips')}}</option>
|
||||
{{if !empty($payment_list)}}
|
||||
|
@ -113,6 +113,16 @@
|
||||
{{/foreach}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_search_is_place_origin.name}}<span class="am-form-group-label-tips">{{$data.home_search_is_place_origin.describe}}</span></label>
|
||||
<div class="am-radio-group">
|
||||
{{foreach $common_close_open_list as $v}}
|
||||
<label class="am-radio-inline">
|
||||
<input type="radio" value="{{$v.value}}" name="{{$data.home_search_is_place_origin.only_tag}}" data-validation-message="{{$data.home_search_is_place_origin.error_tips}}" required {{if isset($data['home_search_is_place_origin']['value']) and $data['home_search_is_place_origin']['value'] eq $v['value']}}checked{{/if}} data-am-ucheck>{{$v.name}}
|
||||
</label>
|
||||
{{/foreach}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>{{$data.home_search_is_params.name}}<span class="am-form-group-label-tips">{{$data.home_search_is_params.describe}}</span></label>
|
||||
<div class="am-radio-group">
|
||||
|
@ -25,6 +25,17 @@
|
||||
{{/foreach}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">{{$data.common_images_verify_rand_type.name}}<span class="am-form-group-label-tips">{{$data.common_images_verify_rand_type.describe}}</span></label>
|
||||
<div class="am-radio-group">
|
||||
{{foreach $common_site_images_verify_rand_type_list as $v}}
|
||||
<label class="am-radio-inline">
|
||||
<input type="radio" name="{{$data.common_images_verify_rand_type.only_tag}}" value="{{$v.value}}" {{if isset($data['common_images_verify_rand_type']['value']) and $v['value'] eq $data['common_images_verify_rand_type']['value']}}checked{{/if}} data-validation-message="{{$data.common_images_verify_rand_type.error_tips}}" data-am-ucheck /> {{$v.name}}
|
||||
</label>
|
||||
{{/foreach}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group">
|
||||
<label class="am-block">{{$data.common_images_verify_rules.name}}<span class="am-form-group-label-tips">{{$data.common_images_verify_rules.describe}}</span></label>
|
||||
|
@ -7,11 +7,13 @@
|
||||
{{if AdminIsPower('themedata', 'upload')}}
|
||||
<div class="am-g am-padding-bottom am-border-bottom-f8 am-margin-bottom">
|
||||
<div class="am-flex am-flex-justify-between am-flex-items-center am-flex-warp am-gap-12">
|
||||
<button type="button" class="am-btn am-btn-default-plain am-btn-xs am-radius submit-popup" data-url="{{:MyUrl('admin/themeadmin/index', ['view_type'=>'upload'])}}" data-title="{{:MyLang('themeadmin.base_upload_theme_name')}}">
|
||||
<i class="iconfont icon-upload"></i>
|
||||
<span>{{:MyLang('themeadmin.base_upload_theme_name')}}</span>
|
||||
</button>
|
||||
{{if AdminIsPower('packageinstall', 'index') and !empty($store_theme_url)}}
|
||||
{{if AdminIsPower('themeadmin', 'upload')}}
|
||||
<button type="button" class="am-btn am-btn-default-plain am-btn-xs am-radius submit-popup" data-url="{{:MyUrl('admin/themeadmin/index', ['view_type'=>'upload'])}}" data-title="{{:MyLang('themeadmin.base_upload_theme_name')}}" data-full-max="1" data-full-max-size="xl">
|
||||
<i class="iconfont icon-upload"></i>
|
||||
<span>{{:MyLang('themeadmin.base_upload_theme_name')}}</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{if $is_system_show_base eq 1 and AdminIsPower('packageinstall', 'index') and !empty($store_theme_url)}}
|
||||
<a class="am-text-sm am-flex nwarp" href="{{$store_theme_url}}" target="_blank">
|
||||
<i class="iconfont icon-download-btn"></i>
|
||||
<span class="am-hide-sm-only am-margin-left-xs">{{:MyLang('themeadmin.base_nav_store_theme_name')}}</span>
|
||||
|
80
app/admin/view/default/themeadmin/upload.html
Executable file → Normal file
80
app/admin/view/default/themeadmin/upload.html
Executable file → Normal file
@ -1,33 +1,59 @@
|
||||
{{:ModuleInclude('public/header')}}
|
||||
|
||||
<!-- right content start -->
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation am-form-popup-fixed" action="{{:MyUrl('admin/themeadmin/upload')}}" method="POST" request-type="ajax-reload" request-value="parent" enctype="multipart/form-data">
|
||||
<div class="am-form-group am-flex-1">
|
||||
<div class="am-form-file">
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xl am-radius"><i class="iconfont icon-upload-file"></i></button>
|
||||
<input type="file" name="theme" class="file-event" data-tips-tag="#form-theme-tips" data-validation-message="{{:MyLang('form_upload_file_message')}}" accept=".zip" required />
|
||||
<div id="form-theme-tips" class="am-margin-top-sm"></div>
|
||||
<div class="tips am-text-xs am-color-ccc am-margin-top-sm">{{:MyLang('common_service.themeadmin.form_item_upload_tips')}}</div>
|
||||
{{if $is_not_bind_accounts eq 1}}
|
||||
<div class="am-padding-xl am-margin-top-xl am-padding-bottom-xl am-text-center">
|
||||
<button type="button" class="am-btn am-btn-primary am-radius am-btn-xs am-margin-left-xs am-icon-gg store-accounts-event"> {{:MyLang('store_bind_accounts_name')}}</button>
|
||||
<p class="am-color-grey am-margin-top-sm">{{:MyLang('store_bind_accounts_tips')}}</p>
|
||||
<p class="am-color-yellow am-margin-top-xl">{{:MyLang('store_already_bind_accounts_tips')}}</p>
|
||||
</div>
|
||||
{{else /}}
|
||||
{{:ModuleInclude('public/detail_nav_switch_tabs', [
|
||||
'nav_data' => [
|
||||
[
|
||||
'name' => MyLang('local_import_title'),
|
||||
'key' => 'upload',
|
||||
],
|
||||
[
|
||||
'name' => MyLang('template_market_title'),
|
||||
'key' => 'market',
|
||||
],
|
||||
]
|
||||
])}}
|
||||
<div class="detail-content-switch-data-item">
|
||||
<div class="item am-ht-auto am-active" data-key="upload">
|
||||
<form class="am-form form-validation am-form-popup-fixed am-upload-file" action="{{:MyUrl('admin/themeadmin/upload')}}" method="POST" request-type="ajax-reload" request-value="parent" enctype="multipart/form-data">
|
||||
<div class="am-form-group am-flex-1">
|
||||
<div class="am-form-file">
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xl am-radius"><i class="iconfont icon-upload-file"></i></button>
|
||||
<input type="file" name="theme" class="file-event" data-tips-tag="#form-theme-tips" data-validation-message="{{:MyLang('form_upload_file_message')}}" accept=".zip" required />
|
||||
<div id="form-theme-tips" class="am-margin-top-sm"></div>
|
||||
<div class="tips am-text-xs am-color-ccc am-margin-top-sm">{{:MyLang('common_service.themeadmin.form_item_upload_tips')}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="am-form-popup-submit">
|
||||
<button type="button" class="am-btn am-btn-warning am-btn-xs am-radius" data-am-modal-close>
|
||||
<i class="am-icon-paint-brush"></i>
|
||||
<span>{{:MyLang('cancel_title')}}</span>
|
||||
</button>
|
||||
<button type="submit" class="am-btn am-btn-primary am-btn-xs am-radius btn-loading-example am-margin-left" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">
|
||||
<i class="am-icon-check"></i>
|
||||
<span>{{:MyLang('confirm_title')}}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<!-- form end -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- right content end -->
|
||||
<div class="am-form-popup-submit">
|
||||
<button type="button" class="am-btn am-btn-warning am-btn-xs am-radius" data-am-modal-close>
|
||||
<i class="am-icon-paint-brush"></i>
|
||||
<span>{{:MyLang('cancel_title')}}</span>
|
||||
</button>
|
||||
<button type="submit" class="am-btn am-btn-primary am-btn-xs am-radius btn-loading-example am-margin-left" data-am-loading="{loadingText:'{{:MyLang('processing_tips')}}'}">
|
||||
<i class="am-icon-check"></i>
|
||||
<span>{{:MyLang('confirm_title')}}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- 模板市场 -->
|
||||
<div class="item am-ht-auto" data-key="market">
|
||||
{{:ModuleInclude('public/market/index', [
|
||||
'type' => 'webtheme',
|
||||
'back_win_refresh_type' => 'none',
|
||||
'search_url' => MyUrl('admin/themeadmin/market'),
|
||||
'more_download_url' => empty($store_theme_url) ? '' : $store_theme_url,
|
||||
'more_download_name' => MyLang('themeadmin.base_nav_store_theme_name'),
|
||||
])}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- footer start -->
|
||||
{{:ModuleInclude('public/footer')}}
|
@ -53,8 +53,8 @@
|
||||
<div class="am-form-group am-flex-1">
|
||||
<div class="am-form-file">
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xl am-radius"><i class="iconfont icon-upload-file"></i></button>
|
||||
<input type="file" name="file" class="file-event" data-tips-tag="#form-payment-tips" data-validation-message="{{:MyLang('form_upload_file_message')}}" accept=".zip" multiple required />
|
||||
<div id="form-payment-tips" class="am-margin-top-xs"></div>
|
||||
<input type="file" name="file" class="file-event" data-tips-tag="#form-upload-file-tips" data-validation-message="{{:MyLang('form_upload_file_message')}}" accept=".zip" multiple required />
|
||||
<div id="form-upload-file-tips" class="am-margin-top-xs"></div>
|
||||
<div class="tips am-text-xs am-color-ccc am-margin-top-sm">
|
||||
{{if is_array(MyLang('themedata.upload_list_tips'))}}
|
||||
<p class="am-margin-top-xs">{{:implode('</p><p class="am-margin-top-xs">', MyLang('themedata.upload_list_tips'))}}</p>
|
||||
|
@ -2,7 +2,6 @@
|
||||
<div class="am-popup-inner">
|
||||
<div class="am-popup-hd">
|
||||
<h4 class="am-popup-title">{{:MyLang('common_service.themedata.add_article_title')}}</h4>
|
||||
<span class="am-icon-arrows-alt am-full"></span>
|
||||
<span data-am-modal-close class="am-close">×</span>
|
||||
</div>
|
||||
<div class="am-popup-bd am-padding-0">
|
||||
|
@ -2,7 +2,6 @@
|
||||
<div class="am-popup-inner">
|
||||
<div class="am-popup-hd">
|
||||
<h4 class="am-popup-title">{{:MyLang('common_service.themedata.add_goods_title')}}</h4>
|
||||
<span class="am-icon-arrows-alt am-full"></span>
|
||||
<span data-am-modal-close class="am-close">×</span>
|
||||
</div>
|
||||
<div class="am-popup-bd am-padding-0">
|
||||
|
@ -98,7 +98,9 @@
|
||||
<input type="text" name="idcard_front" value="{{$data.idcard_front}}" />
|
||||
{{/if}}
|
||||
<img src="{{if empty($data['idcard_front'])}}{{:StaticAttachmentUrl('default-idcard-front.jpg')}}{{else /}}{{$data.idcard_front}}{{/if}}" />
|
||||
<i class="iconfont icon-close"></i>
|
||||
{{if !empty($data['idcard_front'])}}
|
||||
<i class="iconfont icon-close"></i>
|
||||
{{/if}}
|
||||
</li>
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit am-margin-top-sm" data-view-tag="ul.images-idcard_front">+ {{:MyLang('common_service.useraddress.form_item_idcard_front_button_name')}}</div>
|
||||
@ -110,7 +112,9 @@
|
||||
<input type="text" name="idcard_back" value="{{$data.idcard_back}}" />
|
||||
{{/if}}
|
||||
<img src="{{if empty($data['idcard_back'])}}{{:StaticAttachmentUrl('default-idcard-back.jpg')}}{{else /}}{{$data.idcard_back}}{{/if}}" />
|
||||
<i class="iconfont icon-close"></i>
|
||||
{{if !empty($data['idcard_back'])}}
|
||||
<i class="iconfont icon-close"></i>
|
||||
{{/if}}
|
||||
</li>
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit am-margin-top-sm" data-view-tag="ul.images-idcard_back">+ {{:MyLang('common_service.useraddress.form_item_idcard_back_button_name')}}</div>
|
||||
|
@ -14,11 +14,10 @@
|
||||
<!-- 公共代码 -->
|
||||
{{block name="form_page_bottom"}}
|
||||
<!-- 商品添加弹窗 -->
|
||||
<div class="am-popup am-radius" id="warehouse-goods-popup">
|
||||
<div class="am-popup am-radius am-popup-full-max-lg" id="warehouse-goods-popup">
|
||||
<div class="am-popup-inner">
|
||||
<div class="am-popup-hd">
|
||||
<h4 class="am-popup-title">{{:MyLang('warehousegoods.add_goods_title')}}</h4>
|
||||
<span class="am-icon-arrows-alt am-full"></span>
|
||||
<span data-am-modal-close class="am-close">×</span>
|
||||
</div>
|
||||
<div class="am-popup-bd am-padding-0">
|
||||
@ -59,8 +58,8 @@
|
||||
</div>
|
||||
|
||||
<!-- 商品列表 -->
|
||||
<div class="am-scrollable-vertical am-margin-top-sm am-padding-bottom-xs goods-list-container" data-loading-msg="{{:MyLang('searching_tips')}}" data-add-url="{{:MyUrl('admin/warehousegoods/goodsadd')}}" data-del-url="{{:MyUrl('admin/warehousegoods/goodsdel')}}">
|
||||
<ul class="am-gallery am-avg-sm-3 am-avg-md-4 am-avg-lg-5 am-gallery-bordered"></ul>
|
||||
<div class="am-scrollable-vertical am-margin-top-sm am-padding-bottom-xs am-radius goods-list-container" data-loading-msg="{{:MyLang('searching_tips')}}" data-add-url="{{:MyUrl('admin/warehousegoods/goodsadd')}}" data-del-url="{{:MyUrl('admin/warehousegoods/goodsdel')}}">
|
||||
<ul class="am-gallery am-avg-sm-2 am-avg-md-6 am-avg-lg-8 am-gallery-bordered"></ul>
|
||||
</div>
|
||||
|
||||
<!-- 分页 -->
|
||||
|
@ -5,7 +5,7 @@
|
||||
<strong class="am-fr">{{$module_data.spec[0]['inventory']}}</strong>
|
||||
</div>
|
||||
{{if count($module_data.spec) gt 1}}
|
||||
<a href="javascript:;" class="am-text-blue" data-am-modal="{target: '#warehousegoods-spec-inventory-modal-{{$module_data.id}}', width: 300}">{{:MyLang('view_title')}}({{:count($module_data.spec)}}) ></a>
|
||||
<a href="javascript:;" class="am-color-blue" data-am-modal="{target: '#warehousegoods-spec-inventory-modal-{{$module_data.id}}', width: 300}">{{:MyLang('view_title')}}({{:count($module_data.spec)}}) ></a>
|
||||
<div class="am-modal am-modal-no-btn" tabindex="-1" id="warehousegoods-spec-inventory-modal-{{$module_data.id}}">
|
||||
<div class="am-modal-dialog">
|
||||
<div class="am-modal-hd">
|
||||
|
@ -13,7 +13,6 @@ namespace app\api\controller;
|
||||
use app\BaseController;
|
||||
use app\service\ApiService;
|
||||
use app\service\SystemService;
|
||||
use app\service\ConfigService;
|
||||
use app\service\UserService;
|
||||
use app\module\FormTableHandleModule;
|
||||
|
||||
@ -71,17 +70,12 @@ class Common extends BaseController
|
||||
// 检测是否是新安装
|
||||
SystemService::SystemInstallCheck();
|
||||
|
||||
// 输入参数
|
||||
$this->data_post = input('post.');
|
||||
$this->data_get = input('get.');
|
||||
$this->data_request = input();
|
||||
// 系统初始化
|
||||
$this->SystemInit();
|
||||
|
||||
// 系统运行开始
|
||||
SystemService::SystemBegin($this->data_request);
|
||||
|
||||
// 系统初始化
|
||||
$this->SystemInit();
|
||||
|
||||
// 网站状态
|
||||
$this->SiteStstusCheck();
|
||||
|
||||
@ -116,8 +110,10 @@ class Common extends BaseController
|
||||
*/
|
||||
private function SystemInit()
|
||||
{
|
||||
// 配置信息初始化
|
||||
ConfigService::ConfigInit();
|
||||
// 输入参数
|
||||
$this->data_post = input('post.');
|
||||
$this->data_get = input('get.');
|
||||
$this->data_request = input();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -13,7 +13,7 @@ namespace app\api\controller;
|
||||
use app\service\ApiService;
|
||||
use app\service\DesignService;
|
||||
use app\service\SystemBaseService;
|
||||
use app\layout\service\BaseLayout;
|
||||
use app\module\LayoutModule;
|
||||
|
||||
/**
|
||||
* 页面设计
|
||||
@ -35,39 +35,62 @@ class Design extends Common
|
||||
*/
|
||||
public function Index()
|
||||
{
|
||||
$data = null;
|
||||
$layout_data = null;
|
||||
if(!empty($this->data_request['id']))
|
||||
{
|
||||
$data_params = [
|
||||
'where' => [
|
||||
'id' => intval($this->data_request['id']),
|
||||
],
|
||||
'm' => 0,
|
||||
'n' => 1,
|
||||
];
|
||||
$ret = DesignService::DesignList($data_params);
|
||||
if($ret['code'] == 0 && !empty($ret['data']) && !empty($ret['data'][0]))
|
||||
$key = 'api_design_data_'.intval($this->data_request['id']).'_'.APPLICATION_CLIENT_TYPE;
|
||||
$result = MyCache($key);
|
||||
if(empty($result) || (isset($this->data_request['is_cache']) && $this->data_request['is_cache'] == 0))
|
||||
{
|
||||
$data = $ret['data'][0];
|
||||
// 数据容器
|
||||
$data = null;
|
||||
$layout_data = null;
|
||||
|
||||
// 访问统计
|
||||
DesignService::DesignAccessCountInc(['design_id'=>$data['id']]);
|
||||
// 获取design数据
|
||||
$data_params = [
|
||||
'where' => [
|
||||
'id' => intval($this->data_request['id']),
|
||||
],
|
||||
'm' => 0,
|
||||
'n' => 1,
|
||||
];
|
||||
$ret = DesignService::DesignList($data_params);
|
||||
if($ret['code'] == 0 && !empty($ret['data']) && !empty($ret['data'][0]))
|
||||
{
|
||||
$data = $ret['data'][0];
|
||||
|
||||
// 配置处理
|
||||
$layout_data = BaseLayout::ConfigHandle($data['config']);
|
||||
// 访问统计
|
||||
DesignService::DesignAccessCountInc(['design_id'=>$data['id']]);
|
||||
|
||||
// 去除布局配置数据、避免很多配置数据造成带宽浪费
|
||||
unset($data['config']);
|
||||
// 配置处理
|
||||
$layout_data = LayoutModule::ConfigHandle($data['config']);
|
||||
|
||||
// 去除布局配置数据、避免很多配置数据造成带宽浪费
|
||||
unset($data['config']);
|
||||
}
|
||||
|
||||
// 返回数据
|
||||
$result = SystemBaseService::DataReturn([
|
||||
'data' => $data,
|
||||
'layout_data' => $layout_data,
|
||||
]);
|
||||
|
||||
// 缓存数据、没有用户登录信息则存储缓存
|
||||
if(empty($this->user))
|
||||
{
|
||||
MyCache($key, $result, 3600);
|
||||
}
|
||||
} else {
|
||||
$result['data']['is_result_data_cache'] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
// 返回数据
|
||||
$result = [
|
||||
'data' => $data,
|
||||
'layout_data' => $layout_data,
|
||||
];
|
||||
return ApiService::ApiDataReturn(SystemBaseService::DataReturn($result));
|
||||
// 访问统计
|
||||
if(!empty($result['data']) && !empty($result['data']['data']))
|
||||
{
|
||||
DesignService::DesignAccessCountInc(['design_id'=>$result['data']['data']['id']]);
|
||||
}
|
||||
return ApiService::ApiDataReturn($result);
|
||||
}
|
||||
return ApiService::ApiDataReturn(DataReturn(MyLang('no_data'), -1));
|
||||
}
|
||||
}
|
||||
?>
|
@ -12,6 +12,7 @@ namespace app\api\controller;
|
||||
|
||||
use think\facade\Db;
|
||||
use app\service\ResourcesService;
|
||||
use app\service\AttachmentService;
|
||||
use app\service\RegionService;
|
||||
use app\service\GoodsService;
|
||||
use app\service\WarehouseGoodsService;
|
||||
@ -66,7 +67,7 @@ class Devtest extends Common
|
||||
{
|
||||
if($file != 'index.html' && $file != '.' && $file != '..' && substr($file, 0, 1) != '.')
|
||||
{
|
||||
$ret = ResourcesService::AttachmentDiskFilesToDb($file);
|
||||
$ret = AttachmentService::AttachmentDiskFilesToDb($file);
|
||||
if(isset($ret['msg']))
|
||||
{
|
||||
echo $ret['msg'];
|
||||
|
70
app/api/controller/Diy.php
Normal file
70
app/api/controller/Diy.php
Normal file
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ShopXO 国内领先企业级B2C免费开源电商系统
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( https://opensource.org/licenses/mit-license.php )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Devil
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\api\controller;
|
||||
|
||||
use app\service\ApiService;
|
||||
use app\service\DiyService;
|
||||
use app\service\SystemBaseService;
|
||||
|
||||
/**
|
||||
* DIY
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-09-10
|
||||
* @desc description
|
||||
*/
|
||||
class Diy extends Common
|
||||
{
|
||||
/**
|
||||
* 首页
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-09-10
|
||||
* @desc description
|
||||
*/
|
||||
public function Index()
|
||||
{
|
||||
if(!empty($this->data_request['id']))
|
||||
{
|
||||
$key = 'api_diy_data_'.intval($this->data_request['id']).'_'.APPLICATION_CLIENT_TYPE;
|
||||
$result = MyCache($key);
|
||||
if(empty($result) || (isset($this->data_request['is_cache']) && $this->data_request['is_cache'] == 0))
|
||||
{
|
||||
// 获取diy数据
|
||||
$data = DiyService::DiyData($this->data_request);
|
||||
|
||||
// 返回数据
|
||||
$result = SystemBaseService::DataReturn([
|
||||
'data' => $data
|
||||
]);
|
||||
|
||||
// 缓存数据、没有用户登录信息则存储缓存
|
||||
if(empty($this->user))
|
||||
{
|
||||
MyCache($key, $result, 3600);
|
||||
}
|
||||
} else {
|
||||
$result['data']['is_result_data_cache'] = 1;
|
||||
}
|
||||
|
||||
// 访问统计
|
||||
if(!empty($result['data']) && !empty($result['data']['data']))
|
||||
{
|
||||
DiyService::DiyAccessCountInc(['diy_id'=>$result['data']['data']['id']]);
|
||||
}
|
||||
return ApiService::ApiDataReturn($result);
|
||||
}
|
||||
return ApiService::ApiDataReturn(DataReturn(MyLang('no_data'), -1));
|
||||
}
|
||||
}
|
||||
?>
|
@ -110,6 +110,9 @@ class Goods extends Common
|
||||
// 导航更多列表
|
||||
$nav_more_list = AppService::GoodsNavMoreList(['page'=>'goods']);
|
||||
|
||||
// 商品底部导航左侧小导航
|
||||
$buy_left_nav = GoodsService::GoodsBuyLeftNavList($goods);
|
||||
|
||||
// 商品购买按钮列表
|
||||
$buy_button = GoodsService::GoodsBuyButtonList($goods);
|
||||
|
||||
@ -118,12 +121,13 @@ class Goods extends Common
|
||||
|
||||
// 数据返回
|
||||
$result = [
|
||||
'goods' => $goods,
|
||||
'cart_total' => GoodsCartService::UserGoodsCartTotal(['user'=>$this->user]),
|
||||
'buy_button' => $buy_button,
|
||||
'middle_tabs_nav' => $middle_tabs_nav,
|
||||
'nav_more_list' => $nav_more_list,
|
||||
'guess_you_like' => $guess_you_like,
|
||||
'goods' => $goods,
|
||||
'cart_total' => GoodsCartService::UserGoodsCartTotal(['user'=>$this->user]),
|
||||
'buy_left_nav' => $buy_left_nav,
|
||||
'buy_button' => $buy_button,
|
||||
'middle_tabs_nav' => $middle_tabs_nav,
|
||||
'nav_more_list' => $nav_more_list,
|
||||
'guess_you_like' => $guess_you_like,
|
||||
];
|
||||
$ret = SystemBaseService::DataReturn($result);
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ use app\service\MessageService;
|
||||
use app\service\AppService;
|
||||
use app\service\PluginsService;
|
||||
use app\service\GoodsCartService;
|
||||
use app\service\DiyService;
|
||||
|
||||
/**
|
||||
* 首页
|
||||
@ -58,38 +59,56 @@ class Index extends Common
|
||||
$result = MyCache($key);
|
||||
if(empty($result) || (isset($this->data_request['is_cache']) && $this->data_request['is_cache'] == 0))
|
||||
{
|
||||
// 数据模式
|
||||
if(MyC('home_index_floor_data_type', 0, true) == 2)
|
||||
{
|
||||
$data_list = LayoutService::LayoutConfigData('home');
|
||||
} else {
|
||||
$data_list = GoodsService::HomeFloorList();
|
||||
}
|
||||
|
||||
// 购物车汇总
|
||||
$cart_total = GoodsCartService::UserGoodsCartTotal(['user'=>$this->user]);
|
||||
|
||||
// 未读消息总数
|
||||
$params = ['user'=>$this->user, 'is_more'=>1, 'is_read'=>0];
|
||||
$message_total = MessageService::UserMessageTotal($params);
|
||||
// 数据模式(0自动模式, 1手动模式, 2拖拽模式, 3DIY模式)
|
||||
// 手机端是否DIY模式
|
||||
if(MyC('common_app_is_index_data_diy_mode', 0, true) == 1)
|
||||
{
|
||||
// diy下模式设置为3
|
||||
$data_mode = 3;
|
||||
|
||||
// 返回数据
|
||||
$result = SystemBaseService::DataReturn([
|
||||
'navigation' => AppHomeNavService::AppHomeNav(),
|
||||
'banner_list' => SlideService::SlideList(),
|
||||
'data_list' => $data_list,
|
||||
'article_list' => ArticleService::RecommendedArticleList(),
|
||||
'right_icon_list' => AppService::HomeRightIconList(['message_total'=>$message_total]),
|
||||
'cart_total' => $cart_total,
|
||||
'message_total' => $message_total,
|
||||
'plugins_sort_list' => PluginsService::PluginsSortList(),
|
||||
]);
|
||||
// 获取diy数据
|
||||
$data_list = DiyService::DiyData(['id'=>MyC('common_app_index_data_diy_mode_value')]);
|
||||
|
||||
// 缓存数据,购物车数量设置0
|
||||
$cache_result = $result;
|
||||
$cache_result['data']['cart_total'] = ['total_price'=>0, 'buy_number'=>0];
|
||||
$cache_result['data']['message_total'] = 0;
|
||||
MyCache($key, $cache_result, 3600);
|
||||
// 返回数据
|
||||
$result = DataReturn('success', 0, [
|
||||
'data_mode' => $data_mode,
|
||||
'data_list' => $data_list,
|
||||
'cart_total' => $cart_total,
|
||||
]);
|
||||
} else {
|
||||
$data_mode = MyC('home_index_floor_data_type', 0, true);
|
||||
if($data_mode == 2)
|
||||
{
|
||||
$data_list = LayoutService::LayoutConfigData('home');
|
||||
} else {
|
||||
$data_list = GoodsService::HomeFloorList();
|
||||
}
|
||||
|
||||
// 未读消息总数
|
||||
$message_total = MessageService::UserMessageTotal(['user'=>$this->user, 'is_more'=>1, 'is_read'=>0]);
|
||||
|
||||
// 返回数据
|
||||
$result = SystemBaseService::DataReturn([
|
||||
'data_mode' => $data_mode,
|
||||
'navigation' => AppHomeNavService::AppHomeNav(),
|
||||
'banner_list' => SlideService::SlideList(),
|
||||
'data_list' => $data_list,
|
||||
'article_list' => ArticleService::RecommendedArticleList(),
|
||||
'right_icon_list' => AppService::HomeRightIconList(['message_total'=>$message_total]),
|
||||
'cart_total' => $cart_total,
|
||||
'message_total' => $message_total,
|
||||
'plugins_sort_list' => PluginsService::PluginsSortList(),
|
||||
]);
|
||||
}
|
||||
|
||||
// 缓存数据、没有用户登录信息则存储缓存
|
||||
if(empty($this->user))
|
||||
{
|
||||
MyCache($key, $result, 3600);
|
||||
}
|
||||
} else {
|
||||
$result['data']['is_result_data_cache'] = 1;
|
||||
}
|
||||
|
@ -66,19 +66,21 @@ class Search extends Common
|
||||
// 返回数据
|
||||
$result = [
|
||||
// 指定数据
|
||||
'search_map_info' => SearchService::SearchMapInfo($this->data_request),
|
||||
'search_map_info' => SearchService::SearchMapInfo($this->data_request),
|
||||
// 品牌列表
|
||||
'brand_list' => SearchService::CategoryBrandList($map, $this->data_request),
|
||||
'brand_list' => SearchService::CategoryBrandList($map, $this->data_request),
|
||||
// 商品分类
|
||||
'category_list' => SearchService::GoodsCategoryList($this->data_request),
|
||||
'category_list' => SearchService::GoodsCategoryList($this->data_request),
|
||||
// 筛选价格区间
|
||||
'screening_price_list' => SearchService::ScreeningPriceList($this->data_request),
|
||||
'screening_price_list' => SearchService::ScreeningPriceList($this->data_request),
|
||||
// 商品产地
|
||||
'goods_place_origin_list' => SearchService::SearchGoodsPlaceOriginList($map, $this->data_request),
|
||||
// 商品参数
|
||||
'goods_params_list' => SearchService::SearchGoodsParamsValueList($map, $this->data_request),
|
||||
'goods_params_list' => SearchService::SearchGoodsParamsValueList($map, $this->data_request),
|
||||
// 商品规格
|
||||
'goods_spec_list' => SearchService::SearchGoodsSpecValueList($map, $this->data_request),
|
||||
'goods_spec_list' => SearchService::SearchGoodsSpecValueList($map, $this->data_request),
|
||||
// 购物车汇总
|
||||
'cart_total' => GoodsCartService::UserGoodsCartTotal(['user'=>$this->user]),
|
||||
'cart_total' => GoodsCartService::UserGoodsCartTotal(['user'=>$this->user]),
|
||||
];
|
||||
return ApiService::ApiDataReturn(SystemBaseService::DataReturn($result));
|
||||
}
|
||||
@ -120,5 +122,18 @@ class Search extends Common
|
||||
// 返回数据
|
||||
return ApiService::ApiDataReturn(SystemBaseService::DataReturn($ret['data'], $ret['msg'], $ret['code']));
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索开始
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-07-12
|
||||
* @desc description
|
||||
*/
|
||||
public function Start()
|
||||
{
|
||||
return ApiService::ApiDataReturn(SearchService::SearchStartData($this->data_request));
|
||||
}
|
||||
}
|
||||
?>
|
702
app/common.php
702
app/common.php
@ -19,6 +19,24 @@ use app\service\AdminService;
|
||||
use app\service\AdminPowerService;
|
||||
use app\service\MultilingualService;
|
||||
use app\service\UserService;
|
||||
use app\service\SystemService;
|
||||
use app\service\ConfigService;
|
||||
|
||||
/**
|
||||
* 附件字节大小转换为单位
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-07-19
|
||||
* @desc description
|
||||
* @param [int] $size [大小字节]
|
||||
*/
|
||||
function AnnexSizeToUnit($size)
|
||||
{
|
||||
$units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
||||
$power = $size > 0 ? floor(log($size, 1024)) : 0;
|
||||
return PriceBeautify(PriceNumberFormat($size / pow(1024, $power), 2)).$units[$power];
|
||||
}
|
||||
|
||||
/**
|
||||
* 金额转换成大写人民币
|
||||
@ -176,7 +194,7 @@ function IsUserLogin($login_url = null)
|
||||
if(IS_AJAX || APPLICATION == 'app')
|
||||
{
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
exit(json_encode(DataReturn(MyLang('login_failure_tips'), -400)));
|
||||
exit(json_encode(DataReturn(MyLang('login_failure_tips'), -400, MyUrl('index/user/logininfo'))));
|
||||
} else {
|
||||
// 如果存在父级窗口刷新,则跳转
|
||||
die('<script type="text/javascript">if(self.frameElement && self.frameElement.tagName == "IFRAME"){parent.location.reload();}else{window.location.href="'.$login_url.'";}</script>');
|
||||
@ -195,52 +213,60 @@ function IsUserLogin($login_url = null)
|
||||
*/
|
||||
function DefaultTheme($theme = null)
|
||||
{
|
||||
$params = [];
|
||||
$key = 'default_theme';
|
||||
if(empty($theme))
|
||||
static $default_theme = null;
|
||||
if($default_theme === null)
|
||||
{
|
||||
// 请求参数
|
||||
$params = MyInput();
|
||||
$cookie_domain = MyFileConfig('common_cookie_domain', '', __MY_MAIN_DOMAIN__, true);
|
||||
if(!empty($cookie_domain) && substr($cookie_domain, 0, 1) != '.')
|
||||
{
|
||||
$cookie_domain = '.'.$cookie_domain;
|
||||
}
|
||||
$params = [];
|
||||
$key = 'default_theme';
|
||||
if(empty($theme))
|
||||
{
|
||||
// 请求参数
|
||||
$params = MyInput();
|
||||
|
||||
// 主题处理
|
||||
if(empty($params[$key]))
|
||||
// 主题处理
|
||||
if(empty($params[$key]))
|
||||
{
|
||||
if(session_status() != 2)
|
||||
{
|
||||
ini_set('session.cookie_domain', $cookie_domain);
|
||||
session_start();
|
||||
}
|
||||
if(empty($_SESSION[$key]))
|
||||
{
|
||||
$default_theme = MyFileConfig('common_default_theme', '', 'default', true);
|
||||
} else {
|
||||
$default_theme = $_SESSION[$key];
|
||||
}
|
||||
} else {
|
||||
$default_theme = $params[$key];
|
||||
}
|
||||
} else {
|
||||
$default_theme = $theme;
|
||||
}
|
||||
|
||||
// 存在指定主题则记录session
|
||||
if(!empty($params[$key]) || !empty($theme))
|
||||
{
|
||||
if(session_status() != 2)
|
||||
{
|
||||
ini_set('session.cookie_domain', MyFileConfig('common_cookie_domain', '', '', true));
|
||||
ini_set('session.cookie_domain', $cookie_domain);
|
||||
session_start();
|
||||
}
|
||||
if(empty($_SESSION[$key]))
|
||||
{
|
||||
$default_theme = MyFileConfig('common_default_theme', '', 'default', true);
|
||||
} else {
|
||||
$default_theme = $_SESSION[$key];
|
||||
}
|
||||
} else {
|
||||
$default_theme = $params[$key];
|
||||
$_SESSION[$key] = empty($theme) ? $params[$key] : $theme;
|
||||
}
|
||||
} else {
|
||||
$default_theme = $theme;
|
||||
}
|
||||
|
||||
// 存在指定主题则记录session
|
||||
if(!empty($params[$key]) || !empty($theme))
|
||||
{
|
||||
if(session_status() != 2)
|
||||
// 主题是否存在、则为默认主题default
|
||||
$path = APP_PATH.'index'.DS.'view'.DS.$default_theme;
|
||||
if(!file_exists($path) || !is_dir($path))
|
||||
{
|
||||
ini_set('session.cookie_domain', MyFileConfig('common_cookie_domain', '', '', true));
|
||||
session_start();
|
||||
$default_theme = 'default';
|
||||
}
|
||||
$_SESSION[$key] = empty($theme) ? $params[$key] : $theme;
|
||||
}
|
||||
|
||||
// 主题是否存在、则为默认主题default
|
||||
$path = APP_PATH.'index'.DS.'view'.DS.$default_theme;
|
||||
if(!file_exists($path) || !is_dir($path))
|
||||
{
|
||||
$default_theme = 'default';
|
||||
}
|
||||
|
||||
return strtolower($default_theme);
|
||||
}
|
||||
|
||||
@ -322,6 +348,20 @@ function StaticAttachmentUrl($value, $type = 'images')
|
||||
}
|
||||
}
|
||||
|
||||
// 手机端
|
||||
if(empty($result) && APPLICATION == 'app')
|
||||
{
|
||||
$theme = MyInput('theme');
|
||||
if(!empty($theme))
|
||||
{
|
||||
$file = DS.'static'.DS.'app'.DS.$theme.DS.'common'.DS.$value;
|
||||
if(file_exists(ROOT.'public'.$file))
|
||||
{
|
||||
$result = $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 不存在则走公共
|
||||
if(empty($result))
|
||||
{
|
||||
@ -332,7 +372,24 @@ function StaticAttachmentUrl($value, $type = 'images')
|
||||
}
|
||||
}
|
||||
|
||||
return empty($result) ? '' : SystemBaseService::AttachmentHost().$result;
|
||||
if(empty($result))
|
||||
{
|
||||
return '';
|
||||
}
|
||||
$url = SystemBaseService::AttachmentHost().$result;
|
||||
|
||||
// 模板引擎数据渲染分配钩子
|
||||
$hook_name = 'plugins_static_attachment_url_value';
|
||||
MyEventTrigger($hook_name,
|
||||
[
|
||||
'hook_name' => $hook_name,
|
||||
'is_backend' => true,
|
||||
'url' => &$url,
|
||||
'value' => $value,
|
||||
'type' => $type,
|
||||
]);
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -508,12 +565,6 @@ function MyConst($key = '', $default = null)
|
||||
*/
|
||||
function MySession($name = '', $value = '')
|
||||
{
|
||||
// 接口不记录session
|
||||
if(APPLICATION == 'app' && $value !== '')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// 调用框架session统一方法
|
||||
$res = session($name, $value);
|
||||
|
||||
@ -544,108 +595,117 @@ function MyLang($key, $vars = [], $lang = '', $plugins = '')
|
||||
$value = '';
|
||||
if(!empty($key))
|
||||
{
|
||||
// 当前语言
|
||||
$current_lang = empty($lang) ? MultilingualService::GetUserMultilingualValue() : $lang;
|
||||
|
||||
// key使用 . 分隔
|
||||
$key_arr = explode('.', $key);
|
||||
|
||||
// 语言数据容器
|
||||
static $lang_data = [];
|
||||
|
||||
// 系统语言
|
||||
$request_module = RequestModule();
|
||||
$arr_file = [
|
||||
APP_PATH.$request_module.DS.'lang'.DS.$current_lang.'.php',
|
||||
APP_PATH.'lang'.DS.$current_lang.'.php',
|
||||
];
|
||||
|
||||
// 是否插件语言、未指定则处理
|
||||
$plugins_name = empty($plugins) ? PluginsNameBacktrace() : $plugins;
|
||||
if(!empty($plugins_name))
|
||||
static $lang_key_data = [];
|
||||
if(!array_key_exists($key, $lang_key_data))
|
||||
{
|
||||
$plugins_dir = APP_PATH.'plugins'.DS.$plugins_name.DS.'lang'.DS;
|
||||
array_unshift($arr_file, $plugins_dir.$current_lang.'.php');
|
||||
array_unshift($arr_file, $plugins_dir.'common'.DS.$current_lang.'.php');
|
||||
array_unshift($arr_file, $plugins_dir.$request_module.DS.$current_lang.'.php');
|
||||
}
|
||||
// key使用 . 分隔
|
||||
$key_arr = explode('.', $key);
|
||||
|
||||
// 循环获取语言时间
|
||||
foreach($arr_file as $file)
|
||||
{
|
||||
$md5_key = md5($file);
|
||||
if(!array_key_exists($md5_key, $lang_data) && file_exists($file))
|
||||
// 当前语言
|
||||
$current_lang = empty($lang) ? MultilingualService::GetUserMultilingualValue() : $lang;
|
||||
|
||||
// 语言数据容器
|
||||
static $lang_file_data = [];
|
||||
|
||||
// 系统语言
|
||||
$request_module = RequestModule();
|
||||
$arr_file = [
|
||||
APP_PATH.$request_module.DS.'lang'.DS.$current_lang.'.php',
|
||||
APP_PATH.'lang'.DS.$current_lang.'.php',
|
||||
];
|
||||
|
||||
// 是否插件语言、未指定则处理
|
||||
$plugins_name = empty($plugins) ? PluginsNameBacktrace() : $plugins;
|
||||
if(!empty($plugins_name))
|
||||
{
|
||||
$lang_data[$md5_key] = require $file;
|
||||
$plugins_dir = APP_PATH.'plugins'.DS.$plugins_name.DS.'lang'.DS;
|
||||
array_unshift($arr_file, $plugins_dir.$current_lang.'.php');
|
||||
array_unshift($arr_file, $plugins_dir.'common'.DS.$current_lang.'.php');
|
||||
array_unshift($arr_file, $plugins_dir.$request_module.DS.$current_lang.'.php');
|
||||
}
|
||||
if(!empty($lang_data[$md5_key]) && is_array($lang_data[$md5_key]))
|
||||
|
||||
// 循环获取语言时间
|
||||
foreach($arr_file as $file)
|
||||
{
|
||||
$temp_lang_data = $lang_data[$md5_key];
|
||||
// 仅一级则直接读取
|
||||
if(count($key_arr) == 1)
|
||||
$md5_key = md5($file);
|
||||
if(!array_key_exists($md5_key, $lang_file_data) && file_exists($file))
|
||||
{
|
||||
if(array_key_exists($key, $temp_lang_data))
|
||||
$lang_file_data[$md5_key] = require $file;
|
||||
}
|
||||
if(!empty($lang_file_data[$md5_key]) && is_array($lang_file_data[$md5_key]))
|
||||
{
|
||||
$temp_lang_file_data = $lang_file_data[$md5_key];
|
||||
// 仅一级则直接读取
|
||||
if(count($key_arr) == 1)
|
||||
{
|
||||
$value = $temp_lang_data[$key];
|
||||
}
|
||||
} else {
|
||||
// 默认先读取第一级
|
||||
if(array_key_exists($key_arr[0], $temp_lang_data))
|
||||
{
|
||||
$value = $temp_lang_data[$key_arr[0]];
|
||||
if(!empty($value) && is_array($value))
|
||||
if(array_key_exists($key, $temp_lang_file_data))
|
||||
{
|
||||
// 移除第一级
|
||||
array_shift($key_arr);
|
||||
// 循环后面级别的数据
|
||||
foreach($key_arr as $k=>$v)
|
||||
$value = $temp_lang_file_data[$key];
|
||||
}
|
||||
} else {
|
||||
// 默认先读取第一级
|
||||
if(array_key_exists($key_arr[0], $temp_lang_file_data))
|
||||
{
|
||||
$value = $temp_lang_file_data[$key_arr[0]];
|
||||
if(!empty($value) && is_array($value))
|
||||
{
|
||||
if(array_key_exists($v, $value))
|
||||
// 移除第一级
|
||||
array_shift($key_arr);
|
||||
// 循环后面级别的数据
|
||||
foreach($key_arr as $k=>$v)
|
||||
{
|
||||
$value = $value[$v];
|
||||
// 匹配到最后一级字段则结束外循环
|
||||
if($k == count($key_arr)-1)
|
||||
if(array_key_exists($v, $value))
|
||||
{
|
||||
break 2;
|
||||
$value = $value[$v];
|
||||
// 匹配到最后一级字段则结束外循环
|
||||
if($k == count($key_arr)-1)
|
||||
{
|
||||
break 2;
|
||||
}
|
||||
} else {
|
||||
// 未匹配到则赋空值
|
||||
$value = '';
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
// 未匹配到则赋空值
|
||||
$value = '';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 未找到对应语言
|
||||
if($value == '')
|
||||
{
|
||||
// 未指定语言则读取默认语言重新再去读取
|
||||
if(empty($lang))
|
||||
// 未找到对应语言
|
||||
if($value == '')
|
||||
{
|
||||
// 非默认语言则读取默认语言
|
||||
$default_lang = MyConfig('lang.default_lang');
|
||||
if($default_lang != $current_lang)
|
||||
// 未指定语言则读取默认语言重新再去读取
|
||||
if(empty($lang))
|
||||
{
|
||||
$value = MyLang($key, $vars, $default_lang, $plugins_name);
|
||||
}
|
||||
// 非默认语言则读取默认语言
|
||||
$default_lang = MyConfig('lang.default_lang');
|
||||
if($default_lang != $current_lang)
|
||||
{
|
||||
$value = MyLang($key, $vars, $default_lang, $plugins_name);
|
||||
}
|
||||
|
||||
// 未找到对应语言、则取zh语言
|
||||
if($value == '')
|
||||
{
|
||||
$value = MyLang($key, $vars, 'zh', $plugins_name);
|
||||
// 没有语言则赋值key
|
||||
// 未找到对应语言、则取zh语言
|
||||
if($value == '')
|
||||
{
|
||||
$value = $key;
|
||||
$value = MyLang($key, $vars, 'zh', $plugins_name);
|
||||
// 没有语言则赋值key
|
||||
if($value == '')
|
||||
{
|
||||
$value = $key;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$value = $key;
|
||||
}
|
||||
} else {
|
||||
$value = $key;
|
||||
}
|
||||
|
||||
// 放入静态数据
|
||||
$lang_key_data[$key] = $value;
|
||||
} else {
|
||||
$value = $lang_key_data[$key];
|
||||
}
|
||||
|
||||
// 变量解析
|
||||
@ -722,12 +782,6 @@ function PluginsNameBacktrace()
|
||||
*/
|
||||
function MyCookie($name = '', $value = '', $is_encryption = true)
|
||||
{
|
||||
// 接口不记录cookie
|
||||
if(APPLICATION == 'app' && $value !== '')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// 非空则转换数据
|
||||
if($value !== null && $value !== '' && $is_encryption)
|
||||
{
|
||||
@ -885,6 +939,11 @@ function MyViewAssign($data, $value = '')
|
||||
*/
|
||||
function MyView($view = '', $data = [])
|
||||
{
|
||||
// 当前项目组
|
||||
$group = RequestModule();
|
||||
// 文件后缀
|
||||
$suffix = '.'.config('view.view_suffix');
|
||||
|
||||
// 模板文件不存在则使用系统默认处理
|
||||
// 当前默认主题标识
|
||||
$theme = DefaultTheme();
|
||||
@ -893,14 +952,10 @@ function MyView($view = '', $data = [])
|
||||
// 模板未指定、并且不是../../../plugins则表示是系统文件
|
||||
if(empty($view) || substr($view, 0, 16) != '../../../plugins')
|
||||
{
|
||||
// 当前项目组
|
||||
$group = RequestModule();
|
||||
// 当前控制器名称
|
||||
$control = RequestController();
|
||||
// 当前方法名称
|
||||
$action = RequestAction();
|
||||
// 文件后缀
|
||||
$suffix = '.'.config('view.view_suffix');
|
||||
// 空则赋值模板路径
|
||||
if(empty($view))
|
||||
{
|
||||
@ -922,6 +977,16 @@ function MyView($view = '', $data = [])
|
||||
}
|
||||
}
|
||||
|
||||
// 主题是否存在插件文件
|
||||
if(substr($view, 0, 16) == '../../../plugins')
|
||||
{
|
||||
$plugins_view_file = APP_PATH.$group.DS.'view'.DS.$theme.DS.'plugins'.DS.str_replace(DS.'view'.DS, DS, substr($view, 17)).$suffix;
|
||||
if(file_exists($plugins_view_file))
|
||||
{
|
||||
$view = $plugins_view_file;
|
||||
}
|
||||
}
|
||||
|
||||
// 模板引擎数据渲染前钩子
|
||||
$hook_name = 'plugins_view_fetch_begin';
|
||||
MyEventTrigger($hook_name,
|
||||
@ -1013,8 +1078,13 @@ function RequestAction()
|
||||
*/
|
||||
function PluginsRequestName()
|
||||
{
|
||||
$plugins = MyInput('pluginsname');
|
||||
return empty($plugins) ? '' : strtolower($plugins);
|
||||
static $request_plugins_name = null;
|
||||
if($request_plugins_name === null)
|
||||
{
|
||||
$plugins = MyInput('pluginsname');
|
||||
$request_plugins_name = empty($plugins) ? '' : strtolower($plugins);
|
||||
}
|
||||
return $request_plugins_name;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1027,7 +1097,12 @@ function PluginsRequestName()
|
||||
*/
|
||||
function PluginsRequestController()
|
||||
{
|
||||
return strtolower(MyInput('pluginscontrol', 'index'));
|
||||
static $request_plugins_controller = null;
|
||||
if($request_plugins_controller === null)
|
||||
{
|
||||
$request_plugins_controller = strtolower(MyInput('pluginscontrol', 'index'));
|
||||
}
|
||||
return $request_plugins_controller;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1040,7 +1115,12 @@ function PluginsRequestController()
|
||||
*/
|
||||
function PluginsRequestAction()
|
||||
{
|
||||
return strtolower(MyInput('pluginsaction', 'index'));
|
||||
static $request_plugins_action = null;
|
||||
if($request_plugins_action === null)
|
||||
{
|
||||
$request_plugins_action = strtolower(MyInput('pluginsaction', 'index'));
|
||||
}
|
||||
return $request_plugins_action;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1228,7 +1308,6 @@ function MyFileConfig($key, $value = '', $default = null, $mandatory = false)
|
||||
|
||||
// 目录不存在则创建
|
||||
$config_dir = ROOT.'runtime'.DS.'data'.DS.'config_data'.DS;
|
||||
\base\FileUtil::CreateDir($config_dir);
|
||||
|
||||
// 数据文件
|
||||
$file = $config_dir.md5($key).'.txt';
|
||||
@ -1265,6 +1344,9 @@ function MyFileConfig($key, $value = '', $default = null, $mandatory = false)
|
||||
return $value;
|
||||
// 写内容
|
||||
} else {
|
||||
// 目录创建
|
||||
\base\FileUtil::CreateDir($config_dir);
|
||||
|
||||
// 目录是否有可写权限
|
||||
if(!is_writable($config_dir))
|
||||
{
|
||||
@ -1300,28 +1382,33 @@ function MyFileConfig($key, $value = '', $default = null, $mandatory = false)
|
||||
*/
|
||||
function MyInput($key = null, $default = '')
|
||||
{
|
||||
$params = input();
|
||||
if(empty($params))
|
||||
$params = null;
|
||||
// 未初始化 或 只取到了s参数,则重新读取参数
|
||||
if($params === null || (is_array($params) && count($params) == 1 && isset($params['s'])))
|
||||
{
|
||||
$params = file_get_contents("php://input");
|
||||
}
|
||||
|
||||
// 非数组则检查是否为json和xml数据
|
||||
if(!is_array($params))
|
||||
{
|
||||
if(IsJson($params))
|
||||
$params = input();
|
||||
if(empty($params))
|
||||
{
|
||||
$params = json_decode($params, true);
|
||||
} else {
|
||||
if(XmlParser($params))
|
||||
{
|
||||
$params = XmlArray($params);
|
||||
}
|
||||
$params = file_get_contents("php://input");
|
||||
}
|
||||
} else {
|
||||
if(count($params) == 1 && !empty($params['s']))
|
||||
|
||||
// 非数组则检查是否为json和xml数据
|
||||
if(!is_array($params))
|
||||
{
|
||||
$params = PathToParams(null, null, $params['s']);
|
||||
if(IsJson($params))
|
||||
{
|
||||
$params = json_decode($params, true);
|
||||
} else {
|
||||
if(XmlParser($params))
|
||||
{
|
||||
$params = XmlArray($params);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if(count($params) == 1 && !empty($params['s']))
|
||||
{
|
||||
$params = PathToParams(null, null, $params['s']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1835,6 +1922,110 @@ function FormModulePath($params = [])
|
||||
* @date 2022-10-08
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
function FormModuleData($params = [])
|
||||
{
|
||||
// 路径结构
|
||||
$struct = FormModuleStruct($params);
|
||||
|
||||
// 调用模块获取数据
|
||||
$data = null;
|
||||
$ret = (new app\module\FormTableHandleModule())->Run($struct['module'], $struct['run'], $struct['params']);
|
||||
if($ret['code'] == 0 && !empty($ret['data']) && is_array($ret['data']))
|
||||
{
|
||||
// 返回数据格式
|
||||
if(empty($struct['params']['data_type']))
|
||||
{
|
||||
// 方法为【index 或 控制器+方法是独立表格】则默认返回分页结构体,则详情单条数据
|
||||
$data_type = ($struct['action'] == 'index' || substr($struct['module'], -strlen($struct['alone_ca'])) == $struct['alone_ca']) ? 'page_struct' : 'data_detail';
|
||||
} else {
|
||||
$data_type = $struct['params']['data_type'];
|
||||
}
|
||||
|
||||
// 全部数据
|
||||
if($data_type == 'all')
|
||||
{
|
||||
$data = $ret['data'];
|
||||
} else {
|
||||
switch($data_type)
|
||||
{
|
||||
// 分页结构体
|
||||
case 'page_struct' :
|
||||
$temp = $ret['data'];
|
||||
$data = [
|
||||
'page' => empty($temp['page']) ? 1 : $temp['page'],
|
||||
'page_start' => empty($temp['page_start']) ? 0 : $temp['page_start'],
|
||||
'page_size' => empty($temp['page_size']) ? 0 : $temp['page_size'],
|
||||
'page_total' => empty($temp['page_total']) ? 0 : $temp['page_total'],
|
||||
'data_total' => empty($temp['data_total']) ? 0 : $temp['data_total'],
|
||||
'data_list' => empty($temp['data_list']) ? [] : $temp['data_list'],
|
||||
];
|
||||
break;
|
||||
|
||||
// 默认
|
||||
default :
|
||||
if(array_key_exists($data_type, $ret['data']))
|
||||
{
|
||||
$data = $ret['data'][$data_type];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取动态表格字段数据
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2024-08-29
|
||||
* @desc description
|
||||
* @param [array] $form_data [指定表格配置]
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
function FormModuleFieldData($form_data = [], $params = [])
|
||||
{
|
||||
$result = [];
|
||||
if(empty($form_data))
|
||||
{
|
||||
// 路径结构
|
||||
$struct = FormModuleStruct($params);
|
||||
// 数据表格对象
|
||||
$obj = new app\module\FormTableHandleModule();
|
||||
// 参数校验
|
||||
$ret = $obj->ParamsCheckHandle($struct['module'], $struct['action'], $struct['params']);
|
||||
if($ret['code'] == 0)
|
||||
{
|
||||
$form_data = $obj->form_data;
|
||||
}
|
||||
}
|
||||
if(!empty($form_data) && !empty($form_data['form']) && is_array($form_data['form']))
|
||||
{
|
||||
$result = array_values(array_filter(array_map(function($v)
|
||||
{
|
||||
if(isset($v['view_type']) && in_array($v['view_type'], ['field', 'images']) && !empty($v['view_key']))
|
||||
{
|
||||
$temp = ['name'=>$v['label'], 'field'=>$v['view_key'], 'type'=>$v['view_type']];
|
||||
if(isset($v['is_copy']) && $v['is_copy'] == 1)
|
||||
{
|
||||
$temp['is_copy'] = 1;
|
||||
}
|
||||
return $temp;
|
||||
}
|
||||
}, $form_data['form'])));
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取动态表格结构
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2022-10-08
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
* # 公共
|
||||
* run 调用模块方法(默认 Run)
|
||||
* group 项目组(默认 当前模块组)
|
||||
@ -1862,7 +2053,7 @@ function FormModulePath($params = [])
|
||||
* 字段_min 最小条件
|
||||
* 字段_max 最大条件
|
||||
*/
|
||||
function FormModuleData($params = [])
|
||||
function FormModuleStruct($params = [])
|
||||
{
|
||||
// 当前主控制器
|
||||
$request_controller = RequestController();
|
||||
@ -1908,13 +2099,13 @@ function FormModuleData($params = [])
|
||||
}
|
||||
|
||||
// 独立控制器+方法独立表格
|
||||
$alone_control_action = ucfirst($control.$action);
|
||||
$alone_ca = ucfirst($control.$action);
|
||||
|
||||
// 是否插件、设定模块及参数
|
||||
if(empty($plugins))
|
||||
{
|
||||
// 是否存在控制住+方法的form文件
|
||||
$module = '\app\\'.$group.'\form\\'.$alone_control_action;
|
||||
$module = '\app\\'.$group.'\form\\'.$alone_ca;
|
||||
if(!class_exists($module))
|
||||
{
|
||||
$module = '\app\\'.$group.'\form\\'.ucfirst($control);
|
||||
@ -1925,7 +2116,7 @@ function FormModuleData($params = [])
|
||||
$params['controller_name'] = $control;
|
||||
$params['action_name'] = $action;
|
||||
} else {
|
||||
$module = '\app\plugins\\'.$plugins.'\form\\'.$group.'\\'.$alone_control_action;
|
||||
$module = '\app\plugins\\'.$plugins.'\form\\'.$group.'\\'.$alone_ca;
|
||||
if(!class_exists($module))
|
||||
{
|
||||
// 是否定义模块组、是否存在控制器+方法的form文件
|
||||
@ -1933,7 +2124,7 @@ function FormModuleData($params = [])
|
||||
// 分组不存在则调用不分组的表单
|
||||
if(!class_exists($module))
|
||||
{
|
||||
$module = '\app\plugins\\'.$plugins.'\form\\'.$alone_control_action;
|
||||
$module = '\app\plugins\\'.$plugins.'\form\\'.$alone_ca;
|
||||
if(!class_exists($module))
|
||||
{
|
||||
$module = '\app\plugins\\'.$plugins.'\form\\'.ucfirst($control);
|
||||
@ -1950,50 +2141,14 @@ function FormModuleData($params = [])
|
||||
// 模块运行方法
|
||||
$run = empty($params['run']) ? 'Run' : $params['run'];
|
||||
|
||||
// 调用模块获取数据
|
||||
$data = null;
|
||||
$ret = (new app\module\FormTableHandleModule())->Run($module, $run, $params);
|
||||
if($ret['code'] == 0 && !empty($ret['data']) && is_array($ret['data']))
|
||||
{
|
||||
// 返回数据格式
|
||||
if(empty($params['data_type']))
|
||||
{
|
||||
// 方法为【index 或 控制器+方法是独立表格】则默认返回分页结构体,则详情单条数据
|
||||
$data_type = ($action == 'index' || substr($module, -strlen($alone_control_action)) == $alone_control_action) ? 'page_struct' : 'data_detail';
|
||||
} else {
|
||||
$data_type = $params['data_type'];
|
||||
}
|
||||
|
||||
// 全部数据
|
||||
if($data_type == 'all')
|
||||
{
|
||||
$data = $ret['data'];
|
||||
} else {
|
||||
switch($data_type)
|
||||
{
|
||||
// 分页结构体
|
||||
case 'page_struct' :
|
||||
$temp = $ret['data'];
|
||||
$data = [
|
||||
'page' => empty($temp['page']) ? 1 : $temp['page'],
|
||||
'page_start' => empty($temp['page_start']) ? 0 : $temp['page_start'],
|
||||
'page_size' => empty($temp['page_size']) ? 0 : $temp['page_size'],
|
||||
'page_total' => empty($temp['page_total']) ? 0 : $temp['page_total'],
|
||||
'data_total' => empty($temp['data_total']) ? 0 : $temp['data_total'],
|
||||
'data_list' => empty($temp['data_list']) ? [] : $temp['data_list'],
|
||||
];
|
||||
break;
|
||||
|
||||
// 默认
|
||||
default :
|
||||
if(array_key_exists($data_type, $ret['data']))
|
||||
{
|
||||
$data = $ret['data'][$data_type];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
// 返回结构数据
|
||||
return [
|
||||
'module' => $module,
|
||||
'action' => $action,
|
||||
'alone_ca' => $alone_ca,
|
||||
'run' => $run,
|
||||
'params' => $params,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2027,11 +2182,6 @@ function ModuleInclude($template, $data = [], $params = [])
|
||||
return $obj->Run($template, $data, $params);
|
||||
}
|
||||
|
||||
function ModuleIncludesss($ss)
|
||||
{
|
||||
return $ss;
|
||||
}
|
||||
|
||||
/**
|
||||
* 钩子返回数据处理,是否存在错误
|
||||
* @author Devil
|
||||
@ -2637,69 +2787,77 @@ function MyUrl($path, $params = [])
|
||||
return '';
|
||||
}
|
||||
|
||||
// 当前脚本名称
|
||||
$script_name = SCRIPT_NAME;
|
||||
|
||||
// url模式
|
||||
$url_model = MyC('home_seo_url_model', 0);
|
||||
|
||||
// 模块组状态
|
||||
$is_api = (substr($path, 0, 4) == 'api/');
|
||||
$is_admin = (substr($path, 0, 6) == 'admin/');
|
||||
$is_index = (substr($path, 0, 6) == 'index/');
|
||||
$is_install = (substr($path, 0, 8) == 'install/');
|
||||
|
||||
// 调用框架生成url
|
||||
$url = url($path, $params, true);
|
||||
|
||||
// 非 admin 则使用配置后缀
|
||||
if(!$is_admin && !$is_install)
|
||||
// url生成
|
||||
static $url_create_data = [];
|
||||
$key = md5($path.(empty($params) ? '' : (is_array($params) ? json_encode($params) : $params)));
|
||||
if(!array_key_exists($key, $url_create_data))
|
||||
{
|
||||
$url = $url->suffix(MyFileConfig('home_seo_url_html_suffix', '', 'html', true));
|
||||
}
|
||||
// 当前脚本名称
|
||||
$script_name = SCRIPT_NAME;
|
||||
|
||||
// 转 url字符串
|
||||
$url = MyConfig('shopxo.domain_url').substr((string) $url, 1);
|
||||
// url模式
|
||||
$url_model = MyC('home_seo_url_model', 0);
|
||||
|
||||
// 去除组名称
|
||||
$ds = ($script_name == 'index.php') ? '/' : '';
|
||||
$join = ($script_name != 'index.php' || $url_model == 0) ? $ds.'?s=' : '/';
|
||||
$len = $is_api ? 4 : ($is_install ? 8 : 6);
|
||||
$path = substr($path, $len);
|
||||
$url = str_replace('/'.$path, $join.$path, $url);
|
||||
// 模块组状态
|
||||
$is_api = (substr($path, 0, 4) == 'api/');
|
||||
$is_admin = (substr($path, 0, 6) == 'admin/');
|
||||
$is_index = (substr($path, 0, 6) == 'index/');
|
||||
$is_install = (substr($path, 0, 8) == 'install/');
|
||||
|
||||
// 避免非当前目录生成url索引错误
|
||||
if($script_name != 'index.php' && $is_index)
|
||||
{
|
||||
if($url_model == 0)
|
||||
// 调用框架生成url
|
||||
$url = url($path, $params, true);
|
||||
|
||||
// 非 admin 则使用配置后缀
|
||||
if(!$is_admin && !$is_install)
|
||||
{
|
||||
// 替换索引为 index.php
|
||||
$url = str_replace($script_name, 'index.php', $url);
|
||||
} else {
|
||||
// 去除入口和?s=
|
||||
$url = str_replace([$script_name.'?s=', '/'.$script_name], '', $url);
|
||||
$url = $url->suffix(MyFileConfig('home_seo_url_html_suffix', '', 'html', true));
|
||||
}
|
||||
}
|
||||
// 替换索引为 api.php
|
||||
if($script_name != 'api.php' && $is_api)
|
||||
{
|
||||
$url = str_replace($script_name, 'api.php', $url);
|
||||
}
|
||||
// 替换索引为 install.php
|
||||
if($script_name != 'install.php' && $is_install)
|
||||
{
|
||||
$url = str_replace($script_name, 'install.php', $url);
|
||||
}
|
||||
|
||||
// 前端则去除 index.php
|
||||
$url = str_replace('/index.php', '', $url);
|
||||
// 转 url字符串
|
||||
$url = MyConfig('shopxo.domain_url').substr((string) $url, 1);
|
||||
|
||||
// 是否根目录访问项目
|
||||
if(defined('IS_ROOT_ACCESS'))
|
||||
{
|
||||
$url = str_replace('/public/', '/', $url);
|
||||
// 去除组名称
|
||||
$ds = ($script_name == 'index.php') ? '/' : '';
|
||||
$join = ($script_name != 'index.php' || $url_model == 0) ? $ds.'?s=' : '/';
|
||||
$len = $is_api ? 4 : ($is_install ? 8 : 6);
|
||||
$path = substr($path, $len);
|
||||
$url = str_replace('/'.$path, $join.$path, $url);
|
||||
|
||||
// 避免非当前目录生成url索引错误
|
||||
if($script_name != 'index.php' && $is_index)
|
||||
{
|
||||
if($url_model == 0)
|
||||
{
|
||||
// 替换索引为 index.php
|
||||
$url = str_replace($script_name, 'index.php', $url);
|
||||
} else {
|
||||
// 去除入口和?s=
|
||||
$url = str_replace([$script_name.'?s=', '/'.$script_name], '', $url);
|
||||
}
|
||||
}
|
||||
// 替换索引为 api.php
|
||||
if($script_name != 'api.php' && $is_api)
|
||||
{
|
||||
$url = str_replace($script_name, 'api.php', $url);
|
||||
}
|
||||
// 替换索引为 install.php
|
||||
if($script_name != 'install.php' && $is_install)
|
||||
{
|
||||
$url = str_replace($script_name, 'install.php', $url);
|
||||
}
|
||||
|
||||
// 前端则去除 index.php
|
||||
$url = str_replace('/index.php', '', $url);
|
||||
|
||||
// 是否根目录访问项目
|
||||
if(defined('IS_ROOT_ACCESS'))
|
||||
{
|
||||
$url = str_replace('/public/', '/', $url);
|
||||
}
|
||||
$url_create_data[$key] = $url;
|
||||
} else {
|
||||
$url = $url_create_data[$key];
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
|
||||
@ -2731,7 +2889,7 @@ function PluginsHomeUrl($plugins_name, $plugins_control = '', $plugins_action =
|
||||
'pluginsaction' => $plugins_action,
|
||||
];
|
||||
$path = 'index/plugins/index';
|
||||
return MyUrl($path, $plugins+$params);
|
||||
return MyUrl($path, $plugins+(empty($params) ? [] : $params));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2755,7 +2913,7 @@ function PluginsAdminUrl($plugins_name, $plugins_control, $plugins_action, $para
|
||||
'pluginsaction' => $plugins_action,
|
||||
];
|
||||
$path = 'admin/plugins/index';
|
||||
return MyUrl($path, $plugins+$params);
|
||||
return MyUrl($path, $plugins+(empty($params) ? [] : $params));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2988,16 +3146,24 @@ function UrlParamJoin($param)
|
||||
function MyC($key, $default = '', $mandatory = false)
|
||||
{
|
||||
// 从缓存读取配置
|
||||
$value = MyCache($key);
|
||||
|
||||
// 1. 强制校验值
|
||||
// 2. 未设置则默认值
|
||||
if(($mandatory === true && empty($value)) || $value === null)
|
||||
static $cache_config_data = false;
|
||||
if($cache_config_data === false)
|
||||
{
|
||||
$value = $default;
|
||||
$cache_config_data = ConfigService::ConfigInit();
|
||||
}
|
||||
|
||||
return $value;
|
||||
// 1. 强制校验值
|
||||
if(empty($cache_config_data) || !is_array($cache_config_data) || !isset($cache_config_data[$key]))
|
||||
{
|
||||
return $default;
|
||||
}
|
||||
// 2. 未设置则默认值
|
||||
if($mandatory === true && $cache_config_data[$key] === null)
|
||||
{
|
||||
return $default;
|
||||
}
|
||||
|
||||
return $cache_config_data[$key];
|
||||
}
|
||||
|
||||
/**
|
||||
@ -3610,8 +3776,6 @@ function PwdStrength($pwd)
|
||||
* $lng = '116.655540';
|
||||
* $lat = '39.910980';
|
||||
* $squares = returnSquarePoint($lng, $lat);
|
||||
*
|
||||
* print_r($squares);
|
||||
* $info_sql = "select id,locateinfo,lat,lng from `lbs_info` where lat<>0 and lat>{$squares['right-bottom']['lat']} and lat<{$squares['left-top']['lat']} and lng>{$squares['left-top']['lng']} and lng<{$squares['right-bottom']['lng']} ";
|
||||
* 计算某个经纬度的周围某段距离的正方形的四个点
|
||||
*
|
||||
|
@ -21,7 +21,6 @@ use app\service\NavigationService;
|
||||
use app\service\BuyService;
|
||||
use app\service\MessageService;
|
||||
use app\service\SearchService;
|
||||
use app\service\ConfigService;
|
||||
use app\service\UserService;
|
||||
use app\service\AdminService;
|
||||
use app\service\MultilingualService;
|
||||
@ -39,7 +38,7 @@ use app\service\ThemeDataService;
|
||||
*/
|
||||
class Common extends BaseController
|
||||
{
|
||||
// 顶部导航、底部导航、快捷导航
|
||||
// 顶部导航、底部导航
|
||||
protected $nav_header;
|
||||
protected $nav_footer;
|
||||
|
||||
@ -115,11 +114,6 @@ class Common extends BaseController
|
||||
// 检测是否是新安装
|
||||
SystemService::SystemInstallCheck();
|
||||
|
||||
// 输入参数
|
||||
$this->data_post = input('post.');
|
||||
$this->data_get = input('get.');
|
||||
$this->data_request = input();
|
||||
|
||||
// 系统初始化
|
||||
$this->SystemInit();
|
||||
|
||||
@ -177,9 +171,11 @@ class Common extends BaseController
|
||||
* @desc description
|
||||
*/
|
||||
private function SystemInit()
|
||||
{
|
||||
// 配置信息初始化
|
||||
ConfigService::ConfigInit();
|
||||
{
|
||||
// 输入参数
|
||||
$this->data_post = input('post.');
|
||||
$this->data_get = input('get.');
|
||||
$this->data_request = input();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -205,7 +201,17 @@ class Common extends BaseController
|
||||
public function ViewInit()
|
||||
{
|
||||
// 模板数据
|
||||
$assign = [];
|
||||
$assign = [
|
||||
// 静态文件缓存版本号
|
||||
'static_cache_version' => MyC('home_static_cache_version'),
|
||||
// logo
|
||||
'home_site_logo' => AttachmentPathViewHandle(MyC('home_site_logo')),
|
||||
'home_site_logo_wap' => AttachmentPathViewHandle(MyC('home_site_logo_wap')),
|
||||
'home_site_logo_app' => AttachmentPathViewHandle(MyC('home_site_logo_app')),
|
||||
'home_site_logo_square' => AttachmentPathViewHandle(MyC('home_site_logo_square')),
|
||||
// 站点名称
|
||||
'home_site_name' => MyC('home_site_name'),
|
||||
];
|
||||
|
||||
// 系统类型
|
||||
$this->system_type = SystemService::SystemTypeValue();
|
||||
@ -351,9 +357,12 @@ class Common extends BaseController
|
||||
// 当前host地址
|
||||
$assign['my_host'] = __MY_HOST__;
|
||||
|
||||
// 当前完整url地址
|
||||
// 当前站点url地址
|
||||
$assign['my_url'] = __MY_URL__;
|
||||
|
||||
// 当前完整url地址
|
||||
$assign['my_view_url'] = __MY_VIEW_URL__;
|
||||
|
||||
// 项目public目录URL地址
|
||||
$assign['my_public_url'] = __MY_PUBLIC_URL__;
|
||||
|
||||
@ -389,8 +398,8 @@ class Common extends BaseController
|
||||
// 默认不加载页面加载层、是否加载图片动画
|
||||
$assign['is_page_loading'] = 0;
|
||||
$assign['is_page_loading_images'] = 0;
|
||||
$assign['page_loading_logo'] = $assign['home_site_logo_square'];
|
||||
$assign['page_loading_images_url'] = StaticAttachmentUrl('loading.gif');
|
||||
$assign['page_loading_logo'] = AttachmentPathViewHandle(MyC('home_site_logo_square'));
|
||||
$assign['page_loading_logo_border'] = StaticAttachmentUrl('loading-border.svg', 'svg');
|
||||
|
||||
// 顶部右侧导航
|
||||
@ -449,6 +458,9 @@ class Common extends BaseController
|
||||
// 默认不加载代码编辑器
|
||||
$assign['is_load_ace_builds'] = 0;
|
||||
|
||||
// 是否加载webuploader
|
||||
$assign['is_load_webuploader'] = 0;
|
||||
|
||||
// 登录/注册方式
|
||||
$assign['home_user_login_type'] = MyC('home_user_login_type', [], true);
|
||||
$assign['home_user_reg_type'] = MyC('home_user_reg_type', [], true);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user