引入easyadmin'

This commit is contained in:
augushong
2021-11-12 11:21:14 +08:00
parent b999be97ab
commit f7d3bc3827
680 changed files with 44615 additions and 22811 deletions

View File

@@ -0,0 +1,64 @@
define(["jquery", "easy-admin"], function ($, ea) {
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'system.admin/index',
add_url: 'system.admin/add',
edit_url: 'system.admin/edit',
delete_url: 'system.admin/delete',
modify_url: 'system.admin/modify',
export_url: 'system.admin/export',
password_url: 'system.admin/password',
};
var Controller = {
index: function () {
ea.table.render({
init: init,
cols: [[
{type: "checkbox"},
{field: 'id', width: 80, title: 'ID'},
{field: 'sort', width: 80, title: '排序', edit: 'text'},
{field: 'username', minWidth: 80, title: '登录账户'},
{field: 'head_img', minWidth: 80, title: '头像', search: false, templet: ea.table.image},
{field: 'phone', minWidth: 80, title: '手机'},
{field: 'login_num', minWidth: 80, title: '登录次数'},
{field: 'remark', minWidth: 80, title: '备注信息'},
{field: 'status', title: '状态', width: 85, search: 'select', selectList: {0: '禁用', 1: '启用'}, templet: ea.table.switch},
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
{
width: 250,
title: '操作',
templet: ea.table.tool,
operat: [
'edit',
[{
text: '设置密码',
url: init.password_url,
method: 'open',
auth: 'password',
class: 'layui-btn layui-btn-normal layui-btn-xs',
}],
'delete'
]
}
]],
});
ea.listen();
},
add: function () {
ea.listen();
},
edit: function () {
ea.listen();
},
password: function () {
ea.listen();
}
};
return Controller;
});

View File

@@ -0,0 +1,90 @@
define(["jquery", "easy-admin"], function ($, ea) {
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'system.auth/index',
add_url: 'system.auth/add',
edit_url: 'system.auth/edit',
delete_url: 'system.auth/delete',
export_url: 'system.auth/export',
modify_url: 'system.auth/modify',
authorize_url: 'system.auth/authorize',
};
var Controller = {
index: function () {
ea.table.render({
init: init,
cols: [[
{type: "checkbox"},
{field: 'id', width: 80, title: 'ID'},
{field: 'sort', width: 80, title: '排序', edit: 'text'},
{field: 'title', minWidth: 80, title: '权限名称'},
{field: 'remark', minWidth: 80, title: '备注信息'},
{field: 'status', title: '状态', width: 85, search: 'select', selectList: {0: '禁用', 1: '启用'}, templet: ea.table.switch},
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
{
width: 250,
title: '操作',
templet: ea.table.tool,
operat: [
'edit',
[{
text: '授权',
url: init.authorize_url,
method: 'open',
auth: 'authorize',
class: 'layui-btn layui-btn-normal layui-btn-xs',
}],
'delete'
]
}
]],
});
ea.listen();
},
add: function () {
ea.listen();
},
edit: function () {
ea.listen();
},
authorize: function () {
var tree = layui.tree;
ea.request.get(
{
url: window.location.href,
}, function (res) {
res.data = res.data || [];
tree.render({
elem: '#node_ids',
data: res.data,
showCheckbox: true,
id: 'nodeDataId',
});
}
);
ea.listen(function (data) {
var checkedData = tree.getChecked('nodeDataId');
var ids = [];
$.each(checkedData, function (i, v) {
ids.push(v.id);
if (v.children !== undefined && v.children.length > 0) {
$.each(v.children, function (ii, vv) {
ids.push(vv.id);
});
}
});
data.node = JSON.stringify(ids);
return data;
});
}
};
return Controller;
});

View File

@@ -0,0 +1,23 @@
define(["jquery", "easy-admin", "vue"], function ($, ea, Vue) {
var form = layui.form;
var Controller = {
index: function () {
var app = new Vue({
el: '#app',
data: {
upload_type: upload_type
}
});
form.on("radio(upload_type)", function (data) {
app.upload_type = this.value;
});
ea.listen();
}
};
return Controller;
});

View File

@@ -0,0 +1,35 @@
define(["jquery", "easy-admin"], function ($, ea) {
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'system.log/index',
};
var Controller = {
index: function () {
var util = layui.util;
ea.table.render({
init: init,
toolbar: ['refresh'],
cols: [[
{field: 'id', width: 80, title: 'ID', search: false},
{field: 'month', title: '日志月份', hide: true, search: 'time', timeType: 'month', searchValue: util.toDateString(new Date(), 'yyyy-MM')},
{field: 'admin.username', minWidth: 80, title: '后台用户', search: false},
{field: 'method', minWidth: 80, title: '请求方法'},
{field: 'url', minWidth: 80, title: '路由地址'},
{field: 'title', minWidth: 80, title: '日志标题'},
{field: 'content', minWidth: 80, title: '操作内容'},
{field: 'ip', minWidth: 80, title: 'IP地址'},
{field: 'useragent', minWidth: 80, title: 'useragent'},
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
]],
});
ea.listen();
},
};
return Controller;
});

View File

@@ -0,0 +1,195 @@
define(["jquery", "easy-admin", "treetable", "iconPickerFa", "autocomplete"], function ($, ea) {
var table = layui.table,
treetable = layui.treetable,
iconPickerFa = layui.iconPickerFa,
autocomplete = layui.autocomplete;
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'system.menu/index',
add_url: 'system.menu/add',
delete_url: 'system.menu/delete',
edit_url: 'system.menu/edit',
modify_url: 'system.menu/modify',
};
var Controller = {
index: function () {
var renderTable = function () {
layer.load(2);
treetable.render({
treeColIndex: 1,
treeSpid: 0,
homdPid: 99999999,
treeIdName: 'id',
treePidName: 'pid',
url: ea.url(init.index_url),
elem: init.table_elem,
id: init.table_render_id,
toolbar: '#toolbar',
page: false,
skin: 'line',
// @todo 不直接使用ea.table.render(); 进行表格初始化, 需要使用 ea.table.formatCols(); 方法格式化`cols`列数据
cols: ea.table.formatCols([[
{type: 'checkbox'},
{field: 'title', width: 250, title: '菜单名称', align: 'left'},
{field: 'icon', width: 80, title: '图标', templet: ea.table.icon},
{field: 'href', minWidth: 120, title: '菜单链接'},
{
field: 'is_home',
width: 80,
title: '类型',
templet: function (d) {
if (d.pid === 99999999) {
return '<span class="layui-badge layui-bg-blue">首页</span>';
}
if (d.pid === 0) {
return '<span class="layui-badge layui-bg-gray">模块</span>';
} else {
return '<span class="layui-badge-rim">菜单</span>';
}
}
},
{field: 'status', title: '状态', width: 85, templet: ea.table.switch},
{field: 'sort', width: 80, title: '排序', edit: 'text'},
{
width: 200,
title: '操作',
templet: ea.table.tool,
operat: [
[{
text: '添加下级',
url: init.add_url,
method: 'open',
auth: 'add',
class: 'layui-btn layui-btn-xs layui-btn-normal',
extend: 'data-full="true"',
}, {
text: '编辑',
url: init.edit_url,
method: 'open',
auth: 'edit',
class: 'layui-btn layui-btn-xs layui-btn-success',
extend: 'data-full="true"',
}],
'delete'
]
}
]], init),
done: function () {
layer.closeAll('loading');
}
});
};
renderTable();
$('body').on('click', '[data-treetable-refresh]', function () {
renderTable();
});
$('body').on('click', '[data-treetable-delete]', function () {
var tableId = $(this).attr('data-treetable-delete'),
url = $(this).attr('data-url');
tableId = tableId || init.table_render_id;
url = url != undefined ? ea.url(url) : window.location.href;
var checkStatus = table.checkStatus(tableId),
data = checkStatus.data;
if (data.length <= 0) {
ea.msg.error('请勾选需要删除的数据');
return false;
}
var ids = [];
$.each(data, function (i, v) {
ids.push(v.id);
});
ea.msg.confirm('确定删除?', function () {
ea.request.post({
url: url,
data: {
id: ids
},
}, function (res) {
ea.msg.success(res.msg, function () {
renderTable();
});
});
});
return false;
});
ea.table.listenSwitch({filter: 'status', url: init.modify_url});
ea.table.listenEdit(init, 'currentTable', init.table_render_id, true);
ea.listen();
},
add: function () {
iconPickerFa.render({
elem: '#icon',
url: PATH_CONFIG.iconLess,
limit: 12,
click: function (data) {
$('#icon').val('fa ' + data.icon);
},
success: function (d) {
console.log(d);
}
});
autocomplete.render({
elem: $('#href')[0],
url: ea.url('system.menu/getMenuTips'),
template_val: '{{d.node}}',
template_txt: '{{d.node}} <span class=\'layui-badge layui-bg-gray\'>{{d.title}}</span>',
onselect: function (resp) {
}
});
ea.listen(function (data) {
return data;
}, function (res) {
ea.msg.success(res.msg, function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
parent.$('[data-treetable-refresh]').trigger("click");
});
});
},
edit: function () {
iconPickerFa.render({
elem: '#icon',
url: PATH_CONFIG.iconLess,
limit: 12,
click: function (data) {
$('#icon').val('fa ' + data.icon);
},
success: function (d) {
console.log(d);
}
});
autocomplete.render({
elem: $('#href')[0],
url: ea.url('system.menu/getMenuTips'),
template_val: '{{d.node}}',
template_txt: '{{d.node}} <span class=\'layui-badge layui-bg-gray\'>{{d.title}}</span>',
onselect: function (resp) {
}
});
ea.listen(function (data) {
return data;
}, function (res) {
ea.msg.success(res.msg, function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
parent.$('[data-treetable-refresh]').trigger("click");
});
});
}
};
return Controller;
});

View File

@@ -0,0 +1,69 @@
define(["jquery", "easy-admin"], function ($, ea) {
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'system.node/index',
add_url: 'system.node/add',
edit_url: 'system.node/edit',
delete_url: 'system.node/delete',
modify_url: 'system.node/modify',
};
var Controller = {
index: function () {
ea.table.render({
init: init,
search: false,
page: false,
toolbar: ['refresh',
[{
text: '更新节点',
title: '确定更新新节点?',
url: 'system.node/refreshNode?force=0',
method: 'request',
auth: 'refresh',
class: 'layui-btn layui-btn-success layui-btn-sm',
icon: 'fa fa-hourglass',
extend: 'data-table="' + init.table_render_id + '"',
}, {
text: '强制更新节点',
title: '该操作会覆盖已存在的节点信息。<br>确定强制更新节点?',
url: 'system.node/refreshNode?force=1',
method: 'request',
auth: 'refresh',
class: 'layui-btn layui-btn-sm layui-btn-normal',
icon: 'fa fa-hourglass',
extend: 'data-table="' + init.table_render_id + '"',
}, {
text: '清除失效节点',
title: '确定清除失效节点?',
url: 'system.node/clearNode',
method: 'request',
auth: 'clear',
class: 'layui-btn layui-btn-sm layui-btn-danger',
icon: 'fa fa-trash-o',
extend: 'data-table="' + init.table_render_id + '"',
}
]],
cols: [[
{field: 'node', minWidth: 200, align: 'left', title: '系统节点'},
{field: 'title', minWidth: 80, title: '节点名称 <i class="table-edit-tips color-red">*</i>', edit: 'text'},
{field: 'update_time', minWidth: 80, title: '更新时间', search: 'range'},
{field: 'is_auth', title: '节点控制', width: 85, search: 'select', selectList: {0: '禁用', 1: '启用'}, templet: ea.table.switch},
]],
});
ea.listen();
},
add: function () {
ea.listen();
},
edit: function () {
ea.listen();
}
};
return Controller;
});

View File

@@ -0,0 +1,86 @@
define(["jquery", "easy-admin", "iconPickerFa", "autocomplete"], function ($, ea) {
var iconPickerFa = layui.iconPickerFa,
autocomplete = layui.autocomplete;
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'system.quick/index',
add_url: 'system.quick/add',
edit_url: 'system.quick/edit',
delete_url: 'system.quick/delete',
export_url: 'system.quick/export',
modify_url: 'system.quick/modify',
};
var Controller = {
index: function () {
ea.table.render({
init: init,
cols: [[
{type: "checkbox"},
{field: 'id', width: 80, title: 'ID'},
{field: 'sort', width: 80, title: '排序', edit: 'text'},
{field: 'title', minWidth: 80, title: '权限名称'},
{field: 'icon', width: 80, title: '图标', templet: ea.table.icon},
{field: 'href', minWidth: 120, title: '快捷链接'},
{field: 'remark', minWidth: 80, title: '备注信息'},
{field: 'status', title: '状态', width: 85, search: 'select', selectList: {0: '禁用', 1: '启用'}, templet: ea.table.switch},
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
{width: 250, title: '操作', templet: ea.table.tool, operat: ['edit', 'delete']}
]],
});
ea.listen();
},
add: function () {
iconPickerFa.render({
elem: '#icon',
url: PATH_CONFIG.iconLess,
limit: 12,
click: function (data) {
$('#icon').val('fa ' + data.icon);
},
success: function (d) {
console.log(d);
}
});
autocomplete.render({
elem: $('#href')[0],
url: ea.url('system.menu/getMenuTips'),
template_val: '{{d.node}}',
template_txt: '{{d.node}} <span class=\'layui-badge layui-bg-gray\'>{{d.title}}</span>',
onselect: function (resp) {
}
});
ea.listen();
},
edit: function () {
iconPickerFa.render({
elem: '#icon',
url: PATH_CONFIG.iconLess,
limit: 12,
click: function (data) {
$('#icon').val('fa ' + data.icon);
},
success: function (d) {
console.log(d);
}
});
autocomplete.render({
elem: $('#href')[0],
url: ea.url('system.menu/getMenuTips'),
template_val: '{{d.node}}',
template_txt: '{{d.node}} <span class=\'layui-badge layui-bg-gray\'>{{d.title}}</span>',
onselect: function (resp) {
}
});
ea.listen();
},
};
return Controller;
});

View File

@@ -0,0 +1,46 @@
define(["jquery", "easy-admin"], function ($, ea) {
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'system.uploadfile/index',
add_url: 'system.uploadfile/add',
edit_url: 'system.uploadfile/edit',
delete_url: 'system.uploadfile/delete',
modify_url: 'system.uploadfile/modify',
export_url:'system.uploadfile/export',
};
var Controller = {
index: function () {
ea.table.render({
init: init,
cols: [[
{type: "checkbox"},
{field: 'id', width: 80, title: 'ID'},
{field: 'upload_type', minWidth: 80, title: '存储位置', search: 'select', selectList: {'local': '本地', 'alioss': '阿里云', 'qnoss': '七牛云', ',txcos': '腾讯云'}},
{field: 'url', minWidth: 80, search: false, title: '图片信息', templet: ea.table.image},
{field: 'url', minWidth: 120, title: '保存地址', templet: ea.table.url},
{field: 'original_name', minWidth: 80, title: '文件原名'},
{field: 'mime_type', minWidth: 80, title: 'mime类型'},
{field: 'file_ext', minWidth: 80, title: '文件后缀'},
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
{width: 250, title: '操作', templet: ea.table.tool, operat: ['delete']}
]],
});
ea.listen();
},
add: function () {
ea.listen();
},
edit: function () {
ea.listen();
},
password: function () {
ea.listen();
}
};
return Controller;
});