Commit c8c64429 authored by yaya's avatar yaya

feat:添加平台账单页面

parent 483f25d5
...@@ -90,3 +90,17 @@ export function findUserBillDetail(data) { ...@@ -90,3 +90,17 @@ export function findUserBillDetail(data) {
}) })
} }
export function findSystemBillIncomeDetail(data) {
return request({
url: '/sysFinance/findSystemBillIncomeDetail',
method: 'post',
data
})
}
export function findSystemBillExpenditureDetail(data) {
return request({
url: '/sysFinance/findSystemBillExpenditureDetail',
method: 'post',
data
})
}
...@@ -660,9 +660,9 @@ export const asyncRouterMap = [ ...@@ -660,9 +660,9 @@ export const asyncRouterMap = [
keepAlive: true keepAlive: true
} }
}, { }, {
path: 'FinanceDetail', path: 'financeDetail',
component: () => import('@/views/finance/FinanceDetail'), component: () => import('@/views/finance/financeDetail'),
name: 'FinanceDetail', name: 'financeDetail',
meta: { meta: {
perms: [], perms: [],
title: '账单明细', title: '账单明细',
...@@ -671,6 +671,17 @@ export const asyncRouterMap = [ ...@@ -671,6 +671,17 @@ export const asyncRouterMap = [
keepAlive: true keepAlive: true
}, },
hidden: true hidden: true
}, {
path: 'platformFinance',
component: () => import('@/views/finance/platformFinance'),
name: 'platformFinance',
meta: {
perms: [],
title: '平台账单',
icon: 'drag',
noCache: true,
keepAlive: true
}
} }
] ]
}, },
......
<template>
<div class="page_consignList">
<div class="filter-container">
<div class="button_left">
<el-input
v-model="listQuery.userId"
clearable
class="filter-item"
style="width: 200px;"
placeholder="请输入藏家ID" />
<el-date-picker
v-model="timeValue"
:picker-options="pickerOptions"
class="filter-item"
style="width: 400px; "
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
align="right"/>
<el-button class="filter-item" type="primary" icon="el-icon-search" style="margin-left: 12px" @click="handleFilter">查找</el-button>
<el-button class="filter-item" @click="resetSearchForm">重置</el-button>
</div>
</div>
<el-table
v-loading="listLoading"
:data="list"
size="small"
element-loading-text="正在查询中..."
border
fit
highlight-current-row>
<!-- <el-table-column align="center" label="排行" width="100px" type="index" />-->
<el-table-column align="center" min-width="100px" prop="settlementId" label="手续号" />
<el-table-column align="center" label="藏家" min-width="150px" prop="userName">
<template slot-scope="scope">
<Line2Hidden :text="scope.row.userName || ''" />
</template>
</el-table-column>
<el-table-column align="center" label="藏家ID" prop="userId" />
<el-table-column align="center" label="银行账号" prop="bankCardId" />
<el-table-column align="center" label="真实姓名" prop="realUserName" />
<el-table-column prop="settleAmount" label="支出金额" width="120" align="center" >
<template slot-scope="scope">
<span class="tooltip-span">{{ `${scope.row.settleAmount ? `¥ ${scope.row.settleAmount}` : '-'}` }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="支出时间" prop="settleTime" />
</el-table>
<Pagination
v-show="total>0"
:total="total"
:page.sync="listQuery.page"
:limit.sync="listQuery.limit"
@pagination="getList" />
</div>
</template>
<script>
import Line2Hidden from '@/components/line2Hidden'
import Pagination from '@/components/Pagination'
import { findSystemBillExpenditureDetail } from '@/api/business/order'
export default {
name: 'PlatformExpendView',
components: {
Pagination,
Line2Hidden
},
data() {
return {
activeIndex: '1',
itemKey: 0,
listLoading: true,
listQuery: {
page: 1,
size: 20
},
list: [],
total: 0,
timeValue: '',
pickerOptions: {
disabledDate(date) {
return date.getTime() > Date.now() // 禁用大于今天的日期
}
}
}
},
created() {
this.getList()
},
methods: {
resetSearchForm() {
this.timeValue = ''
this.listQuery = {
page: 1,
limit: 20
}
this.getList()
},
handleFilter() {
if (this.timeValue && this.timeValue.length > 0) {
this.listQuery.startSettleTime = this.timeValue[0]
this.listQuery.endSettleTime = this.timeValue[1]
} else {
this.listQuery.startSettleTime = ''
this.listQuery.endSettleTime = ''
}
this.listQuery.page = 1
this.getList()
},
getList() {
localStorage.setItem('systemState', '')
this.listLoading = true
findSystemBillExpenditureDetail(this.listQuery).then(response => {
this.list = response.data.data.dataList
this.total = response.data.data.total
this.listLoading = false
}).catch((e) => {
console.log('===报错=', e)
this.list = []
this.total = 0
this.listLoading = false
})
}
}
}
</script>
<style lang="scss" scoped>
/deep/ .el-switch {
height: 30px;
}
/deep/ .cell {
display: flex;
justify-content: center;
}
.page_consignList {
padding: 20px;
.filter-container {
display: flex;
flex-direction: row;
justify-content: space-between;
}
}
</style>
<template>
<div class="page_consignList">
<div class="filter-container">
<div class="button_left">
<el-date-picker
v-model="timeValue"
:picker-options="pickerOptions"
class="filter-item"
style="width: 400px; "
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss"
align="right"/>
<el-input
v-model="listQuery.distributionOrderId"
clearable
class="filter-item"
style="width: 200px;"
placeholder="请输入订单编号" />
<el-select v-model="listQuery.orderState" placeholder="请选择订单状态" class="filter-item" style="width: 200px;">
<el-option
v-for="item in options"
:key="item.label"
:label="item.label"
:value="item.value"
size="mini"/>
</el-select>
<el-select v-model="listQuery.type" placeholder="请选择收入类型" class="filter-item" style="width: 200px;">
<el-option
v-for="item in incomeOptions"
:key="item.label"
:label="item.label"
:value="item.value"
size="mini" />
</el-select>
<el-button class="filter-item" type="primary" icon="el-icon-search" style="margin-left: 12px" @click="handleFilter">查找</el-button>
<el-button class="filter-item" @click="resetSearchForm">重置</el-button>
</div>
</div>
<div class="data-container">
<el-card class="box-card">
<div class="income_item">
<div class="income_item_title">平台利润</div>
<div class="income_item_money">{{ `¥${incomeData.amount}` }}</div>
<div class="income_item_detail">{{ `入账金额 ¥ ${incomeData.entryAmount}|待入账金额 ¥${incomeData.waitEntryAmount}` }}</div>
</div>
</el-card>
<el-card class="box-card">
<div class="income_item">
<div class="income_item_title">平台累计利润</div>
<div class="income_item_money">{{ `¥${incomeData.totalAmount}` }}</div>
<div class="income_item_detail">{{ `入账金额 ¥ ${incomeData.totalEntryAmount}|待入账金额 ¥${incomeData.totalWaitEntryAmount}` }}</div>
</div>
</el-card>
</div>
<el-table
v-loading="listLoading"
:data="list"
size="small"
element-loading-text="正在查询中..."
border
fit
highlight-current-row>
<!-- <el-table-column align="center" label="排行" width="100px" type="index" />-->
<el-table-column align="center" min-width="100px" prop="distributionOrderId" label="订单编号" />
<el-table-column align="center" label="商品图片" prop="homePageImage">
<template slot-scope="scope">
<img v-if="scope.row.homePageImage && scope.row.homePageImage.url" :src="scope.row.homePageImage.url" width="60px" height="60px">
</template>
</el-table-column>
<el-table-column align="center" label="商品标题" min-width="150px" prop="itemName">
<template slot-scope="scope">
<Line2Hidden :text="scope.row.itemName || ''" />
</template>
</el-table-column>
<el-table-column align="center" label="订单状态" prop="stateName" />
<el-table-column prop="amount" label="订单金额" width="120" align="center" >
<template slot-scope="scope">
<span class="tooltip-span">{{ `${scope.row.amount ? `¥ ${scope.row.amount}` : '-'}` }}</span>
</template>
</el-table-column>
<el-table-column prop="realAmount" label="平台到账(1%手续费)" width="120" align="center" >
<template slot-scope="scope">
<span class="tooltip-span">{{ `${scope.row.realAmount ? `¥ ${scope.row.realAmount}` : '-'}` }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="订单类型" prop="orderTypeName" />
<el-table-column align="center" label="订单创建时间" prop="createTime" width="160" />
<el-table-column align="center" label="收入类型" prop="typeName" />
<el-table-column prop="enrtyAmount" label="已入账" width="120" align="center" >
<template slot-scope="scope">
<span class="tooltip-span">{{ `${scope.row.enrtyAmount ? `¥ ${scope.row.enrtyAmount}` : '-'}` }}</span>
</template>
</el-table-column>
<el-table-column prop="waitEnrtyAmount" label="待入账" width="120" align="center" >
<template slot-scope="scope">
<span class="tooltip-span">{{ `${scope.row.waitEnrtyAmount ? `¥ ${scope.row.waitEnrtyAmount}` : '-'}` }}</span>
</template>
</el-table-column>
</el-table>
<Pagination
v-show="total>0"
:total="total"
:page.sync="listQuery.page"
:limit.sync="listQuery.limit"
@pagination="getList" />
</div>
</template>
<script>
import Line2Hidden from '@/components/line2Hidden'
import Pagination from '@/components/Pagination'
import { findSystemBillIncomeDetail } from '@/api/business/order'
export default {
name: 'PlatformIncomeView',
components: {
Pagination,
Line2Hidden
},
data() {
return {
activeIndex: '1',
itemKey: 0,
options: [{
value: 1,
label: '待付款'
}, {
value: 10,
label: '待发货'
}, {
value: 20,
label: '待收货'
}, {
value: 30,
label: '售后中'
}, {
value: 80,
label: '退款受理中'
}, {
value: 100,
label: '已完成'
}, {
value: 101,
label: '已取消'
}],
incomeOptions: [{
value: 1,
label: '订单收入'
}, {
value: 2,
label: '平台佣金'
}, {
value: 3,
label: '介绍佣金'
}],
listLoading: true,
listQuery: {
page: 1,
size: 20
},
list: [],
total: 0,
// 图文估价
imageValueDialogShow: false,
// 建议寄售价
identifyValueDialogShow: false,
// 货品售出
finishDialogShow: false,
// 寄售凭证
finishSettlementDialogShow: false,
// 取消
cancelConsignDialogShow: false,
currentSaleId: '',
incomeData: {},
timeValue: '',
pickerOptions: {
disabledDate(date) {
return date.getTime() > Date.now() // 禁用大于今天的日期
}
}
}
},
created() {
this.getList()
},
methods: {
resetSearchForm() {
this.timeValue = ''
this.listQuery = {
page: 1,
limit: 20
}
this.getList()
},
handleFilter() {
if (this.timeValue && this.timeValue.length > 0) {
this.listQuery.startCreateTime = this.timeValue[0]
this.listQuery.endCreateTime = this.timeValue[1]
} else {
this.listQuery.startCreateTime = ''
this.listQuery.endCreateTime = ''
}
this.listQuery.page = 1
this.getList()
},
getList() {
localStorage.setItem('systemState', '')
this.listLoading = true
findSystemBillIncomeDetail(this.listQuery).then(response => {
this.list = response.data.data.dataList.dataList
this.total = response.data.data.dataList.total
this.incomeData = response.data.data
this.listLoading = false
}).catch((e) => {
console.log('===报错=', e)
this.list = []
this.total = 0
this.listLoading = false
})
}
}
}
</script>
<style lang="scss" scoped>
/deep/ .el-switch {
height: 30px;
}
/deep/ .cell {
display: flex;
justify-content: center;
}
/deep/ .el-card__body {
padding: 10px;
height: 100%;
}
.page_consignList {
padding: 20px;
display: flex;
flex-direction: column;
.filter-container {
display: flex;
flex-direction: row;
justify-content: space-between;
}
.data-container {
display: flex;
flex-direction: row;
}
.box-card {
width: 280px;
height: 120px;
margin-right: 20px;
margin-bottom: 20px;
.income_item {
display: flex;
flex-direction: column;
height: 100%;
.income_item_title {
font-size: 12px;
}
.income_item_money {
font-size: 36px;
font-weight: 500;
flex: 1;
line-height: 60px;
text-align: center;
justify-content: center;
align-items: center;
}
.income_item_detail {
font-size: 10px;
text-align: center;
}
}
}
}
</style>
<template>
<div class="page_consignList">
<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
<el-menu-item index="1">收入明细</el-menu-item>
<el-menu-item index="2">支出明细</el-menu-item>
</el-menu>
<div v-if="activeIndex === '1'">
<PlatformIncomeView />
</div>
<div v-else>
<PlatformExpendView />
</div>
</div>
</template>
<script>
import PlatformIncomeView from './components/platformIncomeView'
import PlatformExpendView from './components/platformExpendView'
export default {
name: 'PlatformFinance',
components: {
PlatformExpendView,
PlatformIncomeView
},
data() {
return {
activeIndex: '1',
listLoading: true
}
},
created() {
},
methods: {
handleSelect(value) {
this.activeIndex = value
}
}
}
</script>
<style lang="scss" scoped>
/deep/ .el-switch {
height: 30px;
}
/deep/ .cell {
display: flex;
justify-content: center;
}
.page_consignList {
.filter-container {
display: flex;
flex-direction: row;
justify-content: space-between;
}
}
</style>
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
</template> </template>
<script> <script>
import { requestOrderList } from '@/api/business/order'
import SaleOrderView from './saleOrderView' import SaleOrderView from './saleOrderView'
import TransferOrderView from './transferOrderView' import TransferOrderView from './transferOrderView'
...@@ -27,92 +26,15 @@ export default { ...@@ -27,92 +26,15 @@ export default {
data() { data() {
return { return {
activeIndex: '1', activeIndex: '1',
itemKey: 0, listLoading: true
options: [{
value: 1,
label: '待付款'
}, {
value: 10,
label: '待发货'
}, {
value: 20,
label: '待收货'
}, {
value: 30,
label: '售后中'
}, {
value: 80,
label: '退款受理中'
}, {
value: 100,
label: '已完成'
}, {
value: 101,
label: '已取消'
}],
listLoading: true,
listQuery: {
page: 1,
size: 20,
type: 3
},
list: [],
total: 0,
// 图文估价
imageValueDialogShow: false,
// 建议寄售价
identifyValueDialogShow: false,
// 货品售出
finishDialogShow: false,
// 寄售凭证
finishSettlementDialogShow: false,
// 取消
cancelConsignDialogShow: false,
currentSaleId: ''
} }
}, },
created() { created() {
this.getList()
}, },
methods: { methods: {
handleSelect(value) { handleSelect(value) {
this.activeIndex = value this.activeIndex = value
},
resetSearchForm() {
this.listQuery = {
page: 1,
limit: 20,
type: 3
}
this.getList()
},
handleFilter() {
this.listQuery.page = 1
this.getList()
},
handlerGetList() {
this.listQuery.page = 1
this.getList()
},
handleClick(tab, event) {
this.listQuery.page = 1
this.getList()
},
getList() {
localStorage.setItem('systemState', '')
this.listLoading = true
requestOrderList(this.listQuery).then(response => {
this.list = response.data.data.dataList
this.total = response.data.data.total
this.listLoading = false
}).catch((e) => {
console.log('===报错=', e)
this.list = []
this.total = 0
this.listLoading = false
})
} }
} }
} }
......
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