2025-06-25 11:52:01 +08:00

305 lines
8.0 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="/application/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="supplier_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">
<input id="lxr" type="text" name="contact_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">
<input id="lxdh" type="text" name="contact_phone" 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="supplier" lay-filter="supplier"></table>
</div>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool', 'gouguEdit', 'gouguComment'];
function gouguInit() {
var table = layui.table,
form = layui.form,
tool = layui.tool;
//存储表格原始数据
var originalData = [];
// 添加按钮
$('.add-new').on('click', function () {
tool.open('/business/supplier/add');
});
// 刷新按钮
$("#refresh-btn").on("click", function () {
location.reload();
});
// 搜索按钮
form.on('submit(webform)', function (data) {
var field = data.field; // 获取表单字段
// 根据筛选条件筛选原始数据
var filteredData = originalData.filter(function (item) {
return (!field.supplier_name || item.supplier_name.includes(field.supplier_name)) &&
(!field.contact_name || item.contact_name.includes(field.contact_name)) &&
(!field.contact_phone || item.contact_phone.includes(field.contact_phone));
});
// 更新表格,只修改数据,不重新加载整个表格结构
layui.pageTable.reload({
data: filteredData, // 使用筛选后的数据更新表格
page: {
curr: 1 // 重新从第 1 页开始
}
});
return false; // 阻止默认 form 提交
});
// 表格渲染
layui.pageTable = table.render({
elem: '#supplier',
title: '供应商列表',
cellMinWidth: 80,
url: "/business/supplier/index", // 数据接口
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: 'supplier_name',
title: '供应商名称',
align: 'center',
width: 300,
rowspan: 2,
templet: function (d) {
var html = '<span>' + (d.supplier_name || '-') + '</span>';
return html;
}
},
{
field: 'contact_name',
title: '联系人',
align: 'center',
width: 120,
rowspan: 2,
templet: function (d) {
var html = '<span>' + (d.contact_name || '-') + '</span>';
return html;
}
},
{
field: 'contact_phone',
title: '联系电话',
align: 'center',
width: 120,
rowspan: 2,
templet: function (d) {
var html = '<span>' + (d.contact_phone || '-') + '</span>';
return html;
}
},
{
field: 'contact_email',
title: '电子邮件',
align: 'center',
width: 180,
rowspan: 2,
templet: function (d) {
var html = '<span>' + (d.contact_email || '-') + '</span>';
return html;
}
},
{
field: 'company_size',
title: '规模',
align: 'center',
width: 120,
rowspan: 2,
templet: function (d) {
// 将 company_size 转换为字符串进行匹配
var sizeText = '';
switch (String(d.company_size)) {
case '1':
sizeText = '微型企业';
break;
case '2':
sizeText = '小型企业';
break;
case '3':
sizeText = '中型企业';
break;
case '4':
sizeText = '大型企业';
break;
case '5':
sizeText = '事业单位';
break;
case '6':
sizeText = '国有企业';
break;
case '7':
sizeText = '外企';
break;
case '8':
sizeText = '其他';
break;
default:
sizeText = '-';
}
return '<span>' + sizeText + '</span>';
}
},
{
field: 'business_scope',
title: '业务范围',
align: 'center',
width: 240,
rowspan: 2,
templet: function (d) {
var html = '<span>' + (d.business_scope || '-') + '</span>';
return html;
}
},
{
field: 'remarks',
title: '备注',
align: 'center',
rowspan: 2,
templet: function (d) {
var html = '<span>' + (d.remarks || '-') + '</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 () {
layui.pageTable.reload({
data: originalData, // 重置为原始数据
page: {
curr: 1 // 重新从第 1 页开始
}
});
});
table.on('tool(supplier)', function (obj) {
var data = obj.data; // 获取当前行的数据
if (obj.event === 'edit') {
var id = data.id; // 获取当前行数据的id
var url = '/business/supplier/edit?id=' + id;
tool.open(url);
} else if (obj.event === 'delete') {
layui.layer.confirm(
"确定删除该账号吗?",
{ icon: 3, title: "提示" },
function (index) {
$.post(
"/business/supplier/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 === 'invoice') {
var id = data.id; // 获取当前行数据的id
var url = '/business/supplier/invoice?id=' + id;
tool.open(url);
} 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: '/business/supplier/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-blue" lay-event="invoice">开票信息</a>
<a class="layui-btn layui-btn-xs layui-bg-red" lay-event="delete">删除</a>
</script>
{/block}
<!-- /脚本 -->