Commit e7d0a00d authored by 饶来安's avatar 饶来安

样式微调

parent c1585d8c
<!DOCTYPE html>
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="calendar-plugin/calendar.css">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="calendar-plugin/calendar.css" />
<title>交易明细查询</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Microsoft Yahei", sans-serif;
font-size: 14px;
}
body {
background-color: #ffffff;
padding: 0;
}
/* 顶部导航栏 */
.top-nav {
background-color: #ffffff;
border-bottom: 2px solid #1890ff;
display: flex;
align-items: center;
padding: 10px 20px;
gap: 40px;
}
.top-nav a {
color: #1890ff;
text-decoration: none;
font-size: 16px;
}
/* 面包屑 */
.breadcrumb {
background-color: #f5f7fa;
padding: 15px 20px;
color: #666;
margin: 10px 0;
}
/* 查询表单 */
.form-container {
padding: 20px;
}
.form-title {
font-size: 16px;
font-weight: bold;
margin-bottom: 20px;
}
.form-row {
display: flex;
align-items: center;
margin-bottom: 15px;
/* gap: 10px; */
}
.form-label {
width: 120px;
text-align: right;
color: #333;
}
.form-label .required {
color: red;
margin-right: 4px;
}
.form-input,
.form-select {
padding: 5px 8px;
border: 1px solid #d9d9d9;
width: 230px;
}
.select-down-icon {
height: 31px;
width: 32px;
display: flex;
align-items: center;
justify-content: center;
background-color: #f3f3f3;
border: 1px solid #d9d9d9;
border-left: none;
}
.down-arrow {
width: 0;
height: 0;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 8px solid #b0b0b0;
}
.form-select.hide {
appearance: none;
}
.form-input.small {
width: 111px;
}
.px-2 {
padding-left: 2px;
padding-right: 2px;
}
.form-input.x-small {
width: 84px;
}
.form-input.wide {
width: 234px;
}
.radio-group {
display: flex;
gap: 30px;
margin-left: 10px;
}
.radio-group label {
display: flex;
align-items: center;
input {
margin-right: 5px;
}
}
.form-tip {
color: #0066b3;
margin-left: 8px;
}
.form-question {
cursor: pointer;
margin-left: 8px;
display: inline-block;
width: 16px;
height: 16px;
line-height: 16px;
text-align: center;
border-radius: 50%;
background-color: #1890ff;
color: #fff;
padding-left: 4px;
}
/* 气泡框 */
.bubble {
position: absolute;
bottom: calc(100% + 14px);
left: -25px;
width: 150px;
padding: 10px 5px;
color: #000000;
border-radius: 4px;
border: 1px solid #62A7E3;
background-color: #EAF5FE;
visibility: hidden;
opacity: 0;
transition: opacity 0.2s ease, visibility 0.2s ease;
z-index: 100;
pointer-events: none;
}
/* 显示气泡 */
.form-question:hover .bubble {
visibility: visible;
opacity: 1;
}
.bubble::before {
content: '';
position: absolute;
bottom: -12px;
left: 23px;
border-width: 12px 4px 0 10px;
border-style: solid;
border-color: #62A7E3 transparent transparent transparent;
z-index: 1;
}
/* 背景三角(内层,盖住部分边框) */
.bubble::after {
content: '';
position: absolute;
bottom: -9px;
left: 24px;
border-width: 9px 4px 0 8px;
border-style: solid;
border-color: #EAF5FE transparent transparent transparent;
z-index: 2;
}
.question1 {
margin-left: 30px;
}
.question2 {
margin-left: 70px;
}
/* 按钮组 */
.btn-group {
display: flex;
gap: 20px;
margin: 30px 0;
}
.buttonx,
.btn-group button {
background-color: #1f93d5;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 15px;
height: 35px;
width: 100px;
display: flex;
align-items: center;
justify-content: center;
}
.buttonx {
position: absolute;
}
.xx {
left: 140px;
bottom: 64px;
}
.yy {
left: 264px;
bottom: 64px;
}
.zz {
left: 390px;
bottom: 64px;
}
/* 温馨提示 */
.tips-section {
background-color: #f0f7ff;
padding: 10px;
border: 1px solid #e8e8e8;
}
.tips-title {
color: red;
font-weight: bold;
margin-bottom: 10px;
}
.tips-section p {
line-height: 1.8;
color: #333;
}
.mt-24 {
margin-top: 24px;
}
.mt-20 {
margin-top: 20px;
}
.date-picker {
width: 27px;
height: 27px;
position: relative;
}
.date-picker .date-input {
position: absolute;
top: 0;
left: 0;
width: 27px;
height: 27px;
opacity: 0;
z-index: 1;
}
.date-picker .dateimg {
width: 27px;
height: 27px;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Microsoft Yahei", sans-serif;
font-size: 14px;
}
body {
background-color: #ffffff;
padding: 0;
}
/* 顶部导航栏 */
.top-nav {
background-color: #ffffff;
border-bottom: 2px solid #1890ff;
display: flex;
align-items: center;
padding: 10px 20px;
gap: 40px;
}
.top-nav a {
color: #1890ff;
text-decoration: none;
font-size: 16px;
}
/* 面包屑 */
.breadcrumb {
background-color: #f5f7fa;
padding: 15px 20px;
color: #666;
margin: 10px 0;
}
/* 查询表单 */
.form-container {
padding: 20px;
}
.form-title {
font-size: 16px;
font-weight: bold;
margin-bottom: 20px;
}
.form-row {
display: flex;
align-items: center;
margin-bottom: 15px;
/* gap: 10px; */
}
.form-label {
width: 120px;
text-align: right;
color: #333;
}
.form-label .required {
color: red;
margin-right: 4px;
}
.form-input,
.form-select {
padding: 5px 8px;
border: 1px solid #d9d9d9;
width: 230px;
}
.select-down-icon {
height: 31px;
width: 32px;
display: flex;
align-items: center;
justify-content: center;
background-color: #f3f3f3;
border: 1px solid #d9d9d9;
border-left: none;
}
.down-arrow {
width: 0;
height: 0;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 8px solid #b0b0b0;
}
.form-select.hide {
appearance: none;
}
.form-input.small {
width: 111px;
}
.px-2 {
padding-left: 2px;
padding-right: 2px;
}
.form-input.x-small {
width: 84px;
}
.form-input.wide {
width: 234px;
}
.radio-group {
display: flex;
gap: 30px;
margin-left: 10px;
}
.radio-group label {
display: flex;
align-items: center;
input {
margin-right: 5px;
}
}
.form-tip {
color: #0066b3;
margin-left: 8px;
}
.form-question {
position: relative;
cursor: pointer;
margin-left: 8px;
display: inline-block;
width: 16px;
height: 16px;
box-sizing: content-box;
line-height: 16px;
text-align: center;
border-radius: 50%;
background-color: #1890ff;
color: #fff;
padding-left: 4px;
}
/* 气泡框 */
.bubble {
position: absolute;
bottom: calc(100% + 14px);
left: -25px;
width: 150px;
padding: 10px 5px;
text-align: left;
color: #000000;
border-radius: 4px;
border: 1px solid #62a7e3;
background-color: #eaf5fe;
visibility: hidden;
opacity: 0;
transition:
opacity 0.2s ease,
visibility 0.2s ease;
z-index: 100;
pointer-events: none;
}
/* 显示气泡 */
.form-question:hover .bubble {
visibility: visible;
opacity: 1;
}
.bubble::before {
content: "";
position: absolute;
bottom: -12px;
left: 23px;
border-width: 12px 4px 0 10px;
border-style: solid;
border-color: #62a7e3 transparent transparent transparent;
z-index: 1;
}
/* 背景三角(内层,盖住部分边框) */
.bubble::after {
content: "";
position: absolute;
bottom: -9px;
left: 24px;
border-width: 9px 4px 0 8px;
border-style: solid;
border-color: #eaf5fe transparent transparent transparent;
z-index: 2;
}
.question1 {
margin-left: 30px;
}
.question2 {
margin-left: 70px;
}
/* 按钮组 */
.btn-group {
display: flex;
gap: 20px;
margin: 30px 0;
}
.buttonx,
.btn-group button {
background-color: #1f93d5;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 15px;
height: 35px;
width: 100px;
display: flex;
align-items: center;
justify-content: center;
}
.buttonx {
position: absolute;
}
.xx {
left: 120px;
bottom: 34px;
}
.yy {
left: 245px;
bottom: 34px;
}
.zz {
left: 370px;
bottom: 34px;
}
/* 温馨提示 */
.tips-section {
background-color: #f0f7ff;
padding: 10px;
border: 1px solid #e8e8e8;
}
.tips-title {
color: red;
font-weight: bold;
margin-bottom: 10px;
}
.tips-section p {
line-height: 1.8;
color: #333;
}
.mt-24 {
margin-top: 24px;
}
.mt-20 {
margin-top: 20px;
}
.date-picker {
width: 27px;
height: 27px;
position: relative;
}
.date-picker .date-input {
position: absolute;
top: 0;
left: 0;
width: 27px;
height: 27px;
opacity: 0;
z-index: 1;
}
.date-picker .dateimg {
width: 27px;
height: 27px;
}
#myForm {
position: relative;
}
</style>
</head>
</head>
<body>
<body>
<!-- 顶部导航栏 -->
<!-- <div class="top-nav">
<a href="#">账户信息查询 ∨</a>
......@@ -315,213 +320,257 @@
</div> -->
<!-- 面包屑导航 -->
<div class="breadcrumb">
当前位置:账户查询 > 账户信息查询 > 活期账户
</div>
<div class="breadcrumb">当前位置:账户查询 > 账户信息查询 > 活期账户</div>
<!-- 查询表单 -->
<div class="form-container">
<div class="form-title">交易明细查询</div>
<form id="myForm">
<div class="form-row">
<label class="form-label"><span class="required">*</span>查询类型:</label>
<select class="form-select">
<option value="1">明细</option>
<option value="2">明细汇总</option>
</select>
</div>
<div class="form-row">
<label class="form-label"><span class="required">*</span>起止日期:</label>
<input type="text" id="dateFrom" class="form-input small x-small" name="dateFrom"
oninput="startDate = this.value" onblur="handleBlur('dateFrom')">
<div class="date-picker" id="sDate">
<img class="dateimg" src="./images/date.png" alt="" />
</div>
<span>-</span>
<input type="text" id="dateTo" class="form-input small x-small" name="dateTo"
oninput="endDate = this.value" onblur="handleBlur('dateTo')">
<div class="date-picker" id="eDate">
<img class="dateimg" src="./images/date.png" alt="" />
<!-- <input class="date-input dateTo" type="date" /> -->
</div>
<div class="radio-group">
<label><input type="radio" name="quickDate" value="90" /> 最近90天</label>
<label><input type="radio" name="quickDate" value="180" /> 最近180天</label>
<label><input type="radio" name="quickDate" value="365" /> 最近365天</label>
</div>
<span class="form-question question1">
<span class="bubble">
请输入或选择最近10年内的日期;每次查询时间段不超过1年;日期输入标准格式20180101,表示2018年1月1日
</span>
</span>
</div>
<div class="form-row">
<label class="form-label">交易金额:</label>
<input type="text" class="form-input small" name="amtFrom">
<span class="px-2">-</span>
<input type="text" class="form-input small" name="amtTo">
</div>
<div class="form-row mt-20">
<label class="form-label">对方户名:</label>
<input type="text" class="form-input wide" name="counterName">
</div>
<div class="form-row">
<label class="form-label">对方账号:</label>
<input type="text" class="form-input wide" name="counterAccount">
</div>
<div class="form-row">
<label class="form-label">交易摘要:</label>
<!-- name="summary" -->
<select class="form-select hide" style="width: 200px;">
<option>请选择</option>
</select>
<div class="select-down-icon">
<div class="down-arrow"></div>
</div>
</div>
<div class="form-row">
<label class="form-label">起止明细编号:</label>
<input type="text" class="form-input small" name="detailFrom">
<span class="px-2">-</span>
<input type="text" class="form-input small" name="detailTo">
<span class="form-question">
<span class="bubble">
仅输入起始编号时,查询该编号(含)之后的明细;仅输入截止编号时,查询该编号(含)之前的明细;起止编号同时输入时,截止编号需大于或等于起始编号。
</span>
</span>
</div>
<!-- 按钮组 -->
<div style="height: 90px;"></div>
<button class="buttonx xx" onclick="onAccount(1)" type="submit">确定</button>
</form>
<button class="buttonx yy" onclick="onAccount(2)">返回</button>
<button onclick="onAccount(3)" type="submit" class="buttonx zz"
style="width: auto;padding: 0 20px;">异步下载查询</button>
<div class="form-title">交易明细查询</div>
<form id="myForm">
<div class="form-row">
<label class="form-label"
><span class="required">*</span>查询类型:</label
>
<select class="form-select">
<option value="1">明细</option>
<option value="2">明细汇总</option>
</select>
</div>
<div class="form-row">
<label class="form-label"
><span class="required">*</span>起止日期:</label
>
<input
type="text"
id="dateFrom"
class="form-input small x-small"
name="dateFrom"
oninput="startDate = this.value"
onblur="handleBlur('dateFrom')"
/>
<div class="date-picker" id="sDate">
<img class="dateimg" src="./images/date.png" alt="" />
</div>
<span>-</span>
<input
type="text"
id="dateTo"
class="form-input small x-small"
name="dateTo"
oninput="endDate = this.value"
onblur="handleBlur('dateTo')"
/>
<div class="date-picker" id="eDate">
<img class="dateimg" src="./images/date.png" alt="" />
<!-- <input class="date-input dateTo" type="date" /> -->
</div>
<div class="radio-group">
<label
><input type="radio" name="quickDate" value="90" />
最近90天</label
>
<label
><input type="radio" name="quickDate" value="180" />
最近180天</label
>
<label
><input type="radio" name="quickDate" value="365" />
最近365天</label
>
</div>
<span class="form-question question1"
>
<span class="bubble">
请输入或选择最近10年内的日期;每次查询时间段不超过1年;日期输入标准格式<br />
20180101,表示2018年1月1日
</span>
</span>
</div>
<div class="form-row">
<label class="form-label">交易金额:</label>
<input type="text" class="form-input small" name="amtFrom" />
<span class="px-2">-</span>
<input type="text" class="form-input small" name="amtTo" />
</div>
<div class="form-row mt-20">
<label class="form-label">对方户名:</label>
<input type="text" class="form-input wide" name="counterName" />
</div>
<div class="form-row">
<label class="form-label">对方账号:</label>
<input type="text" class="form-input wide" name="counterAccount" />
</div>
<div class="form-row">
<label class="form-label">交易摘要:</label>
<!-- name="summary" -->
<select class="form-select hide" style="width: 200px">
<option>请选择</option>
</select>
<div class="select-down-icon">
<div class="down-arrow"></div>
</div>
</div>
<div class="form-row">
<label class="form-label">起止明细编号:</label>
<input type="text" class="form-input small" name="detailFrom" />
<span class="px-2">-</span>
<input type="text" class="form-input small" name="detailTo" />
<span class="form-question"
>
<span class="bubble">
仅输入起始编号时,查询该编号(含)之后的明细;仅输入截止编号时,查询该编号(含)之前的明细;起止编号同时输入时,截止编号需大于或等于起始编号。
</span>
</span>
</div>
<!-- 按钮组 -->
<div style="height: 90px">
<button class="buttonx xx" onclick="onAccount(1)" type="submit">
确定
</button>
<button class="buttonx yy" onclick="onAccount(2)">返回</button>
<button
onclick="onAccount(3)"
type="submit"
class="buttonx zz"
style="width: auto; padding: 0 20px"
>
异步下载查询
</button>
</div>
</form>
</div>
<!-- 温馨提示 -->
<div class="tips-section">
<div class="tips-title">温馨提示</div>
<p>1、签约汇总记账账户仅提供历史明细查询。</p>
<p>2、当前交易明细查询页面支持查询最近十年的账户明细,如需查询十年前的账户明细请联系您的开户行。</p>
<div class="tips-title">温馨提示</div>
<p>1、签约汇总记账账户仅提供历史明细查询。</p>
<p>
2、当前交易明细查询页面支持查询最近十年的账户明细,如需查询十年前的账户明细请联系您的开户行。
</p>
</div>
<script src="calendar-plugin/calendar.js"></script>
</body>
</body>
</html>
<script>
/**
* 解析 YYYYMMDD 格式为 Date 对象
* @param {string} dateStr - 8位数字字符串,如 20250101
* @returns {Date}
*/
function parseYYYYMMDD(dateStr) {
const year = parseInt(dateStr.substring(0, 4));
const month = parseInt(dateStr.substring(4, 6)) - 1;
const day = parseInt(dateStr.substring(6, 8));
return new Date(year, month, day);
}
/**
* 检测 YYYYMMDD 格式的日期间隔是否大于365天
* @param {string} startStr - 开始日期,如 20250101
* @param {string} endStr - 结束日期,如 20260101
* @returns {boolean}
*/
function isOver365DaysYYYYMMDD(startStr, endStr) {
const start = parseYYYYMMDD(startStr);
const end = parseYYYYMMDD(endStr);
const diffDays = (end - start) / (1000 * 60 * 60 * 24);
return Math.abs(diffDays) > 365;
/**
* 解析 YYYYMMDD 格式为 Date 对象
* @param {string} dateStr - 8位数字字符串,如 20250101
* @returns {Date}
*/
function parseYYYYMMDD(dateStr) {
const year = parseInt(dateStr.substring(0, 4));
const month = parseInt(dateStr.substring(4, 6)) - 1;
const day = parseInt(dateStr.substring(6, 8));
return new Date(year, month, day);
}
/**
* 检测 YYYYMMDD 格式的日期间隔是否大于365天
* @param {string} startStr - 开始日期,如 20250101
* @param {string} endStr - 结束日期,如 20260101
* @returns {boolean}
*/
function isOver365DaysYYYYMMDD(startStr, endStr) {
const start = parseYYYYMMDD(startStr);
const end = parseYYYYMMDD(endStr);
const diffDays = (end - start) / (1000 * 60 * 60 * 24);
return Math.abs(diffDays) > 365;
}
let startDate = "";
let endDate = "";
const handleBlur = (dateId) => {
console.log(
"handleBlur",
startDate,
endDate,
isOver365DaysYYYYMMDD(startDate, endDate),
);
if (startDate && endDate && isOver365DaysYYYYMMDD(startDate, endDate)) {
alert("起止日期间隔不能超过365天");
if (dateId === "dateFrom") {
startDate = "";
document.getElementById(dateId).value = "未选择";
} else {
endDate = "";
document.getElementById(dateId).value = "未选择";
}
const checkedQuickDate = document.querySelector(
'input[name="quickDate"]:checked',
);
checkedQuickDate && (checkedQuickDate.checked = false);
}
let startDate = '';
let endDate = '';
const handleBlur = (dateId) => {
console.log('handleBlur', startDate, endDate, isOver365DaysYYYYMMDD(startDate, endDate));
if (startDate && endDate && isOver365DaysYYYYMMDD(startDate, endDate)) {
alert('起止日期间隔不能超过365天');
if (dateId === 'dateFrom') {
startDate = '';
document.getElementById(dateId).value = '未选择';
} else {
endDate = '';
document.getElementById(dateId).value = '未选择';
}
const checkedQuickDate = document.querySelector('input[name="quickDate"]:checked');
checkedQuickDate && (checkedQuickDate.checked = false);
}
};
const pickerStart = new CalendarPlugin({
trigger: '#sDate',
onSelect: function (date) {
startDate = date.replaceAll('-', '');
handleBlur('dateFrom');
}
});
const pickerEnd = new CalendarPlugin({
trigger: '#eDate',
onSelect: function (date) {
endDate = date.replaceAll('-', '');
handleBlur('dateTo');
}
};
const pickerStart = new CalendarPlugin({
trigger: "#sDate",
onSelect: function (date) {
startDate = date.replaceAll("-", "");
handleBlur("dateFrom");
},
});
const pickerEnd = new CalendarPlugin({
trigger: "#eDate",
onSelect: function (date) {
endDate = date.replaceAll("-", "");
handleBlur("dateTo");
},
});
// 快速日期
document.querySelectorAll("input[name=quickDate]").forEach((el) => {
el.addEventListener("change", () => {
const days = parseInt(el.value, 10);
const now = new Date();
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, "0"); // 补零
const day = String(now.getDate()).padStart(2, "0");
const formattedDate = `${year}-${month}-${day}`;
const today = new Date(formattedDate);
const from = new Date(today.getTime() - days * 86400000);
const fmt = (d) =>
d.getFullYear() +
String(d.getMonth() + 1).padStart(2, "0") +
String(d.getDate()).padStart(2, "0");
startDate = fmt(from);
endDate = fmt(today);
document.getElementById("dateFrom").value = startDate;
document.getElementById("dateTo").value = endDate;
});
// 快速日期
document.querySelectorAll('input[name=quickDate]').forEach(el => {
el.addEventListener('change', () => {
const days = parseInt(el.value, 10);
const now = new Date();
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, '0'); // 补零
const day = String(now.getDate()).padStart(2, '0');
const formattedDate = `${year}-${month}-${day}`;
const today = new Date(formattedDate);
const from = new Date(today.getTime() - days * 86400000);
const fmt = d => d.getFullYear() + String(d.getMonth() + 1).padStart(2, '0') + String(d.getDate()).padStart(2, '0');
startDate = fmt(from);
endDate = fmt(today);
document.getElementById('dateFrom').value = startDate;
document.getElementById('dateTo').value = endDate;
});
});
const form = document.getElementById('myForm');
function onAccount(number) {
if (number == 1) {
form.addEventListener('submit', async (e) => {
e.preventDefault(); // 阻止页面刷新
// 方式1:使用 FormData 自动搜集
const formData = new FormData(form);
localStorage.setItem('accountQueryParams', JSON.stringify(Object.fromEntries(formData.entries())));
setTimeout(() => {
window.location.href = './account_list.html'
}, 500);
});
}
if (number == 2) {
window.history.back();
}
if (number == 3) {
window.location.href = './async_detail_list.html'
}
});
const form = document.getElementById("myForm");
function onAccount(number) {
if (number == 1) {
form.addEventListener("submit", async (e) => {
e.preventDefault(); // 阻止页面刷新
// 方式1:使用 FormData 自动搜集
const formData = new FormData(form);
localStorage.setItem(
"accountQueryParams",
JSON.stringify(Object.fromEntries(formData.entries())),
);
setTimeout(() => {
window.location.href = "./account_list.html";
}, 500);
});
}
</script>
\ No newline at end of file
if (number == 2) {
window.history.back();
}
if (number == 3) {
window.location.href = "./async_detail_list.html";
}
}
</script>
<!DOCTYPE html>
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="calendar-plugin/calendar.css">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="calendar-plugin/calendar.css" />
<title>交易明细查询</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Microsoft Yahei", sans-serif;
font-size: 14px;
}
body {
background-color: #ffffff;
padding: 0;
}
/* 顶部导航栏 */
.top-nav {
background-color: #ffffff;
border-bottom: 2px solid #1890ff;
display: flex;
align-items: center;
padding: 10px 20px;
gap: 40px;
}
.top-nav a {
color: #1890ff;
text-decoration: none;
font-size: 16px;
}
/* 面包屑 */
.breadcrumb {
background-color: #f5f7fa;
padding: 15px 20px;
color: #666;
margin: 10px 0;
}
/* 查询表单 */
.form-container {
padding: 20px;
}
.form-title {
font-size: 16px;
font-weight: bold;
margin-bottom: 20px;
}
.form-row {
display: flex;
align-items: center;
margin-bottom: 15px;
/* gap: 10px; */
}
.form-label {
width: 120px;
text-align: right;
color: #333;
}
.form-label .required {
color: red;
margin-right: 4px;
}
.form-input,
.form-select {
padding: 5px 8px;
border: 1px solid #d9d9d9;
width: 230px;
}
.select-down-icon {
height: 31px;
width: 32px;
display: flex;
align-items: center;
justify-content: center;
background-color: #f3f3f3;
border: 1px solid #d9d9d9;
border-left: none;
}
.down-arrow {
width: 0;
height: 0;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 8px solid #b0b0b0;
}
.form-select.hide {
appearance: none;
}
.form-input.small {
width: 111px;
}
.px-2 {
padding-left: 2px;
padding-right: 2px;
}
.form-input.x-small {
width: 84px;
}
.form-input.wide {
width: 234px;
}
.radio-group {
display: flex;
gap: 30px;
margin-left: 10px;
}
.radio-group label {
display: flex;
align-items: center;
input {
margin-right: 5px;
}
}
.form-tip {
color: #0066b3;
margin-left: 8px;
}
.form-question {
position: relative;
cursor: pointer;
margin-left: 8px;
display: inline-block;
width: 16px;
height: 16px;
line-height: 16px;
text-align: center;
border-radius: 50%;
background-color: #1890ff;
color: #fff;
padding-left: 4px;
transition: all 0.2s;
}
/* 气泡框 */
.bubble {
position: absolute;
bottom: calc(100% + 14px);
left: -25px;
width: 150px;
padding: 10px 5px;
text-align: left;
color: #000000;
border-radius: 4px;
border: 1px solid #62A7E3;
background-color: #EAF5FE;
visibility: hidden;
opacity: 0;
transition: opacity 0.2s ease, visibility 0.2s ease;
z-index: 100;
pointer-events: none;
}
/* 显示气泡 */
.form-question:hover .bubble {
visibility: visible;
opacity: 1;
}
.bubble::before {
content: '';
position: absolute;
bottom: -12px;
left: 23px;
border-width: 12px 4px 0 10px;
border-style: solid;
border-color: #62A7E3 transparent transparent transparent;
z-index: 1;
}
/* 背景三角(内层,盖住部分边框) */
.bubble::after {
content: '';
position: absolute;
bottom: -9px;
left: 24px;
border-width: 9px 4px 0 8px;
border-style: solid;
border-color: #EAF5FE transparent transparent transparent;
z-index: 2;
}
.question1 {
margin-left: 30px;
}
.question2 {
margin-left: 70px;
}
/* 按钮组 */
.btn-group {
display: flex;
gap: 20px;
margin: 30px 0;
padding-left: 120px;
}
.buttonx,
.btn-group button {
background-color: #1f93d5;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 15px;
height: 35px;
width: 100px;
display: flex;
align-items: center;
justify-content: center;
}
.buttonx {
position: absolute;
}
.xx {
left: 120px;
bottom: 34px;
}
.yy {
left: 264px;
bottom: -57px;
}
.zz {
left: 390px;
bottom: -57px;
}
/* 温馨提示 */
.tips-section {
background-color: #f0f7ff;
padding: 10px;
border: 1px solid #e8e8e8;
}
.tips-title {
color: red;
font-weight: bold;
margin-bottom: 10px;
}
.tips-section p {
line-height: 1.8;
color: #333;
}
.mt-24 {
margin-top: 24px;
}
.mt-20 {
margin-top: 20px;
}
.date-picker {
width: 27px;
height: 27px;
position: relative;
}
.date-picker .date-input {
position: absolute;
top: 0;
left: 0;
width: 27px;
height: 27px;
opacity: 0;
z-index: 1;
}
.date-picker .dateimg {
width: 27px;
height: 27px;
}
#myForm {
position: relative;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Microsoft Yahei", sans-serif;
font-size: 14px;
}
body {
background-color: #ffffff;
padding: 0;
}
/* 顶部导航栏 */
.top-nav {
background-color: #ffffff;
border-bottom: 2px solid #1890ff;
display: flex;
align-items: center;
padding: 10px 20px;
gap: 40px;
}
.top-nav a {
color: #1890ff;
text-decoration: none;
font-size: 16px;
}
/* 面包屑 */
.breadcrumb {
background-color: #f5f7fa;
padding: 15px 20px;
color: #666;
margin: 10px 0;
}
/* 查询表单 */
.form-container {
padding: 20px;
}
.form-title {
font-size: 16px;
font-weight: bold;
margin-bottom: 20px;
}
.form-row {
display: flex;
align-items: center;
margin-bottom: 15px;
/* gap: 10px; */
}
.form-label {
width: 120px;
text-align: right;
color: #333;
}
.form-label .required {
color: red;
margin-right: 4px;
}
.form-input,
.form-select {
padding: 5px 8px;
border: 1px solid #d9d9d9;
width: 230px;
}
.select-down-icon {
height: 31px;
width: 32px;
display: flex;
align-items: center;
justify-content: center;
background-color: #f3f3f3;
border: 1px solid #d9d9d9;
border-left: none;
}
.down-arrow {
width: 0;
height: 0;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 8px solid #b0b0b0;
}
.form-select.hide {
appearance: none;
}
.form-input.small {
width: 111px;
}
.px-2 {
padding-left: 2px;
padding-right: 2px;
}
.form-input.x-small {
width: 84px;
}
.form-input.wide {
width: 234px;
}
.radio-group {
display: flex;
gap: 30px;
margin-left: 10px;
}
.radio-group label {
display: flex;
align-items: center;
input {
margin-right: 5px;
}
}
.form-tip {
color: #0066b3;
margin-left: 8px;
}
.form-question {
position: relative;
cursor: pointer;
margin-left: 8px;
display: inline-block;
width: 16px;
height: 16px;
box-sizing: content-box;
line-height: 16px;
text-align: center;
border-radius: 50%;
background-color: #1890ff;
color: #fff;
padding-left: 4px;
transition: all 0.2s;
}
/* 气泡框 */
.bubble {
position: absolute;
bottom: calc(100% + 14px);
left: -25px;
width: 150px;
padding: 10px 5px;
text-align: left;
color: #000000;
border-radius: 4px;
border: 1px solid #62a7e3;
background-color: #eaf5fe;
visibility: hidden;
opacity: 0;
transition:
opacity 0.2s ease,
visibility 0.2s ease;
z-index: 100;
pointer-events: none;
}
/* 显示气泡 */
.form-question:hover .bubble {
visibility: visible;
opacity: 1;
}
.bubble::before {
content: "";
position: absolute;
bottom: -12px;
left: 23px;
border-width: 12px 4px 0 10px;
border-style: solid;
border-color: #62a7e3 transparent transparent transparent;
z-index: 1;
}
/* 背景三角(内层,盖住部分边框) */
.bubble::after {
content: "";
position: absolute;
bottom: -9px;
left: 24px;
border-width: 9px 4px 0 8px;
border-style: solid;
border-color: #eaf5fe transparent transparent transparent;
z-index: 2;
}
.question1 {
margin-left: 30px;
}
.question2 {
margin-left: 70px;
}
/* 按钮组 */
.btn-group {
display: flex;
gap: 20px;
margin: 30px 0;
padding-left: 120px;
}
.buttonx,
.btn-group button {
background-color: #1f93d5;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 15px;
height: 35px;
width: 100px;
display: flex;
align-items: center;
justify-content: center;
}
.buttonx {
position: absolute;
}
.xx {
left: 120px;
bottom: 34px;
}
.yy {
left: 245px;
bottom: 34px;
}
.zz {
left: 370px;
bottom: 34px;
}
/* 温馨提示 */
.tips-section {
background-color: #f0f7ff;
padding: 10px;
border: 1px solid #e8e8e8;
}
.tips-title {
color: red;
font-weight: bold;
margin-bottom: 10px;
}
.tips-section p {
line-height: 1.8;
color: #333;
}
.mt-24 {
margin-top: 24px;
}
.mt-20 {
margin-top: 20px;
}
.date-picker {
width: 27px;
height: 27px;
position: relative;
}
.date-picker .date-input {
position: absolute;
top: 0;
left: 0;
width: 27px;
height: 27px;
opacity: 0;
z-index: 1;
}
.date-picker .dateimg {
width: 27px;
height: 27px;
}
#myForm {
position: relative;
}
</style>
</head>
</head>
<body>
<body>
<!-- 顶部导航栏 -->
<!-- <div class="top-nav">
<a href="#">账户信息查询 ∨</a>
......@@ -323,131 +323,159 @@
</div> -->
<!-- 面包屑导航 -->
<div class="breadcrumb">
当前位置:账户查询 > 账户信息查询 > 活期账户
</div>
<div class="breadcrumb">当前位置:账户查询 > 账户信息查询 > 活期账户</div>
<!-- 查询表单 -->
<div class="form-container">
<div class="form-title">交易明细查询</div>
<form id="myForm">
<div class="form-row">
<label class="form-label"><span class="required">*</span>查询类型:</label>
<select class="form-select">
<option value="1">明细</option>
<option value="2">明细汇总</option>
</select>
</div>
<div class="form-row">
<label class="form-label"><span class="required">*</span>起止日期:</label>
<input type="text" id="dateFrom" class="form-input small x-small" name="dateFrom"
oninput="startDate = this.value" onblur="handleBlur('dateFrom')">
<div class="date-picker" id="sDate">
<img class="dateimg" src="./images/date.png" alt="" />
</div>
<span>-</span>
<input type="text" id="dateTo" class="form-input small x-small" name="dateTo"
oninput="endDate = this.value" onblur="handleBlur('dateTo')">
<div class="date-picker" id="eDate">
<img class="dateimg" src="./images/date.png" alt="" />
<!-- <input class="date-input dateTo" type="date" /> -->
</div>
<div class="radio-group">
<label><input type="radio" name="quickDate" value="7" /> 最近7天</label>
<label><input type="radio" name="quickDate" value="14" /> 最近14天</label>
<label><input type="radio" name="quickDate" value="30" /> 最近30天</label>
</div>
<span class="form-question question1">
<span class="bubble">
请输入或选择最近一年半内日期;每次查询时间段不超过3个月;日期标准输入格式20180101,表示2018年1月1日
</span>
</span>
</div>
<div class="form-row">
<label class="form-label">交易金额:</label>
<input type="text" class="form-input small" name="amtFrom">
<span class="px-2">-</span>
<input type="text" class="form-input small" name="amtTo">
</div>
<div class="form-row">
<label class="form-label">交易方向:</label>
<div class="radio-group">
<label><input type="radio" name="direction" checked value="all"> 全部</label>
<label><input type="radio" name="direction" value="in"> 转入</label>
<label><input type="radio" name="direction" value="out"> 转出</label>
</div>
</div>
<div class="form-row mt-24">
<label class="form-label">冲正交易:</label>
<div class="radio-group">
<label><input type="radio" name="reverse" checked> 显示</label>
<label><input type="radio" name="reverse"> 不显示</label>
</div>
<span class="form-question question2">
<span class="bubble">
冲正交易流水查询仅供查询使用,不提供电子回执
</span>
</span>
</div>
<div class="form-row mt-20">
<label class="form-label">对方户名:</label>
<input type="text" class="form-input wide" name="counterName">
<!-- <span class="form-tip">录入生僻字</span> -->
</div>
<div class="form-row">
<label class="form-label">对方账号:</label>
<input type="text" class="form-input wide" name="counterAccount">
</div>
<div class="form-row">
<label class="form-label">交易备注:</label>
<input type="text" class="form-input wide" name="remark">
<!-- <span class="form-tip">录入生僻字</span> -->
</div>
<div class="form-row">
<label class="form-label">交易摘要:</label>
<!-- name="summary" -->
<select class="form-select hide" style="width: 200px;">
<option>请选择</option>
</select>
<div class="select-down-icon">
<div class="down-arrow"></div>
</div>
</div>
<div class="form-row">
<label class="form-label">起止明细编号:</label>
<input type="text" class="form-input small" name="detailFrom">
<span class="px-2">-</span>
<input type="text" class="form-input small" name="detailTo">
<span class="form-question">
<span class="bubble">
仅输入起始编号时,查询该编号(含)之后的明细;仅输入截止编号时,查询该编号(含)之前的明细;起止编号同时输入时,截止编号需大于或等于起始编号。
</span>
</span>
</div>
<div style="height: 90px;"></div>
<!-- 按钮组 -->
<button class="buttonx xx" onclick="onAccount(1)" type="submit">确定</button>
</form>
<div class="form-title">交易明细查询</div>
<form id="myForm">
<div class="form-row">
<label class="form-label"
><span class="required">*</span>查询类型:</label
>
<select class="form-select">
<option value="1">明细</option>
<option value="2">明细汇总</option>
</select>
</div>
<div class="form-row">
<label class="form-label"
><span class="required">*</span>起止日期:</label
>
<input
type="text"
id="dateFrom"
class="form-input small x-small"
name="dateFrom"
oninput="startDate = this.value"
onblur="handleBlur('dateFrom')"
/>
<div class="date-picker" id="sDate">
<img class="dateimg" src="./images/date.png" alt="" />
</div>
<span>-</span>
<input
type="text"
id="dateTo"
class="form-input small x-small"
name="dateTo"
oninput="endDate = this.value"
onblur="handleBlur('dateTo')"
/>
<div class="date-picker" id="eDate">
<img class="dateimg" src="./images/date.png" alt="" />
<!-- <input class="date-input dateTo" type="date" /> -->
</div>
<div class="radio-group">
<label
><input type="radio" name="quickDate" value="7" /> 最近7天</label
>
<label
><input type="radio" name="quickDate" value="14" />
最近14天</label
>
<label
><input type="radio" name="quickDate" value="30" />
最近30天</label
>
</div>
<span class="form-question question1"
>
<span class="bubble">
请输入或选择最近一年半内日期;每次查询时间段不超过3个月;日期标准输入格式<br />20180101,表示2018年1月1日
</span>
</span>
</div>
<div class="form-row">
<label class="form-label">交易金额:</label>
<input type="text" class="form-input small" name="amtFrom" />
<span class="px-2">-</span>
<input type="text" class="form-input small" name="amtTo" />
</div>
<div class="form-row">
<label class="form-label">交易方向:</label>
<div class="radio-group">
<label
><input type="radio" name="direction" checked value="all" />
全部</label
>
<label
><input type="radio" name="direction" value="in" /> 转入</label
>
<label
><input type="radio" name="direction" value="out" /> 转出</label
>
</div>
</div>
<div class="form-row mt-24">
<label class="form-label">冲正交易:</label>
<div class="radio-group">
<label><input type="radio" name="reverse" checked /> 显示</label>
<label><input type="radio" name="reverse" /> 不显示</label>
</div>
<span class="form-question question2">
<span class="bubble">
冲正交易流水查询仅供查询使用,不提供电子回执
</span>
</span>
</div>
<div class="form-row mt-20">
<label class="form-label">对方户名:</label>
<input type="text" class="form-input wide" name="counterName" />
<!-- <span class="form-tip">录入生僻字</span> -->
</div>
<div class="form-row">
<label class="form-label">对方账号:</label>
<input type="text" class="form-input wide" name="counterAccount" />
</div>
<div class="form-row">
<label class="form-label">交易备注:</label>
<input type="text" class="form-input wide" name="remark" />
<!-- <span class="form-tip">录入生僻字</span> -->
</div>
<div class="form-row">
<label class="form-label">交易摘要:</label>
<!-- name="summary" -->
<select class="form-select hide" style="width: 200px">
<option>请选择</option>
</select>
<div class="select-down-icon">
<div class="down-arrow"></div>
</div>
</div>
<div class="form-row">
<label class="form-label">起止明细编号:</label>
<input type="text" class="form-input small" name="detailFrom" />
<span class="px-2">-</span>
<input type="text" class="form-input small" name="detailTo" />
<span class="form-question">
<span class="bubble">
仅输入起始编号时,查询该编号(含)之后的明细;仅输入截止编号时,查询该编号(含)之前的明细;起止编号同时输入时,截止编号需大于或等于起始编号。
</span>
</span>
</div>
<div style="height: 90px"></div>
<!-- 按钮组 -->
<button class="buttonx xx" onclick="onAccount(1)" type="submit">
确定
</button>
<button class="buttonx yy" onclick="onAccount(2)">返回</button>
<button class="buttonx zz" onclick="onAccount(3)">查询长期</button>
</form>
<!-- <div class="btn-group" style="margin-top: -65px;">
<!-- <div class="btn-group" style="margin-top: -65px;">
<button onclick="onAccount(1)" type="submit">确定</button>
</div> -->
......@@ -455,120 +483,132 @@
<!-- 温馨提示 -->
<div class="tips-section">
<div class="tips-title">温馨提示</div>
<p>1、签约汇总记账账户仅提供历史明细查询。</p>
<p>2、当前交易明细查询页面仅支持查询最近一年半的账户明细,“查询长期”支持查询最近十年的账户明细,如需查询十年前的账户明细请联系您的开户行。</p>
<div class="tips-title">温馨提示</div>
<p>1、签约汇总记账账户仅提供历史明细查询。</p>
<p>
2、当前交易明细查询页面仅支持查询最近一年半的账户明细,“查询长期”支持查询最近十年的账户明细,如需查询十年前的账户明细请联系您的开户行。
</p>
</div>
<script src="calendar-plugin/calendar.js"></script>
</body>
</body>
</html>
<script>
/**
* 解析 YYYYMMDD 格式为 Date 对象
* @param {string} dateStr - 8位数字字符串,如 20250101
* @returns {Date}
*/
function parseYYYYMMDD(dateStr) {
const year = parseInt(dateStr.substring(0, 4));
const month = parseInt(dateStr.substring(4, 6)) - 1;
const day = parseInt(dateStr.substring(6, 8));
return new Date(year, month, day);
}
/**
* 检测 YYYYMMDD 格式的日期间隔是否大于365天
* @param {string} startStr - 开始日期,如 20250101
* @param {string} endStr - 结束日期,如 20260101
* @returns {boolean}
*/
function isOver365DaysYYYYMMDD(startStr, endStr) {
const start = parseYYYYMMDD(startStr);
const end = parseYYYYMMDD(endStr);
const diffDays = (end - start) / (1000 * 60 * 60 * 24);
return Math.abs(diffDays) > 365;
/**
* 解析 YYYYMMDD 格式为 Date 对象
* @param {string} dateStr - 8位数字字符串,如 20250101
* @returns {Date}
*/
function parseYYYYMMDD(dateStr) {
const year = parseInt(dateStr.substring(0, 4));
const month = parseInt(dateStr.substring(4, 6)) - 1;
const day = parseInt(dateStr.substring(6, 8));
return new Date(year, month, day);
}
/**
* 检测 YYYYMMDD 格式的日期间隔是否大于365天
* @param {string} startStr - 开始日期,如 20250101
* @param {string} endStr - 结束日期,如 20260101
* @returns {boolean}
*/
function isOver365DaysYYYYMMDD(startStr, endStr) {
const start = parseYYYYMMDD(startStr);
const end = parseYYYYMMDD(endStr);
const diffDays = (end - start) / (1000 * 60 * 60 * 24);
return Math.abs(diffDays) > 365;
}
let startDate = "";
let endDate = "";
const handleBlur = (dateId) => {
console.log(
"handleBlur",
startDate,
endDate,
isOver365DaysYYYYMMDD(startDate, endDate),
);
if (startDate && endDate && isOver365DaysYYYYMMDD(startDate, endDate)) {
alert("起止日期间隔不能超过365天");
if (dateId === "dateFrom") {
startDate = "";
document.getElementById(dateId).value = "";
} else {
endDate = "";
document.getElementById(dateId).value = "";
}
const checkedQuickDate = document.querySelector(
'input[name="quickDate"]:checked',
);
checkedQuickDate && (checkedQuickDate.checked = false);
}
let startDate = '';
let endDate = '';
const handleBlur = (dateId) => {
console.log('handleBlur', startDate, endDate, isOver365DaysYYYYMMDD(startDate, endDate));
if (startDate && endDate && isOver365DaysYYYYMMDD(startDate, endDate)) {
alert('起止日期间隔不能超过365天');
if (dateId === 'dateFrom') {
startDate = '';
document.getElementById(dateId).value = '';
} else {
endDate = '';
document.getElementById(dateId).value = '';
}
const checkedQuickDate = document.querySelector('input[name="quickDate"]:checked');
checkedQuickDate && (checkedQuickDate.checked = false);
}
};
const pickerStart = new CalendarPlugin({
trigger: '#sDate',
onSelect: function (date) {
startDate = date.replaceAll('-', '');
handleBlur('dateFrom');
}
};
const pickerStart = new CalendarPlugin({
trigger: "#sDate",
onSelect: function (date) {
startDate = date.replaceAll("-", "");
handleBlur("dateFrom");
},
});
const pickerEnd = new CalendarPlugin({
trigger: "#eDate",
onSelect: function (date) {
endDate = date.replaceAll("-", "");
handleBlur("dateTo");
},
});
// 快速日期
document.querySelectorAll("input[name=quickDate]").forEach((el) => {
el.addEventListener("change", () => {
const days = parseInt(el.value, 10);
const now = new Date();
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, "0"); // 补零
const day = String(now.getDate()).padStart(2, "0");
const formattedDate = `${year}-${month}-${day}`;
const today = new Date(formattedDate);
const from = new Date(today.getTime() - days * 86400000);
const fmt = (d) =>
d.getFullYear() +
String(d.getMonth() + 1).padStart(2, "0") +
String(d.getDate()).padStart(2, "0");
startDate = fmt(from);
endDate = fmt(today);
document.getElementById("dateFrom").value = startDate;
document.getElementById("dateTo").value = endDate;
});
const pickerEnd = new CalendarPlugin({
trigger: '#eDate',
onSelect: function (date) {
endDate = date.replaceAll('-', '');
handleBlur('dateTo');
}
});
// 快速日期
document.querySelectorAll('input[name=quickDate]').forEach(el => {
el.addEventListener('change', () => {
const days = parseInt(el.value, 10);
const now = new Date();
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, '0'); // 补零
const day = String(now.getDate()).padStart(2, '0');
const formattedDate = `${year}-${month}-${day}`;
const today = new Date(formattedDate);
const from = new Date(today.getTime() - days * 86400000);
const fmt = d => d.getFullYear() + String(d.getMonth() + 1).padStart(2, '0') + String(d.getDate()).padStart(2, '0');
startDate = fmt(from);
endDate = fmt(today);
document.getElementById('dateFrom').value = startDate;
document.getElementById('dateTo').value = endDate;
});
});
const form = document.getElementById('myForm');
function onAccount(number) {
if (number == 1) {
form.addEventListener('submit', async (e) => {
e.preventDefault(); // 阻止页面刷新
// 方式1:使用 FormData 自动搜集
const formData = new FormData(form);
localStorage.setItem('accountQueryParams', JSON.stringify(Object.fromEntries(formData.entries())));
setTimeout(() => {
window.localStorage.setItem('dateFrom', startDate);
window.location.href = './account_list.html';
}, 500);
});
}
if (number == 2) {
window.history.back();
}
if (number == 3) {
console.log(33333)
window.location.href = './account_detail-long.html'
}
});
const form = document.getElementById("myForm");
function onAccount(number) {
if (number == 1) {
form.addEventListener("submit", async (e) => {
e.preventDefault(); // 阻止页面刷新
// 方式1:使用 FormData 自动搜集
const formData = new FormData(form);
localStorage.setItem(
"accountQueryParams",
JSON.stringify(Object.fromEntries(formData.entries())),
);
setTimeout(() => {
window.localStorage.setItem("dateFrom", startDate);
window.location.href = "./account_list.html";
}, 500);
});
}
</script>
\ No newline at end of file
if (number == 2) {
window.history.back();
}
if (number == 3) {
console.log(33333);
window.location.href = "./account_detail-long.html";
}
}
</script>
<!DOCTYPE html>
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>账户交易明细</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Microsoft Yahei", sans-serif;
font-size: 14px;
}
body {
background-color: #ffffff;
padding: 0;
}
/* 顶部导航栏 */
.top-nav {
background-color: #ffffff;
border-bottom: 2px solid #1890ff;
display: flex;
align-items: center;
padding: 10px 20px;
gap: 40px;
}
.top-nav a {
color: #1890ff;
text-decoration: none;
font-size: 16px;
}
/* 面包屑 */
.breadcrumb {
background-color: #f5f7fa;
padding: 15px 20px;
color: #666;
margin: 10px 0;
}
/* 筛选与工具栏 */
.filter {
display: flex;
justify-content: space-between;
align-items: center;
height: 42px;
margin-top: 15px;
line-height: 42px;
padding-left: 10px;
padding-right: 11px;
}
.filter .left {
display: flex;
align-items: center;
gap: 5px;
margin-left: 15px;
}
/* 账户信息卡片 */
.account-card {
margin: 10px 0;
border-radius: 4px;
}
.account-card .account-number {
background: #fff;
position: relative;
}
.account-card .account-number::before {
content: '';
height: 2px;
background-color: #1f93d5;
position: absolute;
bottom: -2px;
left: 0;
width: 42px;
}
.account-card .account-number::after {
content: '';
height: 2px;
background-color: #1f93d5;
position: absolute;
bottom: -2px;
left: 158px;
right: 0
}
.account-number div {
display: inline-block;
border: 2px solid #1f93d5;
border-bottom: none;
color: #1f93d5;
padding: 4px 8px;
border-radius: 4px 4px 0 0;
margin-left: 40px;
height: 40px;
width: 120px;
text-align: center;
line-height: 30px;
font-weight: bold;
}
.info-table {
width: 100%;
border-collapse: collapse;
margin-top: 6px;
border: 1px solid #62a7e3;
}
.info-table td {
padding: 8px 15px;
border: none
}
.info-table tr {
border-top: 1px solid #c5d7e8;
}
.info-table tr:first-child {
border-top: 1px solid #1f93d5;
}
.info-table tr td:nth-child(2n+1) {
background-color: #f7fbfe;
text-align: right;
}
.info-table td:first-child {
width: 230px;
background: #fafafa;
}
/* 工具栏 */
.toolbar-btn {
display: flex;
justify-content: flex-end;
align-items: center;
gap: 20px;
padding: 10px 20px;
margin-top: 20px;
}
.toolbar-btn a {
color: #1890ff;
text-decoration: none;
display: flex;
align-items: center;
gap: 4px;
}
/* 交易明细表格 */
.tablebox {
width: 1145px;
overflow-x: auto;
margin: auto;
}
.detail-table {
width: calc(100% - 40px);
border-collapse: collapse;
border: 1px solid #62a7e3;
overflow: hidden;
}
.lashen {
transform: scaleY(1.6);
color: #1890ff;
}
.detail-table th {
background-color: #c8e0f5;
padding: 10px 5px;
text-align: left;
font-weight: normal;
}
.detail-table tr:nth-child(2n+1) {
background-color: #ebf4fb;
}
.detail-table tr:nth-child(2n) {
background-color: #fff;
}
.detail-table tr:hover {
background-color: #ebf4fb;
}
.detail-table td {
padding: 0 5px;
border: none;
overflow-wrap: break-word;
}
.toolbar-box {
border: 1px solid #e8e8e8;
padding-bottom: 4px;
}
/* 工具栏/统计栏 */
.toolbar {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 10px 0 10px;
background: #f8faf5;
}
.toolbar-left {
display: flex;
align-items: center;
gap: 30px;
}
.toolbar-right {
display: flex;
align-items: center;
gap: 20px;
}
.toolbar a {
color: #1f93d5;
text-decoration: none;
display: flex;
align-items: center;
gap: 4px;
}
.pagination {
display: flex;
align-items: center;
gap: 10px;
}
.pagination input {
width: 40px;
text-align: center;
border: 1px solid #d9d9d9;
padding: 2px;
}
/* 底部按钮组 */
.btn-group {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 50px;
margin-bottom: 100px;
padding-left: 120px;
}
.btn-group button {
background-color: #1f93d5;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 15px;
height: 35px;
min-width: 100px;
padding: 0 20px;
display: flex;
align-items: center;
justify-content: center;
}
.thbox {
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
}
.flex {
display: flex;
justify-content: space-between;
margin-top: 10px;
width: 100%;
}
.empty {
padding: 30px;
text-align: center;
color: #999;
border: 1px solid #dfe7ee;
border-top: none;
}
/* 温馨提示 */
.tips-section {
background-color: #f0f7ff;
padding: 10px;
border: 1px solid #e8e8e8;
}
.tips-title {
color: red;
font-weight: bold;
margin-bottom: 10px;
}
.tips-section p {
line-height: 1.8;
color: #333;
}
/* 箭头 */
.detail-table .xflex {
display: flex;
text-align: center;
align-items: flex-end;
justify-content: center;
}
.top {
width: 0;
height: 0;
border-left: 3px solid transparent;
border-right: 3px solid transparent;
border-bottom: 6px solid #1f93d5;
}
.down {
width: 0;
height: 0;
border-left: 3px solid transparent;
border-right: 3px solid transparent;
border-top: 6px solid #1f93d5;
}
.jiantou {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 2px;
margin-left: 2px;
margin-bottom: 2px;
}
table.grid td.center {
text-align: center;
}
table.grid td.num {
text-align: right;
font-family: Consolas, monospace;
}
/* table.grid td.col-select,
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Microsoft Yahei", sans-serif;
font-size: 14px;
}
body {
background-color: #ffffff;
padding: 0;
}
/* 顶部导航栏 */
.top-nav {
background-color: #ffffff;
border-bottom: 2px solid #1890ff;
display: flex;
align-items: center;
padding: 10px 20px;
gap: 40px;
}
.top-nav a {
color: #1890ff;
text-decoration: none;
font-size: 16px;
}
/* 面包屑 */
.breadcrumb {
background-color: #f5f7fa;
padding: 15px 20px;
color: #666;
margin: 10px 0;
}
/* 筛选与工具栏 */
.filter {
display: flex;
justify-content: space-between;
align-items: center;
height: 42px;
margin-top: 15px;
line-height: 42px;
padding-left: 10px;
padding-right: 11px;
}
.filter .left {
display: flex;
align-items: center;
gap: 5px;
margin-left: 15px;
}
/* 账户信息卡片 */
.account-card {
margin: 10px 0;
border-radius: 4px;
}
.account-card .account-number {
background: #fff;
position: relative;
}
.account-card .account-number::before {
content: "";
height: 2px;
background-color: #1f93d5;
position: absolute;
bottom: -2px;
left: 0;
width: 42px;
}
.account-card .account-number::after {
content: "";
height: 2px;
background-color: #1f93d5;
position: absolute;
bottom: -2px;
left: 158px;
right: 0;
}
.account-number div {
display: inline-block;
border: 2px solid #1f93d5;
border-bottom: none;
color: #1f93d5;
padding: 4px 8px;
border-radius: 4px 4px 0 0;
margin-left: 40px;
height: 40px;
width: 120px;
text-align: center;
line-height: 30px;
font-weight: bold;
}
.info-table {
width: 100%;
border-collapse: collapse;
margin-top: 6px;
border: 1px solid #62a7e3;
}
.info-table td {
padding: 8px 15px;
border: none;
}
.info-table tr {
border-top: 1px solid #c5d7e8;
}
.info-table tr:first-child {
border-top: 1px solid #1f93d5;
}
.info-table tr td:nth-child(2n + 1) {
background-color: #f7fbfe;
text-align: right;
}
.info-table td:first-child {
width: 230px;
background: #fafafa;
}
/* 工具栏 */
.toolbar-btn {
display: flex;
justify-content: flex-end;
align-items: center;
gap: 20px;
padding: 10px 20px;
margin-top: 20px;
}
.toolbar-btn a {
color: #1890ff;
text-decoration: none;
display: flex;
align-items: center;
gap: 4px;
}
/* 交易明细表格 */
.tablebox {
width: 1145px;
overflow-x: auto;
margin: auto;
}
.detail-table {
width: calc(100% - 40px);
border-collapse: collapse;
border: 1px solid #62a7e3;
overflow: hidden;
}
.lashen {
transform: scaleY(1.6);
color: #1890ff;
}
.detail-table th {
background-color: #c8e0f5;
padding: 10px 5px;
text-align: left;
font-weight: normal;
}
.detail-table tr:nth-child(2n + 1) {
background-color: #ebf4fb;
}
.detail-table tr:nth-child(2n) {
background-color: #fff;
}
.detail-table tr:hover {
background-color: #ebf4fb;
}
.detail-table td {
padding: 0 5px;
border: none;
overflow-wrap: break-word;
}
.toolbar-box {
border: 1px solid #e8e8e8;
padding-bottom: 4px;
}
/* 工具栏/统计栏 */
.toolbar {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 10px 0 10px;
background: #f8faf5;
}
.toolbar-left {
display: flex;
align-items: center;
gap: 30px;
}
.toolbar-right {
display: flex;
align-items: center;
gap: 20px;
}
.toolbar a {
color: #1f93d5;
text-decoration: none;
display: flex;
align-items: center;
gap: 4px;
}
.pagination {
display: flex;
align-items: center;
gap: 10px;
}
.pagination input {
width: 40px;
text-align: center;
border: 1px solid #d9d9d9;
padding: 2px;
}
/* 底部按钮组 */
.btn-group {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 50px;
margin-bottom: 100px;
padding-left: 120px;
}
.btn-group button {
background-color: #1f93d5;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 15px;
height: 35px;
min-width: 100px;
padding: 0 20px;
display: flex;
align-items: center;
justify-content: center;
}
.thbox {
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
}
.flex {
display: flex;
justify-content: space-between;
margin-top: 10px;
width: 100%;
}
.empty {
padding: 30px;
text-align: center;
color: #999;
border: 1px solid #dfe7ee;
border-top: none;
}
/* 温馨提示 */
.tips-section {
background-color: #f0f7ff;
padding: 10px;
border: 1px solid #e8e8e8;
}
.tips-title {
color: red;
font-weight: bold;
margin-bottom: 10px;
}
.tips-section p {
line-height: 1.8;
color: #333;
}
/* 箭头 */
.detail-table .xflex {
display: flex;
text-align: center;
align-items: flex-end;
justify-content: center;
}
.top {
width: 0;
height: 0;
border-left: 3px solid transparent;
border-right: 3px solid transparent;
border-bottom: 6px solid #1f93d5;
}
.down {
width: 0;
height: 0;
border-left: 3px solid transparent;
border-right: 3px solid transparent;
border-top: 6px solid #1f93d5;
}
.jiantou {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 2px;
margin-left: 2px;
margin-bottom: 2px;
}
table.grid td.center {
text-align: center;
}
table.grid td.num {
text-align: right;
font-family: Consolas, monospace;
}
/* table.grid td.col-select,
table.grid th.col-select {
display: none;
} */
.form-question {
cursor: pointer;
margin-left: 8px;
display: inline-block;
width: 16px;
height: 16px;
line-height: 16px;
text-align: center;
border-radius: 50%;
background-color: #1890ff;
color: #fff;
padding-left: 4px;
}
/* 气泡框 */
.bubble {
position: absolute;
bottom: calc(100% + 14px);
left: -25px;
width: 150px;
padding: 10px 5px;
color: #000000;
border-radius: 4px;
border: 1px solid #62A7E3;
background-color: #EAF5FE;
visibility: hidden;
opacity: 0;
transition: opacity 0.2s ease, visibility 0.2s ease;
z-index: 100;
pointer-events: none;
}
/* 显示气泡 */
.form-question:hover .bubble {
visibility: visible;
opacity: 1;
}
.bubble::before {
content: '';
position: absolute;
bottom: -12px;
left: 23px;
border-width: 12px 4px 0 10px;
border-style: solid;
border-color: #62A7E3 transparent transparent transparent;
z-index: 1;
}
/* 背景三角(内层,盖住部分边框) */
.bubble::after {
content: '';
position: absolute;
bottom: -9px;
left: 24px;
border-width: 9px 4px 0 8px;
border-style: solid;
border-color: #EAF5FE transparent transparent transparent;
z-index: 2;
}
.form-question {
position: relative;
cursor: pointer;
margin-left: 8px;
display: inline-block;
width: 16px;
height: 16px;
box-sizing: content-box;
line-height: 16px;
text-align: center;
border-radius: 50%;
background-color: #1890ff;
color: #fff;
padding-left: 4px;
}
/* 气泡框 */
.bubble {
position: absolute;
bottom: calc(100% + 14px);
left: -25px;
width: 150px;
padding: 10px 5px;
color: #000000;
text-align: left;
border-radius: 4px;
border: 1px solid #62a7e3;
background-color: #eaf5fe;
visibility: hidden;
opacity: 0;
transition:
opacity 0.2s ease,
visibility 0.2s ease;
z-index: 100;
pointer-events: none;
}
/* 显示气泡 */
.form-question:hover .bubble {
visibility: visible;
opacity: 1;
}
.bubble::before {
content: "";
position: absolute;
bottom: -12px;
left: 23px;
border-width: 12px 4px 0 10px;
border-style: solid;
border-color: #62a7e3 transparent transparent transparent;
z-index: 1;
}
/* 背景三角(内层,盖住部分边框) */
.bubble::after {
content: "";
position: absolute;
bottom: -9px;
left: 24px;
border-width: 9px 4px 0 8px;
border-style: solid;
border-color: #eaf5fe transparent transparent transparent;
z-index: 2;
}
</style>
</head>
</head>
<body>
<body>
<!-- 顶部导航栏 -->
<!-- <div class="top-nav">
<a href="#">账户信息查询 ∨</a>
......@@ -443,136 +441,136 @@
</div> -->
<!-- 面包屑导航 -->
<div class="breadcrumb">
当前位置:账户查询 > 账户信息查询 > 活期账户
</div>
<div class="breadcrumb">当前位置:账户查询 > 账户信息查询 > 活期账户</div>
<div class="filter">
<div class="left">
<input type="checkbox" id="filterCheckbox" onclick="openFilter(this)">
<span>筛选</span>
<span class="form-question">
<span class="bubble">
支持通过任务设定日期等要素筛选异步查询任务,设定日期仅支持按单日筛选
</span>
</span>
</div>
<div class="left">
<input type="checkbox" id="filterCheckbox" onclick="openFilter(this)" />
<span>筛选</span>
<span class="form-question"
>
<span class="bubble">
支持通过任务设定日期等要素筛选异步查询任务,设定日期仅支持按单日筛选
</span>
</span>
</div>
</div>
<!-- 交易明细表格 -->
<div class="tablebox">
<table class="detail-table grid" id="resultTable">
<thead>
<tr>
<th style="width: 107px;">
<div class="xflex">
<span>任务名称 </span>
<div class="jiantou">
<div class="top"></div>
<div class="down"></div>
</div>
</div>
</th>
<th style="width: 110px;">
<div class="xflex">
<span>任务设定日期 </span>
<div class="jiantou">
<div class="top"></div>
<div class="down"></div>
</div>
</div>
</th>
<th style="width: 151px;">
<div class="xflex">
<span>起止日期 </span>
<div class="jiantou">
<div class="top"></div>
<div class="down"></div>
</div>
</div>
</th>
<th style="width: 150px;">
<div class="xflex">
<span>账号 </span>
<div class="jiantou">
<div class="top"></div>
<div class="down"></div>
</div>
</div>
</th>
<th style="width: 101px;">
<div class="xflex">
<span>批次号 </span>
<div class="jiantou">
<div class="top"></div>
<div class="down"></div>
</div>
</div>
</th>
<th style="width: 86px;">
<div class="xflex">
<span>文件状态 </span>
<div class="jiantou">
<div class="top"></div>
<div class="down"></div>
</div>
</div>
</th>
<th style="width: 76px;">
<div class="xflex">
<span>下载 </span>
<div class="jiantou">
<div class="top"></div>
<div class="down"></div>
</div>
</div>
</th>
</tr>
</thead>
<tbody id="tbody"></tbody>
</table>
<table class="detail-table grid" id="resultTable">
<thead>
<tr>
<th style="width: 107px">
<div class="xflex">
<span>任务名称 </span>
<div class="jiantou">
<div class="top"></div>
<div class="down"></div>
</div>
</div>
</th>
<th style="width: 110px">
<div class="xflex">
<span>任务设定日期 </span>
<div class="jiantou">
<div class="top"></div>
<div class="down"></div>
</div>
</div>
</th>
<th style="width: 151px">
<div class="xflex">
<span>起止日期 </span>
<div class="jiantou">
<div class="top"></div>
<div class="down"></div>
</div>
</div>
</th>
<th style="width: 150px">
<div class="xflex">
<span>账号 </span>
<div class="jiantou">
<div class="top"></div>
<div class="down"></div>
</div>
</div>
</th>
<th style="width: 101px">
<div class="xflex">
<span>批次号 </span>
<div class="jiantou">
<div class="top"></div>
<div class="down"></div>
</div>
</div>
</th>
<th style="width: 86px">
<div class="xflex">
<span>文件状态 </span>
<div class="jiantou">
<div class="top"></div>
<div class="down"></div>
</div>
</div>
</th>
<th style="width: 76px">
<div class="xflex">
<span>下载 </span>
<div class="jiantou">
<div class="top"></div>
<div class="down"></div>
</div>
</div>
</th>
</tr>
</thead>
<tbody id="tbody"></tbody>
</table>
</div>
<!-- 底部按钮组 -->
<div class="btn-group">
<button onclick="onBack()">返 回</button>
<button onclick="onBack()">返 回</button>
</div>
<!-- 温馨提示 -->
<div class="tips-section">
<div class="tips-title">温馨提示</div>
<p>1.异步下载任务设定日期是您预约下载操作的日期,并非明细起止时间,您可以通过任务设定日期筛选已设定的异步下载任务。</p>
<p>2.因文件容量较大,每次查询的明细文件分批返回,下载相邻两批次的时间间隔请勿超过4小时,否则系统缓存失效需重新查询下载。</p>
<div class="tips-title">温馨提示</div>
<p>
1.异步下载任务设定日期是您预约下载操作的日期,并非明细起止时间,您可以通过任务设定日期筛选已设定的异步下载任务。
</p>
<p>
2.因文件容量较大,每次查询的明细文件分批返回,下载相邻两批次的时间间隔请勿超过4小时,否则系统缓存失效需重新查询下载。
</p>
</div>
</body>
</body>
</html>
<script>
let table = document.getElementById("resultTable");
table.style.width = "1145px";
table.style.tableLayout = "fixed"; // 关键!
function openFilter(element) {
var isChecked = element.checked;
var rightType = document.getElementById("rightType");
var rightTypes = document.getElementById("rightTypes");
var conditionTB = document.getElementById("conditionTB");
console.log("复选框当前状态:", isChecked);
if (isChecked) {
rightType.style.display = 'none';
rightTypes.style.display = 'inline-block';
conditionTB.style.display = 'inline-block';
} else {
rightType.style.display = 'inline-block';
rightTypes.style.display = 'none';
conditionTB.style.display = 'none';
}
let table = document.getElementById("resultTable");
table.style.width = "1145px";
table.style.tableLayout = "fixed"; // 关键!
function openFilter(element) {
var isChecked = element.checked;
var rightType = document.getElementById("rightType");
var rightTypes = document.getElementById("rightTypes");
var conditionTB = document.getElementById("conditionTB");
console.log("复选框当前状态:", isChecked);
if (isChecked) {
rightType.style.display = "none";
rightTypes.style.display = "inline-block";
conditionTB.style.display = "inline-block";
} else {
rightType.style.display = "inline-block";
rightTypes.style.display = "none";
conditionTB.style.display = "none";
}
}
function onBack() {
window.history.back();
}
</script>
\ No newline at end of file
function onBack() {
window.history.back();
}
</script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment