doc: 同步脚本文件

This commit is contained in:
Argo 2019-07-27 14:36:15 +08:00
parent 02b27212d5
commit db0fe72f07
No known key found for this signature in database
GPG Key ID: 152E398953DDF19F
23 changed files with 21149 additions and 3997 deletions

View File

@ -75,7 +75,7 @@
color: #467fa7;
}
.breadcrumb > li + li:before, .breadcrumb, .pagination-detail, .form-select-append {
.breadcrumb > li + li:before, .breadcrumb, .pagination-detail, .form-select-append {
color: #337ab7;
}

View File

@ -293,6 +293,14 @@
$.validator.addMethod("userName", function (value, element) {
return this.optional(element) || /^[a-zA-Z0-9_@.]*$/.test(value);
}, "登录名称不可以包含非法字符");
$.validator.addMethod("greaterThan", function (value, element, target) {
return this.optional(element) || $(target).val() <= value;
}, "");
$.validator.addMethod("lessThan", function (value, element, target) {
return this.optional(element) || $(target).val() >= value;
}, "");
}
$('[data-toggle="LgbValidate"]').lgbValidate();
});

View File

@ -55,7 +55,21 @@
"locale/bootstrap-table-zh-CN.min.js",
"bootstrap-table.css",
"bootstrap-table.js",
"bootstrap-table.min.css"
"bootstrap-table.min.css",
"extensions/export/bootstrap-table-export.js",
"extensions/export/bootstrap-table-export.min.js",
"extensions/treegrid/bootstrap-table-treegrid.js",
"extensions/treegrid/bootstrap-table-treegrid.min.js"
]
},
{
"provider": "cdnjs",
"library": "jquery-treegrid@0.2.0",
"destination": "wwwroot/lib/treegrid/",
"files": [
"css/jquery.treegrid.css",
"js/jquery.treegrid.js",
"js/jquery.treegrid.min.js"
]
},
{
@ -89,6 +103,17 @@
"fonts/FontAwesome.otf"
]
},
{
"provider": "cdnjs",
"library": "limonte-sweetalert2@7.33.1",
"destination": "wwwroot/lib/sweetalert/",
"files": [
"sweetalert2.js",
"sweetalert2.min.js",
"sweetalert2.css",
"sweetalert2.min.css"
]
},
{
"library": "malihu-custom-scrollbar-plugin@3.1.5",
"destination": "wwwroot/lib/scrollbar/",
@ -122,6 +147,44 @@
"js/jquery.dcjqaccordion.2.7.min.js",
"js/jquery.cookie.js"
]
},
{
"provider": "cdnjs",
"library": "countup.js@1.9.3",
"destination": "wwwroot/lib/countUp/",
"files": [
"countUp.js",
"countUp.min.js"
]
},
{
"provider": "cdnjs",
"library": "radialIndicator@1.3.1",
"destination": "wwwroot/lib/radiaIndicator",
"files": [
"radialIndicator.js",
"radialIndicator.min.js"
]
},
{
"provider": "unpkg"
"library": "highcharts@6.2.0",
"destination": "wwwroot/lib/highcharts/",
"files": [
"highcharts.js",
"highcharts.src.js"
]
},
{
"provider": "unpkg",
"library": "bootstrap-toggle@2.2.2",
"destination": "wwwroot/lib/bootstrap-toggle/",
"files": [
"css/bootstrap-toggle.css",
"css/bootstrap-toggle.min.css",
"js/bootstrap-toggle.js",
"js/bootstrap-toggle.min.js"
]
}
]
}

View File

@ -75,7 +75,7 @@
color: #467fa7;
}
.breadcrumb > li + li:before, .breadcrumb, .pagination-detail, .form-select-append {
.breadcrumb > li + li:before, .breadcrumb, .pagination-detail, .form-select-append {
color: #337ab7;
}

View File

@ -1,4 +1,14 @@
@media (min-width: 375px) {
@media print {
a:link {
text-decoration: none !important;
}
a[href]:after {
content: none !important;
}
}
@media (min-width: 375px) {
.toolbar .dropdown-menu a {
padding: 0 14px;
}
@ -40,9 +50,9 @@
width: 194px;
}
.form-inline .input-group input.form-control {
width: 1%;
}
.form-inline .input-group input.form-control {
width: 1%;
}
.modal-lg {
max-width: calc(90%);

View File

@ -546,10 +546,6 @@ input.pending {
background-color: #f8f9fa;
}
.bootstrap-table .card-view-value > .btn:first-child {
margin-left: 4px;
}
.bootstrap-table td > .btn:not(:first-child) {
margin-left: 5px;
}

View File

@ -8,7 +8,6 @@
var arch = $sideMenu.find('a.active').last();
$breadNav.removeClass('d-none').text(arch.text() || $('title').text());
$('.sidebar-toggle-box').on('click', function (e) {
if ($(window).width() >= 768) {
e.preventDefault();

View File

@ -1,10 +1,10 @@
@charset "UTF-8";
/**
* @author zhixin wen <wenzhixin2010@gmail.com>
* version: 1.14.2
* version: 1.15.3
* https://github.com/wenzhixin/bootstrap-table/
*/
.bootstrap-table .fixed-table-toolbar:after {
.bootstrap-table .fixed-table-toolbar::after {
content: "";
display: block;
clear: both;
@ -20,6 +20,9 @@
display: inline-block;
margin-left: -1px !important;
}
.bootstrap-table .fixed-table-toolbar .columns .btn-group > .btn-group > .btn {
border-radius: 0;
}
.bootstrap-table .fixed-table-toolbar .columns .btn-group > .btn-group:first-child > .btn {
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
@ -28,13 +31,12 @@
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
.bootstrap-table .fixed-table-toolbar .columns .btn-group > .btn-group > .btn {
border-radius: 0;
}
.bootstrap-table .fixed-table-toolbar .columns .dropdown-menu {
text-align: left;
max-height: 300px;
overflow: auto;
-ms-overflow-style: scrollbar;
z-index: 1001;
}
.bootstrap-table .fixed-table-toolbar .columns label {
display: block;
@ -57,80 +59,6 @@
position: relative;
clear: both;
}
.bootstrap-table .fixed-table-container.fixed-height:not(.has-footer) {
border-bottom: 1px solid #dee2e6;
}
.bootstrap-table .fixed-table-container.fixed-height .fixed-table-border {
border-left: 1px solid #dee2e6;
border-right: 1px solid #dee2e6;
}
.bootstrap-table .fixed-table-container.fixed-height .table thead th {
border-bottom: 1px solid #dee2e6;
}
.bootstrap-table .fixed-table-container.fixed-height .table-dark thead th {
border-bottom: 1px solid #32383e;
}
.bootstrap-table .fixed-table-container .fixed-table-header {
overflow: hidden;
}
.bootstrap-table .fixed-table-container .fixed-table-body {
overflow-x: auto;
overflow-y: auto;
height: 100%;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading {
align-items: center;
background: #fff;
display: none;
justify-content: center;
position: absolute;
bottom: 0;
width: 100%;
z-index: 1000;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap {
align-items: baseline;
display: flex;
justify-content: center;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .loading-text {
font-size: 2rem;
margin-right: 6px;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap {
align-items: center;
display: flex;
justify-content: center;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-dot,
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap:after,
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap:before {
content: "";
animation-duration: 1.5s;
animation-iteration-count: infinite;
animation-name: LOADING;
background: #212529;
border-radius: 50%;
display: block;
height: 5px;
margin: 0 4px;
opacity: 0;
width: 5px;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-dot {
animation-delay: 0.3s;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap:after {
animation-delay: 0.6s;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark {
background: #212529;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-dot,
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-wrap:after,
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-wrap:before {
background: #fff;
}
.bootstrap-table .fixed-table-container .table {
width: 100%;
margin-bottom: 0 !important;
@ -179,6 +107,9 @@
.bootstrap-table .fixed-table-container .table tbody tr.no-records-found {
text-align: center;
}
.bootstrap-table .fixed-table-container .table tbody tr .card-view {
display: flex;
}
.bootstrap-table .fixed-table-container .table tbody tr .card-view .card-view-title {
font-weight: bold;
display: inline-block;
@ -195,10 +126,88 @@
.bootstrap-table .fixed-table-container .table.table-sm .th-inner {
padding: 0.3rem;
}
.bootstrap-table .fixed-table-container.fixed-height:not(.has-footer) {
border-bottom: 1px solid #dee2e6;
}
.bootstrap-table .fixed-table-container.fixed-height.has-card-view {
border-top: 1px solid #dee2e6;
border-bottom: 1px solid #dee2e6;
}
.bootstrap-table .fixed-table-container.fixed-height .fixed-table-border {
border-left: 1px solid #dee2e6;
border-right: 1px solid #dee2e6;
}
.bootstrap-table .fixed-table-container.fixed-height .table thead th {
border-bottom: 1px solid #dee2e6;
}
.bootstrap-table .fixed-table-container.fixed-height .table-dark thead th {
border-bottom: 1px solid #32383e;
}
.bootstrap-table .fixed-table-container .fixed-table-header {
overflow: hidden;
}
.bootstrap-table .fixed-table-container .fixed-table-body {
overflow-x: auto;
overflow-y: auto;
height: 100%;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading {
align-items: center;
background: #fff;
display: none;
justify-content: center;
position: absolute;
bottom: 0;
width: 100%;
z-index: 1000;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap {
align-items: baseline;
display: flex;
justify-content: center;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .loading-text {
font-size: 2rem;
margin-right: 6px;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap {
align-items: center;
display: flex;
justify-content: center;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-dot,
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap::after,
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap::before {
content: "";
animation-duration: 1.5s;
animation-iteration-count: infinite;
animation-name: LOADING;
background: #212529;
border-radius: 50%;
display: block;
height: 5px;
margin: 0 4px;
opacity: 0;
width: 5px;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-dot {
animation-delay: 0.3s;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading .loading-wrap .animation-wrap::after {
animation-delay: 0.6s;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark {
background: #212529;
}
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-dot,
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-wrap::after,
.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading.table-dark .animation-wrap::before {
background: #fff;
}
.bootstrap-table .fixed-table-container .fixed-table-footer {
overflow: hidden;
}
.bootstrap-table .fixed-table-pagination:after {
.bootstrap-table .fixed-table-pagination::after {
content: "";
display: block;
clear: both;
@ -233,10 +242,10 @@
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li.page-intermediate a {
color: #c8c8c8;
}
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li.page-intermediate a:before {
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li.page-intermediate a::before {
content: "⬅";
}
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li.page-intermediate a:after {
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li.page-intermediate a::after {
content: "➡";
}
.bootstrap-table .fixed-table-pagination > .pagination ul.pagination li.disabled a {
@ -249,7 +258,9 @@
left: 0;
z-index: 1050;
width: 100% !important;
background: #FFF;
background: #fff;
height: calc(100vh);
overflow-y: scroll;
}
/* calculate scrollbar width */

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,80 +1,721 @@
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define([], factory);
} else if (typeof exports !== "undefined") {
factory();
} else {
var mod = {
exports: {}
};
factory();
global.bootstrapTableZhCN = mod.exports;
}
})(this, function () {
'use strict';
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
(global = global || self, factory(global.jQuery));
}(this, function ($) { 'use strict';
/**
* Bootstrap Table Chinese translation
* Author: Zhixin Wen<wenzhixin2010@gmail.com>
*/
(function ($) {
$.fn.bootstrapTable.locales['zh-CN'] = {
formatLoadingMessage: function formatLoadingMessage() {
return '正在努力地加载数据中,请稍候';
},
formatRecordsPerPage: function formatRecordsPerPage(pageNumber) {
return '\u6BCF\u9875\u663E\u793A ' + pageNumber + ' \u6761\u8BB0\u5F55';
},
formatShowingRows: function formatShowingRows(pageFrom, pageTo, totalRows) {
return '\u663E\u793A\u7B2C ' + pageFrom + ' \u5230\u7B2C ' + pageTo + ' \u6761\u8BB0\u5F55\uFF0C\u603B\u5171 ' + totalRows + ' \u6761\u8BB0\u5F55';
},
formatDetailPagination: function formatDetailPagination(totalRows) {
return '\u603B\u5171 ' + totalRows + ' \u6761\u8BB0\u5F55';
},
formatSearch: function formatSearch() {
return '搜索';
},
formatNoMatches: function formatNoMatches() {
return '没有找到匹配的记录';
},
formatPaginationSwitch: function formatPaginationSwitch() {
return '隐藏/显示分页';
},
formatRefresh: function formatRefresh() {
return '刷新';
},
formatToggle: function formatToggle() {
return '切换';
},
formatColumns: function formatColumns() {
return '列';
},
formatFullscreen: function formatFullscreen() {
return '全屏';
},
formatAllRows: function formatAllRows() {
return '所有';
},
formatAutoRefresh: function formatAutoRefresh() {
return '自动刷新';
},
formatExport: function formatExport() {
return '导出数据';
},
formatClearFilters: function formatClearFilters() {
return '清空过滤';
},
formatJumpto: function formatJumpto() {
return '跳转';
},
formatAdvancedSearch: function formatAdvancedSearch() {
return '高级搜索';
},
formatAdvancedCloseButton: function formatAdvancedCloseButton() {
return '关闭';
}
};
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['zh-CN']);
})(jQuery);
});
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
var O = 'object';
var check = function (it) {
return it && it.Math == Math && it;
};
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global_1 =
// eslint-disable-next-line no-undef
check(typeof globalThis == O && globalThis) ||
check(typeof window == O && window) ||
check(typeof self == O && self) ||
check(typeof commonjsGlobal == O && commonjsGlobal) ||
// eslint-disable-next-line no-new-func
Function('return this')();
var fails = function (exec) {
try {
return !!exec();
} catch (error) {
return true;
}
};
// Thank's IE8 for his funny defineProperty
var descriptors = !fails(function () {
return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});
var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// Nashorn ~ JDK8 bug
var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
// `Object.prototype.propertyIsEnumerable` method implementation
// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
var f = NASHORN_BUG ? function propertyIsEnumerable(V) {
var descriptor = getOwnPropertyDescriptor(this, V);
return !!descriptor && descriptor.enumerable;
} : nativePropertyIsEnumerable;
var objectPropertyIsEnumerable = {
f: f
};
var createPropertyDescriptor = function (bitmap, value) {
return {
enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
writable: !(bitmap & 4),
value: value
};
};
var toString = {}.toString;
var classofRaw = function (it) {
return toString.call(it).slice(8, -1);
};
var split = ''.split;
// fallback for non-array-like ES3 and non-enumerable old V8 strings
var indexedObject = fails(function () {
// throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
// eslint-disable-next-line no-prototype-builtins
return !Object('z').propertyIsEnumerable(0);
}) ? function (it) {
return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);
} : Object;
// `RequireObjectCoercible` abstract operation
// https://tc39.github.io/ecma262/#sec-requireobjectcoercible
var requireObjectCoercible = function (it) {
if (it == undefined) throw TypeError("Can't call method on " + it);
return it;
};
// toObject with fallback for non-array-like ES3 strings
var toIndexedObject = function (it) {
return indexedObject(requireObjectCoercible(it));
};
var isObject = function (it) {
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
// `ToPrimitive` abstract operation
// https://tc39.github.io/ecma262/#sec-toprimitive
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
var toPrimitive = function (input, PREFERRED_STRING) {
if (!isObject(input)) return input;
var fn, val;
if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
throw TypeError("Can't convert object to primitive value");
};
var hasOwnProperty = {}.hasOwnProperty;
var has = function (it, key) {
return hasOwnProperty.call(it, key);
};
var document = global_1.document;
// typeof document.createElement is 'object' in old IE
var EXISTS = isObject(document) && isObject(document.createElement);
var documentCreateElement = function (it) {
return EXISTS ? document.createElement(it) : {};
};
// Thank's IE8 for his funny defineProperty
var ie8DomDefine = !descriptors && !fails(function () {
return Object.defineProperty(documentCreateElement('div'), 'a', {
get: function () { return 7; }
}).a != 7;
});
var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// `Object.getOwnPropertyDescriptor` method
// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
var f$1 = descriptors ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
O = toIndexedObject(O);
P = toPrimitive(P, true);
if (ie8DomDefine) try {
return nativeGetOwnPropertyDescriptor(O, P);
} catch (error) { /* empty */ }
if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);
};
var objectGetOwnPropertyDescriptor = {
f: f$1
};
var anObject = function (it) {
if (!isObject(it)) {
throw TypeError(String(it) + ' is not an object');
} return it;
};
var nativeDefineProperty = Object.defineProperty;
// `Object.defineProperty` method
// https://tc39.github.io/ecma262/#sec-object.defineproperty
var f$2 = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
anObject(O);
P = toPrimitive(P, true);
anObject(Attributes);
if (ie8DomDefine) try {
return nativeDefineProperty(O, P, Attributes);
} catch (error) { /* empty */ }
if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
if ('value' in Attributes) O[P] = Attributes.value;
return O;
};
var objectDefineProperty = {
f: f$2
};
var hide = descriptors ? function (object, key, value) {
return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
var setGlobal = function (key, value) {
try {
hide(global_1, key, value);
} catch (error) {
global_1[key] = value;
} return value;
};
var shared = createCommonjsModule(function (module) {
var SHARED = '__core-js_shared__';
var store = global_1[SHARED] || setGlobal(SHARED, {});
(module.exports = function (key, value) {
return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
version: '3.1.3',
mode: 'global',
copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
});
});
var functionToString = shared('native-function-to-string', Function.toString);
var WeakMap = global_1.WeakMap;
var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(functionToString.call(WeakMap));
var id = 0;
var postfix = Math.random();
var uid = function (key) {
return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
};
var keys = shared('keys');
var sharedKey = function (key) {
return keys[key] || (keys[key] = uid(key));
};
var hiddenKeys = {};
var WeakMap$1 = global_1.WeakMap;
var set, get, has$1;
var enforce = function (it) {
return has$1(it) ? get(it) : set(it, {});
};
var getterFor = function (TYPE) {
return function (it) {
var state;
if (!isObject(it) || (state = get(it)).type !== TYPE) {
throw TypeError('Incompatible receiver, ' + TYPE + ' required');
} return state;
};
};
if (nativeWeakMap) {
var store = new WeakMap$1();
var wmget = store.get;
var wmhas = store.has;
var wmset = store.set;
set = function (it, metadata) {
wmset.call(store, it, metadata);
return metadata;
};
get = function (it) {
return wmget.call(store, it) || {};
};
has$1 = function (it) {
return wmhas.call(store, it);
};
} else {
var STATE = sharedKey('state');
hiddenKeys[STATE] = true;
set = function (it, metadata) {
hide(it, STATE, metadata);
return metadata;
};
get = function (it) {
return has(it, STATE) ? it[STATE] : {};
};
has$1 = function (it) {
return has(it, STATE);
};
}
var internalState = {
set: set,
get: get,
has: has$1,
enforce: enforce,
getterFor: getterFor
};
var redefine = createCommonjsModule(function (module) {
var getInternalState = internalState.get;
var enforceInternalState = internalState.enforce;
var TEMPLATE = String(functionToString).split('toString');
shared('inspectSource', function (it) {
return functionToString.call(it);
});
(module.exports = function (O, key, value, options) {
var unsafe = options ? !!options.unsafe : false;
var simple = options ? !!options.enumerable : false;
var noTargetGet = options ? !!options.noTargetGet : false;
if (typeof value == 'function') {
if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);
enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
}
if (O === global_1) {
if (simple) O[key] = value;
else setGlobal(key, value);
return;
} else if (!unsafe) {
delete O[key];
} else if (!noTargetGet && O[key]) {
simple = true;
}
if (simple) O[key] = value;
else hide(O, key, value);
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, 'toString', function toString() {
return typeof this == 'function' && getInternalState(this).source || functionToString.call(this);
});
});
var path = global_1;
var aFunction = function (variable) {
return typeof variable == 'function' ? variable : undefined;
};
var getBuiltIn = function (namespace, method) {
return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace])
: path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];
};
var ceil = Math.ceil;
var floor = Math.floor;
// `ToInteger` abstract operation
// https://tc39.github.io/ecma262/#sec-tointeger
var toInteger = function (argument) {
return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
};
var min = Math.min;
// `ToLength` abstract operation
// https://tc39.github.io/ecma262/#sec-tolength
var toLength = function (argument) {
return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
};
var max = Math.max;
var min$1 = Math.min;
// Helper for a popular repeating case of the spec:
// Let integer be ? ToInteger(index).
// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).
var toAbsoluteIndex = function (index, length) {
var integer = toInteger(index);
return integer < 0 ? max(integer + length, 0) : min$1(integer, length);
};
// `Array.prototype.{ indexOf, includes }` methods implementation
var createMethod = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
var O = toIndexedObject($this);
var length = toLength(O.length);
var index = toAbsoluteIndex(fromIndex, length);
var value;
// Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare
if (IS_INCLUDES && el != el) while (length > index) {
value = O[index++];
// eslint-disable-next-line no-self-compare
if (value != value) return true;
// Array#indexOf ignores holes, Array#includes - not
} else for (;length > index; index++) {
if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
} return !IS_INCLUDES && -1;
};
};
var arrayIncludes = {
// `Array.prototype.includes` method
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
includes: createMethod(true),
// `Array.prototype.indexOf` method
// https://tc39.github.io/ecma262/#sec-array.prototype.indexof
indexOf: createMethod(false)
};
var indexOf = arrayIncludes.indexOf;
var objectKeysInternal = function (object, names) {
var O = toIndexedObject(object);
var i = 0;
var result = [];
var key;
for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
// Don't enum bug & hidden keys
while (names.length > i) if (has(O, key = names[i++])) {
~indexOf(result, key) || result.push(key);
}
return result;
};
// IE8- don't enum bug keys
var enumBugKeys = [
'constructor',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'toLocaleString',
'toString',
'valueOf'
];
var hiddenKeys$1 = enumBugKeys.concat('length', 'prototype');
// `Object.getOwnPropertyNames` method
// https://tc39.github.io/ecma262/#sec-object.getownpropertynames
var f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
return objectKeysInternal(O, hiddenKeys$1);
};
var objectGetOwnPropertyNames = {
f: f$3
};
var f$4 = Object.getOwnPropertySymbols;
var objectGetOwnPropertySymbols = {
f: f$4
};
// all object keys, includes non-enumerable and symbols
var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
var keys = objectGetOwnPropertyNames.f(anObject(it));
var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
};
var copyConstructorProperties = function (target, source) {
var keys = ownKeys(source);
var defineProperty = objectDefineProperty.f;
var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
}
};
var replacement = /#|\.prototype\./;
var isForced = function (feature, detection) {
var value = data[normalize(feature)];
return value == POLYFILL ? true
: value == NATIVE ? false
: typeof detection == 'function' ? fails(detection)
: !!detection;
};
var normalize = isForced.normalize = function (string) {
return String(string).replace(replacement, '.').toLowerCase();
};
var data = isForced.data = {};
var NATIVE = isForced.NATIVE = 'N';
var POLYFILL = isForced.POLYFILL = 'P';
var isForced_1 = isForced;
var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
/*
options.target - name of the target object
options.global - target is the global object
options.stat - export as static methods of target
options.proto - export as prototype methods of target
options.real - real prototype method for the `pure` version
options.forced - export even if the native feature is available
options.bind - bind methods to the target, required for the `pure` version
options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
options.unsafe - use the simple assignment of property instead of delete + defineProperty
options.sham - add a flag to not completely full polyfills
options.enumerable - export as enumerable property
options.noTargetGet - prevent calling a getter on target
*/
var _export = function (options, source) {
var TARGET = options.target;
var GLOBAL = options.global;
var STATIC = options.stat;
var FORCED, target, key, targetProperty, sourceProperty, descriptor;
if (GLOBAL) {
target = global_1;
} else if (STATIC) {
target = global_1[TARGET] || setGlobal(TARGET, {});
} else {
target = (global_1[TARGET] || {}).prototype;
}
if (target) for (key in source) {
sourceProperty = source[key];
if (options.noTargetGet) {
descriptor = getOwnPropertyDescriptor$1(target, key);
targetProperty = descriptor && descriptor.value;
} else targetProperty = target[key];
FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
// contained in target
if (!FORCED && targetProperty !== undefined) {
if (typeof sourceProperty === typeof targetProperty) continue;
copyConstructorProperties(sourceProperty, targetProperty);
}
// add a flag to not completely full polyfills
if (options.sham || (targetProperty && targetProperty.sham)) {
hide(sourceProperty, 'sham', true);
}
// extend global
redefine(target, key, sourceProperty, options);
}
};
// `IsArray` abstract operation
// https://tc39.github.io/ecma262/#sec-isarray
var isArray = Array.isArray || function isArray(arg) {
return classofRaw(arg) == 'Array';
};
// `ToObject` abstract operation
// https://tc39.github.io/ecma262/#sec-toobject
var toObject = function (argument) {
return Object(requireObjectCoercible(argument));
};
var createProperty = function (object, key, value) {
var propertyKey = toPrimitive(key);
if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
else object[propertyKey] = value;
};
var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
// Chrome 38 Symbol has incorrect toString conversion
// eslint-disable-next-line no-undef
return !String(Symbol());
});
var Symbol$1 = global_1.Symbol;
var store$1 = shared('wks');
var wellKnownSymbol = function (name) {
return store$1[name] || (store$1[name] = nativeSymbol && Symbol$1[name]
|| (nativeSymbol ? Symbol$1 : uid)('Symbol.' + name));
};
var SPECIES = wellKnownSymbol('species');
// `ArraySpeciesCreate` abstract operation
// https://tc39.github.io/ecma262/#sec-arrayspeciescreate
var arraySpeciesCreate = function (originalArray, length) {
var C;
if (isArray(originalArray)) {
C = originalArray.constructor;
// cross-realm fallback
if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
else if (isObject(C)) {
C = C[SPECIES];
if (C === null) C = undefined;
}
} return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
};
var SPECIES$1 = wellKnownSymbol('species');
var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
return !fails(function () {
var array = [];
var constructor = array.constructor = {};
constructor[SPECIES$1] = function () {
return { foo: 1 };
};
return array[METHOD_NAME](Boolean).foo !== 1;
});
};
var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
var IS_CONCAT_SPREADABLE_SUPPORT = !fails(function () {
var array = [];
array[IS_CONCAT_SPREADABLE] = false;
return array.concat()[0] !== array;
});
var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
var isConcatSpreadable = function (O) {
if (!isObject(O)) return false;
var spreadable = O[IS_CONCAT_SPREADABLE];
return spreadable !== undefined ? !!spreadable : isArray(O);
};
var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
// `Array.prototype.concat` method
// https://tc39.github.io/ecma262/#sec-array.prototype.concat
// with adding support of @@isConcatSpreadable and @@species
_export({ target: 'Array', proto: true, forced: FORCED }, {
concat: function concat(arg) { // eslint-disable-line no-unused-vars
var O = toObject(this);
var A = arraySpeciesCreate(O, 0);
var n = 0;
var i, k, length, len, E;
for (i = -1, length = arguments.length; i < length; i++) {
E = i === -1 ? O : arguments[i];
if (isConcatSpreadable(E)) {
len = toLength(E.length);
if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
} else {
if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
createProperty(A, n++, E);
}
}
A.length = n;
return A;
}
});
/**
* Bootstrap Table Chinese translation
* Author: Zhixin Wen<wenzhixin2010@gmail.com>
*/
$.fn.bootstrapTable.locales['zh-CN'] = {
formatLoadingMessage: function formatLoadingMessage() {
return '正在努力地加载数据中,请稍候';
},
formatRecordsPerPage: function formatRecordsPerPage(pageNumber) {
return "\u6BCF\u9875\u663E\u793A ".concat(pageNumber, " \u6761\u8BB0\u5F55");
},
formatShowingRows: function formatShowingRows(pageFrom, pageTo, totalRows, totalNotFiltered) {
if (totalNotFiltered !== undefined && totalNotFiltered > 0 && totalNotFiltered > totalRows) {
return "\u663E\u793A\u7B2C ".concat(pageFrom, " \u5230\u7B2C ").concat(pageTo, " \u6761\u8BB0\u5F55\uFF0C\u603B\u5171 ").concat(totalRows, " \u6761\u8BB0\u5F55\uFF08\u4ECE ").concat(totalNotFiltered, " \u603B\u8BB0\u5F55\u4E2D\u8FC7\u6EE4\uFF09");
}
return "\u663E\u793A\u7B2C ".concat(pageFrom, " \u5230\u7B2C ").concat(pageTo, " \u6761\u8BB0\u5F55\uFF0C\u603B\u5171 ").concat(totalRows, " \u6761\u8BB0\u5F55");
},
formatSRPaginationPreText: function formatSRPaginationPreText() {
return '上一页';
},
formatSRPaginationPageText: function formatSRPaginationPageText(page) {
return "\u7B2C".concat(page, "\u9875");
},
formatSRPaginationNextText: function formatSRPaginationNextText() {
return '下一页';
},
formatDetailPagination: function formatDetailPagination(totalRows) {
return "\u603B\u5171 ".concat(totalRows, " \u6761\u8BB0\u5F55");
},
formatClearSearch: function formatClearSearch() {
return '清空过滤';
},
formatSearch: function formatSearch() {
return '搜索';
},
formatNoMatches: function formatNoMatches() {
return '没有找到匹配的记录';
},
formatPaginationSwitch: function formatPaginationSwitch() {
return '隐藏/显示分页';
},
formatPaginationSwitchDown: function formatPaginationSwitchDown() {
return '显示分页';
},
formatPaginationSwitchUp: function formatPaginationSwitchUp() {
return '隐藏分页';
},
formatRefresh: function formatRefresh() {
return '刷新';
},
formatToggle: function formatToggle() {
return '切换';
},
formatToggleOn: function formatToggleOn() {
return '显示卡片视图';
},
formatToggleOff: function formatToggleOff() {
return '隐藏卡片视图';
},
formatColumns: function formatColumns() {
return '列';
},
formatColumnsToggleAll: function formatColumnsToggleAll() {
return '切换所有';
},
formatFullscreen: function formatFullscreen() {
return '全屏';
},
formatAllRows: function formatAllRows() {
return '所有';
},
formatAutoRefresh: function formatAutoRefresh() {
return '自动刷新';
},
formatExport: function formatExport() {
return '导出数据';
},
formatJumpTo: function formatJumpTo() {
return '跳转';
},
formatAdvancedSearch: function formatAdvancedSearch() {
return '高级搜索';
},
formatAdvancedCloseButton: function formatAdvancedCloseButton() {
return '关闭';
}
};
$.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['zh-CN']);
}));

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,137 @@
.form-select {
position: relative;
}
.form-select .dropdown-menu {
margin-top: 14px;
max-height: 274px;
overflow-x: hidden;
padding: 0.25rem 0;
}
.form-select .dropdown-menu-arrow {
width: 0;
height: 0;
border-width: 0 6px 6px;
border-style: solid;
border-color: transparent transparent rgba(0,0,0,.15);
position: absolute;
left: 20px;
z-index: 1001;
margin-top: 8px;
}
.form-select .dropdown-menu, .form-select .dropdown-menu-arrow {
display: none;
opacity: 0;
transition: opacity .3s;
}
.form-select .dropdown-menu-arrow:after {
content: " ";
width: 0;
height: 0;
border-width: 0 6px 6px;
border-style: solid;
border-color: transparent transparent #fff;
position: absolute;
top: 1px;
left: -6px;
}
.form-select .form-select-input[readonly] {
background-color: #fff;
}
.form-select.open .dropdown-menu, .form-select.open .dropdown-menu-arrow {
display: block;
opacity: 1;
}
.form-select.open .form-select-append i {
transform: rotate(0);
}
.form-select.is-disabled .form-select-input {
background-color: #f5f7fa;
border-color: #e4e7ed;
color: #c0c4cc;
cursor: not-allowed;
}
.form-select-input {
color: #606266;
outline: none;
padding-right: 30px;
cursor: pointer;
}
.form-select-input:hover, .form-select-input:focus {
border-color: #c0c4cc;
}
.form-select-input:focus {
box-shadow: none;
}
.form-select-input.border-primary:hover {
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102,175,233,.6);
}
.form-select-input.border-info:hover {
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(23, 162, 184, 0.5);
}
.form-select-input.border-success:hover {
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(40, 167, 69, 0.5);
}
.form-select-input.border-warning:hover {
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(255, 193, 7, 0.5);
}
.form-select-input.border-danger:hover {
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(220, 53, 69, 0.5);
}
.form-select-input.is-valid, .form-select-input.is-invalid {
background-image: none;
}
.form-select-input.is-invalid:hover {
border-color: #dc3545;
}
.form-select-input.is-invalid + .form-select-append {
color: #dc3545;
}
.form-select-input.is-valid:hover {
border-color: #28a745;
}
.form-select-input.is-valid + .form-select-append {
color: #28a745;
}
input.form-control[data-toggle='lgbSelect'] {
width: 210px;
}
.form-select-append {
position: absolute;
height: 100%;
width: 30px;
right: 0;
top: 0;
color: #c0c4cc;
pointer-events: none;
display: flex;
align-items: center;
justify-content: center;
}
.form-select-append i {
transition: all .3s;
transform: rotate(180deg);
}

View File

@ -0,0 +1,227 @@
(function ($) {
'use strict';
var lgbSelect = function (element, options) {
this.$element = $(element);
this.options = $.extend({}, lgbSelect.DEFAULTS, options);
this.initDom();
};
lgbSelect.VERSION = '1.0';
lgbSelect.Author = 'argo@163.com';
lgbSelect.DataKey = "lgb.select";
lgbSelect.Template = '<div class="form-select" data-toggle="lgbSelect">';
lgbSelect.Template += '<input type="text" readonly="readonly" class="form-control form-select-input" />';
lgbSelect.Template += '<span class="form-select-append">';
lgbSelect.Template += ' <i class="fa fa-angle-up"></i>';
lgbSelect.Template += '</span>';
lgbSelect.Template += '<div class="dropdown-menu-arrow"></div>';
lgbSelect.Template += '<div class="dropdown-menu"></div>';
lgbSelect.Template += '</div>';
lgbSelect.DEFAULTS = {
placeholder: "请选择 ...",
borderClass: null,
textClass: {
'border-primary': 'text-primary',
'border-info': 'text-info',
'border-success': 'text-success',
'border-warning': 'text-warning',
'border-danger': 'text-danger',
'border-secondary': 'text-secondary'
},
attributes: ["data-valid", "data-required-msg", "class"]
};
lgbSelect.AllowMethods = /disabled|enable|val|reset|get/;
var _proto = lgbSelect.prototype;
_proto.initDom = function () {
var that = this;
this.initBySelect();
if (this.options.borderClass) {
this.$input.addClass(this.options.borderClass);
this.$menubar.addClass(this.options.textClass[this.options.borderClass]);
}
this.$input.attr('placeholder', this.options.placeholder);
this.$element.data(lgbSelect.DataKey, this);
// bind event
this.$ctl.on('click', '.form-select-input', function (e) {
e.preventDefault();
that.$ctl.toggleClass('open');
// calc width
that.$ctl.find('.dropdown-menu').outerWidth(that.$ctl.outerWidth());
});
this.$ctl.on('click', 'a.dropdown-item', function (e) {
e.preventDefault();
var $this = $(this);
$this.parent().children().removeClass('active');
that.val($this.attr('data-val'), true);
});
$(document).on('click', function (e) {
if (that.$input[0] !== e.target)
that.closeMenu();
});
var getUID = function (prefix) {
if (!prefix) prefix = 'lgb';
do prefix += ~~(Math.random() * 1000000);
while (document.getElementById(prefix));
return prefix;
};
// init for
var $for = this.$ctl.parent().find('[for="' + this.$element.attr('id') + '"]');
if ($for.length > 0) {
var id = getUID();
this.$input.attr('id', id);
$for.attr('for', id);
}
};
_proto.initBySelect = function () {
var $input = this.$element.prev();
if ($input.attr('data-toggle') === 'lgbSelect') $input.remove();
// 新控件 <div class="form-select">
this.$ctl = $(lgbSelect.Template).insertBefore(this.$element);
// 下拉组合框
this.$input = this.$ctl.find('.form-select-input');
this.$menubar = this.$ctl.find('.form-select-append');
this.$menus = this.$ctl.find('.dropdown-menu');
// init dropdown-menu data
var data = this.$element.find('option').map(function () {
return { value: this.value, text: this.text, selected: this.selected }
}).toArray();
// create new element
// <input type="hidden" data-toggle="lgbSelect" />
this.createElement();
// init dropdown-menu
this.reset(data);
};
_proto.createElement = function () {
var that = this;
// move attributes
this.options.attributes.forEach(function (name, index) {
var value = that.$element.attr(name)
if (value !== undefined) {
if (name === 'class') that.$input.addClass(value).removeClass('d-none');
else that.$input.attr(name, that.$element.attr(name));
}
});
// save attributes
var attrs = [];
["id", "data-default-val"].forEach(function (v, index) {
var value = that.$element.attr(v);
if (value !== undefined) attrs.push({ name: v, value: value });
});
// replace element select -> input hidden
this.$element.remove();
this.$element = $('<input type="hidden" data-toggle="lgbSelect" />').val(that.val()).insertBefore(this.$input);
// restore attributes
attrs.forEach(function (v) {
that.$element.attr(v.name, v.value);
});
};
_proto.closeMenu = function () {
this.$ctl.removeClass('open');
};
_proto.disabled = function () {
this.$ctl.addClass('is-disabled');
this.$input.attr('disabled', 'disabled');
};
_proto.enable = function () {
this.$ctl.removeClass('is-disabled');
this.$input.removeAttr('disabled');
};
_proto.reset = function (value) {
var that = this;
// keep old value
var oldValue = this.$input.attr('value');
// warning: must use attr('value') method instead of val(). otherwise the others input html element will filled by first element value.
// see https://gitee.com/LongbowEnterprise/longbow-select/issues/IZ3BR?from=project-issue
this.$input.attr('value', '').removeClass('is-valid is-invalid');
this.$menus.html('');
$.each(value, function (index) {
var $item = $('<a class="dropdown-item" href="#" data-val="' + this.value + '">' + this.text + '</a>');
that.$menus.append($item);
if (this.selected === true || this.value === oldValue || index === 0 || this.value === that.$element.attr('data-default-val')) {
that.$input.attr('value', this.text);
that.$element.val(this.value).attr('data-text', this.text);
$item.addClass('active');
}
});
this.source = value;
};
_proto.get = function (callback) {
if ($.isFunction(callback)) {
callback.call(this.$element, this.source);
}
};
_proto.val = function (value, valid) {
if (value !== undefined) {
var text = this.$menus.find('a.dropdown-item[data-val="' + value + '"]').text();
this.$input.val(text);
this.$element.val(value).attr('data-text', text);
this.$menus.find('.dropdown-item').removeClass('active');
this.$menus.find('.dropdown-item[data-val="' + value + '"]').addClass('active');
// trigger changed.lgbselect
this.$element.trigger('changed.lgbSelect');
// trigger lgbValidate
if (valid && this.$input.attr('data-valid') === 'true') this.$input.trigger('input.lgb.validate');
}
else {
return this.$element.val();
}
};
function Plugin(option) {
var params = $.makeArray(arguments).slice(1);
return this.each(function () {
var $this = $(this);
// 保护重复生成
if ($this.hasClass('form-select')) return;
var data = $this.data(lgbSelect.DataKey);
var options = typeof option === 'object' && option;
if (!data) $this.data(lgbSelect.DataKey, data = new lgbSelect(this, options));
if (!lgbSelect.AllowMethods.test(option)) return;
if (typeof option === 'string') {
data[option].apply(data, params);
}
});
}
$.fn.lgbSelect = Plugin;
$.fn.lgbSelect.Constructor = lgbSelect;
$(function () {
$('[data-toggle="lgbSelect"]').lgbSelect();
});
})(jQuery);

View File

@ -200,7 +200,10 @@
success(result);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
if (window.toastr) toastr.error(XMLHttpRequest.status === 500 ? '后台应用程序错误' : errorThrown, '程序错误');
if (window.toastr) {
if (errorThrown === '') errorThrown = url;
toastr.error(XMLHttpRequest.status === 500 ? '后台应用程序错误' : errorThrown, '程序错误');
}
success(false);
}
};
@ -209,7 +212,7 @@
crossDomain: true
});
if ($.isArray($.logData) && !$.isEmptyObject(options.data)) $.logData.push({ url: url, data: options.method === 'delete' ? options.logData : options.data });
if (options.method === 'delete') $.logData.log();
if (options.method === 'delete' && $.logData && $.isFunction($.logData.log)) $.logData.log();
$.ajax(ajaxSettings);
},
lgbSwal: function (options) {
@ -224,7 +227,7 @@
return prefix;
},
footer: function (options) {
var op = $.extend({ header: "header", content: ".main-content", ele: 'footer' }, options);
var op = $.extend({ header: "header", content: "body > section:first", ele: 'footer' }, options);
var $ele = $(op.ele);
return $(op.header).outerHeight() + $(op.content).outerHeight() + $ele.outerHeight() > $(window).height() ? $ele.removeClass('position-fixed') : $ele.addClass('position-fixed');
},
@ -235,7 +238,7 @@
return base + url;
},
safeHtml: function (text) {
return $('<div>').text(text).html();
return (text && typeof text === "string") ? $('<div>').text(text).html() : text;
},
syntaxHighlight: function (json) {
if (typeof (json) === 'string') {
@ -412,8 +415,22 @@
return this;
},
getTextByValue: function (value) {
var text = this.children().filter(function () { return $(this).val() === value; }).text();
if (text === "") text = value;
// 通过value获取select控件的text属性
var text = "";
if (typeof value !== "string") value = value.toString();
if (this.attr('data-toggle') === 'lgbSelect') {
if (value === this.val()) text = this.attr('data-text');
else {
var data = [];
this.lgbSelect('get', function (source) { data = source; });
var find = data.filter(function (item, index) { return item.value === value; });
if (find.length === 1) text = find[0].text;
}
}
else {
text = this.children().filter(function () { return $(this).val() === value; }).text();
if (text === "") text = value;
}
return text;
},
lgbInfo: function (option) {
@ -444,8 +461,14 @@
if ($.isFunction(op.callback)) op.callback.apply(that, arguments);
return console.error(err.toString());
}).then(function () {
if (op.invoke) op.invoke(connection).then(function (result) { console.log(result); }).catch(function (err) { console.error(err.toString()); });
// 连接成功
// invoke 为 调用服务端方法
// invoke: function (connection) { return connection.invoke('RetrieveDashboard'); }
if (!op.invoke) return;
var executor = op.invoke(connection);
if (typeof executor === "object" && $.isFunction(executor.then)) executor.then(function (result) { console.log(result); }).catch(function (err) { console.error(err.toString()); });
});
this.hub = connection;
return this;
}
});
@ -468,7 +491,7 @@
});
$(function () {
// fix bug bootstrap-table 1.12.1 showToggle
// fix bug bootstrap-table 1.14.2 showToggle
if ($.fn.bootstrapTable) {
$.extend($.fn.bootstrapTable.defaults.icons, {
refresh: 'fa-refresh'
@ -517,7 +540,7 @@
$("#gotoTop").on('click', function (e) {
e.preventDefault();
$('html, body, .main-content').animate({
$('html, body, body > section:first').animate({
scrollTop: 0
}, 200);
});

View File

@ -1,12 +1,4 @@
(function ($) {
var formatData = function (data) {
delete data._nodes;
delete data._parent;
delete data._level;
delete data._last;
return data;
};
var findIdField = function (tableName) {
var idField = $(tableName).bootstrapTable("getOptions").idField;
if (idField === undefined) idField = "Id";
@ -123,6 +115,7 @@
DataTable.settings = {
url: undefined,
bootstrapTable: 'table',
treegridParentId: 'ParentId',
modal: '#dialogNew',
click: {
'#btn_query': function (element) {
@ -168,13 +161,10 @@
else {
swal($.extend({}, swalDeleteOptions)).then(function (result) {
if (result.value) {
var logData = arrselections.map(function (element, index) {
return formatData($.extend({}, element));
});
var idField = findIdField(options.bootstrapTable);
var iDs = arrselections.map(function (element, index) { return element[idField]; });
$.bc({
url: options.url, data: iDs, method: 'delete', title: options.delTitle, logData: logData,
url: options.url, data: iDs, method: 'delete', title: options.delTitle, logData: arrselections,
callback: function (result) {
if (result) $(options.bootstrapTable).bootstrapTable('refresh');
handlerCallback.call(that, null, element, { oper: 'del', success: result });
@ -207,6 +197,7 @@
var op = {
dataEntity: this.dataEntity,
table: this.options.bootstrapTable,
treegridParentId: this.options.treegridParentId,
modal: this.options.modal,
src: this,
url: this.options.url
@ -224,11 +215,18 @@
if (row.Name) displayName = " <span class='text-danger font-weight-bold'>" + row.Name + "</span> ";
var text = "您确定要删除" + displayName + "吗?";
var data = $.extend({}, row);
formatData(data);
data = [data];
if ($.isArray(row._nodes) && row._nodes.length > 0) {
$.each(row._nodes, function (index, element) {
data.push(formatData($.extend({}, element)));
// 判断是否为父项菜单
var idField = findIdField(op.table);
var idValue = row[idField];
var nodes = $(op.table).bootstrapTable('getData').filter(function (row, index, data) {
return idValue == row[op.treegridParentId];
});
if ($.isArray(nodes) && nodes.length > 0) {
$.each(nodes, function (index, element) {
data.push($.extend({}, element));
});
text = "本删除项含有级联子项目</br>您确定要删除 <span class='text-danger font-weight-bold'>" + row.Name + "</span> 以及子项目吗?";
}

View File

@ -176,13 +176,24 @@
var $this = $(element);
if ($this.is(':hidden')) return result;
var methods = this.rules(element);
var proxy = function(rule) {
var proxy = function (rule) {
if ($.isFunction($.validator.methods[rule])) {
result = $.validator.methods[rule].call(this.options, $this.val(), element, methods[rule]);
if (!result) {
$this.attr('data-original-title', this.defaultMessage(element, { method: rule, parameters: methods[rule] }));
return result;
}
// checkGroup rule
if (rule === 'checkGroup') {
var $checkers = this.$element.find(this.options.childClass).filter(function () {
var $this = $(this);
return $this.hasClass(rule) || $this.attr(rule);
});
$checkers.removeClass(this.options.errorClass).removeClass(this.options.validClass);
if (result) $checkers.tooltip('dispose');
else $checkers.addClass(this.options.errorClass).tooltip();
}
}
else {
console.log('没有匹配的方法 ' + rule);
@ -191,13 +202,13 @@
}
var remote = null;
for (var rule in methods) {
if(rule !== 'remote') {
if (rule !== 'remote') {
result = proxy.call(this, rule);
if(!result) return false;
if (!result) return false;
}
else remote = rule;
}
if(remote !== null) result = proxy.call(this, remote);
if (remote !== null) result = proxy.call(this, remote);
return result;
};
@ -212,26 +223,21 @@
return message;
};
Validate.prototype.attributeRules = function (element) {
var rules = {}, $element = $(element), value;
Validate.prototype.attributeRules = function (element, rules) {
var $element = $(element), value;
$.each(["radioGroup"], function () {
value = element.getAttribute(this);
if (value === "") value = true;
value = !!value;
rules[this] = value;
if (value) {
rules["required"] = false;
$(element).on('change', ':radio', function () {
$(this).trigger('input.lgb.validate');
});
$.each(["remote"], function () {
var para = $element.attr(this);
if (para) {
if (element.name === "") element.name = element.id;
rules[this] = $.formatUrl(para);
}
});
$.each(["remote"], function () {
if (element.getAttribute(this)) {
if (element.name === "") element.name = element.id;
var para = $(element).attr(this);
rules[this] = $.formatUrl(para);
$.each(["radioGroup", "checkGroup"], function () {
if (rules[this]) {
delete rules.required;
return false;
}
});
return rules;
@ -240,7 +246,11 @@
Validate.prototype.rules = function (element) {
var $this = $(element);
var rules = $this.data('lgb.Validate.Rules');
if (!rules) $this.data('lgb.Validate.Rules', rules = $.validator.normalizeRules($.extend({ required: true }, $.validator.classRules(element), $.validator.attributeRules(element), this.attributeRules(element))));
if (!rules) $this.data('lgb.Validate.Rules', rules = this.attributeRules(element, $.validator.normalizeRules($.extend(
{ required: true },
$.validator.classRules(element),
$.validator.attributeRules(element)
))));
return rules;
};
@ -275,9 +285,22 @@
$.validator.addMethod("radioGroup", function (value, element) {
return $(element).find(':checked').length === 1;
}, "请选择一个选项");
$.validator.addMethod("checkGroup", function (value, element) {
return $(element).parents('[data-toggle="LgbValidate"]').find(':checked').length >= 1;
}, "请选择一个选项");
$.validator.addMethod("userName", function (value, element) {
return this.optional(element) || /^[a-zA-Z0-9_@.]*$/.test(value);
}, "登录名称不可以包含非法字符");
$.validator.addMethod("greaterThan", function (value, element, target) {
return this.optional(element) || $(target).val() <= value;
}, "");
$.validator.addMethod("lessThan", function (value, element, target) {
return this.optional(element) || $(target).val() >= value;
}, "");
}
$('[data-toggle="LgbValidate"]').lgbValidate();
});