This commit is contained in:
walkor 2022-12-06 19:43:09 +08:00
parent a34ad835ab
commit 01b6102719
4 changed files with 93 additions and 77 deletions

View File

@ -816,8 +816,8 @@ EOF;
$props = Util::getProps($info['control'], $info['control_args']); $props = Util::getProps($info['control'], $info['control_args']);
if (isset($props['url'])) { if (isset($props['url'])) {
$api .= "apis.push(['$field', '{$props['url']}']);"; $api .= "apis.push(['$field', '{$props['url']}']);\r\n";
$api_result .= "apiResults['$field'] = [];"; $api_result .= "apiResults['$field'] = [];\r\n";
} else if (!empty($props['data'])) { } else if (!empty($props['data'])) {
$options = []; $options = [];
foreach ($props['data'] as $option) { foreach ($props['data'] as $option) {

View File

@ -775,8 +775,8 @@ EOF
<script> <script>
// 相关常量 // 相关常量
const PRIMARY_KEY = '$primary_key'; const PRIMARY_KEY = "$primary_key";
const CONTROLLER = '$controller_class_with_namespace'; const CONTROLLER = "$controller_class_with_namespace";
const SELECT_API = "$url_path_base/$template_path/select"; const SELECT_API = "$url_path_base/$template_path/select";
const UPDATE_API = "$url_path_base/$template_path/update"; const UPDATE_API = "$url_path_base/$template_path/update";
const DELETE_API = "$url_path_base/$template_path/delete"; const DELETE_API = "$url_path_base/$template_path/delete";
@ -784,7 +784,7 @@ EOF
const UPDATE_URL = "$url_path_base/$template_path/update"; const UPDATE_URL = "$url_path_base/$template_path/update";
$js $js
// 表格渲染 // 表格渲染
layui.use(['table', 'form', 'common', 'popup', 'util'], function() { layui.use(["table", "form", "common", "popup", "util"], function() {
let table = layui.table; let table = layui.table;
let form = layui.form; let form = layui.form;
let $ = layui.$; let $ = layui.$;
@ -792,45 +792,45 @@ EOF
let util = layui.util; let util = layui.util;
$table_js $table_js
// 编辑或删除行事件 // 编辑或删除行事件
table.on('tool(data-table)', function(obj) { table.on("tool(data-table)", function(obj) {
if (obj.event === 'remove') { if (obj.event === "remove") {
remove(obj); remove(obj);
} else if (obj.event === 'edit') { } else if (obj.event === "edit") {
edit(obj); edit(obj);
} }
}); });
// 表格顶部工具栏事件 // 表格顶部工具栏事件
table.on('toolbar(data-table)', function(obj) { table.on("toolbar(data-table)", function(obj) {
if (obj.event === 'add') { if (obj.event === "add") {
add(); add();
} else if (obj.event === 'refresh') { } else if (obj.event === "refresh") {
refreshTable(); refreshTable();
} else if (obj.event === 'batchRemove') { } else if (obj.event === "batchRemove") {
batchRemove(obj); batchRemove(obj);
} }
}); });
// 表格顶部搜索事件 // 表格顶部搜索事件
form.on('submit(table-query)', function(data) { form.on("submit(table-query)", function(data) {
table.reload('data-table', { table.reload("data-table", {
where: data.field where: data.field
}) })
return false; return false;
}); });
// 表格顶部搜索重置事件 // 表格顶部搜索重置事件
form.on('submit(table-reset)', function(data) { form.on("submit(table-reset)", function(data) {
table.reload('data-table', { table.reload("data-table", {
where: [] where: []
}) })
}); });
// 表格排序事件 // 表格排序事件
table.on('sort(data-table)', function(obj){ table.on("sort(data-table)", function(obj){
table.reload('data-table', { table.reload("data-table", {
initSort: obj, initSort: obj,
scrollPos: 'fixed', scrollPos: "fixed",
where: { where: {
field: obj.field, field: obj.field,
order: obj.type order: obj.type
@ -842,9 +842,9 @@ EOF
let add = function() { let add = function() {
layer.open({ layer.open({
type: 2, type: 2,
title: '新增', title: "新增",
shade: 0.1, shade: 0.1,
area: [common.isModile()?'100%':'500px', common.isModile()?'100%':'450px'], area: [common.isModile()?"100%":"500px", common.isModile()?"100%":"450px"],
content: INSERT_URL content: INSERT_URL
}); });
} }
@ -854,10 +854,10 @@ EOF
let value = obj.data[PRIMARY_KEY]; let value = obj.data[PRIMARY_KEY];
layer.open({ layer.open({
type: 2, type: 2,
title: '修改', title: "修改",
shade: 0.1, shade: 0.1,
area: [common.isModile()?'100%':'500px', common.isModile()?'100%':'450px'], area: [common.isModile()?"100%":"500px", common.isModile()?"100%":"450px"],
content: UPDATE_URL + '?' + PRIMARY_KEY + '=' + value content: UPDATE_URL + "?" + PRIMARY_KEY + "=" + value
}); });
} }
@ -870,33 +870,33 @@ EOF
let batchRemove = function(obj) { let batchRemove = function(obj) {
let checkIds = common.checkField(obj, PRIMARY_KEY); let checkIds = common.checkField(obj, PRIMARY_KEY);
if (checkIds === "") { if (checkIds === "") {
layui.popup.warning('未选中数据'); layui.popup.warning("未选中数据");
return false; return false;
} }
doRemove(checkIds.split(',')); doRemove(checkIds.split(","));
} }
// 执行删除 // 执行删除
let doRemove = function (ids) { let doRemove = function (ids) {
let data = {}; let data = {};
data[PRIMARY_KEY] = ids; data[PRIMARY_KEY] = ids;
layer.confirm('确定删除?', { layer.confirm("确定删除?", {
icon: 3, icon: 3,
title: '提示' title: "提示"
}, function(index) { }, function(index) {
layer.close(index); layer.close(index);
let loading = layer.load(); let loading = layer.load();
$.ajax({ $.ajax({
url: DELETE_API, url: DELETE_API,
data: data, data: data,
dataType: 'json', dataType: "json",
type: 'post', type: "post",
success: function(res) { success: function(res) {
layer.close(loading); layer.close(loading);
if (res.code) { if (res.code) {
return layui.popup.failure(res.msg); return layui.popup.failure(res.msg);
} }
return layui.popup.success('操作成功', refreshTable); return layui.popup.success("操作成功", refreshTable);
} }
}) })
}); });
@ -904,8 +904,8 @@ EOF
// 刷新表格数据 // 刷新表格数据
window.refreshTable = function(param) { window.refreshTable = function(param) {
table.reloadData('data-table', { table.reloadData("data-table", {
scrollPos: 'fixed' scrollPos: "fixed"
}); });
} }
}) })
@ -961,18 +961,18 @@ EOF;
const INSERT_API = "$url_path_base/$template_path/insert"; const INSERT_API = "$url_path_base/$template_path/insert";
$js $js
//提交事件 //提交事件
layui.use(['form', 'popup'], function () { layui.use(["form", "popup"], function () {
layui.form.on('submit(save)', function (data) { layui.form.on("submit(save)", function (data) {
layui.$.ajax({ layui.$.ajax({
url: INSERT_API, url: INSERT_API,
type: 'POST', type: "POST",
dateType: 'json', dateType: "json",
data: data.field, data: data.field,
success: function (res) { success: function (res) {
if (res.code) { if (res.code) {
return layui.popup.failure(res.msg); return layui.popup.failure(res.msg);
} }
return layui.popup.success('操作成功', function () { return layui.popup.success("操作成功", function () {
parent.refreshTable(); parent.refreshTable();
parent.layer.close(parent.layer.getFrameIndex(window.name)); parent.layer.close(parent.layer.getFrameIndex(window.name));
}); });
@ -1031,30 +1031,30 @@ EOF;
<script> <script>
// 相关接口 // 相关接口
const PRIMARY_KEY = '$primary_key'; const PRIMARY_KEY = "$primary_key";
const SELECT_API = "$url_path_base/$template_path/select" + location.search; const SELECT_API = "$url_path_base/$template_path/select" + location.search;
const UPDATE_API = "$url_path_base/$template_path/update"; const UPDATE_API = "$url_path_base/$template_path/update";
// 获取数据库记录 // 获取数据库记录
layui.use(['form', 'util'], function () { layui.use(["form", "util"], function () {
let $ = layui.$; let $ = layui.$;
$.ajax({ $.ajax({
url: SELECT_API, url: SELECT_API,
dataType: 'json', dataType: "json",
success: function (e) { success: function (e) {
// 给表单初始化数据 // 给表单初始化数据
layui.each(e.data[0], function (key, value) { layui.each(e.data[0], function (key, value) {
let obj = $('*[name="'+key+'"]'); let obj = $('*[name="'+key+'"]');
if (key === 'password') { if (key === "password") {
obj.attr('placeholder', '不更新密码请留空'); obj.attr("placeholder", "不更新密码请留空");
return; return;
} }
if (typeof obj[0] === 'undefined' || !obj[0].nodeName) return; if (typeof obj[0] === "undefined" || !obj[0].nodeName) return;
if (obj[0].nodeName.toLowerCase() === 'textarea') { if (obj[0].nodeName.toLowerCase() === "textarea") {
obj.val(layui.util.escape(value)); obj.val(layui.util.escape(value));
} else { } else {
obj.attr('value', value); obj.attr("value", value);
} }
}); });
$js $js
@ -1064,19 +1064,19 @@ EOF;
}); });
//提交事件 //提交事件
layui.use(['form', 'popup'], function () { layui.use(["form", "popup"], function () {
layui.form.on('submit(save)', function (data) { layui.form.on("submit(save)", function (data) {
data.field[PRIMARY_KEY] = layui.url().search[PRIMARY_KEY]; data.field[PRIMARY_KEY] = layui.url().search[PRIMARY_KEY];
layui.$.ajax({ layui.$.ajax({
url: UPDATE_API, url: UPDATE_API,
type: 'POST', type: "POST",
dateType: 'json', dateType: "json",
data: data.field, data: data.field,
success: function (res) { success: function (res) {
if (res.code) { if (res.code) {
return layui.popup.failure(res.msg); return layui.popup.failure(res.msg);
} }
return layui.popup.success('操作成功', function () { return layui.popup.success("操作成功", function () {
parent.refreshTable(); parent.refreshTable();
parent.layer.close(parent.layer.getFrameIndex(window.name)); parent.layer.close(parent.layer.getFrameIndex(window.name));
}); });

View File

@ -6,10 +6,10 @@ use plugin\admin\app\model\Base;
/** /**
* @property integer $id 主键(主键) * @property integer $id 主键(主键)
* @property string $name * @property string $name
* @property string $url url * @property string $url url
* @property integer $admin_id 管理员id * @property integer $admin_id 管理员
* @property integer $user_id 用户id * @property integer $user_id 用户
* @property integer $file_size 文件大小 * @property integer $file_size 文件大小
* @property string $mime_type mime类型 * @property string $mime_type mime类型
* @property integer $image_width 图片宽度 * @property integer $image_width 图片宽度

View File

@ -15,9 +15,9 @@
<form class="layui-form top-search-from"> <form class="layui-form top-search-from">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">主键</label> <label class="layui-form-label">类别</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="number" name="id" value="" class="layui-input"> <div name="category" id="category" value="" ></div>
</div> </div>
</div> </div>
@ -29,16 +29,16 @@
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">管理员id</label> <label class="layui-form-label">扩展名</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="number" name="admin_id" value="" class="layui-input"> <input type="text" name="ext" value="" class="layui-input">
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">扩展名</label> <label class="layui-form-label">管理员</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="text" name="ext" value="" class="layui-input"> <div name="admin_id" id="admin_id" value="" ></div>
</div> </div>
</div> </div>
@ -53,13 +53,6 @@
</div> </div>
</div> </div>
<div class="layui-form-item">
<label class="layui-form-label">类别</label>
<div class="layui-input-block">
<div name="category" id="category" value="" ></div>
</div>
</div>
<div class="layui-form-item layui-inline"> <div class="layui-form-item layui-inline">
<label class="layui-form-label"></label> <label class="layui-form-label"></label>
<button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="table-query"> <button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="table-query">
@ -123,6 +116,27 @@
}); });
}) })
// 字段 管理员 admin_id
layui.use(["jquery", "xmSelect"], function() {
layui.$.ajax({
url: "/app/admin/admin/select?format=select",
dataType: "json",
success: function (e) {
let value = layui.$("#admin_id").attr("value");
let initValue = value ? value.split(",") : [];
layui.xmSelect.render({
el: "#admin_id",
name: "admin_id",
initValue: initValue,
data: e.data,
model: {"icon":"hidden","label":{"type":"text"}},
clickClose: 'true',
radio: 'true',
})
}
});
});
// 字段 类别 category // 字段 类别 category
layui.use(["jquery", "xmSelect"], function() { layui.use(["jquery", "xmSelect"], function() {
layui.$.ajax({ layui.$.ajax({
@ -256,10 +270,12 @@
} }
// 获取表格中下拉或树形组件数据 // 获取表格中下拉或树形组件数据
let apis = []; let apis = [];
apis.push(['category', '/app/admin/dict/get/upload']); apis.push(['admin_id', '/app/admin/admin/select?format=select']);
let apiResults = {}; apis.push(['category', '/app/admin/dict/get/upload']);
apiResults['category'] = []; let apiResults = {};
apiResults['admin_id'] = [];
apiResults['category'] = [];
let count = apis.length; let count = apis.length;
layui.each(apis, function (k, item) { layui.each(apis, function (k, item) {
let [field, url] = item; let [field, url] = item;