4
This commit is contained in:
@@ -85,8 +85,8 @@ class ArchivesController extends Crud
|
||||
$result = $this->model->save($params);
|
||||
Db::commit();
|
||||
} catch (Exception $e) {
|
||||
Db::rollback();
|
||||
return $this->fail($e->getMessage());
|
||||
Db::rollback();
|
||||
return $this->fail($e->getMessage());
|
||||
}
|
||||
if ($result === false) {
|
||||
return $this->fail(__('No rows were inserted'));
|
||||
|
||||
@@ -0,0 +1,168 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\admin\app\controller;
|
||||
|
||||
use support\Request;
|
||||
use support\Response;
|
||||
use support\think\Db;
|
||||
use taoser\facade\Validate;
|
||||
use Shopwwi\WebmanFilesystem\Facade\Storage;
|
||||
|
||||
/**
|
||||
* 附件管理
|
||||
*
|
||||
* @icon fa fa-circle-o
|
||||
*/
|
||||
class AttachController extends Crud
|
||||
{
|
||||
|
||||
/**
|
||||
* @var \app\model\Files
|
||||
*/
|
||||
protected $model = null;
|
||||
/**
|
||||
* 构造函数
|
||||
* @return void
|
||||
*/
|
||||
function __construct()
|
||||
{
|
||||
$this->model = new \app\model\Files();
|
||||
}
|
||||
function list(Request $request)
|
||||
{
|
||||
return view('', [
|
||||
|
||||
]);
|
||||
}
|
||||
function feupload(Request $request): Response
|
||||
{
|
||||
$user = ['id'=>admin_id()];
|
||||
$savePath = $request->post('savePath','files');
|
||||
$validate = Validate::rule('savePath', 'alphaNum');
|
||||
$data = ['savePath' => $savePath];
|
||||
if (!$validate->check($data)) {
|
||||
return $this->fail( '参数错误:'.$validate->getError());
|
||||
}
|
||||
$savePath = trim($savePath,'/');
|
||||
$savePath = 'upload/'.$savePath.'/'.$user['id'];
|
||||
$maxSize = 1024*1024*100; //100M
|
||||
//多文件上传
|
||||
$files = $request->file();
|
||||
try {
|
||||
$result = Storage::adapter('public')
|
||||
->path($savePath)
|
||||
->size(1024*1024*10)
|
||||
->extYes(['image/jpeg','image/png'])
|
||||
->uploads($files,0,$maxSize,false);
|
||||
$save_datas = [];
|
||||
foreach($result as $k=>$fileinfo){
|
||||
$save_datas[] = [
|
||||
'user_id' => $user['id'],
|
||||
'title' => $fileinfo->origin_name,
|
||||
'path' => $fileinfo->file_name,
|
||||
'size' => $fileinfo->size,
|
||||
'mime_type' => $fileinfo->mime_type,
|
||||
'extension' => $fileinfo->extension,
|
||||
'height' => $fileinfo->file_height,
|
||||
'width' => $fileinfo->file_width,
|
||||
'sha1' => sha1_file(public_path($fileinfo->file_name)),
|
||||
'use_count' => 0,
|
||||
];
|
||||
}
|
||||
\app\model\Files::saveAll($save_datas);
|
||||
return $this->success(__('successful'),[
|
||||
'link' => $result[0]['path'],
|
||||
]);
|
||||
}catch (\Exception $e){
|
||||
return $this->fail($e->getMessage());
|
||||
}
|
||||
}
|
||||
function upload(Request $request): Response
|
||||
{
|
||||
log_alert(0);
|
||||
$savePath = $request->post('savePath','files');
|
||||
$validate = Validate::rule('savePath', 'alphaNum');
|
||||
$data = ['savePath' => $savePath];
|
||||
log_alert($data);
|
||||
if (!$validate->check($data)) {
|
||||
cp($validate->getError());
|
||||
return $this->fail( '参数错误:'.$validate->getError());
|
||||
}
|
||||
log_alert('1');
|
||||
$file = current($request->file());
|
||||
if (!$file || !$file->isValid()) {
|
||||
return $this->fail('未找到文件');
|
||||
}
|
||||
log_alert('2');
|
||||
try {
|
||||
$data = $this->base($request, $savePath);
|
||||
} catch (\Exception $e) {
|
||||
log_alert($e->getMessage());
|
||||
//throw $th;
|
||||
}
|
||||
log_alert('3');
|
||||
//cp($data);
|
||||
return $this->success( '上传成功', [
|
||||
'url' => $data['realpath'],
|
||||
'name' => $data['name'],
|
||||
'fullurl' => $data['url'],
|
||||
'size' => $data['size'],
|
||||
'url1' => $data['url'],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上传数据
|
||||
* @param Request $request
|
||||
* @param $savePath 保存位置
|
||||
* @return array
|
||||
* @throws \Exception
|
||||
*/
|
||||
protected function base(Request $request, $savePath): array
|
||||
{
|
||||
$user = ['id'=>admin_id()];
|
||||
// 适配器 local默认是存储在runtime目录下 public默认是存储在public目录下
|
||||
// 可访问的静态文件建议public
|
||||
// 默认适配器是local
|
||||
//Storage::adapter('public');
|
||||
$savePath = trim($savePath,'/');
|
||||
$savePath = 'upload/'.$savePath;
|
||||
cp($savePath);
|
||||
$file = current($request->file());
|
||||
cp($file);
|
||||
$mimetype = explode(',',Config('site.upload_mimetype'));
|
||||
$maxsize = Config('site.upload_maxsize')*1024*1024;
|
||||
$result = Storage::adapter('public')
|
||||
->path($savePath)
|
||||
->size($maxsize)
|
||||
->extYes($mimetype)
|
||||
->upload($file);
|
||||
cp($result);
|
||||
|
||||
$save_datas = [
|
||||
'user_id' => $user['id'],
|
||||
'category' => 'default',
|
||||
'title' => $result->origin_name,
|
||||
'path' => $result->file_name,
|
||||
'size' => $result->size,
|
||||
'mime_type' => $result->mime_type,
|
||||
'extension' => $result->extension,
|
||||
'height' => $result->file_height,
|
||||
'width' => $result->file_width,
|
||||
'sha1' => sha1_file(public_path($result->file_name)),
|
||||
'use_count' => 0,
|
||||
];
|
||||
(new \app\model\Files)->save($save_datas);
|
||||
return [
|
||||
'code' => 0,
|
||||
'url' => $result->file_url,
|
||||
'name' => $result->origin_name,
|
||||
'realpath' => '/'.$result->file_name,
|
||||
'size' => $result->size,
|
||||
'mime_type' => $result->mime_type,
|
||||
'image_with'=> $result->file_width,
|
||||
'image_height' => $result->file_height,
|
||||
'ext' => $result->extension,
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,127 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\admin\app\controller;
|
||||
|
||||
use support\Request;
|
||||
use support\Response;
|
||||
use support\think\Db;
|
||||
use Shopwwi\WebmanFilesystem\Facade\Storage;
|
||||
|
||||
/**
|
||||
* 附件管理
|
||||
*
|
||||
* @icon fa fa-circle-o
|
||||
*/
|
||||
class AttachmentController extends Crud
|
||||
{
|
||||
function list(Request $request)
|
||||
{
|
||||
|
||||
return view('', [
|
||||
|
||||
]);
|
||||
}
|
||||
function feupload(Request $request): Response
|
||||
{
|
||||
|
||||
$file = current($request->file());
|
||||
if (!$file || !$file->isValid()) {
|
||||
return $this->fail('未找到文件');
|
||||
}
|
||||
$data = $this->base($request, '/upload/files/' . date('Ymd'));
|
||||
return json([
|
||||
'link' => $data['url'],
|
||||
]);
|
||||
}
|
||||
function upload(Request $request): Response
|
||||
{
|
||||
|
||||
$file = current($request->file());
|
||||
if (!$file || !$file->isValid()) {
|
||||
return $this->fail('未找到文件');
|
||||
}
|
||||
$data = $this->base($request, '/upload/files/' . date('Ymd'));
|
||||
//cp($data);
|
||||
return $this->json(0, '上传成功', [
|
||||
'url' => $data['realpath'],
|
||||
'name' => $data['name'],
|
||||
'fullurl' => $data['url'],
|
||||
'size' => $data['size'],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上传数据
|
||||
* @param Request $request
|
||||
* @param $relative_dir
|
||||
* @return array
|
||||
* @throws \Exception
|
||||
*/
|
||||
protected function base(Request $request, $relative_dir): array
|
||||
{
|
||||
// 适配器 local默认是存储在runtime目录下 public默认是存储在public目录下
|
||||
// 可访问的静态文件建议public
|
||||
// 默认适配器是local
|
||||
//Storage::adapter('public');
|
||||
$relative_dir = ltrim($relative_dir, '\\/');
|
||||
$file = current($request->file());
|
||||
try {
|
||||
if (!$file || !$file->isValid()) {
|
||||
throw new \support\exception\BusinessException('未找到上传文件', 400);
|
||||
}
|
||||
|
||||
$ext = $file->getUploadExtension() ?: null;
|
||||
$mime_type = $file->getUploadMimeType();
|
||||
$file_name = $file->getUploadName();
|
||||
$file_size = $file->getSize();
|
||||
|
||||
if (!$ext && $file_name === 'blob') {
|
||||
[$___image, $ext] = explode('/', $mime_type);
|
||||
unset($___image);
|
||||
}
|
||||
|
||||
$ext = strtolower($ext);
|
||||
$ext_forbidden_map = ['php', 'php3', 'php5', 'css', 'js', 'html', 'htm', 'asp', 'jsp'];
|
||||
if (in_array($ext, $ext_forbidden_map)) {
|
||||
throw new \support\exception\BusinessException('不支持该格式的文件上传', 400);
|
||||
}
|
||||
$mimetype = explode(',',Config('site.mimetype'));
|
||||
$result = Storage::adapter('public')
|
||||
->path($relative_dir)
|
||||
->size(1024 * 1024 * 5)
|
||||
->extYes($mimetype)
|
||||
//->extNo(['image/png'])
|
||||
->upload($file);
|
||||
} catch (\Exception $e) {
|
||||
return [
|
||||
'code' => 1,
|
||||
'msg' => $e->getMessage()
|
||||
];
|
||||
}
|
||||
// cp($result);
|
||||
// stdClass Object
|
||||
// (
|
||||
// [adapter] => public
|
||||
// [origin_name] => OIP-C (1).jpg
|
||||
// [file_name] => upload/files/20250527/eb14c1bfe6e7a22415bbbb30dfe90ba1_6834f0974db76.jpg
|
||||
// [storage_key] => eb14c1bfe6e7a22415bbbb30dfe90ba1_6834f0974db76
|
||||
// [file_url] => //luru.oss-ap-southeast-1.aliyuncs.com/upload/files/20250527/eb14c1bfe6e7a22415bbbb30dfe90ba1_6834f0974db76.jpg
|
||||
// [size] => 15370
|
||||
// [mime_type] => image/jpeg
|
||||
// [extension] => jpg
|
||||
// [file_height] => 474
|
||||
// [file_width] => 474
|
||||
// )
|
||||
return [
|
||||
'code' => 0,
|
||||
'url' => $result->file_url,
|
||||
'name' => $result->origin_name,
|
||||
'realpath' => '/'.$result->file_name,
|
||||
'size' => $result->size,
|
||||
'mime_type' => $result->mime_type,
|
||||
'image_with' => $result->file_width,
|
||||
'image_height' => $result->file_height,
|
||||
'ext' => $result->extension,
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,160 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\admin\app\controller;
|
||||
|
||||
use support\Request;
|
||||
use support\Response;
|
||||
use support\think\Db;
|
||||
use taoser\facade\Validate;
|
||||
use Shopwwi\WebmanFilesystem\Facade\Storage;
|
||||
|
||||
/**
|
||||
* 附件管理
|
||||
*
|
||||
* @icon fa fa-circle-o
|
||||
*/
|
||||
class FilesController extends Crud
|
||||
{
|
||||
|
||||
/**
|
||||
* @var \app\model\Files
|
||||
*/
|
||||
protected $model = null;
|
||||
/**
|
||||
* 构造函数
|
||||
* @return void
|
||||
*/
|
||||
function __construct()
|
||||
{
|
||||
$this->model = new \app\model\Files();
|
||||
}
|
||||
function list(Request $request)
|
||||
{
|
||||
return view('', [
|
||||
|
||||
]);
|
||||
}
|
||||
function feupload(Request $request): Response
|
||||
{
|
||||
$user = ['id'=>admin_id()];
|
||||
$savePath = $request->post('savePath','files');
|
||||
$validate = Validate::rule('savePath', 'alphaNum');
|
||||
$data = ['savePath' => $savePath];
|
||||
if (!$validate->check($data)) {
|
||||
return $this->fail( '参数错误:'.$validate->getError());
|
||||
}
|
||||
$savePath = trim($savePath,'/');
|
||||
$savePath = 'upload/'.$savePath.'/'.$user['id'];
|
||||
$maxSize = 1024*1024*100; //100M
|
||||
//多文件上传
|
||||
$files = $request->file();
|
||||
try {
|
||||
$result = Storage::adapter('public')
|
||||
->path($savePath)
|
||||
->size(1024*1024*10)
|
||||
->extYes(['image/jpeg','image/png'])
|
||||
->uploads($files,0,$maxSize,false);
|
||||
$save_datas = [];
|
||||
foreach($result as $k=>$fileinfo){
|
||||
$save_datas[] = [
|
||||
'user_id' => $user['id'],
|
||||
'title' => $fileinfo->origin_name,
|
||||
'path' => $fileinfo->file_name,
|
||||
'size' => $fileinfo->size,
|
||||
'mime_type' => $fileinfo->mime_type,
|
||||
'extension' => $fileinfo->extension,
|
||||
'height' => $fileinfo->file_height,
|
||||
'width' => $fileinfo->file_width,
|
||||
'sha1' => sha1_file(public_path($fileinfo->file_name)),
|
||||
'use_count' => 0,
|
||||
];
|
||||
}
|
||||
\app\model\Files::saveAll($save_datas);
|
||||
return $this->success(__('successful'),[
|
||||
'link' => $result[0]['path'],
|
||||
]);
|
||||
}catch (\Exception $e){
|
||||
return $this->fail($e->getMessage());
|
||||
}
|
||||
}
|
||||
function upload(Request $request): Response
|
||||
{
|
||||
cp('0');
|
||||
$savePath = $request->post('savePath','files');
|
||||
$validate = Validate::rule('savePath', 'alphaNum');
|
||||
$data = ['savePath' => $savePath];
|
||||
cp($data);
|
||||
if (!$validate->check($data)) {
|
||||
cp($validate->getError());
|
||||
return $this->fail( '参数错误:'.$validate->getError());
|
||||
}
|
||||
cp('1');
|
||||
$file = current($request->file());
|
||||
if (!$file || !$file->isValid()) {
|
||||
return $this->fail('未找到文件');
|
||||
}
|
||||
cp('2');
|
||||
$data = $this->base($request, $savePath);
|
||||
cp('3');
|
||||
//cp($data);
|
||||
return $this->success( '上传成功', [
|
||||
'url' => $data['realpath'],
|
||||
'name' => $data['name'],
|
||||
'fullurl' => $data['url'],
|
||||
'size' => $data['size'],
|
||||
'url1' => $data['url'],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上传数据
|
||||
* @param Request $request
|
||||
* @param $savePath 保存位置
|
||||
* @return array
|
||||
* @throws \Exception
|
||||
*/
|
||||
protected function base(Request $request, $savePath): array
|
||||
{
|
||||
$user = ['id'=>admin_id()];
|
||||
// 适配器 local默认是存储在runtime目录下 public默认是存储在public目录下
|
||||
// 可访问的静态文件建议public
|
||||
// 默认适配器是local
|
||||
//Storage::adapter('public');
|
||||
$savePath = trim($savePath,'/');
|
||||
$savePath = 'upload/'.$savePath;
|
||||
$file = current($request->file());
|
||||
$mimetype = explode(',',Config('site.upload_mimetype'));
|
||||
$maxsize = Config('site.upload_maxsize')*1024*1024;
|
||||
$result = Storage::adapter('public')
|
||||
->path($savePath)
|
||||
->size($maxsize)
|
||||
->extYes($mimetype)
|
||||
->upload($file);
|
||||
|
||||
$save_datas = [
|
||||
'user_id' => $user['id'],
|
||||
'category' => 'default',
|
||||
'title' => $result->origin_name,
|
||||
'path' => $result->file_name,
|
||||
'size' => $result->size,
|
||||
'mime_type' => $result->mime_type,
|
||||
'extension' => $result->extension,
|
||||
'height' => $result->file_height,
|
||||
'width' => $result->file_width,
|
||||
'sha1' => sha1_file(public_path($result->file_name)),
|
||||
'use_count' => 0,
|
||||
];
|
||||
(new \app\model\Files)->save($save_datas);
|
||||
return [
|
||||
'code' => 0,
|
||||
'url' => $result->file_url,
|
||||
'name' => $result->origin_name,
|
||||
'realpath' => '/'.$result->file_name,
|
||||
'size' => $result->size,
|
||||
'mime_type' => $result->mime_type,
|
||||
'image_with'=> $result->file_width,
|
||||
'image_height' => $result->file_height,
|
||||
'ext' => $result->extension,
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -37,7 +37,7 @@ class IndexController extends Base
|
||||
$admin = admin();
|
||||
if (!$admin) {
|
||||
$title = config('site.name') ?? 'admin';
|
||||
$logo = cdnurl(config('site.admin_logo') ?? '/app/admin/images/logo.png');
|
||||
$logo = cdnurl(config('site.admin_logo') ?? admin_path().'/images/logo.png');
|
||||
return view('account/login',['logo'=>$logo,'title'=>$title]);
|
||||
}
|
||||
//缓存
|
||||
|
||||
@@ -8,7 +8,7 @@ use support\Request;
|
||||
use support\Response;
|
||||
|
||||
/**
|
||||
* 用户管理
|
||||
* 团队管理
|
||||
*/
|
||||
class TeamController extends Crud
|
||||
{
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\admin\app\controller;
|
||||
use plugin\admin\app\controller\Crud;
|
||||
use app\model\Thali;
|
||||
use support\exception\BusinessException;
|
||||
use support\Request;
|
||||
use support\Response;
|
||||
|
||||
/**
|
||||
* 套餐管理
|
||||
*/
|
||||
class ThaliController extends Crud
|
||||
{
|
||||
|
||||
/**
|
||||
* @var Thali
|
||||
*/
|
||||
protected $model = null;
|
||||
|
||||
/**
|
||||
* 构造函数
|
||||
* @return void
|
||||
*/
|
||||
|
||||
|
||||
function __construct()
|
||||
{
|
||||
$this->model = new Thali();
|
||||
$statusList = $this->model->getStatusList();
|
||||
$this->assign("statusList", $statusList);
|
||||
$this->assignconfig("statusList", $statusList);
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@ class UserController extends Crud
|
||||
['value'=>1,'label'=>"内部用户"],
|
||||
['value'=>2,'label'=>"联盟商"],
|
||||
];
|
||||
$roleList = \app\model\UserRole::order('id','desc')->column('name as label,id as value');
|
||||
$roleList = \app\model\UserRole::order('id','asc')->column('name as label,id as value');
|
||||
$this->assign('groupList',$groupList);
|
||||
$this->assignconfig('groupList',$groupList);
|
||||
$this->assign('roleList',$roleList);
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\admin\app\controller;
|
||||
|
||||
use app\model\User;
|
||||
use plugin\admin\app\controller\Crud;
|
||||
use support\exception\BusinessException;
|
||||
use support\Request;
|
||||
use support\Response;
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* 版本管理
|
||||
*/
|
||||
class VersionController extends Crud
|
||||
{
|
||||
|
||||
/**
|
||||
* @var \app\model\Version
|
||||
*/
|
||||
protected $model = null;
|
||||
/**
|
||||
* 构造函数
|
||||
* @return void
|
||||
*/
|
||||
function __construct()
|
||||
{
|
||||
$this->model = new \app\model\Version();
|
||||
$osList = $this->model->getOsList();
|
||||
$this->assign("osList", $osList);
|
||||
$this->assignconfig("osList", $osList);
|
||||
$forceList = $this->model->getForceList();
|
||||
$this->assign("forceList", $forceList);
|
||||
$this->assignconfig("forceList", $forceList);
|
||||
$typeList = $this->model->getTypeList();
|
||||
$this->assign("typeList", $typeList);
|
||||
$this->assignconfig("typeList", $typeList);
|
||||
$statusList = $this->model->getStatusList();
|
||||
$this->assign("statusList", $statusList);
|
||||
$this->assignconfig("statusList", $statusList);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -23,7 +23,7 @@ function url($path='',$args=[]){
|
||||
}
|
||||
$path = $path.'?'.$args;
|
||||
}
|
||||
return '/app/admin/'.$path;
|
||||
return admin_path().'/'.$path;
|
||||
}
|
||||
/**
|
||||
* 当前管理员id
|
||||
|
||||
@@ -31,8 +31,8 @@ class AccessControl implements MiddlewareInterface
|
||||
$response = json(['code' => $code, 'msg' => $msg, 'data' => []]);
|
||||
} else {
|
||||
if ($code === 401) {
|
||||
$response = response('<script> if (self !== top) { parent.location = "/app/admin"; }</script>',401);
|
||||
//$response = response('',301, ['Location'=> '/app/admin/index/index']);
|
||||
$response = response('<script> if (self !== top) { parent.location = "'.admin_path().'"; }</script>',401);
|
||||
//$response = response('',301, ['Location'=> admin_path().'/index/index']);
|
||||
} else {
|
||||
$request->app = '';
|
||||
$request->plugin = 'admin';
|
||||
|
||||
@@ -26,7 +26,8 @@ class Config implements MiddlewareInterface
|
||||
$config['debug'] = config('app.debug');
|
||||
$config['controller'] = $request->controller_name;
|
||||
$config['action'] = $request->action_name;
|
||||
$config['moduleurl'] = '/app/admin';
|
||||
$config['moduleurl'] = admin_path();
|
||||
$config['admin_path'] = admin_path();
|
||||
$request->_view_vars = array_merge((array) $request->_view_vars,[
|
||||
'user' => session('admin'),
|
||||
'config' => $config
|
||||
|
||||
@@ -47,8 +47,8 @@
|
||||
<input id="c-avatar" class="form-control" size="50" name="avatar" type="hidden" value="{$row.avatar|null}" data-tip="头像">
|
||||
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-avatar">
|
||||
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
|
||||
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.avatar" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.files.avatar" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.files.list" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{layout name="layout"}
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</a>
|
||||
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{layout name="layout"}
|
||||
<div class="card">
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="/app/admin/Admin/insert" data-title="新增">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:admin_path()}/Admin/insert" data-title="新增" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</a>
|
||||
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
|
||||
|
||||
@@ -65,8 +65,8 @@
|
||||
<input id="c-avatar" class="form-control" size="50" name="avatar" type="hidden" value="{$row.avatar|null}" data-tip="杀杀杀">
|
||||
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-avatar">
|
||||
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
|
||||
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.avatar" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.files.upload" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.files.list" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{layout name="layout"}
|
||||
<div class="card">
|
||||
<div class="toolbar toolbar-btn-action">
|
||||
<button id="btn_add" type="button" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" permission="app.admin.role.insert">
|
||||
<button id="btn_add" type="button" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" permission="app.admin.role.insert" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</button>
|
||||
<button id="btn_add" type="button" class="btn btn-info m-r-5" permission="app.admin.role.update">
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{layout name="layout"}
|
||||
<link href="/app/admin/libs/jquery-treegrid/jquery.treegrid.min.css" rel="stylesheet" />
|
||||
<link href="{:admin_path()}/libs/jquery-treegrid/jquery.treegrid.min.css" rel="stylesheet" />
|
||||
<div class="card">
|
||||
<div class="toolbar toolbar-btn-action">
|
||||
<button type="button" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" permission="app.admin.adminrule.insert">
|
||||
<button type="button" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" permission="app.admin.adminrule.insert" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</button>
|
||||
<button id="btn_delete" type="button" class="btn btn-danger m-r-5 btn-del" permission="app.admin.adminrule.delete">
|
||||
|
||||
@@ -83,5 +83,4 @@
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{include file="common/chooseicontpl" /}
|
||||
</div>
|
||||
@@ -1,6 +1,6 @@
|
||||
{layout name="layout"}
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</a>
|
||||
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-image">
|
||||
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
|
||||
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.image" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.files.list" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -115,7 +115,7 @@
|
||||
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-images">
|
||||
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
|
||||
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.images" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-images" data-mimetype="image/*" data-multiple="false" data-preview-id="p-images"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-images" data-mimetype="image/*" data-multiple="false" data-preview-id="p-images"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.files.list" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-images" data-mimetype="image/*" data-multiple="false" data-preview-id="p-images"></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{layout name="layout"}
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</a>
|
||||
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{layout name="layout"}
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</a>
|
||||
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
|
||||
<style>
|
||||
#chooseicon {
|
||||
margin:10px;
|
||||
}
|
||||
#chooseicon ul {
|
||||
margin:5px 0 0 0;
|
||||
}
|
||||
#chooseicon ul li{
|
||||
width:41px;height:42px;
|
||||
line-height:42px;
|
||||
border:1px solid #efefef;
|
||||
padding:1px;
|
||||
margin:1px;
|
||||
text-align: center;
|
||||
font-size:18px;
|
||||
}
|
||||
#chooseicon ul li:hover{
|
||||
border:1px solid #2c3e50;
|
||||
cursor:pointer;
|
||||
}
|
||||
</style>
|
||||
<script id="chooseicontpl" type="text/html">
|
||||
<div id="chooseicon">
|
||||
<div>
|
||||
<form onsubmit="return false;">
|
||||
<div class="input-group input-groupp-md">
|
||||
<div class="input-group-addon">搜索图标</div>
|
||||
<input class="js-icon-search form-control" type="text" placeholder="">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div>
|
||||
<ul class="list-inline">
|
||||
<% for(var i=0; i<iconlist.length; i++){ %>
|
||||
<li data-font="<%=iconlist[i]%>" data-toggle="tooltip" title="<%=iconlist[i]%>">
|
||||
<i class="mdi mdi-<%=iconlist[i]%>"></i>
|
||||
</li>
|
||||
<% } %>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</script>
|
||||
@@ -40,12 +40,12 @@
|
||||
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-avatar">
|
||||
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
|
||||
<a class="pic-add faupload" style="height: auto;border: 0;"
|
||||
permission="app.admin.upload.avatar" id="add-pic-btn" href="#!" title="点击上传"
|
||||
permission="app.admin.files.upload" id="add-pic-btn" href="#!" title="点击上传"
|
||||
data-input-id="c-avatar"
|
||||
data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp"
|
||||
data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;"
|
||||
permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件"
|
||||
permission="app.admin.files.list" id="choose-pic-btn" href="#!" title="选择文件"
|
||||
data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false"
|
||||
data-preview-id="p-avatar"></a>
|
||||
</li>
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
<label class="control-label col-xs-12 col-sm-2">favisible</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="favisible" id="favisible" value="{$row.favisible|null}"
|
||||
data-favisible="is_recharge_open=1"
|
||||
data-favisible="is_recharge_open==1"
|
||||
data-target="form-group"
|
||||
autocomplete="off" class="form-control">
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
{layout name="layout"}
|
||||
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 faupload">
|
||||
<span class="mdi mdi-upload" aria-hidden="true"></span>上传
|
||||
</a>
|
||||
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
|
||||
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
|
||||
</a>
|
||||
</div>
|
||||
<!-- 数据表格 -->
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<!-- {1volist name="::::::Config('site.attachment_category')" id="cvo"}
|
||||
<option value="{1$key}" {1if $row.category==$key}selected{1/if}>{1$cvo}</option>
|
||||
{2volist1} -->
|
||||
<table id="table"></table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,11 @@
|
||||
{layout name="layout"}
|
||||
<!-- 数据表格 -->
|
||||
<div class="card">
|
||||
<div class="toolbar-btn-action layer-footer">
|
||||
<button class="btn btn-primary m-r-5">确定</button>
|
||||
<button class="btn btn-success m-r-5">关闭</button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table id="table" ></table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,86 @@
|
||||
{layout name="layout"}
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form class="form-horizontal" action="__SELF__" method="post">
|
||||
<input type="hidden" name="id" value="{$row.id|null}" />
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">类别</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<select name="category" class="form-control" value="{$row.category}">
|
||||
{volist name=":Config('site.attachment_category')" id="cvo"}
|
||||
<option value="{$key}" {if $row.category==$key}selected{/if}>{$cvo}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{if request()->action == 'insert'}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">文件</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
{:buildFileInput('file',$row['file'],'image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp,text/plain',0,false)}
|
||||
</div>
|
||||
</div>
|
||||
{else /}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">名称</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input class="form-control" value="{$row.title}" name="title" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">地址</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input class="form-control" value="{$row.path}" name="path" readonly />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">SHA</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input class="form-control" value="{$row.sha1}" name="sha1" readonly />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">文件大小</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input class="form-control" value="{$row.size}" name="size" readonly />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">Mime</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input class="form-control" value="{$row.mime_type}" name="mime_type" readonly />
|
||||
</div>
|
||||
</div>
|
||||
{if in_array('asd',['jpg','png','gif'])}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">图片大小</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input class="form-control" value="{$row.width}X{$row.height}" readonly />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">扩展名</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input class="form-control" value="{$row.extension}" name="extension" readonly />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">上传时间</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input class="form-control" value="{$row.created_at}" name="created_at" readonly />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
|
||||
<button type="submit" class="btn btn-primary m-r-5">提交</button>
|
||||
<button type="reset" class="btn btn-md m-r-5">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{include file="common/file_preview" id="preview"/}
|
||||
@@ -1,6 +1,6 @@
|
||||
{layout name="layout"}
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</a>
|
||||
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-image">
|
||||
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
|
||||
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.image" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;display: none;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;display: none;" permission="app.admin.files.list" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
<td>渠道商数</td>
|
||||
<td>
|
||||
<?php
|
||||
echo \app\model\User::where('group',1)->count('id');
|
||||
echo \app\model\User::where('group_id',1)->count('id');
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{layout name="layout"}
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</a>
|
||||
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-image">
|
||||
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
|
||||
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.image" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;display: none;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;display: none;" permission="app.admin.files.list" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-image" data-mimetype="image/*" data-multiple="false" data-preview-id="p-image"></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{layout name="layout"}
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</a>
|
||||
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{layout name="layout"}
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</a>
|
||||
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{layout name="layout"}
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</a>
|
||||
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
{layout name="layout"}
|
||||
<div class="card">
|
||||
<div class="toolbar toolbar-btn-action">
|
||||
<button id="btn_add" type="button" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" permission="app.admin.role.insert" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</button>
|
||||
<button id="btn_add" type="button" class="btn btn-info m-r-5" permission="app.admin.role.update">
|
||||
<span class="mdi mdi-pencil" aria-hidden="true"></span>编辑
|
||||
</button>
|
||||
<button id="btn_delete" type="button" class="btn btn-danger btn-del" permission="app.admin.role.delete">
|
||||
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<table id="table"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,50 @@
|
||||
{layout name="layout"}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form class="form-horizontal" method="post" action="__SELF__" role="form">
|
||||
<input type="hidden" name="id" value="{$row.id|null}" />
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">名称:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-title" class="form-control" name="title" type="text" value="{$row.title|null}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">价格:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-price" class="form-control" step="0.01" name="price" type="number" value="{$row.price|default=0}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">原价:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-org_price" class="form-control" step="0.01" name="org_price" type="number" value="{$row.org_price|default=0}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">时间:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-duration" min="0" class="form-control" name="duration" type="number" value="{$row.duration|default=30}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">标签:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-label" class="form-control" name="label" type="text" value="{$row.label|null}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">状态:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{html:radio options="$statusList" value="$row.status" name="status" /}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="extend" class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
|
||||
<button type="submit" class="btn btn-primary m-r-5">确 定</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,6 +1,6 @@
|
||||
{layout name="layout"}
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</a>
|
||||
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<form class="form-horizontal" action="__SELF__" method="post">
|
||||
<input type="hidden" name="id" value="{$row.id|null}" />
|
||||
<div class="form-group">
|
||||
<label for="type" class="control-label col-xs-12 col-sm-2">角色</label>
|
||||
<label for="type" class="control-label col-xs-12 col-sm-2">角色{$row.role_id}</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<select name="role_id" id="role_id" class="form-control">
|
||||
{volist name="roleList" id="rvo"}
|
||||
@@ -24,14 +24,18 @@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{if Request()->action == 'update' && $row.group == 2}
|
||||
<!-- <div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">域名:</label>
|
||||
<div class="form-group" data-favisible="role_id==2">
|
||||
<label class="control-label col-xs-12 col-sm-2">VIP过期时间:</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="domain" value="{$row.domain|null}" data-rule="required;length(4~20)" class="form-control" />
|
||||
<input type="text" name="expire_at"
|
||||
value="{$row.expire_at|datetime}"
|
||||
data-date-debug="true"
|
||||
data-date-sideBySide="true"
|
||||
data-date-collapse="false"
|
||||
data-date-format="YYYY-MM-DD HH:mm:ss"
|
||||
class="form-control datetimepicker" />
|
||||
</div>
|
||||
</div> -->
|
||||
{/if}
|
||||
</div>
|
||||
<!-- <div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">等级</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
@@ -85,8 +89,8 @@
|
||||
<input id="c-avatar" class="form-control" size="50" name="avatar" type="hidden" value="{$row.avatar|default='__IMG__/user/avatar.svg'}" data-tip="头像">
|
||||
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-avatar">
|
||||
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
|
||||
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.avatar" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.files.upload" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.files.list" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -125,95 +129,14 @@
|
||||
autocomplete="off" class="form-control datetimepicker">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if in_array('money',Config('site.allow_currencys'))}
|
||||
{volist name=":Config('site.allow_currencys')" id="currency"}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('money')}</label>
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__($currency)}</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="money" value="{$row.money|formatAmount}" class="form-control" />
|
||||
<input type="text" name="{$currency}" value="{:formatAmount($row[$currency])}" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if in_array('score',Config('site.allow_currencys'))}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('score')}</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="score" value="{$row.score|formatAmount}" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if in_array('currency1',Config('site.allow_currencys'))}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('currency1')}</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="currency1" value="{$row.currency1|formatAmount}" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if in_array('currency2',Config('site.allow_currencys'))}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('currency2')}</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="currency2" value="{$row.currency2|formatAmount}" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if in_array('currency3',Config('site.allow_currencys'))}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('currency3')}</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="currency3" value="{$row.currency3|formatAmount}" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if in_array('currency4',Config('site.allow_currencys'))}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('currency4')}</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="currency4" value="{$row.currency4|formatAmount}" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if in_array('currency5',Config('site.allow_currencys'))}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('currency5')}</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="currency5" value="{$row.currency5|formatAmount}" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if in_array('currency6',Config('site.allow_currencys'))}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('currency6')}</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="currency6" value="{$row.currency6|formatAmount}" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if in_array('currency7',Config('site.allow_currencys'))}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('currency7')}</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="currency7" value="{$row.currency7|formatAmount}" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if in_array('currency8',Config('site.allow_currencys'))}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('currency8')}</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="currency8" value="{$row.currency8|formatAmount}" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if in_array('currency9',Config('site.allow_currencys'))}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('currency9')}</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="currency9" value="{$row.currency9|formatAmount}" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{/volist}
|
||||
{if Request()->action =='update'}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">推荐码</label>
|
||||
@@ -241,7 +164,7 @@
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">注册时间</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="join_time" id="join_time" value="{$row.join_time}" autocomplete="off" class="form-control" disabled>
|
||||
<input type="text" name="join_time" id="join_time" value="{$row.join_time|datetime}" autocomplete="off" class="form-control" disabled>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{layout name="layout"}
|
||||
<div class="card">
|
||||
<div class="toolbar toolbar-btn-action">
|
||||
<button id="btn_add" type="button" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" permission="app.admin.role.insert">
|
||||
<button id="btn_add" type="button" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" permission="app.admin.role.insert" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</button>
|
||||
<button id="btn_add" type="button" class="btn btn-info m-r-5" permission="app.admin.role.update">
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<div class="card-body">
|
||||
<form class="form-horizontal" method="post" action="__SELF__" role="form">
|
||||
<input type="hidden" name="id" value="{$row.id|null}" />
|
||||
<input type="hidden" name="rules" value="*"/>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">父级:</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
@@ -21,41 +22,42 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">销售额要求:</label>
|
||||
<label class="control-label col-xs-12 col-sm-2">最大消息数量:</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<div class="input-group">
|
||||
<input type="number" name="need_sales" value="{$row.need_sales|default=0}" class="form-control" min="0" data-rule="required;range(0~99999999)" />
|
||||
<div class="input-group-addon">¥</div>
|
||||
</div>
|
||||
<input type="number" name="max_send_msg_count" value="{$row.max_send_msg_count|default=10}" class="form-control" min="0" data-rule="required;range(0~99999999)" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">消费奖励:</label>
|
||||
<label class="control-label col-xs-12 col-sm-2">最大好友数量:</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="consume_reward" value="{$row.consume_reward|null}" data-rule="required;length(3~6)" class="form-control" />
|
||||
<input type="text" name="max_friend_count" value="{$row.max_friend_count|default=10}" data-rule="required;length(3~6)" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">产值奖:</label>
|
||||
<label class="control-label col-xs-12 col-sm-2">最大加入的群组数量:</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="income_reward" value="{$row.income_reward|null}" data-rule="required;length(3~6)" class="form-control" />
|
||||
<input type="text" name="max_group_join_count" value="{$row.max_group_join_count|default=10}" data-rule="required;length(3~6)" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">提现奖励:</label>
|
||||
<label class="control-label col-xs-12 col-sm-2">最大创建的群组数量:</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="withdrawl_reward" value="{$row.withdrawl_reward|null}" data-rule="required;length(3~6)" class="form-control" />
|
||||
<input type="text" name="max_gourp_create_count" value="{$row.max_gourp_create_count|default=10}" data-rule="required;length(3~6)" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
{php}
|
||||
/*
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">权限:</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<div class="table-responsive">
|
||||
<div id="treeview"></div>
|
||||
</div>
|
||||
<input type="hidden" name="rules" value="{$row.rules|null}" data-rule="required" class="form-control" />
|
||||
<input type="hidden" name="rules" value="{$row.rules|null}" data-rule="required" />
|
||||
</div>
|
||||
</div>
|
||||
*/
|
||||
{/php}
|
||||
<div class="form-group">
|
||||
<label for="extend" class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{layout name="layout"}
|
||||
<link href="/app/admin/libs/jquery-treegrid/jquery.treegrid.min.css" rel="stylesheet" />
|
||||
<link href="{:admin_path()}/libs/jquery-treegrid/jquery.treegrid.min.css" rel="stylesheet" />
|
||||
<div class="card">
|
||||
<div class="toolbar toolbar-btn-action">
|
||||
<button id="btn_add" type="button" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" permission="app.admin.rule.insert">
|
||||
<button id="btn_add" type="button" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" permission="app.admin.rule.insert" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</button>
|
||||
<button id="btn_delete" type="button" class="btn btn-danger m-r-5 btn-del" permission="app.admin.rule.delete">
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<label class="control-label col-xs-12 col-sm-2">图标</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<div class="input-group input-groupp-md">
|
||||
<span class="input-group-addon"><i class="{$row.icon|null}" id="icon-style"></i></span>
|
||||
<span class="input-group-addon"><i class="{$row.icon|null}" id="icon-style"></i>mdi mdi-</span>
|
||||
<input type="text" class="form-control" id="icon" name="icon" value="{$row.icon|null}" />
|
||||
<a href="javascript:;" class="btn-search-icon input-group-addon">搜索图标</a>
|
||||
</div>
|
||||
@@ -83,5 +83,4 @@
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{include file="common/chooseicontpl" /}
|
||||
</div>
|
||||
@@ -0,0 +1,15 @@
|
||||
{layout name="layout"}
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false" data-title="新增">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</a>
|
||||
<a id="btn_delete" class="btn btn-danger btn-del btn-disabled disabled">
|
||||
<span class="mdi mdi-window-close" aria-hidden="true"></span>删除
|
||||
</a>
|
||||
</div>
|
||||
<!-- 数据表格 -->
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<table id="table"></table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,84 @@
|
||||
{layout name="layout"}
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<form class="form-horizontal" action="__SELF__" method="post">
|
||||
<input type="hidden" name="id" value="{$row.id|null}" />
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">平台</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<select name="platform" id="platform" class="form-control">
|
||||
{volist name="osList" id="ovo"}
|
||||
<option value="{$key}" {if $row.type == $key}selected{/if}>{$ovo}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">更新方式</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<select name="type" id="type" class="form-control">
|
||||
{volist name="typeList" id="tvo"}
|
||||
<option value="{$key}" {if $row.type == $key}selected{/if}>{$tvo}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">强制更新</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<select name="force" id="force" class="form-control">
|
||||
{volist name="forceList" id="fvo"}
|
||||
<option value="{$key}" {if $row.type == $key}selected{/if}>{$fvo}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">基座版本</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="version" value="{$row.version|null}" autocomplete="off" data-rule="required" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">WGT版本</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<input type="text" name="version_wgt" value="{$row.version_wgt|null}" autocomplete="off" data-rule="required" class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">更新资源</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<div class="form-inline">
|
||||
<input id="c-source" class="form-control" size="50" name="source" type="text" value="{$row.source|htmlentities}" data-tip="请上传资源">
|
||||
<span><button type="button" id="faupload-source" class="btn btn-danger faupload" data-input-id="c-source" data-multiple="false"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-source" class="btn btn-primary fachoose" data-input-id="c-source" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">更新内容</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
<textarea name="content" class="form-control">{$row.content|null}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">状态</label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6">
|
||||
{volist name="statusList" id="rvo"}
|
||||
<label class="lyear-radio radio-primary radio-inline">
|
||||
<input type="radio" name="status" {if $row.status == $key} checked{/if} value="{$key}">
|
||||
<span>{$rvo}</span>
|
||||
</label>
|
||||
{/volist}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8 col-md-6 layer-footer">
|
||||
<button type="submit" class="btn btn-primary m-r-5">提交</button>
|
||||
<button type="reset" class="btn btn-warning m-r-5">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,6 +1,6 @@
|
||||
{layout name="layout"}
|
||||
<div class="toolbar" class="toolbar-btn-action">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增">
|
||||
<a id="btn_add" class="btn btn-primary m-r-5 btn-add" data-url="{:url('insert')}" data-title="新增" data-offset="r" data-area="80%,100%" data-anim="5" data-shade="0.3" data-move="false">
|
||||
<span class="mdi mdi-plus" aria-hidden="true"></span>新增
|
||||
</a>
|
||||
<a id="btn_edit" class="btn btn-success m-r-5 btn-disabled disabled btn-multi" data-params="status=1">
|
||||
|
||||
@@ -71,8 +71,8 @@
|
||||
<input id="c-avatar" class="form-control" size="50" name="avatar" type="hidden" value="{$row.avatar|default='__IMG__/user/avatar.svg'}" data-tip="头像">
|
||||
<ul class="list-inline clearfix lyear-uploads-pic" data-template="preview" id="p-avatar">
|
||||
<li nodelete class="col-xs-4 col-sm-3 col-md-2">
|
||||
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.upload.avatar" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.upload.attachment" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
<a class="pic-add faupload" style="height: auto;border: 0;" permission="app.admin.files.upload" id="add-pic-btn" href="#!" title="点击上传" data-input-id="c-avatar" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
<a class="pic-add fachoose" style="height: auto;border: 0;" permission="app.admin.files.list" id="choose-pic-btn" href="#!" title="选择文件" data-input-id="c-avatar" data-mimetype="image/*" data-multiple="false" data-preview-id="p-avatar"></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
'pid' => 9,
|
||||
'created_at' => '2024-09-08 22:04:42',
|
||||
'updated_at' => '2024-09-13 17:10:45',
|
||||
'href' => '/attachment/index',
|
||||
'href' => '/files/index',
|
||||
'type' => 1,
|
||||
'extend' => NULL,
|
||||
'weight' => 700,
|
||||
|
||||
@@ -16,7 +16,7 @@ use plugin\admin\app\controller\AccountController;
|
||||
use Webman\Route;
|
||||
use support\Request;
|
||||
|
||||
Route::any('/app/admin/account/captcha/{type}', [AccountController::class, 'captcha']);
|
||||
Route::any(admin_path().'/account/captcha/{type}', [AccountController::class, 'captcha']);
|
||||
|
||||
Route::fallback(function (Request $request) {
|
||||
return view('common/404');
|
||||
|
||||
+20
@@ -8084,4 +8084,24 @@ div.sp_result_area div.sp_pagination > ul > li.pageInfoBox > a:hover {
|
||||
}
|
||||
.img-sm{
|
||||
width: 64px;
|
||||
}
|
||||
/*chooseicon*/
|
||||
#chooseicon {
|
||||
margin:10px;
|
||||
}
|
||||
#chooseicon ul {
|
||||
margin:5px 0 0 0;
|
||||
}
|
||||
#chooseicon ul li{
|
||||
width:41px;height:42px;
|
||||
line-height:42px;
|
||||
border:1px solid #efefef;
|
||||
padding:1px;
|
||||
margin:1px;
|
||||
text-align: center;
|
||||
font-size:18px;
|
||||
}
|
||||
#chooseicon ul li:hover{
|
||||
border:1px solid #2c3e50;
|
||||
cursor:pointer;
|
||||
}
|
||||
@@ -18,12 +18,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/address/select',
|
||||
add_url: '/app/admin/address/insert',
|
||||
edit_url: '/app/admin/address/update',
|
||||
del_url: '/app/admin/address/delete',
|
||||
multi_url: '/app/admin/address/multi',
|
||||
//dragsort_url: '/app/admin/address/weigh',
|
||||
index_url: 'address/select',
|
||||
add_url: 'address/insert',
|
||||
edit_url: 'address/update',
|
||||
del_url: 'address/delete',
|
||||
multi_url: 'address/multi',
|
||||
//dragsort_url: 'address/weigh',
|
||||
table: 'address',
|
||||
}
|
||||
});
|
||||
|
||||
@@ -5,12 +5,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/admin/select',
|
||||
add_url: '/app/admin/admin/insert',
|
||||
edit_url: '/app/admin/admin/update',
|
||||
del_url: '/app/admin/admin/delete',
|
||||
multi_url: '/app/admin/admin/multi',
|
||||
dragsort_url: '/app/admin/admin/weigh',
|
||||
index_url: 'admin/select',
|
||||
add_url: 'admin/insert',
|
||||
edit_url: 'admin/update',
|
||||
del_url: 'admin/delete',
|
||||
multi_url: 'admin/multi',
|
||||
dragsort_url: 'admin/weigh',
|
||||
table: 'admin',
|
||||
}
|
||||
});
|
||||
@@ -79,20 +79,20 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
Table.api.bindevent(table);
|
||||
},
|
||||
update:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/avatar';
|
||||
Config['upload_url'] = 'files/avatar';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form)
|
||||
this.getRole();
|
||||
},
|
||||
insert:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/avatar';
|
||||
Config['upload_url'] = 'files/avatar';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form)
|
||||
this.getRole();
|
||||
},
|
||||
getRole:function(){
|
||||
Fast.api.ajax({
|
||||
url: "/app/admin/adminrole/select?format=select",
|
||||
url: "adminrole/select?format=select",
|
||||
dataType: "json",
|
||||
success: function (res) {
|
||||
var html = "";
|
||||
|
||||
@@ -4,12 +4,12 @@ define(['table', 'form', 'yntree'], function (Table, Form, YnTree1) {
|
||||
index: function () {
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/adminrole/select',
|
||||
add_url: '/app/admin/adminrole/insert',
|
||||
edit_url: '/app/admin/adminrole/update',
|
||||
del_url: '/app/admin/adminrole/delete',
|
||||
multi_url: '/app/admin/adminrole/multi',
|
||||
dragsort_url: '/app/admin/adminrole/weigh',
|
||||
index_url: 'adminrole/select',
|
||||
add_url: 'adminrole/insert',
|
||||
edit_url: 'adminrole/update',
|
||||
del_url: 'adminrole/delete',
|
||||
multi_url: 'adminrole/multi',
|
||||
dragsort_url: 'adminrole/weigh',
|
||||
table: 'adminrole',
|
||||
}
|
||||
});
|
||||
@@ -136,7 +136,7 @@ define(['table', 'form', 'yntree'], function (Table, Form, YnTree1) {
|
||||
var pid = $(this).data("pid");
|
||||
var id = $('[name=id]').val();
|
||||
$.ajax({
|
||||
url: "/app/admin/adminrole/tree?",
|
||||
url: 'adminrole/tree?',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
data: { id: id, pid: $(this).val() },
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
define(['table', 'upload','form','template','treegrid','bootstrap-table-treegrid'], function (Table,Upload,Form,Template) {
|
||||
define(['table', 'form','../libs/iconselect','treegrid','bootstrap-table-treegrid'], function (Table,Form,IconSelector) {
|
||||
var AdminRule = {
|
||||
//Do setup work hereAction
|
||||
index: function () {
|
||||
@@ -9,12 +9,12 @@ define(['table', 'upload','form','template','treegrid','bootstrap-table-treegrid
|
||||
var apiResults_type = ["目录","菜单","权限"];
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/AdminRule/select',
|
||||
add_url: '/app/admin/AdminRule/insert',
|
||||
edit_url: '/app/admin/AdminRule/update',
|
||||
del_url: '/app/admin/AdminRule/delete',
|
||||
multi_url: '/app/admin/AdminRule/multi',
|
||||
dragsort_url: '/app/admin/AdminRule/weigh',
|
||||
index_url: 'AdminRule/select',
|
||||
add_url: 'AdminRule/insert',
|
||||
edit_url: 'AdminRule/update',
|
||||
del_url: 'AdminRule/delete',
|
||||
multi_url: 'AdminRule/multi',
|
||||
dragsort_url: 'AdminRule/weigh',
|
||||
table: 'AdminRule',
|
||||
}
|
||||
});
|
||||
@@ -191,56 +191,10 @@ define(['table', 'upload','form','template','treegrid','bootstrap-table-treegrid
|
||||
this.bindevent();
|
||||
},
|
||||
bindevent:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/avatar';
|
||||
Config['upload_url'] = '/files/avatar';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form)
|
||||
this.initIcoselect();
|
||||
},
|
||||
initIcoselect:function(){
|
||||
|
||||
var iconlist = [];
|
||||
var iconfunc = function () {
|
||||
Layer.open({
|
||||
type: 1,
|
||||
area: ['99%', '98%'], //宽高
|
||||
content: Template('chooseicontpl', {iconlist: iconlist})
|
||||
});
|
||||
};
|
||||
|
||||
$(document).on('change keyup', "#icon", function () {
|
||||
$(this).prev().find("i").prop("class", $(this).val());
|
||||
});
|
||||
$(document).on('click', ".btn-search-icon", function () {
|
||||
if (iconlist.length == 0) {
|
||||
$.get(Config.cdnurl + "/app/admin/css/materialdesignicons.min.css", function (ret) {
|
||||
window.iconret = ret;
|
||||
// var exp = /\.mdi-(.*):before/ig;
|
||||
// var result;
|
||||
// while ((result = exp.exec(ret)) != null) {
|
||||
// iconlist.push(result[1]);
|
||||
// }
|
||||
var list = Array.from(iconret.matchAll(/mdi-(.*?)::before/g));
|
||||
for (let index = 1; index < list.length; index++) {
|
||||
//const element = list[index];
|
||||
iconlist.push(list[index][1]);
|
||||
|
||||
}
|
||||
iconfunc();
|
||||
});
|
||||
} else {
|
||||
iconfunc();
|
||||
}
|
||||
});
|
||||
$(document).on('click', '#chooseicon ul li', function () {
|
||||
$("input#icon").val('mdi mdi-' + $(this).data("font")).trigger("change");
|
||||
Layer.closeAll();
|
||||
});
|
||||
$(document).on('keyup', 'input.js-icon-search', function () {
|
||||
$("#chooseicon ul li").show();
|
||||
if ($(this).val() != '') {
|
||||
$("#chooseicon ul li:not([data-font*='" + $(this).val() + "'])").hide();
|
||||
}
|
||||
});
|
||||
IconSelector.bind($(".btn-search-icon"),$("input#icon"));
|
||||
}
|
||||
};
|
||||
return AdminRule
|
||||
|
||||
@@ -6,12 +6,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/article/select',
|
||||
add_url: '/app/admin/article/insert',
|
||||
edit_url: '/app/admin/article/update',
|
||||
del_url: '/app/admin/article/delete',
|
||||
multi_url: '/app/admin/article/multi',
|
||||
dragsort_url: '/app/admin/article/weigh',
|
||||
index_url: 'article/select',
|
||||
add_url: 'article/insert',
|
||||
edit_url: 'article/update',
|
||||
del_url: 'article/delete',
|
||||
multi_url: 'article/multi',
|
||||
dragsort_url: 'article/weigh',
|
||||
table: 'archives',
|
||||
}
|
||||
});
|
||||
@@ -83,7 +83,7 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
this.bindevent();
|
||||
},
|
||||
bindevent:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/upload';
|
||||
Config['upload_url'] = 'files/upload';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form)
|
||||
}
|
||||
|
||||
@@ -18,12 +18,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/authaddress/select',
|
||||
add_url: '/app/admin/authaddress/insert',
|
||||
edit_url: '/app/admin/authaddress/update',
|
||||
del_url: '/app/admin/authaddress/delete',
|
||||
multi_url: '/app/admin/authaddress/multi',
|
||||
//dragsort_url: '/app/admin/authaddress/weigh',
|
||||
index_url: 'authaddress/select',
|
||||
add_url: 'authaddress/insert',
|
||||
edit_url: 'authaddress/update',
|
||||
del_url: 'authaddress/delete',
|
||||
multi_url: 'authaddress/multi',
|
||||
//dragsort_url: 'authaddress/weigh',
|
||||
table: 'auth_address',
|
||||
}
|
||||
});
|
||||
|
||||
@@ -5,9 +5,9 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
window.filterData['currency'] = {value1:"money",symbol:'=','value2':''};
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/balancelog/select',
|
||||
del_url: '/app/admin/balancelog/delete?currency=money',
|
||||
multi_url: '/app/admin/balancelog/multi',
|
||||
index_url: 'balancelog/select',
|
||||
del_url: 'balancelog/delete?currency=money',
|
||||
multi_url: 'balancelog/multi',
|
||||
table: 'balancelog',
|
||||
}
|
||||
});
|
||||
@@ -110,7 +110,7 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
var currency = $(this).data('currency');
|
||||
$('#filter_currency li').removeClass('active');
|
||||
$(this).addClass('active');
|
||||
$.fn.bootstrapTable.defaults.extend.del_url = '/app/admin/balancelog/delete?currency='+currency
|
||||
$.fn.bootstrapTable.defaults.extend.del_url = 'balancelog/delete?currency='+currency
|
||||
window.filterData['currency']['value1'] = currency;
|
||||
table.bootstrapTable('selectPage', 1);
|
||||
});
|
||||
|
||||
@@ -4,12 +4,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
index: function () {
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/card/select',
|
||||
add_url: '/app/admin/card/insert',
|
||||
edit_url: '/app/admin/card/update',
|
||||
del_url: '/app/admin/card/delete',
|
||||
multi_url: '/app/admin/card/multi',
|
||||
dragsort_url: '/app/admin/card/weigh',
|
||||
index_url: 'card/select',
|
||||
add_url: 'card/insert',
|
||||
edit_url: 'card/update',
|
||||
del_url: 'card/delete',
|
||||
multi_url: 'card/multi',
|
||||
dragsort_url: 'card/weigh',
|
||||
table: 'card',
|
||||
}
|
||||
});
|
||||
@@ -72,7 +72,7 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
formatter:Table.api.formatter.operate,
|
||||
table: table, events: Table.api.events.operate,
|
||||
// formatter: function(v,row,index){
|
||||
// return '<a href="/app/admin/card/export" class="btn btn-warning btn-xs">导出</a> '+Table.api.formatter.operate.call(this,v,row,index)
|
||||
// return '<a href="'+'card/export" class="btn btn-warning btn-xs">导出</a> '+Table.api.formatter.operate.call(this,v,row,index)
|
||||
// },
|
||||
buttons:[
|
||||
{
|
||||
@@ -80,14 +80,14 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
text: '详情',
|
||||
icon: 'fa fa-list',
|
||||
classname: 'btn btn-info btn-xs btn-dialog',
|
||||
url: '/app/admin/card/detail'
|
||||
url: 'card/detail'
|
||||
},
|
||||
{
|
||||
name: 'export',
|
||||
text: '导出',
|
||||
icon: 'fa fa-list',
|
||||
classname: 'btn btn-warning btn-xs',
|
||||
url: '/app/admin/card/export',
|
||||
url: 'card/export',
|
||||
extend:' target="_blank"'
|
||||
}
|
||||
]
|
||||
@@ -111,9 +111,9 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
detail: function () {
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/cdkey/select',
|
||||
del_url: '/app/admin/cdkey/delete',
|
||||
multi_url: '/app/admin/cdkey/multi',
|
||||
index_url: 'cdkey/select',
|
||||
del_url: 'cdkey/delete',
|
||||
multi_url: 'cdkey/multi',
|
||||
table: 'cdkey',
|
||||
}
|
||||
});
|
||||
|
||||
@@ -5,12 +5,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/category/select',
|
||||
add_url: '/app/admin/category/insert',
|
||||
edit_url: '/app/admin/category/update',
|
||||
del_url: '/app/admin/category/delete',
|
||||
multi_url: '/app/admin/category/multi',
|
||||
dragsort_url: '/app/admin/category/weigh',
|
||||
index_url: 'category/select',
|
||||
add_url: 'category/insert',
|
||||
edit_url: 'category/update',
|
||||
del_url: 'category/delete',
|
||||
multi_url: 'category/multi',
|
||||
dragsort_url: 'category/weigh',
|
||||
table: 'category',
|
||||
}
|
||||
});
|
||||
@@ -73,12 +73,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
Table.api.bindevent(table);
|
||||
},
|
||||
update:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/avatar';
|
||||
Config['upload_url'] = '/files/avatar';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form)
|
||||
},
|
||||
insert:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/avatar';
|
||||
Config['upload_url'] = '/files/avatar';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form)
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ define(['form'], function (Form) {
|
||||
return false;
|
||||
})
|
||||
var form = $('#settingsform');
|
||||
Config['uploadurl'] = '/app/admin/attachment/upload';
|
||||
Config['upload_url'] = 'attach/upload';
|
||||
Form.api.bindevent(form,function(res){
|
||||
if (res.code) {
|
||||
return lightyear.notify(res.msg, 'danger', 3000, 'mdi mdi-emoticon-happy', 'top', 'center');
|
||||
@@ -70,7 +70,7 @@ define(['form'], function (Form) {
|
||||
data[$(this).attr('name')]=$(this).val();
|
||||
});
|
||||
Fast.api.ajax({
|
||||
'url':'/app/admin/config/testmail',
|
||||
'url':'config/testmail',
|
||||
'data':data,
|
||||
success:function(res){
|
||||
Fast.api.success("操作成功");
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
requirejs.config({
|
||||
//urlArgs: "v=" + (new Date()).getTime(),
|
||||
urlArgs: "v=" + (location.host == 'q.sjqqzc.top' ? (new Date()).getTime() : require.s.contexts._.config.config.version),
|
||||
baseUrl: require.s.contexts._.config.config.cdnurl+'/app/admin/js/',
|
||||
baseUrl: require.s.contexts._.config.config.cdnurl+require.s.contexts._.config.'js/',
|
||||
packages: [{
|
||||
name: 'moment',
|
||||
location: '../libs/moment',
|
||||
@@ -48,7 +48,7 @@ requirejs.config({
|
||||
},
|
||||
map: {
|
||||
'*': {
|
||||
'css': '/app/admin/libs/require-css.min.js' // or whatever the path to require-css is
|
||||
'css': require.s.contexts._.config.'libs/require-css.min.js' // or whatever the path to require-css is
|
||||
}
|
||||
},
|
||||
shim: {
|
||||
@@ -58,7 +58,7 @@ requirejs.config({
|
||||
'tagsinput': {
|
||||
deps: [
|
||||
'jquery',
|
||||
'css!/app/admin/libs/jquery-tags-input/jquery.tagsinput.min.css'
|
||||
'css!'+require.s.contexts._.config.'libs/jquery-tags-input/jquery.tagsinput.min.css'
|
||||
]
|
||||
},
|
||||
'yntree': {
|
||||
@@ -68,7 +68,7 @@ requirejs.config({
|
||||
},
|
||||
'bootstrap-select': {
|
||||
deps: [
|
||||
'css!/app/admin/libs/bootstrap-select/dist/css/bootstrap-select.min.css'
|
||||
'css!'+require.s.contexts._.config.'libs/bootstrap-select/dist/css/bootstrap-select.min.css'
|
||||
]
|
||||
},
|
||||
'bootstrap-select-lang': ['bootstrap-select'],
|
||||
@@ -131,7 +131,7 @@ requirejs.config({
|
||||
'bootstrap-datetimepicker':{
|
||||
deps: [
|
||||
'jquery',
|
||||
'css!/app/admin/libs/bootstrap-datetimepicker/style.css'
|
||||
'css!'+require.s.contexts._.config.'libs/bootstrap-datetimepicker/style.css'
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -0,0 +1,256 @@
|
||||
define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
var User = {
|
||||
//Do setup work hereAction
|
||||
index: function () {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: 'files/select',
|
||||
add_url: 'files/insert',
|
||||
edit_url: 'files/update',
|
||||
del_url: 'files/delete',
|
||||
multi_url: 'files/multi',
|
||||
dragsort_url: 'files/weigh',
|
||||
table: 'upload',
|
||||
}
|
||||
});
|
||||
|
||||
var table = $("#table");
|
||||
var tableOptions = {
|
||||
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
||||
pk: 'id',
|
||||
sortName: 'id',
|
||||
commonSearch: false,
|
||||
search: false,
|
||||
showExport: false,
|
||||
columns: [
|
||||
[
|
||||
{checkbox: true},
|
||||
{
|
||||
field: 'id',
|
||||
title: 'ID',
|
||||
sortable: true // 是否排序
|
||||
},
|
||||
{
|
||||
title: "名字",
|
||||
field: "title",
|
||||
filter: "string",
|
||||
},
|
||||
{
|
||||
title: "文件",
|
||||
field: "path",
|
||||
formatter: function (v,d) {
|
||||
if (["jpg", "jpeg", "png", "gif", "bmp", "webp", "svg"].indexOf(d.extension.toLowerCase()) !== -1) {
|
||||
return '<img src="' + Fast.api.cdnurl(v) + '" style="max-width:32px;max-height:32px;" />';
|
||||
}
|
||||
return '<a href="' + encodeURI(v) + '" target="_blank">' + escape(v) + '</a>';
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "管理员id",
|
||||
field: "admin_id",
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "用户id",
|
||||
field: "user_id",
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "文件大小",
|
||||
field: "size",
|
||||
formatter: function (v,d) {
|
||||
return User.formatSize(d.size);
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "类型",
|
||||
field: "mime_type",
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "图片宽度",
|
||||
field: "width",
|
||||
},
|
||||
{
|
||||
title: "图片高度",
|
||||
field: "height",
|
||||
},{
|
||||
title: "扩展名",
|
||||
field: "extension",
|
||||
},
|
||||
{
|
||||
title: "上传时间",
|
||||
field: "created_at",
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "引用次数",
|
||||
field: "use_count"
|
||||
},
|
||||
{
|
||||
title: "更新时间",
|
||||
field: "updated_at",
|
||||
hide: true,
|
||||
},
|
||||
{field: 'operate', title: '操作', table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
};
|
||||
// 初始化表格
|
||||
table.bootstrapTable(tableOptions);
|
||||
// 为表格绑定事件
|
||||
Table.api.bindevent(table);
|
||||
//上传
|
||||
Config['upload_url'] = 'files/insert';
|
||||
Upload.api.upload($(".plupload,.faupload"),function(){
|
||||
table.bootstrapTable('refresh');
|
||||
Fast.api.success('上传成功');
|
||||
},function(){
|
||||
console.log(this,arguments);
|
||||
|
||||
},function(){
|
||||
console.log(this,arguments);
|
||||
|
||||
});
|
||||
},
|
||||
// 格式化文件大小
|
||||
formatSize : function(value) {
|
||||
if(null == value || "" === value){
|
||||
return "0 Bytes";
|
||||
}
|
||||
let unitArr = ["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"];
|
||||
let index = 0;
|
||||
let srcSize = parseFloat(value);
|
||||
index = Math.floor(Math.log(srcSize) / Math.log(1024));
|
||||
let size =srcSize / Math.pow(1024, index);
|
||||
size = size.toFixed(2);
|
||||
return size + unitArr[index];
|
||||
},
|
||||
update:function(){
|
||||
this.bindevent();
|
||||
},
|
||||
insert:function(){
|
||||
this.bindevent();
|
||||
},
|
||||
bindevent:function(){
|
||||
Config['upload_url'] = 'files/file';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form);
|
||||
},
|
||||
list:function(){
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: 'files/select',
|
||||
add_url: 'files/insert',
|
||||
edit_url: 'files/update',
|
||||
del_url: 'files/delete',
|
||||
multi_url: 'files/multi',
|
||||
dragsort_url: 'files/weigh',
|
||||
table: 'upload',
|
||||
}
|
||||
});
|
||||
|
||||
// 选择行
|
||||
let select = function (obj) {
|
||||
let index = parent.layer.getFrameIndex(window.name);
|
||||
let callback = parent.layui.$("#layui-layer" + index).data("callback");
|
||||
callback(obj.data);
|
||||
parent.layer.close(index);
|
||||
};
|
||||
var table = $("#table");
|
||||
var tableOptions = {
|
||||
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
||||
pk: 'id',
|
||||
sortName: 'id',
|
||||
pagination: true,
|
||||
commonSearch: false,
|
||||
search: false,
|
||||
showExport: false,
|
||||
totalField: "count",
|
||||
columns: [
|
||||
[
|
||||
{checkbox: true},
|
||||
{
|
||||
field: 'id',
|
||||
title: 'ID',
|
||||
filter: "number",
|
||||
sortable: true // 是否排序
|
||||
},
|
||||
{
|
||||
title: "名字",
|
||||
field: "title",
|
||||
filter: "string",
|
||||
},
|
||||
{
|
||||
title: "文件",
|
||||
field: "path",
|
||||
filter: "string",
|
||||
formatter: function (v,d) {
|
||||
if (["jpg", "jpeg", "png", "gif", "bmp", "webp", "svg"].indexOf(d.extension.toLowerCase()) !== -1) {
|
||||
return '<img src="' + Fast.api.cdnurl(v) + '" style="max-width:32px;max-height:32px;" />';
|
||||
}
|
||||
return '<a href="' + encodeURI(v) + '" target="_blank">' + escape(v) + '</a>';
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "管理员id",
|
||||
field: "admin_id",
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "用户id",
|
||||
field: "user_id",
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "文件大小",
|
||||
field: "size",
|
||||
formatter: function (v,d) {
|
||||
return User.formatSize(d.size);
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "mime类型",
|
||||
field: "mime_type",
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
title: "图片宽度",
|
||||
field: "width",
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "图片高度",
|
||||
field: "height",
|
||||
visible: false,
|
||||
},{
|
||||
title: "扩展名",
|
||||
field: "extension",
|
||||
},
|
||||
{
|
||||
title: "上传时间",
|
||||
field: "created_at",
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "引用次数",
|
||||
field: "use_count"
|
||||
},
|
||||
{
|
||||
title: "更新时间",
|
||||
field: "updated_at",
|
||||
hide: true,
|
||||
},
|
||||
{field: 'operate', title: '操作', table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
};
|
||||
// 初始化表格
|
||||
table.bootstrapTable(tableOptions);
|
||||
// 为表格绑定事件
|
||||
Table.api.bindevent(table);
|
||||
}
|
||||
};
|
||||
return User
|
||||
});
|
||||
@@ -6,12 +6,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/gift/select',
|
||||
add_url: '/app/admin/gift/insert',
|
||||
edit_url: '/app/admin/gift/update',
|
||||
del_url: '/app/admin/gift/delete',
|
||||
multi_url: '/app/admin/gift/multi',
|
||||
//dragsort_url: '/app/admin/gift/weigh',
|
||||
index_url: 'gift/select',
|
||||
add_url: 'gift/insert',
|
||||
edit_url: 'gift/update',
|
||||
del_url: 'gift/delete',
|
||||
multi_url: 'gift/multi',
|
||||
//dragsort_url: 'gift/weigh',
|
||||
table: 'gift',
|
||||
}
|
||||
});
|
||||
@@ -94,7 +94,7 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
this.bindevent();
|
||||
},
|
||||
bindevent:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/upload';
|
||||
Config['upload_url'] = 'files/upload';
|
||||
var form = $('form');
|
||||
var that = this;
|
||||
Form.api.bindevent(form)
|
||||
|
||||
@@ -5,12 +5,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/giftorder/select',
|
||||
add_url: '/app/admin/giftorder/insert',
|
||||
edit_url: '/app/admin/giftorder/update',
|
||||
del_url: '/app/admin/giftorder/delete',
|
||||
multi_url: '/app/admin/giftorder/multi',
|
||||
//dragsort_url: '/app/admin/giftorder/weigh',
|
||||
index_url: 'giftorder/select',
|
||||
add_url: 'giftorder/insert',
|
||||
edit_url: 'giftorder/update',
|
||||
del_url: 'giftorder/delete',
|
||||
multi_url: 'giftorder/multi',
|
||||
//dragsort_url: 'giftorder/weigh',
|
||||
table: 'giftorder',
|
||||
}
|
||||
});
|
||||
|
||||
@@ -6,12 +6,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/income_record/select',
|
||||
add_url: '/app/admin/income_record/insert',
|
||||
edit_url: '/app/admin/income_record/update',
|
||||
del_url: '/app/admin/income_record/delete',
|
||||
multi_url: '/app/admin/income_record/multi',
|
||||
//dragsort_url: '/app/admin/income_record/weigh',
|
||||
index_url: 'income_record/select',
|
||||
add_url: 'income_record/insert',
|
||||
edit_url: 'income_record/update',
|
||||
del_url: 'income_record/delete',
|
||||
multi_url: 'income_record/multi',
|
||||
//dragsort_url: 'income_record/weigh',
|
||||
table: 'income_record',
|
||||
}
|
||||
});
|
||||
|
||||
@@ -98,7 +98,7 @@ define(['lightyear','multitabs', '../libs/Chart','form','bootstrap'], function (
|
||||
init: [{
|
||||
type: 'main',
|
||||
title: '首页',
|
||||
url: '/app/admin/index/'+Config.fixedpage
|
||||
url: 'index/'+Config.fixedpage
|
||||
}]
|
||||
});
|
||||
|
||||
@@ -207,7 +207,7 @@ define(['lightyear','multitabs', '../libs/Chart','form','bootstrap'], function (
|
||||
// }
|
||||
// }
|
||||
// );
|
||||
$.getJSON('/app/admin/index/money_lines',function(res){
|
||||
$.getJSON('index/money_lines',function(res){
|
||||
res = res.data;
|
||||
var labels=[];
|
||||
var withdrawl_values=[];
|
||||
@@ -248,7 +248,7 @@ define(['lightyear','multitabs', '../libs/Chart','form','bootstrap'], function (
|
||||
}
|
||||
);
|
||||
});
|
||||
$.getJSON('/app/admin/index/role_buy_lines',function(res){
|
||||
$.getJSON('index/role_buy_lines',function(res){
|
||||
res = res.data;
|
||||
var amount=[];
|
||||
var reward=[];
|
||||
|
||||
@@ -6,12 +6,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/invitecode/select',
|
||||
index_url: 'invitecode/select',
|
||||
add_url: null,
|
||||
edit_url: null,
|
||||
del_url: '/app/admin/invitecode/delete',
|
||||
del_url: 'invitecode/delete',
|
||||
multi_url: null,
|
||||
//dragsort_url: '/app/admin/product/weigh',
|
||||
//dragsort_url: 'product/weigh',
|
||||
table: 'invitecode',
|
||||
}
|
||||
});
|
||||
|
||||
@@ -6,12 +6,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/product/select',
|
||||
add_url: '/app/admin/product/insert',
|
||||
edit_url: '/app/admin/product/update',
|
||||
del_url: '/app/admin/product/delete',
|
||||
multi_url: '/app/admin/product/multi',
|
||||
//dragsort_url: '/app/admin/product/weigh',
|
||||
index_url: 'product/select',
|
||||
add_url: 'product/insert',
|
||||
edit_url: 'product/update',
|
||||
del_url: 'product/delete',
|
||||
multi_url: 'product/multi',
|
||||
//dragsort_url: 'product/weigh',
|
||||
table: 'product',
|
||||
}
|
||||
});
|
||||
@@ -117,7 +117,7 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
this.bindevent();
|
||||
},
|
||||
bindevent:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/upload';
|
||||
Config['upload_url'] = 'files/upload';
|
||||
var form = $('form');
|
||||
var that = this;
|
||||
$('[name=cycle_type]').on('change',function(){
|
||||
|
||||
@@ -8,9 +8,9 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/productorder/select',
|
||||
index_url: 'productorder/select',
|
||||
add_url: null,
|
||||
edit_url: '/app/admin/productorder/update',
|
||||
edit_url: 'productorder/update',
|
||||
del_url: null,
|
||||
multi_url: null,
|
||||
dragsort_url: null,
|
||||
@@ -91,7 +91,7 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
// name:"servers",
|
||||
// icon:"mdi mdi-account-group-outline",
|
||||
// classname:"btn btn-xs btn-info btn-dialog",
|
||||
// url:'/app/admin/workrecord/index'
|
||||
// url:'workrecord/index'
|
||||
// }
|
||||
// ]
|
||||
}
|
||||
|
||||
@@ -15,12 +15,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/questionnaire/select',
|
||||
add_url: '/app/admin/questionnaire/insert',
|
||||
edit_url: '/app/admin/questionnaire/update',
|
||||
del_url: '/app/admin/questionnaire/delete',
|
||||
multi_url: '/app/admin/questionnaire/multi',
|
||||
//dragsort_url: '/app/admin/questionnaire/weigh',
|
||||
index_url: 'questionnaire/select',
|
||||
add_url: 'questionnaire/insert',
|
||||
edit_url: 'questionnaire/update',
|
||||
del_url: 'questionnaire/delete',
|
||||
multi_url: 'questionnaire/multi',
|
||||
//dragsort_url: 'questionnaire/weigh',
|
||||
table: 'questionnaire',
|
||||
}
|
||||
});
|
||||
|
||||
@@ -7,12 +7,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/recharge/select',
|
||||
add_url: '/app/admin/recharge/insert',
|
||||
edit_url: '/app/admin/recharge/update',
|
||||
del_url: '/app/admin/recharge/delete',
|
||||
multi_url: '/app/admin/recharge/multi',
|
||||
//dragsort_url: '/app/admin/recharge/weigh',
|
||||
index_url: 'recharge/select',
|
||||
add_url: 'recharge/insert',
|
||||
edit_url: 'recharge/update',
|
||||
del_url: 'recharge/delete',
|
||||
multi_url: 'recharge/multi',
|
||||
//dragsort_url: 'recharge/weigh',
|
||||
table: 'recharge',
|
||||
}
|
||||
});
|
||||
@@ -173,7 +173,7 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
if(v){
|
||||
btn_loading.show();
|
||||
if(v.substr(0,2) == '0x'){
|
||||
$.getJSON('/app/admin/index/txid?txid='+v,function(res){
|
||||
$.getJSON('index/txid?txid='+v,function(res){
|
||||
btn_loading.hide();
|
||||
recharge.setForm({
|
||||
from:res.data.from,
|
||||
|
||||
@@ -6,12 +6,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/robot/select',
|
||||
add_url: '/app/admin/robot/insert',
|
||||
edit_url: '/app/admin/robot/update',
|
||||
del_url: '/app/admin/robot/delete',
|
||||
multi_url: '/app/admin/robot/multi',
|
||||
//dragsort_url: '/app/admin/robot/weigh',
|
||||
index_url: 'robot/select',
|
||||
add_url: 'robot/insert',
|
||||
edit_url: 'robot/update',
|
||||
del_url: 'robot/delete',
|
||||
multi_url: 'robot/multi',
|
||||
//dragsort_url: 'robot/weigh',
|
||||
table: 'robot',
|
||||
}
|
||||
});
|
||||
@@ -91,7 +91,7 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
this.bindevent();
|
||||
},
|
||||
bindevent:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/upload';
|
||||
Config['upload_url'] = 'files/upload';
|
||||
var form = $('form');
|
||||
var that = this;
|
||||
$('[name=cycle_type]').on('change',function(){
|
||||
|
||||
@@ -6,12 +6,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/robotrecord/select',
|
||||
add_url: '/app/admin/robotrecord/insert',
|
||||
edit_url: '/app/admin/robotrecord/update',
|
||||
del_url: '/app/admin/robotrecord/delete',
|
||||
multi_url: '/app/admin/robotrecord/multi',
|
||||
//dragsort_url: '/app/admin/robotrecord/weigh',
|
||||
index_url: 'robotrecord/select',
|
||||
add_url: 'robotrecord/insert',
|
||||
edit_url: 'robotrecord/update',
|
||||
del_url: 'robotrecord/delete',
|
||||
multi_url: 'robotrecord/multi',
|
||||
//dragsort_url: 'robotrecord/weigh',
|
||||
table: 'robotrecord',
|
||||
}
|
||||
});
|
||||
|
||||
@@ -4,12 +4,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
window.filterData['type'] = {value1:"page",symbol:'=','value2':''};
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/singlepage/select',
|
||||
add_url: '/app/admin/singlepage/insert',
|
||||
edit_url: '/app/admin/singlepage/update',
|
||||
del_url: '/app/admin/singlepage/delete',
|
||||
multi_url: '/app/admin/singlepage/multi',
|
||||
dragsort_url: '/app/admin/singlepage/weigh',
|
||||
index_url: 'singlepage/select',
|
||||
add_url: 'singlepage/insert',
|
||||
edit_url: 'singlepage/update',
|
||||
del_url: 'singlepage/delete',
|
||||
multi_url: 'singlepage/multi',
|
||||
dragsort_url: 'singlepage/weigh',
|
||||
table: 'archives',
|
||||
}
|
||||
});
|
||||
@@ -35,6 +35,11 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
field: "title",
|
||||
filter: "string",
|
||||
},
|
||||
{
|
||||
title: "标识",
|
||||
field: "name",
|
||||
filter: "string",
|
||||
},
|
||||
{
|
||||
title: "创建时间",
|
||||
field: "created_at"
|
||||
@@ -64,7 +69,7 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
this.bindevent();
|
||||
},
|
||||
bindevent:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/upload';
|
||||
Config['upload_url'] = 'files/upload';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form)
|
||||
}
|
||||
|
||||
@@ -9,12 +9,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/studio/select',
|
||||
add_url: '/app/admin/studio/insert',
|
||||
edit_url: '/app/admin/studio/update',
|
||||
del_url: '/app/admin/studio/delete',
|
||||
multi_url: '/app/admin/studio/multi',
|
||||
dragsort_url: '/app/admin/studio/weigh',
|
||||
index_url: 'studio/select',
|
||||
add_url: 'studio/insert',
|
||||
edit_url: 'studio/update',
|
||||
del_url: 'studio/delete',
|
||||
multi_url: 'studio/multi',
|
||||
dragsort_url: 'studio/weigh',
|
||||
table: 'studio',
|
||||
}
|
||||
});
|
||||
@@ -223,7 +223,7 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
name:"team",
|
||||
icon:"mdi mdi-account-group-outline",
|
||||
classname:"btn btn-xs btn-info btn-dialog",
|
||||
url:'/app/admin/studio/team'
|
||||
url:'studio/team'
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -236,20 +236,20 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
Table.api.bindevent(table);
|
||||
},
|
||||
update:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/avatar';
|
||||
Config['upload_url'] = '/files/avatar';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form)
|
||||
this.getRole();
|
||||
},
|
||||
insert:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/avatar';
|
||||
Config['upload_url'] = '/files/avatar';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form)
|
||||
this.getRole();
|
||||
},
|
||||
getRole:function(){
|
||||
Fast.api.ajax({
|
||||
url: "/app/admin/UserRole/select?format=tree",
|
||||
url: "UserRole/select?format=tree",
|
||||
dataType: "json",
|
||||
success: function (res) {
|
||||
Layer.closeAll();
|
||||
@@ -282,7 +282,7 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/team/select',
|
||||
index_url: 'team/select',
|
||||
add_url: null,
|
||||
edit_url: null,
|
||||
del_url: null,
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
var thali = {
|
||||
//Do setup work hereAction
|
||||
index: function () {
|
||||
window.statuskOption= Config.statusList;
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: 'thali/select',
|
||||
add_url: 'thali/insert',
|
||||
edit_url: 'thali/update',
|
||||
del_url: 'thali/delete',
|
||||
multi_url: 'thali/multi',
|
||||
//dragsort_url: 'thali/weigh',
|
||||
table: 'thali',
|
||||
}
|
||||
});
|
||||
|
||||
var table = $("#table");
|
||||
var tableOptions = {
|
||||
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
||||
pk: 'id',
|
||||
sortName: 'id',
|
||||
commonSearch: false,
|
||||
search: false,
|
||||
columns: [
|
||||
[
|
||||
{checkbox: true},
|
||||
{
|
||||
field: 'id',
|
||||
title: 'ID',
|
||||
filter: "number",
|
||||
sortable: true // 是否排序
|
||||
},
|
||||
{
|
||||
title: "名称",
|
||||
field: "title",
|
||||
filter: "string",
|
||||
},
|
||||
{
|
||||
title: "价格",
|
||||
field: "price",
|
||||
filter: "number",
|
||||
formatter:function(v){
|
||||
return Table.api.formatter.number(v)+'元';
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "原价",
|
||||
field: "org_price",
|
||||
filter: "number",
|
||||
formatter:function(v){
|
||||
return Table.api.formatter.number(v)+'元';
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "时长",
|
||||
field: "duration",
|
||||
filter: "number",
|
||||
formatter:function(v){
|
||||
return v+'天';
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "标签",
|
||||
field: "label",
|
||||
filter: "string"
|
||||
},
|
||||
{
|
||||
title: "状态",
|
||||
field: "status",
|
||||
sortable: true,
|
||||
formatter:Table.api.formatter.status,
|
||||
searchList:window.statuskOption,
|
||||
operate:false,
|
||||
filter: "select",
|
||||
filterOption:"statuskOption"
|
||||
},
|
||||
{
|
||||
title: "创建时间",
|
||||
field: "created_at",
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "更新时间",
|
||||
field: "updated_at",
|
||||
visible: false,
|
||||
},
|
||||
{field: 'operate', title: '操作', table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
};
|
||||
// 初始化表格
|
||||
table.bootstrapTable(tableOptions);
|
||||
// 为表格绑定事件
|
||||
Table.api.bindevent(table);
|
||||
},
|
||||
update:function(){
|
||||
this.bindevent();
|
||||
},
|
||||
insert:function(){
|
||||
this.bindevent();
|
||||
},
|
||||
bindevent:function(){
|
||||
Config['upload_url'] = 'files/upload';
|
||||
var form = $('form');
|
||||
var that = this;
|
||||
Form.api.bindevent(form)
|
||||
}
|
||||
};
|
||||
return thali
|
||||
});
|
||||
@@ -4,21 +4,22 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
index: function () {
|
||||
window.filterData = {
|
||||
};
|
||||
window.Lang = window.Lang ? window.Lang : Config.currency_langs;
|
||||
window.groupOption=Config.groupList;
|
||||
window.roleOption=Config.roleList;
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/user/select',
|
||||
add_url: '/app/admin/user/insert',
|
||||
edit_url: '/app/admin/user/update',
|
||||
del_url: '/app/admin/user/delete',
|
||||
multi_url: '/app/admin/user/multi',
|
||||
dragsort_url: '/app/admin/user/weigh',
|
||||
index_url: 'user/select',
|
||||
add_url: 'user/insert',
|
||||
edit_url: 'user/update',
|
||||
del_url: 'user/delete',
|
||||
multi_url: 'user/multi',
|
||||
dragsort_url: 'user/weigh',
|
||||
table: 'user',
|
||||
}
|
||||
});
|
||||
console.log(Config)
|
||||
//console.log(Config)
|
||||
var table = $("#table");
|
||||
var columns = [
|
||||
{checkbox: true},
|
||||
@@ -28,16 +29,15 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
filter: "number",
|
||||
sortable: true // 是否排序
|
||||
},
|
||||
// {
|
||||
// title: "角色",
|
||||
// field: "role_id",
|
||||
// formatter:function(v,row){
|
||||
// return row.role ? row.role.name : '用户';
|
||||
// },
|
||||
// filter: "select",
|
||||
// filterOption:"roleOption",
|
||||
// visible: false,
|
||||
// },
|
||||
{
|
||||
title: "角色",
|
||||
field: "role_id",
|
||||
formatter:function(v,row){
|
||||
return row.role ? row.role.name : '用户';
|
||||
},
|
||||
filter: "select",
|
||||
filterOption:"roleOption"
|
||||
},
|
||||
{
|
||||
title: "昵称",
|
||||
field: "nickname"
|
||||
@@ -102,7 +102,7 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
name:"team",
|
||||
icon:"mdi mdi-account-group-outline",
|
||||
classname:"btn btn-xs btn-info btn-dialog",
|
||||
url:'/app/admin/user/team'
|
||||
url:'user/team'
|
||||
}
|
||||
]
|
||||
});
|
||||
@@ -120,20 +120,20 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
Table.api.bindevent(table);
|
||||
},
|
||||
update:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/avatar';
|
||||
Config['upload_url'] = '/files/avatar';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form)
|
||||
this.getRole();
|
||||
},
|
||||
insert:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/avatar';
|
||||
Config['upload_url'] = '/files/avatar';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form)
|
||||
this.getRole();
|
||||
},
|
||||
getRole:function(){
|
||||
Fast.api.ajax({
|
||||
url: "/app/admin/UserRole/select?format=tree",
|
||||
url: "UserRole/select?format=tree",
|
||||
dataType: "json",
|
||||
success: function (res) {
|
||||
Layer.closeAll();
|
||||
@@ -166,7 +166,7 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/team/select',
|
||||
index_url: 'team/select',
|
||||
add_url: null,
|
||||
edit_url: null,
|
||||
del_url: null,
|
||||
|
||||
@@ -4,12 +4,12 @@ define(['table','form','yntree'], function (Table,Form,YnTree1) {
|
||||
index: function () {
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/userrole/select',
|
||||
add_url: '/app/admin/userrole/insert',
|
||||
edit_url: '/app/admin/userrole/update',
|
||||
del_url: '/app/admin/userrole/delete',
|
||||
multi_url: '/app/admin/userrole/multi',
|
||||
dragsort_url: '/app/admin/userrole/weigh',
|
||||
index_url: 'userrole/select',
|
||||
add_url: 'userrole/insert',
|
||||
edit_url: 'userrole/update',
|
||||
del_url: 'userrole/delete',
|
||||
multi_url: 'userrole/multi',
|
||||
dragsort_url: 'userrole/weigh',
|
||||
table: 'userrole',
|
||||
}
|
||||
});
|
||||
@@ -41,23 +41,23 @@ define(['table','form','yntree'], function (Table,Form,YnTree1) {
|
||||
filter: "string",
|
||||
},
|
||||
{
|
||||
field: 'need_sales',
|
||||
title: '销售额',
|
||||
field: 'max_send_msg_count',
|
||||
title: '最大消息数量',
|
||||
filter: "number",
|
||||
},
|
||||
{
|
||||
field: 'consume_reward',
|
||||
title: '消费奖励',
|
||||
field: 'max_friend_count',
|
||||
title: '最大好友数量',
|
||||
filter: "number",
|
||||
},
|
||||
{
|
||||
field: 'income_reward',
|
||||
title: '产值奖',
|
||||
field: 'max_group_join_count',
|
||||
title: '群组加入限制',
|
||||
filter: "number",
|
||||
},
|
||||
{
|
||||
field: 'withdrawl_reward',
|
||||
title: '提现奖励',
|
||||
field: 'max_gourp_create_count',
|
||||
title: '群组创建限制',
|
||||
filter: "number",
|
||||
},
|
||||
{
|
||||
@@ -134,7 +134,7 @@ define(['table','form','yntree'], function (Table,Form,YnTree1) {
|
||||
// return false;
|
||||
// }
|
||||
$.ajax({
|
||||
url: "/app/admin/userrole/tree",
|
||||
url: "userrole/tree",
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
data: {id: id, pid: $(this).val()},
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
define(['table', 'upload','form','template','treegrid','bootstrap-table-treegrid'], function (Table,Upload,Form,Template) {
|
||||
define(['table', 'form','../libs/iconselect','treegrid','bootstrap-table-treegrid'], function (Table,Form,IconSelector) {
|
||||
var AdminRule = {
|
||||
//Do setup work hereAction
|
||||
index: function () {
|
||||
@@ -9,12 +9,12 @@ define(['table', 'upload','form','template','treegrid','bootstrap-table-treegrid
|
||||
var apiResults_type = ["目录","菜单","权限"];
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/UserRule/select',
|
||||
add_url: '/app/admin/UserRule/insert',
|
||||
edit_url: '/app/admin/UserRule/update',
|
||||
del_url: '/app/admin/UserRule/delete',
|
||||
multi_url: '/app/admin/UserRule/multi',
|
||||
dragsort_url: '/app/admin/UserRule/weigh',
|
||||
index_url: 'UserRule/select',
|
||||
add_url: 'UserRule/insert',
|
||||
edit_url: 'UserRule/update',
|
||||
del_url: 'UserRule/delete',
|
||||
multi_url: 'UserRule/multi',
|
||||
dragsort_url: 'UserRule/weigh',
|
||||
table: 'UserRule',
|
||||
}
|
||||
});
|
||||
@@ -183,15 +183,15 @@ define(['table', 'upload','form','template','treegrid','bootstrap-table-treegrid
|
||||
this.bindevent();
|
||||
},
|
||||
bindevent:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/avatar';
|
||||
Config['upload_url'] = '/files/avatar';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form)
|
||||
this.getRole();
|
||||
this.initIcoselect();
|
||||
IconSelector.bind($(".btn-search-icon"),$("input#icon"));
|
||||
},
|
||||
getRole:function(){
|
||||
Fast.api.ajax({
|
||||
url: "/app/admin/UserRole/select?format=tree",
|
||||
url: "UserRole/select?format=tree",
|
||||
dataType: "json",
|
||||
success: function (res) {
|
||||
Layer.closeAll();
|
||||
@@ -208,52 +208,6 @@ define(['table', 'upload','form','template','treegrid','bootstrap-table-treegrid
|
||||
$('#roles').append(html);
|
||||
}
|
||||
});
|
||||
},
|
||||
initIcoselect:function(){
|
||||
|
||||
var iconlist = [];
|
||||
var iconfunc = function () {
|
||||
Layer.open({
|
||||
type: 1,
|
||||
area: ['99%', '98%'], //宽高
|
||||
content: Template('chooseicontpl', {iconlist: iconlist})
|
||||
});
|
||||
};
|
||||
|
||||
$(document).on('change keyup', "#icon", function () {
|
||||
$(this).prev().find("i").prop("class", $(this).val());
|
||||
});
|
||||
$(document).on('click', ".btn-search-icon", function () {
|
||||
if (iconlist.length == 0) {
|
||||
$.get(Config.cdnurl + "/app/admin/css/materialdesignicons.min.css", function (ret) {
|
||||
window.iconret = ret;
|
||||
// var exp = /\.mdi-(.*):before/ig;
|
||||
// var result;
|
||||
// while ((result = exp.exec(ret)) != null) {
|
||||
// iconlist.push(result[1]);
|
||||
// }
|
||||
var list = Array.from(iconret.matchAll(/mdi-(.*?):before/g));
|
||||
for (let index = 1; index < list.length; index++) {
|
||||
//const element = list[index];
|
||||
iconlist.push(list[index][1]);
|
||||
|
||||
}
|
||||
iconfunc();
|
||||
});
|
||||
} else {
|
||||
iconfunc();
|
||||
}
|
||||
});
|
||||
$(document).on('click', '#chooseicon ul li', function () {
|
||||
$("input#icon").val('mdi mdi-' + $(this).data("font")).trigger("change");
|
||||
Layer.closeAll();
|
||||
});
|
||||
$(document).on('keyup', 'input.js-icon-search', function () {
|
||||
$("#chooseicon ul li").show();
|
||||
if ($(this).val() != '') {
|
||||
$("#chooseicon ul li:not([data-font*='" + $(this).val() + "'])").hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
return AdminRule
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
var Version = {
|
||||
//Do setup work hereAction
|
||||
index: function () {
|
||||
window.filterData = {
|
||||
};
|
||||
window.statusOption = Config.statusList;
|
||||
window.osList = Config.osList;
|
||||
window.forceList = Config.forceList;
|
||||
window.typeList = Config.typeList;
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: 'version/select',
|
||||
add_url: 'version/insert',
|
||||
edit_url: 'version/update',
|
||||
del_url: 'version/delete',
|
||||
multi_url: 'version/multi',
|
||||
dragsort_url: 'version/weigh',
|
||||
table: 'version',
|
||||
}
|
||||
});
|
||||
|
||||
var table = $("#table");
|
||||
var tableOptions = {
|
||||
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
||||
pk: 'id',
|
||||
sortName: 'id',
|
||||
commonSearch: false,
|
||||
search: false,
|
||||
columns: [
|
||||
[
|
||||
{checkbox: true},
|
||||
{
|
||||
field: 'id',
|
||||
title: 'ID',
|
||||
filter: "number",
|
||||
sortable: true // 是否排序
|
||||
},
|
||||
{
|
||||
title: "platform",
|
||||
field: "platform",
|
||||
filter: "select",
|
||||
filterOption:"osList",
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "类型",
|
||||
field: "type",
|
||||
filter: "select",
|
||||
filterOption:"typeList"
|
||||
},
|
||||
{
|
||||
title: "类型",
|
||||
field: "version",
|
||||
filter: "string"
|
||||
},
|
||||
{
|
||||
title: "WGT类型",
|
||||
field: "version_wgt",
|
||||
filter: "int"
|
||||
},
|
||||
{
|
||||
title: "强制更新",
|
||||
field: "force",
|
||||
filter: "select",
|
||||
filterOption:"typeList"
|
||||
},
|
||||
{
|
||||
title: "创建时间",
|
||||
field: "created_at"
|
||||
},
|
||||
{
|
||||
title: "更新时间",
|
||||
field: "updated_at",
|
||||
formatter:Table.api.formatter.datetime,
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "状态",
|
||||
field: "status",
|
||||
formatter: Table.api.formatter.switch,
|
||||
filter:'select',
|
||||
filterOption:'statusOption'
|
||||
},
|
||||
{
|
||||
field: 'operate', title: '操作',
|
||||
table: table, events: Table.api.events.operate,
|
||||
formatter: Table.api.formatter.operate
|
||||
}
|
||||
]
|
||||
]
|
||||
};
|
||||
// 初始化表格
|
||||
table.bootstrapTable(tableOptions);
|
||||
// 为表格绑定事件
|
||||
Table.api.bindevent(table);
|
||||
},
|
||||
update:function(){
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form);
|
||||
},
|
||||
insert:function(){
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form);
|
||||
}
|
||||
};
|
||||
return Version
|
||||
});
|
||||
@@ -7,12 +7,12 @@ define(['table', 'upload','form','qrcode'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/withdrawl/select',
|
||||
add_url: '/app/admin/withdrawl/insert',
|
||||
edit_url: '/app/admin/withdrawl/update',
|
||||
//del_url: '/app/admin/withdrawl/delete',
|
||||
multi_url: '/app/admin/withdrawl/multi',
|
||||
//dragsort_url: '/app/admin/withdrawl/weigh',
|
||||
index_url: 'withdrawl/select',
|
||||
add_url: 'withdrawl/insert',
|
||||
edit_url: 'withdrawl/update',
|
||||
//del_url: 'withdrawl/delete',
|
||||
multi_url: 'withdrawl/multi',
|
||||
//dragsort_url: 'withdrawl/weigh',
|
||||
table: 'withdrawl',
|
||||
}
|
||||
});
|
||||
|
||||
@@ -10,11 +10,11 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/workrecord/select',
|
||||
index_url: 'workrecord/select',
|
||||
add_url: null,
|
||||
edit_url: '/app/admin/workrecord/update',
|
||||
edit_url: 'workrecord/update',
|
||||
del_url: null,
|
||||
multi_url: '/app/admin/workrecord/multi',
|
||||
multi_url: 'workrecord/multi',
|
||||
dragsort_url: null,
|
||||
table: 'work_record',
|
||||
}
|
||||
@@ -69,166 +69,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
Table.api.bindevent(table);
|
||||
},
|
||||
update:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/avatar';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form)
|
||||
this.getRole();
|
||||
},
|
||||
insert:function(){
|
||||
Config['uploadurl'] = '/app/admin/attachment/avatar';
|
||||
var form = $('form');
|
||||
Form.api.bindevent(form)
|
||||
this.getRole();
|
||||
},
|
||||
getRole:function(){
|
||||
Fast.api.ajax({
|
||||
url: "/app/admin/UserRole/select?format=tree",
|
||||
dataType: "json",
|
||||
success: function (res) {
|
||||
Layer.closeAll();
|
||||
var html = "";
|
||||
var selected=$('#roles').data('value');
|
||||
for (let index = 0; index < res.data.length; index++) {
|
||||
const element = res.data[index];
|
||||
if(selected == element.id){
|
||||
html+='<option value="'+element.id+'" selected>'+element.name+'</option>';
|
||||
}else{
|
||||
html+='<option value="'+element.id+'">'+element.name+'</option>';
|
||||
}
|
||||
}
|
||||
$('#roles').append(html);
|
||||
}
|
||||
});
|
||||
},
|
||||
team:function(){
|
||||
window.filterData = {
|
||||
"user_id":{value1:Fast.api.query('ids'),symbol:'=','value2':''},
|
||||
'type' : {value1:'child',symbol:'=','value2':''}
|
||||
};
|
||||
|
||||
$('.nav-tabs li').on('click',function(){
|
||||
$('.nav-tabs li').removeClass('active');
|
||||
$(this).addClass('active');
|
||||
window.filterData['type'] = {value1:$(this).data('type'),symbol:'=','value2':''};
|
||||
table.bootstrapTable('selectPage', 1);
|
||||
});
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/team/select',
|
||||
add_url: null,
|
||||
edit_url: null,
|
||||
del_url: null,
|
||||
multi_url: null,
|
||||
dragsort_url: null,
|
||||
table: 'team',
|
||||
}
|
||||
});
|
||||
|
||||
var table = $("#table");
|
||||
var tableOptions = {
|
||||
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
||||
pk: 'id',
|
||||
sortName: 'id',
|
||||
commonSearch: false,
|
||||
search: false,
|
||||
columns: [
|
||||
[
|
||||
{checkbox: true},
|
||||
{
|
||||
title: "深度",
|
||||
field: "depth",
|
||||
},
|
||||
{
|
||||
field: 'id',
|
||||
title: 'ID',
|
||||
filter: "number",
|
||||
sortable: true // 是否排序
|
||||
},
|
||||
{
|
||||
title: "角色",
|
||||
field: "role",
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "用户名",
|
||||
field: "username",
|
||||
filter: "string",
|
||||
},
|
||||
// {
|
||||
// title: "等级",
|
||||
// field: "level",
|
||||
// visible: false,
|
||||
// },
|
||||
{
|
||||
title: "余额",
|
||||
field: "money",
|
||||
formatter:Table.api.formatter.number,
|
||||
sortable: true,
|
||||
//visible: false,
|
||||
},
|
||||
{
|
||||
title: "积分",
|
||||
field: "score",
|
||||
sortable: true,
|
||||
formatter:Table.api.formatter.number
|
||||
},
|
||||
{
|
||||
title: "待结算",
|
||||
field: "currency1",
|
||||
formatter:Table.api.formatter.number
|
||||
},
|
||||
{
|
||||
title: "失效算力",
|
||||
field: "currency2",
|
||||
sortable: true,
|
||||
formatter:Table.api.formatter.number
|
||||
},
|
||||
{
|
||||
title: "登录时间",
|
||||
field: "last_time",
|
||||
formatter:Table.api.formatter.datetime,
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "登录ip",
|
||||
field: "last_ip",
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "注册时间",
|
||||
field: "join_time",
|
||||
formatter:Table.api.formatter.datetime,
|
||||
filter:'datetime'
|
||||
},
|
||||
{
|
||||
title: "注册ip",
|
||||
field: "join_ip",
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "创建时间",
|
||||
field: "created_at",
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "更新时间",
|
||||
field: "updated_at",
|
||||
formatter:Table.api.formatter.datetime,
|
||||
visible: false,
|
||||
},
|
||||
{
|
||||
title: "状态",
|
||||
field: "status",
|
||||
formatter: Table.api.formatter.switch
|
||||
}
|
||||
]
|
||||
]
|
||||
};
|
||||
// 初始化表格
|
||||
table.bootstrapTable(tableOptions);
|
||||
// 为表格绑定事件
|
||||
Table.api.bindevent(table);
|
||||
}
|
||||
};
|
||||
return User
|
||||
|
||||
@@ -9,12 +9,12 @@ define(['table', 'upload','form'], function (Table,Upload,Form) {
|
||||
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: '/app/admin/xuanchuan/select',
|
||||
add_url: '/app/admin/xuanchuan/insert',
|
||||
edit_url: '/app/admin/xuanchuan/update',
|
||||
del_url: '/app/admin/xuanchuan/delete',
|
||||
multi_url: '/app/admin/xuanchuan/multi',
|
||||
dragsort_url: '/app/admin/xuanchuan/weigh',
|
||||
index_url: 'xuanchuan/select',
|
||||
add_url: 'xuanchuan/insert',
|
||||
edit_url: 'xuanchuan/update',
|
||||
del_url: 'xuanchuan/delete',
|
||||
multi_url: 'xuanchuan/multi',
|
||||
dragsort_url: 'xuanchuan/weigh',
|
||||
table: 'user_xuanchuan',
|
||||
}
|
||||
});
|
||||
|
||||
@@ -106,15 +106,20 @@ define(['jquery', 'bootstrap', 'layer','lightyear'], function ($, undefined, Lay
|
||||
Fast.events.onAjaxError(ret, error);
|
||||
}
|
||||
}, options);
|
||||
options.url = Fast.api.fixurl(options.url);
|
||||
return $.ajax(options);
|
||||
},
|
||||
//修复URL
|
||||
fixurl: function (url) {
|
||||
if (url.substr(0, 1) !== "/") {
|
||||
var r = new RegExp('^(?:[a-z]+:)?//', 'i');
|
||||
if (!r.test(url)) {
|
||||
url = Config.moduleurl + "/" + url;
|
||||
}
|
||||
if (url.substr(0, 1) == "/") {
|
||||
return url;
|
||||
}
|
||||
if (url.substr(0, 4) == "http") {
|
||||
return url;
|
||||
}
|
||||
var r = new RegExp('^(?:[a-z]+:)?//', 'i');
|
||||
if (!r.test(url)) {
|
||||
url = Config.moduleurl + "/" + url;
|
||||
}
|
||||
return url;
|
||||
},
|
||||
@@ -148,12 +153,16 @@ define(['jquery', 'bootstrap', 'layer','lightyear'], function ($, undefined, Lay
|
||||
},
|
||||
//打开一个弹出窗口
|
||||
open: function (url, title, options) {
|
||||
if(options && options.area && (typeof options.area == 'string' && options.area.indexOf(','))){
|
||||
options.area = options.area.split(',');
|
||||
}
|
||||
title = options && options.title ? options.title : (title ? title : "");
|
||||
url = Fast.api.fixurl(url);
|
||||
url = url + (url.indexOf("?") > -1 ? "&" : "?") + "dialog=1";
|
||||
//var area = Fast.config.openArea != undefined ? Fast.config.openArea : [$(window).width() > 800 ? '800px' : '95%', $(window).height() > 600 ? '600px' : '95%'];
|
||||
|
||||
var area = Fast.config.openArea != undefined ? Fast.config.openArea : ['95%', '90%'];
|
||||
var area = Fast.config.openArea != undefined ? Fast.config.openArea : (options.area || ['95%', '90%']);
|
||||
//console.log(options,area)
|
||||
options = $.extend({
|
||||
type: 2,
|
||||
title: title,
|
||||
@@ -332,7 +341,7 @@ define(['jquery', 'bootstrap', 'layer','lightyear'], function ($, undefined, Lay
|
||||
return self == parent;
|
||||
},
|
||||
isMainIframe:function(){
|
||||
return parent.location.pathname.toLocaleLowerCase() == '/app/admin/index/index';
|
||||
return parent.location.pathname.toLocaleLowerCase() == Config.admin_path+'/index/index';
|
||||
},
|
||||
isPopIframe:function(){
|
||||
if(Fast.isTopWindow()){
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,29 +0,0 @@
|
||||
{
|
||||
"name": "layer",
|
||||
"main": "src/layer.js",
|
||||
"version": "3.5.3",
|
||||
"homepage": "https://github.com/sentsin/layer",
|
||||
"authors": [
|
||||
"sentsin <xu@sentsin.com>"
|
||||
],
|
||||
"description": "弹窗组件",
|
||||
"moduleType": [
|
||||
"amd",
|
||||
"globals"
|
||||
],
|
||||
"keywords": [
|
||||
"layer",
|
||||
"layui",
|
||||
"dialog"
|
||||
],
|
||||
"license": "MIT",
|
||||
"_release": "3.5.3",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v3.5.3",
|
||||
"commit": "7ef901632a7d21f37692ae5d4f9e671c7d57ce47"
|
||||
},
|
||||
"_source": "https://github.com/karsonzhang/fastadmin-layer.git",
|
||||
"_target": "~3.5.1",
|
||||
"_originalSource": "fastadmin-layer"
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
1.8.5/
|
||||
*.iml
|
||||
.idea/
|
||||
.ipr
|
||||
.iws
|
||||
*~
|
||||
~*
|
||||
*.diff
|
||||
*.patch
|
||||
*.bak
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
.svn/
|
||||
*.swp
|
||||
.nojekyll
|
||||
.project
|
||||
.settings/
|
||||
node_modules/
|
||||
_site/
|
||||
.npmignore
|
||||
release/
|
||||
skin/moon/
|
||||
src/skin/moon/
|
||||
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2016 layui
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,15 +0,0 @@
|
||||
|
||||
## 概要
|
||||
layer 是一款历来都备受青睐的 Web 弹出层组件,具备全方位的解决方案,面向的是各个水平段的开发人员,您的页面会轻松地拥有丰富友好的操作体验。在与同类组件的比较中,layer 会更能被开发者所选择。这不仅是凭「脸」取胜,而是它尽可能地在以更少的代码展现更强健的功能,且格外注重性能的提升、易用和实用性,layer 甚至还兼容了包括 IE6 在内的所有主流浏览器。其数量可观的基础属性和方法,使得您可以自定义太多您需要的风格,每一种弹层模式各具特色,广受欢迎。当然,这种「王婆卖瓜」的陈述听起来总是有点难受,因此你需要进一步了解她是否真的如你所愿。
|
||||
|
||||
[文档与演示](http://layer.layui.com/)
|
||||
|
||||
## 愿景
|
||||
成为网页弹出层的首先交互方案
|
||||
|
||||
## 现状
|
||||
因着数年的坚持维护,已被运用在不计其数 Web 平台。几乎所处可见,其中还不乏众多知名大型网站。layer 已被国内乃至全世界至少数十万的开发者所使用过。
|
||||
|
||||
|
||||
## 相关
|
||||
[官网](http://layer.layui.com/)
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
"name": "layer",
|
||||
"main": "src/layer.js",
|
||||
"version": "3.5.3",
|
||||
"homepage": "https://github.com/sentsin/layer",
|
||||
"authors": [
|
||||
"sentsin <xu@sentsin.com>"
|
||||
],
|
||||
"description": "弹窗组件",
|
||||
"moduleType": [
|
||||
"amd",
|
||||
"globals"
|
||||
],
|
||||
"keywords": [
|
||||
"layer",
|
||||
"layui",
|
||||
"dialog"
|
||||
],
|
||||
"license": "MIT"
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -1,2 +0,0 @@
|
||||
/*! layer mobile-v2.0.0 Web 通用弹出层组件 MIT License http://layer.layui.com/mobile By 贤心 */
|
||||
;!function(e){"use strict";var t=document,n="querySelectorAll",i="getElementsByClassName",a=function(e){return t[n](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:"scale"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var n in e)t[n]=e[n];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener("click",function(e){t.call(this,e)},!1)};var r=0,o=["layui-m-layer"],c=function(e){var t=this;t.config=l.extend(e),t.view()};c.prototype.view=function(){var e=this,n=e.config,s=t.createElement("div");e.id=s.id=o[0]+r,s.setAttribute("class",o[0]+" "+o[0]+(n.type||0)),s.setAttribute("index",r);var l=function(){var e="object"==typeof n.title;return n.title?'<h3 style="'+(e?n.title[1]:"")+'">'+(e?n.title[0]:n.title)+"</h3>":""}(),c=function(){"string"==typeof n.btn&&(n.btn=[n.btn]);var e,t=(n.btn||[]).length;return 0!==t&&n.btn?(e='<span yes type="1">'+n.btn[0]+"</span>",2===t&&(e='<span no type="0">'+n.btn[1]+"</span>"+e),'<div class="layui-m-layerbtn">'+e+"</div>"):""}();if(n.fixed||(n.top=n.hasOwnProperty("top")?n.top:100,n.style=n.style||"",n.style+=" top:"+(t.body.scrollTop+n.top)+"px"),2===n.type&&(n.content='<i></i><i class="layui-m-layerload"></i><i></i><p>'+(n.content||"")+"</p>"),n.skin&&(n.anim="up"),"msg"===n.skin&&(n.shade=!1),s.innerHTML=(n.shade?"<div "+("string"==typeof n.shade?'style="'+n.shade+'"':"")+' class="layui-m-layershade"></div>':"")+'<div class="layui-m-layermain" '+(n.fixed?"":'style="position:static;"')+'><div class="layui-m-layersection"><div class="layui-m-layerchild '+(n.skin?"layui-m-layer-"+n.skin+" ":"")+(n.className?n.className:"")+" "+(n.anim?"layui-m-anim-"+n.anim:"")+'" '+(n.style?'style="'+n.style+'"':"")+">"+l+'<div class="layui-m-layercont">'+n.content+"</div>"+c+"</div></div></div>",!n.type||2===n.type){var d=t[i](o[0]+n.type),y=d.length;y>=1&&layer.close(d[0].getAttribute("index"))}document.body.appendChild(s);var u=e.elem=a("#"+e.id)[0];n.success&&n.success(u),e.index=r++,e.action(n,u)},c.prototype.action=function(e,t){var n=this;e.time&&(l.timer[n.index]=setTimeout(function(){layer.close(n.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),layer.close(n.index)):e.yes?e.yes(n.index):layer.close(n.index)};if(e.btn)for(var s=t[i]("layui-m-layerbtn")[0].children,r=s.length,o=0;o<r;o++)l.touch(s[o],a);if(e.shade&&e.shadeClose){var c=t[i]("layui-m-layershade")[0];l.touch(c,function(){layer.close(n.index,e.end)})}e.end&&(l.end[n.index]=e.end)},e.layer={v:"2.0",index:r,open:function(e){var t=new c(e||{});return t.index},close:function(e){var n=a("#"+o[0]+e)[0];n&&(n.innerHTML="",t.body.removeChild(n),clearTimeout(l.timer[e]),delete l.timer[e],"function"==typeof l.end[e]&&l.end[e](),delete l.end[e])},closeAll:function(){for(var e=t[i](o[0]),n=0,a=e.length;n<a;n++)layer.close(0|e[0].getAttribute("index"))}},"function"==typeof define?define(function(){return layer}):function(){var e=document.scripts,n=e[e.length-1],i=n.src,a=i.substring(0,i.lastIndexOf("/")+1);n.getAttribute("merge")||document.head.appendChild(function(){var e=t.createElement("link");return e.href=a+"need/layer.css?2.0",e.type="text/css",e.rel="styleSheet",e.id="layermcss",e}())}()}(window);
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 5.8 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 11 KiB |
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 5.7 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 701 B |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user