<template> <div class="d-page d-flex flex-column"> <!-- 财务信息 --> <title-bar title="财务信息"> <van-icon slot="left" name="cross" size="20" /> </title-bar> <div class="top-search-box"> <van-dropdown-menu style="width: 80%" active-color="#1989fa"> <van-dropdown-item style="width: 20%" v-model="searchForm.stat_year" :options="yearArray" ></van-dropdown-item> <van-dropdown-item style="width: 20%" v-model="searchForm.stat_prd_style" :options="statPrdStyle" ></van-dropdown-item> <van-dropdown-item style="width: 20%" v-model="searchForm.stat_time" :options="mixArray" ></van-dropdown-item> <van-dropdown-item style="width: 20%" v-model="searchForm.stat_style" :options="statStyle" ></van-dropdown-item> </van-dropdown-menu> <van-button plain style="width: 15%;" color="#FF574C" class="fp-button2" @click="reset" >重置</van-button > <van-button style="width: 15%;" color="#FF574C" class="fp-button2" @click="searchBtnClick" >查询</van-button > </div> <div class="title-content d-page d-flex flex-column d-scorll"> <scroller-view v-if="nodata" v-calculate-height :pulldown="pulldown" :pullup="pullup" :refresh-data="getGrade" :load-data="onLoadData" > <div v-if="list.length != 0"> <div v-for="(item, index) in list" :key="index"> <div class="item-box" @click="onItemtap(item)"> <table-double-view :keyValue="keyValueDouble" :data="item" ></table-double-view> </div> </div> </div> <div v-else align="center"> <img src="@/assets/images/nodata.png" style="width: 40%; margin-top: 137px" /> </div> </scroller-view> </div> </div> </template> <script lang="ts"> import { Component, Watch, Vue } from "vue-property-decorator"; import TitleBar from "@/components/general/TitleBar.vue"; import { Tab, Tabs } from "vant"; import BalanceSheet from "@/components/customer-information/business-application-status/financial-information/BalanceSheet.vue"; import IncomeStatement from "@/components/customer-information/business-application-status/financial-information/IncomeStatement.vue"; import CashFlowStatement from "@/components/customer-information/business-application-status/financial-information/CashFlowStatement.vue"; import nettyApi from "@/constants/api/ms-netty/netty.api.ts"; import IF from "@/public/factory/InterFaceFactory"; import { NativeUI } from "@/public/ts/NativeUI"; import TableDoubleView from "@/public/TableDoubleView.vue"; import TableSingleView from "@/public/TableSingleView.vue"; import { DropdownMenu, DropdownItem } from "vant"; Vue.use(Tab); Vue.use(Tabs); Vue.use(DropdownMenu); Vue.use(DropdownItem); /** * @Description 财务信息 * @Author JiangTao * @Date 2021-11-10 下午 03:17 */ @Component({ name: "FinancialInformation", components: { TitleBar, BalanceSheet, IncomeStatement, CashFlowStatement, TableDoubleView, // DropdownMenu, // DropdownItem, }, }) export default class FinancialInformation extends Vue { pageTitle = ""; // 页面标题 list: any[] = []; flag = true; //下拉刷新,上拉加载 pageNo = 1; pullup = true; pulldown = true; nodata = true; keyValueDouble = { stat_prd_style_cnName: "报表类型", stat_prd: "报表期间", stat_style_cnName: "报表口径", state_flg_name: "状态", ccr_serno_name: "是否参与评级", lmt_serno_name: "是否参与非专项测算", }; yearArray: any[] = [ //报表时间 { text: "报表时间", value: "", }, ]; statPrdStyle = [ //报表周期类型 { text: "报表周期类型", value: "" }, { text: "月报", value: "1" }, { text: "季报", value: "2" }, { text: "半年报", value: "3" }, { text: "年报", value: "4" }, ]; mixArray: any[] = [{ text: "月份", value: "" }]; month = [ //月份 { text: "月份", value: "" }, { text: "1月", value: "01" }, { text: "2月", value: "02" }, { text: "3月", value: "03" }, { text: "4月", value: "04" }, { text: "5月", value: "05" }, { text: "6月", value: "06" }, { text: "7月", value: "07" }, { text: "8月", value: "08" }, { text: "9月", value: "09" }, { text: "10月", value: "10" }, { text: "11月", value: "11" }, { text: "12月", value: "12" }, ]; season = [ //季度 { text: "季度", value: "" }, { text: "第一季度", value: "03" }, { text: "第二季度", value: "06" }, { text: "第三季度", value: "09" }, { text: "第四季度", value: "12" }, ]; halfYear = [ { text: "年度", value: "" }, { text: "上半年", value: "06" }, { text: "下半年", value: "12" }, ]; statStyle = [ { text: "全部口径", value: "" }, { text: "本部报表", value: "1" }, { text: "合并报表", value: "2" }, { text: "未知", value: "9" }, ]; searchForm = { stat_prd: "", //报表时间 stat_year: "", //年 stat_prd_style: "", // 报表周期类型 stat_style: "", // 报表口径 stat_time: "", //月季度 }; @Watch("searchForm.stat_prd_style") onRouterChanged(val: any) { if (val == "1") { this.mixArray = this.month; } else if (val == "2") { this.mixArray = this.season; } else if (val == "3") { this.mixArray = this.halfYear; } else if (val == "4") { this.mixArray = []; } else if (val == "") { this.mixArray = this.month; } } onClick() { this.$router.go(-1); } /** * 查询财报列表信息 * pd * 2021年11月30日18:57:46 * */ getGrade(pageNo = 1) { this.pullup = true; this.nodata = true; this.pulldown = true; const searchForm = this.searchForm; const parm = { stat_prd: searchForm.stat_year + "" + searchForm.stat_time, //报表时间 stat_prd_style: searchForm.stat_prd_style, // 报表周期类型 stat_style: searchForm.stat_style, // 报表口径 cus_id: this.$store.getters.getCusInfo.cus_id, tc: nettyApi.TRADE_CODE.selectCWXX, maxLine: "10", targetPage: pageNo, }; NativeUI.showWaiting("正在查询"); return IF.transferDataInter(nettyApi.commonRq, parm).then((res: any) => { NativeUI.closeWaiting(); console.log(parm); if (res.rc == "1") { if (pageNo == 1) { this.list = res.cusFinInfoIColl; } else { this.list = this.list.concat(res.cusFinInfoIColl); } if (this.list.length != 0) { this.flag = false; } } else { NativeUI.toast(res.msg); } if (res.cusFinInfoIColl && res.cusFinInfoIColl.length < 10) { this.pullup = false; } if (this.list.length == 0) { this.nodata = false; this.pulldown = false; } }); } searchBtnClick() { this.searchForm.stat_prd = this.searchForm.stat_year + this.searchForm.stat_time; /*if ( this.searchForm.stat_prd_style != '' || this.searchForm.stat_style != '' || this.searchForm.stat_prd.length > 4 ) {*/ this.getGrade(); /*} else { NativeUI.toast('请选择正确参数'); }*/ } activated() { this.getGrade(); for (let i = 2000; i < 2051; i++) { let obj = { text: "", value: 0, }; obj.text = i + "年"; obj.value = i; this.yearArray.push(obj); } } onItemtap(item: any) { this.$router.push({ path: "/FinancialInfoDetail", query: item, }); } //下拉刷新 loadFinancialList() { this.getGrade(1); } //上拉加载数据 onLoadData() { this.pageNo = Math.ceil(this.list.length / 10) + 1; return this.getGrade(this.pageNo); } //重置数据 reset() { this.searchForm.stat_prd = ""; this.searchForm.stat_year = ""; this.searchForm.stat_prd_style = ""; this.searchForm.stat_style = ""; this.searchForm.stat_time = ""; } } </script> <style scoped> .title-content { width: 100%; margin-top: 2%; } ::v-deep .van-tabs__wrap { width: 97%; height: 40px; display: flex; justify-content: flex-end; } ::v-deep .van-tabs__nav--card { width: 30%; } ::v-deep .van-tabs__nav { height: 40px; } ::v-deep .van-tab__text { font-size: 18px; } ::v-deep .van-tabs__content { overflow-y: auto; } .item-box { width: 80%; margin: 20px auto; border: 1px solid; border-color: rgb(168, 154, 154); border-radius: 20px; height: 120px; box-shadow: 0 0 6px #d7d7d7; } .d-scorll { overflow-y: auto; overflow: scroll; height: calc(100vh - 120px); } ::v-deep .van-field__label { text-align: right; } .top-search-box { display: flex; align-items: center; justify-content: center; height: 55px; margin-top: 21px; } .fp-button2 { width: 72px !important; height: 32px; margin: 5px; } </style>