feat(finance): 资金出款支持按具体日期时间(时分秒)筛选
This commit is contained in:
@@ -312,6 +312,8 @@ export interface FinanceDetail {
|
||||
export interface FinanceDateQuery {
|
||||
start_date?: string
|
||||
end_date?: string
|
||||
start_time?: string
|
||||
end_time?: string
|
||||
}
|
||||
|
||||
export interface FinanceDetailQuery extends FinanceDateQuery {
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
|
||||
.filter-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
||||
grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
|
||||
gap: 14px 16px;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ import { useAdminSessionStore } from '@/stores/adminSession'
|
||||
import { adminPath } from '@/shared/utils/adminPath'
|
||||
import { readError } from '@/shared/utils/error'
|
||||
import { formatCentWithSymbol, yuanToCent } from '@/shared/utils/money'
|
||||
import { formatDateTime, formatInputDate } from '@/shared/utils/time'
|
||||
import { formatDateTime } from '@/shared/utils/time'
|
||||
import AdminTablePagination from '../components/AdminTablePagination.vue'
|
||||
import WithdrawalDetailDialog from '../components/WithdrawalDetailDialog.vue'
|
||||
|
||||
@@ -73,10 +73,84 @@ const createForm = reactive({
|
||||
voucher_url: '',
|
||||
})
|
||||
|
||||
const defaultStartTime = new Date(2000, 0, 1, 0, 0, 0)
|
||||
const defaultEndTime = new Date(2000, 0, 1, 23, 59, 59)
|
||||
|
||||
const startTimeShortcuts = [
|
||||
{
|
||||
text: '今天 00:00',
|
||||
value: () => {
|
||||
const d = new Date()
|
||||
d.setHours(0, 0, 0, 0)
|
||||
return d
|
||||
},
|
||||
},
|
||||
{
|
||||
text: '昨天 00:00',
|
||||
value: () => {
|
||||
const d = new Date()
|
||||
d.setDate(d.getDate() - 1)
|
||||
d.setHours(0, 0, 0, 0)
|
||||
return d
|
||||
},
|
||||
},
|
||||
{
|
||||
text: '近7天',
|
||||
value: () => {
|
||||
const d = new Date()
|
||||
d.setDate(d.getDate() - 6)
|
||||
d.setHours(0, 0, 0, 0)
|
||||
return d
|
||||
},
|
||||
},
|
||||
{
|
||||
text: '近30天',
|
||||
value: () => {
|
||||
const d = new Date()
|
||||
d.setDate(d.getDate() - 29)
|
||||
d.setHours(0, 0, 0, 0)
|
||||
return d
|
||||
},
|
||||
},
|
||||
{
|
||||
text: '本月初',
|
||||
value: () => {
|
||||
const d = new Date()
|
||||
d.setDate(1)
|
||||
d.setHours(0, 0, 0, 0)
|
||||
return d
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
const endTimeShortcuts = [
|
||||
{
|
||||
text: '此刻',
|
||||
value: () => new Date(),
|
||||
},
|
||||
{
|
||||
text: '今天 23:59',
|
||||
value: () => {
|
||||
const d = new Date()
|
||||
d.setHours(23, 59, 59, 0)
|
||||
return d
|
||||
},
|
||||
},
|
||||
{
|
||||
text: '昨天 23:59',
|
||||
value: () => {
|
||||
const d = new Date()
|
||||
d.setDate(d.getDate() - 1)
|
||||
d.setHours(23, 59, 59, 0)
|
||||
return d
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
const filters = reactive({
|
||||
date_type: 'created',
|
||||
start_date: defaultStartDate(),
|
||||
end_date: formatInputDate(new Date()),
|
||||
start_date: defaultStartDateTime(),
|
||||
end_date: defaultEndDateTime(),
|
||||
source_type: '',
|
||||
status: '',
|
||||
business_no: '',
|
||||
@@ -115,8 +189,8 @@ function search() {
|
||||
|
||||
function resetFilters() {
|
||||
filters.date_type = 'created'
|
||||
filters.start_date = defaultStartDate()
|
||||
filters.end_date = formatInputDate(new Date())
|
||||
filters.start_date = defaultStartDateTime()
|
||||
filters.end_date = defaultEndDateTime()
|
||||
filters.source_type = ''
|
||||
filters.status = ''
|
||||
filters.business_no = ''
|
||||
@@ -263,10 +337,17 @@ function emptySummary(): FinanceDisbursementListSummary {
|
||||
}
|
||||
}
|
||||
|
||||
function defaultStartDate() {
|
||||
function defaultStartDateTime() {
|
||||
const date = new Date()
|
||||
date.setDate(date.getDate() - 29)
|
||||
return formatInputDate(date)
|
||||
date.setHours(0, 0, 0, 0)
|
||||
return formatDateTime(date)
|
||||
}
|
||||
|
||||
function defaultEndDateTime() {
|
||||
const date = new Date()
|
||||
date.setHours(23, 59, 59, 0)
|
||||
return formatDateTime(date)
|
||||
}
|
||||
|
||||
function money(cents: number | undefined | null) {
|
||||
@@ -446,29 +527,37 @@ function accountTypeLabel(type: string) {
|
||||
<!-- 筛选面板 -->
|
||||
<section class="section-card filter-card">
|
||||
<el-form class="filter-grid" label-position="top" @keyup.enter="search">
|
||||
<el-form-item label="日期口径">
|
||||
<el-form-item label="时间口径">
|
||||
<el-select v-model="filters.date_type" class="full-control">
|
||||
<el-option label="业务形成日期" value="created" />
|
||||
<el-option label="实际打款日期" value="paid" />
|
||||
<el-option label="业务形成时间" value="created" />
|
||||
<el-option label="实际打款时间" value="paid" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="开始日期">
|
||||
<el-form-item label="开始时间">
|
||||
<el-date-picker
|
||||
v-model="filters.start_date"
|
||||
class="full-control"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
type="datetime"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
placeholder="选择开始时间"
|
||||
:default-time="defaultStartTime"
|
||||
:shortcuts="startTimeShortcuts"
|
||||
:clearable="false"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="结束日期">
|
||||
<el-form-item label="结束时间">
|
||||
<el-date-picker
|
||||
v-model="filters.end_date"
|
||||
class="full-control"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
type="datetime"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
placeholder="选择结束时间"
|
||||
:default-time="defaultEndTime"
|
||||
:shortcuts="endTimeShortcuts"
|
||||
:clearable="false"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
Reference in New Issue
Block a user