调整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\formDesign.js" />
<Content Include="BllScripts\login.js" />
<Content Include="js\openauth.js" />
<Content Include="js\droptree.js" />
<Content Include="BllScripts\parentTree.js" />
<Content Include="BllScripts\processDetail.js" />

View File

@ -9,30 +9,93 @@
// <copyright file="droptree.js" company="www.cnblogs.com/yubaolee">
// 版权所有 玉宝(C) 2017
// </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) {
var $ = layui.jquery;
var layer = layui.layer;
var options;
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);
};
function hideMenu() {
//隐藏下拉菜单
Class.prototype.hideMenu =function () {
$("#menuContent").fadeOut("fast");
$("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);
var value = $(options.idDOM).val();
var value = $(this.config.idDOM).val();
if (value == undefined) return;
var nodeids = value.split(",");
$.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();
for (var i = 0, l = nodes.length; i < l; i++) {
$(options.nameDOM).val(nodes[i].Name);
$(options.idDOM).val(nodes[i].Id);
$(inst.config.nameDOM).val(nodes[i].Name);
$(inst.config.idDOM).val(nodes[i].Id);
break;
}
hideMenu();
}
function onCheck(e, treeId, treeNode) {
Class.prototype.onCheck= function(e, treeId, treeNode) {
var nodes = zTreeObj.getCheckedNodes(true);
var ids = nodes.map(function (e) { return e.Id; }).join(",");
var names = nodes.map(function (e) { return e.Name; }).join(",");
$(options.nameDOM).val(names);
$(options.idDOM).val(ids);
$(inst.config.nameDOM).val(names);
$(inst.config.idDOM).val(ids);
}
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) {
options = {
text: 'Name',
key: 'Id',
parentKey: 'ParentId',
var options = {
nameDOM: name, //显示的文本框ID"#catetoryName"
idDOM: id, //隐藏的文本框,如:"#categoryId"
url: url
}
setting = {
view: { selectedMulti: true },
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();
inst = new Class(options);
return inst;
});
});

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