diff --git a/OpenAuth.Mvc/OpenAuth.Mvc.csproj b/OpenAuth.Mvc/OpenAuth.Mvc.csproj
index 22238abd..6de16f26 100644
--- a/OpenAuth.Mvc/OpenAuth.Mvc.csproj
+++ b/OpenAuth.Mvc/OpenAuth.Mvc.csproj
@@ -175,6 +175,7 @@
+
diff --git a/OpenAuth.Mvc/js/droptree.js b/OpenAuth.Mvc/js/droptree.js
index d0a4b3ca..faf24ffc 100644
--- a/OpenAuth.Mvc/js/droptree.js
+++ b/OpenAuth.Mvc/js/droptree.js
@@ -9,30 +9,93 @@
//
// 版权所有 玉宝(C) 2017
//
-//单击文本框弹出的选择列表,可以多选。调用: layui.droptree("/UserSession/GetOrgs", "#Organizations", "#OrganizationIds");
-//如果想去掉layui,只需把layui.define改成一个普通的函数,最后的exports(xxx)改成一个闭包就行
+//单击文本框弹出的选择列表,可以多选。调用:
+//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;
});
});
\ No newline at end of file
diff --git a/OpenAuth.Mvc/js/openauth.js b/OpenAuth.Mvc/js/openauth.js
new file mode 100644
index 00000000..abcffeab
--- /dev/null
+++ b/OpenAuth.Mvc/js/openauth.js
@@ -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);
+});
\ No newline at end of file
diff --git a/OpenAuth.Mvc/js/users.js b/OpenAuth.Mvc/js/users.js
index 21b8e410..e9e4a3b3 100644
--- a/OpenAuth.Mvc/js/users.js
+++ b/OpenAuth.Mvc/js/users.js
@@ -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('编辑行:
' + JSON.stringify(data));
}