229 lines
11 KiB
HTML
229 lines
11 KiB
HTML
<resource-share type="script" src="/assets/js/formConfigs/BackpackForm.js"></resource-share>
|
|
|
|
<div class="layui-fluid">
|
|
<div class="layui-row layui-col-space15">
|
|
<div class="layui-col-md12">
|
|
<div class="layui-card" id="Backpack-Card"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
const TABLE_CONFIG = {
|
|
base: {
|
|
cardId: 'Backpack-Card',
|
|
primaryKey: 'BackpackItemUUID',
|
|
title: '背包物品管理',
|
|
full: true,
|
|
api: {
|
|
get: '/API/FormAPI/Get/BackpackItem',
|
|
modify: '/API/FormAPI/ModifyItem/BackpackItem',
|
|
add: '/API/FormAPI/Add/BackpackItem',
|
|
edit: '/API/FormAPI/Modify/BackpackItem',
|
|
delete: '/API/FormAPI/Delete/BackpackItem'
|
|
},
|
|
editableFields: ['ItemName', 'ItemLength', 'ItemIcon', 'ItemIconColor', 'ItemTags', 'ItemDescription', 'ItemMetaData'],
|
|
toolbarBtns: [
|
|
{ name: "新建物品", class: 'primary', event: 'NewItem' },
|
|
{ name: "批量删除", class: '', event: 'BatchDelete' },
|
|
{ name: "刷新", class: '', event: 'Refresh' }
|
|
],
|
|
toolsBtns: [
|
|
{ name: "查看", class: 'view', event: 'detail' },
|
|
{ name: "编辑", class: '', event: 'edit' },
|
|
{ name: "更多 <i class=\"fas fa-chevron-down\"></i>", class: '', event: 'more' }
|
|
],
|
|
/* filterList: [
|
|
{ field: 'ItemName', name: '物品名称', type: 'text', placeholder: '请输入物品名称' },
|
|
{ field: 'ItemTags', name: '物品标签', type: 'text', placeholder: '请输入物品标签' }
|
|
], */
|
|
args: `UserUUID=${window.ARGS.UserUUID}`,
|
|
// 构建表单提交数据,添加UserUUID参数
|
|
buildSubmitData: (submitData, trData, formData) => {
|
|
return {
|
|
...submitData,
|
|
UserUUID: trData.UserUUID || window.ARGS.UserUUID
|
|
};
|
|
},
|
|
// 构建字段更新数据,添加UserUUID参数
|
|
buildUpdateData: (updateData, rowData, field, value) => {
|
|
return {
|
|
...updateData,
|
|
UserUUID: rowData.UserUUID || window.ARGS.UserUUID
|
|
};
|
|
},
|
|
// 构建删除数据,添加UserUUID参数
|
|
buildDeleteData: (deleteData, rowData) => {
|
|
return {
|
|
...deleteData,
|
|
UserUUID: rowData.UserUUID || window.ARGS.UserUUID
|
|
};
|
|
},
|
|
// 构建批量删除数据,添加UserUUID参数
|
|
buildBatchDeleteData: (batchDeleteData, lineIds, primaryIds, firstRowData) => {
|
|
return {
|
|
...batchDeleteData,
|
|
UserUUID: firstRowData?.UserUUID || window.ARGS.UserUUID
|
|
};
|
|
}
|
|
},
|
|
render: {
|
|
method: 'GET',
|
|
cols: [[
|
|
{ type: 'checkbox', fixed: 'left', sticky: true },
|
|
{ field: 'BackpackItemUUID', title: '背包记录编号', width: 270, sticky: true },
|
|
{ field: 'ItemTemplateUUID', title: '物品模板编号', width: 270 },
|
|
{ field: 'ItemName', title: '物品名称', width: 250, edit: 'text' },
|
|
{ field: 'ItemIcon', title: '物品图标', width: 150, templet: d => d.ItemIcon ? `<img src="${d.ItemIcon}" style="height:30px;width:30px;">` : '' },
|
|
{ field: 'ItemIconColor', title: '物品图标颜色', width: 100, templet: d => {
|
|
// 确保颜色值是字符串且不为空
|
|
const colorValue = typeof d.ItemIconColor === 'string' ? d.ItemIconColor.trim() : '';
|
|
return colorValue ? `<div style="width: 30px; height: 30px; background-color: #${colorValue}; border: 1px solid #ddd;"></div>` : '';
|
|
} },
|
|
{ field: 'ItemTags', title: '物品标签', width: 100, edit: 'text' },
|
|
{ field: 'ItemMetaData', title: '物品元数据', width: 300, edit: 'text' },
|
|
{ field: 'ItemLength', title: '物品数量', width: 100, sort: true, edit: 'text' },
|
|
{ field: 'ItemDescription', title: '物品介绍', minWidth: 300, edit: 'text' },
|
|
{ fixed: 'right', title: '操作', width: 200, sticky: true }
|
|
]],
|
|
height: 580,
|
|
page: {
|
|
limits: [10, 20, 50, 100],
|
|
limit: 10,
|
|
},
|
|
request: { pageName: 'PageIndex', limitName: 'PageSize' }
|
|
},
|
|
events: {
|
|
toolbar: {
|
|
Refresh: (manager) => {
|
|
manager.reloadTable();
|
|
console.log('已刷新');
|
|
},
|
|
NewItem: (manager) => {
|
|
manager.confirmAddFormSubmit({
|
|
formKey: 'item-add',
|
|
openForm: { data: { UserUUID: window.ARGS.UserUUID } },
|
|
successMessage: '成功添加物品'
|
|
});
|
|
}
|
|
},
|
|
tool: {
|
|
detail: (trData, trObj, manager) => {
|
|
console.log('查看物品:', trData);
|
|
// 构建查看窗口的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-item">
|
|
<label class="layui-form-label" style="width: 120px;">物品编号</label>
|
|
<div class="layui-input-inline" style="width: 300px;">
|
|
<input type="text" value="${trData.BackpackItemUUID || '-'}" readonly class="layui-input">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="layui-col-md12">
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label" style="width: 120px;">物品名称</label>
|
|
<div class="layui-input-inline" style="width: 300px;">
|
|
<input type="text" value="${trData.ItemName || '-'}" readonly class="layui-input">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="layui-col-md12">
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label" style="width: 120px;">物品元数据</label>
|
|
<div class="layui-input-inline" style="width: 300px;">
|
|
<textarea readonly class="layui-textarea" style="width: 300px; min-height: 100px;">${trData.ItemMetaData || '-'}</textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="layui-col-md12">
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label" style="width: 120px;">物品图标</label>
|
|
<div class="layui-input-inline" style="width: 300px;">
|
|
${trData.ItemIcon ?
|
|
`<img src="${trData.ItemIcon}" alt="物品图标" style="width: 300px; height: 300px; border: 1px solid #eee; padding: 5px;" />` :
|
|
'<span style="color: #999;">无图标</span>'
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="layui-col-md12">
|
|
<div class="layui-form-item">
|
|
<label class="layui-form-label" style="width: 120px;">图标颜色</label>
|
|
<div class="layui-input-inline" style="width: 300px;">
|
|
<div style="display: flex; align-items: center;">
|
|
<input type="text" value="${trData.ItemIconColor || '-'}" readonly class="layui-input" style="width: 200px;">
|
|
${trData.ItemIconColor ?
|
|
`<div style="width: 30px; height: 30px; background-color: ${trData.ItemIconColor}; margin-left: 10px; border: 1px solid #ddd;"></div>` :
|
|
''
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="layui-col-md12">
|
|
<div class="layui-form-item">
|
|
<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.ItemDescription || '-'}</textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
`;
|
|
|
|
// 弹出layer窗口
|
|
layer.open({
|
|
type: 1,
|
|
title: `物品详情 - ${trData.ItemName || '未知物品'}`,
|
|
area: ['700px', '500px'],
|
|
shade: 0.8,
|
|
shadeClose: true,
|
|
scrollbar: false,
|
|
content: detailHtml,
|
|
btn: ['关闭'],
|
|
btnAlign: 'c',
|
|
yes: function(index) {
|
|
layer.close(index);
|
|
}
|
|
});
|
|
},
|
|
edit: (trData, trObj, manager) => {
|
|
manager.confirmFormSubmit({
|
|
formKey: 'item-edit',
|
|
openForm: { data: trData },
|
|
trData: trData,
|
|
successMessage: '成功修改物品'
|
|
});
|
|
},
|
|
more: (trData, trObj, manager) => {
|
|
dropdown.render({
|
|
elem: trObj,
|
|
show: true,
|
|
align: 'right',
|
|
data: [{ title: '删除', id: 'del' }],
|
|
click: (menudata) => {
|
|
if (menudata.id === 'del') {
|
|
Toast.warning('物品变更操作', '注销物品应由组织决定!', 3000);
|
|
Toast.warning('物品变更操作', '验权在后端实现,前端未作限制!', 3000);
|
|
Toast.warning('物品变更操作', '请考虑后果!', 3000);
|
|
manager.confirmAction({
|
|
title: "背包管理",
|
|
message: "确认要删除此物品吗?",
|
|
api: manager.config.base.api.delete,
|
|
params: { BackpackItemUUID: trData.BackpackItemUUID },
|
|
successMessage: "删除成功"
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
window.tableManager = new tableEngine.TableManager(TABLE_CONFIG);
|
|
</script> |