mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-05 09:42:47 +08:00
调整admin下的类库代码,将主要逻辑调整到extend下
This commit is contained in:
147
extend/base/admin/service/InitAdminServiceClass.php
Normal file
147
extend/base/admin/service/InitAdminServiceClass.php
Normal file
@@ -0,0 +1,147 @@
|
||||
<?php
|
||||
|
||||
namespace base\admin\service;
|
||||
|
||||
use app\admin\model\MallCate;
|
||||
use app\admin\model\MallGoods;
|
||||
use app\admin\model\MallTag;
|
||||
use app\admin\model\SystemAdmin;
|
||||
use app\admin\model\SystemAuth;
|
||||
use app\admin\model\SystemAuthNode;
|
||||
use app\admin\model\SystemConfig;
|
||||
use app\admin\model\SystemMenu;
|
||||
use app\admin\model\SystemNode;
|
||||
use app\admin\model\SystemQuick;
|
||||
use app\common\constants\AdminConstant;
|
||||
|
||||
class InitAdminServiceClass
|
||||
{
|
||||
protected $output = null;
|
||||
|
||||
public function __construct($output)
|
||||
{
|
||||
$this->output = $output;
|
||||
}
|
||||
|
||||
public function init()
|
||||
{
|
||||
$this->initAdmin();
|
||||
$this->initAuth();
|
||||
$this->initConfig();
|
||||
$this->initMenu();
|
||||
$this->initQuick();
|
||||
$this->initMall();
|
||||
}
|
||||
|
||||
public function initMall()
|
||||
{
|
||||
$output = $this->output;
|
||||
|
||||
$output->writeln('开始初始化商城案例');
|
||||
|
||||
$list_cate = $this->requireData('MallCate');
|
||||
|
||||
$list_goods = $this->requireData('MallGoods');
|
||||
|
||||
foreach ($list_cate as $data_cate) {
|
||||
$model_cate = MallCate::create($data_cate);
|
||||
|
||||
foreach ($list_goods as $data_goods) {
|
||||
$data_goods['cate_id'] = $model_cate->id;
|
||||
MallGoods::create($data_goods);
|
||||
}
|
||||
}
|
||||
|
||||
$list_tag = $this->requireData('MallTag');
|
||||
|
||||
$this->installData(MallTag::class, $list_tag);
|
||||
}
|
||||
|
||||
public function initQuick()
|
||||
{
|
||||
$output = $this->output;
|
||||
|
||||
$output->writeln('开始初始化快捷入口');
|
||||
|
||||
$list_quick = $this->requireData('SystemQuick');
|
||||
|
||||
$this->installData(SystemQuick::class, $list_quick);
|
||||
}
|
||||
|
||||
public function initMenu()
|
||||
{
|
||||
$output = $this->output;
|
||||
|
||||
$output->writeln('开始初始化系统菜单');
|
||||
|
||||
$list_menu = $this->requireData('SystemMenu');
|
||||
|
||||
$this->installData(SystemMenu::class, $list_menu);
|
||||
}
|
||||
|
||||
public function initConfig()
|
||||
{
|
||||
$output = $this->output;
|
||||
$output->writeln('开始初始化系统设置');
|
||||
|
||||
$list_config = $this->requireData('SystemConfig');
|
||||
|
||||
$this->installData(SystemConfig::class, $list_config);
|
||||
}
|
||||
|
||||
public function initAdmin()
|
||||
{
|
||||
$output = $this->output;
|
||||
|
||||
$output->writeln('创建超级管理员');
|
||||
|
||||
$model_admin = SystemAdmin::find(AdminConstant::SUPER_ADMIN_ID);
|
||||
|
||||
if (empty($model_admin)) {
|
||||
$model_admin = new SystemAdmin();
|
||||
$model_admin->id = AdminConstant::SUPER_ADMIN_ID;
|
||||
$model_admin->head_img = '/static/admin/images/head.jpg';
|
||||
$model_admin->username = 'admin';
|
||||
$model_admin->password = password(123456);
|
||||
$model_admin->status = 1;
|
||||
$model_admin->save();
|
||||
$output->writeln('创建超级管理员成功');
|
||||
} else {
|
||||
$output->writeln('超级管理员已存在,无需初始化');
|
||||
}
|
||||
}
|
||||
|
||||
public function initAuth()
|
||||
{
|
||||
$output = $this->output;
|
||||
|
||||
$output->writeln('开始初始化权限');
|
||||
|
||||
$list_auth = $this->requireData('SystemAuth');
|
||||
|
||||
$this->installData(SystemAuth::class, $list_auth);
|
||||
|
||||
$output->writeln('开始初始化权限节点');
|
||||
|
||||
$list_auth_node = $this->requireData('SystemAuthNode');
|
||||
|
||||
$this->installData(SystemAuthNode::class, $list_auth_node);
|
||||
|
||||
$output->writeln('开始初始化系统节点');
|
||||
$list_node = $this->requireData('SystemNode');
|
||||
|
||||
$this->installData(SystemNode::class, $list_node);
|
||||
}
|
||||
|
||||
protected function installData($model_name, $list)
|
||||
{
|
||||
foreach ($list as $key => $value) {
|
||||
$model_name::create($value);
|
||||
}
|
||||
}
|
||||
|
||||
protected function requireData($table_name)
|
||||
{
|
||||
return include __DIR__ . '/initAdminData/' . $table_name . '.php';
|
||||
}
|
||||
}
|
||||
25
extend/base/admin/service/NodeServiceClass.php
Normal file
25
extend/base/admin/service/NodeServiceClass.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace base\admin\service;
|
||||
|
||||
use app\admin\service\node\Node;
|
||||
|
||||
class NodeServiceClass
|
||||
{
|
||||
/**
|
||||
* 获取节点服务
|
||||
* @return array
|
||||
* @throws \Doctrine\Common\Annotations\AnnotationException
|
||||
* @throws \ReflectionException
|
||||
*/
|
||||
public function getNodelist()
|
||||
{
|
||||
$basePath = base_path() . 'admin' . DIRECTORY_SEPARATOR . 'controller';
|
||||
$baseNamespace = "app\admin\controller";
|
||||
|
||||
$nodeList = (new Node($basePath, $baseNamespace))
|
||||
->getNodelist();
|
||||
|
||||
return $nodeList;
|
||||
}
|
||||
}
|
||||
51
extend/base/admin/service/TriggerServiceClass.php
Normal file
51
extend/base/admin/service/TriggerServiceClass.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace base\admin\service;
|
||||
|
||||
use think\facade\Cache;
|
||||
|
||||
class TriggerServiceClass
|
||||
{
|
||||
/**
|
||||
* 更新菜单缓存.
|
||||
* @param null $adminId
|
||||
* @return bool
|
||||
*/
|
||||
public static function updateMenu($adminId = null)
|
||||
{
|
||||
if (empty($adminId)) {
|
||||
Cache::tag('initAdmin')->clear();
|
||||
} else {
|
||||
Cache::delete('initAdmin_' . $adminId);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新节点缓存.
|
||||
* @param null $adminId
|
||||
* @return bool
|
||||
*/
|
||||
public static function updateNode($adminId = null)
|
||||
{
|
||||
if (empty($adminId)) {
|
||||
Cache::tag('authNode')->clear();
|
||||
} else {
|
||||
Cache::delete('allAuthNode_' . $adminId);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新系统设置缓存.
|
||||
* @return bool
|
||||
*/
|
||||
public static function updateSysconfig()
|
||||
{
|
||||
Cache::tag('sysconfig')->clear();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
// +----------------------------------------------------------------------
|
||||
// | EasyAdmin
|
||||
// +----------------------------------------------------------------------
|
||||
// | PHP交流群: 763822524
|
||||
// +----------------------------------------------------------------------
|
||||
// | 开源协议 https://mit-license.org
|
||||
// +----------------------------------------------------------------------
|
||||
// | github开源项目:https://github.com/zhongshaofa/EasyAdmin
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace base\admin\service\annotation;
|
||||
|
||||
use Doctrine\Common\Annotations\Annotation\Attributes;
|
||||
use Doctrine\Common\Annotations\Annotation\Required;
|
||||
use Doctrine\Common\Annotations\Annotation\Target;
|
||||
|
||||
/**
|
||||
* Class ControllerAnnotation.
|
||||
*
|
||||
* @Annotation
|
||||
* @Target("CLASS")
|
||||
* @Attributes({
|
||||
* @Attribute("title", type="string"),
|
||||
* })
|
||||
*
|
||||
* @since 2.0
|
||||
*/
|
||||
class ControllerAnnotationClass
|
||||
{
|
||||
/**
|
||||
* Route group prefix for the controller.
|
||||
*
|
||||
* @Required()
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $title = '';
|
||||
|
||||
/**
|
||||
* 是否开启权限控制.
|
||||
* @Enum({true,false})
|
||||
* @var bool
|
||||
*/
|
||||
public $auth = true;
|
||||
}
|
||||
47
extend/base/admin/service/annotation/NodeAnotationClass.php
Normal file
47
extend/base/admin/service/annotation/NodeAnotationClass.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
// +----------------------------------------------------------------------
|
||||
// | EasyAdmin
|
||||
// +----------------------------------------------------------------------
|
||||
// | PHP交流群: 763822524
|
||||
// +----------------------------------------------------------------------
|
||||
// | 开源协议 https://mit-license.org
|
||||
// +----------------------------------------------------------------------
|
||||
// | github开源项目:https://github.com/zhongshaofa/EasyAdmin
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace base\admin\service\annotation;
|
||||
|
||||
use Doctrine\Common\Annotations\Annotation\Attributes;
|
||||
|
||||
/**
|
||||
* 创建节点注解类.
|
||||
*
|
||||
* @Annotation
|
||||
* @Target({"METHOD","CLASS"})
|
||||
* @Attributes({
|
||||
* @Attribute("time", type = "int")
|
||||
* })
|
||||
*/
|
||||
class NodeAnotationClass
|
||||
{
|
||||
/**
|
||||
* 节点名称.
|
||||
* @Required()
|
||||
* @var string
|
||||
*/
|
||||
public $title;
|
||||
|
||||
/**
|
||||
* 是否开启权限控制.
|
||||
* @Enum({true,false})
|
||||
* @var bool
|
||||
*/
|
||||
public $auth = true;
|
||||
|
||||
/**
|
||||
* 节点 一般无需设置.
|
||||
* @var string
|
||||
*/
|
||||
public $name;
|
||||
}
|
||||
1749
extend/base/admin/service/curd/BuildCurdServiceClass.php
Normal file
1749
extend/base/admin/service/curd/BuildCurdServiceClass.php
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
namespace base\admin\service\curd\exceptions;
|
||||
|
||||
class CurdExceptionClass extends \Exception
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
namespace base\admin\service\curd\exceptions;
|
||||
|
||||
class FileExceptionClass extends \Exception
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
namespace base\admin\service\curd\exceptions;
|
||||
|
||||
class TableExceptionClass extends \Exception
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace {{controllerNamespace}};
|
||||
|
||||
use app\common\controller\AdminController;
|
||||
use app\admin\service\annotation\ControllerAnnotation;
|
||||
use app\admin\service\annotation\NodeAnotation;
|
||||
use think\App;
|
||||
|
||||
/**
|
||||
* @ControllerAnnotation(title="{{controllerAnnotation}}")
|
||||
*/
|
||||
class {{controllerName}} extends AdminController
|
||||
{
|
||||
|
||||
use \app\admin\traits\Curd;
|
||||
|
||||
public function __construct(App $app)
|
||||
{
|
||||
parent::__construct($app);
|
||||
|
||||
$this->model = new {{modelFilename}}();
|
||||
{{selectList}}
|
||||
}
|
||||
|
||||
{{indexMethod}}
|
||||
|
||||
|
||||
{{exportMethod}}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
/**
|
||||
* @NodeAnotation(title="导出")
|
||||
*/
|
||||
public function export()
|
||||
{
|
||||
list($page, $limit, $where) = $this->buildTableParames();
|
||||
|
||||
|
||||
$this->model = $this->model{{relationIndexMethod}};
|
||||
|
||||
$fields = $this->request->param('fields', '{}', null);
|
||||
$image_fields = $this->request->param('image_fields', '{}', null);
|
||||
$select_fields = $this->request->param('select_fields', '{}', null);
|
||||
$date_fields = $this->request->param('date_fields', '{}', null);
|
||||
|
||||
$fields = json_decode($fields, true);
|
||||
$image_fields = json_decode($image_fields, true);
|
||||
$select_fields = json_decode($select_fields, true);
|
||||
$date_fields = json_decode($date_fields, true);
|
||||
|
||||
$content = \app\common\tools\ExportTools::excel($this->model, $where, $fields, $image_fields, $select_fields, $date_fields);
|
||||
|
||||
$export_file_name = $this->exportFileName;
|
||||
|
||||
if (empty($export_file_name)) {
|
||||
$export_file_name = $this->model->getName();
|
||||
}
|
||||
|
||||
return download($content, $export_file_name . date('YmdHis') . '.xlsx', true);
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
/**
|
||||
* @NodeAnotation(title="列表")
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
if ($this->request->isAjax()) {
|
||||
if (input('selectFields')) {
|
||||
return $this->selectList();
|
||||
}
|
||||
list($page, $limit, $where) = $this->buildTableParames();
|
||||
$count = $this->model
|
||||
{{relationIndexMethod}}
|
||||
->where($where)
|
||||
->count();
|
||||
$list = $this->model
|
||||
{{relationIndexMethod}}
|
||||
->where($where)
|
||||
->page($page, $limit)
|
||||
->order($this->sort)
|
||||
->select();
|
||||
$data = [
|
||||
'code' => 0,
|
||||
'msg' => '',
|
||||
'count' => $count,
|
||||
'data' => $list,
|
||||
];
|
||||
return json($data);
|
||||
}
|
||||
return $this->fetch();
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
$this->assign('{{var_name}}', $this->model::{{name}}, true);
|
||||
10
extend/base/admin/service/curd/templates/js/_common.code
Normal file
10
extend/base/admin/service/curd/templates/js/_common.code
Normal file
@@ -0,0 +1,10 @@
|
||||
var init = {
|
||||
table_elem: '#currentTable',
|
||||
table_render_id: 'currentTableRenderId',
|
||||
index_url: '{{controllerUrl}}/index',
|
||||
add_url: '{{controllerUrl}}/add',
|
||||
edit_url: '{{controllerUrl}}/edit',
|
||||
delete_url: '{{controllerUrl}}/delete',
|
||||
export_url: '{{controllerUrl}}/export',
|
||||
modify_url: '{{controllerUrl}}/modify',
|
||||
};
|
||||
3
extend/base/admin/service/curd/templates/js/add.code
Normal file
3
extend/base/admin/service/curd/templates/js/add.code
Normal file
@@ -0,0 +1,3 @@
|
||||
$(function(){
|
||||
ua.listen();
|
||||
})
|
||||
3
extend/base/admin/service/curd/templates/js/edit.code
Normal file
3
extend/base/admin/service/curd/templates/js/edit.code
Normal file
@@ -0,0 +1,3 @@
|
||||
$(function(){
|
||||
ua.listen();
|
||||
})
|
||||
10
extend/base/admin/service/curd/templates/js/index.code
Normal file
10
extend/base/admin/service/curd/templates/js/index.code
Normal file
@@ -0,0 +1,10 @@
|
||||
$(function(){
|
||||
ua.table.render({
|
||||
init: init,
|
||||
cols: [[
|
||||
{{indexCols}}
|
||||
]],
|
||||
});
|
||||
|
||||
ua.listen();
|
||||
})
|
||||
21
extend/base/admin/service/curd/templates/model/model.code
Normal file
21
extend/base/admin/service/curd/templates/model/model.code
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace {{modelNamespace}};
|
||||
|
||||
use app\common\model\TimeModel;
|
||||
|
||||
/**
|
||||
{{doc_content}}
|
||||
*/
|
||||
class {{modelName}} extends TimeModel
|
||||
{
|
||||
|
||||
protected $name = "{{table}}";
|
||||
|
||||
protected $deleteTime = {{deleteTime}};
|
||||
|
||||
{{selectList}}
|
||||
|
||||
{{relationList}}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
public function {{relationMethod}}()
|
||||
{
|
||||
return $this->belongsTo('{{relationModel}}', '{{foreignKey}}', '{{primaryKey}}');
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
public const {{name}} = {{values}};
|
||||
11
extend/base/admin/service/curd/templates/view/form.code
Normal file
11
extend/base/admin/service/curd/templates/view/form.code
Normal file
@@ -0,0 +1,11 @@
|
||||
<div class="layuimini-container">
|
||||
<form id="app-form" class="layui-form layuimini-form">
|
||||
{{formList}}
|
||||
<div class="hr-line"></div>
|
||||
<div class="layui-form-item text-center">
|
||||
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
13
extend/base/admin/service/curd/templates/view/index.code
Normal file
13
extend/base/admin/service/curd/templates/view/index.code
Normal file
@@ -0,0 +1,13 @@
|
||||
<div class="layuimini-container">
|
||||
<div class="layuimini-main">
|
||||
<table id="currentTable" class="layui-table layui-hide"
|
||||
data-auth-index="{:auth('{{controllerUrl}}/index')}"
|
||||
data-auth-add="{:auth('{{controllerUrl}}/add')}"
|
||||
data-auth-edit="{:auth('{{controllerUrl}}/edit')}"
|
||||
data-auth-delete="{:auth('{{controllerUrl}}/delete')}"
|
||||
data-auth-export="{:auth('{{controllerUrl}}/export')}"
|
||||
data-auth-modify="{:auth('{{controllerUrl}}/modify')}"
|
||||
lay-filter="currentTable">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{comment}}</label>
|
||||
<div class="layui-input-block">
|
||||
{{define}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,3 @@
|
||||
{foreach ${{name}} as $k=>$v}
|
||||
<input type="checkbox" name="{{field}}[]" value="{$k}" lay-skin="primary" title="{$v}" {{select}}>
|
||||
{/foreach}
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{comment}}</label>
|
||||
<div class="layui-input-block">
|
||||
{{define}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
<input class="layui-input" name="{{field}}" data-toggle="city-picker" {{required}} value="{{value}}" type="text" data-level="{{level}}" readonly {{submit_field_content}}>
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{comment}}</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="{{field}}" data-date="" data-date-type="{{define}}" class="layui-input" {{required}} placeholder="请输入{{comment}}" value="{{value}}">
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{comment}}</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="{{field}}" rows="20" class="layui-textarea editor" placeholder="请输入{{comment}}">{{value}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,11 @@
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">{{comment}}</label>
|
||||
<div class="layui-input-block layuimini-upload">
|
||||
<input name="{{field}}" class="layui-input layui-col-xs6" {{required}} placeholder="请上传{{comment}}" value="{{value}}">
|
||||
<div class="layuimini-upload-btn">
|
||||
<span><a class="layui-btn" data-upload="{{field}}" data-upload-number="one" data-upload-exts="zip" data-upload-icon="file" data-upload-disable-preview="0"><i class="fa fa-upload"></i> 上传</a></span>
|
||||
<span><a class="layui-btn layui-btn-normal" id="select_{{field}}" data-upload-select="{{field}}" data-upload-number="one" data-upload-mimetype="*"><i class="fa fa-list"></i> 选择</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,11 @@
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">{{comment}}</label>
|
||||
<div class="layui-input-block layuimini-upload">
|
||||
<input name="{{field}}" class="layui-input layui-col-xs6" {{required}} placeholder="请上传{{comment}}" value="{{value}}">
|
||||
<div class="layuimini-upload-btn">
|
||||
<span><a class="layui-btn" data-upload="{{field}}" data-upload-number="more" data-upload-exts="zip" data-upload-icon="file" data-upload-disable-preview="0"><i class="fa fa-upload" data-upload-sign="{{define}}" ></i> 上传</a></span>
|
||||
<span><a class="layui-btn layui-btn-normal" id="select_{{field}}" data-upload-select="{{field}}" data-upload-number="more" data-upload-mimetype="*" data-upload-sign="{{define}}"><i class="fa fa-list"></i> 选择</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,11 @@
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">{{comment}}</label>
|
||||
<div class="layui-input-block layuimini-upload">
|
||||
<input name="{{field}}" class="layui-input layui-col-xs6" {{required}} placeholder="请上传{{comment}}" value="{{value}}">
|
||||
<div class="layuimini-upload-btn">
|
||||
<span><a class="layui-btn" data-upload="{{field}}" data-upload-number="one" data-upload-exts="*image" data-upload-icon="image"><i class="fa fa-upload"></i> 上传</a></span>
|
||||
<span><a class="layui-btn layui-btn-normal" id="select_{{field}}" data-upload-select="{{field}}" data-upload-number="one" data-upload-mimetype="image/*"><i class="fa fa-list"></i> 选择</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,11 @@
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">{{comment}}</label>
|
||||
<div class="layui-input-block layuimini-upload">
|
||||
<input name="{{field}}" class="layui-input layui-col-xs6" {{required}} placeholder="请上传{{comment}}" value="{{value}}">
|
||||
<div class="layuimini-upload-btn">
|
||||
<span><a class="layui-btn" data-upload="{{field}}" data-upload-number="more" data-upload-exts="*image" data-upload-icon="image" data-upload-sign="{{define}}"><i class="fa fa-upload"></i> 上传</a></span>
|
||||
<span><a class="layui-btn layui-btn-normal" id="select_{{field}}" data-upload-select="{{field}}" data-upload-number="more" data-upload-mimetype="image/*" data-upload-sign="{{define}}"><i class="fa fa-list"></i> 选择</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{comment}}</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="{{field}}" class="layui-input" {{required}} placeholder="请输入{{comment}}" value="{{value}}">
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,4 @@
|
||||
<option value=''></option>
|
||||
{foreach ${{name}} as $k=>$v}
|
||||
<option value='{$k}' {{select}}>{$v}</option>
|
||||
{/foreach}
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{comment}}</label>
|
||||
<div class="layui-input-block">
|
||||
{{define}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,3 @@
|
||||
{foreach ${{name}} as $k=>$v}
|
||||
<input type="radio" name="{{field}}" value="{$k}" title="{$v}" {{select}}>
|
||||
{/foreach}
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{comment}}</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="{{field}}" {{required}}>
|
||||
{{define}}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{comment}}</label>
|
||||
<div class="layui-input-block">
|
||||
{{define}}
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,3 @@
|
||||
<div data-toggle="table-data" data-index="{:__url('{{controller_url}}/index')}" data-select-type="{{type}}" data-select-value="{{value}}" data-value-field="{{valueField}}" data-name="{{field}}" data-field-name="{{fieldName}}" data-required="{{required}}">
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{comment}}</label>
|
||||
<div class="layui-input-block">
|
||||
<div data-toggle="tag-input" data-name="{{field}}" data-value="{{value}}" data-required="{{required_text}}"></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<label class="layui-form-label">{{comment}}</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="{{field}}" class="layui-textarea" {{required}} placeholder="请输入{{comment}}">{{value}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
12
extend/base/admin/service/initAdminData/MallCate.php
Normal file
12
extend/base/admin/service/initAdminData/MallCate.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
$ul_mall_cate = array(
|
||||
array(
|
||||
"title" => "手机",
|
||||
"image" => "http://admin.demo.ulthon.com/upload/20220417/72ef1d769595627af51d76c612a789bf.png",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
"remark" => "",
|
||||
)
|
||||
);
|
||||
|
||||
return $ul_mall_cate;
|
||||
34
extend/base/admin/service/initAdminData/MallGoods.php
Normal file
34
extend/base/admin/service/initAdminData/MallGoods.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
$ul_mall_goods = array(
|
||||
array(
|
||||
"title" => "落地-风扇",
|
||||
"logo" => "http://admin.demo.ulthon.com/upload/20220417/72ef1d769595627af51d76c612a789bf.png",
|
||||
"images" => "http://admin.host/upload/20200514/95496713918290f6315ea3f87efa6bf2.jpg|http://admin.host/upload/20200514/ae29fa9cba4fc02defb7daed41cb2b13.jpg|http://admin.host/upload/20200514/f0a104d88ec7dc6fb42d2f87cbc71b76.jpg|http://admin.host/upload/20200514/3b88be4b1934690e5c1bd6b54b9ab5c8.jpg",
|
||||
"describe" => "<p>76654757</p>\n\n<p><img alt="" src="http://admin.host/upload/20200515/198070421110fa01f2c2ac2f52481647.jpg" style="height:689px; width:790px" /></p>\n\n<p><img alt="" src="http://admin.host/upload/20200515/a07a742c15a78781e79f8a3317006c1d.jpg" style="height:877px; width:790px" /></p>\n",
|
||||
"market_price" => 599.00,
|
||||
"discount_price" => 368.00,
|
||||
"sales" => 0,
|
||||
"virtual_sales" => 594,
|
||||
"stock" => 0,
|
||||
"total_stock" => 0,
|
||||
"sort" => 675,
|
||||
"status" => 1,
|
||||
"remark" => "",
|
||||
),
|
||||
array(
|
||||
"title" => "电脑",
|
||||
"logo" => "http://admin.demo.ulthon.com/upload/20220417/72ef1d769595627af51d76c612a789bf.png",
|
||||
"images" => "http://admin.host/upload/20200514/f0a104d88ec7dc6fb42d2f87cbc71b76.jpg",
|
||||
"describe" => "<p>477</p>\n",
|
||||
"market_price" => 0.00,
|
||||
"discount_price" => 0.00,
|
||||
"sales" => 0,
|
||||
"virtual_sales" => 0,
|
||||
"stock" => 115,
|
||||
"total_stock" => 320,
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
"remark" => "",
|
||||
)
|
||||
);
|
||||
return $ul_mall_goods;
|
||||
32
extend/base/admin/service/initAdminData/MallTag.php
Normal file
32
extend/base/admin/service/initAdminData/MallTag.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
$ul_mall_tag = array(
|
||||
array(
|
||||
"id" => 1,
|
||||
"title" => "便宜",
|
||||
"create_time" => 1657347818,
|
||||
"update_time" => 1657347818,
|
||||
"delete_time" => 0
|
||||
),
|
||||
array(
|
||||
"id" => 2,
|
||||
"title" => "售后",
|
||||
"create_time" => 1657347825,
|
||||
"update_time" => 1657347825,
|
||||
"delete_time" => 0
|
||||
),
|
||||
array(
|
||||
"id" => 3,
|
||||
"title" => "黑科技",
|
||||
"create_time" => 1657347836,
|
||||
"update_time" => 1657347836,
|
||||
"delete_time" => 0
|
||||
),
|
||||
array(
|
||||
"id" => 4,
|
||||
"title" => "大厂",
|
||||
"create_time" => 1657347850,
|
||||
"update_time" => 1657347850,
|
||||
"delete_time" => 0
|
||||
)
|
||||
);
|
||||
return $ul_mall_tag;
|
||||
21
extend/base/admin/service/initAdminData/SystemAuth.php
Normal file
21
extend/base/admin/service/initAdminData/SystemAuth.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
$ul_system_auth = array(
|
||||
array(
|
||||
"id" => 1,
|
||||
"title" => "管理员",
|
||||
"sort" => 1,
|
||||
"status" => 1,
|
||||
"remark" => "测试管理员",
|
||||
),
|
||||
array(
|
||||
"id" => 6,
|
||||
"title" => "游客权限",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
"remark" => "",
|
||||
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
return $ul_system_auth;
|
||||
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
$ul_system_auth_node = array(
|
||||
|
||||
);
|
||||
return $ul_system_auth_node;
|
||||
256
extend/base/admin/service/initAdminData/SystemConfig.php
Normal file
256
extend/base/admin/service/initAdminData/SystemConfig.php
Normal file
@@ -0,0 +1,256 @@
|
||||
<?php
|
||||
$ul_system_config = array(
|
||||
array(
|
||||
"name" => "alisms_access_key_id",
|
||||
"group" => "sms",
|
||||
"value" => "填你的",
|
||||
"remark" => "阿里大于公钥",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "alisms_access_key_secret",
|
||||
"group" => "sms",
|
||||
"value" => "填你的",
|
||||
"remark" => "阿里大鱼私钥",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "upload_type",
|
||||
"group" => "upload",
|
||||
"value" => "local_public",
|
||||
"remark" => "当前上传方式 local_public,alioss,qnoss,txoss)",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "upload_allow_ext",
|
||||
"group" => "upload",
|
||||
"value" => "jpg,jpeg,png,gif,bmp,doc,docx,xls,xlsx,ppt,pptx,pdf,zip,rar,7z,txt,mp3,wma,wav,mid,m4a,mp4,avi,wmv,3gp,flv,webp,svg,ico",
|
||||
"remark" => "允许上传的文件类型",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "upload_allow_size",
|
||||
"group" => "upload",
|
||||
"value" => "1024000",
|
||||
"remark" => "允许上传的大小",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "upload_allow_mime",
|
||||
"group" => "upload",
|
||||
"value" => "image/gif,image/jpeg,video/x-msvideo,text/plain,image/png",
|
||||
"remark" => "允许上传的文件mime",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "upload_allow_type",
|
||||
"group" => "upload",
|
||||
"value" => "local_public,alioss,qnoss,txcos",
|
||||
"remark" => "可用的上传文件方式",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "alioss_access_key_id",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "阿里云oss公钥",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "alioss_access_key_secret",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "阿里云oss私钥",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "alioss_endpoint",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "阿里云oss数据中心",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "alioss_bucket",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "阿里云oss空间名称",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "alioss_domain",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "阿里云oss访问域名",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "logo_title",
|
||||
"group" => "site",
|
||||
"value" => "ulthon_admin",
|
||||
"remark" => "LOGO标题",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "logo_image",
|
||||
"group" => "site",
|
||||
"value" => "/static/common/images/logo-2.png",
|
||||
"remark" => "logo图片",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "site_name",
|
||||
"group" => "site",
|
||||
"value" => "ulthon_admin后台系统",
|
||||
"remark" => "站点名称",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "site_ico",
|
||||
"group" => "site",
|
||||
"value" => "/favicon.ico",
|
||||
"remark" => "浏览器图标",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "site_copyright",
|
||||
"group" => "site",
|
||||
"value" => "填你的",
|
||||
"remark" => "版权信息",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "site_beian",
|
||||
"group" => "site",
|
||||
"value" => "填你的",
|
||||
"remark" => "备案信息",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "site_version",
|
||||
"group" => "site",
|
||||
"value" => "2.0.0",
|
||||
"remark" => "版本信息",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "sms_type",
|
||||
"group" => "sms",
|
||||
"value" => "alisms",
|
||||
"remark" => "短信类型",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "miniapp_appid",
|
||||
"group" => "wechat",
|
||||
"value" => "填你的",
|
||||
"remark" => "小程序公钥",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "miniapp_appsecret",
|
||||
"group" => "wechat",
|
||||
"value" => "填你的",
|
||||
"remark" => "小程序私钥",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "web_appid",
|
||||
"group" => "wechat",
|
||||
"value" => "填你的",
|
||||
"remark" => "公众号公钥",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "web_appsecret",
|
||||
"group" => "wechat",
|
||||
"value" => "填你的",
|
||||
"remark" => "公众号私钥",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "txcos_secret_id",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "腾讯云cos密钥",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "txcos_secret_key",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "腾讯云cos私钥",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "txcos_region",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "存储桶地域",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "txcos_bucket",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "存储桶名称",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "qnoss_access_key",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "访问密钥",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "qnoss_secret_key",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "安全密钥",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "qnoss_bucket",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "存储空间",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "qnoss_domain",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "访问域名",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "txcos_domain",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "访问域名",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "txcos_appid",
|
||||
"group" => "upload",
|
||||
"value" => "填你的",
|
||||
"remark" => "APPID",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "file",
|
||||
"group" => "site",
|
||||
"value" => "",
|
||||
"remark" => "",
|
||||
"sort" => 0,
|
||||
),
|
||||
array(
|
||||
"name" => "site_domain",
|
||||
"group" => "site",
|
||||
"value" => "http://admin.demo.ulthon.com",
|
||||
"remark" => "",
|
||||
"sort" => 0,
|
||||
)
|
||||
);
|
||||
return $ul_system_config;
|
||||
160
extend/base/admin/service/initAdminData/SystemMenu.php
Normal file
160
extend/base/admin/service/initAdminData/SystemMenu.php
Normal file
@@ -0,0 +1,160 @@
|
||||
<?php
|
||||
$ul_system_menu = array(
|
||||
array(
|
||||
"id" => 227,
|
||||
"pid" => 99999999,
|
||||
"title" => "后台首页",
|
||||
"icon" => "fa fa-home",
|
||||
"href" => "index/welcome",
|
||||
"params" => "",
|
||||
"target" => "_self",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"id" => 228,
|
||||
"pid" => 0,
|
||||
"title" => "系统管理",
|
||||
"icon" => "fa fa-cog",
|
||||
"href" => "",
|
||||
"params" => "",
|
||||
"target" => "_self",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"id" => 234,
|
||||
"pid" => 228,
|
||||
"title" => "菜单管理",
|
||||
"icon" => "fa fa-tree",
|
||||
"href" => "system.menu/index",
|
||||
"params" => "",
|
||||
"target" => "_self",
|
||||
"sort" => 10,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"id" => 244,
|
||||
"pid" => 228,
|
||||
"title" => "管理员管理",
|
||||
"icon" => "fa fa-user",
|
||||
"href" => "system.admin/index",
|
||||
"params" => "",
|
||||
"target" => "_self",
|
||||
"sort" => 12,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"id" => 245,
|
||||
"pid" => 228,
|
||||
"title" => "角色管理",
|
||||
"icon" => "fa fa-bitbucket-square",
|
||||
"href" => "system.auth/index",
|
||||
"params" => "",
|
||||
"target" => "_self",
|
||||
"sort" => 11,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"id" => 246,
|
||||
"pid" => 228,
|
||||
"title" => "节点管理",
|
||||
"icon" => "fa fa-list",
|
||||
"href" => "system.node/index",
|
||||
"params" => "",
|
||||
"target" => "_self",
|
||||
"sort" => 9,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"id" => 247,
|
||||
"pid" => 228,
|
||||
"title" => "配置管理",
|
||||
"icon" => "fa fa-asterisk",
|
||||
"href" => "system.config/index",
|
||||
"params" => "",
|
||||
"target" => "_self",
|
||||
"sort" => 8,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"id" => 248,
|
||||
"pid" => 228,
|
||||
"title" => "上传管理",
|
||||
"icon" => "fa fa-arrow-up",
|
||||
"href" => "system.uploadfile/index",
|
||||
"params" => "",
|
||||
"target" => "_self",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"id" => 249,
|
||||
"pid" => 0,
|
||||
"title" => "商城管理",
|
||||
"icon" => "fa fa-list",
|
||||
"href" => "",
|
||||
"params" => "",
|
||||
"target" => "_self",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"id" => 250,
|
||||
"pid" => 249,
|
||||
"title" => "商品分类",
|
||||
"icon" => "fa fa-calendar-check-o",
|
||||
"href" => "mall.cate/index",
|
||||
"params" => "",
|
||||
"target" => "_self",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"id" => 251,
|
||||
"pid" => 249,
|
||||
"title" => "商品管理",
|
||||
"icon" => "fa fa-list",
|
||||
"href" => "mall.goods/index",
|
||||
"params" => "",
|
||||
"target" => "_self",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"id" => 252,
|
||||
"pid" => 228,
|
||||
"title" => "快捷入口",
|
||||
"icon" => "fa fa-list",
|
||||
"href" => "system.quick/index",
|
||||
"params" => "",
|
||||
"target" => "_self",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"id" => 253,
|
||||
"pid" => 228,
|
||||
"title" => "日志管理",
|
||||
"icon" => "fa fa-connectdevelop",
|
||||
"href" => "debug.log/index",
|
||||
"params" => "",
|
||||
"target" => "_self",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"id" => 254,
|
||||
"pid" => 249,
|
||||
"title" => "商品标签",
|
||||
"icon" => "fa fa-connectdevelop",
|
||||
"href" => "mall.tag/index",
|
||||
"params" => "",
|
||||
"target" => "_self",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
return $ul_system_menu;
|
||||
726
extend/base/admin/service/initAdminData/SystemNode.php
Normal file
726
extend/base/admin/service/initAdminData/SystemNode.php
Normal file
@@ -0,0 +1,726 @@
|
||||
<?php
|
||||
$ul_system_node = array(
|
||||
array(
|
||||
"id" => 1,
|
||||
"node" => "system.admin",
|
||||
"title" => "管理员管理",
|
||||
"type" => 1,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347263,
|
||||
"update_time" => 1657347263
|
||||
),
|
||||
array(
|
||||
"id" => 2,
|
||||
"node" => "system.admin/index",
|
||||
"title" => "列表",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347263,
|
||||
"update_time" => 1657347263
|
||||
),
|
||||
array(
|
||||
"id" => 3,
|
||||
"node" => "system.admin/add",
|
||||
"title" => "添加",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347263,
|
||||
"update_time" => 1657347263
|
||||
),
|
||||
array(
|
||||
"id" => 4,
|
||||
"node" => "system.admin/edit",
|
||||
"title" => "编辑",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347263,
|
||||
"update_time" => 1657347263
|
||||
),
|
||||
array(
|
||||
"id" => 5,
|
||||
"node" => "system.admin/password",
|
||||
"title" => "编辑",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347263,
|
||||
"update_time" => 1657347263
|
||||
),
|
||||
array(
|
||||
"id" => 6,
|
||||
"node" => "system.admin/delete",
|
||||
"title" => "删除",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347263,
|
||||
"update_time" => 1657347263
|
||||
),
|
||||
array(
|
||||
"id" => 7,
|
||||
"node" => "system.admin/modify",
|
||||
"title" => "属性修改",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347263,
|
||||
"update_time" => 1657347263
|
||||
),
|
||||
array(
|
||||
"id" => 8,
|
||||
"node" => "system.admin/export",
|
||||
"title" => "导出",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347264,
|
||||
"update_time" => 1657347264
|
||||
),
|
||||
array(
|
||||
"id" => 9,
|
||||
"node" => "system.auth",
|
||||
"title" => "角色权限管理",
|
||||
"type" => 1,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347264,
|
||||
"update_time" => 1657347264
|
||||
),
|
||||
array(
|
||||
"id" => 10,
|
||||
"node" => "system.auth/authorize",
|
||||
"title" => "授权",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347264,
|
||||
"update_time" => 1657347264
|
||||
),
|
||||
array(
|
||||
"id" => 11,
|
||||
"node" => "system.auth/saveAuthorize",
|
||||
"title" => "授权保存",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347264,
|
||||
"update_time" => 1657347264
|
||||
),
|
||||
array(
|
||||
"id" => 12,
|
||||
"node" => "system.auth/index",
|
||||
"title" => "列表",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347264,
|
||||
"update_time" => 1657347264
|
||||
),
|
||||
array(
|
||||
"id" => 13,
|
||||
"node" => "system.auth/add",
|
||||
"title" => "添加",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347264,
|
||||
"update_time" => 1657347264
|
||||
),
|
||||
array(
|
||||
"id" => 14,
|
||||
"node" => "system.auth/edit",
|
||||
"title" => "编辑",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347264,
|
||||
"update_time" => 1657347264
|
||||
),
|
||||
array(
|
||||
"id" => 15,
|
||||
"node" => "system.auth/delete",
|
||||
"title" => "删除",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347265,
|
||||
"update_time" => 1657347265
|
||||
),
|
||||
array(
|
||||
"id" => 16,
|
||||
"node" => "system.auth/export",
|
||||
"title" => "导出",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347265,
|
||||
"update_time" => 1657347265
|
||||
),
|
||||
array(
|
||||
"id" => 17,
|
||||
"node" => "system.auth/modify",
|
||||
"title" => "属性修改",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347265,
|
||||
"update_time" => 1657347265
|
||||
),
|
||||
array(
|
||||
"id" => 18,
|
||||
"node" => "system.config",
|
||||
"title" => "系统配置管理",
|
||||
"type" => 1,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347265,
|
||||
"update_time" => 1657347265
|
||||
),
|
||||
array(
|
||||
"id" => 19,
|
||||
"node" => "system.config/index",
|
||||
"title" => "列表",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347265,
|
||||
"update_time" => 1657347265
|
||||
),
|
||||
array(
|
||||
"id" => 20,
|
||||
"node" => "system.config/save",
|
||||
"title" => "保存",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347265,
|
||||
"update_time" => 1657347265
|
||||
),
|
||||
array(
|
||||
"id" => 21,
|
||||
"node" => "system.menu",
|
||||
"title" => "菜单管理",
|
||||
"type" => 1,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347265,
|
||||
"update_time" => 1657347265
|
||||
),
|
||||
array(
|
||||
"id" => 22,
|
||||
"node" => "system.menu/index",
|
||||
"title" => "列表",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347265,
|
||||
"update_time" => 1657347265
|
||||
),
|
||||
array(
|
||||
"id" => 23,
|
||||
"node" => "system.menu/add",
|
||||
"title" => "添加",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347266,
|
||||
"update_time" => 1657347266
|
||||
),
|
||||
array(
|
||||
"id" => 24,
|
||||
"node" => "system.menu/edit",
|
||||
"title" => "编辑",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347266,
|
||||
"update_time" => 1657347266
|
||||
),
|
||||
array(
|
||||
"id" => 25,
|
||||
"node" => "system.menu/delete",
|
||||
"title" => "删除",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347266,
|
||||
"update_time" => 1657347266
|
||||
),
|
||||
array(
|
||||
"id" => 26,
|
||||
"node" => "system.menu/modify",
|
||||
"title" => "属性修改",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347266,
|
||||
"update_time" => 1657347266
|
||||
),
|
||||
array(
|
||||
"id" => 27,
|
||||
"node" => "system.menu/getMenuTips",
|
||||
"title" => "添加菜单提示",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347266,
|
||||
"update_time" => 1657347266
|
||||
),
|
||||
array(
|
||||
"id" => 28,
|
||||
"node" => "system.menu/export",
|
||||
"title" => "导出",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347266,
|
||||
"update_time" => 1657347266
|
||||
),
|
||||
array(
|
||||
"id" => 29,
|
||||
"node" => "system.node",
|
||||
"title" => "系统节点管理",
|
||||
"type" => 1,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347266,
|
||||
"update_time" => 1657347266
|
||||
),
|
||||
array(
|
||||
"id" => 30,
|
||||
"node" => "system.node/index",
|
||||
"title" => "列表",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347266,
|
||||
"update_time" => 1657347266
|
||||
),
|
||||
array(
|
||||
"id" => 31,
|
||||
"node" => "system.node/refreshNode",
|
||||
"title" => "系统节点更新",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347267,
|
||||
"update_time" => 1657347267
|
||||
),
|
||||
array(
|
||||
"id" => 32,
|
||||
"node" => "system.node/clearNode",
|
||||
"title" => "清除失效节点",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347267,
|
||||
"update_time" => 1657347267
|
||||
),
|
||||
array(
|
||||
"id" => 33,
|
||||
"node" => "system.node/add",
|
||||
"title" => "添加",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347267,
|
||||
"update_time" => 1657347267
|
||||
),
|
||||
array(
|
||||
"id" => 34,
|
||||
"node" => "system.node/edit",
|
||||
"title" => "编辑",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347267,
|
||||
"update_time" => 1657347267
|
||||
),
|
||||
array(
|
||||
"id" => 35,
|
||||
"node" => "system.node/delete",
|
||||
"title" => "删除",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347267,
|
||||
"update_time" => 1657347267
|
||||
),
|
||||
array(
|
||||
"id" => 36,
|
||||
"node" => "system.node/export",
|
||||
"title" => "导出",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347267,
|
||||
"update_time" => 1657347267
|
||||
),
|
||||
array(
|
||||
"id" => 37,
|
||||
"node" => "system.node/modify",
|
||||
"title" => "属性修改",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347267,
|
||||
"update_time" => 1657347267
|
||||
),
|
||||
array(
|
||||
"id" => 38,
|
||||
"node" => "system.uploadfile",
|
||||
"title" => "上传文件管理",
|
||||
"type" => 1,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347268,
|
||||
"update_time" => 1657347268
|
||||
),
|
||||
array(
|
||||
"id" => 39,
|
||||
"node" => "system.uploadfile/index",
|
||||
"title" => "列表",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347268,
|
||||
"update_time" => 1657347268
|
||||
),
|
||||
array(
|
||||
"id" => 40,
|
||||
"node" => "system.uploadfile/add",
|
||||
"title" => "添加",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347268,
|
||||
"update_time" => 1657347268
|
||||
),
|
||||
array(
|
||||
"id" => 41,
|
||||
"node" => "system.uploadfile/edit",
|
||||
"title" => "编辑",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347268,
|
||||
"update_time" => 1657347268
|
||||
),
|
||||
array(
|
||||
"id" => 42,
|
||||
"node" => "system.uploadfile/delete",
|
||||
"title" => "删除",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347268,
|
||||
"update_time" => 1657347268
|
||||
),
|
||||
array(
|
||||
"id" => 43,
|
||||
"node" => "system.uploadfile/export",
|
||||
"title" => "导出",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347268,
|
||||
"update_time" => 1657347268
|
||||
),
|
||||
array(
|
||||
"id" => 44,
|
||||
"node" => "system.uploadfile/modify",
|
||||
"title" => "属性修改",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347268,
|
||||
"update_time" => 1657347268
|
||||
),
|
||||
array(
|
||||
"id" => 45,
|
||||
"node" => "mall.cate",
|
||||
"title" => "商品分类管理",
|
||||
"type" => 1,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347268,
|
||||
"update_time" => 1657347268
|
||||
),
|
||||
array(
|
||||
"id" => 46,
|
||||
"node" => "mall.cate/index",
|
||||
"title" => "列表",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347269,
|
||||
"update_time" => 1657347269
|
||||
),
|
||||
array(
|
||||
"id" => 47,
|
||||
"node" => "mall.cate/add",
|
||||
"title" => "添加",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347269,
|
||||
"update_time" => 1657347269
|
||||
),
|
||||
array(
|
||||
"id" => 48,
|
||||
"node" => "mall.cate/edit",
|
||||
"title" => "编辑",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347269,
|
||||
"update_time" => 1657347269
|
||||
),
|
||||
array(
|
||||
"id" => 49,
|
||||
"node" => "mall.cate/delete",
|
||||
"title" => "删除",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347269,
|
||||
"update_time" => 1657347269
|
||||
),
|
||||
array(
|
||||
"id" => 50,
|
||||
"node" => "mall.cate/export",
|
||||
"title" => "导出",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347269,
|
||||
"update_time" => 1657347269
|
||||
),
|
||||
array(
|
||||
"id" => 51,
|
||||
"node" => "mall.cate/modify",
|
||||
"title" => "属性修改",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347269,
|
||||
"update_time" => 1657347269
|
||||
),
|
||||
array(
|
||||
"id" => 52,
|
||||
"node" => "mall.goods",
|
||||
"title" => "商城商品管理",
|
||||
"type" => 1,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347269,
|
||||
"update_time" => 1657347269
|
||||
),
|
||||
array(
|
||||
"id" => 53,
|
||||
"node" => "mall.goods/index",
|
||||
"title" => "列表",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347270,
|
||||
"update_time" => 1657347270
|
||||
),
|
||||
array(
|
||||
"id" => 54,
|
||||
"node" => "mall.goods/stock",
|
||||
"title" => "入库",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347270,
|
||||
"update_time" => 1657347270
|
||||
),
|
||||
array(
|
||||
"id" => 55,
|
||||
"node" => "mall.goods/add",
|
||||
"title" => "添加",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347270,
|
||||
"update_time" => 1657347270
|
||||
),
|
||||
array(
|
||||
"id" => 56,
|
||||
"node" => "mall.goods/edit",
|
||||
"title" => "编辑",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347270,
|
||||
"update_time" => 1657347270
|
||||
),
|
||||
array(
|
||||
"id" => 57,
|
||||
"node" => "mall.goods/delete",
|
||||
"title" => "删除",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347270,
|
||||
"update_time" => 1657347270
|
||||
),
|
||||
array(
|
||||
"id" => 58,
|
||||
"node" => "mall.goods/export",
|
||||
"title" => "导出",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347270,
|
||||
"update_time" => 1657347270
|
||||
),
|
||||
array(
|
||||
"id" => 59,
|
||||
"node" => "mall.goods/modify",
|
||||
"title" => "属性修改",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347270,
|
||||
"update_time" => 1657347270
|
||||
),
|
||||
array(
|
||||
"id" => 60,
|
||||
"node" => "system.quick",
|
||||
"title" => "快捷入口管理",
|
||||
"type" => 1,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347270,
|
||||
"update_time" => 1657347270
|
||||
),
|
||||
array(
|
||||
"id" => 61,
|
||||
"node" => "system.quick/index",
|
||||
"title" => "列表",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347271,
|
||||
"update_time" => 1657347271
|
||||
),
|
||||
array(
|
||||
"id" => 62,
|
||||
"node" => "system.quick/add",
|
||||
"title" => "添加",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347271,
|
||||
"update_time" => 1657347271
|
||||
),
|
||||
array(
|
||||
"id" => 63,
|
||||
"node" => "system.quick/edit",
|
||||
"title" => "编辑",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347271,
|
||||
"update_time" => 1657347271
|
||||
),
|
||||
array(
|
||||
"id" => 64,
|
||||
"node" => "system.quick/delete",
|
||||
"title" => "删除",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347271,
|
||||
"update_time" => 1657347271
|
||||
),
|
||||
array(
|
||||
"id" => 65,
|
||||
"node" => "system.quick/export",
|
||||
"title" => "导出",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347271,
|
||||
"update_time" => 1657347271
|
||||
),
|
||||
array(
|
||||
"id" => 66,
|
||||
"node" => "system.quick/modify",
|
||||
"title" => "属性修改",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347271,
|
||||
"update_time" => 1657347271
|
||||
),
|
||||
array(
|
||||
"id" => 69,
|
||||
"node" => "debug.log",
|
||||
"title" => "debug_log",
|
||||
"type" => 1,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347271,
|
||||
"update_time" => 1657347271
|
||||
),
|
||||
array(
|
||||
"id" => 70,
|
||||
"node" => "debug.log/index",
|
||||
"title" => "列表",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347272,
|
||||
"update_time" => 1657347272
|
||||
),
|
||||
array(
|
||||
"id" => 71,
|
||||
"node" => "debug.log/add",
|
||||
"title" => "添加",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347272,
|
||||
"update_time" => 1657347272
|
||||
),
|
||||
array(
|
||||
"id" => 72,
|
||||
"node" => "debug.log/edit",
|
||||
"title" => "编辑",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347272,
|
||||
"update_time" => 1657347272
|
||||
),
|
||||
array(
|
||||
"id" => 73,
|
||||
"node" => "debug.log/delete",
|
||||
"title" => "删除",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347272,
|
||||
"update_time" => 1657347272
|
||||
),
|
||||
array(
|
||||
"id" => 74,
|
||||
"node" => "debug.log/export",
|
||||
"title" => "导出",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347272,
|
||||
"update_time" => 1657347272
|
||||
),
|
||||
array(
|
||||
"id" => 75,
|
||||
"node" => "debug.log/modify",
|
||||
"title" => "属性修改",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347272,
|
||||
"update_time" => 1657347272
|
||||
),
|
||||
array(
|
||||
"id" => 76,
|
||||
"node" => "mall.tag",
|
||||
"title" => "mall_tag",
|
||||
"type" => 1,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347614,
|
||||
"update_time" => 1657347614
|
||||
),
|
||||
array(
|
||||
"id" => 77,
|
||||
"node" => "mall.tag/index",
|
||||
"title" => "列表",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347614,
|
||||
"update_time" => 1657347614
|
||||
),
|
||||
array(
|
||||
"id" => 78,
|
||||
"node" => "mall.tag/add",
|
||||
"title" => "添加",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347615,
|
||||
"update_time" => 1657347615
|
||||
),
|
||||
array(
|
||||
"id" => 79,
|
||||
"node" => "mall.tag/edit",
|
||||
"title" => "编辑",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347615,
|
||||
"update_time" => 1657347615
|
||||
),
|
||||
array(
|
||||
"id" => 80,
|
||||
"node" => "mall.tag/delete",
|
||||
"title" => "删除",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347615,
|
||||
"update_time" => 1657347615
|
||||
),
|
||||
array(
|
||||
"id" => 81,
|
||||
"node" => "mall.tag/export",
|
||||
"title" => "导出",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347615,
|
||||
"update_time" => 1657347615
|
||||
),
|
||||
array(
|
||||
"id" => 82,
|
||||
"node" => "mall.tag/modify",
|
||||
"title" => "属性修改",
|
||||
"type" => 2,
|
||||
"is_auth" => 1,
|
||||
"create_time" => 1657347615,
|
||||
"update_time" => 1657347615
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
return $ul_system_node;
|
||||
61
extend/base/admin/service/initAdminData/SystemQuick.php
Normal file
61
extend/base/admin/service/initAdminData/SystemQuick.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
$ul_system_quick = array(
|
||||
array(
|
||||
"title" => "管理员管理",
|
||||
"icon" => "fa fa-user",
|
||||
"href" => "system.admin/index",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"title" => "角色管理",
|
||||
"icon" => "fa fa-bitbucket-square",
|
||||
"href" => "system.auth/index",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"title" => "菜单管理",
|
||||
"icon" => "fa fa-tree",
|
||||
"href" => "system.menu/index",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"title" => "节点管理",
|
||||
"icon" => "fa fa-list",
|
||||
"href" => "system.node/index",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"title" => "配置管理",
|
||||
"icon" => "fa fa-asterisk",
|
||||
"href" => "system.config/index",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"title" => "上传管理",
|
||||
"icon" => "fa fa-arrow-up",
|
||||
"href" => "system.uploadfile/index",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"title" => "商品分类",
|
||||
"icon" => "fa fa-calendar-check-o",
|
||||
"href" => "mall.cate/index",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
),
|
||||
array(
|
||||
"title" => "商品管理",
|
||||
"icon" => "fa fa-list",
|
||||
"href" => "mall.goods/index",
|
||||
"sort" => 0,
|
||||
"status" => 1,
|
||||
)
|
||||
);
|
||||
|
||||
return $ul_system_quick;
|
||||
174
extend/base/admin/service/node/NodeClass.php
Normal file
174
extend/base/admin/service/node/NodeClass.php
Normal file
@@ -0,0 +1,174 @@
|
||||
<?php
|
||||
|
||||
// +----------------------------------------------------------------------
|
||||
// | EasyAdmin
|
||||
// +----------------------------------------------------------------------
|
||||
// | PHP交流群: 763822524
|
||||
// +----------------------------------------------------------------------
|
||||
// | 开源协议 https://mit-license.org
|
||||
// +----------------------------------------------------------------------
|
||||
// | github开源项目:https://github.com/zhongshaofa/EasyAdmin
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace base\admin\service\node;
|
||||
|
||||
use app\admin\service\annotation\ControllerAnnotation;
|
||||
use app\admin\service\annotation\NodeAnotation;
|
||||
use Doctrine\Common\Annotations\AnnotationReader;
|
||||
use Doctrine\Common\Annotations\AnnotationRegistry;
|
||||
use Doctrine\Common\Annotations\DocParser;
|
||||
use think\helper\Str;
|
||||
|
||||
/**
|
||||
* 节点处理类
|
||||
* Class Node.
|
||||
*/
|
||||
class NodeClass
|
||||
{
|
||||
/**
|
||||
* @var string 当前文件夹
|
||||
*/
|
||||
protected $basePath;
|
||||
|
||||
/**
|
||||
* @var string 命名空间前缀
|
||||
*/
|
||||
protected $baseNamespace;
|
||||
|
||||
/**
|
||||
* 构造方法
|
||||
* Node constructor.
|
||||
* @param string $basePath 读取的文件夹
|
||||
* @param string $baseNamespace 读取的命名空间前缀
|
||||
*/
|
||||
public function __construct($basePath, $baseNamespace)
|
||||
{
|
||||
$this->basePath = $basePath;
|
||||
$this->baseNamespace = $baseNamespace;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有节点.
|
||||
* @return array
|
||||
* @throws \Doctrine\Common\Annotations\AnnotationException
|
||||
* @throws \ReflectionException
|
||||
*/
|
||||
public function getNodelist()
|
||||
{
|
||||
list($nodeList, $controllerList) = [[], $this->getControllerList()];
|
||||
|
||||
if (!empty($controllerList)) {
|
||||
AnnotationRegistry::registerLoader('class_exists');
|
||||
$parser = new DocParser();
|
||||
$parser->setIgnoreNotImportedAnnotations(true);
|
||||
$reader = new AnnotationReader($parser);
|
||||
|
||||
foreach ($controllerList as $controllerFormat => $controller) {
|
||||
// 获取类和方法的注释信息
|
||||
$reflectionClass = new \ReflectionClass($controller);
|
||||
$methods = $reflectionClass->getMethods();
|
||||
$actionList = [];
|
||||
|
||||
// 遍历读取所有方法的注释的参数信息
|
||||
foreach ($methods as $method) {
|
||||
// 读取NodeAnotation的注解
|
||||
$nodeAnnotation = $reader->getMethodAnnotation($method, NodeAnotation::class);
|
||||
if (!empty($nodeAnnotation) && !empty($nodeAnnotation->title)) {
|
||||
$actionTitle = !empty($nodeAnnotation) && !empty($nodeAnnotation->title) ? $nodeAnnotation->title : null;
|
||||
$actionAuth = !empty($nodeAnnotation) && !empty($nodeAnnotation->auth) ? $nodeAnnotation->auth : false;
|
||||
|
||||
$method_name = $nodeAnnotation->name;
|
||||
|
||||
if (empty($method_name)) {
|
||||
$method_name = $method->name;
|
||||
}
|
||||
|
||||
$actionList[] = [
|
||||
'node' => $controllerFormat . '/' . $method_name,
|
||||
'title' => $actionTitle,
|
||||
'is_auth' => $actionAuth,
|
||||
'type' => 2,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
// 读取挂载到控制器注解中的节点
|
||||
$nodeAnnotationInController = $reader->getClassAnnotations($reflectionClass);
|
||||
foreach ($nodeAnnotationInController as $nodeAnnotation) {
|
||||
if ($nodeAnnotation instanceof NodeAnotation) {
|
||||
$actionList[] = [
|
||||
'node' => $controllerFormat . '/' . $nodeAnnotation->name,
|
||||
'title' => $nodeAnnotation->title,
|
||||
'is_auth' => $nodeAnnotation->auth,
|
||||
'type' => 2,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
// 方法非空才读取控制器注解
|
||||
if (!empty($actionList)) {
|
||||
// 读取Controller的注解
|
||||
$controllerAnnotation = $reader->getClassAnnotation($reflectionClass, ControllerAnnotation::class);
|
||||
$controllerTitle = !empty($controllerAnnotation) && !empty($controllerAnnotation->title) ? $controllerAnnotation->title : null;
|
||||
$controllerAuth = !empty($controllerAnnotation) && !empty($controllerAnnotation->auth) ? $controllerAnnotation->auth : false;
|
||||
$nodeList[] = [
|
||||
'node' => $controllerFormat,
|
||||
'title' => $controllerTitle,
|
||||
'is_auth' => $controllerAuth,
|
||||
'type' => 1,
|
||||
];
|
||||
$nodeList = array_merge($nodeList, $actionList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $nodeList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有控制器.
|
||||
* @return array
|
||||
*/
|
||||
public function getControllerList()
|
||||
{
|
||||
return $this->readControllerFiles($this->basePath);
|
||||
}
|
||||
|
||||
/**
|
||||
* 遍历读取控制器文件.
|
||||
* @param $path
|
||||
* @return array
|
||||
*/
|
||||
protected function readControllerFiles($path)
|
||||
{
|
||||
list($list, $temp_list, $dirExplode) = [[], scandir($path), explode($this->basePath, $path)];
|
||||
$middleDir = isset($dirExplode[1]) && !empty($dirExplode[1]) ? str_replace('/', '\\', substr($dirExplode[1], 1)) . '\\' : '';
|
||||
|
||||
foreach ($temp_list as $file) {
|
||||
// 排除根目录和没有开启注解的模块
|
||||
if ($file == '..' || $file == '.') {
|
||||
continue;
|
||||
}
|
||||
if (is_dir($path . DIRECTORY_SEPARATOR . $file)) {
|
||||
// 子文件夹,进行递归
|
||||
$childFiles = $this->readControllerFiles($path . DIRECTORY_SEPARATOR . $file);
|
||||
$list = array_merge($childFiles, $list);
|
||||
} else {
|
||||
// 判断是不是控制器
|
||||
$fileExplodeArray = explode('.', $file);
|
||||
if (count($fileExplodeArray) != 2 || end($fileExplodeArray) != 'php') {
|
||||
continue;
|
||||
}
|
||||
// 根目录下的文件
|
||||
$className = str_replace('.php', '', $file);
|
||||
$controllerFormat = str_replace('\\', '.', $middleDir) . Str::snake(lcfirst($className));
|
||||
|
||||
$list[$controllerFormat] = "{$this->baseNamespace}\\{$middleDir}" . $className;
|
||||
}
|
||||
}
|
||||
|
||||
return $list;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user