优化后台UI
This commit is contained in:
@@ -33,23 +33,64 @@ class AuthRule extends Model{
|
||||
];
|
||||
|
||||
public static function uprule($type){
|
||||
foreach ($data as $value) {
|
||||
$data = array(
|
||||
'module' => $type,
|
||||
'type' => 2,
|
||||
'name' => $value['url'],
|
||||
'title' => $value['title'],
|
||||
'group' => $value['group'],
|
||||
'status' => 1,
|
||||
);
|
||||
// $id = $this->where(array('name' => $data['name']))->value('id');
|
||||
// if ($id) {
|
||||
// $data['id'] = $id;
|
||||
// $this->save($data, array('id' => $id));
|
||||
// } else {
|
||||
// self::create($data);
|
||||
// }
|
||||
$path = app()->getAppPath() . 'controller' . DIRECTORY_SEPARATOR . $type;
|
||||
$list = [];
|
||||
|
||||
$classname = self::scanFile($path);
|
||||
foreach ($classname as $value) {
|
||||
if($value == 'Base'){
|
||||
continue;
|
||||
}
|
||||
$class = "app\\controller\\" . $type . "\\" . $value;
|
||||
if (class_exists($class)) {
|
||||
$reflection = new \ReflectionClass($class);
|
||||
$group_doc = self::Parser($reflection->getDocComment());
|
||||
$method = $reflection->getMethods(\ReflectionMethod::IS_FINAL | \ReflectionMethod::IS_PUBLIC);
|
||||
$group_doc['name'] = $value;
|
||||
foreach ($method as $key => $v) {
|
||||
if (!in_array($v->name, ['__construct'])) {
|
||||
$title_doc = self::Parser($v->getDocComment());
|
||||
if (isset($title_doc['title']) && $title_doc['title']) {
|
||||
$list[] = array(
|
||||
'module' => $type,
|
||||
'type' => 2,
|
||||
'name' => $type . '/' . strtolower($value) . '/' . strtolower($v->name),
|
||||
'title' => trim($title_doc['title']),
|
||||
'group' => $group_doc['title'],
|
||||
'status' => 1,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
foreach ($list as $key => $value) {
|
||||
$id = self::where('name', $value['name'])->value('id');
|
||||
if ($id) {
|
||||
$value['id'] = $id;
|
||||
}
|
||||
$list[$key] = $value;
|
||||
}
|
||||
return (new self())->saveAll($list);
|
||||
}
|
||||
|
||||
protected static function scanFile($path) {
|
||||
$result = array();
|
||||
$files = scandir($path);
|
||||
foreach ($files as $file) {
|
||||
if ($file != '.' && $file != '..') {
|
||||
if (is_dir($path . '/' . $file)) {
|
||||
self::scanFile($path . '/' . $file);
|
||||
} else {
|
||||
$result[] = substr(basename($file), 0, -4);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
protected static function Parser($text) {
|
||||
$doc = new \doc\Doc();
|
||||
return $doc->parse($text);
|
||||
}
|
||||
}
|
||||
@@ -8,10 +8,12 @@
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\model;
|
||||
|
||||
use think\facade\Cache;
|
||||
use think\facade\Config;
|
||||
use phpspirit\dbskeleton\mysql\TableModel;
|
||||
use phpspirit\dbskeleton\mysql\ColumnModel;
|
||||
use phpspirit\dbskeleton\Factory;
|
||||
use Form as FormModel;
|
||||
|
||||
/**
|
||||
* 设置模型
|
||||
@@ -22,63 +24,70 @@ class FormAttr extends \think\Model{
|
||||
'id' => 'integer',
|
||||
);
|
||||
|
||||
protected static function onAfterInsert($model){
|
||||
$data = $model->getData();
|
||||
$mysql = Config::get('database.connections.mysql');
|
||||
|
||||
$dbskeleton = Factory::instance('mysql', $mysql['hostname'] . ':' . $mysql['hostport'], $mysql['database'], $mysql['username'], $mysql['password']);
|
||||
$field = (new ColumnModel())->setType('int')
|
||||
->setLen($data['length'])
|
||||
->setName($data['name'])
|
||||
->setComment($data['title']);
|
||||
$dbskeleton->addColumn($tablemodel, );
|
||||
|
||||
/**
|
||||
* @title 新增后事件
|
||||
*/
|
||||
protected static function onAfterInsert($data){
|
||||
$data = $data->toArray();
|
||||
if ($data['form_id']) {
|
||||
$db = new \com\Datatable();
|
||||
$name = FormModel::where('id', $data['form_id'])->value('name');
|
||||
$data['after'] = self::where('name', '<>', $data['name'])->where('form_id', $data['form_id'])->order('sort asc, id desc')->value('name');
|
||||
return $db->columField('form_' . strtolower($name), $data)->query();
|
||||
}
|
||||
}
|
||||
|
||||
protected static function onBeforeUpdate($model){
|
||||
$data = $model->getData();
|
||||
$mysql = Config::get('database.connections.mysql');
|
||||
|
||||
$dbskeleton = Factory::instance('mysql', $mysql['hostname'] . ':' . $mysql['hostport'], $mysql['database'], $mysql['username'], $mysql['password']);
|
||||
/**
|
||||
* @title 更新后事件
|
||||
*/
|
||||
protected static function onAfterUpdate($data){
|
||||
$data = $data->toArray();
|
||||
if (isset($data['form_id']) && isset($data['name'])) {
|
||||
$tablename = FormModel::where('id', $data['form_id'])->value('name');
|
||||
//删除模型表中字段
|
||||
$db = new \com\Datatable();
|
||||
if ($db->CheckField('form_' . $tablename, $data['name'])) {
|
||||
$data['action'] = 'CHANGE';
|
||||
}
|
||||
$data['after'] = self::where('name', '<>', $data['name'])->where('form_id', $data['form_id'])->order('sort asc, id asc')->value('name');
|
||||
$result = $db->columField(strtolower('form_' . $tablename), $data)->query();
|
||||
return $result;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// protected static function init() {
|
||||
// self::afterInsert(function ($data) {
|
||||
// if ($data['form_id']) {
|
||||
// $name = db('Form')->where('id', $data['form_id'])->value('name');
|
||||
// $db = new \com\Datatable();
|
||||
// $attr = $data->toArray();
|
||||
// $model_attr = array(
|
||||
// 'form_id' => $data['form_id'],
|
||||
// 'attr_id' => $data->id,
|
||||
// 'group_id' => 0,
|
||||
// 'is_add_table' => 1,
|
||||
// 'is_show' => $data['is_show'],
|
||||
// 'is_must' => $data['is_must'],
|
||||
// 'sort' => 0,
|
||||
// );
|
||||
// $attr['after'] = db('FormAttr')->where('name', '<>', $data['name'])->where('form_id', $data['form_id'])->order('id desc')->value('name');
|
||||
// return $db->columField('form_' . strtolower($name), $attr)->query();
|
||||
// }
|
||||
// });
|
||||
// self::beforeUpdate(function ($data) {
|
||||
// $attr = $data->toArray();
|
||||
// $attr['action'] = 'CHANGE';
|
||||
// $attr['oldname'] = db('FormAttr')->where('id', $attr['id'])->value('name');
|
||||
// if ($attr['id']) {
|
||||
// $name = db('Form')->where('id', $attr['form_id'])->value('name');
|
||||
// $db = new \com\Datatable();
|
||||
// return $db->columField('form_' . strtolower($name), $attr)->query();
|
||||
// } else {
|
||||
// return false;
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
/**
|
||||
* @title 删除后事件
|
||||
*/
|
||||
protected static function onAfterDelete($data){
|
||||
$data = $data->toArray();
|
||||
if ($data['model_id']) {
|
||||
$tablename = FormModel::where('id', $data['model_id'])->value('name');
|
||||
|
||||
//删除模型表中字段
|
||||
$db = new \com\Datatable();
|
||||
if (!$db->CheckField('form_' . $tablename, $data['name'])) {
|
||||
$result = true;
|
||||
}else{
|
||||
$result = $db->delField('form_' . $tablename, $data['name'])->query();
|
||||
}
|
||||
return $result;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
protected function getTypeTextAttr($value, $data) {
|
||||
$type = config('config_type_list');
|
||||
$type_text = explode(',', $type[$data['type']]);
|
||||
return $type_text[0];
|
||||
$config = Cache::get('system_config_data');
|
||||
$type = $config['config_type_list'];
|
||||
$type_text = "";
|
||||
foreach ($type as $value) {
|
||||
if ($value['key'] == $data['type']) {
|
||||
$type_text = $value['label'];
|
||||
}
|
||||
}
|
||||
return $type_text;
|
||||
}
|
||||
|
||||
public function getFieldlist($map, $index = 'id') {
|
||||
|
||||
Reference in New Issue
Block a user