fix: 账单新增手动更新按钮。

This commit is contained in:
tianyongbao
2024-09-19 12:12:09 +08:00
parent f86189f402
commit 61a37aa11c
5 changed files with 328 additions and 30 deletions

View File

@@ -42,3 +42,11 @@ export function delCreditCardBill(id) {
method: 'delete'
})
}
// 手动更新信用卡账单
export function updateUnpaidCreditBill() {
return request({
url: '/invest/job/generateUnpaidCreditBill',
method: 'post'
})
}

View File

@@ -2,43 +2,51 @@ import request from '@/utils/request'
// 查询期货股票账单列表
export function listFutureStocksBill(query) {
return request({
url: '/invest/futureStocksBill/list',
method: 'get',
params: query
})
return request({
url: '/invest/futureStocksBill/list',
method: 'get',
params: query
})
}
// 查询期货股票账单详细
export function getFutureStocksBill(id) {
return request({
url: '/invest/futureStocksBill/' + id,
method: 'get'
})
return request({
url: '/invest/futureStocksBill/' + id,
method: 'get'
})
}
// 新增期货股票账单
export function addFutureStocksBill(data) {
return request({
url: '/invest/futureStocksBill',
method: 'post',
data: data
})
return request({
url: '/invest/futureStocksBill',
method: 'post',
data
})
}
// 修改期货股票账单
export function updateFutureStocksBill(data) {
return request({
url: '/invest/futureStocksBill',
method: 'put',
data: data
})
return request({
url: '/invest/futureStocksBill',
method: 'put',
data
})
}
// 删除期货股票账单
export function delFutureStocksBill(id) {
return request({
url: '/invest/futureStocksBill/' + id,
method: 'delete'
})
return request({
url: '/invest/futureStocksBill/' + id,
method: 'delete'
})
}
// 手动更新账单
export function updateLastFutureStocksBill() {
return request({
url: '/invest/job/generateFutureStocksBill',
method: 'post'
})
}

View File

@@ -27,6 +27,7 @@
<div class="title">基本信息</div>
<div class="operate-btn-con">
<el-button @click="handleAdd" icon="Plus" v-hasPermi="['invest:creditCardBill:add']">新增</el-button>
<el-button @click="handleUpdateBill" icon="Refresh" v-hasPermi="['invest:creditCardBill:add']">手动更新账单</el-button>
<el-button :disabled="multiple" icon="Delete" @click="handleDelete" v-hasPermi="['invest:creditCardBill:remove']">删除</el-button>
<!-- <el-button @click="handleExport" icon="Download" v-hasPermi="['invest:creditCardBill:export']">导出</el-button> -->
</div>
@@ -143,7 +144,14 @@
</template>
<script setup name="CreditCardBill">
import { listCreditCardBill, getCreditCardBill, delCreditCardBill, addCreditCardBill, updateCreditCardBill } from '@/api/invest/creditCardBill'
import {
listCreditCardBill,
getCreditCardBill,
delCreditCardBill,
addCreditCardBill,
updateCreditCardBill,
updateUnpaidCreditBill
} from '@/api/invest/creditCardBill'
import { listBankcardLend } from '@/api/invest/bankcardlend'
import { listAccountDealRecord } from '@/api/invest/accountDealRecord'
import dayjs from 'dayjs'
@@ -367,6 +375,16 @@ function handleAdd() {
title.value = '添加信用卡账单'
}
/** 手动更新按钮操作 */
function handleUpdateBill() {
updateUnpaidCreditBill()
setTimeout(() => {
// 一秒后执行的操作
getList()
proxy.$modal.msgSuccess('手动更新账单成功')
}, 1000)
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset()

View File

@@ -22,6 +22,7 @@
<div class="title">基本信息</div>
<div class="operate-btn-con">
<el-button @click="handleAdd" icon="Plus" v-hasPermi="['invest:futureStocksBill:add']">新增</el-button>
<el-button @click="handleUpdateBill" icon="Refresh" v-hasPermi="['invest:creditCardBill:add']">手动更新账单</el-button>
<el-button :disabled="multiple" icon="Delete" @click="handleDelete" v-hasPermi="['invest:futureStocksBill:remove']">删除</el-button>
<!-- <el-button @click="handleExport" icon="Download" v-hasPermi="['invest:futureStocksBill:export']">导出</el-button> -->
</div>
@@ -72,16 +73,70 @@
</div>
</template>
</el-dialog>
<el-dialog :title="titleDealRecord" v-model="openDealRecord" width="1200px" append-to-body destroy-on-close>
<el-form :model="queryDealRecordParams" ref="queryDealRecordRef" inline>
<el-form-item label="账单周期" prop="time">
<el-date-picker
v-model="queryDealRecordParams.time"
type="daterange"
disabled
range-separator=""
start-placeholder="开始时间"
end-placeholder="结束时间"
/>
</el-form-item>
<el-form-item label="交易类型" style="width: 220px" prop="dealType">
<el-select v-model="queryDealRecordParams.dealType" placeholder="请选择交易类型" clearable>
<el-option v-for="dict in profit_loss" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="交易类别" style="width: 220px" prop="dealCategory">
<el-select v-model="queryDealRecordParams.dealCategory" placeholder="请选择交易类别" clearable>
<el-option v-for="dict in deal_category" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="">
<el-button type="primary" icon="Search" @click="handleDealRecordQuery">搜索</el-button>
<el-button type="info" icon="Refresh" @click="resetDealRecordQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loadingDealRecord" :data="tableDealRecordData">
<el-table-column label="交易时间" align="center" prop="createTime" />
<el-table-column label="交易金额" align="center" prop="amount" />
<el-table-column label="当前余额" align="center" prop="currentBalance" />
<el-table-column label="交易类型" align="center" prop="dealType">
<template #default="scope">
<dict-tag :options="profit_loss" :value="scope.row.dealType" />
</template>
</el-table-column>
<el-table-column label="交易类别" align="center" prop="dealCategory">
<template #default="scope">
<dict-tag :options="deal_category" :value="scope.row.dealCategory" />
</template>
</el-table-column>
<el-table-column label="备注" align="center" width="380" prop="remark" />
</el-table>
<el-pagination small background layout="total, prev, pager, next" :total="dealRecordTotal" @current-change="handleCurrentDealRecordChange" />
</el-dialog>
</div>
</template>
<script setup name="FutureStocksBill">
import { listFutureStocksBill, getFutureStocksBill, delFutureStocksBill, addFutureStocksBill, updateFutureStocksBill } from '@/api/invest/futureStocksBill'
import {
listFutureStocksBill,
getFutureStocksBill,
delFutureStocksBill,
addFutureStocksBill,
updateFutureStocksBill,
updateLastFutureStocksBill
} from '@/api/invest/futureStocksBill'
import { listFutureStocks } from '@/api/invest/futureStocks'
import { listAccountDealRecord } from '@/api/invest/accountDealRecord'
import dayjs from 'dayjs'
// eslint-disable-next-line no-unused-vars
import { require } from '@/utils/require'
const { proxy } = getCurrentInstance()
const { future_stock_type } = proxy.useDict('future_stock_type')
const { future_stock_type, profit_loss, deal_category } = proxy.useDict('future_stock_type', 'profit_loss', 'deal_category')
const futureStocksBillList = ref([])
const open = ref(false)
@@ -92,11 +147,27 @@ const single = ref(true)
const multiple = ref(true)
const total = ref(0)
const title = ref('')
const titleDealRecord = ref('')
const openDealRecord = ref(false)
const currentAccountId = ref(false)
const loadingDealRecord = ref(false)
const tableDealRecordData = ref([])
const dealRecordTotal = ref(0)
const queryDealRecordParams = ref({
time: '',
dealType: null,
dealCategory: null,
pageNum: 1,
pageSize: 10
})
const futureStocksList = ref([])
const operateList = ref([
{ id: 'view', icon: 'View', title: '查看', hasPermi: ['invest:futureStocksBill:query'] },
{ id: 'edit', icon: 'Edit', title: '修改', hasPermi: ['invest:futureStocksBill:edit'] },
{ id: 'delete', icon: 'Delete', title: '删除', hasPermi: ['invest:futureStocksBill:remove'] }
{ id: 'delete', icon: 'Delete', title: '删除', hasPermi: ['invest:futureStocksBill:remove'] },
{ id: 'detail', icon: 'Tickets', title: '账单明细', hasPermi: ['invest:futureStocksBill:query'] }
])
const data = reactive({
form: {},
@@ -134,6 +205,9 @@ const handleOperate = (operate, row) => {
case 'delete':
handleDelete(row)
break
case 'detail':
handleDealRecord(row)
break
default:
break
}
@@ -141,6 +215,55 @@ const handleOperate = (operate, row) => {
const { queryParams, queryFutureStocksListParams, form, rules } = toRefs(data)
/** 历史数据按钮操作 */
function handleDealRecord(row) {
const _id = row.futureStocksId
queryDealRecordParams.value.time = row.billDatePeriod.split('~')
queryDealRecordParams.value.dealType = ''
queryDealRecordParams.value.dealCategory = '2'
titleDealRecord.value = row.futureStocksNameCode + '账单收益明细【' + row.billAmount + '】'
currentAccountId.value = _id
getDealRecordList(1)
openDealRecord.value = true
}
const handleCurrentDealRecordChange = (num) => {
getDealRecordList(num)
}
const handleDealRecordQuery = () => {
getDealRecordList(1)
}
const resetDealRecordQuery = () => {
proxy.resetForm('queryDealRecordRef')
queryDealRecordParams.value.dealType = ''
queryDealRecordParams.value.dealCategory = ''
dealRecordTotal.value = 0
getDealRecordList(1)
}
const getDealRecordList = (num, id) => {
loadingDealRecord.value = true
const timeRange = queryDealRecordParams.value.time
let st = ''
let et = ''
if (timeRange && timeRange.length === 2) {
st = dayjs(timeRange[0]).format('YYYY-MM-DD')
et = dayjs(timeRange[1]).format('YYYY-MM-DD')
}
queryDealRecordParams.value.startTime = st
queryDealRecordParams.value.endTime = et
queryDealRecordParams.value.pageNum = num
queryDealRecordParams.value.accountId = currentAccountId.value
listAccountDealRecord(queryDealRecordParams.value).then((res) => {
loadingDealRecord.value = false
tableDealRecordData.value = res.rows
dealRecordTotal.value = res.total
})
}
/** 查询管理列表 */
function getFutureStocksList() {
listFutureStocks(queryFutureStocksListParams.value).then((response) => {
@@ -158,6 +281,16 @@ function getList() {
})
}
/** 手动更新按钮操作 */
function handleUpdateBill() {
updateLastFutureStocksBill()
setTimeout(() => {
// 一秒后执行的操作
getList()
proxy.$modal.msgSuccess('手动更新账单成功')
}, 1000)
}
// 取消按钮
function cancel() {
open.value = false

View File

@@ -22,6 +22,7 @@
<div class="title">基本信息</div>
<div class="operate-btn-con">
<el-button @click="handleAdd" icon="Plus" v-hasPermi="['invest:futureStocksBill:add']">新增</el-button>
<el-button @click="handleUpdateBill" icon="Refresh" v-hasPermi="['invest:creditCardBill:add']">手动更新账单</el-button>
<el-button :disabled="multiple" icon="Delete" @click="handleDelete" v-hasPermi="['invest:futureStocksBill:remove']">删除</el-button>
<!-- <el-button @click="handleExport" icon="Download" v-hasPermi="['invest:futureStocksBill:export']">导出</el-button> -->
</div>
@@ -72,16 +73,69 @@
</div>
</template>
</el-dialog>
<el-dialog :title="titleDealRecord" v-model="openDealRecord" width="1200px" append-to-body destroy-on-close>
<el-form :model="queryDealRecordParams" ref="queryDealRecordRef" inline>
<el-form-item label="账单周期" prop="time">
<el-date-picker
v-model="queryDealRecordParams.time"
type="daterange"
disabled
range-separator=""
start-placeholder="开始时间"
end-placeholder="结束时间"
/>
</el-form-item>
<el-form-item label="交易类型" style="width: 220px" prop="dealType">
<el-select v-model="queryDealRecordParams.dealType" placeholder="请选择交易类型" clearable>
<el-option v-for="dict in profit_loss" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="交易类别" style="width: 220px" prop="dealCategory">
<el-select v-model="queryDealRecordParams.dealCategory" placeholder="请选择交易类别" clearable>
<el-option v-for="dict in deal_category" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="">
<el-button type="primary" icon="Search" @click="handleDealRecordQuery">搜索</el-button>
<el-button type="info" icon="Refresh" @click="resetDealRecordQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loadingDealRecord" :data="tableDealRecordData">
<el-table-column label="交易时间" align="center" prop="createTime" />
<el-table-column label="交易金额" align="center" prop="amount" />
<el-table-column label="当前余额" align="center" prop="currentBalance" />
<el-table-column label="交易类型" align="center" prop="dealType">
<template #default="scope">
<dict-tag :options="profit_loss" :value="scope.row.dealType" />
</template>
</el-table-column>
<el-table-column label="交易类别" align="center" prop="dealCategory">
<template #default="scope">
<dict-tag :options="deal_category" :value="scope.row.dealCategory" />
</template>
</el-table-column>
</el-table>
<el-pagination small background layout="total, prev, pager, next" :total="dealRecordTotal" @current-change="handleCurrentDealRecordChange" />
</el-dialog>
</div>
</template>
<script setup name="FutureStocksBill">
import { listFutureStocksBill, getFutureStocksBill, delFutureStocksBill, addFutureStocksBill, updateFutureStocksBill } from '@/api/invest/futureStocksBill'
import {
listFutureStocksBill,
getFutureStocksBill,
delFutureStocksBill,
addFutureStocksBill,
updateFutureStocksBill,
updateLastFutureStocksBill
} from '@/api/invest/futureStocksBill'
import { listFutureStocks } from '@/api/invest/futureStocks'
import { listAccountDealRecord } from '@/api/invest/accountDealRecord'
import dayjs from 'dayjs'
// eslint-disable-next-line no-unused-vars
import { require } from '@/utils/require'
const { proxy } = getCurrentInstance()
const { future_stock_type } = proxy.useDict('future_stock_type')
const { future_stock_type, profit_loss, deal_category } = proxy.useDict('future_stock_type', 'profit_loss', 'deal_category')
const futureStocksBillList = ref([])
const open = ref(false)
@@ -92,11 +146,27 @@ const single = ref(true)
const multiple = ref(true)
const total = ref(0)
const title = ref('')
const titleDealRecord = ref('')
const openDealRecord = ref(false)
const currentAccountId = ref(false)
const loadingDealRecord = ref(false)
const tableDealRecordData = ref([])
const dealRecordTotal = ref(0)
const queryDealRecordParams = ref({
time: '',
dealType: null,
dealCategory: null,
pageNum: 1,
pageSize: 10
})
const futureStocksList = ref([])
const operateList = ref([
{ id: 'view', icon: 'View', title: '查看', hasPermi: ['invest:futureStocksBill:query'] },
{ id: 'edit', icon: 'Edit', title: '修改', hasPermi: ['invest:futureStocksBill:edit'] },
{ id: 'delete', icon: 'Delete', title: '删除', hasPermi: ['invest:futureStocksBill:remove'] }
{ id: 'delete', icon: 'Delete', title: '删除', hasPermi: ['invest:futureStocksBill:remove'] },
{ id: 'detail', icon: 'Tickets', title: '账单明细', hasPermi: ['invest:futureStocksBill:query'] }
])
const data = reactive({
form: {},
@@ -134,6 +204,9 @@ const handleOperate = (operate, row) => {
case 'delete':
handleDelete(row)
break
case 'detail':
handleDealRecord(row)
break
default:
break
}
@@ -141,6 +214,54 @@ const handleOperate = (operate, row) => {
const { queryParams, queryFutureStocksListParams, form, rules } = toRefs(data)
/** 历史数据按钮操作 */
function handleDealRecord(row) {
const _id = row.futureStocksId
queryDealRecordParams.value.time = row.billDatePeriod.split('~')
queryDealRecordParams.value.dealType = ''
queryDealRecordParams.value.dealCategory = '2'
titleDealRecord.value = row.futureStocksNameCode + '账单收益明细【' + row.billAmount + '】'
currentAccountId.value = _id
getDealRecordList(1)
openDealRecord.value = true
}
const handleCurrentDealRecordChange = (num) => {
getDealRecordList(num)
}
const handleDealRecordQuery = () => {
getDealRecordList(1)
}
const resetDealRecordQuery = () => {
proxy.resetForm('queryDealRecordRef')
queryDealRecordParams.value.dealType = ''
queryDealRecordParams.value.dealCategory = ''
dealRecordTotal.value = 0
getDealRecordList(1)
}
const getDealRecordList = (num, id) => {
loadingDealRecord.value = true
const timeRange = queryDealRecordParams.value.time
let st = ''
let et = ''
if (timeRange && timeRange.length === 2) {
st = dayjs(timeRange[0]).format('YYYY-MM-DD')
et = dayjs(timeRange[1]).format('YYYY-MM-DD')
}
queryDealRecordParams.value.startTime = st
queryDealRecordParams.value.endTime = et
queryDealRecordParams.value.pageNum = num
queryDealRecordParams.value.accountId = currentAccountId.value
listAccountDealRecord(queryDealRecordParams.value).then((res) => {
loadingDealRecord.value = false
tableDealRecordData.value = res.rows
dealRecordTotal.value = res.total
})
}
/** 查询管理列表 */
function getFutureStocksList() {
listFutureStocks(queryFutureStocksListParams.value).then((response) => {
@@ -158,6 +279,16 @@ function getList() {
})
}
/** 手动更新按钮操作 */
function handleUpdateBill() {
updateLastFutureStocksBill()
setTimeout(() => {
// 一秒后执行的操作
getList()
proxy.$modal.msgSuccess('手动更新账单成功')
}, 1000)
}
// 取消按钮
function cancel() {
open.value = false