Files
SMANAGE/backup/GERP copy/KeyUnit/SimulatedTrigger.html
T

215 lines
11 KiB
HTML

<resource-share type="script" src="/assets/js/formConfigs/SimulatedTriggerForm.js"></resource-share>
<div class="layui-fluid">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="layui-card">
<table class="layui-hide" id="ID-treeTable"></table>
<script type="text/html" id="TPL-treeTable">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-warm layui-btn-sm" lay-event="NewSimulatedTrigger">新建模拟触发器</button>
<button class="layui-btn layui-btn-sm" lay-event="FullChecked">展开全部</button>
<button class="layui-btn layui-btn-sm" lay-event="FullOutChecked">收起全部</button>
<button class="layui-btn layui-btn-sm" lay-event="Refresh">刷新</button>
</div>
</script>
<script type="text/html" id="TPL-treeTable-tools">
<div class="layui-btn-container">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a>
<a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-xs" lay-event="more">更多 <i class="layui-icon layui-icon-down"></i></a>
</div>
</script>
</div>
</div>
</div>
</div>
<script>
layui.use(['treeTable', 'layer', 'dropdown', 'form', 'formEngine'], function() {
const treeTable = layui.treeTable;
const layer = layui.layer;
const dropdown = layui.dropdown;
const form = layui.form;
const formEngine = layui.formEngine;
// 渲染树形表格
const tableInst = treeTable.render({
elem: '#ID-treeTable',
id: 'ID-treeTable',
url: '/API/SimulatedTrigger/GetSimulatedTriggers',
tree: {
view: {
iconLeaf: '<i class="layui-icon layui-icon-username"></i>'
}
},
toolbar: '#TPL-treeTable',
cols: [[
{ type: 'checkbox', fixed: 'left' },
{ field: 'SimulatedTriggerUUID', title: '模拟触发器编号', width: 270 },
{ field: 'SimulatedTriggerName', title: '模拟触发器名称', width: 200 },
{ field: 'SimulatedTriggerFilePath', title: '模拟触发器文件路径', width: 300 },
{ field: 'SimulatedTriggerCode', title: '模拟触发器代码', minWidth: 300 },
{
fixed: 'right',
title: '操作',
width: 200,
align: 'center',
toolbar: '#TPL-treeTable-tools'
}
]],
page: false
});
// 表头工具栏事件
treeTable.on('toolbar(ID-treeTable)', function(obj) {
const tableId = obj.config.id;
switch (obj.event) {
case 'FullChecked':
layer.msg('成功展开全部', {icon: 1});
treeTable.expandAll(tableId, true);
break;
case 'FullOutChecked':
layer.msg('成功收起全部', {icon: 1});
treeTable.expandAll(tableId, false);
break;
case 'Refresh':
tableInst.reload();
layer.msg('已刷新', {icon: 1});
break;
case 'NewSimulatedTrigger':
formEngine.openRegisteredForm('SimulatedTrigger-add', {
confirm: function(data, close) {
$.post('/API/SimulatedTrigger/AddSimulatedTrigger', data, function(res) {
if (res.code == 0) {
layer.msg('成功添加模拟触发器', {icon: 1});
tableInst.reload();
close();
} else {
layer.msg(`添加失败:${res.msg}`, {icon: 5});
}
}).fail(() => layer.msg('网络错误', {icon: 5}));
}
});
break;
}
});
// 单元格工具事件
treeTable.on(`tool(${tableInst.config.id})`, function(obj) {
const { event: layEvent, data: trData, tr: trElem, config: { id: tableId } } = obj;
if (layEvent === 'detail') {
// 构建查看窗口的HTML内容
let detailHtml = `
<div class="layui-form layui-form-pane" style="padding: 20px;">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="layui-form-SimulatedTrigger">
<label class="layui-form-label" style="width: 120px;">模拟触发器编号</label>
<div class="layui-input-inline" style="width: 300px;">
<input type="text" value="${trData.SimulatedTriggerUUID || '-'}" readonly class="layui-input">
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-SimulatedTrigger">
<label class="layui-form-label" style="width: 120px;">模拟触发器名称</label>
<div class="layui-input-inline" style="width: 300px;">
<input type="text" value="${trData.SimulatedTriggerName || '-'}" readonly class="layui-input">
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-SimulatedTrigger">
<label class="layui-form-label" style="width: 120px;">触发器文件路径</label>
<div class="layui-input-inline" style="width: 300px;">
<div style="display: flex; align-SimulatedTriggers: center;">
<input type="text" value="${trData.SimulatedTriggerFilePath || '-'}" readonly class="layui-input" style="width: 200px;">
</div>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-form-SimulatedTrigger">
<label class="layui-form-label" style="width: 120px;">模拟触发器代码</label>
<div class="layui-input-block" style="margin-left: 130px;">
<textarea readonly class="layui-textarea" style="width: 300px; min-height: 100px;">${trData.SimulatedTriggerCode || '-'}</textarea>
</div>
</div>
</div>
</div>
</div>
`;
// 弹出layer窗口
layer.open({
type: 1,
title: `模拟触发器详情 - ${trData.SimulatedTriggerName || '未知模拟触发器'}`,
area: ['700px', '500px'],
shade: 0.8,
shadeClose: true,
scrollbar: false,
content: detailHtml,
btn: ['关闭'],
btnAlign: 'c',
yes: function(index) {
layer.close(index);
},
success: function(layero, index) {
// 可以在这里添加一些初始化操作
}
});
}
else if (layEvent === 'edit') {
// 打开已注册的编辑模拟触发器表单
formEngine.openRegisteredForm('SimulatedTrigger-edit', {
data: trData,
confirm: function(data, close) {
data.SimulatedTriggerUUID = trData.SimulatedTriggerUUID;
$.post('/API/SimulatedTrigger/ModifySimulatedTriggerSettings', data, function(res) {
if (res.code == 0) {
layer.msg('成功修改模拟触发器信息', {icon: 1});
tableInst.reload();
close();
} else {
layer.msg(`修改失败:${res.msg}`, {icon: 5});
}
}).fail(() => layer.msg('网络错误', {icon: 5}));
}
});
}
else if (layEvent === 'more') {
dropdown.render({
elem: this,
show: true,
align: 'right',
data: [{ title: '删除', id: 'del' }],
click: function(menudata) {
if (menudata.id === 'del') {
Toast.warning('模拟触发器变更操作', '注销模拟触发器应由组织决定!', 3000);
Toast.warning('模拟触发器变更操作', '验权在后端实现,前端未作限制!', 3000);
Toast.warning('模拟触发器变更操作', '请考虑后果!', 3000);
layer.confirm("确定要删除此模拟触发器吗?删除后不可恢复!", {
title: '删除确认',
icon: 3
}, function(index) {
$.post("/API/SimulatedTrigger/DeleteSimulatedTrigger", {
SimulatedTriggerUUID: trData.SimulatedTriggerUUID
}, function(data) {
if (data.code == 0) {
layer.msg('删除成功', {icon: 1});
obj.del();
tableInst.reload();
} else {
layer.msg(`删除失败:${data.msg}`, {icon: 5});
}
}).fail(() => layer.msg('网络错误', {icon: 5}));
layer.close(index);
});
}
}
});
}
});
});
</script>