[更新]修正文件上传后缀检查,同步更新后台UI

This commit is contained in:
Anyon 2017-09-27 16:22:16 +08:00
parent ac1d208534
commit 7530c06b6a
13 changed files with 803 additions and 821 deletions

View File

@ -70,9 +70,12 @@ class Auth extends BasicAdmin
$checked = Db::name('SystemAuthNode')->where(['auth' => $auth_id])->column('node'); $checked = Db::name('SystemAuthNode')->where(['auth' => $auth_id])->column('node');
foreach ($nodes as $key => &$node) { foreach ($nodes as $key => &$node) {
$node['checked'] = in_array($node['node'], $checked); $node['checked'] = in_array($node['node'], $checked);
if (empty($node['is_auth']) && substr_count($node['node'], '/') > 1) {
unset($nodes[$key]);
} }
$all = $this->_apply_filter(ToolsService::arr2tree($nodes, 'node', 'pnode', '_sub_')); }
$this->success('获取节点成功!', '', $all); $allnode = $this->_apply_filter(ToolsService::arr2tree($nodes, 'node', 'pnode', '_sub_'));
$this->success('获取节点成功!', '', $allnode);
} }
/** /**
@ -101,6 +104,8 @@ class Auth extends BasicAdmin
foreach ($nodes as $key => &$node) { foreach ($nodes as $key => &$node) {
if (!empty($node['_sub_']) && is_array($node['_sub_'])) { if (!empty($node['_sub_']) && is_array($node['_sub_'])) {
$node['_sub_'] = $this->_apply_filter($node['_sub_'], $level + 1); $node['_sub_'] = $this->_apply_filter($node['_sub_'], $level + 1);
} elseif ($level < 3) {
unset($nodes[$key]);
} }
} }
return $nodes; return $nodes;
@ -151,7 +156,7 @@ class Auth extends BasicAdmin
{ {
if (DataService::update($this->table)) { if (DataService::update($this->table)) {
$id = $this->request->post('id'); $id = $this->request->post('id');
Db::name('SystemAuthNode')->where(['auth' => $id])->delete(); Db::name('SystemAuthNode')->where('auth', $id)->delete();
$this->success("权限删除成功!", ''); $this->success("权限删除成功!", '');
} }
$this->error("权限删除失败,请稍候再试!"); $this->error("权限删除失败,请稍候再试!");

View File

@ -60,7 +60,7 @@ class Config extends BasicAdmin
public function file() public function file()
{ {
$this->title = '文件存储配置'; $this->title = '文件存储配置';
$alert = ['type' => 'success', 'title' => '操作提示', 'content' => '文件引擎参数影响全局文件上传功能请勿随意修改!']; $alert = ['type' => 'success', 'title' => '操作提示', 'content' => '文件引擎参数影响全局文件上传功能,请勿随意修改!'];
$this->assign('alert', $alert); $this->assign('alert', $alert);
return $this->index(); return $this->index();
} }

View File

@ -63,7 +63,7 @@ class Index extends BasicAdmin
continue; continue;
// 菜单链接不为空时,判断登录状态及权限验证 // 菜单链接不为空时,判断登录状态及权限验证
elseif ($menu['url'] !== '#') : elseif ($menu['url'] !== '#') :
$node = join('/', array_slice(explode('/', preg_replace('/[\W]/', '/', $menu['url'])), 0, 3)); $node = join('/', array_slice(explode('/', preg_replace('/[\W^_]/', '/', $menu['url'])), 0, 3));
$menu['url'] = url($menu['url']); $menu['url'] = url($menu['url']);
// 节点需要验证验证,未登录时移除此菜单 // 节点需要验证验证,未登录时移除此菜单
if (isset($nodes[$node]) && $nodes[$node]['is_login'] && !session('user')) : if (isset($nodes[$node]) && $nodes[$node]['is_login'] && !session('user')) :

View File

@ -20,7 +20,7 @@ use think\Db;
/** /**
* 系统日志管理 * 系统日志管理
* Class Log * Class User
* @package app\admin\controller * @package app\admin\controller
* @author Anyon <zoujingli@qq.com> * @author Anyon <zoujingli@qq.com>
* @date 2017/02/15 18:12 * @date 2017/02/15 18:12

View File

@ -83,7 +83,7 @@ class Menu extends BasicAdmin
{ {
if ($this->request->isGet()) { if ($this->request->isGet()) {
// 上级菜单处理 // 上级菜单处理
$_menus = Db::name($this->table)->where(['status' => '1'])->order('sort asc,id asc')->select(); $_menus = Db::name($this->table)->where('status', '1')->order('sort desc,id desc')->select();
$_menus[] = ['title' => '顶级菜单', 'id' => '0', 'pid' => '-1']; $_menus[] = ['title' => '顶级菜单', 'id' => '0', 'pid' => '-1'];
$menus = ToolsService::arr2table($_menus); $menus = ToolsService::arr2table($_menus);
foreach ($menus as $key => &$menu) { foreach ($menus as $key => &$menu) {

View File

@ -16,6 +16,7 @@ namespace app\admin\controller;
use controller\BasicAdmin; use controller\BasicAdmin;
use service\FileService; use service\FileService;
use think\Db;
/** /**
* 插件助手控制器 * 插件助手控制器

View File

@ -41,7 +41,7 @@ class User extends BasicAdmin
{ {
$this->title = '系统用户管理'; $this->title = '系统用户管理';
$get = $this->request->get(); $get = $this->request->get();
$db = Db::name($this->table)->where(['is_deleted' => '0']); $db = Db::name($this->table)->where(['is_deleted' => '0', 'type' => '系统用户']);
foreach (['username', 'phone'] as $key) { foreach (['username', 'phone'] as $key) {
if (isset($get[$key]) && $get[$key] !== '') { if (isset($get[$key]) && $get[$key] !== '') {
$db->where($key, 'like', "%{$get[$key]}%"); $db->where($key, 'like', "%{$get[$key]}%");
@ -64,7 +64,7 @@ class User extends BasicAdmin
*/ */
public function add() public function add()
{ {
return $this->_form($this->table, 'form'); return $this->_form($this->table, 'form', 'id', [], ['type' => '系统用户']);
} }
/** /**
@ -72,7 +72,7 @@ class User extends BasicAdmin
*/ */
public function edit() public function edit()
{ {
return $this->_form($this->table, 'form'); return $this->_form($this->table, 'form', 'id', [], ['type' => '系统用户']);
} }
/** /**

View File

@ -2,23 +2,16 @@
{block name="button"} {block name="button"}
<div class="nowrap pull-right" style="margin-top:10px"> <div class="nowrap pull-right" style="margin-top:10px">
<button data-modal='{:url("$classuri/add")}' data-title="添加权限" class='layui-btn layui-btn-small'> <button data-modal='{:url("$classuri/add")}' data-title="添加权限" class='layui-btn layui-btn-small'><i class='fa fa-plus'></i> 添加权限</button>
<i class='fa fa-plus'></i> 添加权限 <button data-update data-field='delete' data-action='{:url("$classuri/del")}' class='layui-btn layui-btn-small layui-btn-danger'><i class='fa fa-remove'></i> 删除权限</button>
</button>
<button data-update data-field='delete' data-action='{:url("$classuri/del")}'
class='layui-btn layui-btn-small layui-btn-danger'>
<i class='fa fa-remove'></i> 删除权限
</button>
</div> </div>
{/block} {/block}
{block name="content"} {block name="content"}
<form onsubmit="return false;" data-auto="true" method="post"> <form onsubmit="return false;" data-auto="true" method="post">
{if empty($list)} {if !empty($list)}
<p class="help-block text-center well"> 哦!</p>
{else}
<input type="hidden" value="resort" name="action"/> <input type="hidden" value="resort" name="action"/>
<table class="layui-table" lay-skin="line" lay-size="sm"> <table class="table table-hover">
<thead> <thead>
<tr> <tr>
<th class='list-table-check-td'> <th class='list-table-check-td'>
@ -65,18 +58,15 @@
{if $vo.status eq 1 and auth("$classuri/forbid")} {if $vo.status eq 1 and auth("$classuri/forbid")}
<span class="text-explode">|</span> <span class="text-explode">|</span>
<a data-update="{$vo.id}" data-field='status' data-value='0' data-action='{:url("$classuri/forbid")}' <a data-update="{$vo.id}" data-field='status' data-value='0'data-action='{:url("$classuri/forbid")}' href="javascript:void(0)">禁用</a>
href="javascript:void(0)">禁用</a>
{elseif auth("$classuri/resume")} {elseif auth("$classuri/resume")}
<span class="text-explode">|</span> <span class="text-explode">|</span>
<a data-update="{$vo.id}" data-field='status' data-value='1' data-action='{:url("$classuri/resume")}' <a data-update="{$vo.id}" data-field='status' data-value='1' data-action='{:url("$classuri/resume")}' href="javascript:void(0)">启用</a>
href="javascript:void(0)">启用</a>
{/if} {/if}
{if auth("$classuri/del")} {if auth("$classuri/del")}
<span class="text-explode">|</span> <span class="text-explode">|</span>
<a data-update="{$vo.id}" data-field='delete' data-action='{:url("$classuri/del")}' <a data-update="{$vo.id}" data-field='delete' data-action='{:url("$classuri/del")}' href="javascript:void(0)">删除</a>
href="javascript:void(0)">删除</a>
{/if} {/if}
</td> </td>
@ -85,6 +75,8 @@
</tbody> </tbody>
</table> </table>
{if isset($page)}<p>{$page}</p>{/if} {if isset($page)}<p>{$page}</p>{/if}
{else}
<p class="help-blok">暂时无记录</p>
{/if} {/if}
</form> </form>
{/block} {/block}

View File

@ -3,8 +3,7 @@
{block name="button"} {block name="button"}
<div class="nowrap pull-right" style="margin-top:10px"> <div class="nowrap pull-right" style="margin-top:10px">
{if auth("$classuri/del")} {if auth("$classuri/del")}
<button data-update data-field='delete' data-action='{:url("$classuri/del")}' <button data-update data-field='delete' data-action='{:url("$classuri/del")}' class='layui-btn layui-btn-small layui-btn-danger'>
class='layui-btn layui-btn-small layui-btn-danger'>
<i class='fa fa-remove'></i> 删除日志 <i class='fa fa-remove'></i> 删除日志
</button> </button>
{/if} {/if}
@ -14,19 +13,19 @@
{block name="content"} {block name="content"}
<!-- 表单搜索 开始 --> <!-- 表单搜索 开始 -->
<form class="layui-form layui-form-pane form-search" action="__SELF__" onsubmit="return false" method="get"> <form class="animated form-search" action="__SELF__" onsubmit="return false" method="get">
<div class="layui-form-item layui-inline">
<label class="layui-form-label" style="width:auto">操作者</label> <div class="row">
<div class="layui-input-inline"> <div class="col-xs-3">
<input name="username" value="{$Think.get.username|default=''}" placeholder="请输入操作者" class="layui-input"> <div class="form-group">
<input type="text" name="username" value="{$Think.get.username|default=''}" placeholder="操作者" class="input-sm form-control">
</div> </div>
</div> </div>
<div class="layui-form-item layui-inline"> <div class="col-xs-3">
<label class="layui-form-label" style="width:auto">操作行为</label> <div class="form-group">
<div class="layui-input-inline"> <select name='action' class='input-sm form-control'>
<select name='action' class='layui-select' lay-search=""> <option value=''> - 行为 - </option>
<option value=''> - 所有记录 -</option>
<!--{foreach $actions as $action}--> <!--{foreach $actions as $action}-->
<!--{if $action===$Think.get.action}--> <!--{if $action===$Think.get.action}-->
<option selected="selected" value='{$action}'>{$action}</option> <option selected="selected" value='{$action}'>{$action}</option>
@ -38,22 +37,24 @@
</div> </div>
</div> </div>
<div class="layui-form-item layui-inline"> <div class="col-xs-3">
<label class="layui-form-label" style="width:auto">操作内容</label> <div class="form-group">
<div class="layui-input-inline"> <input type="text" name="content" value="{$Think.get.content|default=''}" placeholder="操作内容" class="input-sm form-control">
<input name="content" value="{$Think.get.content|default=''}" placeholder="请输入操作内容" class="layui-input">
</div> </div>
</div> </div>
<div class="layui-form-item layui-inline"> <div class="col-xs-1">
<button class="layui-btn layui-btn-primary"><i class="layui-icon">&#xe615;</i> 搜 索</button> <div class="form-group">
<button type="submit" class="btn btn-sm btn-white"><i class="fa fa-search"></i> 搜索</button>
</div>
</div>
</div> </div>
</form> </form>
<!-- 表单搜索 结束 --> <!-- 表单搜索 结束 -->
<form onsubmit="return false;" data-auto="" method="POST"> <form onsubmit="return false;" data-auto="" method="POST">
<input type="hidden" value="resort" name="action"/> <input type="hidden" value="resort" name="action"/>
<table class="layui-table" lay-skin="line" lay-size="sm"> <table class="table table-hover">
<thead> <thead>
<tr> <tr>
<th class='list-table-check-td'> <th class='list-table-check-td'>
@ -84,8 +85,5 @@
</tbody> </tbody>
</table> </table>
{if isset($page)}<p>{$page}</p>{/if} {if isset($page)}<p>{$page}</p>{/if}
<script>
window.form.render();
</script>
</form> </form>
{/block} {/block}

View File

@ -19,10 +19,12 @@
欢迎登录 {:sysconf('app_name')} 后台管理 <sup>{:sysconf('app_version')}</sup> 欢迎登录 {:sysconf('app_name')} 后台管理 <sup>{:sysconf('app_version')}</sup>
</span> </span>
<ul> <ul>
<!--<li class="notselect"><a href="javascript:void(0)" target="_blank">帮助</a></li>--> <li class="notselect">
<a href="javascript:void(0)" target="_blank">帮助</a>
</li>
<li class="notselect"> <li class="notselect">
<a href="http://sw.bos.baidu.com/sw-search-sp/software/4bcf5e4f1835b/ChromeStandalone_54.0.2840.99_Setup.exe"> <a href="http://sw.bos.baidu.com/sw-search-sp/software/4bcf5e4f1835b/ChromeStandalone_54.0.2840.99_Setup.exe">
<b>推荐使用谷歌浏览器</b> <b>推荐谷歌浏览器</b>
</a> </a>
</li> </li>
</ul> </ul>
@ -41,13 +43,13 @@
<ul> <ul>
<li> <li>
<input name='username' class="hide"/> <input name='username' class="hide"/>
<input required="required" pattern="^\S{4,}$" value="admin" name="username" <input required="required" pattern="^\S{4,}$" value="" name="username"
autofocus="autofocus" autocomplete="off" class="login-input username" autofocus="autofocus" autocomplete="off" class="login-input username"
title="请输入4位及以上的字符" placeholder="请输入用户名/手机号码"/> title="请输入4位及以上的字符" placeholder="请输入用户名/手机号码"/>
</li> </li>
<li> <li>
<input name='password' class="hide"/> <input name='password' class="hide"/>
<input required="required" pattern="^\S{4,}$" value="admin" name="password" <input required="required" pattern="^\S{4,}$" value="" name="password"
type="password" autocomplete="off" class="login-input password" type="password" autocomplete="off" class="login-input password"
title="请输入4位及以上的字符" placeholder="请输入密码"/> title="请输入4位及以上的字符" placeholder="请输入密码"/>
</li> </li>
@ -62,7 +64,7 @@
<!-- 底部版权信息 开始 --> <!-- 底部版权信息 开始 -->
{if sysconf('site_copy')} {if sysconf('site_copy')}
<div class="footer notselect">{:sysconf('site_copy')}</div> <div class="footer animated fadeInUp notselect">{:sysconf('site_copy')}</div>
{/if} {/if}
<!-- 底部版本信息 结束 --> <!-- 底部版本信息 结束 -->

View File

@ -2,12 +2,8 @@
{block name="button"} {block name="button"}
<div class="nowrap pull-right" style="margin-top:10px"> <div class="nowrap pull-right" style="margin-top:10px">
<button data-modal='{:url("$classuri/add")}' data-title="添加菜单" class='layui-btn layui-btn-small'><i <button data-modal='{:url("$classuri/add")}' data-title="添加菜单" class='layui-btn layui-btn-small'><i class='fa fa-plus'></i> 添加菜单</button>
class='fa fa-plus'></i> 添加菜单 <button data-update data-field='delete' data-action='{:url("$classuri/del")}' class='layui-btn layui-btn-small layui-btn-danger'><i class='fa fa-remove'></i> 删除菜单</button>
</button>
<button data-update data-field='delete' data-action='{:url("$classuri/del")}'
class='layui-btn layui-btn-small layui-btn-danger'><i class='fa fa-remove'></i> 删除菜单
</button>
</div> </div>
{/block} {/block}
@ -15,7 +11,7 @@
<form onsubmit="return false;" data-auto="true" method="post"> <form onsubmit="return false;" data-auto="true" method="post">
<input type="hidden" value="resort" name="action"/> <input type="hidden" value="resort" name="action"/>
<table class="layui-table" lay-skin="line" lay-size="sm"> <table class="table table-hover">
<thead> <thead>
<tr> <tr>
<th class='list-table-check-td'> <th class='list-table-check-td'>
@ -59,17 +55,14 @@
{/if} {/if}
{if $vo.status eq 1 and auth("$classuri/forbid")} {if $vo.status eq 1 and auth("$classuri/forbid")}
<span class="text-explode">|</span> <span class="text-explode">|</span>
<a data-update="{$vo.ids}" data-field='status' data-value='0' data-action='{:url("$classuri/forbid")}' <a data-update="{$vo.ids}" data-field='status' data-value='0'data-action='{:url("$classuri/forbid")}' href="javascript:void(0)">禁用</a>
href="javascript:void(0)">禁用</a>
{elseif auth("$classuri/resume")} {elseif auth("$classuri/resume")}
<span class="text-explode">|</span> <span class="text-explode">|</span>
<a data-update="{$vo.ids}" data-field='status' data-value='1' data-action='{:url("$classuri/resume")}' <a data-update="{$vo.ids}" data-field='status' data-value='1' data-action='{:url("$classuri/resume")}' href="javascript:void(0)">启用</a>
href="javascript:void(0)">启用</a>
{/if} {/if}
{if auth("$classuri/del")} {if auth("$classuri/del")}
<span class="text-explode">|</span> <span class="text-explode">|</span>
<a data-update="{$vo.ids}" data-field='delete' data-action='{:url("$classuri/del")}' <a data-update="{$vo.ids}" data-field='delete' data-action='{:url("$classuri/del")}' href="javascript:void(0)">删除</a>
href="javascript:void(0)">删除</a>
{/if} {/if}
</td> </td>
</tr> </tr>

View File

@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="zh-CN"> <html lang="zh-CN">
<head> <head>
<title>{:sysconf('app_name')} {:sysconf('app_version')}</title> <title>{:sysconf('app_name')} {:sysconf('app_version')}</title>
<meta charset="utf-8"> <meta charset="utf-8">
<link rel="icon" href="../image/favicon.ico"> <link rel="icon" href="../image/favicon.ico">
@ -8,12 +8,12 @@
<meta name="viewport" content="width=device-width, initial-scale=0"> <meta name="viewport" content="width=device-width, initial-scale=0">
<link href="__STATIC__/plugs/uploader/webuploader.css" rel="stylesheet" type="text/css"/> <link href="__STATIC__/plugs/uploader/webuploader.css" rel="stylesheet" type="text/css"/>
<link href="__STATIC__/plugs/uploader/theme/uploader.css" rel="stylesheet" type="text/css"/> <link href="__STATIC__/plugs/uploader/theme/uploader.css" rel="stylesheet" type="text/css"/>
<script src="__STATIC__/plugs/jquery/jquery.min.js"></script> <script src="__STATIC__/plugs/jquery/jquery.min.js" type="text/javascript"></script>
<script src="__STATIC__/plugs/uploader/webuploader.min.js"></script> <script src="__STATIC__/plugs/uploader/webuploader.min.js" type="text/javascript"></script>
<script src="__STATIC__/plugs/uploader/theme/upload.js"></script> <script src="__STATIC__/plugs/uploader/theme/upload.js" type="text/javascript"></script>
</head> </head>
<body> <body>
<div id="uploader"> <div id="uploader">
<div class="queueList"> <div class="queueList">
<div id="dndArea" class="placeholder"> <div id="dndArea" class="placeholder">
<div id="filePicker"></div> <div id="filePicker"></div>
@ -32,8 +32,8 @@
<div class="uploadBtn">开始上传</div> <div class="uploadBtn">开始上传</div>
</div> </div>
</div> </div>
</div> </div>
<script> <script>
/* global WebUploader */ /* global WebUploader */
/** /**
@ -120,7 +120,7 @@
flashVersion = (function () { flashVersion = (function () {
var version; var version;
try { try {
version = navigator.plugins['Shockwave Flash']; version = navigator.plugins[ 'Shockwave Flash' ];
version = version.description; version = version.description;
} catch (ex) { } catch (ex) {
try { try {
@ -130,11 +130,10 @@
} }
} }
version = version.match(/\d+/g); version = version.match(/\d+/g);
return parseFloat(version[0] + '.' + version[1], 10); return parseFloat(version[ 0 ] + '.' + version[ 1 ], 10);
})(), })(),
supportTransition = (function () { supportTransition = (function () {
var s = document.createElement('p').style, var s = document.createElement('p').style, r = 'transition' in s || 'WebkitTransition' in s || 'MozTransition' in s || 'msTransition' in s || 'OTransition' in s;
r = 'transition' in s || 'WebkitTransition' in s || 'MozTransition' in s || 'msTransition' in s || 'OTransition' in s;
return (s = null), r; return (s = null), r;
})(), })(),
uploader; uploader;
@ -177,16 +176,14 @@
return; return;
} }
WebUploader.Uploader.register({'before-send-file': 'preupload'}, { WebUploader.Uploader.register({'before-send-file': 'preupload'}, {preupload: function (file) {
preupload: function (file) {
var me = this, owner = this.owner, deferred = WebUploader.Deferred(); var me = this, owner = this.owner, deferred = WebUploader.Deferred();
owner.md5File(file.source).fail(function () { owner.md5File(file.source).fail(function () {
deferred.reject(); deferred.reject();
}).then(function (md5) { }).then(function (md5) {
file.md5 = md5; file.md5 = md5;
var data = {id: file.id, md5: md5, uptype: '{$uptype}', filename: file.name}; var data = {id: file.id, md5: md5, uptype: '{$uptype}', filename: file.name};
$.ajax("{:url('admin/plugs/upstate')}", { $.ajax("{:url('admin/plugs/upstate')}", {dataType: 'json', method: 'post', data: data, success: function (ret) {
dataType: 'json', method: 'post', data: data, success: function (ret) {
if (ret.code !== 'NOT_FOUND') { if (ret.code !== 'NOT_FOUND') {
owner.skipFile(file); owner.skipFile(file);
uploaded.call(uploader, ret.data, file); uploaded.call(uploader, ret.data, file);
@ -285,7 +282,7 @@
uploader.on('dndAccept', function (items) { uploader.on('dndAccept', function (items) {
var denied = false, len = items.length, unAllowed = 'text/plain;application/javascript '; var denied = false, len = items.length, unAllowed = 'text/plain;application/javascript ';
for (var i = 0; i < len; i++) { for (var i = 0; i < len; i++) {
if (~unAllowed.indexOf(items[i].type)) { if (~unAllowed.indexOf(items[ i ].type)) {
denied = true; denied = true;
break; break;
} }
@ -342,11 +339,7 @@
img = $('<img src="' + src + '">'); img = $('<img src="' + src + '">');
$wrap.empty().append(img); $wrap.empty().append(img);
} else { } else {
$.ajax('{"plugs/file/preview"|url}', { $.ajax('{"plugs/file/preview"|url}', {method: 'POST', data: src, dataType: 'json'}).done(function (response) {
method: 'post',
data: src,
dataType: 'json'
}).done(function (response) {
if (response.result) { if (response.result) {
img = $('<img src="' + response.result + '">'); img = $('<img src="' + response.result + '">');
$wrap.empty().append(img); $wrap.empty().append(img);
@ -356,7 +349,7 @@
}); });
} }
}, thumbnailWidth, thumbnailHeight); }, thumbnailWidth, thumbnailHeight);
percentages[file.id] = [file.size, 0]; percentages[ file.id ] = [file.size, 0];
file.rotation = 0; file.rotation = 0;
$upload.html('开始上传'); $upload.html('开始上传');
} }
@ -371,11 +364,11 @@
// 成功 // 成功
if (cur === 'error' || cur === 'invalid') { if (cur === 'error' || cur === 'invalid') {
showError(file.statusText); showError(file.statusText);
percentages[file.id][1] = 1; percentages[ file.id ][ 1 ] = 1;
} else if (cur === 'interrupt') { } else if (cur === 'interrupt') {
showError('interrupt'); showError('interrupt');
} else if (cur === 'queued') { } else if (cur === 'queued') {
percentages[file.id][1] = 0; percentages[ file.id ][ 1 ] = 0;
} else if (cur === 'progress') { } else if (cur === 'progress') {
$info.remove(); $info.remove();
$prgress.css('display', 'block'); $prgress.css('display', 'block');
@ -390,10 +383,9 @@
$btns.stop().animate({height: 0}); $btns.stop().animate({height: 0});
}); });
$btns.on('click', 'span', function () { $btns.on('click', 'span', function () {
var index = $(this).index(); var index = $(this).index(), deg;
switch (index) { switch (index) {
case 0: case 0:
removeFile(file);
return uploader.removeFile(file); return uploader.removeFile(file);
case 1: case 1:
file.rotation += 90; file.rotation += 90;
@ -403,7 +395,7 @@
break; break;
} }
if (supportTransition) { if (supportTransition) {
var deg = 'rotate(' + file.rotation + 'deg)'; deg = 'rotate(' + file.rotation + 'deg)';
$wrap.css({'-webkit-transform': deg, '-mos-transform': deg, '-o-transform': deg, 'transform': deg}); $wrap.css({'-webkit-transform': deg, '-mos-transform': deg, '-o-transform': deg, 'transform': deg});
} else { } else {
$wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')'); $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')');
@ -414,7 +406,7 @@
// 负责view的销毁 // 负责view的销毁
function removeFile(file) { function removeFile(file) {
delete percentages[file.id]; delete percentages[ file.id ];
updateTotalProgress(); updateTotalProgress();
$('#' + file.id).off().find('.file-panel').off().end().remove(); $('#' + file.id).off().find('.file-panel').off().end().remove();
} }
@ -422,8 +414,8 @@
function updateTotalProgress() { function updateTotalProgress() {
var loaded = 0, total = 0, spans = $progress.children(), percent; var loaded = 0, total = 0, spans = $progress.children(), percent;
$.each(percentages, function (k, v) { $.each(percentages, function (k, v) {
total += v[0]; total += v[ 0 ];
loaded += v[0] * v[1]; loaded += v[ 0 ] * v[ 1 ];
}); });
percent = total ? loaded / total : 0; percent = total ? loaded / total : 0;
spans.eq(0).text(Math.round(percent * 100) + '%'); spans.eq(0).text(Math.round(percent * 100) + '%');
@ -507,7 +499,7 @@
uploader.onUploadProgress = function (file, percentage) { uploader.onUploadProgress = function (file, percentage) {
var $li = $('#' + file.id), $percent = $li.find('.progress span'); var $li = $('#' + file.id), $percent = $li.find('.progress span');
$percent.css('width', percentage * 100 + '%'); $percent.css('width', percentage * 100 + '%');
percentages[file.id][1] = percentage; percentages[ file.id ][ 1 ] = percentage;
updateTotalProgress(); updateTotalProgress();
}; };
@ -570,6 +562,6 @@
updateTotalProgress(); updateTotalProgress();
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -14,33 +14,33 @@
{block name="content"} {block name="content"}
<!-- 表单搜索 开始 --> <!-- 表单搜索 开始 -->
<form class="layui-form layui-form-pane form-search" action="__SELF__" onsubmit="return false" method="get"> <form class="animated form-search" action="__SELF__" onsubmit="return false" method="get">
<div class="layui-form-item layui-inline">
<label class="layui-form-label" style="width:auto">用户名</label> <div class="row">
<div class="layui-input-inline"> <div class="col-xs-3">
<input name="username" value="{$Think.get.username|default=''}" placeholder="请输入用户名" class="layui-input"> <div class="form-group">
<input type="text" name="username" value="{$Think.get.username|default=''}" placeholder="用户名" class="input-sm form-control">
</div> </div>
</div> </div>
<div class="layui-form-item layui-inline"> <div class="col-xs-3">
<label class="layui-form-label" style="width:auto">手机号</label> <div class="form-group">
<div class="layui-input-inline"> <input type="text" name="phone" value="{$Think.get.phone|default=''}" placeholder="手机号" class="input-sm form-control">
<input name="phone" value="{$Think.get.phone|default=''}" placeholder="请输入手机号" class="layui-input">
</div> </div>
</div> </div>
<div class="layui-form-item layui-inline"> <div class="col-xs-1">
<button class="layui-btn layui-btn-primary"><i class="layui-icon">&#xe615;</i> 搜 索</button> <div class="form-group">
<button type="submit" class="btn btn-sm btn-white"><i class="fa fa-search"></i> 搜索</button>
</div>
</div>
</div> </div>
</form> </form>
<!-- 表单搜索 结束 --> <!-- 表单搜索 结束 -->
<form onsubmit="return false;" data-auto="true" method="post"> <form onsubmit="return false;" data-auto="" method="POST">
{if empty($list)}
<p class="help-block text-center well"> 哦!</p>
{else}
<input type="hidden" value="resort" name="action"/> <input type="hidden" value="resort" name="action"/>
<table class="layui-table" lay-skin="line" lay-size="sm"> <table class="table table-hover">
<thead> <thead>
<tr> <tr>
<th class='list-table-check-td'> <th class='list-table-check-td'>
@ -106,6 +106,5 @@
</tbody> </tbody>
</table> </table>
{if isset($page)}<p>{$page}</p>{/if} {if isset($page)}<p>{$page}</p>{/if}
{/if}
</form> </form>
{/block} {/block}