You've already forked qlg.tsgz.moe
Init Repo
This commit is contained in:
1290
hyhproject/admin/view/js/ligerui/js/core/base.js
Executable file
1290
hyhproject/admin/view/js/ligerui/js/core/base.js
Executable file
File diff suppressed because it is too large
Load Diff
283
hyhproject/admin/view/js/ligerui/js/core/inject.js
Executable file
283
hyhproject/admin/view/js/ligerui/js/core/inject.js
Executable file
@ -0,0 +1,283 @@
|
||||
/**
|
||||
* jQuery ligerUI 1.3.2
|
||||
*
|
||||
* http://ligerui.com
|
||||
*
|
||||
* Author daomi 2015 [ gd_star@163.com ]
|
||||
*
|
||||
*/
|
||||
(function ($)
|
||||
{
|
||||
/*
|
||||
以html的方式加载组件
|
||||
程序会查询以 liger-插件名 类名的Dom,从dom加载相应的参数并调用插件
|
||||
比如遇到 .liger-grid 的dom,会找到 liger.defaults.Grid 加载需要的参数
|
||||
而在config.Grid中配置了这些参数的类型,会动态得加载data,而columns会设置为数组
|
||||
参数处理的优先级为:
|
||||
1,ignores 忽略不处理的参数
|
||||
2,dom存在 {属性名} 的类名 ,比如 <ul class="columns"></ul> ,便会将这个参数设置为复杂属性(object或array):找到相应的defaults和config来加载
|
||||
defaults是先找$.liger.inject.defaults,找不到再找liger.defaults的
|
||||
config为{父配置}.{属性名},比如 config.Grid.columns
|
||||
3,直接读取 data-{属性名} 或者 {属性名} 的dom属性
|
||||
*/
|
||||
liger.inject = {
|
||||
|
||||
prev: 'liger-',
|
||||
|
||||
/*
|
||||
命名规则:插件名_属性名(包括第N级的属性) (插件名首字母大写,属性名首字母小写)
|
||||
获取规则:获取default时会先找这里,找不到再找liger.defaults,比如 liger.defaults.Grid_columns
|
||||
备注:这里只定义了参数的列表
|
||||
*/
|
||||
defaults: {
|
||||
Grid_detail: {
|
||||
height: null,
|
||||
onShowDetail: null
|
||||
},
|
||||
Grid_editor: 'ComboBox,DateEditor,Spinner,TextBox,PopupEdit,CheckBoxList,RadioList,Grid_editor',
|
||||
Grid_popup: 'PopupEdit',
|
||||
Grid_grid: 'Grid',
|
||||
Grid_condition: 'Form',
|
||||
Grid_toolbar: 'Toolbar',
|
||||
Grid_fields: 'Form_fields',
|
||||
Form_editor: 'ComboBox,DateEditor,Spinner,TextBox,PopupEdit,CheckBoxList,RadioList,Form_editor',
|
||||
Form_grid: 'Grid',
|
||||
Form_columns: 'Grid_columns',
|
||||
Form_condition: 'Form',
|
||||
Form_popup: 'PopupEdit',
|
||||
Form_buttons: 'Button',
|
||||
Portal_panel: 'Panel'
|
||||
},
|
||||
/*
|
||||
config里面配置了某插件参数或者复杂属性参数的类型(动态加载、数组、默认参数)
|
||||
*/
|
||||
config: {
|
||||
Grid: {
|
||||
//动态
|
||||
dynamics: 'data,isChecked,detail,rowDraggingRender,toolbar,columns',
|
||||
//数组
|
||||
arrays: 'columns',
|
||||
//复杂属性columns
|
||||
columns: {
|
||||
dynamics: 'render,totalSummary,headerRender,columns,editor,columns',
|
||||
arrays: 'columns',
|
||||
textProperty: 'display',
|
||||
columns: 'liger.inject.config.Grid.columns',
|
||||
editor: {
|
||||
dynamics: 'data,columns,render,renderItem,grid,condition,ext',
|
||||
grid: 'liger.inject.config.Grid',
|
||||
condition: 'liger.inject.config.Form'
|
||||
}
|
||||
},
|
||||
toolbar: {
|
||||
arrays: 'items'
|
||||
}
|
||||
},
|
||||
Form: {
|
||||
dynamics: 'validate,fields,buttons',
|
||||
arrays: 'fields,buttons',
|
||||
fields: {
|
||||
textProperty: 'label',
|
||||
dynamics: 'validate,editor',
|
||||
editor: {
|
||||
dynamics: 'data,columns,render,renderItem,grid,condition,attr',
|
||||
grid: 'liger.inject.config.Grid',
|
||||
condition: 'liger.inject.config.Form'
|
||||
}
|
||||
},
|
||||
buttons: 'liger.inject.config.Button'
|
||||
},
|
||||
PopupEdit: {
|
||||
dynamics: 'grid,condition'
|
||||
},
|
||||
Button: {
|
||||
textProperty: 'text',
|
||||
dynamics: 'click'
|
||||
},
|
||||
ComboBox: {
|
||||
dynamics: 'columns,data,tree,grid,condition,render,parms,renderItem'
|
||||
},
|
||||
ListBox: {
|
||||
dynamics: 'columns,data,render,parms'
|
||||
},
|
||||
RadioList: {
|
||||
dynamics: 'data,parms'
|
||||
},
|
||||
CheckBoxList: {
|
||||
dynamics: 'data,parms'
|
||||
},
|
||||
Panel: {
|
||||
},
|
||||
Portal: {
|
||||
//动态
|
||||
dynamics: 'rows,columns',
|
||||
//数组
|
||||
arrays: 'rows,columns',
|
||||
//复杂属性 columns
|
||||
columns: {
|
||||
dynamics: 'panels',
|
||||
arrays: 'panels'
|
||||
},
|
||||
//复杂属性 rows
|
||||
rows: {
|
||||
dynamics: 'panels',
|
||||
arrays: 'panels'
|
||||
},
|
||||
toolbar: {
|
||||
arrays: 'items'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
parse: function (code)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (code == null) return null;
|
||||
return new Function("return " + code + ";")();
|
||||
} catch (e)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
||||
parseDefault: function (value)
|
||||
{
|
||||
var g = this;
|
||||
if (!value) return value;
|
||||
var result = {};
|
||||
$(value.split(',')).each(function (index, name)
|
||||
{
|
||||
if (!name) return;
|
||||
name = name.substr(0, 1).toUpperCase() + name.substr(1);
|
||||
$.extend(result, g.parse("liger.defaults." + name));
|
||||
});
|
||||
return result;
|
||||
},
|
||||
|
||||
fotmatValue: function (value, type)
|
||||
{
|
||||
if (type == "boolean")
|
||||
return value == "true" || value == "1";
|
||||
if (type == "number" && value)
|
||||
return parseFloat(value.toString());
|
||||
return value;
|
||||
},
|
||||
|
||||
getOptions: function (e)
|
||||
{
|
||||
var jelement = e.jelement, defaults = e.defaults, config = e.config;
|
||||
config = $.extend({
|
||||
ignores: "",
|
||||
dynamics: "",
|
||||
arrays: ""
|
||||
}, config);
|
||||
var g = this, options = {}, value;
|
||||
if (config.textProperty) options[config.textProperty] = jelement.text();
|
||||
for (var proName in defaults)
|
||||
{
|
||||
var className = proName.toLowerCase();
|
||||
var subElement = $("> ." + className, jelement);
|
||||
//忽略
|
||||
if ($.inArray(proName, config.ignores.split(',')) != -1) continue;
|
||||
//判断子节点 (复杂属性)
|
||||
if (subElement.length)
|
||||
{
|
||||
var defaultName = e.controlName + "_" + proName;
|
||||
var subDefaults = g.defaults[defaultName] || liger.defaults[defaultName], subConfig = config[proName];
|
||||
if (typeof (subDefaults) == "string") subDefaults = g.parseDefault(subDefaults);
|
||||
else if (typeof (subDefaults) == "funcion") subDefaults = subDefaults();
|
||||
if (typeof (subConfig) == "string") subConfig = g.parse(subConfig);
|
||||
else if (typeof (subConfig) == "funcion") subConfig = subConfig();
|
||||
if (subDefaults)
|
||||
{
|
||||
if ($.inArray(proName, config.arrays.split(',')) != -1)
|
||||
{
|
||||
value = [];
|
||||
$(">div,>li,>input", subElement).each(function ()
|
||||
{
|
||||
value.push(g.getOptions({
|
||||
defaults: subDefaults,
|
||||
controlName: e.controlName,
|
||||
config: subConfig,
|
||||
jelement: $(this)
|
||||
}));
|
||||
});
|
||||
options[proName] = value;
|
||||
} else
|
||||
{
|
||||
options[proName] = g.getOptions({
|
||||
defaults: subDefaults,
|
||||
controlName: e.controlName,
|
||||
config: subConfig,
|
||||
jelement: subElement
|
||||
});
|
||||
}
|
||||
}
|
||||
subElement.remove();
|
||||
}
|
||||
//动态值
|
||||
else if ($.inArray(proName, config.dynamics.split(',')) != -1 || proName.indexOf('on') == 0)
|
||||
{
|
||||
value = g.parse(jelement.attr("data-" + proName) || jelement.attr(proName));
|
||||
if (value)
|
||||
{
|
||||
options[proName] = g.fotmatValue(value, typeof (defaults[proName]));
|
||||
}
|
||||
}
|
||||
//默认处理
|
||||
else
|
||||
{
|
||||
value = jelement.attr("data-" + proName) || jelement.attr(proName);
|
||||
if (value)
|
||||
{
|
||||
options[proName] = g.fotmatValue(value, typeof (defaults[proName]));
|
||||
}
|
||||
}
|
||||
}
|
||||
var dataOptions = jelement.attr("data-options") || jelement.attr("data-property");
|
||||
if (dataOptions) dataOptions = g.parse("{" + dataOptions + "}");
|
||||
if (dataOptions) $.extend(options, dataOptions);
|
||||
return options;
|
||||
},
|
||||
|
||||
init: function ()
|
||||
{
|
||||
var g = this, configs = this.config;
|
||||
for (var name in g.defaults)
|
||||
{
|
||||
if (typeof (g.defaults[name]) == "string")
|
||||
{
|
||||
g.defaults[name] = g.parseDefault(g.defaults[name]);
|
||||
}
|
||||
}
|
||||
for (var controlName in liger.controls)
|
||||
{
|
||||
var config = configs[controlName] || {};
|
||||
var className = g.prev + controlName.toLowerCase();
|
||||
$("." + className).each(function ()
|
||||
{
|
||||
var jelement = $(this), value;
|
||||
var defaults = $.extend({
|
||||
onrender: null,
|
||||
onrendered: null
|
||||
}, liger.defaults[controlName]);
|
||||
var options = g.getOptions({
|
||||
defaults: defaults,
|
||||
controlName: controlName,
|
||||
config: config,
|
||||
jelement: jelement
|
||||
});
|
||||
jelement[liger.pluginPrev + controlName](options);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$(function ()
|
||||
{
|
||||
liger.inject.init();
|
||||
});
|
||||
|
||||
})(jQuery);
|
22675
hyhproject/admin/view/js/ligerui/js/ligerui.all.js
Executable file
22675
hyhproject/admin/view/js/ligerui/js/ligerui.all.js
Executable file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user