mirror of https://gitee.com/karson/fastadmin.git
新增Table.api.closetabs关闭选项卡的方法
新增表单提交成功后callback功能 新增mb_ucfirst函数 修复CRUD在ENUM中文字符下的乱码错误 修复快速查询在关联模型下的错误 修复filter过滤在部分情况不生效的BUGpull/17/head
parent
1ceece32d7
commit
4fbc2c8eb0
|
|
@ -255,7 +255,7 @@ class Crud extends Command
|
||||||
$controller = str_replace('_', '', $controller);
|
$controller = str_replace('_', '', $controller);
|
||||||
$controllerArr = !$controller ? explode('_', strtolower($table)) : explode('/', strtolower($controller));
|
$controllerArr = !$controller ? explode('_', strtolower($table)) : explode('/', strtolower($controller));
|
||||||
$controllerUrl = implode('/', $controllerArr);
|
$controllerUrl = implode('/', $controllerArr);
|
||||||
$controllerName = ucfirst(array_pop($controllerArr));
|
$controllerName = mb_ucfirst(array_pop($controllerArr));
|
||||||
$controllerDir = implode(DS, $controllerArr);
|
$controllerDir = implode(DS, $controllerArr);
|
||||||
$controllerFile = ($controllerDir ? $controllerDir . DS : '') . $controllerName . '.php';
|
$controllerFile = ($controllerDir ? $controllerDir . DS : '') . $controllerName . '.php';
|
||||||
$viewDir = $adminPath . 'view' . DS . $controllerUrl . DS;
|
$viewDir = $adminPath . 'view' . DS . $controllerUrl . DS;
|
||||||
|
|
@ -810,10 +810,10 @@ class Crud extends Command
|
||||||
if (!in_array($inputType, ['datetime', 'select', 'multiple', 'checkbox', 'radio']))
|
if (!in_array($inputType, ['datetime', 'select', 'multiple', 'checkbox', 'radio']))
|
||||||
return;
|
return;
|
||||||
$fieldList = $this->getFieldListName($field);
|
$fieldList = $this->getFieldListName($field);
|
||||||
$methodName = 'get' . ucfirst($fieldList);
|
$methodName = 'get' . mb_ucfirst($fieldList);
|
||||||
foreach ($itemArr as $k => &$v)
|
foreach ($itemArr as $k => &$v)
|
||||||
{
|
{
|
||||||
$v = "__('" . ucfirst($v) . "')";
|
$v = "__('" . mb_ucfirst($v) . "')";
|
||||||
}
|
}
|
||||||
unset($v);
|
unset($v);
|
||||||
$itemString = $this->getArrayString($itemArr);
|
$itemString = $this->getArrayString($itemArr);
|
||||||
|
|
@ -832,7 +832,7 @@ EOD;
|
||||||
{
|
{
|
||||||
if (!in_array($inputType, ['datetime', 'select', 'multiple', 'checkbox', 'radio']))
|
if (!in_array($inputType, ['datetime', 'select', 'multiple', 'checkbox', 'radio']))
|
||||||
return;
|
return;
|
||||||
$attrField = ucfirst($this->getCamelizeName($field));
|
$attrField = mb_ucfirst($this->getCamelizeName($field));
|
||||||
$getAttr[] = $this->getReplacedStub("mixins" . DS . $inputType, ['field' => $field, 'methodName' => "get{$attrField}TextAttr", 'listMethodName' => "get{$attrField}List"]);
|
$getAttr[] = $this->getReplacedStub("mixins" . DS . $inputType, ['field' => $field, 'methodName' => "get{$attrField}TextAttr", 'listMethodName' => "get{$attrField}List"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -840,7 +840,7 @@ EOD;
|
||||||
{
|
{
|
||||||
if ($inputType != 'datetime')
|
if ($inputType != 'datetime')
|
||||||
return;
|
return;
|
||||||
$attrField = ucfirst($this->getCamelizeName($field));
|
$attrField = mb_ucfirst($this->getCamelizeName($field));
|
||||||
if ($inputType == 'datetime')
|
if ($inputType == 'datetime')
|
||||||
{
|
{
|
||||||
$return = <<<EOD
|
$return = <<<EOD
|
||||||
|
|
@ -868,13 +868,13 @@ EOD;
|
||||||
{
|
{
|
||||||
$modelarr = explode('_', strtolower($table));
|
$modelarr = explode('_', strtolower($table));
|
||||||
foreach ($modelarr as $k => &$v)
|
foreach ($modelarr as $k => &$v)
|
||||||
$v = ucfirst($v);
|
$v = mb_ucfirst($v);
|
||||||
unset($v);
|
unset($v);
|
||||||
$modelName = implode('', $modelarr);
|
$modelName = implode('', $modelarr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$modelName = ucfirst($model);
|
$modelName = mb_ucfirst($model);
|
||||||
}
|
}
|
||||||
return $modelName;
|
return $modelName;
|
||||||
}
|
}
|
||||||
|
|
@ -960,7 +960,7 @@ EOD;
|
||||||
$resultArr = [];
|
$resultArr = [];
|
||||||
foreach ($itemArr as $k => $v)
|
foreach ($itemArr as $k => $v)
|
||||||
{
|
{
|
||||||
$resultArr[] = " '" . ucfirst($k) . "' => '{$v}'";
|
$resultArr[] = " '" . mb_ucfirst($k) . "' => '{$v}'";
|
||||||
}
|
}
|
||||||
return implode(",\n", $resultArr);
|
return implode(",\n", $resultArr);
|
||||||
}
|
}
|
||||||
|
|
@ -980,7 +980,7 @@ EOD;
|
||||||
$langArr = [];
|
$langArr = [];
|
||||||
foreach ($arr as $k => $v)
|
foreach ($arr as $k => $v)
|
||||||
{
|
{
|
||||||
$langArr[(is_numeric($k) ? $v : $k)] = is_numeric($k) ? ($withTpl ? "{:" : "") . "__('" . ucfirst($v) . "')" . ($withTpl ? "}" : "") : $v;
|
$langArr[(is_numeric($k) ? $v : $k)] = is_numeric($k) ? ($withTpl ? "{:" : "") . "__('" . mb_ucfirst($v) . "')" . ($withTpl ? "}" : "") : $v;
|
||||||
}
|
}
|
||||||
return $langArr;
|
return $langArr;
|
||||||
}
|
}
|
||||||
|
|
@ -1129,7 +1129,7 @@ EOD;
|
||||||
*/
|
*/
|
||||||
protected function getFormGroup($field, $content)
|
protected function getFormGroup($field, $content)
|
||||||
{
|
{
|
||||||
$langField = ucfirst($field);
|
$langField = mb_ucfirst($field);
|
||||||
return<<<EOD
|
return<<<EOD
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="c-{$field}" class="control-label col-xs-12 col-sm-2">{:__('{$langField}')}:</label>
|
<label for="c-{$field}" class="control-label col-xs-12 col-sm-2">{:__('{$langField}')}:</label>
|
||||||
|
|
@ -1175,7 +1175,7 @@ EOD;
|
||||||
*/
|
*/
|
||||||
protected function getJsColumn($field, $datatype = '', $extend = '')
|
protected function getJsColumn($field, $datatype = '', $extend = '')
|
||||||
{
|
{
|
||||||
$lang = ucfirst($field);
|
$lang = mb_ucfirst($field);
|
||||||
$formatter = '';
|
$formatter = '';
|
||||||
foreach ($this->fieldFormatterSuffix as $k => $v)
|
foreach ($this->fieldFormatterSuffix as $k => $v)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -30,9 +30,9 @@
|
||||||
<ul class="sidebar-menu">
|
<ul class="sidebar-menu">
|
||||||
{$menulist}
|
{$menulist}
|
||||||
<li class="header">相关链接</li>
|
<li class="header">相关链接</li>
|
||||||
<li><a href="http://doc.fastadmin.net"><i class="fa fa-list text-red"></i> <span>官方文档</span></a></li>
|
<li><a href="http://doc.fastadmin.net" target="_blank"><i class="fa fa-list text-red"></i> <span>官方文档</span></a></li>
|
||||||
<li><a href="http://forum.fastadmin.net"><i class="fa fa-comment text-yellow"></i> <span>社区交流</span></a></li>
|
<li><a href="http://forum.fastadmin.net" target="_blank"><i class="fa fa-comment text-yellow"></i> <span>社区交流</span></a></li>
|
||||||
<li><a href="https://jq.qq.com/?_wv=1027&k=487PNBb"><i class="fa fa-qq text-aqua"></i> <span>QQ交流群</span></a></li>
|
<li><a href="https://jq.qq.com/?_wv=1027&k=487PNBb" target="_blank"><i class="fa fa-qq text-aqua"></i> <span>QQ交流群</span></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
<!-- /.sidebar -->
|
<!-- /.sidebar -->
|
||||||
|
|
@ -198,3 +198,13 @@ if (!function_exists('copydirs'))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!function_exists('mb_ucfirst'))
|
||||||
|
{
|
||||||
|
|
||||||
|
function mb_ucfirst($string)
|
||||||
|
{
|
||||||
|
return mb_strtoupper(mb_substr($string, 0, 1)) . mb_strtolower(mb_substr($string, 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -192,7 +192,7 @@ class Backend extends Controller
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成查询所需要的条件,排序方式
|
* 生成查询所需要的条件,排序方式
|
||||||
* @param mixed $searchfields 查询条件
|
* @param mixed $searchfields 快速查询的字段
|
||||||
* @param boolean $relationSearch 是否关联查询
|
* @param boolean $relationSearch 是否关联查询
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
|
|
@ -220,17 +220,14 @@ class Backend extends Controller
|
||||||
$name = basename(str_replace('\\', '/', $class));
|
$name = basename(str_replace('\\', '/', $class));
|
||||||
$tableName = $this->model->getQuery()->getTable($name) . ".";
|
$tableName = $this->model->getQuery()->getTable($name) . ".";
|
||||||
}
|
}
|
||||||
if (stripos($sort, ".") === false)
|
$sort = stripos($sort, ".") === false ? $tableName . $sort : $sort;
|
||||||
{
|
|
||||||
$sort = $tableName . $sort;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ($search)
|
if ($search)
|
||||||
{
|
{
|
||||||
$searcharr = is_array($searchfields) ? $searchfields : explode(',', $searchfields);
|
$searcharr = is_array($searchfields) ? $searchfields : explode(',', $searchfields);
|
||||||
foreach ($searcharr as $k => &$v)
|
foreach ($searcharr as $k => &$v)
|
||||||
{
|
{
|
||||||
$v = $tableName . $v;
|
$v = stripos($v, ".") === false ? $tableName . $v : $v;
|
||||||
}
|
}
|
||||||
unset($v);
|
unset($v);
|
||||||
$where[] = [implode("|", $searcharr), "LIKE", "%{$search}%"];
|
$where[] = [implode("|", $searcharr), "LIKE", "%{$search}%"];
|
||||||
|
|
@ -249,7 +246,7 @@ class Backend extends Controller
|
||||||
case '!=':
|
case '!=':
|
||||||
case 'LIKE':
|
case 'LIKE':
|
||||||
case 'NOT LIKE':
|
case 'NOT LIKE':
|
||||||
$where[] = [$k, $sym, $v];
|
$where[] = [$k, $sym, (string) $v];
|
||||||
break;
|
break;
|
||||||
case '>':
|
case '>':
|
||||||
case '>=':
|
case '>=':
|
||||||
|
|
@ -257,7 +254,9 @@ class Backend extends Controller
|
||||||
case '<=':
|
case '<=':
|
||||||
$where[] = [$k, $sym, intval($v)];
|
$where[] = [$k, $sym, intval($v)];
|
||||||
break;
|
break;
|
||||||
|
case 'IN':
|
||||||
case 'IN(...)':
|
case 'IN(...)':
|
||||||
|
case 'NOT IN':
|
||||||
case 'NOT IN(...)':
|
case 'NOT IN(...)':
|
||||||
$where[] = [$k, str_replace('(...)', '', $sym), explode(',', $v)];
|
$where[] = [$k, str_replace('(...)', '', $sym), explode(',', $v)];
|
||||||
break;
|
break;
|
||||||
|
|
@ -265,10 +264,13 @@ class Backend extends Controller
|
||||||
case 'NOT BETWEEN':
|
case 'NOT BETWEEN':
|
||||||
$where[] = [$k, $sym, array_slice(explode(',', $v), 0, 2)];
|
$where[] = [$k, $sym, array_slice(explode(',', $v), 0, 2)];
|
||||||
break;
|
break;
|
||||||
|
case 'LIKE':
|
||||||
case 'LIKE %...%':
|
case 'LIKE %...%':
|
||||||
$where[] = [$k, 'LIKE', "%{$v}%"];
|
$where[] = [$k, 'LIKE', "%{$v}%"];
|
||||||
break;
|
break;
|
||||||
|
case 'NULL':
|
||||||
case 'IS NULL':
|
case 'IS NULL':
|
||||||
|
case 'NOT NULL':
|
||||||
case 'IS NOT NULL':
|
case 'IS NOT NULL':
|
||||||
$where[] = [$k, strtolower(str_replace('IS ', '', $sym))];
|
$where[] = [$k, strtolower(str_replace('IS ', '', $sym))];
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ define(['fast', 'moment'], function (Fast, Moment) {
|
||||||
title = typeof title !== 'undefined' ? title : leftlink.find("span:first").text();
|
title = typeof title !== 'undefined' ? title : leftlink.find("span:first").text();
|
||||||
leftlink.trigger("fa.event.toggleitem");
|
leftlink.trigger("fa.event.toggleitem");
|
||||||
}
|
}
|
||||||
var navnode = $(".nav-tabs ul li a[node-url='" + url + "']");
|
var navnode = top.window.$(".nav-tabs ul li a[node-url='" + url + "']");
|
||||||
if (navnode.size() > 0) {
|
if (navnode.size() > 0) {
|
||||||
navnode.trigger("click");
|
navnode.trigger("click");
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -63,6 +63,30 @@ define(['fast', 'moment'], function (Fast, Moment) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
closetabs: function (url) {
|
||||||
|
if (typeof url === 'undefined') {
|
||||||
|
top.window.$("ul.nav-addtabs li.active .close-tab").trigger("click");
|
||||||
|
} else {
|
||||||
|
var dom = "a[url='{url}']"
|
||||||
|
var navlink = top.window.$(dom.replace(/\{url\}/, url));
|
||||||
|
if (navlink.size() === 0) {
|
||||||
|
url = Fast.api.fixurl(url);
|
||||||
|
navlink = top.window.$(dom.replace(/\{url\}/, url));
|
||||||
|
if (navlink.size() === 0) {
|
||||||
|
} else {
|
||||||
|
var baseurl = url.substr(0, url.indexOf("?") > -1 ? url.indexOf("?") : url.length);
|
||||||
|
navlink = top.window.$(dom.replace(/\{url\}/, baseurl));
|
||||||
|
//能找到相对地址
|
||||||
|
if (navlink.size() === 0) {
|
||||||
|
navlink = top.window.$(".nav-tabs ul li a[node-url='" + url + "']");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (navlink.size() > 0 && navlink.attr('addtabs')) {
|
||||||
|
top.window.$("ul.nav-addtabs li#tab_" + navlink.attr('addtabs') + " .close-tab").trigger("click");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
replaceids: function (elem, url) {
|
replaceids: function (elem, url) {
|
||||||
//如果有需要替换ids的
|
//如果有需要替换ids的
|
||||||
if (url.indexOf("{ids}") > -1) {
|
if (url.indexOf("{ids}") > -1) {
|
||||||
|
|
|
||||||
|
|
@ -6761,7 +6761,7 @@ define('backend',['fast', 'moment'], function (Fast, Moment) {
|
||||||
title = typeof title !== 'undefined' ? title : leftlink.find("span:first").text();
|
title = typeof title !== 'undefined' ? title : leftlink.find("span:first").text();
|
||||||
leftlink.trigger("fa.event.toggleitem");
|
leftlink.trigger("fa.event.toggleitem");
|
||||||
}
|
}
|
||||||
var navnode = $(".nav-tabs ul li a[node-url='" + url + "']");
|
var navnode = top.window.$(".nav-tabs ul li a[node-url='" + url + "']");
|
||||||
if (navnode.size() > 0) {
|
if (navnode.size() > 0) {
|
||||||
navnode.trigger("click");
|
navnode.trigger("click");
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -6774,6 +6774,30 @@ define('backend',['fast', 'moment'], function (Fast, Moment) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
closetabs: function (url) {
|
||||||
|
if (typeof url === 'undefined') {
|
||||||
|
top.window.$("ul.nav-addtabs li.active .close-tab").trigger("click");
|
||||||
|
} else {
|
||||||
|
var dom = "a[url='{url}']"
|
||||||
|
var navlink = top.window.$(dom.replace(/\{url\}/, url));
|
||||||
|
if (navlink.size() === 0) {
|
||||||
|
url = Fast.api.fixurl(url);
|
||||||
|
navlink = top.window.$(dom.replace(/\{url\}/, url));
|
||||||
|
if (navlink.size() === 0) {
|
||||||
|
} else {
|
||||||
|
var baseurl = url.substr(0, url.indexOf("?") > -1 ? url.indexOf("?") : url.length);
|
||||||
|
navlink = top.window.$(dom.replace(/\{url\}/, baseurl));
|
||||||
|
//能找到相对地址
|
||||||
|
if (navlink.size() === 0) {
|
||||||
|
navlink = top.window.$(".nav-tabs ul li a[node-url='" + url + "']");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (navlink.size() > 0 && navlink.attr('addtabs')) {
|
||||||
|
top.window.$("ul.nav-addtabs li#tab_" + navlink.attr('addtabs') + " .close-tab").trigger("click");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
replaceids: function (elem, url) {
|
replaceids: function (elem, url) {
|
||||||
//如果有需要替换ids的
|
//如果有需要替换ids的
|
||||||
if (url.indexOf("{ids}") > -1) {
|
if (url.indexOf("{ids}") > -1) {
|
||||||
|
|
@ -10953,8 +10977,15 @@ define('form',['jquery', 'bootstrap', 'upload', 'validator'], function ($, undef
|
||||||
}
|
}
|
||||||
}, function (data, ret) {
|
}, function (data, ret) {
|
||||||
$('.form-group', form).removeClass('has-feedback has-success has-error');
|
$('.form-group', form).removeClass('has-feedback has-success has-error');
|
||||||
if (data && typeof data === 'object' && typeof data.token !== 'undefined') {
|
if (data && typeof data === 'object') {
|
||||||
$("input[name='__token__']", form).val(data.token);
|
//刷新客户端token
|
||||||
|
if (typeof data.token !== 'undefined') {
|
||||||
|
$("input[name='__token__']", form).val(data.token);
|
||||||
|
}
|
||||||
|
//调用客户端事件
|
||||||
|
if (typeof data.callback !== 'undefined' && typeof data.callback === 'function') {
|
||||||
|
data.callback.call(form, data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (typeof success === 'function') {
|
if (typeof success === 'function') {
|
||||||
if (!success.call(form, data, ret)) {
|
if (!success.call(form, data, ret)) {
|
||||||
|
|
@ -11486,21 +11517,24 @@ $.fn.addtabs = function (options) {
|
||||||
});
|
});
|
||||||
|
|
||||||
_add = function (opts) {
|
_add = function (opts) {
|
||||||
id = 'tab_' + opts.id;
|
var id, tabid, conid, url;
|
||||||
|
id = opts.id;
|
||||||
|
tabid = 'tab_' + opts.id;
|
||||||
|
conid = 'con_' + opts.id;
|
||||||
url = opts.url;
|
url = opts.url;
|
||||||
url += (opts.url.indexOf("?") > -1 ? "&addtabs=1" : "?addtabs=1");
|
url += (opts.url.indexOf("?") > -1 ? "&addtabs=1" : "?addtabs=1");
|
||||||
navobj.find("[role='presentation']").removeClass('active');
|
navobj.find("[role='presentation']").removeClass('active');
|
||||||
tabobj.find("[role='tabpanel']").removeClass('active');
|
tabobj.find("[role='tabpanel']").removeClass('active');
|
||||||
//如果TAB不存在,创建一个新的TAB
|
//如果TAB不存在,创建一个新的TAB
|
||||||
if ($("#" + id).size() == 0) {
|
if ($("#" + tabid).size() == 0) {
|
||||||
//创建新TAB的title
|
//创建新TAB的title
|
||||||
title = $('<li role="presentation" id="tab_' + id + '"><a href="#' + id + '" node-id="' + opts.id + '" aria-controls="' + id + '" role="tab" data-toggle="tab">' + opts.title + '</a></li>');
|
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) {
|
if (options.close && $("li", navobj).size() > 0) {
|
||||||
title.append(' <i class="close-tab fa fa-remove"></i>');
|
title.append(' <i class="close-tab fa fa-remove"></i>');
|
||||||
}
|
}
|
||||||
//创建新TAB的内容
|
//创建新TAB的内容
|
||||||
content = $('<div role="tabpanel" class="tab-pane" id="' + id + '"></div>');
|
content = $('<div role="tabpanel" class="tab-pane" id="' + conid + '"></div>');
|
||||||
//是否指定TAB内容
|
//是否指定TAB内容
|
||||||
if (opts.content) {
|
if (opts.content) {
|
||||||
content.append(opts.content);
|
content.append(opts.content);
|
||||||
|
|
@ -11522,23 +11556,25 @@ $.fn.addtabs = function (options) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//激活TAB
|
//激活TAB
|
||||||
$("#tab_" + id).addClass('active');
|
$("#" + tabid).addClass('active');
|
||||||
$("#" + id).addClass("active");
|
$("#" + conid).addClass("active");
|
||||||
_drop();
|
_drop();
|
||||||
};
|
};
|
||||||
|
|
||||||
_close = function (id) {
|
_close = function (id) {
|
||||||
|
var tabid = 'tab_'+id;
|
||||||
|
var conid = 'con_'+id;
|
||||||
//如果关闭的是当前激活的TAB,激活他的前一个TAB
|
//如果关闭的是当前激活的TAB,激活他的前一个TAB
|
||||||
if (obj.find("li.active").attr('id') == "tab_" + id) {
|
if (obj.find("li.active").attr('id') == tabid) {
|
||||||
if ($("#tab_" + id).prev().not(".tabdrop").size() > 0) {
|
if ($("#" + tabid).prev().not(".tabdrop").size() > 0) {
|
||||||
$("#tab_" + id).prev().not(".tabdrop").find("a").trigger("click");
|
$("#" + tabid).prev().not(".tabdrop").find("a").trigger("click");
|
||||||
} else if ($("#tab_" + id).next().size() > 0) {
|
} else if ($("#" + tabid).next().size() > 0) {
|
||||||
$("#tab_" + id).next().trigger("click");
|
$("#" + tabid).next().trigger("click");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//关闭TAB
|
//关闭TAB
|
||||||
$("#tab_" + id).remove();
|
$("#" + tabid).remove();
|
||||||
$("#" + id).remove();
|
$("#" + conid).remove();
|
||||||
_drop();
|
_drop();
|
||||||
options.callback();
|
options.callback();
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -186,8 +186,15 @@ define(['jquery', 'bootstrap', 'upload', 'validator'], function ($, undefined, U
|
||||||
}
|
}
|
||||||
}, function (data, ret) {
|
}, function (data, ret) {
|
||||||
$('.form-group', form).removeClass('has-feedback has-success has-error');
|
$('.form-group', form).removeClass('has-feedback has-success has-error');
|
||||||
if (data && typeof data === 'object' && typeof data.token !== 'undefined') {
|
if (data && typeof data === 'object') {
|
||||||
$("input[name='__token__']", form).val(data.token);
|
//刷新客户端token
|
||||||
|
if (typeof data.token !== 'undefined') {
|
||||||
|
$("input[name='__token__']", form).val(data.token);
|
||||||
|
}
|
||||||
|
//调用客户端事件
|
||||||
|
if (typeof data.callback !== 'undefined' && typeof data.callback === 'function') {
|
||||||
|
data.callback.call(form, data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (typeof success === 'function') {
|
if (typeof success === 'function') {
|
||||||
if (!success.call(form, data, ret)) {
|
if (!success.call(form, data, ret)) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue