新增二级菜单,可在config.php中开启或关闭

新增渲染状态时搜索匹配
优化渲染图片时点击打开
修复渲染日期时非整型字段的BUG
优化通用搜索功能
优化后台显示基础大小为13px
pull/762756/MERGE
Karson 2018-05-13 15:46:11 +08:00
parent 3fac3ae3c3
commit 6e408fb2d1
19 changed files with 1821 additions and 1264 deletions

View File

@ -30,21 +30,20 @@ class Index extends Backend
public function index()
{
//左侧菜单
$menulist = $this->auth->getSidebar([
list($menulist, $navlist) = $this->auth->getSidebar([
'dashboard' => 'hot',
'addon' => ['new', 'red', 'badge'],
'auth/rule' => __('Menu'),
'general' => ['new', 'purple'],
], $this->view->site['fixedpage']);
], $this->view->site['fixedpage']);
$action = $this->request->request('action');
if ($this->request->isPost())
{
if ($action == 'refreshmenu')
{
$this->success('', null, ['menulist' => $menulist]);
if ($this->request->isPost()) {
if ($action == 'refreshmenu') {
$this->success('', null, ['menulist' => $menulist, 'navlist' => $navlist]);
}
}
$this->view->assign('menulist', $menulist);
$this->view->assign('navlist', $navlist);
$this->view->assign('title', __('Home'));
return $this->view->fetch();
}
@ -55,12 +54,10 @@ class Index extends Backend
public function login()
{
$url = $this->request->get('url', 'index/index');
if ($this->auth->isLogin())
{
if ($this->auth->isLogin()) {
$this->success(__("You've logged in, do not login again"), $url);
}
if ($this->request->isPost())
{
if ($this->request->isPost()) {
$username = $this->request->post('username');
$password = $this->request->post('password');
$keeplogin = $this->request->post('keeplogin');
@ -75,26 +72,21 @@ class Index extends Backend
'password' => $password,
'__token__' => $token,
];
if (Config::get('fastadmin.login_captcha'))
{
if (Config::get('fastadmin.login_captcha')) {
$rule['captcha'] = 'require|captcha';
$data['captcha'] = $this->request->post('captcha');
}
$validate = new Validate($rule, [], ['username' => __('Username'), 'password' => __('Password'), 'captcha' => __('Captcha')]);
$result = $validate->check($data);
if (!$result)
{
if (!$result) {
$this->error($validate->getError(), $url, ['token' => $this->request->token()]);
}
AdminLog::setTitle(__('Login'));
$result = $this->auth->login($username, $password, $keeplogin ? 86400 : 0);
if ($result === true)
{
if ($result === true) {
Hook::listen("admin_login_after", $this->request);
$this->success(__('Login successful'), $url, ['url' => $url, 'id' => $this->auth->id, 'username' => $username, 'avatar' => $this->auth->avatar]);
}
else
{
} else {
$msg = $this->auth->getError();
$msg = $msg ? $msg : __('Username or password is incorrect');
$this->error($msg, $url, ['token' => $this->request->token()]);
@ -102,12 +94,11 @@ class Index extends Backend
}
// 根据客户端的cookie,判断是否可以自动登录
if ($this->auth->autologin())
{
if ($this->auth->autologin()) {
$this->redirect($url);
}
$background = Config::get('fastadmin.login_background');
$background = stripos($background, 'http')===0 ? $background : config('site.cdnurl') . $background;
$background = stripos($background, 'http') === 0 ? $background : config('site.cdnurl') . $background;
$this->view->assign('background', $background);
$this->view->assign('title', __('Login'));
Hook::listen("admin_login_init", $this->request);

View File

@ -31,26 +31,23 @@ class Auth extends \fast\Auth
/**
* 管理员登录
*
* @param string $username 用户名
* @param string $password 密码
* @param int $keeptime 有效时长
* @param string $username 用户名
* @param string $password 密码
* @param int $keeptime 有效时长
* @return boolean
*/
public function login($username, $password, $keeptime = 0)
{
$admin = Admin::get(['username' => $username]);
if (!$admin)
{
if (!$admin) {
$this->setError('Username is incorrect');
return false;
}
if (Config::get('fastadmin.login_failure_retry') && $admin->loginfailure >= 10 && time() - $admin->updatetime < 86400)
{
if (Config::get('fastadmin.login_failure_retry') && $admin->loginfailure >= 10 && time() - $admin->updatetime < 86400) {
$this->setError('Please try again after 1 day');
return false;
}
if ($admin->password != md5(md5($password) . $admin->salt))
{
if ($admin->password != md5(md5($password) . $admin->salt)) {
$admin->loginfailure++;
$admin->save();
$this->setError('Password is incorrect');
@ -71,8 +68,7 @@ class Auth extends \fast\Auth
public function logout()
{
$admin = Admin::get(intval($this->id));
if (!$admin)
{
if (!$admin) {
return true;
}
$admin->token = '';
@ -89,30 +85,24 @@ class Auth extends \fast\Auth
public function autologin()
{
$keeplogin = Cookie::get('keeplogin');
if (!$keeplogin)
{
if (!$keeplogin) {
return false;
}
list($id, $keeptime, $expiretime, $key) = explode('|', $keeplogin);
if ($id && $keeptime && $expiretime && $key && $expiretime > time())
{
if ($id && $keeptime && $expiretime && $key && $expiretime > time()) {
$admin = Admin::get($id);
if (!$admin || !$admin->token)
{
if (!$admin || !$admin->token) {
return false;
}
//token有变更
if ($key != md5(md5($id) . md5($keeptime) . md5($expiretime) . $admin->token))
{
if ($key != md5(md5($id) . md5($keeptime) . md5($expiretime) . $admin->token)) {
return false;
}
Session::set("admin", $admin->toArray());
//刷新自动登录的时效
$this->keeplogin($keeptime);
return true;
}
else
{
} else {
return false;
}
}
@ -120,13 +110,12 @@ class Auth extends \fast\Auth
/**
* 刷新保持登录的Cookie
*
* @param int $keeptime
* @param int $keeptime
* @return boolean
*/
protected function keeplogin($keeptime = 0)
{
if ($keeptime)
{
if ($keeptime) {
$expiretime = time() + $keeptime;
$key = md5(md5($this->id) . md5($keeptime) . md5($expiretime) . $this->token);
$data = [$this->id, $keeptime, $expiretime, $key];
@ -150,15 +139,13 @@ class Auth extends \fast\Auth
{
$request = Request::instance();
$arr = is_array($arr) ? $arr : explode(',', $arr);
if (!$arr)
{
if (!$arr) {
return FALSE;
}
$arr = array_map('strtolower', $arr);
// 是否存在
if (in_array(strtolower($request->action()), $arr) || in_array('*', $arr))
{
if (in_array(strtolower($request->action()), $arr) || in_array('*', $arr)) {
return TRUE;
}
@ -173,21 +160,17 @@ class Auth extends \fast\Auth
*/
public function isLogin()
{
if ($this->logined)
{
if ($this->logined) {
return true;
}
$admin = Session::get('admin');
if (!$admin)
{
if (!$admin) {
return false;
}
//判断是否同一时间同一账号只能在一个地方登录
if (Config::get('fastadmin.login_unique'))
{
if (Config::get('fastadmin.login_unique')) {
$my = Admin::get($admin['id']);
if (!$my || $my['token'] != $admin['token'])
{
if (!$my || $my['token'] != $admin['token']) {
return false;
}
}
@ -252,9 +235,8 @@ class Auth extends \fast\Auth
{
$groups = $this->getGroups($uid);
$groupIds = [];
foreach ($groups as $K => $v)
{
$groupIds[] = (int) $v['group_id'];
foreach ($groups as $K => $v) {
$groupIds[] = (int)$v['group_id'];
}
return $groupIds;
}
@ -269,17 +251,14 @@ class Auth extends \fast\Auth
//取出当前管理员所有的分组
$groups = $this->getGroups();
$groupIds = [];
foreach ($groups as $k => $v)
{
foreach ($groups as $k => $v) {
$groupIds[] = $v['id'];
}
// 取出所有分组
$groupList = \app\admin\model\AuthGroup::where(['status' => 'normal'])->select();
$objList = [];
foreach ($groups as $K => $v)
{
if ($v['rules'] === '*')
{
foreach ($groups as $K => $v) {
if ($v['rules'] === '*') {
$objList = $groupList;
break;
}
@ -289,12 +268,10 @@ class Auth extends \fast\Auth
$objList = array_merge($objList, Tree::instance()->getTreeList($obj));
}
$childrenGroupIds = [];
foreach ($objList as $k => $v)
{
foreach ($objList as $k => $v) {
$childrenGroupIds[] = $v['id'];
}
if (!$withself)
{
if (!$withself) {
$childrenGroupIds = array_diff($childrenGroupIds, $groupIds);
}
return $childrenGroupIds;
@ -308,33 +285,25 @@ class Auth extends \fast\Auth
public function getChildrenAdminIds($withself = false)
{
$childrenAdminIds = [];
if (!$this->isSuperAdmin())
{
if (!$this->isSuperAdmin()) {
$groupIds = $this->getChildrenGroupIds(false);
$authGroupList = \app\admin\model\AuthGroupAccess::
field('uid,group_id')
->where('group_id', 'in', $groupIds)
->select();
field('uid,group_id')
->where('group_id', 'in', $groupIds)
->select();
foreach ($authGroupList as $k => $v)
{
foreach ($authGroupList as $k => $v) {
$childrenAdminIds[] = $v['uid'];
}
}
else
{
} else {
//超级管理员拥有所有人的权限
$childrenAdminIds = Admin::column('id');
}
if ($withself)
{
if (!in_array($this->id, $childrenAdminIds))
{
if ($withself) {
if (!in_array($this->id, $childrenAdminIds)) {
$childrenAdminIds[] = $this->id;
}
}
else
{
} else {
$childrenAdminIds = array_diff($childrenAdminIds, [$this->id]);
}
return $childrenAdminIds;
@ -350,15 +319,12 @@ class Auth extends \fast\Auth
if ($this->breadcrumb || !$path)
return $this->breadcrumb;
$path_rule_id = 0;
foreach ($this->rules as $rule)
{
foreach ($this->rules as $rule) {
$path_rule_id = $rule['name'] == $path ? $rule['id'] : $path_rule_id;
}
if ($path_rule_id)
{
if ($path_rule_id) {
$this->breadcrumb = Tree::instance()->init($this->rules)->getParents($path_rule_id, true);
foreach ($this->breadcrumb as $k => &$v)
{
foreach ($this->breadcrumb as $k => &$v) {
$v['url'] = url($v['name']);
$v['title'] = __($v['title']);
}
@ -367,10 +333,11 @@ class Auth extends \fast\Auth
}
/**
* 获取左侧菜单栏
* 获取左侧和顶部菜单栏
*
* @param array $params URL对应的badge数据
* @return string
* @param string $fixedPage 默认页
* @return array
*/
public function getSidebar($params = [], $fixedPage = 'dashboard')
{
@ -379,26 +346,21 @@ class Auth extends \fast\Auth
$badgeList = [];
$module = request()->module();
// 生成菜单的badge
foreach ($params as $k => $v)
{
foreach ($params as $k => $v) {
$url = $k;
if (is_array($v))
{
if (is_array($v)) {
$nums = isset($v[0]) ? $v[0] : 0;
$color = isset($v[1]) ? $v[1] : $colorArr[(is_numeric($nums) ? $nums : strlen($nums)) % $colorNums];
$class = isset($v[2]) ? $v[2] : 'label';
}
else
{
} else {
$nums = $v;
$color = $colorArr[(is_numeric($nums) ? $nums : strlen($nums)) % $colorNums];
$class = 'label';
}
//必须nums大于0才显示
if ($nums)
{
if ($nums) {
$badgeList[$url] = '<small class="' . $class . ' pull-right bg-' . $color . '">' . $nums . '</small>';
}
}
@ -409,10 +371,8 @@ class Auth extends \fast\Auth
$pinyin = new \Overtrue\Pinyin\Pinyin('Overtrue\Pinyin\MemoryFileDictLoader');
// 必须将结果集转换为数组
$ruleList = collection(\app\admin\model\AuthRule::where('status', 'normal')->where('ismenu', 1)->order('weigh', 'desc')->cache("__menu__")->select())->toArray();
foreach ($ruleList as $k => &$v)
{
if (!in_array($v['name'], $userRule))
{
foreach ($ruleList as $k => &$v) {
if (!in_array($v['name'], $userRule)) {
unset($ruleList[$k]);
continue;
}
@ -423,16 +383,44 @@ class Auth extends \fast\Auth
$v['pinyin'] = $pinyin->permalink($v['title'], '');
$v['title'] = __($v['title']);
}
// 构造菜单数据
Tree::instance()->init($ruleList);
$menu = Tree::instance()->getTreeMenu(0, '<li class="@class"><a href="@url@addtabs" addtabs="@id" url="@url" py="@py" pinyin="@pinyin"><i class="@icon"></i> <span>@title</span> <span class="pull-right-container">@caret @badge</span></a> @childlist</li>', $select_id, '', 'ul', 'class="treeview-menu"');
return $menu;
$menu = $nav = '';
if (Config::get('fastadmin.multiplenav')) {
$topList = [];
foreach ($ruleList as $index => $item) {
if (!$item['pid']) {
$topList[] = $item;
}
}
$selectParentIds = [];
$tree = Tree::instance();
$tree->init($ruleList);
if ($select_id) {
$selectParentIds = $tree->getParentsIds($select_id, true);
}
foreach ($topList as $index => $item) {
$childList = Tree::instance()->getTreeMenu($item['id'], '<li class="@class" pid="@pid"><a href="@url@addtabs" addtabs="@id" url="@url" py="@py" pinyin="@pinyin"><i class="@icon"></i> <span>@title</span> <span class="pull-right-container">@caret @badge</span></a> @childlist</li>', $select_id, '', 'ul', 'class="treeview-menu"');
$current = in_array($item['id'], $selectParentIds);
$url = $childList ? 'javascript:;' : $item['url'];
$childList = str_replace('" pid="' . $item['id'] . '"', ' treeview ' . ($current ? '' : 'hidden') . '" pid="' . $item['id'] . '"', $childList);
$nav .= '<li class="' . ($current ? 'active' : '') . '"><a href="' . $url . '" addtabs="' . $item['id'] . '" url="' . $url . '"><i class="' . $item['icon'] . '"></i> <span>' . $item['title'] . '</span> <span class="pull-right-container"> </span></a> </li>';
$menu .= $childList;
}
} else {
// 构造菜单数据
Tree::instance()->init($ruleList);
$menu = Tree::instance()->getTreeMenu(0, '<li class="@class"><a href="@url@addtabs" addtabs="@id" url="@url" py="@py" pinyin="@pinyin"><i class="@icon"></i> <span>@title</span> <span class="pull-right-container">@caret @badge</span></a> @childlist</li>', $select_id, '', 'ul', 'class="treeview-menu"');
}
return [$menu, $nav];
}
/**
* 设置错误信息
*
* @param $error 错误信息
* @return Auth
*/
public function setError($error)
{

View File

@ -1,131 +1,147 @@
<!-- Logo -->
<a href="javascript:;" class="logo hidden-xs">
<a href="javascript:;" class="logo">
<!-- 迷你模式下Logo的大小为50X50 -->
<span class="logo-mini">{$site.name|mb_substr=0,4,'utf-8'|mb_strtoupper='utf-8'}</span>
<!-- 普通模式下Logo -->
<span class="logo-lg"><b>{$site.name|mb_substr=0,4,'utf-8'}</b>{$site.name|mb_substr=4,null,'utf-8'}</span>
</a>
<!-- 顶部通栏样式 -->
<nav class="navbar navbar-static-top">
<!-- 边栏切换按钮-->
<a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
<span class="sr-only">{:__('Toggle navigation')}</span>
</a>
<div id="nav" class="pull-left">
<!--第一级菜单-->
<div id="firstnav">
<!-- 边栏切换按钮-->
<a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
<span class="sr-only">{:__('Toggle navigation')}</span>
</a>
<!--如果不想在顶部显示角标,则给ul加上disable-top-badge类即可-->
<ul class="nav nav-tabs nav-addtabs disable-top-badge hidden-xs" role="tablist">
{$navlist}
</ul>
<div class="navbar-custom-menu">
<ul class="nav navbar-nav">
<li>
<a href="__PUBLIC__" target="_blank"><i class="fa fa-home" style="font-size:14px;"></i></a>
</li>
<li class="dropdown notifications-menu hidden-xs">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-bell-o"></i>
<span class="label label-warning"></span>
</a>
<ul class="dropdown-menu">
<li class="header">{:__('Latest news')}</li>
<li>
<!-- FastAdmin最新更新信息,你可以替换成你自己站点的信息,请注意修改public/assets/js/backend/index.js文件 -->
<ul class="menu">
</ul>
</li>
<li class="footer"><a href="#" target="_blank">{:__('View more')}</a></li>
</ul>
</li>
<!-- 账号信息下拉框 -->
<li class="hidden-xs">
<a href="javascript:;" data-toggle="checkupdate" title="{:__('Check for updates')}">
<i class="fa fa-refresh"></i>
</a>
</li>
<!-- 清除缓存 -->
<li>
<a href="javascript:;" data-toggle="dropdown" title="{:__('Wipe cache')}">
<i class="fa fa-trash"></i>
</a>
<ul class="dropdown-menu wipecache">
<li><a href="javascript:;" data-type="all"><i class="fa fa-trash"></i> {:__('Wipe all cache')}</a></li>
<li class="divider"></li>
<li><a href="javascript:;" data-type="content"><i class="fa fa-file-text"></i> {:__('Wipe content cache')}</a></li>
<li><a href="javascript:;" data-type="template"><i class="fa fa-file-image-o"></i> {:__('Wipe template cache')}</a></li>
<li><a href="javascript:;" data-type="addons"><i class="fa fa-rocket"></i> {:__('Wipe addons cache')}</a></li>
</ul>
</li>
<!-- 多语言列表 -->
{if $Think.config.lang_switch_on}
<li class="hidden-xs">
<a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-language"></i></a>
<ul class="dropdown-menu">
<li class="{$config['language']=='zh-cn'?'active':''}">
<a href="?ref=addtabs&lang=zh-cn">简体中文</a>
</li>
<li class="{$config['language']=='en'?'active':''}">
<a href="?ref=addtabs&lang=en">English</a>
</li>
</ul>
</li>
{/if}
<!-- 全屏按钮 -->
<li class="hidden-xs">
<a href="#" data-toggle="fullscreen"><i class="fa fa-arrows-alt"></i></a>
</li>
<!-- 账号信息下拉框 -->
<li class="dropdown user user-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<img src="__CDN__{$admin.avatar}" class="user-image" alt="{$admin.nickname}">
<span class="hidden-xs">{$admin.nickname}</span>
</a>
<ul class="dropdown-menu">
<!-- User image -->
<li class="user-header">
<img src="__CDN__{$admin.avatar}" class="img-circle" alt="">
<p>
{$admin.nickname}
<small>{$admin.logintime|date="Y-m-d H:i:s",###}</small>
</p>
</li>
<!-- Menu Body -->
<li class="user-body">
<div class="row">
<div class="col-xs-4 text-center">
<a href="https://www.fastadmin.net" target="_blank">{:__('FastAdmin')}</a>
</div>
<div class="col-xs-4 text-center">
<a href="https://forum.fastadmin.net" target="_blank">{:__('Forum')}</a>
</div>
<div class="col-xs-4 text-center">
<a href="https://doc.fastadmin.net" target="_blank">{:__('Docs')}</a>
</div>
</div>
</li>
<!-- Menu Footer-->
<li class="user-footer">
<div class="pull-left">
<a href="general/profile" class="btn btn-primary addtabsit"><i class="fa fa-user"></i>
{:__('Profile')}</a>
</div>
<div class="pull-right">
<a href="{:url('index/logout')}" class="btn btn-danger"><i class="fa fa-sign-out"></i>
{:__('Logout')}</a>
</div>
</li>
</ul>
</li>
<!-- 控制栏切换按钮 -->
<li class="hidden-xs">
<a href="javascript:;" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a>
</li>
</ul>
</div>
</div>
{if $config.fastadmin.multiplenav}
<!--第二级菜单,只有在multiplenav开启时才显示-->
<div id="secondnav">
<ul class="nav nav-tabs nav-addtabs disable-top-badge" role="tablist">
</ul>
</div>
<div class="navbar-custom-menu">
<ul class="nav navbar-nav">
<li>
<a href="__PUBLIC__" target="_blank"><i class="fa fa-home" style="font-size:14px;"></i></a>
</li>
<li class="dropdown notifications-menu hidden-xs">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-bell-o"></i>
<span class="label label-warning"></span>
</a>
<ul class="dropdown-menu">
<li class="header">{:__('Latest news')}</li>
<li>
<!-- FastAdmin最新更新信息,你可以替换成你自己站点的信息,请注意修改public/assets/js/backend/index.js文件 -->
<ul class="menu">
</ul>
</li>
<li class="footer"><a href="#" target="_blank">{:__('View more')}</a></li>
</ul>
</li>
<li class="hidden-xs">
<a href="javascript:;" data-toggle="checkupdate" title="{:__('Check for updates')}">
<i class="fa fa-refresh"></i>
</a>
</li>
<li>
<a href="javascript:;" data-toggle="dropdown" title="{:__('Wipe cache')}">
<i class="fa fa-trash"></i>
</a>
<ul class="dropdown-menu wipecache">
<li><a href="javascript:;" data-type="all"><i class="fa fa-trash"></i> {:__('Wipe all cache')}</a></li>
<li class="divider"></li>
<li><a href="javascript:;" data-type="content"><i class="fa fa-file-text"></i> {:__('Wipe content cache')}</a></li>
<li><a href="javascript:;" data-type="template"><i class="fa fa-file-image-o"></i> {:__('Wipe template cache')}</a></li>
<li><a href="javascript:;" data-type="addons"><i class="fa fa-rocket"></i> {:__('Wipe addons cache')}</a></li>
</ul>
</li>
{if $Think.config.lang_switch_on}
<li class="hidden-xs">
<a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-language"></i></a>
<ul class="dropdown-menu">
<li class="{$config['language']=='zh-cn'?'active':''}">
<a href="?ref=addtabs&lang=zh-cn">简体中文</a>
</li>
<li class="{$config['language']=='en'?'active':''}">
<a href="?ref=addtabs&lang=en">English</a>
</li>
</ul>
</li>
{/if}
<li class="hidden-xs">
<a href="#" data-toggle="fullscreen"><i class="fa fa-arrows-alt"></i></a>
</li>
<!-- 账号信息下拉框 -->
<li class="dropdown user user-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<img src="__CDN__{$admin.avatar}" class="user-image" alt="{$admin.nickname}">
<span class="hidden-xs">{$admin.nickname}</span>
</a>
<ul class="dropdown-menu">
<!-- User image -->
<li class="user-header">
<img src="__CDN__{$admin.avatar}" class="img-circle" alt="">
<p>
{$admin.nickname}
<small>{$admin.logintime|date="Y-m-d H:i:s",###}</small>
</p>
</li>
<!-- Menu Body -->
<li class="user-body">
<div class="row">
<div class="col-xs-4 text-center">
<a href="https://www.fastadmin.net" target="_blank">{:__('FastAdmin')}</a>
</div>
<div class="col-xs-4 text-center">
<a href="https://forum.fastadmin.net" target="_blank">{:__('Forum')}</a>
</div>
<div class="col-xs-4 text-center">
<a href="https://doc.fastadmin.net" target="_blank">{:__('Docs')}</a>
</div>
</div>
</li>
<!-- Menu Footer-->
<li class="user-footer">
<div class="pull-left">
<a href="general/profile" class="btn btn-primary addtabsit"><i class="fa fa-user"></i>
{:__('Profile')}</a>
</div>
<div class="pull-right">
<a href="{:url('index/logout')}" class="btn btn-danger"><i class="fa fa-sign-out"></i>
{:__('Logout')}</a>
</div>
</li>
</ul>
</li>
<!-- 控制栏切换按钮 -->
<li class="hidden-xs">
<a href="javascript:;" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a>
</li>
</ul>
</div>
{/if}
</nav>

View File

@ -1,6 +1,6 @@
<!-- sidebar: style can be found in sidebar.less -->
<!-- 左侧菜单栏 -->
<section class="sidebar">
<!-- Sidebar user panel -->
<!-- 管理员信息 -->
<div class="user-panel hidden-xs">
<div class="pull-left image">
<a href="general/profile" class="addtabsit"><img src="__CDN__{$admin.avatar}" class="img-circle" /></a>
@ -11,7 +11,7 @@
</div>
</div>
<!-- search form -->
<!-- 菜单搜索 -->
<form action="" method="get" class="sidebar-form" onsubmit="return false;">
<div class="input-group">
<input type="text" name="q" class="form-control" placeholder="{:__('Search menu')}">
@ -23,16 +23,22 @@
</div>
</div>
</form>
<!-- /.search form -->
<!-- sidebar menu: : style can be found in sidebar.less -->
<!--如果想始终显示子菜单,则给ul加上show-submenu类即可-->
<ul class="sidebar-menu">
<!-- 移动端一级菜单 -->
<div class="mobilenav visible-xs">
</div>
<!--如果想始终显示子菜单,则给ul加上show-submenu类即可,当multiplenav开启的情况下默认为展开-->
<ul class="sidebar-menu {if $config.fastadmin.multiplenav}show-submenu{/if}">
<!-- 菜单可以在 后台管理->权限管理->菜单规则 中进行增删改排序 -->
{$menulist}
<!--以下4行可以删除或改成自己的链接,但建议你在你的网站上添加一个FastAdmin的链接-->
<li class="header" data-rel="external">{:__('Links')}</li>
<li data-rel="external"><a href="https://doc.fastadmin.net" target="_blank"><i class="fa fa-list text-red"></i> <span>{:__('Docs')}</span></a></li>
<li data-rel="external"><a href="https://forum.fastadmin.net" target="_blank"><i class="fa fa-comment text-yellow"></i> <span>{:__('Forum')}</span></a></li>
<li data-rel="external"><a href="https://jq.qq.com/?_wv=1027&k=487PNBb" target="_blank"><i class="fa fa-qq text-aqua"></i> <span>{:__('QQ qun')}</span></a></li>
</ul>
</section>
<!-- /.sidebar -->
</section>

View File

@ -1,38 +1,40 @@
<!DOCTYPE html>
<html lang="{$config.language}">
<head>
<!-- 加载部部样式及META信息 -->
{include file="common/meta" /}
</head>
<body class="hold-transition skin-green sidebar-mini fixed" id="tabs">
<body class="hold-transition skin-green sidebar-mini fixed {if $config.fastadmin.multiplenav}multiplenav{/if}" id="tabs">
<div class="wrapper">
<!-- 头部区域 -->
<header id="header" class="main-header">
{include file='common/header' /}
</header>
<!-- Left side column. contains the logo and sidebar -->
<!-- 左侧菜单栏 -->
<aside class="main-sidebar">
{include file='common/menu' /}
</aside>
<!-- Content Wrapper. Contains page content -->
<!-- 主体内容区域 -->
<div class="content-wrapper tab-content tab-addtabs">
</div>
<!-- /.content-wrapper -->
<!-- 底部链接,默认隐藏 -->
<footer class="main-footer hide">
<div class="pull-right hidden-xs">
</div>
<strong>Copyright &copy; 2017-2018 <a href="https://www.fastadmin.net">Fastadmin</a>.</strong> All rights
reserved.
<strong>Copyright &copy; 2017-2018 <a href="https://www.fastadmin.net">Fastadmin</a>.</strong> All rights reserved.
</footer>
<!-- Add the sidebar's background. This div must be placed
immediately after the control sidebar -->
<!-- 右侧控制栏 -->
<div class="control-sidebar-bg"></div>
{include file="common/control" /}
</div>
<!-- ./wrapper -->
<!-- end main content -->
<!-- 加载JS脚本 -->
{include file="common/script" /}
</body>
</html>

View File

@ -16,7 +16,7 @@
<small>{:__('Control panel')}</small>
</h1>
</section>
{if !IS_DIALOG}
{if !IS_DIALOG && !$config.fastadmin.multiplenav}
<!-- RIBBON -->
<div id="ribbon">
<ol class="breadcrumb pull-left">

View File

@ -267,6 +267,8 @@ return [
'login_unique' => false,
//登录页默认背景图
'login_background' => "/assets/img/loginbg.jpg",
//是否启用多级菜单导航
'multiplenav' => false,
//自动检测更新
'checkupdate' => false,
//版本号

View File

@ -33,8 +33,5 @@
"fastadmin-dragsort": "~1.0.0",
"fastadmin-addtabs": "~1.0.0",
"fastadmin-selectpage": "~1.0.0"
},
"resolutions": {
"jspdf": "1.1.239 || 1.3.2"
}
}

View File

@ -9,9 +9,11 @@
@import url("../libs/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css");
@import url("../libs/bootstrap-daterangepicker/daterangepicker.css");
@import url("../libs/nice-validator/dist/jquery.validator.css");
@import url("../libs/bootstrap-select/dist/css/bootstrap-select.min.css");
@import url("../libs/fastadmin-selectpage/selectpage.css");
body {
background: #f1f4f6;
font-size: 13px;
}
body.is-dialog {
background: #fff;
@ -31,19 +33,6 @@ body.is-dialog {
.main-header .navbar {
position: relative;
}
.main-header .navbar .sidebar-toggle {
position: absolute;
width: 45px;
text-align: center;
}
.main-header .navbar #nav {
position: absolute;
left: 45px;
}
.main-header .navbar .navbar-custom-menu {
position: absolute;
right: 0;
}
.bootstrap-dialog .modal-dialog {
/*width: 70%;*/
max-width: 885px;
@ -60,7 +49,6 @@ html.ios-fix body {
}
#header {
background: #fff;
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(0, 0, 0, 0.05);
}
.content-wrapper {
position: relative;
@ -111,9 +99,6 @@ html.ios-fix body {
margin-bottom: 15px;
background-color: #f5f5f5;
}
.searchit {
border-bottom: 1px dashed #3c8dbc;
}
/* 固定的底部按钮 */
.fixed-footer {
position: fixed;
@ -283,6 +268,7 @@ form.form-horizontal .control-label {
}
/*顶栏addtabs*/
.nav-addtabs {
height: 100%;
border: none;
}
.nav-addtabs.disable-top-badge > li > a > .pull-right-container {
@ -292,8 +278,8 @@ form.form-horizontal .control-label {
margin: 0;
}
.nav-addtabs > li > a {
height: 49px;
line-height: 49px;
height: 50px;
line-height: 50px;
padding: 0 15px;
border-radius: 0;
border: none;
@ -311,8 +297,8 @@ form.form-horizontal .control-label {
margin-right: 3px;
}
.nav-addtabs > li.active > a {
height: 49px;
line-height: 49px;
height: 50px;
line-height: 50px;
padding: 0 15px;
border-radius: 0;
border: none;
@ -325,21 +311,28 @@ form.form-horizontal .control-label {
.nav-addtabs > li.active > a:focus {
border: none;
color: #2c3e50;
border-right: 1px solid rgba(0, 0, 0, 0.05);
background: #f1f4f6;
border-right: 1px solid rgba(0, 0, 0, 0.05);
}
.nav-addtabs > li .close-tab {
font-size: 10px;
position: absolute;
right: 5px;
right: 0px;
top: 50%;
margin-top: -7px;
margin-top: -8px;
z-index: 100;
cursor: hand;
cursor: pointer;
color: #fff;
color: #eee;
display: none;
}
.nav-addtabs > li .close-tab:before {
content: "\e626";
font-family: iconfont;
font-style: normal;
font-weight: normal;
text-decoration: inherit;
font-size: 18px;
}
.nav-addtabs .open > a:hover,
.nav-addtabs .open > a:focus {
border-right: 1px solid rgba(0, 0, 0, 0.05);
@ -350,6 +343,119 @@ form.form-horizontal .control-label {
.nav-addtabs li:hover > .close-tab {
display: block;
}
.multiplenav .content-wrapper,
.multiplenav .right-side {
padding-top: 94px;
}
.multiplenav #firstnav .nav-addtabs {
padding-right: 450px;
}
#firstnav {
height: 50px;
border-bottom: 1px solid transparent;
box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
position: relative;
}
#firstnav .sidebar-toggle {
position: absolute;
width: 45px;
text-align: center;
height: 50px;
line-height: 50px;
padding: 0;
}
#firstnav .nav-addtabs {
position: absolute;
left: 45px;
z-index: 98;
}
#firstnav .navbar-custom-menu {
position: absolute;
top: 0;
right: 0;
z-index: 99;
background: transparent;
}
/*次栏菜单栏*/
#secondnav {
height: 44px;
position: absolute;
top: 50px;
left: 0;
background: #fff;
width: 100%;
box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
padding: 5px 10px;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
#secondnav .nav-addtabs {
height: 100%;
border: none;
}
#secondnav .nav-addtabs.disable-top-badge > li > a > .pull-right-container {
display: none;
}
#secondnav .nav-addtabs > li {
border: 1px solid #eee;
border-radius: 3px;
padding: 0 15px;
height: 30px;
line-height: 30px;
margin: 2px 5px 2px 0;
background: #fff;
}
#secondnav .nav-addtabs > li > a {
display: block;
color: #495060 !important;
height: 100%;
padding: 0;
line-height: 28px;
font-size: 12px;
vertical-align: middle;
opacity: 1;
overflow: hidden;
background: none;
border: none;
}
#secondnav .nav-addtabs > li > a i {
margin-right: 3px;
}
#secondnav .nav-addtabs > li.active {
border-color: #bdbebd;
background-color: #f7f7f7;
}
#secondnav .nav-addtabs > li .close-tab {
font-size: 10px;
position: absolute;
right: 0px;
top: 50%;
margin-top: -8px;
z-index: 100;
cursor: pointer;
color: #eee;
}
#secondnav .nav-addtabs > li .close-tab:before {
content: "\e626";
font-family: iconfont;
font-style: normal;
font-weight: normal;
text-decoration: inherit;
font-size: 18px;
}
#secondnav .nav-addtabs > li:hover,
#secondnav .nav-addtabs > li:focus {
border-color: #bdbebd;
}
#secondnav .nav-addtabs ul li {
position: relative;
}
#secondnav .nav-addtabs li:hover > .close-tab {
display: block;
border-color: #222e32;
color: #222e32;
}
.main-sidebar .sidebar-form {
overflow: visible;
}
@ -396,7 +502,7 @@ form.form-horizontal .control-label {
top: 41px;
}
.sidebar-mini.sidebar-collapse .sidebar-menu > li:hover > a > .pull-right-container {
top: 7px!important;
top: 7px !important;
height: 17px;
}
}
@ -487,7 +593,7 @@ form.form-horizontal .control-label {
}
/*去除bootstrap-table的边框*/
.fixed-table-container {
border: none!important;
border: none !important;
}
/*修复nice-validator新版下的一处BUG*/
.nice-validator input,
@ -535,7 +641,7 @@ form.form-horizontal .control-label {
}
.dropdown-menu.text-left a,
.dropdown-menu.text-left li {
text-align: left!important;
text-align: left !important;
}
.bootstrap-table .fixed-table-toolbar .dropdown-menu {
overflow: auto;
@ -612,25 +718,25 @@ form.form-horizontal .control-label {
}
/*重写toast的几个背景色*/
.toast-primary {
background-color: #48c9b0!important;
background-color: #48c9b0 !important;
}
.toast-success {
background-color: #18bc9c!important;
background-color: #18bc9c !important;
}
.toast-error {
background-color: #e74c3c!important;
background-color: #e74c3c !important;
}
.toast-info {
background-color: #5dade2!important;
background-color: #5dade2 !important;
}
.toast-warning {
background-color: #f1c40f!important;
background-color: #f1c40f !important;
}
.toast-inverse {
background-color: #34495e!important;
background-color: #34495e !important;
}
.toast-default {
background-color: #bdc3c7!important;
background-color: #bdc3c7 !important;
}
#toast-container > div,
#toast-container > div:hover {
@ -642,8 +748,8 @@ form.form-horizontal .control-label {
/*自定义底部灰色操作区*/
}
.layui-layer-fast .layui-layer-title {
background: #2c3e50!important;
color: #fff!important;
background: #2c3e50 !important;
color: #fff !important;
border-bottom: none;
}
.layui-layer-fast .layui-layer-title ~ .layui-layer-setwin {
@ -656,7 +762,7 @@ form.form-horizontal .control-label {
display: inline-block;
}
.layui-layer-fast.layui-layer-border {
border: none!important;
border: none !important;
box-shadow: 1px 1px 50px rgba(0, 0, 0, 0.3) !important;
}
.layui-layer-fast.layui-layer-iframe {
@ -668,15 +774,15 @@ form.form-horizontal .control-label {
box-sizing: content-box;
}
.layui-layer-fast .layui-layer-btn {
text-align: center!important;
padding: 10px!important;
text-align: center !important;
padding: 10px !important;
background: #ecf0f1;
overflow: hidden;
}
.layui-layer-fast .layui-layer-btn a {
background-color: #95a5a6;
border-color: #95a5a6;
color: #fff!important;
color: #fff !important;
height: 31px;
margin-top: 0;
border: 1px solid transparent;
@ -689,10 +795,10 @@ form.form-horizontal .control-label {
padding: 8px 20px;
background-color: #ecf0f1;
height: auto;
text-align: inherit!important;
text-align: inherit !important;
}
.layui-layer-fast .layui-layer-setwin > a {
background: none!important;
background: none !important;
}
.layui-layer-fast .layui-layer-setwin > a cite {
display: none;
@ -710,11 +816,11 @@ form.form-horizontal .control-label {
z-index: 1;
}
.layui-layer-fast .layui-layer-setwin > a:hover {
text-decoration: none!important;
background: none!important;
text-decoration: none !important;
background: none !important;
}
.layui-layer-fast .layui-layer-setwin > a:focus {
text-decoration: none!important;
text-decoration: none !important;
}
.layui-layer-fast .layui-layer-setwin .layui-layer-min {
display: none;
@ -773,8 +879,12 @@ form.form-horizontal .control-label {
}
/*手机版样式*/
@media (max-width: 480px) {
.nav-addtabs {
display: none;
#firstnav .navbar-custom-menu ul li a {
padding-left: 10px;
padding-right: 10px;
}
#firstnav .navbar-nav > .user-menu .user-image {
margin-top: -3px;
}
.fixed-table-toolbar .columns-right.btn-group {
display: none;
@ -783,9 +893,64 @@ form.form-horizontal .control-label {
.fixed .right-side {
padding-top: 50px;
}
.multiplenav .fixed .content-wrapper,
.multiplenav .fixed .right-side {
padding-top: 94px;
}
.multiplenav .content-wrapper,
.multiplenav .right-side {
padding-top: 94px;
}
.main-sidebar,
.left-side {
padding-top: 144px;
}
}
/*平板样式*/
@media (max-width: 768px) {
body .wrapper .main-header .logo {
background: none;
color: #fff;
border-bottom: 0 solid transparent;
position: absolute;
top: 0;
z-index: 1200;
width: 130px;
left: 50%;
margin-left: -65px;
}
body .sidebar .mobilenav a.btn-app {
color: #444;
width: 100px;
height: 70px;
font-size: 13px;
}
body .sidebar .mobilenav a.btn-app i.fa {
font-size: 24px;
}
body .sidebar .mobilenav a.btn-app span {
margin-top: 5px;
display: block;
}
body .sidebar .mobilenav a.btn-app.active {
color: #222d32;
}
body .wrapper .main-header .navbar .dropdown-menu li > a {
color: #333;
}
body .wrapper .main-header .navbar .dropdown-menu li > a:hover {
background: #eee;
}
body .wrapper .main-header .navbar .dropdown-menu li.active > a {
color: #fff;
}
body .wrapper .main-header .navbar .dropdown-menu li.active > a:hover {
background: #222d32;
}
.main-sidebar,
.left-side {
padding-top: 94px;
}
.n-bootstrap .n-right {
margin-top: 0;
top: -20px;
@ -811,5 +976,5 @@ form.form-horizontal .control-label {
margin: 2px 0 0;
}
.wipecache li a {
color: #444444!important;
color: #444444 !important;
}

File diff suppressed because one or more lines are too long

View File

@ -304,7 +304,7 @@ function _init() {
$(".sidebar").slimscroll({
height: ($(window).height() - $(".main-header").height()) + "px",
color: "rgba(0,0,0,0.2)",
size: "3px"
size: "8px"
});
}
}

View File

@ -215,6 +215,11 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'adminlte', 'form'], functi
}
});
var multiplenav = Config.fastadmin.multiplenav;
var firstnav = $("#firstnav .nav-addtabs");
var nav = multiplenav ? $("#secondnav .nav-addtabs") : firstnav;
//刷新菜单事件
$(document).on('refresh', '.sidebar-menu', function () {
Fast.api.ajax({
@ -223,28 +228,103 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'adminlte', 'form'], functi
}, function (data) {
$(".sidebar-menu li:not([data-rel='external'])").remove();
$(".sidebar-menu").prepend(data.menulist);
$("#nav ul li[role='presentation'].active a").trigger('click');
if (multiplenav) {
firstnav.html(data.navlist);
}
$("li[role='presentation'].active a", nav).trigger('click');
return false;
}, function () {
return false;
});
});
if (multiplenav) {
//一级菜单自适应
$(window).resize(function () {
var siblingsWidth = 0;
firstnav.siblings().each(function () {
siblingsWidth += $(this).outerWidth();
});
firstnav.width(firstnav.parent().width() - siblingsWidth);
firstnav.refreshAddtabs();
});
//点击顶部第一级菜单栏
firstnav.on("click", "li a", function () {
$("li", firstnav).removeClass("active");
$(this).closest("li").addClass("active");
$(".sidebar-menu > li.treeview").addClass("hidden");
if ($(this).attr("url") == "javascript:;") {
var sonlist = $(".sidebar-menu > li[pid='" + $(this).attr("addtabs") + "']");
sonlist.removeClass("hidden");
var last_id = $(this).attr("last-id");
if (last_id) {
$(".sidebar-menu > li[pid='" + $(this).attr("addtabs") + "'] a[addtabs='" + last_id + "']").trigger('click');
} else {
$(".sidebar-menu > li[pid='" + $(this).attr("addtabs") + "']:first > a").trigger('click');
}
} else {
}
});
//点击左侧菜单栏
$(document).on('click', '.sidebar-menu li a[addtabs]', function (e) {
var parents = $(this).parentsUntil("ul.sidebar-menu", "li");
var top = parents[parents.length - 1];
var pid = $(top).attr("pid");
if (pid) {
var obj = $("li a[addtabs=" + pid + "]", firstnav);
var last_id = obj.attr("last-id");
if (!last_id || last_id != pid) {
obj.attr("last-id", $(this).attr("addtabs"));
if (!obj.closest("li").hasClass("active")) {
obj.trigger("click");
}
}
}
});
var mobilenav = $(".mobilenav");
$("#firstnav .nav-addtabs li a").each(function(){
mobilenav.append($(this).clone().addClass("btn btn-app"));
});
//点击移动端一级菜单
mobilenav.on("click", "a", function () {
$("a", mobilenav).removeClass("active");
$(this).addClass("active");
$(".sidebar-menu > li.treeview").addClass("hidden");
if ($(this).attr("url") == "javascript:;") {
var sonlist = $(".sidebar-menu > li[pid='" + $(this).attr("addtabs") + "']");
sonlist.removeClass("hidden");
}
});
}
//这一行需要放在点击左侧链接事件之前
var addtabs = Config.referer ? localStorage.getItem("addtabs") : null;
//绑定tabs事件,如果需要点击强制刷新iframe,则请将iframeForceRefresh置为true
$('#nav').addtabs({iframeHeight: "100%", iframeForceRefresh: false});
nav.addtabs({iframeHeight: "100%", iframeForceRefresh: false, nav: nav});
if ($("ul.sidebar-menu li.active a").size() > 0) {
$("ul.sidebar-menu li.active a").trigger("click");
} else {
$("ul.sidebar-menu li a[url!='javascript:;']:first").trigger("click");
if (Config.fastadmin.multiplenav) {
$("li:first > a", firstnav).trigger("click");
} else {
$("ul.sidebar-menu li a[url!='javascript:;']:first").trigger("click");
}
}
//如果是刷新操作则直接返回刷新前的页面
if (Config.referer) {
if (Config.referer === $(addtabs).attr("url")) {
var active = $("ul.sidebar-menu li a[addtabs=" + $(addtabs).attr("addtabs") + "]");
if (multiplenav && active.size() == 0) {
active = $("ul li a[addtabs='" + $(addtabs).attr("addtabs") + "']");
}
if (active.size() > 0) {
active.trigger("click");
} else {
@ -319,7 +399,7 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'adminlte', 'form'], functi
if ($(this).data("menu") == 'show-submenu') {
$("ul.sidebar-menu").toggleClass("show-submenu");
} else {
$(".nav-addtabs").toggleClass("disable-top-badge");
nav.toggleClass("disable-top-badge");
}
});
@ -365,7 +445,7 @@ define(['jquery', 'bootstrap', 'backend', 'addtabs', 'adminlte', 'form'], functi
if ($('ul.sidebar-menu').hasClass('show-submenu')) {
$("[data-menu='show-submenu']").attr('checked', 'checked');
}
if ($('ul.nav-addtabs').hasClass('disable-top-badge')) {
if (nav.hasClass('disable-top-badge')) {
$("[data-menu='disable-top-badge']").attr('checked', 'checked');
}

View File

@ -193,7 +193,7 @@
}
} else {
value = $("[name='" + name + "']:checked", that.$commonsearch).val();
value = (vObjCol && typeof vObjCol.process === 'function') ? vObjCol.process(obj.val()) : obj.val();
value = (vObjCol && typeof vObjCol.process === 'function') ? vObjCol.process(value) : value;
}
} else {
value = (vObjCol && typeof vObjCol.process === 'function') ? vObjCol.process(obj.val()) : obj.val();
@ -297,7 +297,7 @@
var that = this,
html = [];
if(that.options.showSearch){
if (that.options.showSearch) {
html.push(sprintf('<div class="columns-%s pull-%s" style="margin-top:10px;margin-bottom:10px;">', this.options.buttonsAlign, this.options.buttonsAlign));
html.push(sprintf('<button class="btn btn-default%s' + '" type="button" name="commonSearch" title="%s">', that.options.iconSize === undefined ? '' : ' btn-' + that.options.iconSize, that.options.formatCommonSearch()));
html.push(sprintf('<i class="%s %s"></i>', that.options.iconsPrefix, that.options.icons.commonSearchIcon))
@ -320,7 +320,16 @@
that.$container.on("click", "." + that.options.searchClass, function () {
var obj = $("form [name='" + $(this).data("field") + "']", that.$commonsearch);
if (obj.size() > 0) {
obj.val($(this).data("value"));
var value = $(this).data("value");
if (obj.is("select")) {
console.log($("option[value='" + value + "']", obj));
$("option[value='" + value + "']", obj).prop("selected", true);
} else if (obj.size() > 1) {
$("form [name='" + $(this).data("field") + "'][value='" + value + "']", that.$commonsearch).prop("checked", true);
} else {
obj.val(value);
}
obj.trigger("change");
$("form", that.$commonsearch).trigger("submit");
}
});

View File

@ -1,10 +1,10 @@
require.config({
urlArgs: "v=" + requirejs.s.contexts._.config.config.site.version,
packages: [{
name: 'moment',
location: '../libs/moment',
main: 'moment'
}
name: 'moment',
location: '../libs/moment',
main: 'moment'
}
],
//在打包压缩时将会把include中的模块合并到主文件中
include: ['css', 'layer', 'toastr', 'fast', 'backend', 'backend-init', 'table', 'form', 'dragsort', 'drag', 'drop', 'addtabs', 'selectpage'],
@ -102,10 +102,10 @@ require.config({
'moment/locale/zh-cn',
// 'css!../libs/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css',
],
'bootstrap-select': ['css!../libs/bootstrap-select/dist/css/bootstrap-select.min.css', ],
// 'bootstrap-select': ['css!../libs/bootstrap-select/dist/css/bootstrap-select.min.css',],
'bootstrap-select-lang': ['bootstrap-select'],
// 'toastr': ['css!../libs/toastr/toastr.min.css'],
'jstree': ['css!../libs/jstree/dist/themes/default/style.css', ],
'jstree': ['css!../libs/jstree/dist/themes/default/style.css',],
'plupload': {
deps: ['../libs/plupload/js/moxie.min'],
exports: "plupload"

View File

@ -15,10 +15,10 @@ define("bootstrap", ["jquery"], function(){});
require.config({
urlArgs: "v=" + requirejs.s.contexts._.config.config.site.version,
packages: [{
name: 'moment',
location: '../libs/moment',
main: 'moment'
}
name: 'moment',
location: '../libs/moment',
main: 'moment'
}
],
//在打包压缩时将会把include中的模块合并到主文件中
include: ['css', 'layer', 'toastr', 'fast', 'backend', 'backend-init', 'table', 'form', 'dragsort', 'drag', 'drop', 'addtabs', 'selectpage'],
@ -116,10 +116,10 @@ require.config({
'moment/locale/zh-cn',
// 'css!../libs/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css',
],
'bootstrap-select': ['css!../libs/bootstrap-select/dist/css/bootstrap-select.min.css', ],
// 'bootstrap-select': ['css!../libs/bootstrap-select/dist/css/bootstrap-select.min.css',],
'bootstrap-select-lang': ['bootstrap-select'],
// 'toastr': ['css!../libs/toastr/toastr.min.css'],
'jstree': ['css!../libs/jstree/dist/themes/default/style.css', ],
'jstree': ['css!../libs/jstree/dist/themes/default/style.css',],
'plupload': {
deps: ['../libs/plupload/js/moxie.min'],
exports: "plupload"
@ -5669,7 +5669,7 @@ define("bootstrap-table-lang", ["bootstrap-table"], (function (global) {
/*
tableExport.jquery.plugin
Version 1.9.9
Version 1.9.11
Copyright (c) 2015-2018 hhurz, https://github.com/hhurz
@ -5677,72 +5677,76 @@ define("bootstrap-table-lang", ["bootstrap-table"], (function (global) {
Licensed under the MIT License
*/
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(c,h,u){c instanceof String&&(c=String(c));for(var C=c.length,D=0;D<C;D++){var O=c[D];if(h.call(u,O,D,c))return{i:D,v:O}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(c,h,u){c!=Array.prototype&&c!=Object.prototype&&(c[h]=u.value)};
$jscomp.getGlobal=function(c){return"undefined"!=typeof window&&window===c?c:"undefined"!=typeof global&&null!=global?global:c};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(c,h,u,C){if(h){u=$jscomp.global;c=c.split(".");for(C=0;C<c.length-1;C++){var D=c[C];D in u||(u[D]={});u=u[D]}c=c[c.length-1];C=u[c];h=h(C);h!=C&&null!=h&&$jscomp.defineProperty(u,c,{configurable:!0,writable:!0,value:h})}};
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(c,g,u){c instanceof String&&(c=String(c));for(var C=c.length,D=0;D<C;D++){var P=c[D];if(g.call(u,P,D,c))return{i:D,v:P}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(c,g,u){c!=Array.prototype&&c!=Object.prototype&&(c[g]=u.value)};
$jscomp.getGlobal=function(c){return"undefined"!=typeof window&&window===c?c:"undefined"!=typeof global&&null!=global?global:c};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(c,g,u,C){if(g){u=$jscomp.global;c=c.split(".");for(C=0;C<c.length-1;C++){var D=c[C];D in u||(u[D]={});u=u[D]}c=c[c.length-1];C=u[c];g=g(C);g!=C&&null!=g&&$jscomp.defineProperty(u,c,{configurable:!0,writable:!0,value:g})}};
$jscomp.polyfill("Array.prototype.find",function(c){return c?c:function(c,u){return $jscomp.findInternal(this,c,u).v}},"es6","es3");
(function(c){c.fn.tableExport=function(h){function u(b){var d=[];C(b,"tbody").each(function(){d.push.apply(d,D(c(this),a.tbodySelector).toArray())});a.tfootSelector.length&&C(b,"tfoot").each(function(){d.push.apply(d,D(c(this),a.tfootSelector).toArray())});return d}function C(b,d){var a=b.parents("table").length;return b.find(d).filter(function(){return c(this).closest("table").parents("table").length===a})}function D(b,d){return b.find(d).filter(function(){return 0===c(this).find("table").length&&
1===c(this).parents("table").length})}function O(b){var d=[];c(b).find("thead").first().find("th").each(function(b,a){void 0!==c(a).attr("data-field")?d[b]=c(a).attr("data-field"):d[b]=b.toString()});return d}function P(b){var d="undefined"!==typeof b[0].cellIndex,a="undefined"!==typeof b[0].rowIndex,p=d||a?Aa(b):b.is(":visible"),g=b.data("tableexport-display");d&&"none"!=g&&"always"!=g&&(b=c(b[0].parentNode),a="undefined"!==typeof b[0].rowIndex,g=b.data("tableexport-display"));a&&"none"!=g&&"always"!=
g&&(g=b.closest("table").data("tableexport-display"));return"none"!==g&&(1==p||"always"==g)}function Aa(b){var d=[];T&&(d=K.filter(function(){var d=!1;this.nodeType==b[0].nodeType&&("undefined"!==typeof this.rowIndex&&this.rowIndex==b[0].rowIndex?d=!0:"undefined"!==typeof this.cellIndex&&this.cellIndex==b[0].cellIndex&&"undefined"!==typeof this.parentNode.rowIndex&&"undefined"!==typeof b[0].parentNode.rowIndex&&this.parentNode.rowIndex==b[0].parentNode.rowIndex&&(d=!0));return d}));return 0==T||0==
d.length}function Ba(b,d,f){var p=!1;P(b)?0<a.ignoreColumn.length&&(-1!=c.inArray(f,a.ignoreColumn)||-1!=c.inArray(f-d,a.ignoreColumn)||Q.length>f&&"undefined"!=typeof Q[f]&&-1!=c.inArray(Q[f],a.ignoreColumn))&&(p=!0):p=!0;return p}function B(b,d,f,p,g){if("function"===typeof g){var l=!1;"function"===typeof a.onIgnoreRow&&(l=a.onIgnoreRow(c(b),f));if(!1===l&&-1==c.inArray(f,a.ignoreRow)&&-1==c.inArray(f-p,a.ignoreRow)&&P(c(b))){var x=c(b).find(d),r=0;x.each(function(b){var d=c(this),a,l=R(this),p=
S(this);c.each(G,function(){if(f>=this.s.r&&f<=this.e.r&&r>=this.s.c&&r<=this.e.c)for(a=0;a<=this.e.c-this.s.c;++a)g(null,f,r++)});if(!1===Ba(d,x.length,b)){if(p||l)l=l||1,G.push({s:{r:f,c:r},e:{r:f+(p||1)-1,c:r+l-1}});g(this,f,r++)}if(l)for(a=0;a<l-1;++a)g(null,f,r++)});c.each(G,function(){if(f>=this.s.r&&f<=this.e.r&&r>=this.s.c&&r<=this.e.c)for(aa=0;aa<=this.e.c-this.s.c;++aa)g(null,f,r++)})}}}function na(b,d){!0===a.consoleLog&&console.log(b.output());if("string"===a.outputMode)return b.output();
if("base64"===a.outputMode)return L(b.output());if("window"===a.outputMode)window.URL=window.URL||window.webkitURL,window.open(window.URL.createObjectURL(b.output("blob")));else try{var f=b.output("blob");saveAs(f,a.fileName+".pdf")}catch(p){H(a.fileName+".pdf","data:application/pdf"+(d?"":";base64")+",",d?b.output("blob"):b.output())}}function oa(b,d,a){var f=0;"undefined"!==typeof a&&(f=a.colspan);if(0<=f){for(var g=b.width,c=b.textPos.x,x=d.table.columns.indexOf(d.column),r=1;r<f;r++)g+=d.table.columns[x+
r].width;1<f&&("right"===b.styles.halign?c=b.textPos.x+g-b.width:"center"===b.styles.halign&&(c=b.textPos.x+(g-b.width)/2));b.width=g;b.textPos.x=c;"undefined"!==typeof a&&1<a.rowspan&&(b.height*=a.rowspan);if("middle"===b.styles.valign||"bottom"===b.styles.valign)a=("string"===typeof b.text?b.text.split(/\r\n|\r|\n/g):b.text).length||1,2<a&&(b.textPos.y-=(2-1.15)/2*d.row.styles.fontSize*(a-2)/3);return!0}return!1}function pa(b,d,a){"undefined"!=typeof a.images&&d.each(function(){var d=c(this).children();
if(c(this).is("img")){var g=qa(this.src);a.images[g]={url:this.src,src:this.src}}"undefined"!=typeof d&&0<d.length&&pa(b,d,a)})}function Ca(b,d){function a(b){if(b.url){var a=new Image;g=++l;a.crossOrigin="Anonymous";a.onerror=a.onload=function(){if(a.complete&&(0===a.src.indexOf("data:image/")&&(a.width=b.width||a.width||0,a.height=b.height||a.height||0),a.width+a.height)){var c=document.createElement("canvas"),f=c.getContext("2d");c.width=a.width;c.height=a.height;f.drawImage(a,0,0);b.src=c.toDataURL("image/jpeg")}--l||
d(g)};a.src=b.url}}var c,g=0,l=0;if("undefined"!=typeof b.images)for(c in b.images)b.images.hasOwnProperty(c)&&a(b.images[c]);(b=l)||(d(g),b=void 0);return b}function ra(b,d,f){d.each(function(){var d=c(this).children(),g=0;if(c(this).is("div")){var l=ba(M(this,"background-color"),[255,255,255]),x=ba(M(this,"border-top-color"),[0,0,0]),r=ca(this,"border-top-width",a.jspdf.unit),e=this.getBoundingClientRect(),h=this.offsetLeft*f.dw;g=this.offsetTop*f.dh;var k=e.width*f.dw;e=e.height*f.dh;f.doc.setDrawColor.apply(void 0,
x);f.doc.setFillColor.apply(void 0,l);f.doc.setLineWidth(r);f.doc.rect(b.x+h,b.y+g,k,e,r?"FD":"F")}else if(c(this).is("img")&&"undefined"!=typeof f.images&&(l=qa(this.src),l=f.images[l],"undefined"!=typeof l)){x=b.width/b.height;r=this.width/this.height;h=b.width;k=b.height;e=19.049976/25.4;r<=x?(k=Math.min(b.height,this.height),h=this.width*k/this.height):r>x&&(h=Math.min(b.width,this.width),k=this.height*h/this.width);h*=e;k*=e;k<b.height&&(g=(b.height-k)/2);try{f.doc.addImage(l.src,b.textPos.x,
b.y+g,h,k)}catch(Ga){}b.textPos.x+=h}"undefined"!=typeof d&&0<d.length&&ra(b,d,f)})}function sa(b,a,f){if("function"===typeof f.onAutotableText)f.onAutotableText(f.doc,b,a);else{var d=b.textPos.x,g=b.textPos.y,l={halign:b.styles.halign,valign:b.styles.valign};if(a.length){for(a=a[0];a.previousSibling;)a=a.previousSibling;for(var x=!1,r=!1;a;){var e=a.innerText||a.textContent||"";e=(e.length&&" "==e[0]?" ":"")+c.trim(e)+(1<e.length&&" "==e[e.length-1]?" ":"");c(a).is("br")&&(d=b.textPos.x,g+=f.doc.internal.getFontSize());
c(a).is("b")?x=!0:c(a).is("i")&&(r=!0);(x||r)&&f.doc.setFontType(x&&r?"bolditalic":x?"bold":"italic");var h=f.doc.getStringUnitWidth(e)*f.doc.internal.getFontSize();if(h){if("linebreak"===b.styles.overflow&&d>b.textPos.x&&d+h>b.textPos.x+b.width){if(0<=".,!%*;:=-".indexOf(e.charAt(0))){var k=e.charAt(0);h=f.doc.getStringUnitWidth(k)*f.doc.internal.getFontSize();d+h<=b.textPos.x+b.width&&(f.doc.autoTableText(k,d,g,l),e=e.substring(1,e.length));h=f.doc.getStringUnitWidth(e)*f.doc.internal.getFontSize()}d=
b.textPos.x;g+=f.doc.internal.getFontSize()}for(;e.length&&d+h>b.textPos.x+b.width;)e=e.substring(0,e.length-1),h=f.doc.getStringUnitWidth(e)*f.doc.internal.getFontSize();f.doc.autoTableText(e,d,g,l);d+=h}if(x||r)c(a).is("b")?x=!1:c(a).is("i")&&(r=!1),f.doc.setFontType(x||r?x?"bold":"italic":"normal");a=a.nextSibling}b.textPos.x=d;b.textPos.y=g}else f.doc.autoTableText(b.text,b.textPos.x,b.textPos.y,l)}}function da(b,a,c){return b.replace(new RegExp(a.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1"),
"g"),c)}function ha(b){b=da(b||"0",a.numbers.html.thousandsSeparator,"");b=da(b,a.numbers.html.decimalMark,".");return"number"===typeof b||!1!==jQuery.isNumeric(b)?b:!1}function Da(b){-1<b.indexOf("%")?(b=ha(b.replace(/%/g,"")),!1!==b&&(b/=100)):b=!1;return b}function z(b,d,f){var p="";if(null!==b){var g=c(b);if(g[0].hasAttribute("data-tableexport-value"))var l=(l=g.data("tableexport-value"))?l+"":"";else if(l=g.html(),"function"===typeof a.onCellHtmlData)l=a.onCellHtmlData(g,d,f,l);else if(""!=l){var e=
c.parseHTML(l),h=0,k=0;l="";c.each(e,function(){if(c(this).is("input"))l+=g.find("input").eq(h++).val();else if(c(this).is("select"))l+=g.find("select option:selected").eq(k++).text();else if("undefined"===typeof c(this).html())l+=c(this).text();else if(void 0===jQuery().bootstrapTable||!0!==c(this).hasClass("filterControl")&&0===c(b).parents(".detail-view").length)l+=c(this).html()})}if(!0===a.htmlContent)p=c.trim(l);else if(l&&""!=l)if(""!=c(b).data("tableexport-cellformat")){var n=l.replace(/\n/g,
"\u2028").replace(/<br\s*[\/]?>/gi,"\u2060"),m=c("<div/>").html(n).contents();e=!1;n="";c.each(m.text().split("\u2028"),function(b,a){0<b&&(n+=" ");n+=c.trim(a)});c.each(n.split("\u2060"),function(b,a){0<b&&(p+="\n");p+=c.trim(a).replace(/\u00AD/g,"")});if("json"==a.type||"excel"===a.type&&"xmlss"===a.excelFileFormat||!1===a.numbers.output)e=ha(p),!1!==e&&(p=Number(e));else if(a.numbers.html.decimalMark!=a.numbers.output.decimalMark||a.numbers.html.thousandsSeparator!=a.numbers.output.thousandsSeparator)if(e=
ha(p),!1!==e){m=(""+e.substr(0>e?1:0)).split(".");1==m.length&&(m[1]="");var q=3<m[0].length?m[0].length%3:0;p=(0>e?"-":"")+(a.numbers.output.thousandsSeparator?(q?m[0].substr(0,q)+a.numbers.output.thousandsSeparator:"")+m[0].substr(q).replace(/(\d{3})(?=\d)/g,"$1"+a.numbers.output.thousandsSeparator):m[0])+(m[1].length?a.numbers.output.decimalMark+m[1]:"")}}else p=l;!0===a.escape&&(p=escape(p));"function"===typeof a.onCellData&&(p=a.onCellData(g,d,f,p))}return p}function Ea(b,a,c){return a+"-"+c.toLowerCase()}
function ba(b,a){(b=/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/.exec(b))&&(a=[parseInt(b[1]),parseInt(b[2]),parseInt(b[3])]);return a}function ta(b){var a=M(b,"text-align"),c=M(b,"font-weight"),p=M(b,"font-style"),g="";"start"==a&&(a="rtl"==M(b,"direction")?"right":"left");700<=c&&(g="bold");"italic"==p&&(g+=p);""===g&&(g="normal");a={style:{align:a,bcolor:ba(M(b,"background-color"),[255,255,255]),color:ba(M(b,"color"),[0,0,0]),fstyle:g},colspan:R(b),rowspan:S(b)};null!==b&&(b=b.getBoundingClientRect(),
a.rect={width:b.width,height:b.height});return a}function R(b){var a=c(b).data("tableexport-colspan");"undefined"==typeof a&&c(b).is("[colspan]")&&(a=c(b).attr("colspan"));return parseInt(a)||0}function S(b){var a=c(b).data("tableexport-rowspan");"undefined"==typeof a&&c(b).is("[rowspan]")&&(a=c(b).attr("rowspan"));return parseInt(a)||0}function M(b,a){try{return window.getComputedStyle?(a=a.replace(/([a-z])([A-Z])/,Ea),window.getComputedStyle(b,null).getPropertyValue(a)):b.currentStyle?b.currentStyle[a]:
b.style[a]}catch(f){}return""}function ca(b,a,c){a=M(b,a).match(/\d+/);if(null!==a){a=a[0];b=b.parentElement;var d=document.createElement("div");d.style.overflow="hidden";d.style.visibility="hidden";b.appendChild(d);d.style.width=100+c;c=100/d.offsetWidth;b.removeChild(d);return a*c}return 0}function ia(){if(!(this instanceof ia))return new ia;this.SheetNames=[];this.Sheets={}}function ua(a){for(var b=new ArrayBuffer(a.length),c=new Uint8Array(b),e=0;e!=a.length;++e)c[e]=a.charCodeAt(e)&255;return b}
function Fa(a){for(var b={},c={s:{c:1E7,r:1E7},e:{c:0,r:0}},e=0;e!=a.length;++e)for(var g=0;g!=a[e].length;++g){c.s.r>e&&(c.s.r=e);c.s.c>g&&(c.s.c=g);c.e.r<e&&(c.e.r=e);c.e.c<g&&(c.e.c=g);var l={v:a[e][g]};if(null!==l.v){var h=XLSX.utils.encode_cell({c:g,r:e});if("number"===typeof l.v)l.t="n";else if("boolean"===typeof l.v)l.t="b";else if(l.v instanceof Date){l.t="n";l.z=XLSX.SSF._table[14];var r=l;var k=(Date.parse(l.v)-new Date(Date.UTC(1899,11,30)))/864E5;r.v=k}else l.t="s";b[h]=l}}1E7>c.s.c&&
(b["!ref"]=XLSX.utils.encode_range(c));return b}function qa(a){var b=0,c;if(0===a.length)return b;var e=0;for(c=a.length;e<c;e++){var g=a.charCodeAt(e);b=(b<<5)-b+g;b|=0}return b}function H(a,c,f){var b=window.navigator.userAgent;if(!1!==a&&window.navigator.msSaveOrOpenBlob)window.navigator.msSaveOrOpenBlob(new Blob([f]),a);else if(!1!==a&&(0<b.indexOf("MSIE ")||b.match(/Trident.*rv\:11\./))){if(c=document.createElement("iframe")){document.body.appendChild(c);c.setAttribute("style","display:none");
c.contentDocument.open("txt/plain","replace");c.contentDocument.write(f);c.contentDocument.close();c.contentDocument.focus();switch(a.substr(a.lastIndexOf(".")+1)){case "doc":case "json":case "png":case "pdf":case "xls":case "xlsx":a+=".txt"}c.contentDocument.execCommand("SaveAs",!0,a);document.body.removeChild(c)}}else{var g=document.createElement("a");if(g){var d=null;g.style.display="none";!1!==a?g.download=a:g.target="_blank";"object"==typeof f?(window.URL=window.URL||window.webkitURL,d=window.URL.createObjectURL(f),
g.href=d):0<=c.toLowerCase().indexOf("base64,")?g.href=c+L(f):g.href=c+encodeURIComponent(f);document.body.appendChild(g);if(document.createEvent)null===ea&&(ea=document.createEvent("MouseEvents")),ea.initEvent("click",!0,!1),g.dispatchEvent(ea);else if(document.createEventObject)g.fireEvent("onclick");else if("function"==typeof g.onclick)g.onclick();setTimeout(function(){d&&window.URL.revokeObjectURL(d);document.body.removeChild(g)},100)}}}function L(a){var b,c="",e=0;if("string"===typeof a){a=a.replace(/\x0d\x0a/g,
"\n");var g="";for(b=0;b<a.length;b++){var l=a.charCodeAt(b);128>l?g+=String.fromCharCode(l):(127<l&&2048>l?g+=String.fromCharCode(l>>6|192):(g+=String.fromCharCode(l>>12|224),g+=String.fromCharCode(l>>6&63|128)),g+=String.fromCharCode(l&63|128))}a=g}for(;e<a.length;){var h=a.charCodeAt(e++);g=a.charCodeAt(e++);b=a.charCodeAt(e++);l=h>>2;h=(h&3)<<4|g>>4;var r=(g&15)<<2|b>>6;var k=b&63;isNaN(g)?r=k=64:isNaN(b)&&(k=64);c=c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(l)+
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(h)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(r)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(k)}return c}var a={consoleLog:!1,csvEnclosure:'"',csvSeparator:",",csvUseBOM:!0,displayTableName:!1,escape:!1,excelFileFormat:"xlshtml",excelRTL:!1,excelstyles:[],exportHiddenCells:!1,fileName:"tableExport",htmlContent:!1,ignoreColumn:[],ignoreRow:[],jsonScope:"all",jspdf:{orientation:"p",
unit:"pt",format:"a4",margins:{left:20,right:10,top:10,bottom:10},onDocCreated:null,autotable:{styles:{cellPadding:2,rowHeight:12,fontSize:8,fillColor:255,textColor:50,fontStyle:"normal",overflow:"ellipsize",halign:"left",valign:"middle"},headerStyles:{fillColor:[52,73,94],textColor:255,fontStyle:"bold",halign:"center"},alternateRowStyles:{fillColor:245},tableExport:{doc:null,onAfterAutotable:null,onBeforeAutotable:null,onAutotableText:null,onTable:null,outputImages:!0}}},numbers:{html:{decimalMark:".",
thousandsSeparator:","},output:{decimalMark:".",thousandsSeparator:","}},onCellData:null,onCellHtmlData:null,onIgnoreRow:null,onMsoNumberFormat:null,outputMode:"file",pdfmake:{enabled:!1,docDefinition:{pageOrientation:"portrait",defaultStyle:{font:"Roboto"}},fonts:{}},tbodySelector:"tr",tfootSelector:"tr",theadSelector:"tr",tableName:"Table",type:"csv",worksheetName:""},v=this,ea=null,q=[],t=[],k=0,m="",Q=[],G=[],K=[],T=!1;c.extend(!0,a,h);Q=O(v);if("csv"==a.type||"tsv"==a.type||"txt"==a.type){var I=
"",W=0;G=[];k=0;var ja=function(b,d,f){b.each(function(){m="";B(this,d,k,f+b.length,function(b,c,d){var g=m,f="";if(null!==b)if(b=z(b,c,d),c=null===b||""===b?"":b.toString(),"tsv"==a.type)b instanceof Date&&b.toLocaleString(),f=da(c,"\t"," ");else if(b instanceof Date)f=a.csvEnclosure+b.toLocaleString()+a.csvEnclosure;else if(f=da(c,a.csvEnclosure,a.csvEnclosure+a.csvEnclosure),0<=f.indexOf(a.csvSeparator)||/[\r\n ]/g.test(f))f=a.csvEnclosure+f+a.csvEnclosure;m=g+(f+("tsv"==a.type?"\t":a.csvSeparator))});
m=c.trim(m).substring(0,m.length-1);0<m.length&&(0<I.length&&(I+="\n"),I+=m);k++});return b.length};W+=ja(c(v).find("thead").first().find(a.theadSelector),"th,td",W);C(c(v),"tbody").each(function(){W+=ja(D(c(this),a.tbodySelector),"td,th",W)});a.tfootSelector.length&&ja(c(v).find("tfoot").first().find(a.tfootSelector),"td,th",W);I+="\n";!0===a.consoleLog&&console.log(I);if("string"===a.outputMode)return I;if("base64"===a.outputMode)return L(I);if("window"===a.outputMode){H(!1,"data:text/"+("csv"==
a.type?"csv":"plain")+";charset=utf-8,",I);return}try{var A=new Blob([I],{type:"text/"+("csv"==a.type?"csv":"plain")+";charset=utf-8"});saveAs(A,a.fileName+"."+a.type,"csv"!=a.type||!1===a.csvUseBOM)}catch(b){H(a.fileName+"."+a.type,"data:text/"+("csv"==a.type?"csv":"plain")+";charset=utf-8,"+("csv"==a.type&&a.csvUseBOM?"\ufeff":""),I)}}else if("sql"==a.type){k=0;G=[];var w="INSERT INTO `"+a.tableName+"` (";q=c(v).find("thead").first().find(a.theadSelector);q.each(function(){B(this,"th,td",k,q.length,
function(a,c,f){w+="'"+z(a,c,f)+"',"});k++;w=c.trim(w).substring(0,w.length-1)});w+=") VALUES ";t=u(c(v));c(t).each(function(){m="";B(this,"td,th",k,q.length+t.length,function(a,c,f){m+="'"+z(a,c,f)+"',"});3<m.length&&(w+="("+m,w=c.trim(w).substring(0,w.length-1),w+="),");k++});w=c.trim(w).substring(0,w.length-1);w+=";";!0===a.consoleLog&&console.log(w);if("string"===a.outputMode)return w;if("base64"===a.outputMode)return L(w);try{A=new Blob([w],{type:"text/plain;charset=utf-8"}),saveAs(A,a.fileName+
".sql")}catch(b){H(a.fileName+".sql","data:application/sql;charset=utf-8,",w)}}else if("json"==a.type){var U=[];G=[];q=c(v).find("thead").first().find(a.theadSelector);q.each(function(){var a=[];B(this,"th,td",k,q.length,function(b,c,e){a.push(z(b,c,e))});U.push(a)});var ka=[];t=u(c(v));c(t).each(function(){var a={},d=0;B(this,"td,th",k,q.length+t.length,function(b,c,g){U.length?a[U[U.length-1][d]]=z(b,c,g):a[d]=z(b,c,g);d++});!1===c.isEmptyObject(a)&&ka.push(a);k++});h="";h="head"==a.jsonScope?JSON.stringify(U):
"data"==a.jsonScope?JSON.stringify(ka):JSON.stringify({header:U,data:ka});!0===a.consoleLog&&console.log(h);if("string"===a.outputMode)return h;if("base64"===a.outputMode)return L(h);try{A=new Blob([h],{type:"application/json;charset=utf-8"}),saveAs(A,a.fileName+".json")}catch(b){H(a.fileName+".json","data:application/json;charset=utf-8;base64,",h)}}else if("xml"===a.type){k=0;G=[];var J='<?xml version="1.0" encoding="utf-8"?>';J+="<tabledata><fields>";q=c(v).find("thead").first().find(a.theadSelector);
q.each(function(){B(this,"th,td",k,q.length,function(a,c,f){J+="<field>"+z(a,c,f)+"</field>"});k++});J+="</fields><data>";var va=1;t=u(c(v));c(t).each(function(){var a=1;m="";B(this,"td,th",k,q.length+t.length,function(b,c,e){m+="<column-"+a+">"+z(b,c,e)+"</column-"+a+">";a++});0<m.length&&"<column-1></column-1>"!=m&&(J+='<row id="'+va+'">'+m+"</row>",va++);k++});J+="</data></tabledata>";!0===a.consoleLog&&console.log(J);if("string"===a.outputMode)return J;if("base64"===a.outputMode)return L(J);try{A=
new Blob([J],{type:"application/xml;charset=utf-8"}),saveAs(A,a.fileName+".xml")}catch(b){H(a.fileName+".xml","data:application/xml;charset=utf-8;base64,",J)}}else if("excel"===a.type&&"xmlss"===a.excelFileFormat){var la=[],F=[];c(v).filter(function(){return P(c(this))}).each(function(){function b(a,b,d){var g=[];c(a).each(function(){var b=0,f=0;m="";B(this,"td,th",k,d+a.length,function(a,d,l){if(null!==a){var e="";d=z(a,d,l);l="String";if(!1!==jQuery.isNumeric(d))l="Number";else{var h=Da(d);!1!==
h&&(d=h,l="Number",e+=' ss:StyleID="pct1"')}"Number"!==l&&(d=d.replace(/\n/g,"<br>"));h=R(a);a=S(a);c.each(g,function(){if(k>=this.s.r&&k<=this.e.r&&f>=this.s.c&&f<=this.e.c)for(var a=0;a<=this.e.c-this.s.c;++a)f++,b++});if(a||h)a=a||1,h=h||1,g.push({s:{r:k,c:f},e:{r:k+a-1,c:f+h-1}});1<h&&(e+=' ss:MergeAcross="'+(h-1)+'"',f+=h-1);1<a&&(e+=' ss:MergeDown="'+(a-1)+'" ss:StyleID="rsp1"');0<b&&(e+=' ss:Index="'+(f+1)+'"',b=0);m+="<Cell"+e+'><Data ss:Type="'+l+'">'+c("<div />").text(d).html()+"</Data></Cell>\r";
f++}});0<m.length&&(E+='<Row ss:AutoFitHeight="0">\r'+m+"</Row>\r");k++});return a.length}var d=c(this),f="";"string"===typeof a.worksheetName&&a.worksheetName.length?f=a.worksheetName+" "+(F.length+1):"undefined"!==typeof a.worksheetName[F.length]&&(f=a.worksheetName[F.length]);f.length||(f=d.find("caption").text()||"");f.length||(f="Table "+(F.length+1));f=c.trim(f.replace(/[\\\/[\]*:?'"]/g,"").substring(0,31));F.push(c("<div />").text(f).html());!1===a.exportHiddenCells&&(K=d.find("tr, th, td").filter(":hidden"),
T=0<K.length);k=0;Q=O(this);E="<Table>\r";f=0;f+=b(d.find("thead").first().find(a.theadSelector),"th,td",f);b(u(d),"td,th",f);E+="</Table>\r";la.push(E);!0===a.consoleLog&&console.log(E)});h={};for(var y={},n,N,V=0,aa=F.length;V<aa;V++)n=F[V],N=h[n],N=h[n]=null==N?1:N+1,2==N&&(F[y[n]]=F[y[n]].substring(0,29)+"-1"),1<h[n]?F[V]=F[V].substring(0,29)+"-"+h[n]:y[n]=V;h='<?xml version="1.0" encoding="UTF-8"?>\r<?mso-application progid="Excel.Sheet"?>\r<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"\r xmlns:o="urn:schemas-microsoft-com:office:office"\r xmlns:x="urn:schemas-microsoft-com:office:excel"\r xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"\r xmlns:html="http://www.w3.org/TR/REC-html40">\r<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">\r <Created>'+
(new Date).toISOString()+'</Created>\r</DocumentProperties>\r<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">\r <AllowPNG/>\r</OfficeDocumentSettings>\r<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">\r <WindowHeight>9000</WindowHeight>\r <WindowWidth>13860</WindowWidth>\r <WindowTopX>0</WindowTopX>\r <WindowTopY>0</WindowTopY>\r <ProtectStructure>False</ProtectStructure>\r <ProtectWindows>False</ProtectWindows>\r</ExcelWorkbook>\r<Styles>\r <Style ss:ID="Default" ss:Name="Normal">\r <Alignment ss:Vertical="Bottom"/>\r <Borders/>\r <Font/>\r <Interior/>\r <NumberFormat/>\r <Protection/>\r </Style>\r <Style ss:ID="rsp1">\r <Alignment ss:Vertical="Center"/>\r </Style>\r <Style ss:ID="pct1">\r <NumberFormat ss:Format="Percent"/>\r </Style>\r</Styles>\r';
for(y=0;y<la.length;y++)h+='<Worksheet ss:Name="'+F[y]+'" ss:RightToLeft="'+(a.excelRTL?"1":"0")+'">\r'+la[y],h=a.excelRTL?h+'<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">\r<DisplayRightToLeft/>\r</WorksheetOptions>\r':h+'<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"/>\r',h+="</Worksheet>\r";h+="</Workbook>\r";!0===a.consoleLog&&console.log(h);if("string"===a.outputMode)return h;if("base64"===a.outputMode)return L(h);try{A=new Blob([h],{type:"application/xml;charset=utf-8"}),
saveAs(A,a.fileName+".xml")}catch(b){H(a.fileName+".xml","data:application/xml;charset=utf-8;base64,",h)}}else if("excel"==a.type||"xls"==a.type||"word"==a.type||"doc"==a.type){h="excel"==a.type||"xls"==a.type?"excel":"word";y="excel"==h?"xls":"doc";n='xmlns:x="urn:schemas-microsoft-com:office:'+h+'"';var E="",X="";c(v).filter(function(){return P(c(this))}).each(function(){var b=c(this);""===X&&(X=a.worksheetName||b.find("caption").text()||"Table",X=c.trim(X.replace(/[\\\/[\]*:?'"]/g,"").substring(0,
31)));!1===a.exportHiddenCells&&(K=b.find("tr, th, td").filter(":hidden"),T=0<K.length);k=0;G=[];Q=O(this);E+="<table><thead>";q=b.find("thead").first().find(a.theadSelector);q.each(function(){m="";B(this,"th,td",k,q.length,function(b,f,e){if(null!==b){var g="";m+="<th";for(var d in a.excelstyles)if(a.excelstyles.hasOwnProperty(d)){var h=c(b).css(a.excelstyles[d]);""!==h&&"0px none rgb(0, 0, 0)"!=h&&"rgba(0, 0, 0, 0)"!=h&&(g+=""===g?'style="':";",g+=a.excelstyles[d]+":"+h)}""!==g&&(m+=" "+g+'"');
g=R(b);0<g&&(m+=' colspan="'+g+'"');g=S(b);0<g&&(m+=' rowspan="'+g+'"');m+=">"+z(b,f,e)+"</th>"}});0<m.length&&(E+="<tr>"+m+"</tr>");k++});E+="</thead><tbody>";t=u(b);c(t).each(function(){var b=c(this);m="";B(this,"td,th",k,q.length+t.length,function(d,e,g){if(null!==d){var f=z(d,e,g),h="",k=c(d).data("tableexport-msonumberformat");"undefined"==typeof k&&"function"===typeof a.onMsoNumberFormat&&(k=a.onMsoNumberFormat(d,e,g));"undefined"!=typeof k&&""!==k&&(h="style=\"mso-number-format:'"+k+"'");for(var p in a.excelstyles)a.excelstyles.hasOwnProperty(p)&&
(k=c(d).css(a.excelstyles[p]),""===k&&(k=b.css(a.excelstyles[p])),""!==k&&"0px none rgb(0, 0, 0)"!=k&&"rgba(0, 0, 0, 0)"!=k&&(h+=""===h?'style="':";",h+=a.excelstyles[p]+":"+k));m+="<td";""!==h&&(m+=" "+h+'"');e=R(d);0<e&&(m+=' colspan="'+e+'"');d=S(d);0<d&&(m+=' rowspan="'+d+'"');"string"===typeof f&&""!=f&&(f=f.replace(/\n/g,"<br>"));m+=">"+f+"</td>"}});0<m.length&&(E+="<tr>"+m+"</tr>");k++});a.displayTableName&&(E+="<tr><td></td></tr><tr><td></td></tr><tr><td>"+z(c("<p>"+a.tableName+"</p>"))+"</td></tr>");
E+="</tbody></table>";!0===a.consoleLog&&console.log(E)});n='<html xmlns:o="urn:schemas-microsoft-com:office:office" '+n+' xmlns="http://www.w3.org/TR/REC-html40">'+('<meta http-equiv="content-type" content="application/vnd.ms-'+h+'; charset=UTF-8">')+"<head>";"excel"===h&&(n+="\x3c!--[if gte mso 9]>",n+="<xml>",n+="<x:ExcelWorkbook>",n+="<x:ExcelWorksheets>",n+="<x:ExcelWorksheet>",n+="<x:Name>",n+=X,n+="</x:Name>",n+="<x:WorksheetOptions>",n+="<x:DisplayGridlines/>",a.excelRTL&&(n+="<x:DisplayRightToLeft/>"),
n+="</x:WorksheetOptions>",n+="</x:ExcelWorksheet>",n+="</x:ExcelWorksheets>",n+="</x:ExcelWorkbook>",n+="</xml>",n+="<![endif]--\x3e");n+="<style>br {mso-data-placement:same-cell;}</style>";n+="</head>";n+="<body>";n+=E;n+="</body>";n+="</html>";!0===a.consoleLog&&console.log(n);if("string"===a.outputMode)return n;if("base64"===a.outputMode)return L(n);try{A=new Blob([n],{type:"application/vnd.ms-"+a.type}),saveAs(A,a.fileName+"."+y)}catch(b){H(a.fileName+"."+y,"data:application/vnd.ms-"+h+";base64,",
n)}}else if("xlsx"==a.type){var wa=[],ma=[];k=0;t=c(v).find("thead").first().find(a.theadSelector).toArray();t.push.apply(t,u(c(v)));c(t).each(function(){var b=[];B(this,"th,td",k,t.length,function(d,e,h){if("undefined"!==typeof d&&null!==d){h=z(d,e,h);e=R(d);d=S(d);c.each(ma,function(){if(k>=this.s.r&&k<=this.e.r&&b.length>=this.s.c&&b.length<=this.e.c)for(var a=0;a<=this.e.c-this.s.c;++a)b.push(null)});if(d||e)e=e||1,ma.push({s:{r:k,c:b.length},e:{r:k+(d||1)-1,c:b.length+e-1}});"function"!==typeof a.onCellData&&
""!==h&&h==+h&&(h=+h);b.push(""!==h?h:null);if(e)for(d=0;d<e-1;++d)b.push(null)}});wa.push(b);k++});h=new ia;y=Fa(wa);y["!merges"]=ma;h.SheetNames.push(a.worksheetName);h.Sheets[a.worksheetName]=y;h=XLSX.write(h,{bookType:a.type,bookSST:!1,type:"binary"});try{A=new Blob([ua(h)],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8"}),saveAs(A,a.fileName+"."+a.type)}catch(b){H(a.fileName+"."+a.type,"data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8,",
ua(h))}}else if("png"==a.type)html2canvas(c(v)[0]).then(function(b){b=b.toDataURL();for(var c=atob(b.substring(22)),e=new ArrayBuffer(c.length),h=new Uint8Array(e),g=0;g<c.length;g++)h[g]=c.charCodeAt(g);!0===a.consoleLog&&console.log(c);if("string"===a.outputMode)return c;if("base64"===a.outputMode)return L(b);if("window"===a.outputMode)window.open(b);else try{A=new Blob([e],{type:"image/png"}),saveAs(A,a.fileName+".png")}catch(l){H(a.fileName+".png","data:image/png,",A)}});else if("pdf"==a.type)if(!0===
a.pdfmake.enabled){h=[];var xa=[];k=0;G=[];y=function(a,d,e){var b=0;c(a).each(function(){var a=[];B(this,d,k,e,function(b,c,d){if("undefined"!==typeof b&&null!==b){var g=R(b),e=S(b);b=z(b,c,d)||" ";1<g||1<e?a.push({colSpan:g||1,rowSpan:e||1,text:b}):a.push(b)}else a.push(" ")});a.length&&xa.push(a);b<a.length&&(b=a.length);k++});return b};q=c(this).find("thead").first().find(a.theadSelector);n=y(q,"th,td",q.length);for(N=h.length;N<n;N++)h.push("*");t=u(c(this));y(t,"th,td",q.length+t.length);h=
{content:[{table:{headerRows:q.length,widths:h,body:xa}}]};c.extend(!0,h,a.pdfmake.docDefinition);pdfMake.fonts={Roboto:{normal:"Roboto-Regular.ttf",bold:"Roboto-Medium.ttf",italics:"Roboto-Italic.ttf",bolditalics:"Roboto-MediumItalic.ttf"}};c.extend(!0,pdfMake.fonts,a.pdfmake.fonts);pdfMake.createPdf(h).getBuffer(function(b){try{var c=new Blob([b],{type:"application/pdf"});saveAs(c,a.fileName+".pdf")}catch(f){H(a.fileName+".pdf","data:application/pdf;base64,",b)}})}else if(!1===a.jspdf.autotable){h=
{dim:{w:ca(c(v).first().get(0),"width","mm"),h:ca(c(v).first().get(0),"height","mm")},pagesplit:!1};var ya=new jsPDF(a.jspdf.orientation,a.jspdf.unit,a.jspdf.format);ya.addHTML(c(v).first(),a.jspdf.margins.left,a.jspdf.margins.top,h,function(){na(ya,!1)})}else{var e=a.jspdf.autotable.tableExport;if("string"===typeof a.jspdf.format&&"bestfit"===a.jspdf.format.toLowerCase()){var Y={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89]},fa="",Z="",za=0;
c(v).each(function(){if(P(c(this))){var a=ca(c(this).get(0),"width","pt");if(a>za){a>Y.a0[0]&&(fa="a0",Z="l");for(var d in Y)Y.hasOwnProperty(d)&&Y[d][1]>a&&(fa=d,Z="l",Y[d][0]>a&&(Z="p"));za=a}}});a.jspdf.format=""===fa?"a4":fa;a.jspdf.orientation=""===Z?"w":Z}if(null==e.doc&&(e.doc=new jsPDF(a.jspdf.orientation,a.jspdf.unit,a.jspdf.format),"function"===typeof a.jspdf.onDocCreated))a.jspdf.onDocCreated(e.doc);!0===e.outputImages&&(e.images={});"undefined"!=typeof e.images&&(c(v).filter(function(){return P(c(this))}).each(function(){var b=
0;G=[];!1===a.exportHiddenCells&&(K=c(this).find("tr, th, td").filter(":hidden"),T=0<K.length);q=c(this).find("thead").find(a.theadSelector);t=u(c(this));c(t).each(function(){B(this,"td,th",q.length+b,q.length+t.length,function(a){if("undefined"!==typeof a&&null!==a){var b=c(a).children();"undefined"!=typeof b&&0<b.length&&pa(a,b,e)}});b++})}),q=[],t=[]);Ca(e,function(){c(v).filter(function(){return P(c(this))}).each(function(){var b;k=0;G=[];!1===a.exportHiddenCells&&(K=c(this).find("tr, th, td").filter(":hidden"),
T=0<K.length);Q=O(this);e.columns=[];e.rows=[];e.rowoptions={};if("function"===typeof e.onTable&&!1===e.onTable(c(this),a))return!0;a.jspdf.autotable.tableExport=null;var d=c.extend(!0,{},a.jspdf.autotable);a.jspdf.autotable.tableExport=e;d.margin={};c.extend(!0,d.margin,a.jspdf.margins);d.tableExport=e;"function"!==typeof d.beforePageContent&&(d.beforePageContent=function(a){if(1==a.pageCount){var b=a.table.rows.concat(a.table.headerRow);c.each(b,function(){0<this.height&&(this.height+=(2-1.15)/
2*this.styles.fontSize,a.table.height+=(2-1.15)/2*this.styles.fontSize)})}});"function"!==typeof d.createdHeaderCell&&(d.createdHeaderCell=function(a,b){a.styles=c.extend({},b.row.styles);if("undefined"!=typeof e.columns[b.column.dataKey]){var g=e.columns[b.column.dataKey];if("undefined"!=typeof g.rect){a.contentWidth=g.rect.width;if("undefined"==typeof e.heightRatio||0===e.heightRatio){var f=b.row.raw[b.column.dataKey].rowspan?b.row.raw[b.column.dataKey].rect.height/b.row.raw[b.column.dataKey].rowspan:
b.row.raw[b.column.dataKey].rect.height;e.heightRatio=a.styles.rowHeight/f}f=b.row.raw[b.column.dataKey].rect.height*e.heightRatio;f>a.styles.rowHeight&&(a.styles.rowHeight=f)}"undefined"!=typeof g.style&&!0!==g.style.hidden&&(a.styles.halign=g.style.align,"inherit"===d.styles.fillColor&&(a.styles.fillColor=g.style.bcolor),"inherit"===d.styles.textColor&&(a.styles.textColor=g.style.color),"inherit"===d.styles.fontStyle&&(a.styles.fontStyle=g.style.fstyle))}});"function"!==typeof d.createdCell&&(d.createdCell=
function(a,b){b=e.rowoptions[b.row.index+":"+b.column.dataKey];"undefined"!=typeof b&&"undefined"!=typeof b.style&&!0!==b.style.hidden&&(a.styles.halign=b.style.align,"inherit"===d.styles.fillColor&&(a.styles.fillColor=b.style.bcolor),"inherit"===d.styles.textColor&&(a.styles.textColor=b.style.color),"inherit"===d.styles.fontStyle&&(a.styles.fontStyle=b.style.fstyle))});"function"!==typeof d.drawHeaderCell&&(d.drawHeaderCell=function(a,b){var c=e.columns[b.column.dataKey];return(!0!==c.style.hasOwnProperty("hidden")||
!0!==c.style.hidden)&&0<=c.rowIndex?oa(a,b,c):!1});"function"!==typeof d.drawCell&&(d.drawCell=function(a,b){var c=e.rowoptions[b.row.index+":"+b.column.dataKey];if(oa(a,b,c))if(e.doc.rect(a.x,a.y,a.width,a.height,a.styles.fillStyle),"undefined"!=typeof c&&"undefined"!=typeof c.kids&&0<c.kids.length){b=a.height/c.rect.height;if(b>e.dh||"undefined"==typeof e.dh)e.dh=b;e.dw=a.width/c.rect.width;b=a.textPos.y;ra(a,c.kids,e);a.textPos.y=b;sa(a,c.kids,e)}else sa(a,{},e);return!1});e.headerrows=[];q=c(this).find("thead").find(a.theadSelector);
q.each(function(){b=0;e.headerrows[k]=[];B(this,"th,td",k,q.length,function(a,c,d){var g=ta(a);g.title=z(a,c,d);g.key=b++;g.rowIndex=k;e.headerrows[k].push(g)});k++});if(0<k)for(var f=k-1;0<=f;)c.each(e.headerrows[f],function(){var a=this;0<f&&null===this.rect&&(a=e.headerrows[f-1][this.key]);null!==a&&0<=a.rowIndex&&(!0!==a.style.hasOwnProperty("hidden")||!0!==a.style.hidden)&&e.columns.push(a)}),f=0<e.columns.length?-1:f-1;var h=0;t=[];t=u(c(this));c(t).each(function(){var a=[];b=0;B(this,"td,th",
k,q.length+t.length,function(d,f,g){if("undefined"===typeof e.columns[b]){var k={title:"",key:b,style:{hidden:!0}};e.columns.push(k)}"undefined"!==typeof d&&null!==d?(k=ta(d),k.kids=c(d).children()):(k=c.extend(!0,{},e.rowoptions[h+":"+(b-1)]),k.colspan=-1);e.rowoptions[h+":"+b++]=k;a.push(z(d,f,g))});a.length&&(e.rows.push(a),h++);k++});if("function"===typeof e.onBeforeAutotable)e.onBeforeAutotable(c(this),e.columns,e.rows,d);e.doc.autoTable(e.columns,e.rows,d);if("function"===typeof e.onAfterAutotable)e.onAfterAutotable(c(this),
d);a.jspdf.autotable.startY=e.doc.autoTableEndPosY()+d.margin.top});na(e.doc,"undefined"!=typeof e.images&&!1===jQuery.isEmptyObject(e.images));"undefined"!=typeof e.headerrows&&(e.headerrows.length=0);"undefined"!=typeof e.columns&&(e.columns.length=0);"undefined"!=typeof e.rows&&(e.rows.length=0);delete e.doc;e.doc=null})}return this}})(jQuery);
(function(c){c.fn.tableExport=function(g){function u(b){var d=[];C(b,"tbody").each(function(){d.push.apply(d,D(c(this),a.tbodySelector).toArray())});a.tfootSelector.length&&C(b,"tfoot").each(function(){d.push.apply(d,D(c(this),a.tfootSelector).toArray())});return d}function C(b,a){var d=b.parents("table").length;return b.find(a).filter(function(){return c(this).closest("table").parents("table").length===d})}function D(b,d){return b.find(d).filter(function(){return 0===a.maxNestedTables||c(this).find("table").length<
a.maxNestedTables&&c(this).parents("table").length<=a.maxNestedTables})}function P(b){var a=[];c(b).find("thead").first().find("th").each(function(b,d){void 0!==c(d).attr("data-field")?a[b]=c(d).attr("data-field"):a[b]=b.toString()});return a}function Q(b){var a="undefined"!==typeof b[0].cellIndex,e="undefined"!==typeof b[0].rowIndex,t=a||e?Aa(b):b.is(":visible"),h=b.data("tableexport-display");a&&"none"!==h&&"always"!==h&&(b=c(b[0].parentNode),e="undefined"!==typeof b[0].rowIndex,h=b.data("tableexport-display"));
e&&"none"!==h&&"always"!==h&&(h=b.closest("table").data("tableexport-display"));return"none"!==h&&(!0===t||"always"===h)}function Aa(b){var a=[];U&&(a=I.filter(function(){var a=!1;this.nodeType===b[0].nodeType&&("undefined"!==typeof this.rowIndex&&this.rowIndex===b[0].rowIndex?a=!0:"undefined"!==typeof this.cellIndex&&this.cellIndex===b[0].cellIndex&&"undefined"!==typeof this.parentNode.rowIndex&&"undefined"!==typeof b[0].parentNode.rowIndex&&this.parentNode.rowIndex===b[0].parentNode.rowIndex&&(a=
!0));return a}));return!1===U||0===a.length}function Ba(b,d,e){var t=!1;Q(b)?0<a.ignoreColumn.length&&(-1!==c.inArray(e,a.ignoreColumn)||-1!==c.inArray(e-d,a.ignoreColumn)||R.length>e&&"undefined"!==typeof R[e]&&-1!==c.inArray(R[e],a.ignoreColumn))&&(t=!0):t=!0;return t}function B(b,d,e,t,h){if("function"===typeof h){var l=!1;"function"===typeof a.onIgnoreRow&&(l=a.onIgnoreRow(c(b),e));if(!1===l&&-1===c.inArray(e,a.ignoreRow)&&-1===c.inArray(e-t,a.ignoreRow)&&Q(c(b))){var w=c(b).find(d),p=0;w.each(function(b){var a=
c(this),d,l=S(this),t=T(this);c.each(F,function(){if(e>=this.s.r&&e<=this.e.r&&p>=this.s.c&&p<=this.e.c)for(d=0;d<=this.e.c-this.s.c;++d)h(null,e,p++)});if(!1===Ba(a,w.length,b)){if(t||l)l=l||1,F.push({s:{r:e,c:p},e:{r:e+(t||1)-1,c:p+l-1}});h(this,e,p++)}if(l)for(d=0;d<l-1;++d)h(null,e,p++)});c.each(F,function(){if(e>=this.s.r&&e<=this.e.r&&p>=this.s.c&&p<=this.e.c)for(aa=0;aa<=this.e.c-this.s.c;++aa)h(null,e,p++)})}}}function na(b,d){if("string"===a.outputMode)return b.output();if("base64"===a.outputMode)return J(b.output());
if("window"===a.outputMode)window.URL=window.URL||window.webkitURL,window.open(window.URL.createObjectURL(b.output("blob")));else try{var e=b.output("blob");saveAs(e,a.fileName+".pdf")}catch(t){G(a.fileName+".pdf","data:application/pdf"+(d?"":";base64")+",",d?b.output("blob"):b.output())}}function oa(b,a,e){var d=0;"undefined"!==typeof e&&(d=e.colspan);if(0<=d){for(var h=b.width,c=b.textPos.x,w=a.table.columns.indexOf(a.column),p=1;p<d;p++)h+=a.table.columns[w+p].width;1<d&&("right"===b.styles.halign?
c=b.textPos.x+h-b.width:"center"===b.styles.halign&&(c=b.textPos.x+(h-b.width)/2));b.width=h;b.textPos.x=c;"undefined"!==typeof e&&1<e.rowspan&&(b.height*=e.rowspan);if("middle"===b.styles.valign||"bottom"===b.styles.valign)e=("string"===typeof b.text?b.text.split(/\r\n|\r|\n/g):b.text).length||1,2<e&&(b.textPos.y-=(2-1.15)/2*a.row.styles.fontSize*(e-2)/3);return!0}return!1}function pa(b,a,e){"undefined"!==typeof e.images&&a.each(function(){var a=c(this).children();if(c(this).is("img")){var d=qa(this.src);
e.images[d]={url:this.src,src:this.src}}"undefined"!==typeof a&&0<a.length&&pa(b,a,e)})}function Ca(b,a){function d(b){if(b.url){var d=new Image;h=++l;d.crossOrigin="Anonymous";d.onerror=d.onload=function(){if(d.complete&&(0===d.src.indexOf("data:image/")&&(d.width=b.width||d.width||0,d.height=b.height||d.height||0),d.width+d.height)){var e=document.createElement("canvas"),c=e.getContext("2d");e.width=d.width;e.height=d.height;c.drawImage(d,0,0);b.src=e.toDataURL("image/jpeg")}--l||a(h)};d.src=b.url}}
var c,h=0,l=0;if("undefined"!==typeof b.images)for(c in b.images)b.images.hasOwnProperty(c)&&d(b.images[c]);(b=l)||(a(h),b=void 0);return b}function ra(b,d,e){d.each(function(){var d=c(this).children(),h=0;if(c(this).is("div")){var l=ba(K(this,"background-color"),[255,255,255]),w=ba(K(this,"border-top-color"),[0,0,0]),p=ca(this,"border-top-width",a.jspdf.unit),f=this.getBoundingClientRect(),g=this.offsetLeft*e.dw;h=this.offsetTop*e.dh;var k=f.width*e.dw;f=f.height*e.dh;e.doc.setDrawColor.apply(void 0,
w);e.doc.setFillColor.apply(void 0,l);e.doc.setLineWidth(p);e.doc.rect(b.x+g,b.y+h,k,f,p?"FD":"F")}else if(c(this).is("img")&&"undefined"!==typeof e.images&&(l=qa(this.src),l=e.images[l],"undefined"!==typeof l)){w=b.width/b.height;p=this.width/this.height;g=b.width;k=b.height;f=19.049976/25.4;p<=w?(k=Math.min(b.height,this.height),g=this.width*k/this.height):p>w&&(g=Math.min(b.width,this.width),k=this.height*g/this.width);g*=f;k*=f;k<b.height&&(h=(b.height-k)/2);try{e.doc.addImage(l.src,b.textPos.x,
b.y+h,g,k)}catch(Ga){}b.textPos.x+=g}"undefined"!==typeof d&&0<d.length&&ra(b,d,e)})}function sa(b,a,e){if("function"===typeof e.onAutotableText)e.onAutotableText(e.doc,b,a);else{var d=b.textPos.x,h=b.textPos.y,l={halign:b.styles.halign,valign:b.styles.valign};if(a.length){for(a=a[0];a.previousSibling;)a=a.previousSibling;for(var w=!1,p=!1;a;){var f=a.innerText||a.textContent||"";f=(f.length&&" "===f[0]?" ":"")+c.trim(f)+(1<f.length&&" "===f[f.length-1]?" ":"");c(a).is("br")&&(d=b.textPos.x,h+=e.doc.internal.getFontSize());
c(a).is("b")?w=!0:c(a).is("i")&&(p=!0);(w||p)&&e.doc.setFontType(w&&p?"bolditalic":w?"bold":"italic");var g=e.doc.getStringUnitWidth(f)*e.doc.internal.getFontSize();if(g){if("linebreak"===b.styles.overflow&&d>b.textPos.x&&d+g>b.textPos.x+b.width){if(0<=".,!%*;:=-".indexOf(f.charAt(0))){var k=f.charAt(0);g=e.doc.getStringUnitWidth(k)*e.doc.internal.getFontSize();d+g<=b.textPos.x+b.width&&(e.doc.autoTableText(k,d,h,l),f=f.substring(1,f.length));g=e.doc.getStringUnitWidth(f)*e.doc.internal.getFontSize()}d=
b.textPos.x;h+=e.doc.internal.getFontSize()}if("visible"!==b.styles.overflow)for(;f.length&&d+g>b.textPos.x+b.width;)f=f.substring(0,f.length-1),g=e.doc.getStringUnitWidth(f)*e.doc.internal.getFontSize();e.doc.autoTableText(f,d,h,l);d+=g}if(w||p)c(a).is("b")?w=!1:c(a).is("i")&&(p=!1),e.doc.setFontType(w||p?w?"bold":"italic":"normal");a=a.nextSibling}b.textPos.x=d;b.textPos.y=h}else e.doc.autoTableText(b.text,b.textPos.x,b.textPos.y,l)}}function da(b,a,e){return b.replace(new RegExp(a.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,
"\\$1"),"g"),e)}function ha(b){b=da(b||"0",a.numbers.html.thousandsSeparator,"");b=da(b,a.numbers.html.decimalMark,".");return"number"===typeof b||!1!==jQuery.isNumeric(b)?b:!1}function Da(b){-1<b.indexOf("%")?(b=ha(b.replace(/%/g,"")),!1!==b&&(b/=100)):b=!1;return b}function z(b,d,e){var t="";if(null!==b){var h=c(b);if(h[0].hasAttribute("data-tableexport-value"))var l=(l=h.data("tableexport-value"))?l+"":"";else if(l=h.html(),"function"===typeof a.onCellHtmlData)l=a.onCellHtmlData(h,d,e,l);else if(""!==
l){var f=c.parseHTML(l),p=0,g=0;l="";c.each(f,function(){if(c(this).is("input"))l+=h.find("input").eq(p++).val();else if(c(this).is("select"))l+=h.find("select option:selected").eq(g++).text();else if("undefined"===typeof c(this).html())l+=c(this).text();else if(void 0===jQuery().bootstrapTable||!0!==c(this).hasClass("filterControl")&&0===c(b).parents(".detail-view").length)l+=c(this).html()})}if(!0===a.htmlContent)t=c.trim(l);else if(l&&""!==l)if(""!==c(b).data("tableexport-cellformat")){var k=l.replace(/\n/g,
"\u2028").replace(/<br\s*[\/]?>/gi,"\u2060"),m=c("<div/>").html(k).contents();f=!1;k="";c.each(m.text().split("\u2028"),function(b,a){0<b&&(k+=" ");k+=c.trim(a)});c.each(k.split("\u2060"),function(b,a){0<b&&(t+="\n");t+=c.trim(a).replace(/\u00AD/g,"")});if("json"===a.type||"excel"===a.type&&"xmlss"===a.mso.fileFormat||!1===a.numbers.output)f=ha(t),!1!==f&&(t=Number(f));else if(a.numbers.html.decimalMark!==a.numbers.output.decimalMark||a.numbers.html.thousandsSeparator!==a.numbers.output.thousandsSeparator)if(f=
ha(t),!1!==f){m=(""+f.substr(0>f?1:0)).split(".");1===m.length&&(m[1]="");var n=3<m[0].length?m[0].length%3:0;t=(0>f?"-":"")+(a.numbers.output.thousandsSeparator?(n?m[0].substr(0,n)+a.numbers.output.thousandsSeparator:"")+m[0].substr(n).replace(/(\d{3})(?=\d)/g,"$1"+a.numbers.output.thousandsSeparator):m[0])+(m[1].length?a.numbers.output.decimalMark+m[1]:"")}}else t=l;!0===a.escape&&(t=escape(t));"function"===typeof a.onCellData&&(t=a.onCellData(h,d,e,t))}return t}function Ea(b,a,e){return a+"-"+
e.toLowerCase()}function ba(b,a){(b=/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/.exec(b))&&(a=[parseInt(b[1]),parseInt(b[2]),parseInt(b[3])]);return a}function ta(b){var a=K(b,"text-align"),e=K(b,"font-weight"),c=K(b,"font-style"),h="";"start"===a&&(a="rtl"===K(b,"direction")?"right":"left");700<=e&&(h="bold");"italic"===c&&(h+=c);""===h&&(h="normal");a={style:{align:a,bcolor:ba(K(b,"background-color"),[255,255,255]),color:ba(K(b,"color"),[0,0,0]),fstyle:h},colspan:S(b),rowspan:T(b)};null!==b&&
(b=b.getBoundingClientRect(),a.rect={width:b.width,height:b.height});return a}function S(a){var b=c(a).data("tableexport-colspan");"undefined"===typeof b&&c(a).is("[colspan]")&&(b=c(a).attr("colspan"));return parseInt(b)||0}function T(a){var b=c(a).data("tableexport-rowspan");"undefined"===typeof b&&c(a).is("[rowspan]")&&(b=c(a).attr("rowspan"));return parseInt(b)||0}function K(a,d){try{return window.getComputedStyle?(d=d.replace(/([a-z])([A-Z])/,Ea),window.getComputedStyle(a,null).getPropertyValue(d)):
a.currentStyle?a.currentStyle[d]:a.style[d]}catch(e){}return""}function ca(a,d,e){d=K(a,d).match(/\d+/);if(null!==d){d=d[0];a=a.parentElement;var b=document.createElement("div");b.style.overflow="hidden";b.style.visibility="hidden";a.appendChild(b);b.style.width=100+e;e=100/b.offsetWidth;a.removeChild(b);return d*e}return 0}function ia(){if(!(this instanceof ia))return new ia;this.SheetNames=[];this.Sheets={}}function ua(a){for(var b=new ArrayBuffer(a.length),e=new Uint8Array(b),c=0;c!==a.length;++c)e[c]=
a.charCodeAt(c)&255;return b}function Fa(a){for(var b={},e={s:{c:1E7,r:1E7},e:{c:0,r:0}},c=0;c!==a.length;++c)for(var h=0;h!==a[c].length;++h){e.s.r>c&&(e.s.r=c);e.s.c>h&&(e.s.c=h);e.e.r<c&&(e.e.r=c);e.e.c<h&&(e.e.c=h);var l={v:a[c][h]};if(null!==l.v){var f=XLSX.utils.encode_cell({c:h,r:c});if("number"===typeof l.v)l.t="n";else if("boolean"===typeof l.v)l.t="b";else if(l.v instanceof Date){l.t="n";l.z=XLSX.SSF._table[14];var g=l;var k=(Date.parse(l.v)-new Date(Date.UTC(1899,11,30)))/864E5;g.v=k}else l.t=
"s";b[f]=l}}1E7>e.s.c&&(b["!ref"]=XLSX.utils.encode_range(e));return b}function qa(a){var b=0,c;if(0===a.length)return b;var f=0;for(c=a.length;f<c;f++){var h=a.charCodeAt(f);b=(b<<5)-b+h;b|=0}return b}function G(a,c,e){var b=window.navigator.userAgent;if(!1!==a&&window.navigator.msSaveOrOpenBlob)window.navigator.msSaveOrOpenBlob(new Blob([e]),a);else if(!1!==a&&(0<b.indexOf("MSIE ")||b.match(/Trident.*rv:11\./))){if(c=document.createElement("iframe")){document.body.appendChild(c);c.setAttribute("style",
"display:none");c.contentDocument.open("txt/plain","replace");c.contentDocument.write(e);c.contentDocument.close();c.contentDocument.focus();switch(a.substr(a.lastIndexOf(".")+1)){case "doc":case "json":case "png":case "pdf":case "xls":case "xlsx":a+=".txt"}c.contentDocument.execCommand("SaveAs",!0,a);document.body.removeChild(c)}}else{var d=document.createElement("a");if(d){var l=null;d.style.display="none";!1!==a?d.download=a:d.target="_blank";"object"===typeof e?(window.URL=window.URL||window.webkitURL,
l=window.URL.createObjectURL(e),d.href=l):0<=c.toLowerCase().indexOf("base64,")?d.href=c+J(e):d.href=c+encodeURIComponent(e);document.body.appendChild(d);if(document.createEvent)null===ea&&(ea=document.createEvent("MouseEvents")),ea.initEvent("click",!0,!1),d.dispatchEvent(ea);else if(document.createEventObject)d.fireEvent("onclick");else if("function"===typeof d.onclick)d.onclick();setTimeout(function(){l&&window.URL.revokeObjectURL(l);document.body.removeChild(d)},100)}}}function J(a){var b,c="",
f=0;if("string"===typeof a){a=a.replace(/\x0d\x0a/g,"\n");var h="";for(b=0;b<a.length;b++){var l=a.charCodeAt(b);128>l?h+=String.fromCharCode(l):(127<l&&2048>l?h+=String.fromCharCode(l>>6|192):(h+=String.fromCharCode(l>>12|224),h+=String.fromCharCode(l>>6&63|128)),h+=String.fromCharCode(l&63|128))}a=h}for(;f<a.length;){var g=a.charCodeAt(f++);h=a.charCodeAt(f++);b=a.charCodeAt(f++);l=g>>2;g=(g&3)<<4|h>>4;var k=(h&15)<<2|b>>6;var m=b&63;isNaN(h)?k=m=64:isNaN(b)&&(m=64);c=c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(l)+
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(g)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(k)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(m)}return c}var a={csvEnclosure:'"',csvSeparator:",",csvUseBOM:!0,displayTableName:!1,escape:!1,exportHiddenCells:!1,fileName:"tableExport",htmlContent:!1,ignoreColumn:[],ignoreRow:[],jsonScope:"all",jspdf:{orientation:"p",unit:"pt",format:"a4",margins:{left:20,right:10,
top:10,bottom:10},onDocCreated:null,autotable:{styles:{cellPadding:2,rowHeight:12,fontSize:8,fillColor:255,textColor:50,fontStyle:"normal",overflow:"ellipsize",halign:"left",valign:"middle"},headerStyles:{fillColor:[52,73,94],textColor:255,fontStyle:"bold",halign:"center"},alternateRowStyles:{fillColor:245},tableExport:{doc:null,onAfterAutotable:null,onBeforeAutotable:null,onAutotableText:null,onTable:null,outputImages:!0}}},maxNestedTables:1,mso:{fileFormat:"xlshtml",onMsoNumberFormat:null,pageFormat:"a4",
pageOrientation:"portrait",rtl:!1,styles:[],worksheetName:""},numbers:{html:{decimalMark:".",thousandsSeparator:","},output:{decimalMark:".",thousandsSeparator:","}},onCellData:null,onCellHtmlData:null,onIgnoreRow:null,outputMode:"file",pdfmake:{enabled:!1,docDefinition:{pageOrientation:"portrait",defaultStyle:{font:"Roboto"}},fonts:{}},tbodySelector:"tr",tfootSelector:"tr",theadSelector:"tr",tableName:"Table",type:"csv"},L={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,
1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,
323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],"government-letter":[576,756],legal:[612,1008],"junior-legal":[576,360],ledger:[1224,792],tabloid:[792,1224],"credit-card":[153,243]},v=this,ea=null,q=[],r=[],m=0,n="",R=[],F=[],I=[],U=!1;c.extend(!0,a,g);"xlsx"===a.type&&(a.mso.fileFormat=a.type,a.type="excel");"undefined"!==typeof a.excelFileFormat&&"undefined"===a.mso.fileFormat&&(a.mso.fileFormat=a.excelFileFormat);"undefined"!==typeof a.excelPageFormat&&
"undefined"===a.mso.pageFormat&&(a.mso.pageFormat=a.excelPageFormat);"undefined"!==typeof a.excelPageOrientation&&"undefined"===a.mso.pageOrientation&&(a.mso.pageOrientation=a.excelPageOrientation);"undefined"!==typeof a.excelRTL&&"undefined"===a.mso.rtl&&(a.mso.rtl=a.excelRTL);"undefined"!==typeof a.excelstyles&&"undefined"===a.mso.styles&&(a.mso.styles=a.excelstyles);"undefined"!==typeof a.onMsoNumberFormat&&"undefined"===a.mso.onMsoNumberFormat&&(a.mso.onMsoNumberFormat=a.onMsoNumberFormat);"undefined"!==
typeof a.worksheetName&&"undefined"===a.mso.worksheetName&&(a.mso.worksheetName=a.worksheetName);a.mso.pageOrientation="l"===a.mso.pageOrientation.substr(0,1)?"landscape":"portrait";a.maxNestedTables=0<=a.maxNestedTables?a.maxNestedTables:1;R=P(v);if("csv"===a.type||"tsv"===a.type||"txt"===a.type){var M="",X=0;F=[];m=0;var ja=function(b,d,e){b.each(function(){n="";B(this,d,m,e+b.length,function(b,c,d){var e=n,h="";if(null!==b)if(b=z(b,c,d),c=null===b||""===b?"":b.toString(),"tsv"===a.type)b instanceof
Date&&b.toLocaleString(),h=da(c,"\t"," ");else if(b instanceof Date)h=a.csvEnclosure+b.toLocaleString()+a.csvEnclosure;else if(h=da(c,a.csvEnclosure,a.csvEnclosure+a.csvEnclosure),0<=h.indexOf(a.csvSeparator)||/[\r\n ]/g.test(h))h=a.csvEnclosure+h+a.csvEnclosure;n=e+(h+("tsv"===a.type?"\t":a.csvSeparator))});n=c.trim(n).substring(0,n.length-1);0<n.length&&(0<M.length&&(M+="\n"),M+=n);m++});return b.length};X+=ja(c(v).find("thead").first().find(a.theadSelector),"th,td",X);C(c(v),"tbody").each(function(){X+=
ja(D(c(this),a.tbodySelector),"td,th",X)});a.tfootSelector.length&&ja(c(v).find("tfoot").first().find(a.tfootSelector),"td,th",X);M+="\n";if("string"===a.outputMode)return M;if("base64"===a.outputMode)return J(M);if("window"===a.outputMode){G(!1,"data:text/"+("csv"===a.type?"csv":"plain")+";charset=utf-8,",M);return}try{var A=new Blob([M],{type:"text/"+("csv"===a.type?"csv":"plain")+";charset=utf-8"});saveAs(A,a.fileName+"."+a.type,"csv"!==a.type||!1===a.csvUseBOM)}catch(b){G(a.fileName+"."+a.type,
"data:text/"+("csv"===a.type?"csv":"plain")+";charset=utf-8,"+("csv"===a.type&&a.csvUseBOM?"\ufeff":""),M)}}else if("sql"===a.type){m=0;F=[];var x="INSERT INTO `"+a.tableName+"` (";q=c(v).find("thead").first().find(a.theadSelector);q.each(function(){B(this,"th,td",m,q.length,function(a,c,e){x+="'"+z(a,c,e)+"',"});m++;x=c.trim(x).substring(0,x.length-1)});x+=") VALUES ";r=u(c(v));c(r).each(function(){n="";B(this,"td,th",m,q.length+r.length,function(a,c,e){n+="'"+z(a,c,e)+"',"});3<n.length&&(x+="("+
n,x=c.trim(x).substring(0,x.length-1),x+="),");m++});x=c.trim(x).substring(0,x.length-1);x+=";";if("string"===a.outputMode)return x;if("base64"===a.outputMode)return J(x);try{A=new Blob([x],{type:"text/plain;charset=utf-8"}),saveAs(A,a.fileName+".sql")}catch(b){G(a.fileName+".sql","data:application/sql;charset=utf-8,",x)}}else if("json"===a.type){var V=[];F=[];q=c(v).find("thead").first().find(a.theadSelector);q.each(function(){var a=[];B(this,"th,td",m,q.length,function(b,c,f){a.push(z(b,c,f))});
V.push(a)});var ka=[];r=u(c(v));c(r).each(function(){var a={},d=0;B(this,"td,th",m,q.length+r.length,function(b,c,h){V.length?a[V[V.length-1][d]]=z(b,c,h):a[d]=z(b,c,h);d++});!1===c.isEmptyObject(a)&&ka.push(a);m++});g="";g="head"===a.jsonScope?JSON.stringify(V):"data"===a.jsonScope?JSON.stringify(ka):JSON.stringify({header:V,data:ka});if("string"===a.outputMode)return g;if("base64"===a.outputMode)return J(g);try{A=new Blob([g],{type:"application/json;charset=utf-8"}),saveAs(A,a.fileName+".json")}catch(b){G(a.fileName+
".json","data:application/json;charset=utf-8;base64,",g)}}else if("xml"===a.type){m=0;F=[];var N='<?xml version="1.0" encoding="utf-8"?>';N+="<tabledata><fields>";q=c(v).find("thead").first().find(a.theadSelector);q.each(function(){B(this,"th,td",m,q.length,function(a,c,e){N+="<field>"+z(a,c,e)+"</field>"});m++});N+="</fields><data>";var va=1;r=u(c(v));c(r).each(function(){var a=1;n="";B(this,"td,th",m,q.length+r.length,function(b,c,f){n+="<column-"+a+">"+z(b,c,f)+"</column-"+a+">";a++});0<n.length&&
"<column-1></column-1>"!==n&&(N+='<row id="'+va+'">'+n+"</row>",va++);m++});N+="</data></tabledata>";if("string"===a.outputMode)return N;if("base64"===a.outputMode)return J(N);try{A=new Blob([N],{type:"application/xml;charset=utf-8"}),saveAs(A,a.fileName+".xml")}catch(b){G(a.fileName+".xml","data:application/xml;charset=utf-8;base64,",N)}}else if("excel"===a.type&&"xmlss"===a.mso.fileFormat){var la=[],E=[];c(v).filter(function(){return Q(c(this))}).each(function(){function b(a,b,d){var e=[];c(a).each(function(){var b=
0,h=0;n="";B(this,"td,th",m,d+a.length,function(a,d,l){if(null!==a){var f="";d=z(a,d,l);l="String";if(!1!==jQuery.isNumeric(d))l="Number";else{var g=Da(d);!1!==g&&(d=g,l="Number",f+=' ss:StyleID="pct1"')}"Number"!==l&&(d=d.replace(/\n/g,"<br>"));g=S(a);a=T(a);c.each(e,function(){if(m>=this.s.r&&m<=this.e.r&&h>=this.s.c&&h<=this.e.c)for(var a=0;a<=this.e.c-this.s.c;++a)h++,b++});if(a||g)a=a||1,g=g||1,e.push({s:{r:m,c:h},e:{r:m+a-1,c:h+g-1}});1<g&&(f+=' ss:MergeAcross="'+(g-1)+'"',h+=g-1);1<a&&(f+=
' ss:MergeDown="'+(a-1)+'" ss:StyleID="rsp1"');0<b&&(f+=' ss:Index="'+(h+1)+'"',b=0);n+="<Cell"+f+'><Data ss:Type="'+l+'">'+c("<div />").text(d).html()+"</Data></Cell>\r";h++}});0<n.length&&(H+='<Row ss:AutoFitHeight="0">\r'+n+"</Row>\r");m++});return a.length}var d=c(this),e="";"string"===typeof a.mso.worksheetName&&a.mso.worksheetName.length?e=a.mso.worksheetName+" "+(E.length+1):"undefined"!==typeof a.mso.worksheetName[E.length]&&(e=a.mso.worksheetName[E.length]);e.length||(e=d.find("caption").text()||
"");e.length||(e="Table "+(E.length+1));e=c.trim(e.replace(/[\\\/[\]*:?'"]/g,"").substring(0,31));E.push(c("<div />").text(e).html());!1===a.exportHiddenCells&&(I=d.find("tr, th, td").filter(":hidden"),U=0<I.length);m=0;R=P(this);H="<Table>\r";e=0;e+=b(d.find("thead").first().find(a.theadSelector),"th,td",e);b(u(d),"td,th",e);H+="</Table>\r";la.push(H)});g={};for(var y={},k,O,W=0,aa=E.length;W<aa;W++)k=E[W],O=g[k],O=g[k]=null==O?1:O+1,2===O&&(E[y[k]]=E[y[k]].substring(0,29)+"-1"),1<g[k]?E[W]=E[W].substring(0,
29)+"-"+g[k]:y[k]=W;g='<?xml version="1.0" encoding="UTF-8"?>\r<?mso-application progid="Excel.Sheet"?>\r<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"\r xmlns:o="urn:schemas-microsoft-com:office:office"\r xmlns:x="urn:schemas-microsoft-com:office:excel"\r xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"\r xmlns:html="http://www.w3.org/TR/REC-html40">\r<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">\r <Created>'+(new Date).toISOString()+'</Created>\r</DocumentProperties>\r<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">\r <AllowPNG/>\r</OfficeDocumentSettings>\r<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">\r <WindowHeight>9000</WindowHeight>\r <WindowWidth>13860</WindowWidth>\r <WindowTopX>0</WindowTopX>\r <WindowTopY>0</WindowTopY>\r <ProtectStructure>False</ProtectStructure>\r <ProtectWindows>False</ProtectWindows>\r</ExcelWorkbook>\r<Styles>\r <Style ss:ID="Default" ss:Name="Normal">\r <Alignment ss:Vertical="Bottom"/>\r <Borders/>\r <Font/>\r <Interior/>\r <NumberFormat/>\r <Protection/>\r </Style>\r <Style ss:ID="rsp1">\r <Alignment ss:Vertical="Center"/>\r </Style>\r <Style ss:ID="pct1">\r <NumberFormat ss:Format="Percent"/>\r </Style>\r</Styles>\r';
for(y=0;y<la.length;y++)g+='<Worksheet ss:Name="'+E[y]+'" ss:RightToLeft="'+(a.mso.rtl?"1":"0")+'">\r'+la[y],g=a.mso.rtl?g+'<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">\r<DisplayRightToLeft/>\r</WorksheetOptions>\r':g+'<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"/>\r',g+="</Worksheet>\r";g+="</Workbook>\r";if("string"===a.outputMode)return g;if("base64"===a.outputMode)return J(g);try{A=new Blob([g],{type:"application/xml;charset=utf-8"}),saveAs(A,a.fileName+
".xml")}catch(b){G(a.fileName+".xml","data:application/xml;charset=utf-8;base64,",g)}}else if("excel"===a.type&&"xlsx"===a.mso.fileFormat){var wa=[],ma=[];m=0;r=c(v).find("thead").first().find(a.theadSelector).toArray();r.push.apply(r,u(c(v)));c(r).each(function(){var b=[];B(this,"th,td",m,r.length,function(d,e,f){if("undefined"!==typeof d&&null!==d){f=z(d,e,f);e=S(d);d=T(d);c.each(ma,function(){if(m>=this.s.r&&m<=this.e.r&&b.length>=this.s.c&&b.length<=this.e.c)for(var a=0;a<=this.e.c-this.s.c;++a)b.push(null)});
if(d||e)e=e||1,ma.push({s:{r:m,c:b.length},e:{r:m+(d||1)-1,c:b.length+e-1}});"function"!==typeof a.onCellData&&""!==f&&f===+f&&(f=+f);b.push(""!==f?f:null);if(e)for(d=0;d<e-1;++d)b.push(null)}});wa.push(b);m++});g=new ia;y=Fa(wa);y["!merges"]=ma;XLSX.utils.book_append_sheet(g,y,a.mso.worksheetName);g=XLSX.write(g,{type:"binary",bookType:a.mso.fileFormat,bookSST:!1});try{A=new Blob([ua(g)],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8"}),saveAs(A,a.fileName+
"."+a.mso.fileFormat)}catch(b){G(a.fileName+"."+a.mso.fileFormat,"data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8,",ua(g))}}else if("excel"===a.type||"xls"===a.type||"word"===a.type||"doc"===a.type){g="excel"===a.type||"xls"===a.type?"excel":"word";y="excel"===g?"xls":"doc";k='xmlns:x="urn:schemas-microsoft-com:office:'+g+'"';var H="",Y="";c(v).filter(function(){return Q(c(this))}).each(function(){var b=c(this);""===Y&&(Y=a.mso.worksheetName||b.find("caption").text()||
"Table",Y=c.trim(Y.replace(/[\\\/[\]*:?'"]/g,"").substring(0,31)));!1===a.exportHiddenCells&&(I=b.find("tr, th, td").filter(":hidden"),U=0<I.length);m=0;F=[];R=P(this);H+="<table><thead>";q=b.find("thead").first().find(a.theadSelector);q.each(function(){n="";B(this,"th,td",m,q.length,function(b,e,f){if(null!==b){var d="";n+="<th";for(var l in a.mso.styles)if(a.mso.styles.hasOwnProperty(l)){var g=c(b).css(a.mso.styles[l]);""!==g&&"0px none rgb(0, 0, 0)"!==g&&"rgba(0, 0, 0, 0)"!==g&&(d+=""===d?'style="':
";",d+=a.mso.styles[l]+":"+g)}""!==d&&(n+=" "+d+'"');d=S(b);0<d&&(n+=' colspan="'+d+'"');d=T(b);0<d&&(n+=' rowspan="'+d+'"');n+=">"+z(b,e,f)+"</th>"}});0<n.length&&(H+="<tr>"+n+"</tr>");m++});H+="</thead><tbody>";r=u(b);c(r).each(function(){var b=c(this);n="";B(this,"td,th",m,q.length+r.length,function(d,f,h){if(null!==d){var e=z(d,f,h),g="",k=c(d).data("tableexport-msonumberformat");"undefined"===typeof k&&"function"===typeof a.mso.onMsoNumberFormat&&(k=a.mso.onMsoNumberFormat(d,f,h));"undefined"!==
typeof k&&""!==k&&(g="style=\"mso-number-format:'"+k+"'");for(var m in a.mso.styles)a.mso.styles.hasOwnProperty(m)&&(k=c(d).css(a.mso.styles[m]),""===k&&(k=b.css(a.mso.styles[m])),""!==k&&"0px none rgb(0, 0, 0)"!==k&&"rgba(0, 0, 0, 0)"!==k&&(g+=""===g?'style="':";",g+=a.mso.styles[m]+":"+k));n+="<td";""!==g&&(n+=" "+g+'"');f=S(d);0<f&&(n+=' colspan="'+f+'"');d=T(d);0<d&&(n+=' rowspan="'+d+'"');"string"===typeof e&&""!==e&&(e=e.replace(/\n/g,"<br>"));n+=">"+e+"</td>"}});0<n.length&&(H+="<tr>"+n+"</tr>");
m++});a.displayTableName&&(H+="<tr><td></td></tr><tr><td></td></tr><tr><td>"+z(c("<p>"+a.tableName+"</p>"))+"</td></tr>");H+="</tbody></table>"});k='<html xmlns:o="urn:schemas-microsoft-com:office:office" '+k+' xmlns="http://www.w3.org/TR/REC-html40">'+('<meta http-equiv="content-type" content="application/vnd.ms-'+g+'; charset=UTF-8">')+"<head>";"excel"===g&&(k+="\x3c!--[if gte mso 9]>",k+="<xml>",k+="<x:ExcelWorkbook>",k+="<x:ExcelWorksheets>",k+="<x:ExcelWorksheet>",k+="<x:Name>",k+=Y,k+="</x:Name>",
k+="<x:WorksheetOptions>",k+="<x:DisplayGridlines/>",a.mso.rtl&&(k+="<x:DisplayRightToLeft/>"),k+="</x:WorksheetOptions>",k+="</x:ExcelWorksheet>",k+="</x:ExcelWorksheets>",k+="</x:ExcelWorkbook>",k+="</xml>",k+="<![endif]--\x3e");k+="<style>";k+="@page { size:"+a.mso.pageOrientation+"; mso-page-orientation:"+a.mso.pageOrientation+"; }";k+="@page Section1 {size:"+L[a.mso.pageFormat][0]+"pt "+L[a.mso.pageFormat][1]+"pt";k+="; margin:1.0in 1.25in 1.0in 1.25in;mso-header-margin:.5in;mso-footer-margin:.5in;mso-paper-source:0;}";
k+="div.Section1 {page:Section1;}";k+="@page Section2 {size:"+L[a.mso.pageFormat][1]+"pt "+L[a.mso.pageFormat][0]+"pt";k+=";mso-page-orientation:"+a.mso.pageOrientation+";margin:1.25in 1.0in 1.25in 1.0in;mso-header-margin:.5in;mso-footer-margin:.5in;mso-paper-source:0;}";k+="div.Section2 {page:Section2;}";k+="br {mso-data-placement:same-cell;}";k+="</style>";k+="</head>";k+="<body>";k+='<div class="Section'+("landscape"===a.mso.pageOrientation?"2":"1")+'">';k+=H;k+="</div>";k+="</body>";k+="</html>";
if("string"===a.outputMode)return k;if("base64"===a.outputMode)return J(k);try{A=new Blob([k],{type:"application/vnd.ms-"+a.type}),saveAs(A,a.fileName+"."+y)}catch(b){G(a.fileName+"."+y,"data:application/vnd.ms-"+g+";base64,",k)}}else if("png"===a.type)html2canvas(c(v)[0]).then(function(b){b=b.toDataURL();for(var c=atob(b.substring(22)),e=new ArrayBuffer(c.length),f=new Uint8Array(e),h=0;h<c.length;h++)f[h]=c.charCodeAt(h);if("string"===a.outputMode)return c;if("base64"===a.outputMode)return J(b);
if("window"===a.outputMode)window.open(b);else try{A=new Blob([e],{type:"image/png"}),saveAs(A,a.fileName+".png")}catch(l){G(a.fileName+".png","data:image/png,",A)}});else if("pdf"===a.type)if(!0===a.pdfmake.enabled){g=[];var xa=[];m=0;F=[];y=function(a,d,e){var b=0;c(a).each(function(){var a=[];B(this,d,m,e,function(b,c,d){if("undefined"!==typeof b&&null!==b){var e=S(b),h=T(b);b=z(b,c,d)||" ";1<e||1<h?a.push({colSpan:e||1,rowSpan:h||1,text:b}):a.push(b)}else a.push(" ")});a.length&&xa.push(a);b<
a.length&&(b=a.length);m++});return b};q=c(this).find("thead").first().find(a.theadSelector);k=y(q,"th,td",q.length);for(O=g.length;O<k;O++)g.push("*");r=u(c(this));y(r,"th,td",q.length+r.length);g={content:[{table:{headerRows:q.length,widths:g,body:xa}}]};c.extend(!0,g,a.pdfmake.docDefinition);pdfMake.fonts={Roboto:{normal:"Roboto-Regular.ttf",bold:"Roboto-Medium.ttf",italics:"Roboto-Italic.ttf",bolditalics:"Roboto-MediumItalic.ttf"}};c.extend(!0,pdfMake.fonts,a.pdfmake.fonts);pdfMake.createPdf(g).getBuffer(function(b){try{var c=
new Blob([b],{type:"application/pdf"});saveAs(c,a.fileName+".pdf")}catch(e){G(a.fileName+".pdf","data:application/pdf;base64,",b)}})}else if(!1===a.jspdf.autotable){g={dim:{w:ca(c(v).first().get(0),"width","mm"),h:ca(c(v).first().get(0),"height","mm")},pagesplit:!1};var ya=new jsPDF(a.jspdf.orientation,a.jspdf.unit,a.jspdf.format);ya.addHTML(c(v).first(),a.jspdf.margins.left,a.jspdf.margins.top,g,function(){na(ya,!1)})}else{var f=a.jspdf.autotable.tableExport;if("string"===typeof a.jspdf.format&&
"bestfit"===a.jspdf.format.toLowerCase()){var fa="",Z="",za=0;c(v).each(function(){if(Q(c(this))){var a=ca(c(this).get(0),"width","pt");if(a>za){a>L.a0[0]&&(fa="a0",Z="l");for(var d in L)L.hasOwnProperty(d)&&L[d][1]>a&&(fa=d,Z="l",L[d][0]>a&&(Z="p"));za=a}}});a.jspdf.format=""===fa?"a4":fa;a.jspdf.orientation=""===Z?"w":Z}if(null==f.doc&&(f.doc=new jsPDF(a.jspdf.orientation,a.jspdf.unit,a.jspdf.format),"function"===typeof a.jspdf.onDocCreated))a.jspdf.onDocCreated(f.doc);!0===f.outputImages&&(f.images=
{});"undefined"!==typeof f.images&&(c(v).filter(function(){return Q(c(this))}).each(function(){var b=0;F=[];!1===a.exportHiddenCells&&(I=c(this).find("tr, th, td").filter(":hidden"),U=0<I.length);q=c(this).find("thead").find(a.theadSelector);r=u(c(this));c(r).each(function(){B(this,"td,th",q.length+b,q.length+r.length,function(a){if("undefined"!==typeof a&&null!==a){var b=c(a).children();"undefined"!==typeof b&&0<b.length&&pa(a,b,f)}});b++})}),q=[],r=[]);Ca(f,function(){c(v).filter(function(){return Q(c(this))}).each(function(){var b;
m=0;F=[];!1===a.exportHiddenCells&&(I=c(this).find("tr, th, td").filter(":hidden"),U=0<I.length);R=P(this);f.columns=[];f.rows=[];f.rowoptions={};if("function"===typeof f.onTable&&!1===f.onTable(c(this),a))return!0;a.jspdf.autotable.tableExport=null;var d=c.extend(!0,{},a.jspdf.autotable);a.jspdf.autotable.tableExport=f;d.margin={};c.extend(!0,d.margin,a.jspdf.margins);d.tableExport=f;"function"!==typeof d.beforePageContent&&(d.beforePageContent=function(a){if(1===a.pageCount){var b=a.table.rows.concat(a.table.headerRow);
c.each(b,function(){0<this.height&&(this.height+=(2-1.15)/2*this.styles.fontSize,a.table.height+=(2-1.15)/2*this.styles.fontSize)})}});"function"!==typeof d.createdHeaderCell&&(d.createdHeaderCell=function(a,b){a.styles=c.extend({},b.row.styles);if("undefined"!==typeof f.columns[b.column.dataKey]){var e=f.columns[b.column.dataKey];if("undefined"!==typeof e.rect){a.contentWidth=e.rect.width;if("undefined"===typeof f.heightRatio||0===f.heightRatio){var h=b.row.raw[b.column.dataKey].rowspan?b.row.raw[b.column.dataKey].rect.height/
b.row.raw[b.column.dataKey].rowspan:b.row.raw[b.column.dataKey].rect.height;f.heightRatio=a.styles.rowHeight/h}h=b.row.raw[b.column.dataKey].rect.height*f.heightRatio;h>a.styles.rowHeight&&(a.styles.rowHeight=h)}"undefined"!==typeof e.style&&!0!==e.style.hidden&&(a.styles.halign=e.style.align,"inherit"===d.styles.fillColor&&(a.styles.fillColor=e.style.bcolor),"inherit"===d.styles.textColor&&(a.styles.textColor=e.style.color),"inherit"===d.styles.fontStyle&&(a.styles.fontStyle=e.style.fstyle))}});
"function"!==typeof d.createdCell&&(d.createdCell=function(a,b){b=f.rowoptions[b.row.index+":"+b.column.dataKey];"undefined"!==typeof b&&"undefined"!==typeof b.style&&!0!==b.style.hidden&&(a.styles.halign=b.style.align,"inherit"===d.styles.fillColor&&(a.styles.fillColor=b.style.bcolor),"inherit"===d.styles.textColor&&(a.styles.textColor=b.style.color),"inherit"===d.styles.fontStyle&&(a.styles.fontStyle=b.style.fstyle))});"function"!==typeof d.drawHeaderCell&&(d.drawHeaderCell=function(a,b){var c=
f.columns[b.column.dataKey];return(!0!==c.style.hasOwnProperty("hidden")||!0!==c.style.hidden)&&0<=c.rowIndex?oa(a,b,c):!1});"function"!==typeof d.drawCell&&(d.drawCell=function(a,b){var c=f.rowoptions[b.row.index+":"+b.column.dataKey];if(oa(a,b,c))if(f.doc.rect(a.x,a.y,a.width,a.height,a.styles.fillStyle),"undefined"!==typeof c&&"undefined"!==typeof c.kids&&0<c.kids.length){b=a.height/c.rect.height;if(b>f.dh||"undefined"===typeof f.dh)f.dh=b;f.dw=a.width/c.rect.width;b=a.textPos.y;ra(a,c.kids,f);
a.textPos.y=b;sa(a,c.kids,f)}else sa(a,{},f);return!1});f.headerrows=[];q=c(this).find("thead").find(a.theadSelector);q.each(function(){b=0;f.headerrows[m]=[];B(this,"th,td",m,q.length,function(a,c,d){var e=ta(a);e.title=z(a,c,d);e.key=b++;e.rowIndex=m;f.headerrows[m].push(e)});m++});if(0<m)for(var e=m-1;0<=e;)c.each(f.headerrows[e],function(){var a=this;0<e&&null===this.rect&&(a=f.headerrows[e-1][this.key]);null!==a&&0<=a.rowIndex&&(!0!==a.style.hasOwnProperty("hidden")||!0!==a.style.hidden)&&f.columns.push(a)}),
e=0<f.columns.length?-1:e-1;var g=0;r=[];r=u(c(this));c(r).each(function(){var a=[];b=0;B(this,"td,th",m,q.length+r.length,function(d,e,h){if("undefined"===typeof f.columns[b]){var k={title:"",key:b,style:{hidden:!0}};f.columns.push(k)}"undefined"!==typeof d&&null!==d?(k=ta(d),k.kids=c(d).children()):(k=c.extend(!0,{},f.rowoptions[g+":"+(b-1)]),k.colspan=-1);f.rowoptions[g+":"+b++]=k;a.push(z(d,e,h))});a.length&&(f.rows.push(a),g++);m++});if("function"===typeof f.onBeforeAutotable)f.onBeforeAutotable(c(this),
f.columns,f.rows,d);f.doc.autoTable(f.columns,f.rows,d);if("function"===typeof f.onAfterAutotable)f.onAfterAutotable(c(this),d);a.jspdf.autotable.startY=f.doc.autoTableEndPosY()+d.margin.top});na(f.doc,"undefined"!==typeof f.images&&!1===jQuery.isEmptyObject(f.images));"undefined"!==typeof f.headerrows&&(f.headerrows.length=0);"undefined"!==typeof f.columns&&(f.columns.length=0);"undefined"!==typeof f.rows&&(f.rows.length=0);delete f.doc;f.doc=null})}return this}})(jQuery);
define("tableexport", ["jquery"], (function (global) {
return function () {
@ -6118,16 +6122,16 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
return Upload;
});
/*! nice-validator 1.1.3
* (c) 2012-2017 Jony Zhang <niceue@live.com>, MIT Licensed
/*! nice-validator 1.1.4
* (c) 2012-2018 Jony Zhang <niceue@live.com>, MIT Licensed
* https://github.com/niceue/nice-validator
*/
;(function(factory) {
typeof module === "object" && module.exports ? module.exports = factory( require( "jquery" ) ) :
typeof module === 'object' && module.exports ? module.exports = factory( require( 'jquery' ) ) :
typeof define === 'function' && define.amd ? define('validator-core',['jquery'], factory) :
factory(jQuery);
}(function($, undefined) {
"use strict";
'use strict';
var NS = 'validator',
CLS_NS = '.' + NS,
@ -6406,7 +6410,7 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
}
options = me._opt = options || {};
dataOpt = attr(element, 'data-'+ NS +'-option');
dataOpt = me._dataOpt = dataOpt && dataOpt.charAt(0) === '{' ? (new Function("return " + dataOpt))() : {};
dataOpt = me._dataOpt = dataOpt && dataOpt.charAt(0) === '{' ? (new Function('return ' + dataOpt))() : {};
themeOpt = me._themeOpt = themes[ options.theme || dataOpt.theme || defaults.theme ];
opt = me.options = $.extend({}, defaults, fieldDefaults, themeOpt, me.options, options, dataOpt);
@ -6456,19 +6460,16 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
if ( !(me.isAjaxSubmit = !!me.options.valid) ) {
// if there is a "valid.form" event
var events = ($._data || $.data)(form, "events");
var events = ($._data || $.data)(form, 'events');
me.isAjaxSubmit = issetEvent(events, 'valid', 'form') || issetEvent(events, 'submit', 'form-plugin');
}
function issetEvent(events, name, namespace) {
if ( events && events[name] &&
$.map(events[name], function(e){
return !!(
events && events[name]
&& $.map(events[name], function(e){
return ~e.namespace.indexOf(namespace) ? 1 : null;
}).length
) {
return true;
}
return false;
}).length )
}
},
@ -6584,9 +6585,9 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
var args = arguments;
args[4] = args[4] || args[5];
field._rules.push({
and: args[1] === "&",
not: args[2] === "!",
or: args[6] === "|",
and: args[1] === '&',
not: args[2] === '!',
or: args[6] === '|',
method: args[3],
params: args[4] ? $.map( args[4].split(', '), trim ) : undefined
});
@ -6901,7 +6902,7 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
me.showMsg(type)
}
else if ( type === 'tip' ) {
me.$el.find(INPUT_SELECTOR +"["+ DATA_TIP +"]", el).each(function(){
me.$el.find(INPUT_SELECTOR +'['+ DATA_TIP +']', el).each(function(){
me.showMsg(this, {type: type, msg: msg});
});
}
@ -7017,7 +7018,7 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
rule = field._rules[field._i];
if (rule.not) {
msg = undefined;
isValid = method === "required" || !isValid;
isValid = method === 'required' || !isValid;
}
if (rule.or) {
if (isValid) {
@ -7122,7 +7123,7 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
field._r = method;
if (old && !field.must && !rule.must && rule.result !== undefined &&
old.ruleName === method && old.id === el.id &&
old.ruleName === method && old.id === el.id &&
field.value && old.value === field.value )
{
// get result from cache
@ -7535,7 +7536,7 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
},
getValue: function() {
var elem = this.element;
if (elem.type === "number" && elem.validity && elem.validity.badInput) {
if (elem.type === 'number' && elem.validity && elem.validity.badInput) {
return 'NaN';
}
return $(elem)[this._valHook()]();
@ -7643,8 +7644,9 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
var k, that = context ? context === true ? this : context : Rules.prototype;
for (k in obj) {
if (_checkRuleName(k))
if (_checkRuleName(k)) {
that[k] = _getRule(obj[k]);
}
}
}
@ -7718,7 +7720,7 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
function _getDataRule(el, method) {
var fn = trim(attr(el, DATA_RULE + '-' + method));
if ( fn && (fn = new Function("return " + fn)()) ) {
if ( fn && (fn = new Function('return ' + fn)()) ) {
return _getRule(fn);
}
}
@ -7761,8 +7763,8 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
// Translate field key to jQuery selector.
function _key2selector(key) {
var isID = key.charAt(0) === "#";
key = key.replace(/([:.{(|)}/\[\]])/g, "\\$1");
var isID = key.charAt(0) === '#';
key = key.replace(/([:.{(|)}/\[\]])/g, '\\$1');
return isID ? key : '[name="'+ key +'"]:first';
}
@ -7803,7 +7805,7 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
});
new Messages({
fallback: "This field is not valid.",
fallback: 'This field is not valid.',
loading: 'Validating...'
});
@ -7816,6 +7818,7 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
*
* @example:
required
required(jqSelector)
required(anotherRule)
required(not, -1)
required(from, .contact)
@ -7956,7 +7959,7 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
}
// If both fields are blank
if (!me.required && a === "" && b === "") {
if (!me.required && a === '' && b === '') {
return null;
}
@ -7972,7 +7975,7 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
}
// If the compared field is incorrect, we only ensure that this field is correct.
if (type !== "eq" && !isNaN(+a) && isNaN(+b)) {
if (type !== 'eq' && !isNaN(+a) && isNaN(+b)) {
return true;
}
@ -7993,7 +7996,7 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
return isValid || (
isObject(me.messages.match)
&& me.messages.match[type].replace( '{1}', me._getDisplay( element, field2.display || key ) )
&& me.messages.match[type].replace( '{1}', me._getDisplay( elem2, field2.display || key ) )
);
},
@ -8077,6 +8080,8 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
By GET: remote(get:path/to/server, name1, name2, ...);
Name proxy: remote(path/to/server, name1, proxyname2:name2, proxyname3:#id3, ...)
Query String remote(path/to/server, foo=1&bar=2, name1, name2, ...)
CORS remote(cors:path/to/server)
JSONP remote(jsonp:path/to/server)
*/
remote: function(element, params) {
if (!params) return;
@ -8137,7 +8142,7 @@ define('upload',['jquery', 'bootstrap', 'plupload', 'template'], function ($, un
*/
filter: function(element, params) {
var value = this.value,
temp = value.replace( params ? (new RegExp("[" + params[0] + "]", "gm")) : rUnsafe, '' );
temp = value.replace( params ? (new RegExp('[' + params[0] + ']', 'gm')) : rUnsafe, '' );
if (temp !== value) this.setValue(temp);
}
});
@ -9052,7 +9057,7 @@ define('form',['jquery', 'bootstrap', 'upload', 'validator'], function ($, undef
}
} else {
value = $("[name='" + name + "']:checked", that.$commonsearch).val();
value = (vObjCol && typeof vObjCol.process === 'function') ? vObjCol.process(obj.val()) : obj.val();
value = (vObjCol && typeof vObjCol.process === 'function') ? vObjCol.process(value) : value;
}
} else {
value = (vObjCol && typeof vObjCol.process === 'function') ? vObjCol.process(obj.val()) : obj.val();
@ -9156,7 +9161,7 @@ define('form',['jquery', 'bootstrap', 'upload', 'validator'], function ($, undef
var that = this,
html = [];
if(that.options.showSearch){
if (that.options.showSearch) {
html.push(sprintf('<div class="columns-%s pull-%s" style="margin-top:10px;margin-bottom:10px;">', this.options.buttonsAlign, this.options.buttonsAlign));
html.push(sprintf('<button class="btn btn-default%s' + '" type="button" name="commonSearch" title="%s">', that.options.iconSize === undefined ? '' : ' btn-' + that.options.iconSize, that.options.formatCommonSearch()));
html.push(sprintf('<i class="%s %s"></i>', that.options.iconsPrefix, that.options.icons.commonSearchIcon))
@ -9179,7 +9184,16 @@ define('form',['jquery', 'bootstrap', 'upload', 'validator'], function ($, undef
that.$container.on("click", "." + that.options.searchClass, function () {
var obj = $("form [name='" + $(this).data("field") + "']", that.$commonsearch);
if (obj.size() > 0) {
obj.val($(this).data("value"));
var value = $(this).data("value");
if (obj.is("select")) {
console.log($("option[value='" + value + "']", obj));
$("option[value='" + value + "']", obj).prop("selected", true);
} else if (obj.size() > 1) {
$("form [name='" + $(this).data("field") + "'][value='" + value + "']", that.$commonsearch).prop("checked", true);
} else {
obj.val(value);
}
obj.trigger("change");
$("form", that.$commonsearch).trigger("submit");
}
});
@ -9698,7 +9712,7 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
image: function (value, row, index) {
value = value ? value : '/assets/img/blank.gif';
var classname = typeof this.classname !== 'undefined' ? this.classname : 'img-sm img-center';
return '<img class="' + classname + '" src="' + Fast.api.cdnurl(value) + '" />';
return '<a href="' + Fast.api.cdnurl(value) + '" target="_blank"><img class="' + classname + '" src="' + Fast.api.cdnurl(value) + '" /></a>';
},
images: function (value, row, index) {
value = value === null ? '' : value.toString();
@ -9707,7 +9721,7 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
var html = [];
$.each(arr, function (i, value) {
value = value ? value : '/assets/img/blank.gif';
html.push('<img class="' + classname + '" src="' + Fast.api.cdnurl(value) + '" />');
html.push('<a href="' + Fast.api.cdnurl(value) + '" target="_blank"><img class="' + classname + '" src="' + Fast.api.cdnurl(value) + '" /></a>');
});
return html.join(' ');
},
@ -9720,9 +9734,12 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
}
value = value === null ? '' : value.toString();
var color = value && typeof colorArr[value] !== 'undefined' ? colorArr[value] : 'primary';
value = value.charAt(0).toUpperCase() + value.slice(1);
var newValue = value.charAt(0).toUpperCase() + value.slice(1);
//渲染状态
var html = '<span class="text-' + color + '"><i class="fa fa-circle"></i> ' + __(value) + '</span>';
var html = '<span class="text-' + color + '"><i class="fa fa-circle"></i> ' + __(newValue) + '</span>';
if (this.operate != false) {
html = '<a href="javascript:;" class="searchit" data-toggle="tooltip" title="' + __('Click to search %s', __(newValue)) + '" data-field="' + this.field + '" data-value="' + value + '">' + html + '</a>';
}
return html;
},
url: function (value, row, index) {
@ -9768,7 +9785,12 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr
return Table.api.formatter.flag.call(this, value, row, index);
},
datetime: function (value, row, index) {
return value ? Moment(parseInt(value) * 1000).format("YYYY-MM-DD HH:mm:ss") : __('None');
var datetimeFormat = typeof this.datetimeFormat === 'undefined' ? 'YYYY-MM-DD HH:mm:ss' : this.datetimeFormat;
if (isNaN(value)) {
return value ? Moment(value).format(datetimeFormat) : __('None');
} else {
return value ? Moment(parseInt(value) * 1000).format(datetimeFormat) : __('None');
}
},
operate: function (value, row, index) {
var table = this.table;
@ -10320,202 +10342,221 @@ define("drop", function(){});
/**
* http://git.oschina.net/hbbcs/bootStrap-addTabs
* Created by joe on 2015-12-19.
* Modified by Karson
*/
$.fn.addtabs = function (options) {
var obj = $(this);
options = $.extend({
content: '', //直接指定所有页面TABS内容
close: true, //是否可以关闭
monitor: 'body', //监视的区域
nav: '.nav-addtabs',
tab: '.tab-addtabs',
iframeUse: true, //使用iframe还是ajax
iframeHeight: $(window).height() - 50, //固定TAB中IFRAME高度,根据需要自己修改
iframeForceRefresh: false, //点击后强制刷新对应的iframe
callback: function () {
//关闭后回调函数
(function ($) {
$.fn.addtabs = function (options) {
var obj = $(this);
options = $.extend({
content: '', //直接指定所有页面TABS内容
close: true, //是否可以关闭
monitor: 'body', //监视的区域
nav: '.nav-addtabs',
tab: '.tab-addtabs',
iframeUse: true, //使用iframe还是ajax
iframeHeight: $(window).height() - 50, //固定TAB中IFRAME高度,根据需要自己修改
iframeForceRefresh: false, //点击后强制刷新对应的iframe
callback: function () {
//关闭后回调函数
}
}, options || {});
var navobj = $(options.nav);
var tabobj = $(options.tab);
if (history.pushState) {
//浏览器前进后退事件
$(window).on("popstate", function (e) {
var state = e.originalEvent.state;
if (state) {
$("a[addtabs=" + state.id + "]", options.monitor).data("pushstate", true).trigger("click");
}
});
}
}, options || {});
var navobj = $(options.nav);
var tabobj = $(options.tab);
if (history.pushState) {
//浏览器前进后退事件
$(window).on("popstate", function (e) {
var state = e.originalEvent.state;
if (state) {
$("a[addtabs=" + state.id + "]", options.monitor).data("pushstate", true).trigger("click");
$(options.monitor).on('click', '[addtabs]', function (e) {
if ($(this).attr('url').indexOf("javascript:") !== 0) {
if ($(this).is("a")) {
e.preventDefault();
}
var id = $(this).attr('addtabs');
var title = $(this).attr('title') ? $(this).attr('title') : $.trim($(this).text());
var url = $(this).attr('url');
var content = options.content ? options.content : $(this).attr('content');
var ajax = $(this).attr('ajax') ? true : false;
var state = ({
url: url, title: title, id: id, content: content, ajax: ajax
});
document.title = title;
if (history.pushState && !$(this).data("pushstate")) {
var pushurl = url.indexOf("ref=addtabs") == -1 ? (url + (url.indexOf("?") > -1 ? "&" : "?") + "ref=addtabs") : url;
try {
window.history.pushState(state, title, pushurl);
} catch (e) {
}
}
$(this).data("pushstate", null);
_add.call(this, {
id: id,
title: $(this).attr('title') ? $(this).attr('title') : $(this).html(),
content: content,
url: url,
ajax: ajax
});
}
});
}
$(options.monitor).on('click', '[addtabs]', function (e) {
if ($(this).attr('url').indexOf("javascript:") !== 0) {
if ($(this).is("a")) {
e.preventDefault();
navobj.on('click', '.close-tab', function (e) {
id = $(this).prev("a").attr("aria-controls");
_close(id);
return false;
});
navobj.on('dblclick', 'li[role=presentation]', function (e) {
$(this).find(".close-tab").trigger("click");
});
navobj.on('click', 'li[role=presentation]', function (e) {
$("a[addtabs=" + $("a", this).attr("node-id") + "]").trigger("click");
});
$(window).resize(function () {
if (typeof options.nav == 'object') {
var siblingsWidth = 0;
navobj.siblings().each(function () {
siblingsWidth += $(this).outerWidth();
});
navobj.width(navobj.parent().width() - siblingsWidth);
} else {
$("#nav").width($("#header > .navbar").width() - $(".sidebar-toggle").outerWidth() - $(".navbar-custom-menu").outerWidth() - 20);
}
var id = $(this).attr('addtabs');
var title = $(this).attr('title') ? $(this).attr('title') : $.trim($(this).text());
var url = $(this).attr('url');
var content = options.content ? options.content : $(this).attr('content');
var ajax = $(this).attr('ajax') ? true : false;
var state = ({
url: url, title: title, id: id, content: content, ajax: ajax
});
document.title = title;
if (history.pushState && !$(this).data("pushstate")) {
var pushurl = url.indexOf("ref=addtabs") == -1 ? (url + (url.indexOf("?") > -1 ? "&" : "?") + "ref=addtabs") : url;
try {
window.history.pushState(state, title, pushurl);
}catch(e){
_drop();
});
var _add = function (opts) {
var id, tabid, conid, url;
id = opts.id;
tabid = 'tab_' + opts.id;
conid = 'con_' + opts.id;
url = opts.url;
url += (opts.url.indexOf("?") > -1 ? "&addtabs=1" : "?addtabs=1");
navobj.find("[role='presentation']").removeClass('active');
tabobj.find("[role='tabpanel']").removeClass('active');
//如果TAB不存在创建一个新的TAB
if ($("#" + tabid).size() == 0) {
//创建新TAB的title
title = $('<li role="presentation" id="' + tabid + '"><a href="#' + conid + '" node-id="' + opts.id + '" aria-controls="' + id + '" role="tab" data-toggle="tab">' + opts.title + '</a></li>');
//是否允许关闭
if (options.close && $("li", navobj).size() > 0) {
title.append(' <i class="close-tab fa fa-remove"></i>');
}
//创建新TAB的内容
content = $('<div role="tabpanel" class="tab-pane" id="' + conid + '"></div>');
//是否指定TAB内容
if (opts.content) {
content.append(opts.content);
} else if (options.iframeUse && !opts.ajax) {//没有内容使用IFRAME打开链接
var height = options.iframeHeight;
content.append('<iframe src="' + url + '" width="100%" height="' + height + '" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling-x="no" scrolling-y="auto" allowtransparency="yes"></iframe></div>');
} else {
$.get(url, function (data) {
content.append(data);
});
}
//加入TABS
if ($('.tabdrop li').size() > 0) {
$('.tabdrop ul').append(title);
} else {
navobj.append(title);
}
tabobj.append(content);
} else {
//强制刷新iframe
if (options.iframeForceRefresh) {
$("#" + conid + " iframe").attr('src', function (i, val) {
return val;
});
}
}
$(this).data("pushstate", null);
_add.call(this, {
id: id,
title: $(this).attr('title') ? $(this).attr('title') : $(this).html(),
content: content,
url: url,
ajax: ajax
});
}
});
localStorage.setItem("addtabs", $(this).prop('outerHTML'));
//激活TAB
$("#" + tabid).addClass('active');
$("#" + conid).addClass("active");
_drop();
};
navobj.on('click', '.close-tab', function (e) {
id = $(this).prev("a").attr("aria-controls");
_close(id);
return false;
});
navobj.on('dblclick', 'li[role=presentation]', function (e) {
$(this).find(".close-tab").trigger("click");
});
navobj.on('click', 'li[role=presentation]', function (e) {
$("a[addtabs=" + $("a", this).attr("node-id") + "]").trigger("click");
});
var _close = function (id) {
var tabid = 'tab_' + id;
var conid = 'con_' + id;
//如果关闭的是当前激活的TAB激活他的前一个TAB
if (obj.find("li.active").not('.tabdrop').attr('id') == tabid) {
if ($("#" + tabid).prev().not(".tabdrop").size() > 0) {
$("#" + tabid).prev().not(".tabdrop").find("a").trigger("click");
} else if ($("#" + tabid).next().size() > 0) {
$("#" + tabid).next().trigger("click");
} else {
$(">li:last > a", navobj).trigger('click');
}
}
//关闭TAB
$("#" + tabid).remove();
$("#" + conid).remove();
_drop();
options.callback();
};
$(window).resize(function () {
$("#nav").width($("#header > .navbar").width() - $(".sidebar-toggle").outerWidth() - $(".navbar-custom-menu").outerWidth() - 20);
_drop();
});
_add = function (opts) {
var id, tabid, conid, url;
id = opts.id;
tabid = 'tab_' + opts.id;
conid = 'con_' + opts.id;
url = opts.url;
url += (opts.url.indexOf("?") > -1 ? "&addtabs=1" : "?addtabs=1");
navobj.find("[role='presentation']").removeClass('active');
tabobj.find("[role='tabpanel']").removeClass('active');
//如果TAB不存在创建一个新的TAB
if ($("#" + tabid).size() == 0) {
//创建新TAB的title
title = $('<li role="presentation" id="' + tabid + '"><a href="#' + conid + '" node-id="' + opts.id + '" aria-controls="' + id + '" role="tab" data-toggle="tab">' + opts.title + '</a></li>');
//是否允许关闭
if (options.close && $("li", navobj).size() > 0) {
title.append(' <i class="close-tab fa fa-remove"></i>');
}
//创建新TAB的内容
content = $('<div role="tabpanel" class="tab-pane" id="' + conid + '"></div>');
//是否指定TAB内容
if (opts.content) {
content.append(opts.content);
} else if (options.iframeUse && !opts.ajax) {//没有内容使用IFRAME打开链接
var height = options.iframeHeight;
content.append('<iframe src="' + url + '" width="100%" height="' + height + '" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling-x="no" scrolling-y="auto" allowtransparency="yes"></iframe></div>');
} else {
$.get(url, function (data) {
content.append(data);
});
}
//加入TABS
if ($('.tabdrop li').size() > 0) {
$('.tabdrop ul').append(title);
} else {
navobj.append(title);
}
tabobj.append(content);
} else {
//强制刷新iframe
if (options.iframeForceRefresh) {
$("#" + conid + " iframe").attr('src', function (i, val) {
return val;
});
}
}
localStorage.setItem("addtabs", $(this).prop('outerHTML'));
//激活TAB
$("#" + tabid).addClass('active');
$("#" + conid).addClass("active");
_drop();
var _drop = function () {
navobj.refreshAddtabs();
};
};
_close = function (id) {
var tabid = 'tab_' + id;
var conid = 'con_' + id;
//如果关闭的是当前激活的TAB激活他的前一个TAB
if (obj.find("li.active").not('.tabdrop').attr('id') == tabid) {
if ($("#" + tabid).prev().not(".tabdrop").size() > 0) {
$("#" + tabid).prev().not(".tabdrop").find("a").trigger("click");
} else if ($("#" + tabid).next().size() > 0) {
$("#" + tabid).next().trigger("click");
} else {
$(">li:last > a", navobj).trigger('click');
}
}
//关闭TAB
$("#" + tabid).remove();
$("#" + conid).remove();
_drop();
options.callback();
};
_drop = function () {
//创建下拉标签
var dropdown = $('<li class="dropdown pull-right hide tabdrop"><a class="dropdown-toggle" data-toggle="dropdown" href="javascript:;">' +
//刷新Addtabs
$.fn.refreshAddtabs = function () {
var navobj = $(this);
var dropdown = $(".tabdrop", navobj);
if (dropdown.size() == 0) {
var dropdown = $('<li class="dropdown pull-right hide tabdrop"><a class="dropdown-toggle" data-toggle="dropdown" href="javascript:;">' +
'<i class="glyphicon glyphicon-align-justify"></i>' +
' <b class="caret"></b></a><ul class="dropdown-menu"></ul></li>');
//检测是否已增加
if (!$('.tabdrop').html()) {
dropdown.prependTo(navobj);
} else {
dropdown = navobj.find('.tabdrop');
dropdown.appendTo(navobj);
}
//检测是否有下拉样式
if (navobj.parent().is('.tabs-below')) {
dropdown.addClass('dropup');
}
var collection = 0;
var maxwidth = navobj.width() - 60;
var collection = 0;
var maxwidth = navobj.width() - 65;
var liwidth = 0;
//检查超过一行的标签页
var litabs = navobj.append(dropdown.find('li')).find('>li').not('.tabdrop');
var lisize = litabs.size();
var totalwidth = 0;
litabs.each(function (i, j) {
liwidth += $(this).width();
if (collection == 0 && i == lisize - 1 && liwidth <= navobj.width()) {
return true;
}
if (liwidth > maxwidth) {
dropdown.find('ul').append($(this));
collection++;
}
totalwidth += $(this).outerWidth(true);
});
//如果有超出的,显示下拉标签
if (collection > 0) {
dropdown.removeClass('hide');
if (dropdown.find('.active').length == 1) {
dropdown.addClass('active');
} else {
dropdown.removeClass('active');
if (navobj.width() < totalwidth) {
litabs.each(function (i, j) {
liwidth += $(this).outerWidth(true);
if (liwidth > maxwidth) {
dropdown.find('ul').append($(this));
collection++;
}
});
if (collection > 0) {
dropdown.removeClass('hide');
if (dropdown.find('.active').length == 1) {
dropdown.addClass('active');
} else {
dropdown.removeClass('active');
}
}
} else {
dropdown.addClass('hide');
}
};
};
})(jQuery);
define("addtabs", function(){});

View File

@ -49,7 +49,7 @@ require.config({
'template': '../libs/art-template/dist/template-native',
'selectpage': '../libs/fastadmin-selectpage/selectpage',
'citypicker': '../libs/city-picker/dist/js/city-picker.min',
'citypicker-data': '../libs/city-picker/dist/js/city-picker.data',
'citypicker-data': '../libs/city-picker/dist/js/city-picker.data'
},
// shim依赖配置
shim: {
@ -102,7 +102,7 @@ require.config({
'moment/locale/zh-cn',
// 'css!../libs/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css',
],
'bootstrap-select': ['css!../libs/bootstrap-select/dist/css/bootstrap-select.min.css', ],
// 'bootstrap-select': ['css!../libs/bootstrap-select/dist/css/bootstrap-select.min.css', ],
'bootstrap-select-lang': ['bootstrap-select'],
// 'toastr': ['css!../libs/toastr/toastr.min.css'],
'jstree': ['css!../libs/jstree/dist/themes/default/style.css', ],

View File

@ -63,7 +63,7 @@ require.config({
'template': '../libs/art-template/dist/template-native',
'selectpage': '../libs/fastadmin-selectpage/selectpage',
'citypicker': '../libs/city-picker/dist/js/city-picker.min',
'citypicker-data': '../libs/city-picker/dist/js/city-picker.data',
'citypicker-data': '../libs/city-picker/dist/js/city-picker.data'
},
// shim依赖配置
shim: {
@ -116,7 +116,7 @@ require.config({
'moment/locale/zh-cn',
// 'css!../libs/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css',
],
'bootstrap-select': ['css!../libs/bootstrap-select/dist/css/bootstrap-select.min.css', ],
// 'bootstrap-select': ['css!../libs/bootstrap-select/dist/css/bootstrap-select.min.css', ],
'bootstrap-select-lang': ['bootstrap-select'],
// 'toastr': ['css!../libs/toastr/toastr.min.css'],
'jstree': ['css!../libs/jstree/dist/themes/default/style.css', ],

View File

@ -372,7 +372,7 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
image: function (value, row, index) {
value = value ? value : '/assets/img/blank.gif';
var classname = typeof this.classname !== 'undefined' ? this.classname : 'img-sm img-center';
return '<img class="' + classname + '" src="' + Fast.api.cdnurl(value) + '" />';
return '<a href="' + Fast.api.cdnurl(value) + '" target="_blank"><img class="' + classname + '" src="' + Fast.api.cdnurl(value) + '" /></a>';
},
images: function (value, row, index) {
value = value === null ? '' : value.toString();
@ -381,7 +381,7 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
var html = [];
$.each(arr, function (i, value) {
value = value ? value : '/assets/img/blank.gif';
html.push('<img class="' + classname + '" src="' + Fast.api.cdnurl(value) + '" />');
html.push('<a href="' + Fast.api.cdnurl(value) + '" target="_blank"><img class="' + classname + '" src="' + Fast.api.cdnurl(value) + '" /></a>');
});
return html.join(' ');
},
@ -394,9 +394,12 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
}
value = value === null ? '' : value.toString();
var color = value && typeof colorArr[value] !== 'undefined' ? colorArr[value] : 'primary';
value = value.charAt(0).toUpperCase() + value.slice(1);
var newValue = value.charAt(0).toUpperCase() + value.slice(1);
//渲染状态
var html = '<span class="text-' + color + '"><i class="fa fa-circle"></i> ' + __(value) + '</span>';
var html = '<span class="text-' + color + '"><i class="fa fa-circle"></i> ' + __(newValue) + '</span>';
if (this.operate != false) {
html = '<a href="javascript:;" class="searchit" data-toggle="tooltip" title="' + __('Click to search %s', __(newValue)) + '" data-field="' + this.field + '" data-value="' + value + '">' + html + '</a>';
}
return html;
},
url: function (value, row, index) {
@ -442,7 +445,12 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table
return Table.api.formatter.flag.call(this, value, row, index);
},
datetime: function (value, row, index) {
return value ? Moment(parseInt(value) * 1000).format("YYYY-MM-DD HH:mm:ss") : __('None');
var datetimeFormat = typeof this.datetimeFormat === 'undefined' ? 'YYYY-MM-DD HH:mm:ss' : this.datetimeFormat;
if (isNaN(value)) {
return value ? Moment(value).format(datetimeFormat) : __('None');
} else {
return value ? Moment(parseInt(value) * 1000).format(datetimeFormat) : __('None');
}
},
operate: function (value, row, index) {
var table = this.table;

File diff suppressed because it is too large Load Diff