Commit 122f246a authored by yht15023815643's avatar yht15023815643

财务数据

parent 09d529f0
......@@ -44,6 +44,14 @@ export function projectTenderDataGroup(data) {
data: data
})
}
// 财务数据
export function financialData(data) {
return request({
url: '/enterprise/financialData',
method: 'post',
data: data
})
}
// 招标公告
export function bidNoticePage(data) {
......
......@@ -30,22 +30,24 @@
<span class="zbph-item-num">{{dataAll.bidAmount?parseFloat(dataAll.bidAmount.toFixed(6)):'--'}}</span></div>
</div>
<div class="zbph-account">招标动态
<div class="labels">
<div class="labels" v-if="dataAll.totalCount">
<div :class="{'on':datatype==3}" @click="getDT(3)">近7天</div>
<div :class="{'on':datatype==2}" @click="getDT(2)">近30天</div>
<div :class="{'on':datatype==1}" @click="getDT(1)">近5年</div>
</div>
</div>
<div id="myEcharts" style="height:250px; margin: 0 auto;"></div>
<div v-if="dataAll.totalCount" id="myEcharts" style="height:250px; margin: 0 auto;"></div>
<div class="bid-no-data" v-else>
<no-data />
</div>
</template>
<div class="bid-no-data" v-else>
<no-data />
</div>
</div>
<div class="bid-ywwl">
<div class="common-title">业务往来供应商TOP5</div>
<div class="table-item">
<el-table
v-if="tableData.length>0"
:data="tableData"
style="width: 100%"
>
......@@ -80,12 +82,10 @@
<span style="padding-right: 28px;">{{ scope.row.amount }}</span>
</template>
</el-table-column>
<template slot="empty">
<div style="padding: 30px 0">
<no-data />
</div>
</template>
</el-table>
<div class="bid-no-data" style="margin-top: 100px;" v-else>
<no-data />
</div>
</div>
</div>
</div>
......
......@@ -7,13 +7,13 @@
</el-tabs>
<div class="flex-box clue-box">
<div class="clue-echarts" v-if="viewData.length>0"><div id="echartsClue" style="width: 100%;height:300px; margin: 0 auto;"></div></div>
<div class="busc-no-data" v-else>
<no-data />
</div>
<div class="table-item">
<div class="table-item" v-if="viewData.length>0">
<el-table
v-if="viewData.length>0"
:data="viewData"
border
max-height="231"
style="width: 100%"
:default-sort = "{prop: 'date', order: 'descending'}"
>
......@@ -30,13 +30,11 @@
align="right"
label="占比(%)">
</el-table-column>
<template slot="empty">
<div style="padding: 30px 0">
<no-data />
</div>
</template>
</el-table>
</div>
<div class="busc-no-data" v-else>
<no-data />
</div>
</div>
<div class="flex-box clue-type">
<div class="flex-box clue-type-item" :class="!item.count?'disab':''" v-for="(item, index) in typeList" :key="index" @click="handleType(item, index)"><img :src="!item.count?item.dis_ico:item.ico">{{item.name}}</div>
......@@ -197,7 +195,7 @@ export default {
width: calc(50% - 8px);
}
.busc-no-data{
width: calc(50% - 8px);
width: 100%;
}
.table-item{
width: calc(50% - 8px);
......
<template>
<div class="app-container finance-container">
<div class="common-title">财务数据
<el-tooltip placement="top">
<div slot="content">营业收入数据优先取“营业总收入”<br/>营业总收入未披露时取“营业收入”</div>
<img style="width: 18px; height: 18px;margin-left:9px;" src="@/assets/images/detail/overview/zbph_question.png" >
</el-tooltip>
</div>
<el-tabs v-model="activeIndex" @tab-click="handleQuery(vals[activeIndex])" class="tabpane selfTab">
<el-tab-pane label="营业收入" name="0"></el-tab-pane>
<el-tab-pane label="净利润" name="1"></el-tab-pane>
<el-tab-pane label="总资产" name="2"></el-tab-pane>
<el-tab-pane label="净资产" name="3"></el-tab-pane>
</el-tabs>
<div class="flex-box finance-box">
<div class="finance-echarts" v-if="viewData.length>0"><div id="echartsFinance" style="width: 100%;height:300px; margin: 0 auto;"></div></div>
<div class="finance-no-data" v-else>
<no-data />
</div>
<div class="table-item" v-if="viewData.length>0">
<el-table
:data="viewData"
border
style="width: 100%"
:default-sort = "{prop: 'date', order: 'descending'}"
>
<el-table-column label="币种:人民币">
<el-table-column
prop="year"
align="left"
label="报告期(年度)"></el-table-column>
<el-table-column
prop="operatingIncome"
align="right"
label="营业收入(亿)">
</el-table-column>
<el-table-column
prop="netProfit"
align="right"
label="净利润(亿)">
</el-table-column>
<el-table-column
prop="totalAssets"
align="right"
label="总资产(亿)">
</el-table-column>
<el-table-column
prop="netAssets"
align="right"
label="净资产(亿)">
</el-table-column>
</el-table-column>
</el-table>
</div>
</div>
</div>
</template>
<script>
import {financialData} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts'
import NoData from '../../component/noData'
export default {
name: 'Finance',
props: ['companyId'],
components: {
NoData
},
data() {
return {
viewData:[],
activeIndex:0,
vals:['operatingIncome','netProfit','totalAssets','netAssets'],
names:['营业收入(亿)','净利润(亿)','总资产(亿)','净资产(亿)'],
}
},
created() {
this.handleQuery()
},
mounted() {
},
methods: {
async handleQuery(val){
let res = await financialData({cid: this.companyId})
if(res.code==200 && res.data){
this.viewData = res.data
// totalVal = data.map(item => item.value).reduce((prev, cur) => prev + cur)
// this.viewData = data.map(item => {
// let it = {name:item.year, value:item.value, percent:parseFloat(Number(Number(item.value)/Number(totalVal)*100).toFixed(2))}
// return it
// })
// console.log(this.viewData)
if(this.viewData.length>0){
this.$nextTick(() => {
this.getDT(val)
})
}
}
},
getDT(val="operatingIncome"){
let myChart = echarts.init(document.getElementById("echartsFinance"))
let barData = [],years = [],compareData = [];
this.viewData.map(item=>{
barData.push(item[val]);
compareData.push(item[val+'Compare']||'');
years.push(item.year)
})
let option = {
legend: {
show:true,
width: "100%",
left: 'center',
bottom:0,
textStyle: {
width: 120,
padding: [0, 26, 0, 0],
backgroundColor: "transparent",
},
itemWidth: 18,
itemHeight: 8,
data: [this.names[this.activeIndex], '同比(%)']
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
grid: {
left: '3%',
right: '4%',
bottom: '32',
containLabel: true
},
xAxis: [
{
type: 'category',
data: years,
axisTick: {
alignWithLabel: true,
show: false
}
}
],
yAxis: [
{
type: 'value',
min:0,
splitLine : { //网格线
lineStyle: {
type: 'dashed' //设置网格线类型 dotted:虚线 solid:实线
},
}
},
{
type: 'value',
// min:'dataMin',
// max:'dataMax',
// interval:compareData.length,
splitLine : { //网格线
show:false
},
axisLabel: {
formatter: '{value}%'
}
}
],
series: [
{
name: this.names[this.activeIndex],
type: 'bar',
barWidth: '20px',
data: barData,
itemStyle:{
normal:{
barBorderRadius:[4,4,0,0],
color:'#14C9C9'
},
}
},
{
name: '同比(%)',
symbolSize: 12, //标记的大小(折线图圆点大小)
label: {
color: "#666666",
},
lineStyle: {
color: "#0081FF",
width: 1
},
itemStyle: {
color: "#0081FF"
},
type: 'line',
// yAxisIndex: 1,
data: compareData
},
],
emphasis: {
itemStyle: {
// 高亮时点的颜色。
color: 'rgb(134,231,231)'
},
}
}
myChart.setOption(option)
},
},
}
</script>
<style lang="scss" scoped>
.finance-container{
margin: 0;
padding: 24px 16px;
background: #FFFFFF;
border-radius: 4px;
.selfTab{
margin: 24px 0 0 -12px;
::v-deep .el-tabs__nav-wrap::after{
display: none;
}
::v-deep .el-tabs__item{
height: 30px;
line-height: 30px;
padding: 0 12px;
}
}
.finance-box{
width: 100%;
justify-content: space-between;
margin: 8px 0 24px 0;
.finance-echarts{
width: calc(50% - 8px);
}
.finance-no-data{
width: 100%;
}
.table-item{
width: calc(50% - 8px);
}
}
}
</style>
......@@ -35,13 +35,8 @@
<span>{{scope.row.businessStatus || '--'}}</span>
</template>
</el-table-column>
<template slot="empty">
<div style="padding: 30px 0">
<no-data />
</div>
</template>
</el-table>
<el-table :data="shipData" border style="width: 100%" v-show="activeName=='second'">
<el-table v-if="shipData.length>0" :data="shipData" border style="width: 100%" v-show="activeName=='second'">
<el-table-column label="序号" width="55" align="left" fixed>
<template slot-scope="scope">{{ shipParams.pageNum * shipParams.pageSize - shipParams.pageSize + scope.$index + 1 }}</template>
</el-table-column>
......@@ -64,12 +59,8 @@
<el-table-column prop="investStartDate" label="成立日期"></el-table-column>
<el-table-column prop="stockPercentage" label="股权占比"></el-table-column>
<el-table-column prop="shouldCapi" label="认缴出资额(万元)"></el-table-column>
<template slot="empty">
<div style="padding: 30px 0">
<no-data />
</div>
</template>
</el-table>
<no-data v-if="activeName=='second'&&shipData.length<1"/>
<el-table :data="affiliatesData" border style="width: 100%" v-show="activeName=='third'">
<el-table-column label="序号" width="55" align="left" >
<template slot-scope="scope">{{ affiliatesParams.pageNum * affiliatesParams.pageSize - affiliatesParams.pageSize + scope.$index + 1 }}</template>
......
<template>
<div class="app-container clue-container">
<div class="common-title">风险概览</div>
<div class="flex-box clue-box">
<div class="flex-box clue-box" v-if="count>0">
<div class="clue-echarts"><div id="echartsRisk" style="width: 100%;height:300px; margin: 0 auto;"></div></div>
<div class="table-item">
<el-table
......@@ -28,14 +28,10 @@
<span>{{ scope.row.bl }}</span>
</template>
</el-table-column>
<template slot="empty">
<div style="padding: 30px 0">
<no-data />
</div>
</template>
</el-table>
</div>
</div>
<no-data v-else/>
</div>
</template>
......@@ -123,7 +119,8 @@ export default {
tz:'',
bl:''
},
]
],
count:0,
}
},
created() {
......@@ -145,6 +142,11 @@ export default {
this.viewData.sort((a, b) => {
return a.value < b.value ? 1 : -1;
})
for(var i in this.viewData){
if(this.viewData[i].value>0){
this.count = this.viewData[i].value
}
}
this.getDT()
},
getDT(){
......
......@@ -3,6 +3,7 @@
<div class="common-title">高管</div>
<div class="table-item">
<el-table
v-if="tableData.length>0"
:data="tableData"
border
style="width: 100%"
......@@ -26,12 +27,8 @@
<el-table-column
prop="userJobs"
label="职务"></el-table-column>
<template slot="empty">
<div style="padding: 30px 0">
<no-data />
</div>
</template>
</el-table>
<no-data v-else/>
</div>
</div>
</template>
......
......@@ -4,6 +4,7 @@
<div class="view-content"><Operations :companyId="companyId" :financial="financial" /></div><!-- 公司经营 -->
<div class="view-content"><Bidding :companyId="companyId" /></div><!--招标偏好、业务往来-->
<div class="view-content"><Busclue :companyId="companyId" :statistic="statistic" /></div><!--商机线索-->
<div class="view-content"><Finance :companyId="companyId" /></div><!--财务数据-->
<div class="view-content"><Relationship :companyId="companyId" :financial="financial" /></div><!--关系企业-->
<div class="view-content"><Senior :companyId="companyId" /></div><!--高管-->
<div class="view-content"><Risk :companyId="companyId" :statistic="statistic" /></div><!--风险概览-->
......@@ -18,6 +19,7 @@ import Infoheader from "./component/infoheader"
import Operations from "./component/operations"
import Bidding from "./component/bidding"
import Busclue from './component/busclue'
import Finance from './component/finance'
import Relationship from './component/relationship'
import Senior from './component/senior'
import Risk from './component/risk'
......@@ -33,6 +35,7 @@ export default {
Relationship,
Senior,
Risk,
Finance,
Tender
},
data() {
......
......@@ -2626,6 +2626,7 @@
this.fieldOptions[i].status = false;
}
this.fieldText = this.fieldOptions[index].value;
this.orderText = this.fieldOptions[index].order;
this.fieldOptions[index].status = true;
this.search();
},
......
......@@ -202,7 +202,7 @@
<span class="list-label list-label-zb" v-if="item.domicile">
{{item.domicile}}
</span>
<span class="list-label list-label-zb" v-if="item.tenderingManner&&item.tenderingManner!='其他'&&item.tenderingManner!='空白'">
<span class="list-label list-label-zb" v-if="item.tenderingManner&&item.tenderingManner!='其他'&&item.tenderingManner!='空白'&&item.tenderingManner!='未知'">
{{ item.tenderingManner}}
</span>
<span class="list-label list-label-lx" v-if="item.projectType&&item.projectType!='其他'&&item.projectType!='空白'">
......
......@@ -13,7 +13,7 @@
<div class="list">
<div class="item color1">
<div class="item-left">
<h4 v-if="textList.projectTotalInvestment">{{textList.projectTotalInvestment}}<span></span></h4>
<h4 v-if="textList.projectTotalInvestment">{{textList.projectTotalInvestment}}<span>亿</span></h4>
<h4 v-else>
--
</h4>
......@@ -23,7 +23,7 @@
</div>
<div class="item color2">
<div class="item-left">
<h4 v-if="textList.projectCapital">{{textList.projectCapital}}<span></span></h4>
<h4 v-if="textList.projectCapital">{{textList.projectCapital}}<span>亿</span></h4>
<h4 v-else>
--
</h4>
......@@ -33,7 +33,7 @@
</div>
<div class="item color3">
<div class="item-left">
<h4 v-if="textList.econData_013">{{textList.econData_013}}<span></span></h4>
<h4 v-if="textList.econData_013">{{textList.econData_013}}<span>亿</span></h4>
<h4 v-else>
--
</h4>
......@@ -43,7 +43,7 @@
</div>
<div class="item color4">
<div class="item-left">
<h4 v-if="textList.specialBondCapital">{{textList.specialBondCapital}}<span></span></h4>
<h4 v-if="textList.specialBondCapital">{{textList.specialBondCapital}}<span>亿</span></h4>
<h4 v-else>
--
</h4>
......@@ -55,7 +55,7 @@
<div class="list">
<div class="item color4">
<div class="item-left">
<h4 v-if="textList.otherFunds">{{textList.otherFunds}}<span></span></h4>
<h4 v-if="textList.otherFunds">{{textList.otherFunds}}<span>亿</span></h4>
<h4 v-else>
--
</h4>
......@@ -65,7 +65,7 @@
</div>
<div class="item color3">
<div class="item-left">
<h4 v-if="textList.specialBondIssue_number">{{textList.specialBondIssue_number}}<span>元/ 10只</span></h4>
<h4 v-if="textList.specialBondIssue_number">{{textList.specialBondIssue_number}}<span>亿元/ 10只</span></h4>
<h4 v-else>
--
</h4>
......@@ -75,7 +75,7 @@
</div>
<div class="item color4">
<div class="item-left">
<h4 v-if="textList.otherFinancing">{{textList.otherFinancing}}<span></span></h4>
<h4 v-if="textList.otherFinancing">{{textList.otherFinancing}}<span>亿</span></h4>
<h4 v-else>
--
</h4>
......@@ -85,7 +85,7 @@
</div>
<div class="item color2">
<div class="item-left">
<h4 v-if="textList.govSupportFunds">{{textList.govSupportFunds}}<span></span></h4>
<h4 v-if="textList.govSupportFunds">{{textList.govSupportFunds}}<span>亿</span></h4>
<h4 v-else>
--
</h4>
......@@ -126,7 +126,7 @@
</p>
<p>
<label class="label">项目预测总收益</label>
<span v-if="textList.projectForecastTotalRevenue">{{textList.projectForecastTotalRevenue}}</span>
<span v-if="textList.projectForecastTotalRevenue">{{textList.projectForecastTotalRevenue}}亿</span>
<span v-else>--</span>
</p>
</div>
......@@ -159,7 +159,7 @@
</el-table-column>
<el-table-column prop="tenderDate" label="招标日期" width="220" />
<el-table-column prop="actualBondIssueScale" label="专项债规模(亿)" width="260" />
<el-table-column prop="isUsedProjectScale" label="用于项目规模(万元)" width="260" />
<el-table-column prop="isUsedProjectScale" label="用于项目规模(亿)" width="260" />
<el-table-column label="是否资本金" width="200">
<template slot-scope="scope">
......
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