This commit is contained in:
2025-12-24 16:59:05 +08:00
parent b52a51c09b
commit b68946fe79
218 changed files with 10790 additions and 3878 deletions
@@ -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);
}
}
+1 -1
View File
@@ -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';
+2 -1
View File
@@ -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
+2 -2
View File
@@ -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 -1
View File
@@ -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 -1
View File
@@ -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">
+2 -2
View File
@@ -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 -1
View File
@@ -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">
+2 -2
View File
@@ -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">
+1 -2
View File
@@ -83,5 +83,4 @@
</div>
</form>
</div>
</div>
{include file="common/chooseicontpl" /}
</div>
+1 -1
View File
@@ -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">
+2 -2
View File
@@ -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 -1
View File
@@ -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 -1
View File
@@ -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>
+2 -2
View File
@@ -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>
+1 -1
View File
@@ -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>
+19
View File
@@ -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>
+11
View File
@@ -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>
+86
View File
@@ -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 -1
View File
@@ -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 -1
View File
@@ -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 -1
View File
@@ -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 -1
View File
@@ -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 -1
View File
@@ -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 -1
View File
@@ -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 -1
View File
@@ -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">
+19
View File
@@ -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>
+50
View File
@@ -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 -1
View File
@@ -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">
+18 -95
View File
@@ -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 -1
View File
@@ -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">
+14 -12
View File
@@ -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">
+2 -2
View File
@@ -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">
+2 -3
View File
@@ -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>
+15
View File
@@ -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>
+84
View File
@@ -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 -1
View File
@@ -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">
+2 -2
View File
@@ -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>