2.把贷款统计、融资统计中的交易记录,单独做个菜单(只要结果数据/放款和驳回)

This commit is contained in:
aixianling
2022-04-14 17:53:11 +08:00
parent a6a38ef099
commit 9d73267f8b
4 changed files with 250 additions and 92 deletions

View File

@@ -50,33 +50,6 @@
<ai-echart :ops="columnEchart" id="columnChart" :data="productTop10"/> <ai-echart :ops="columnEchart" id="columnChart" :data="productTop10"/>
</template> </template>
</ai-card> </ai-card>
<ai-card title="交易记录">
<template #content>
<ai-search-bar>
<template #left>
<ai-select v-model="search.organizationType" placeholder="机构类型" clearable
:selectList="dict.getDict('financialOrganizationType')" @change="page.current=1,getTableData()"/>
<ai-search label="申请时间">
<el-date-picker size="small" placeholder="请选择" type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期" v-model="search.applyTime"
:default-time="['00:00:00','23:59:59']" value-format="yyyy-MM-dd"
@change="handleSearchTime"/>
</ai-search>
</template>
<template #right>
<el-input size="small" placeholder="搜索产品名称、身份证、企业、贷款机构" v-model="search.enterpriseName" clearable
@change="page.current=1,getTableData()"/>
<ai-download :instance="instance" url="/app/appfinancialloanapply/export" :params="search"
fileName="交易记录">
<el-button icon="iconfont iconExported">导出</el-button>
</ai-download>
</template>
</ai-search-bar>
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
@getList="getTableData" :col-configs="colConfigs" :dict="dict"/>
</template>
</ai-card>
</section> </section>
</template> </template>
@@ -194,42 +167,17 @@ export default {
data() { data() {
return { return {
search: {status: 1}, search: {status: 1},
page: {current: 1, size: 10, total: 0},
tableData: [],
overviews: [], overviews: [],
productTop10: [], productTop10: [],
tradeTrend: [], tradeTrend: [],
colConfigs: [
{label: "产品名称", width: '200', prop: "productName"},
{label: "联系人", width: '100', prop: "name"},
{label: "联系方式", width: '140', prop: "phone"},
{label: "身份证号", render: (h, {row}) => h('p', this.idCardNoUtil.hideId(row.idNumber)), width: 160},
{label: "企业主体", width: '200', prop: "enterpriseName"},
{label: "贷款金额(万)", width: '120', prop: "loanAmount"},
{label: "申请时间", prop: "createTime", width: 160},
{label: "贷款机构", prop: "organizationName"},
{label: "机构类型", prop: "organizationType", dict: "financialOrganizationType"},
{label: "状态", prop: "status", dict: "financialLoanApplyStatus"},
]
} }
}, },
methods: { methods: {
getStaData() { getStaData() {
this.getTableData()
this.getOverviews() this.getOverviews()
this.getProductTop10() this.getProductTop10()
this.getTradeTrend() this.getTradeTrend()
}, },
getTableData() {
this.instance.post("/appfinancialloanapply/list", null, {
params: {...this.page, ...this.search}
}).then(res => {
if (res?.data) {
this.tableData = res.data?.records
this.page.total = res.data.total + 20
}
})
},
getOverviews() { getOverviews() {
let {organizationId} = this.search let {organizationId} = this.search
this.instance.post("/appfinancialloanapply/staticFinancialLoanApplyByOrganization", null, { this.instance.post("/appfinancialloanapply/staticFinancialLoanApplyByOrganization", null, {
@@ -260,12 +208,6 @@ export default {
} }
}) })
}, },
handleSearchTime(v) {
this.page.current = 1
this.search.applyStartDate = v?.[0].substring(0, 10)
this.search.applyEndDate = v?.[1].substring(0, 10)
this.getTableData()
}
}, },
created() { created() {
this.getStaData() this.getStaData()

View File

@@ -52,39 +52,39 @@
</p> </p>
<div id="columnChart"></div> <div id="columnChart"></div>
</div> </div>
<div class="table-content chart-content"> <!-- <div class="table-content chart-content">-->
<div class="title">交易记录</div> <!-- <div class="title">交易记录</div>-->
<ai-search-bar style="padding:20px 20px 0 20px;"> <!-- <ai-search-bar style="padding:20px 20px 0 20px;">-->
<template #left> <!-- <template #left>-->
<ai-select v-model="search.status" placeholder="状态" clearable <!-- <ai-select v-model="search.status" placeholder="状态" clearable-->
:selectList="dict.getDict('financingDemandStatus')" @change="getList()"></ai-select> <!-- :selectList="dict.getDict('financingDemandStatus')" @change="getList()"></ai-select>-->
<ai-search label="申请时间"> <!-- <ai-search label="申请时间">-->
<el-date-picker size="small" placeholder="请选择" type="daterange" <!-- <el-date-picker size="small" placeholder="请选择" type="daterange"-->
start-placeholder="开始日期" <!-- start-placeholder="开始日期"-->
end-placeholder="结束日期" <!-- end-placeholder="结束日期"-->
style="width: 258px;" <!-- style="width: 258px;"-->
value-format="yyyy-MM-dd" <!-- value-format="yyyy-MM-dd"-->
v-model="stuTime" <!-- v-model="stuTime"-->
@change="changeTime"/> <!-- @change="changeTime"/>-->
</ai-search> <!-- </ai-search>-->
</template> <!-- </template>-->
<template #right> <!-- <template #right>-->
<el-input size="small" placeholder="联系人/身份证号/企业主体/贷款银行" v-model="search.name" clearable @change="getList()"/> <!-- <el-input size="small" placeholder="联系人/身份证号/企业主体/贷款银行" v-model="search.name" clearable @change="getList()"/>-->
<ai-download :instance="instance" url="appfinancingdemand/export" :params="search" <!-- <ai-download :instance="instance" url="appfinancingdemand/export" :params="search"-->
fileName="交易记录"> <!-- fileName="交易记录">-->
<el-button icon="iconfont iconExported">导出</el-button> <!-- <el-button icon="iconfont iconExported">导出</el-button>-->
</ai-download> <!-- </ai-download> -->
</template> <!-- </template>-->
</ai-search-bar> <!-- </ai-search-bar>-->
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size" <!-- <ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"-->
@getList="getList" :col-configs="colConfigs" :dict="dict" style="padding:0 20px 20px 20px;"> <!-- @getList="getList" :col-configs="colConfigs" :dict="dict" style="padding:0 20px 20px 20px;">-->
<el-table-column slot="options" label="状态" fixed="right" width="100" align="center"> <!-- <el-table-column slot="options" label="状态" fixed="right" width="100" align="center">-->
<template slot-scope="{row}"> <!-- <template slot-scope="{row}">-->
<span :class="`status${row.status}`">{{ dict.getLabel('financingDemandStatus', row.status) }}</span> <!-- <span :class="`status${row.status}`">{{ dict.getLabel('financingDemandStatus', row.status) }}</span>-->
</template> <!-- </template>-->
</el-table-column> <!-- </el-table-column>-->
</ai-table> <!-- </ai-table>-->
</div> <!-- </div>-->
</section> </section>
</template> </template>
@@ -170,7 +170,7 @@ export default {
this.lineChartInit(monthList, applyList, auditList) this.lineChartInit(monthList, applyList, auditList)
} }
}) })
this.getList() // this.getList()
}, },
getList() { getList() {
let status = this.search.status || 999 let status = this.search.status || 999

View File

@@ -0,0 +1,98 @@
<template>
<section class="AppLoanSta">
<ai-list>
<ai-title slot="title" title="贷款情况汇总" isShowBottomBorder isShowArea v-model="search.areaId"
@change="page.current=1,getTableData()" :instance="instance"/>
<template #content>
<ai-search-bar>
<template #left>
<ai-select v-model="search.organizationType" placeholder="机构类型" clearable
:selectList="dict.getDict('financialOrganizationType')" @change="page.current=1,getTableData()"/>
<ai-search label="申请时间">
<el-date-picker size="small" placeholder="请选择" type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期" v-model="search.applyTime"
:default-time="['00:00:00','23:59:59']" value-format="yyyy-MM-dd"
@change="handleSearchTime"/>
</ai-search>
</template>
<template #right>
<el-input size="small" placeholder="搜索产品名称、身份证、企业、贷款机构" v-model="search.enterpriseName" clearable
@change="page.current=1,getTableData()"/>
<ai-download :instance="instance" url="/app/appfinancialloanapply/export" :params="search"
fileName="交易记录">
<el-button icon="iconfont iconExported">导出</el-button>
</ai-download>
</template>
</ai-search-bar>
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
@getList="getTableData" :col-configs="colConfigs" :dict="dict"/>
</template>
</ai-list>
</section>
</template>
<script>
import {mapState} from "vuex";
export default {
name: "AppLoanSta",
label: "贷款情况汇总",
props: {
instance: Function,
dict: Object,
permissions: Function
},
computed: {
...mapState(['user'])
},
data() {
return {
search: {status: 1},
page: {current: 1, size: 10, total: 0},
tableData: [],
colConfigs: [
{label: "产品名称", width: '200', prop: "productName"},
{label: "联系人", width: '100', prop: "name"},
{label: "联系方式", width: '140', prop: "phone"},
{label: "身份证号", render: (h, {row}) => h('p', this.idCardNoUtil.hideId(row.idNumber)), width: 160},
{label: "企业主体", width: '200', prop: "enterpriseName"},
{label: "贷款金额(万)", width: '120', prop: "loanAmount"},
{label: "申请时间", prop: "createTime", width: 160},
{label: "贷款机构", prop: "organizationName"},
{label: "机构类型", prop: "organizationType", dict: "financialOrganizationType"},
{label: "状态", prop: "status", dict: "financialLoanApplyStatus"},
],
}
},
methods: {
getTableData() {
this.instance.post("/appfinancialloanapply/list", null, {
params: {...this.page, ...this.search}
}).then(res => {
if (res?.data) {
this.tableData = res.data?.records
this.page.total = res.data.total + 20
}
})
},
handleSearchTime(v) {
this.page.current = 1
this.search.applyStartDate = v?.[0].substring(0, 10)
this.search.applyEndDate = v?.[1].substring(0, 10)
this.getTableData()
}
},
created() {
this.search.areaId = this.user.info.areaId
this.dict.load('financialLoanApplyStatus', 'financialOrganizationType', 'financialOrganizationType')
this.getTableData()
}
}
</script>
<style lang="scss" scoped>
.AppLoanSta {
height: 100%;
}
</style>

View File

@@ -0,0 +1,118 @@
<template>
<section class="AppNeedSta">
<ai-list>
<ai-title slot="title" title="贷款情况汇总" isShowBottomBorder isShowArea v-model="search.areaId"
@change="page.current=1,getTableData()" :instance="instance"/>
<template #content>
<ai-search-bar>
<template #left>
<ai-select v-model="search.status" placeholder="状态" :selectList="dict.getDict('financingDemandStatus')"
@change="page.current=1,getTableData()"/>
<ai-search label="申请时间">
<el-date-picker size="small" placeholder="请选择" type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期" v-model="search.applyTime"
:default-time="['00:00:00','23:59:59']" value-format="yyyy-MM-dd"
@change="handleSearchTime"/>
</ai-search>
</template>
<template #right>
<el-input size="small" placeholder="联系人/身份证号/企业主体/贷款银行" v-model="search.name" clearable
@change="getTableData()"/>
<ai-download :instance="instance" url="appfinancingdemand/export" :params="search"
fileName="交易记录">
<el-button icon="iconfont iconExported">导出</el-button>
</ai-download>
</template>
</ai-search-bar>
<ai-table :tableData="tableData" :total="page.total" :current.sync="page.current" :size.sync="page.size"
@getList="getTableData" :col-configs="colConfigs" :dict="dict">
<el-table-column slot="options" label="状态" fixed="right" width="100" align="center">
<template slot-scope="{row}">
<span :class="`status${row.status}`">{{ dict.getLabel('financingDemandStatus', row.status) }}</span>
</template>
</el-table-column>
</ai-table>
</template>
</ai-list>
</section>
</template>
<script>
import {mapState} from "vuex";
export default {
name: "AppNeedSta",
label: "融资情况汇总",
props: {
instance: Function,
dict: Object,
permissions: Function
},
computed: {
...mapState(['user'])
},
data() {
return {
search: {status: "1"},
page: {current: 1, size: 10, total: 0},
tableData: [],
colConfigs: [
// {label: "产品名称", width: '200', prop: "enterpriseName"},
{label: "联系人", width: '150', prop: "name"},
{label: "联系方式", width: '150', prop: "phone"},
// {label: "身份证号", width: '180', prop: "idNumber"},
{label: "企业主体", width: '200', prop: "enterpriseName"},
{label: "意向金额(万)", width: '150', prop: "loanAmount"},
{label: "申请时间", width: '180', prop: "createTime"},
{label: "客户经理", width: '200', prop: "auditUserName"},
{label: "贷款银行", width: '200', prop: "organizationName"},
{label: "放款金额(万)", width: '200', prop: "auditAmount"},
// {label: "机构类型", width: '200', prop: "organizationType", dict:'financialOrganizationType'},
],
}
},
methods: {
getTableData() {
let status = this.search.status || 999
this.instance.post("/appfinancingdemand/list", null, {
params: {...this.page, ...this.search, status}
}).then(res => {
if (res?.data) {
this.tableData = res.data.records
this.page.total = res.data.total
}
})
},
handleSearchTime(v) {
this.page.current = 1
this.search.createTimeStart = v?.[0].substring(0, 10)
this.search.createTimeEnd = v?.[1].substring(0, 10)
this.getTableData()
}
},
created() {
this.dict.load('financingDemandStatus')
this.search.areaId = this.user.info.areaId
this.getTableData()
}
}
</script>
<style lang="scss" scoped>
.AppNeedSta {
height: 100%;
.status0 {
color: #f82;
}
.status1 {
color: #2EA222;
}
.status2 {
color: #f46;
}
}
</style>