352 lines
12 KiB
HTML
352 lines
12 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<title>军保对账统计</title>
|
||
<link rel="stylesheet" th:href="@{/layui/css/layui.css}">
|
||
<link rel="stylesheet" th:href="@{/css/common.css}">
|
||
<!-- 引入组件库 -->
|
||
<script th:src="@{/layui/jquery-3.4.1.min.js}"></script>
|
||
<script th:src="@{/layui/layui.js}"></script>
|
||
<script th:src="@{/layui/lay/xmSelect/xm-select.js}"></script>
|
||
<script th:src="@{/js/common.js}"></script>
|
||
|
||
<style>
|
||
body {
|
||
background: #f2f2f2
|
||
}
|
||
|
||
#boxDiv {
|
||
background: #ffffff
|
||
}
|
||
|
||
#titleDiv {
|
||
overflow: visible;
|
||
}
|
||
|
||
.content {
|
||
padding: 0 8px;
|
||
}
|
||
|
||
.tableTitle {
|
||
height: 20px;
|
||
margin-top: 10px;
|
||
margin-bottom: 10px;
|
||
}
|
||
|
||
.tableTitle > * {
|
||
height: 20px;
|
||
line-height: 20px;
|
||
display: inline-block;
|
||
margin-right: 5px;
|
||
}
|
||
|
||
.tableName {
|
||
border-left: 3px solid #0000FF;
|
||
padding-left: 5px;
|
||
font-size: 16px;
|
||
font-weight: bold;
|
||
}
|
||
|
||
.selectDate {
|
||
font-size: 14px;
|
||
color: rgba(0, 0, 0, 0.65)
|
||
}
|
||
|
||
.summary-card {
|
||
background: #fff;
|
||
border: 1px solid #e6e6e6;
|
||
border-radius: 4px;
|
||
padding: 20px;
|
||
margin-bottom: 20px;
|
||
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
||
}
|
||
|
||
.summary-item {
|
||
display: inline-block;
|
||
margin-right: 40px;
|
||
text-align: center;
|
||
}
|
||
|
||
.summary-label {
|
||
font-size: 14px;
|
||
color: #666;
|
||
margin-bottom: 5px;
|
||
}
|
||
|
||
.summary-value {
|
||
font-size: 24px;
|
||
font-weight: bold;
|
||
color: #1890ff;
|
||
}
|
||
|
||
.summary-money {
|
||
color: #f5222d;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body class="layui-layout-body">
|
||
<div id="boxDiv" style="left:8px;right: 8px;bottom:8px;top:8px;position:absolute;">
|
||
<div class="toolbar" id="titleDiv">
|
||
<div style="display: inline-block;">
|
||
<form class="layui-form">
|
||
<div class="layui-inline">
|
||
<label class="layui-form-label">日期选择</label>
|
||
<div class="layui-input-inline">
|
||
<input type="text" class="layui-input formWidthTwo" id="searchDate" placeholder=" ~ "
|
||
th:value="${startTime+' ~ '+endTime}">
|
||
</div>
|
||
</div>
|
||
<div class="layui-inline">
|
||
<div class="layui-input-inline">
|
||
<input type="text" class="layui-input" style="width: 240px;" id="likeFiled"
|
||
placeholder="请输入平台交易号">
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
<div class="layui-inline">
|
||
<button class="layui-btn layui-btn-sm layui-btn-normal" data-type="search" id="search" onclick="search()"><i
|
||
class="layui-icon layui-icon-search"></i>查询
|
||
</button>
|
||
<button class="layui-btn layui-btn-sm layui-btn-normal" onclick="exportExcel()"><i class="layui-icon"></i>导出
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div class="content">
|
||
<!-- 汇总信息卡片 -->
|
||
<div class="summary-card">
|
||
<div class="summary-item">
|
||
<div class="summary-label">今日军保交易笔数</div>
|
||
<div class="summary-value" id="todayCount">0</div>
|
||
</div>
|
||
<div class="summary-item">
|
||
<div class="summary-label">今日军保交易总金额</div>
|
||
<div class="summary-value summary-money" id="todayAmount">¥0.00</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="tableTitle">
|
||
<span class="tableName">军保对账统计明细</span>
|
||
<span class="selectDate"> </span>
|
||
</div>
|
||
<table id="demo" lay-filter="test"></table>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</body>
|
||
<script th:inline="javascript">
|
||
let bizTypeList = [[${bizTypeList}]];
|
||
|
||
let layer, laydate, table, tree, form;
|
||
|
||
layui.use(['element', 'table', 'laydate', 'layer', 'form', 'tree'], function () {
|
||
layer = layui.layer;
|
||
table = layui.table;
|
||
laydate = layui.laydate;
|
||
tree = layui.tree;
|
||
form = layui.form;
|
||
|
||
//表格加载
|
||
table.render({
|
||
elem: '#demo',
|
||
height: 'full-' + ($(".toolbar").height() + 160), // 增加高度以适应汇总卡片
|
||
title: '军保对账统计明细',
|
||
page: true,//开启分页
|
||
limit: 20,
|
||
limits: [20, 30, 50],
|
||
//toolbar: '', //开启工具栏,此处显示默认图标,可以自定义模板
|
||
defaultToolbar: [],
|
||
id: 'test',
|
||
//skin:'line',
|
||
even: 'true',
|
||
//size:'lg', 默认普通尺寸 sm 小 lg 大
|
||
cols: [
|
||
[
|
||
{field: 'HISOPERCODE', align: 'center', title: '操作员', width: 120, sort: false},
|
||
{
|
||
field: 'PAYMETHOD',
|
||
align: 'center',
|
||
title: '类别',
|
||
width: 120,
|
||
sort: false,
|
||
templet: function (d) {
|
||
let result = "";
|
||
if (d.PAYMETHOD === '1') {
|
||
result = '门诊';
|
||
} else if (d.PAYMETHOD === '2') {
|
||
result = '住院';
|
||
}
|
||
return result;
|
||
}
|
||
},
|
||
{
|
||
field: 'TRADINGSTATUS',
|
||
align: 'center',
|
||
title: '交易状态',
|
||
width: 120,
|
||
sort: false,
|
||
templet: function (d) {
|
||
let tradingstatusStr = "";
|
||
if (d.TRADINGSTATUS === '1') {
|
||
tradingstatusStr = '收款记录';
|
||
} else if (d.TRADINGSTATUS === '2') {
|
||
tradingstatusStr = '退款记录';
|
||
}
|
||
return tradingstatusStr;
|
||
}
|
||
},
|
||
{
|
||
field: 'BIZTYPE',
|
||
align: 'center',
|
||
title: '业务类型',
|
||
width: 120,
|
||
sort: false,
|
||
templet: function (d) {
|
||
let result = "";
|
||
for (let i = 0; i < bizTypeList.length; i++) {
|
||
let obj = bizTypeList[i];
|
||
if (d.BIZTYPE === obj.dicvalue) {
|
||
result = obj.dicname;
|
||
break;
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
},
|
||
{
|
||
field: 'PAYTYPE',
|
||
align: 'center',
|
||
title: '支付方式',
|
||
width: 120,
|
||
sort: false,
|
||
templet: function (d) {
|
||
return '医院垫支'; // 固定显示为医院垫支,因为paytype=3
|
||
}
|
||
},
|
||
|
||
{field: 'TRADETIME', align: 'center', title: '时间', width: 120, sort: false},
|
||
{field: 'AMOUNT', align: 'center', title: '金额 ', width: 120, sort: false},
|
||
{field: 'PLATFORMTRANSID', align: 'center', title: '平台订单号 ', width: 120, sort: false},
|
||
{field: 'HISTRANSID', align: 'center', title: 'his订单号 ', width: 120, sort: false},
|
||
{field: 'HISTRANSID', align: 'center', title: 'HIS交易ID', width: 120, sort: false},
|
||
{field: 'PATIENTID', align: 'center', title: '患者id ', width: 120, sort: false},
|
||
{field: 'PATIENTNAME', align: 'center', title: '患者姓名 ', width: 120, sort: false},
|
||
{field: 'TRADE_DATE', align: 'center', title: '交易时间', width: 120, sort: false},
|
||
{field: 'SOURCE', align: 'center', title: '来源', width: 120, sort: false},
|
||
]
|
||
],
|
||
data: []
|
||
});
|
||
|
||
//时间控件
|
||
laydate.render({
|
||
elem: '#searchDate'
|
||
, type: 'date'
|
||
, range: '~'
|
||
});
|
||
|
||
search();
|
||
loadSummaryData(); // 加载汇总数据
|
||
});
|
||
|
||
//查询
|
||
function search(num) {
|
||
num = num === null ? 1 : num;
|
||
let url = "/militaryInsurance/findMilitaryInsuranceDetail";
|
||
let param = {};
|
||
|
||
param.likeFiled = $("#likeFiled").val();
|
||
let date = $("#searchDate").val();
|
||
if (date !== '') {
|
||
let time = date.split("~");
|
||
let startTime = time[0].trim();
|
||
let endTime = time[1].trim();
|
||
|
||
param.startTime = startTime;
|
||
param.endTime = endTime;
|
||
|
||
$(".selectDate").text(startTime + " ~ " + endTime);
|
||
}
|
||
|
||
table.reload('test', {
|
||
method: 'get',
|
||
url: url,
|
||
where: param,
|
||
page: {
|
||
curr: num
|
||
}
|
||
});
|
||
|
||
// 重新加载汇总数据
|
||
loadSummaryData();
|
||
}
|
||
|
||
// 加载汇总数据
|
||
function loadSummaryData() {
|
||
let url = "/militaryInsurance/findMilitaryInsuranceCountData";
|
||
let param = {};
|
||
|
||
let date = $("#searchDate").val();
|
||
if (date !== '') {
|
||
let time = date.split("~");
|
||
let startTime = time[0].trim();
|
||
let endTime = time[1].trim();
|
||
|
||
// 确保时间格式正确,添加时分秒
|
||
if (startTime.length === 10) { // 只有日期,没有时间
|
||
startTime += " 00:00:00";
|
||
}
|
||
if (endTime.length === 10) { // 只有日期,没有时间
|
||
endTime += " 23:59:59";
|
||
}
|
||
|
||
param.startTime = startTime;
|
||
param.endTime = endTime;
|
||
}
|
||
|
||
AjaxPostJson(url, param, function (data) {
|
||
if (data.errCode === "0") {
|
||
$("#todayCount").text(data.num || 0);
|
||
$("#todayAmount").text("¥" + (parseFloat(data.money || 0).toFixed(2)));
|
||
} else {
|
||
console.error("加载汇总数据失败:" + data.errMsg);
|
||
$("#todayCount").text("0");
|
||
$("#todayAmount").text("¥0.00");
|
||
}
|
||
});
|
||
}
|
||
|
||
//导出
|
||
function exportExcel() {
|
||
let url = "/militaryInsurance/exportMilitaryInsuranceDetail";
|
||
let param = {};
|
||
|
||
param.likeFiled = $("#likeFiled").val();
|
||
let date = $("#searchDate").val();
|
||
if (date !== '') {
|
||
let time = date.split("~");
|
||
let startTime = time[0].trim();
|
||
let endTime = time[1].trim();
|
||
|
||
param.startTime = startTime;
|
||
param.endTime = endTime;
|
||
}
|
||
|
||
let dowloadName = "军保对账统计明细";
|
||
param.dowloadName = dowloadName;
|
||
let load = layer.load();
|
||
AjaxPostJson(url, param, function (data) {
|
||
layer.close(load);
|
||
if (data.errCode === "0") {
|
||
let fileName = data.dlName;
|
||
location.href = '/download?fileName=' + fileName + '&dowloadName=' + dowloadName;
|
||
} else {
|
||
layer.alert(data.errMsg);
|
||
}
|
||
});
|
||
}
|
||
</script>
|
||
</html>
|