下载方式添加
This commit is contained in:
parent
4a7f21b525
commit
d9635906cb
@ -187,6 +187,14 @@ export function finaHeaderDataApi(data) {
|
|||||||
export function downloadFinancialApi(type, data) {
|
export function downloadFinancialApi(type, data) {
|
||||||
return request.get(`financial_record/detail_export/${type}`, data)
|
return request.get(`financial_record/detail_export/${type}`, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 财务账单 -- 下载对账单
|
||||||
|
*/
|
||||||
|
export function downloadFinancialBill(type, data) {
|
||||||
|
return request.get(`financial_record/detail_export2/${type}`, data)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 资金流水 -- 统计数据
|
* @description 资金流水 -- 统计数据
|
||||||
*/
|
*/
|
||||||
|
@ -5,93 +5,51 @@
|
|||||||
<div class="filter-container">
|
<div class="filter-container">
|
||||||
<el-form size="small" label-width="120px" :inline="true">
|
<el-form size="small" label-width="120px" :inline="true">
|
||||||
<el-form-item label="时间选择:" class="mr10">
|
<el-form-item label="时间选择:" class="mr10">
|
||||||
<el-date-picker
|
<el-date-picker v-model="timeVal" type="daterange" align="right" unlink-panels format="yyyy 年 MM 月 dd 日"
|
||||||
v-model="timeVal"
|
value-format="yyyy/MM/dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
|
||||||
type="daterange"
|
@change="onchangeTime" />
|
||||||
align="right"
|
|
||||||
unlink-panels
|
|
||||||
format="yyyy 年 MM 月 dd 日"
|
|
||||||
value-format="yyyy/MM/dd"
|
|
||||||
range-separator="至"
|
|
||||||
start-placeholder="开始日期"
|
|
||||||
end-placeholder="结束日期"
|
|
||||||
@change="onchangeTime"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<cards-data :card-lists="cardLists" />
|
<cards-data :card-lists="cardLists" />
|
||||||
<el-tabs v-if="headeNum.length > 0" v-model="tableForm.type" @tab-click="getList(1)">
|
<el-tabs v-if="headeNum.length > 0" v-model="tableForm.type" @tab-click="getList(1)">
|
||||||
<el-tab-pane v-for="(item,index) in headeNum" :key="index" :name="item.type.toString()" :label="item.title" />
|
<el-tab-pane v-for="(item, index) in headeNum" :key="index" :name="item.type.toString()"
|
||||||
|
:label="item.title" />
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table v-loading="listLoading" :data="tableData.data" style="width: 100%" size="mini" class="table"
|
||||||
v-loading="listLoading"
|
highlight-current-row>
|
||||||
:data="tableData.data"
|
|
||||||
style="width: 100%"
|
|
||||||
size="mini"
|
|
||||||
class="table"
|
|
||||||
highlight-current-row
|
|
||||||
>
|
|
||||||
<el-table-column label="序号" min-width="90">
|
<el-table-column label="序号" min-width="90">
|
||||||
<template scope="scope">
|
<template scope="scope">
|
||||||
<span>{{ scope.$index + (tableForm.page - 1) * tableForm.limit + 1 }}</span>
|
<span>{{ scope.$index + (tableForm.page - 1) * tableForm.limit + 1 }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column prop="time" label="日期" min-width="150" />
|
||||||
prop="time"
|
<el-table-column prop="income" label="账期内收入" min-width="100" />
|
||||||
label="日期"
|
<el-table-column prop="expend" label="账期内支出" min-width="150" />
|
||||||
min-width="150"
|
|
||||||
/>
|
|
||||||
<el-table-column
|
|
||||||
prop="income"
|
|
||||||
label="账期内收入"
|
|
||||||
min-width="100"
|
|
||||||
/>
|
|
||||||
<el-table-column
|
|
||||||
prop="expend"
|
|
||||||
label="账期内支出"
|
|
||||||
min-width="150"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column prop="charge" label="平台应入账金额" min-width="120" />
|
||||||
prop="charge"
|
|
||||||
label="平台应入账金额"
|
|
||||||
min-width="120"
|
|
||||||
/>
|
|
||||||
<el-table-column label="操作" min-width="200" fixed="right">
|
<el-table-column label="操作" min-width="200" fixed="right">
|
||||||
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="small" @click="onDetails(scope.row.time)">详情</el-button>
|
<el-button type="text" size="small" @click="onDetails(scope.row.time)">详情</el-button>
|
||||||
<el-button type="text" size="small" @click="exports(scope.row.time)">下载账单</el-button>
|
<el-button type="text" size="small" @click="exports(scope.row.time, 1)">下载账单</el-button>
|
||||||
|
<el-button type="text" size="small" @click="exportBill(scope.row.time, 2)">下载对账单</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<div class="block mb20">
|
<div class="block mb20">
|
||||||
<el-pagination
|
<el-pagination :page-sizes="[10, 20, 30, 40]" :page-size="tableForm.limit" :current-page="tableForm.page"
|
||||||
:page-sizes="[10, 20, 30, 40]"
|
layout="total, sizes, prev, pager, next, jumper" :total="tableData.total" @size-change="handleSizeChange"
|
||||||
:page-size="tableForm.limit"
|
@current-change="pageChange" />
|
||||||
:current-page="tableForm.page"
|
|
||||||
layout="total, sizes, prev, pager, next, jumper"
|
|
||||||
:total="tableData.total"
|
|
||||||
@size-change="handleSizeChange"
|
|
||||||
@current-change="pageChange"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog :title="tableForm.type == 1 ? '日账单详情' : '月账单详情'" :visible.sync="dialogVisible" width="830px"
|
||||||
:title="tableForm.type == 1 ? '日账单详情' : '月账单详情'"
|
:before-close="handleClose" center>
|
||||||
:visible.sync="dialogVisible"
|
|
||||||
width="830px"
|
|
||||||
:before-close="handleClose"
|
|
||||||
center
|
|
||||||
>
|
|
||||||
<el-row align="middle" class="ivu-mt mt20">
|
<el-row align="middle" class="ivu-mt mt20">
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<el-menu
|
<el-menu default-active="0" class="el-menu-vertical-demo">
|
||||||
default-active="0"
|
|
||||||
class="el-menu-vertical-demo"
|
|
||||||
>
|
|
||||||
<el-menu-item :name="accountDetails.date">
|
<el-menu-item :name="accountDetails.date">
|
||||||
<span>{{ accountDetails.date }}</span>
|
<span>{{ accountDetails.date }}</span>
|
||||||
</el-menu-item>
|
</el-menu-item>
|
||||||
@ -103,7 +61,8 @@
|
|||||||
<span class="title">{{ accountDetails.income && accountDetails.income.title }}</span>
|
<span class="title">{{ accountDetails.income && accountDetails.income.title }}</span>
|
||||||
<span class="color_red">{{ accountDetails.income && accountDetails.income.number }}元</span>
|
<span class="color_red">{{ accountDetails.income && accountDetails.income.number }}元</span>
|
||||||
<span class="count">{{ accountDetails.income && accountDetails.income.count }}</span>
|
<span class="count">{{ accountDetails.income && accountDetails.income.count }}</span>
|
||||||
<div class="list" v-if="accountDetails.income && accountDetails.income.data && accountDetails.income.data.length > 0">
|
<div class="list"
|
||||||
|
v-if="accountDetails.income && accountDetails.income.data && accountDetails.income.data.length > 0">
|
||||||
<el-row class="item" v-for="(item, index) in accountDetails.income.data" :key="index">
|
<el-row class="item" v-for="(item, index) in accountDetails.income.data" :key="index">
|
||||||
<el-col :span="12" class="name">{{ item['0'] }}</el-col>
|
<el-col :span="12" class="name">{{ item['0'] }}</el-col>
|
||||||
<el-col :span="12" class="cost">
|
<el-col :span="12" class="cost">
|
||||||
@ -120,7 +79,8 @@
|
|||||||
<span class="title">{{ accountDetails.bill && accountDetails.bill.title }}</span>
|
<span class="title">{{ accountDetails.bill && accountDetails.bill.title }}</span>
|
||||||
<span class="color_red">{{ accountDetails.bill && accountDetails.bill.number }}元</span>
|
<span class="color_red">{{ accountDetails.bill && accountDetails.bill.number }}元</span>
|
||||||
<span class="count">{{ accountDetails.bill && accountDetails.bill.count }}</span>
|
<span class="count">{{ accountDetails.bill && accountDetails.bill.count }}</span>
|
||||||
<div class="list" v-if="accountDetails.bill && accountDetails.bill.data && accountDetails.bill.data.length > 0">
|
<div class="list"
|
||||||
|
v-if="accountDetails.bill && accountDetails.bill.data && accountDetails.bill.data.length > 0">
|
||||||
<el-row class="item" v-for="(item, index) in accountDetails.bill.data" :key="index">
|
<el-row class="item" v-for="(item, index) in accountDetails.bill.data" :key="index">
|
||||||
<el-col :span="12" class="name">{{ item['0'] }}</el-col>
|
<el-col :span="12" class="name">{{ item['0'] }}</el-col>
|
||||||
<el-col :span="12" class="cost">
|
<el-col :span="12" class="cost">
|
||||||
@ -137,7 +97,8 @@
|
|||||||
<span class="title">{{ accountDetails.expend && accountDetails.expend.title }}</span>
|
<span class="title">{{ accountDetails.expend && accountDetails.expend.title }}</span>
|
||||||
<span class="color_gray">{{ accountDetails.expend && accountDetails.expend.number }}元</span>
|
<span class="color_gray">{{ accountDetails.expend && accountDetails.expend.number }}元</span>
|
||||||
<span class="count">{{ accountDetails.expend && accountDetails.expend.count }}</span>
|
<span class="count">{{ accountDetails.expend && accountDetails.expend.count }}</span>
|
||||||
<div class="list" v-if="accountDetails.expend && accountDetails.expend.data && accountDetails.expend.data.length > 0">
|
<div class="list"
|
||||||
|
v-if="accountDetails.expend && accountDetails.expend.data && accountDetails.expend.data.length > 0">
|
||||||
<el-row class="item" v-for="(item, index) in accountDetails.expend.data" :key="index">
|
<el-row class="item" v-for="(item, index) in accountDetails.expend.data" :key="index">
|
||||||
<el-col :span="12" class="name">{{ item['0'] }}</el-col>
|
<el-col :span="12" class="name">{{ item['0'] }}</el-col>
|
||||||
<el-col :span="12" class="cost">
|
<el-col :span="12" class="cost">
|
||||||
@ -174,7 +135,7 @@
|
|||||||
// +----------------------------------------------------------------------
|
// +----------------------------------------------------------------------
|
||||||
// | Author: CRMEB Team <admin@crmeb.com>
|
// | Author: CRMEB Team <admin@crmeb.com>
|
||||||
// +----------------------------------------------------------------------
|
// +----------------------------------------------------------------------
|
||||||
import { financialLstApi, financialDetailApi, finaHeaderDataApi, downloadFinancialApi } from '@/api/accounts'
|
import { financialLstApi, financialDetailApi, finaHeaderDataApi, downloadFinancialApi, downloadFinancialBill } from '@/api/accounts'
|
||||||
import { roterPre } from '@/settings'
|
import { roterPre } from '@/settings'
|
||||||
import cardsData from "@/components/cards/index";
|
import cardsData from "@/components/cards/index";
|
||||||
import createWorkBook from '@/utils/newToExcel.js';
|
import createWorkBook from '@/utils/newToExcel.js';
|
||||||
@ -243,13 +204,14 @@ export default {
|
|||||||
this.$message.error(res.message)
|
this.$message.error(res.message)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
async exports(time) {
|
|
||||||
|
async exports(time, type) {
|
||||||
let excelData = JSON.parse(JSON.stringify(this.tableForm)), data = []
|
let excelData = JSON.parse(JSON.stringify(this.tableForm)), data = []
|
||||||
excelData.page = 1
|
excelData.page = 1
|
||||||
let pageCount = 1
|
let pageCount = 1
|
||||||
let lebData = {};
|
let lebData = {};
|
||||||
for (let i = 0; i < pageCount; i++) {
|
for (let i = 0; i < pageCount; i++) {
|
||||||
lebData = await this.downData(excelData,time)
|
lebData = await this.downData(excelData, time, type)
|
||||||
pageCount = Math.ceil(lebData.count / excelData.limit)
|
pageCount = Math.ceil(lebData.count / excelData.limit)
|
||||||
if (lebData.export.length) {
|
if (lebData.export.length) {
|
||||||
data = data.concat(lebData.export)
|
data = data.concat(lebData.export)
|
||||||
@ -259,20 +221,47 @@ export default {
|
|||||||
createWorkBook(lebData.header, lebData.title, data, lebData.foot, lebData.filename);
|
createWorkBook(lebData.header, lebData.title, data, lebData.foot, lebData.filename);
|
||||||
return
|
return
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 下载对账单
|
||||||
|
async exportBill(time, type) {
|
||||||
|
let excelData = JSON.parse(JSON.stringify(this.tableForm)), data = []
|
||||||
|
excelData.page = 1
|
||||||
|
let pageCount = 1
|
||||||
|
let lebData = {};
|
||||||
|
for (let i = 0; i < pageCount; i++) {
|
||||||
|
lebData = await this.downData(excelData, time, type)
|
||||||
|
pageCount = Math.ceil(lebData.count / excelData.limit)
|
||||||
|
if (lebData.export.length) {
|
||||||
|
data = data.concat(lebData.export)
|
||||||
|
excelData.page++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
createWorkBook(lebData.header, lebData.title, data, lebData.foot, lebData.filename);
|
||||||
|
return
|
||||||
|
},
|
||||||
|
|
||||||
/**订单列表 */
|
/**订单列表 */
|
||||||
downData(excelData,time) {
|
downData(excelData, time, type) {
|
||||||
excelData.date = time
|
excelData.date = time
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
|
if (type == 1) {
|
||||||
downloadFinancialApi(this.tableForm.type, excelData).then((res) => {
|
downloadFinancialApi(this.tableForm.type, excelData).then((res) => {
|
||||||
return resolve(res.data)
|
return resolve(res.data)
|
||||||
})
|
})
|
||||||
|
} else {
|
||||||
|
downloadFinancialBill(this.tableForm.type, excelData).then((res) => {
|
||||||
|
return resolve(res.data)
|
||||||
|
})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
handleClose() {
|
handleClose() {
|
||||||
this.dialogVisible = false
|
this.dialogVisible = false
|
||||||
},
|
},
|
||||||
// 具体日期
|
// 具体日期
|
||||||
onchangeTime(e) {
|
onchangeTime(e) {
|
||||||
|
console.log(e)
|
||||||
this.timeVal = e
|
this.timeVal = e
|
||||||
this.tableForm.date = this.timeVal ? this.timeVal.join('-') : ''
|
this.tableForm.date = this.timeVal ? this.timeVal.join('-') : ''
|
||||||
this.getList('')
|
this.getList('')
|
||||||
@ -308,14 +297,17 @@ export default {
|
|||||||
.selWidth {
|
.selWidth {
|
||||||
width: 300px;
|
width: 300px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-dropdown-link {
|
.el-dropdown-link {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: #409EFF;
|
color: #409EFF;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-icon-arrow-down {
|
.el-icon-arrow-down {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tabBox_tit {
|
.tabBox_tit {
|
||||||
width: 60%;
|
width: 60%;
|
||||||
font-size: 12px !important;
|
font-size: 12px !important;
|
||||||
@ -324,15 +316,19 @@ export default {
|
|||||||
padding: 5px 0;
|
padding: 5px 0;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-menu-item {
|
.el-menu-item {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|
||||||
/deep/.el-dialog__header {
|
/deep/.el-dialog__header {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-col {
|
.el-col {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.el-divider--vertical {
|
.el-divider--vertical {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@ -341,45 +337,62 @@ export default {
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.grid-content {
|
.grid-content {
|
||||||
padding: 0 15px;
|
padding: 0 15px;
|
||||||
display: block;
|
display: block;
|
||||||
.title,.color_red,.color_gray{
|
|
||||||
|
.title,
|
||||||
|
.color_red,
|
||||||
|
.color_gray {
|
||||||
display: block;
|
display: block;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.color_red {
|
.color_red {
|
||||||
color: red;
|
color: red;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.color_gray {
|
.color_gray {
|
||||||
color: #333;
|
color: #333;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.count {
|
.count {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.list {
|
.list {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
.name,.cost{
|
|
||||||
|
.name,
|
||||||
|
.cost {
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cost {
|
.cost {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.name,.cost_count{
|
|
||||||
|
.name,
|
||||||
|
.cost_count {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cost_count {
|
.cost_count {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cost_num {
|
.cost_num {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #333;
|
color: #333;
|
||||||
@ -387,5 +400,4 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user