311 lines
8.3 KiB
HTML
311 lines
8.3 KiB
HTML
{extend name="../../base/view/common/base" /}
|
|
<!-- 主体 -->
|
|
{block name="breadcrumb"}
|
|
<span class="layui-breadcrumb">
|
|
<a href="http://www.meteteme.com/" target="_blank">江苏美天科技</a>
|
|
<a href="/applications/nav/index">
|
|
<cite>应用</cite>
|
|
</a>
|
|
<a>
|
|
<cite>软件管理</cite>
|
|
</a>
|
|
</span>
|
|
{/block}
|
|
{block name="body"}
|
|
<div class="table-content p-3">
|
|
<div class="layui-form-bar border-t border-x">
|
|
<button class="layui-btn layui-btn-sm layui-bg-blue add-new">+ 上传软件</button>
|
|
<button class="layui-btn layui-btn-sm" id="refresh-btn">刷新</button>
|
|
</div>
|
|
<div class="layui-form-bar border-t border-x">
|
|
<form id="taskForm" class="layui-form">
|
|
<div class="layui-col-md4" style="width: 200px;margin-right: 10px;">
|
|
<div class="layui-input-wrap">
|
|
<div class="layui-input-prefix">
|
|
<!-- <i class="layui-icon layui-icon-username"></i>-->
|
|
</div>
|
|
<input id="gys" type="text" name="name" value="" placeholder="请输入软件名称" class="layui-input"
|
|
lay-affix="clear">
|
|
</div>
|
|
</div>
|
|
<div class="layui-col-md4" style="width: 200px; margin-right: 10px;">
|
|
<div class="layui-input-wrap">
|
|
<select id="lxr" name="cid" lay-search="" lay-filter="cid">
|
|
<option value="">请选择软件分类</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="layui-col-md4" style="width: 200px;margin-right: 10px;">
|
|
<div class="layui-input-wrap">
|
|
<input id="lxdh" type="text" name="uid" value="" placeholder="请输入上传者" class="layui-input"
|
|
lay-affix="clear">
|
|
</div>
|
|
</div>
|
|
<button class="layui-btn" lay-submit lay-filter="webform">搜索</button>
|
|
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
|
</form>
|
|
</div>
|
|
<table class="layui-hide" id="download" lay-filter="download"></table>
|
|
</div>
|
|
{/block}
|
|
<!-- /主体 -->
|
|
|
|
<!-- 脚本 -->
|
|
{block name="script"}
|
|
<script>
|
|
const moduleInit = ['tool', 'gouguEdit', 'gouguComment'];
|
|
|
|
function gouguInit() {
|
|
var table = layui.table,
|
|
form = layui.form,
|
|
layer = layui.layer,
|
|
tool = layui.tool;
|
|
|
|
//存储表格原始数据
|
|
var originalData = [];
|
|
|
|
// 添加按钮
|
|
$('.add-new').on('click', function () {
|
|
tool.open('/download/index/add');
|
|
});
|
|
|
|
// 刷新按钮
|
|
$("#refresh-btn").on("click", function () {
|
|
location.reload();
|
|
});
|
|
|
|
// 动态加载软件分类
|
|
fetch("/download/index/catelist")
|
|
.then((response) => response.json())
|
|
.then((result) => {
|
|
if (result.code === 0 && Array.isArray(result.data)) {
|
|
var select = document.querySelector('select[name="cid"]');
|
|
select.innerHTML = '<option value="">请选择软件分类</option>'; // 清空并添加默认选项
|
|
|
|
result.data.forEach((item) => {
|
|
var option = document.createElement("option");
|
|
option.value = item.name; // 使用分类名称作为 value
|
|
option.innerText = item.name; // 显示分类名称
|
|
select.appendChild(option);
|
|
});
|
|
|
|
// 重新渲染 select
|
|
form.render("select");
|
|
} else {
|
|
console.error("分类加载失败:", result.msg || "未知错误");
|
|
}
|
|
})
|
|
.catch((error) => {
|
|
console.error("分类加载接口异常:", error);
|
|
});
|
|
|
|
// 搜索按钮
|
|
form.on('submit(webform)', function (data) {
|
|
var field = data.field; // 获取表单字段
|
|
|
|
// 重新加载表格数据,传递筛选条件
|
|
layui.pageTable.reload({
|
|
where: {
|
|
name: field.name || '', // 软件名称
|
|
cid: field.cid || '', // 分类名称(通过分类名称筛选)
|
|
uid: field.uid || '' // 上传用户
|
|
},
|
|
page: {
|
|
curr: 1 // 重新从第 1 页开始
|
|
}
|
|
});
|
|
|
|
return false; // 阻止默认 form 提交
|
|
});
|
|
|
|
// 表格渲染
|
|
layui.pageTable = table.render({
|
|
elem: '#download',
|
|
title: '下载列表',
|
|
cellMinWidth: 80,
|
|
url: "/download/index/index", // 数据接口method: 'POST', // 使用 POST 方法传递筛选条件
|
|
where: {}, // 初始筛选条件为空
|
|
page: true, // 开启分页
|
|
limit: 50,
|
|
height: 'full-130',
|
|
cols: [[
|
|
// {
|
|
// field: 'id',
|
|
// title: '下载编号',
|
|
// width: 100,
|
|
// align: 'center',
|
|
// rowspan: 2,
|
|
// templet: function (d) {
|
|
// return 'S' + d.id;
|
|
// }
|
|
// },
|
|
{
|
|
field: 'name',
|
|
title: '软件名称',
|
|
align: 'center',
|
|
width: 300,
|
|
rowspan: 2,
|
|
templet: function (d) {
|
|
var html = '<span>' + (d.name || '-') + '</span>';
|
|
return html;
|
|
}
|
|
},
|
|
{
|
|
field: 'cid',
|
|
title: '软件分类',
|
|
align: 'center',
|
|
width: 160,
|
|
rowspan: 2,
|
|
templet: function (d) {
|
|
var html = '<span>' + (d.cid || '-') + '</span>';
|
|
return html;
|
|
}
|
|
},
|
|
{
|
|
field: 'version',
|
|
title: '软件版本',
|
|
align: 'center',
|
|
width: 120,
|
|
rowspan: 2,
|
|
templet: function (d) {
|
|
var html = '<span>' + (d.version || '-') + '</span>';
|
|
return html;
|
|
}
|
|
},
|
|
{
|
|
field: 'size',
|
|
title: '软件大小',
|
|
align: 'center',
|
|
width: 120,
|
|
rowspan: 2,
|
|
templet: function (d) {
|
|
var html = '<span>' + (d.size || '-') + '</span>';
|
|
return html;
|
|
}
|
|
},
|
|
{
|
|
field: 'type',
|
|
title: '软件类型',
|
|
align: 'center',
|
|
width: 120,
|
|
rowspan: 2,
|
|
templet: function (d) {
|
|
var html = '<span>' + (d.type || '-') + '</span>';
|
|
return html;
|
|
}
|
|
},
|
|
{
|
|
field: 'download_url',
|
|
title: '下载链接',
|
|
align: 'center',
|
|
// width: 500,
|
|
rowspan: 2,
|
|
templet: function (d) {
|
|
var html = '';
|
|
if (d.path && d.path !== 'https://project.meteteme.com/') {
|
|
// 如果有 path 且 path 不等于指定值,则显示 path
|
|
html += '<span>' + d.path + '</span>';
|
|
}
|
|
if (d.download_url) {
|
|
// 如果有 download_url,则显示 download_url 并拼接 download_code
|
|
var downloadCode = d.download_code || '-';
|
|
html += '<span>' + d.download_url + ' 分享码:' + downloadCode + '</span>';
|
|
}
|
|
return html || '<span>-</span>'; // 如果都没有值,显示占位符
|
|
}
|
|
},
|
|
// {
|
|
// field: 'description',
|
|
// title: '软件描述',
|
|
// align: 'center',
|
|
// rowspan: 2,
|
|
// templet: function (d) {
|
|
// var html = '<span>' + (d.description || '-') + '</span>';
|
|
// return html;
|
|
// }
|
|
// },
|
|
// {
|
|
// field: 'uid',
|
|
// title: '上传用户',
|
|
// align: 'center',
|
|
// width: 200,
|
|
// rowspan: 2,
|
|
// templet: function (d) {
|
|
// var html = '<span>' + (d.uid || '-') + '</span>';
|
|
// return html;
|
|
// }
|
|
// },
|
|
{
|
|
title: "操作",
|
|
align: "center",
|
|
width: 240,
|
|
minWidth: 125,
|
|
toolbar: "#barDemo",
|
|
},
|
|
]],
|
|
done: function (res, curr, count) {
|
|
// 仅在首次加载表格时保存原始数据
|
|
if (originalData.length === 0) {
|
|
originalData = res.data;
|
|
}
|
|
}
|
|
});
|
|
|
|
// 搜索重置按钮
|
|
$("#taskForm").on("click", '[lay-filter="clear"]', function () {
|
|
location.reload();
|
|
});
|
|
|
|
table.on('tool(download)', function (obj) {
|
|
var data = obj.data; // 获取当前行的数据
|
|
|
|
if (obj.event === 'edit') {
|
|
var id = data.id; // 获取当前行数据的id
|
|
var url = '/download/index/edit?id=' + id;
|
|
tool.open(url);
|
|
} else if (obj.event === 'delete') {
|
|
layui.layer.confirm(
|
|
"确定删除该软件吗?",
|
|
{ icon: 3, title: "提示" },
|
|
function (index) {
|
|
$.post(
|
|
"/download/index/delete",
|
|
{ id: data.id },
|
|
function (res) {
|
|
if (res.code === 0) {
|
|
layui.layer.msg(res.msg);
|
|
obj.del(); // 删除表格中的对应行数据
|
|
} else {
|
|
layui.layer.msg(res.msg);
|
|
}
|
|
}
|
|
);
|
|
layui.layer.close(index);
|
|
}
|
|
);
|
|
} else if (obj.event === 'view') {
|
|
var id = data.id; // 获取当前行数据的id
|
|
console.log('查看详情', id);
|
|
// 查看详情
|
|
layui.layer.open({
|
|
type: 2, // iframe层
|
|
title: '供应商详情',
|
|
shadeClose: true,
|
|
shade: 0.8,
|
|
area: ['70%', '90%'], // 宽高
|
|
content: '/download/index/view?id=' + id,
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
<script type="text/html" id="barDemo">
|
|
<!-- <a class="layui-btn layui-btn-xs " lay-event="view">详情</a> -->
|
|
<a class="layui-btn layui-btn-xs " lay-event="edit">编辑</a>
|
|
<a class="layui-btn layui-btn-xs layui-bg-red" lay-event="delete">删除</a>
|
|
</script>
|
|
{/block}
|
|
<!-- /脚本 --> |