调整droptree;

提取通用方法openauth.js
This commit is contained in:
yubao 2017-09-02 14:32:24 +08:00
parent 2a5a165776
commit 7a2a909edd
4 changed files with 137 additions and 79 deletions

View File

@ -175,6 +175,7 @@
<Content Include="BllScripts\categoryManager.js" /> <Content Include="BllScripts\categoryManager.js" />
<Content Include="BllScripts\formDesign.js" /> <Content Include="BllScripts\formDesign.js" />
<Content Include="BllScripts\login.js" /> <Content Include="BllScripts\login.js" />
<Content Include="js\openauth.js" />
<Content Include="js\droptree.js" /> <Content Include="js\droptree.js" />
<Content Include="BllScripts\parentTree.js" /> <Content Include="BllScripts\parentTree.js" />
<Content Include="BllScripts\processDetail.js" /> <Content Include="BllScripts\processDetail.js" />

View File

@ -9,30 +9,93 @@
// <copyright file="droptree.js" company="www.cnblogs.com/yubaolee"> // <copyright file="droptree.js" company="www.cnblogs.com/yubaolee">
// 版权所有 玉宝(C) 2017 // 版权所有 玉宝(C) 2017
// </copyright> // </copyright>
//单击文本框弹出的选择列表,可以多选。调用: layui.droptree("/UserSession/GetOrgs", "#Organizations", "#OrganizationIds"); //单击文本框弹出的选择列表,可以多选。调用:
//如果想去掉layui只需把layui.define改成一个普通的函数最后的exportsxxx改成一个闭包就行 //var droptree = layui.droptree("/UserSession/GetOrgs", "#Organizations", "#OrganizationIds");
// droptree.render();
// *********************************************************************** // ***********************************************************************
layui.define(['jquery', 'layer'], function (exports) { layui.define(['jquery', 'layer'], function (exports) {
var $ = layui.jquery; var $ = layui.jquery;
var layer = layui.layer; var layer = layui.layer;
var options;
var zTreeObj; var zTreeObj;
var setting; var inst; //droptree实体
var showMenu = function () { //构造器
$("#menuContent").css({ left: "10px", top: $(options.nameDOM).outerHeight() + "px" }).slideDown("fast"); var Class = function (options) {
var that = this;
that.config = $.extend({}, that.config, options);
};
//默认配置
Class.prototype.config = {
text: 'Name',
key: 'Id',
parentKey: 'ParentId'
};
//显示下拉菜单
Class.prototype.showMenu =function () {
$("#menuContent").css({ left: "10px", top: $(this.config.nameDOM).outerHeight() + "px" }).slideDown("fast");
$("body").bind("mousedown", onBodyDown); $("body").bind("mousedown", onBodyDown);
}; };
function hideMenu() {
//隐藏下拉菜单
Class.prototype.hideMenu =function () {
$("#menuContent").fadeOut("fast"); $("#menuContent").fadeOut("fast");
$("body").unbind("mousedown", onBodyDown); $("body").unbind("mousedown", onBodyDown);
} }
var setCheck = function () { //设置初始选中的值 //加载数据
Class.prototype.render = function () {
var that = this;
var setting = {
view: { selectedMulti: true },
check: {
enable: true,
chkStyle: "checkbox",
chkboxType: { "Y": "", "N": "" } //去掉勾选时级联
},
data: {
key: {
name: that.config.text,
title: that.config.text
},
simpleData: {
enable: true,
idKey: that.config.key,
pIdKey: that.config.parentKey,
rootPId: 'null'
}
},
callback: {
onClick: that.onClick,
onCheck: that.onCheck
}
};
var index = layer.load();
$.getJSON(this.config.url,
{
page: 1, rows: 10000
},
function (json) {
layer.close(index);
if (json.length == 0) {
$(this.config.nameDOM).val('');
$(this.config.idDOM).val('');
return;
}
zTreeObj = $.fn.zTree.init($("#org"), setting, json);
that.setCheck();
zTreeObj.expandAll(true);
that.showMenu();
});
}
//设置初始选中的值
Class.prototype.setCheck = function () {
zTreeObj.checkAllNodes(false); zTreeObj.checkAllNodes(false);
var value = $(options.idDOM).val(); var value = $(this.config.idDOM).val();
if (value == undefined) return; if (value == undefined) return;
var nodeids = value.split(","); var nodeids = value.split(",");
$.each(nodeids, $.each(nodeids,
@ -44,23 +107,24 @@ layui.define(['jquery', 'layer'], function (exports) {
}); });
} }
function onClick(e, treeId, treeNode) {
Class.prototype.onClick =function(e, treeId, treeNode) {
var nodes = zTreeObj.getSelectedNodes(); var nodes = zTreeObj.getSelectedNodes();
for (var i = 0, l = nodes.length; i < l; i++) { for (var i = 0, l = nodes.length; i < l; i++) {
$(options.nameDOM).val(nodes[i].Name); $(inst.config.nameDOM).val(nodes[i].Name);
$(options.idDOM).val(nodes[i].Id); $(inst.config.idDOM).val(nodes[i].Id);
break; break;
} }
hideMenu(); hideMenu();
} }
function onCheck(e, treeId, treeNode) { Class.prototype.onCheck= function(e, treeId, treeNode) {
var nodes = zTreeObj.getCheckedNodes(true); var nodes = zTreeObj.getCheckedNodes(true);
var ids = nodes.map(function (e) { return e.Id; }).join(","); var ids = nodes.map(function (e) { return e.Id; }).join(",");
var names = nodes.map(function (e) { return e.Name; }).join(","); var names = nodes.map(function (e) { return e.Name; }).join(",");
$(options.nameDOM).val(names); $(inst.config.nameDOM).val(names);
$(options.idDOM).val(ids); $(inst.config.idDOM).val(ids);
} }
function onBodyDown(event) { function onBodyDown(event) {
@ -69,59 +133,13 @@ layui.define(['jquery', 'layer'], function (exports) {
} }
} }
var load = function () {
var index = layer.load();
$.getJSON(options.url,
{
page: 1, rows: 10000
},
function (json) {
layer.close(index);
if (json.length == 0) {
$(options.nameDOM).val('');
$(options.idDOM).val('');
return;
}
zTreeObj = $.fn.zTree.init($("#org"), setting, json);
setCheck();
zTreeObj.expandAll(true);
showMenu();
});
}
exports('droptree', function (url, name, id) { exports('droptree', function (url, name, id) {
options = { var options = {
text: 'Name',
key: 'Id',
parentKey: 'ParentId',
nameDOM: name, //显示的文本框ID"#catetoryName" nameDOM: name, //显示的文本框ID"#catetoryName"
idDOM: id, //隐藏的文本框,如:"#categoryId" idDOM: id, //隐藏的文本框,如:"#categoryId"
url: url url: url
} }
setting = { inst = new Class(options);
view: { selectedMulti: true }, return inst;
check: {
enable: true,
chkStyle: "checkbox",
chkboxType: { "Y": "", "N": "" } //去掉勾选时级联
},
data: {
key: {
name: options.text,
title: options.text
},
simpleData: {
enable: true,
idKey: options.key,
pIdKey: options.parentKey,
rootPId: 'null'
}
},
callback: {
onClick: onClick,
onCheck: onCheck
}
};
load();
}); });
}); });

View File

@ -0,0 +1,48 @@
/**
* Openauth通用工具库
* yubaolee @ 2017
* www.cnblogs.com/yubaolee
*/
layui.define(['jquery', 'layer'], function (exports) {
var $ = layui.jquery;
var layer = layui.layer;
//字符串常量
var MOD_NAME = 'openauth',
THIS = 'layui-this',
SHOW = 'layui-show',
HIDE = 'layui-hide',
DISABLED = 'layui-disabled';
//外部接口
var openauth = {
config: {} //全局配置项
//设置全局项
, set: function (options) {
var that = this;
that.config = $.extend({}, that.config, options);
return that;
}
//事件监听
, on: function (events, callback) {
return layui.onevent.call(this, MOD_NAME, events, callback);
}
//删除
, del: function (url, dataids, callback) {
layer.confirm('真的删除么', function (index) {
$.post(url, { ids: dataids },
function (data) {
if (data.Status) {
if (callback != undefined) callback();
} else {
layer.msg(data.Message);
}
}, "json");
layer.close(index);
});
}
}
exports(MOD_NAME, openauth);
});

View File

@ -1,12 +1,13 @@
layui.config({ layui.config({
base: "/js/" base: "/js/"
}).use(['form', 'ztree', 'layer', 'jquery', 'table','droptree'], function () { }).use(['form', 'ztree', 'layer', 'jquery', 'table','droptree','openauth'], function () {
var form = layui.form, var form = layui.form,
//layer = parent.layer === undefined ? layui.layer : parent.layer, layer = (parent == undefined || parent.layer === undefined )? layui.layer : parent.layer,
layer =layui.layer,
$ = layui.jquery; $ = layui.jquery;
var dataurl = '/UserManager/Load'; var dataurl = '/UserManager/Load';
var table = layui.table; var table = layui.table;
var openauth = layui.openauth;
var droptree = layui.droptree("/UserSession/GetOrgs", "#Organizations", "#OrganizationIds");
//左边树状机构列表 //左边树状机构列表
var ztree = function () { var ztree = function () {
@ -58,7 +59,7 @@ layui.config({
//上级机构选择框 //上级机构选择框
$("#Organizations").on("click", function () { $("#Organizations").on("click", function () {
layui.droptree("/UserSession/GetOrgs", "#Organizations", "#OrganizationIds"); droptree.render();
}); });
//监听表格复选框选择 //监听表格复选框选择
@ -72,17 +73,7 @@ layui.config({
layer.msg('ID' + data.Id + ' 的查看操作'); layer.msg('ID' + data.Id + ' 的查看操作');
} else if (obj.event === 'del') { //删除 } else if (obj.event === 'del') { //删除
layer.confirm('真的删除么', function (index) { openauth.del("/UserManager/Delete", data.Id, obj.del);
$.post("/UserManager/Delete", { ids: data.Id },
function (data) {
if (data.Status) {
obj.del();
} else {
layer.msg(data.Message);
}
},"json");
layer.close(index);
});
} else if (obj.event === 'edit') { } else if (obj.event === 'edit') {
layer.alert('编辑行:<br>' + JSON.stringify(data)); layer.alert('编辑行:<br>' + JSON.stringify(data));
} }