115 lines
4.7 KiB
PHP
115 lines
4.7 KiB
PHP
define(["jquery", "easy-admin"], function ($, ea) {
|
|
|
|
var init = {
|
|
table_elem: '#currentTable',
|
|
table_render_id: 'currentTableRenderId',
|
|
index_url: 'mall.order/index',
|
|
add_url: 'mall.order/add',
|
|
edit_url: 'mall.order/edit',
|
|
delete_url: 'mall.order/delete',
|
|
export_url: 'mall.order/export',
|
|
modify_url: 'mall.order/modify',
|
|
recharge_url: 'mall.order/recharge',
|
|
blockip_url: 'mall.order/blockip',
|
|
recycle_url: 'mall.order/recycle',
|
|
};
|
|
|
|
let checkTimer = null; // 定时器对象
|
|
let autoCheckEnabled = true; // 默认启用
|
|
let autoCheckId = 1; // 默认启用
|
|
|
|
return {
|
|
|
|
index: function () {
|
|
ea.table.render({
|
|
init: init,
|
|
toolbar: [
|
|
'refresh', 'delete', 'export', 'recycle'
|
|
],
|
|
cols: [[
|
|
{type: "checkbox"},
|
|
{field: 'id', width: 80, title: 'ID', searchOp: '='},
|
|
{field: 'rid', width: 100, title: '订单号'},
|
|
{field: 'money', width: 100, title: '金额'},
|
|
{field: 'ip', width: 100, title: 'IP'},
|
|
{field: 'url', width: 100, title: '支付链接', edit: true},
|
|
{field: 'status', title: '状态', width: 85, selectList: {0: '未分配', 1: '已分配', 2: '已支付'}},
|
|
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
|
|
{
|
|
width: 500,
|
|
title: '操作',
|
|
templet: ea.table.tool,
|
|
operat: [
|
|
[{
|
|
class: 'layui-btn layui-btn-success layui-btn-xs',
|
|
method: 'open',
|
|
field: 'id',
|
|
text: '编辑支付链接',
|
|
url: init.edit_url,
|
|
extend: 'data-width="90%" data-height="95%"',
|
|
}],
|
|
[{
|
|
class: 'layui-btn layui-btn-danger layui-btn-xs',
|
|
method: 'get',
|
|
field: 'id',
|
|
text: '确认支付',
|
|
url: init.recharge_url,
|
|
}],
|
|
[{
|
|
class: 'layui-btn layui-btn-danger layui-btn-xs',
|
|
method: 'get',
|
|
field: 'id',
|
|
text: 'IP拉黑',
|
|
url: init.blockip_url,
|
|
}],
|
|
'delete'
|
|
]
|
|
}
|
|
]],
|
|
done: (res) => {
|
|
$.each(res.data, function (idx, item) {
|
|
if (item.status === 1) {
|
|
$(`tr[data-index="${idx}"]`).css({
|
|
'background': 'linear-gradient(to left, #77eb7c, #bbffbe, #ffffff, transparent)',
|
|
'border': 'none',
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
// 🔁 定时检测逻辑
|
|
checkTimer = setInterval(function () {
|
|
ea.request.get({
|
|
url: ea.url('index/get_order'),
|
|
}, function (res) {
|
|
if (res.code === 1 && res.data.count > 0) {
|
|
let audio = document.getElementById('order-audio');
|
|
if (!audio) {
|
|
audio = document.createElement('audio');
|
|
audio.id = 'order-audio';
|
|
audio.src = '/1.mp3'; // 你的提示音路径
|
|
audio.autoplay = true;
|
|
audio.volume = 1.0;
|
|
document.body.appendChild(audio);
|
|
}
|
|
if (autoCheckId !== res.data.rid) {
|
|
autoCheckId = res.data.rid;
|
|
layui.table.reload(init.table_render_id);
|
|
}
|
|
audio.play().catch(err => console.warn('播放失败', err));
|
|
}
|
|
}, function (err) {
|
|
console.error('检查未分配订单失败', err);
|
|
});
|
|
}, 5000); // 每10秒执行一次
|
|
|
|
ea.listen();
|
|
},
|
|
|
|
edit: function () {
|
|
ea.listen();
|
|
},
|
|
};
|
|
|
|
});
|