diff --git a/article-add.html b/article-add.html index 6a90c65..d080672 100644 --- a/article-add.html +++ b/article-add.html @@ -68,7 +68,7 @@
- +
@@ -93,9 +93,9 @@ birthdayVerify: [/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))(\s(([01]\d{1})|(2[0123])):([0-5]\d):([0-5]\d))?$/, '日期格式不正确'] }); - form.on('submit(edit)', function (data) { + form.on('submit(add)', function (data) { console.log(data.field); - layer.msg("编辑成功!", {icon: 6, time: 1000, anim: 4}, function () { + layer.msg("添加成功!", {icon: 6, time: 1000, anim: 4}, function () { parent.layer.close(parent.layer.getFrameIndex(window.name)); }); return false; diff --git a/data/tree.json b/data/tree.json new file mode 100644 index 0000000..ae46a35 --- /dev/null +++ b/data/tree.json @@ -0,0 +1,54 @@ +{ + "code": 0, + "msg": "获取成功", + "data": { + "trees": [ + { + "name": "用户管理", + "value": "xsgl", + "checked": true + }, + { + "name": "用户组管理", + "value": "sbgl", + "checked": true, + "list": [ + { + "name": "角色管理", + "value": "sbgl-sbsjlb", + "checked": true, + "list": [ + { + "name": "添加角色", + "value": "sbgl-sbsjlb-dj", + "checked": true + }, + { + "name": "角色列表", + "value": "sbgl-sbsjlb-yl", + "checked": false + } + ] + }, + { + "name": "管理员管理", + "value": "sbgl-sbsjlb", + "checked": true, + "list": [ + { + "name": "添加管理员", + "value": "sbgl-sbsjlb-dj", + "checked": true + }, + { + "name": "管理员列表", + "value": "sbgl-sbsjlb-yl", + "checked": false + } + ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/lib/layui/lay/modules/authtree/authtree.js b/lib/layui/lay/modules/authtree/authtree.js new file mode 100644 index 0000000..09c8a24 --- /dev/null +++ b/lib/layui/lay/modules/authtree/authtree.js @@ -0,0 +1,122 @@ +// 节点树 +layui.define(['jquery', 'form'], function (exports) { + $ = layui.jquery; + form = layui.form; + + obj = { + // 渲染 + 绑定事件 + /** + * 渲染DOM并绑定事件 + * @param {[type]} dst [目标ID,如:#test1] + * @param {[type]} trees [数据,格式:{}] + * @param {[type]} inputname [上传表单名] + * @param {[type]} layfilter [lay-filter的值] + * @param {[type]} openall [默认展开全部] + * @return {[type]} [description] + */ + render: function (dst, trees, opt) { + var inputname = opt.inputname ? opt.inputname : 'menuids[]'; + var layfilter = opt.layfilter ? opt.layfilter : 'checkauth'; + var openall = opt.openall ? opt.openall : false; + $(dst).html(obj.renderAuth(trees, 0, {inputname: inputname, layfilter: layfilter, openall: openall})); + form.render(); + // 备注:如果使用form.on('checkbox()'),外部就无法使用form.on()监听同样的元素了(LAYUI不支持重复监听了)。 + // form.on('checkbox('+layfilter+')', function(data){ + // /*属下所有权限状态跟随,如果选中,往上走全部选中*/ + // var childs = $(data.elem).parent().next().find('input[type="checkbox"]').prop('checked', data.elem.checked); + // if(data.elem.checked){ + // /*查找child的前边一个元素,并将里边的checkbox选中状态改为true。*/ + // $(data.elem).parents('.auth-child').prev().find('input[type="checkbox"]').prop('checked', true); + // } + // /*console.log(childs);*/ + // form.render('checkbox'); + // }); + $(dst).find('.auth-single:first').unbind('click').on('click', '.layui-form-checkbox', function () { + var elem = $(this).prev(); + var checked = elem.is(':checked'); + var childs = elem.parent().next().find('input[type="checkbox"]').prop('checked', checked); + if (checked) { + /*查找child的前边一个元素,并将里边的checkbox选中状态改为true。*/ + elem.parents('.auth-child').prev().find('input[type="checkbox"]').prop('checked', true); + } + /*console.log(childs);*/ + form.render('checkbox'); + }); + + /*动态绑定展开事件*/ + $(dst).unbind('click').on('click', '.auth-icon', function () { + var origin = $(this); + var child = origin.parent().parent().find('.auth-child:first'); + if (origin.is('.active')) { + /*收起*/ + origin.removeClass('active').html(''); + child.slideUp('fast'); + } else { + /*展开*/ + origin.addClass('active').html(''); + child.slideDown('fast'); + } + return false; + }) + }, + // 递归创建格式 + renderAuth: function (tree, dept, opt) { + var inputname = opt.inputname; + var layfilter = opt.layfilter; + var openall = opt.openall; + var str = '
'; + layui.each(tree, function (index, item) { + var hasChild = item.list ? 1 : 0; + // 注意:递归调用时,this的环境会改变! + var append = hasChild ? obj.renderAuth(item.list, dept + 1, opt) : ''; + + // '+new Array(dept * 4).join(' ')+' + str += '
' + (hasChild ? '' + (openall ? '' : '') + '' : '') + (dept > 0 ? '├─ ' : '') + '
' + append + '
' + }); + str += '
'; + return str; + }, + // 获取选中叶子结点 + getLeaf: function (dst) { + var leafs = $(dst).find('.auth-leaf').parent().find('input[type="checkbox"]:checked'); + var data = []; + leafs.each(function (index, item) { + // console.log(item); + data.push(item.value); + }); + // console.log(data); + return data; + }, + // 获取所有选中的数据 + getAll: function (dst) { + var inputs = $(dst).find('input[type="checkbox"]'); + var data = []; + inputs.each(function (index, item) { + data.push(item.value); + }); + // console.log(data); + return data; + }, + // 获取所有选中的数据 + getChecked: function (dst) { + var inputs = $(dst).find('input[type="checkbox"]:checked'); + var data = []; + inputs.each(function (index, item) { + data.push(item.value); + }); + // console.log(data); + return data; + }, + // 获取未选中数据 + getNotChecked: function (dst) { + var inputs = $(dst).find('input[type="checkbox"]:not(:checked)'); + var data = []; + inputs.each(function (index, item) { + data.push(item.value); + }); + // console.log(data); + return data; + } + } + exports('authtree', obj); +}); \ No newline at end of file diff --git a/role-add.html b/role-add.html new file mode 100644 index 0000000..1b005b4 --- /dev/null +++ b/role-add.html @@ -0,0 +1,124 @@ + + + + + 添加角色 + + + + + + + +
+ +
+ + 首页 + 常用页面 + 用户列表 + 添加角色 + + + + +
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+
+
+
+ + +
+
+
+
+ + + + + \ No newline at end of file diff --git a/role-edit.html b/role-edit.html new file mode 100644 index 0000000..6fef96e --- /dev/null +++ b/role-edit.html @@ -0,0 +1,124 @@ + + + + + 编辑角色 + + + + + + + +
+ +
+ + 首页 + 常用页面 + 用户列表 + 编辑角色 + + + + +
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+
+
+
+ + +
+
+
+
+ + + + + \ No newline at end of file diff --git a/user-add.html b/user-add.html index ad83a34..79e062f 100644 --- a/user-add.html +++ b/user-add.html @@ -99,7 +99,7 @@
- +
@@ -124,9 +124,9 @@ birthdayVerify: [/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))(\s(([01]\d{1})|(2[0123])):([0-5]\d):([0-5]\d))?$/, '日期格式不正确'] }); - form.on('submit(edit)', function (data) { + form.on('submit(add)', function (data) { console.log(data.field); - layer.msg("编辑成功!", {icon: 6, time: 1000, anim: 4}, function () { + layer.msg("添加成功!", {icon: 6, time: 1000, anim: 4}, function () { parent.layer.close(parent.layer.getFrameIndex(window.name)); }); return false;