Commit e831a304 authored by caixingbing's avatar caixingbing

*

parent 1b27f490
......@@ -49,7 +49,13 @@ function changePath(that, pathName){
}
}
//保留小数N位
function saveFixed(field, num=2){
return parseFloat(field.toFixed(num))
}
export {
encodeStr,
changePath
changePath,
saveFixed
}
......@@ -45,8 +45,8 @@
<!-- 输入框 -->
<template v-if="form.type==3">
<div class="cooperate-name">
<el-input v-model="form.value" :placeholder="form.placeholder"></el-input>
<span @click="changeSelect">搜索</span>
<el-input @focus="clickFocus('detailFocus'+i)" @blur="clickFocus('detailFocus'+i)" v-model="form.value" :placeholder="form.placeholder"></el-input>
<span :id="'detailFocus'+i" @click="changeSelect">搜索</span>
</div>
</template>
<!-- 多选 -->
......@@ -117,6 +117,9 @@ export default {
methods: {
changeSelect(){
this.$emit('handle-search')
},
clickFocus(e){
document.getElementById(e).classList.toggle('span-ba')
}
}
}
......@@ -183,13 +186,18 @@ export default {
border-left: 0;
cursor: pointer;
}
.span-ba{
color: #ffffff;
background: #0081FF;
border: 1px solid #0081FF;
}
::v-deep .el-input{
flex: 1;
}
::v-deep .el-input__inner {
border-right: 0;
border-radius: 2px 0 2px 0;
width: 259px;
width: 180px;
}
}
.fromTime{
......@@ -208,6 +216,22 @@ export default {
::v-deep .form-content-width{
width: 170px;
}
::v-deep .selectTag{
.el-select__tags{
.el-tag{
&:first-child{
width: 90px;
}
}
}
}
::v-deep .el-select__tags{
.el-tag{
&:first-child{
width: 100%;
}
}
}
}
}
</style>
<template>
<div class="no-data">
<div class="no-data-box">
<img :src="noData" alt="暂时没有找到相关数据" />
<span>暂时没有找到相关数据</span>
</div>
</div>
</template>
<script>
export default {
name: "NoData",
props: {
},
data() {
return {
noData: require("@/assets/images/detail/noData.png")
}
},
methods:{
}
}
</script>
<style lang="scss" scoped>
.no-data {
font-size: 14px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
color: #999999;
text-shadow: 0px 0px 10px rgba(0, 37, 106, 0.10000000149011612);
width: 100%;
height: 100%;
min-height: 140px;
display: flex;
justify-content: center;
align-items: center;
background: #ffffff;
border-radius: 0px 0px 0px 0px;
opacity: 1;
border: 1px solid #eeeeee;
.no-data-box {
display: flex;
flex-direction: column;
align-items: center;
img {
width: 54px;
height: 69px;
margin-bottom: 16px;
}
}
}
</style>
......@@ -21,11 +21,11 @@
@sort-change="sortChange"
>
<template slot="agency" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.agencyId&&scope.row.agency" v-html="scope.row.agency"></router-link>
<router-link :to="`/enterprise/${encodeStr(scope.row.agencyId)}`" tag="a" class="a-link" v-if="scope.row.agencyId&&scope.row.agency" v-html="scope.row.agency"></router-link>
<div v-else v-html="scope.row.agency || '--'"></div>
</template>
<template slot="projectInfo" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.projectInfo.bid&&scope.row.projectInfo.dealTitle" v-html="scope.row.projectInfo.dealTitle"></router-link>
<router-link :to="`/radar/Tender/details/${scope.row.projectInfo.bid}`" tag="a" class="a-link" v-if="scope.row.projectInfo.bid&&scope.row.projectInfo.dealTitle" v-html="scope.row.projectInfo.dealTitle"></router-link>
<div v-else v-html="scope.row.projectInfo.dealTitle || '--'"></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template>
......
......@@ -19,7 +19,7 @@
@handle-current-change="handleCurrentChange"
>
<template slot="name" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.name" v-html="scope.row.name"></router-link>
<router-link :to="`/radar/BidRecord/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.name" v-html="scope.row.name"></router-link>
<div v-else v-html="scope.row.name || '--'"></div>
</template>
<template slot="source" slot-scope="scope">
......@@ -80,9 +80,11 @@ export default {
this.tableDataTotal = res.total
},
handlePic(url){
if(url){
window.open(url, "_blank")
}
}
}
}
</script>
<style lang="scss" scoped>
......
......@@ -27,7 +27,7 @@
<template slot="dealTitle" slot-scope="scope">
<div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.fileUrlL" @click="handlePic(scope.row.fileUrlL)"/>
<router-link to="" tag="a" class="a-link" v-if="scope.row.bid&&scope.row.dealTitle" v-html="scope.row.dealTitle"></router-link>
<router-link :to="`/radar/Tender/details/${scope.row.bid}`" tag="a" class="a-link" v-if="scope.row.bid&&scope.row.dealTitle" v-html="scope.row.dealTitle"></router-link>
<span v-else v-html="scope.row.dealTitle || '--'"></span>
</div>
</template>
......@@ -45,20 +45,10 @@ import {bidCooperatePage} from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm"
export default {
props: {
'data': {
type: Object,
default: () => {
return {}
}
},
'title': {
type: String,
default: () => {
return ''
}
}
},
props: [
'data',
'title'
],
components: {
HeadDetailForm
},
......@@ -106,7 +96,9 @@ export default {
this.amountTotal = res.totalAmount
},
handlePic(url){
if(url){
window.open(url, "_blank")
}
},
cancel() {
this.$emit('cancel')
......
......@@ -27,7 +27,8 @@
<template slot="projectAllName" slot-scope="scope">
<div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.sourceUrl" @click="handlePic(scope.row.sourceUrl)"/>
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link>
<div class="a-link" @click="handlePic(scope.row.sourceUrl)" v-if="scope.row.sourceUrl&&scope.row.projectAllName" v-html="scope.row.projectAllName" style="cursor: pointer"></div>
<!-- <router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link>-->
<span v-else v-html="scope.row.projectAllName || '--'"></span>
</div>
</template>
......@@ -45,26 +46,11 @@ import {clientProjectPage} from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm"
export default {
props: {
'data': {
type: Object,
default: () => {
return {}
}
},
'company-id': {
type: Number,
default: () => {
return 0
}
},
'title': {
type: String,
default: () => {
return ''
}
}
},
props: [
'data',
'company-id',
'title'
],
components: {
HeadDetailForm
},
......@@ -114,7 +100,9 @@ export default {
this.amountTotal = res.totalAmount
},
handlePic(url){
if(url){
window.open(url, "_blank")
}
},
cancel() {
this.$emit('cancel')
......
......@@ -27,7 +27,8 @@
<template slot="projectAllName" slot-scope="scope">
<div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.sourceUrl" @click="handlePic(scope.row.sourceUrl)"/>
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link>
<div class="a-link" @click="handlePic(scope.row.sourceUrl)" v-if="scope.row.sourceUrl&&scope.row.projectAllName" v-html="scope.row.projectAllName" style="cursor: pointer"></div>
<!-- <router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link>-->
<span v-else v-html="scope.row.projectAllName || '--'"></span>
</div>
</template>
......@@ -45,26 +46,11 @@ import { supplierProjectPage } from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm"
export default {
props: {
'data': {
type: Object,
default: () => {
return {}
}
},
'company-id': {
type: Number,
default: () => {
return 0
}
},
'title': {
type: String,
default: () => {
return ''
}
}
},
props: [
'data',
'company-id',
'title'
],
components: {
HeadDetailForm
},
......@@ -114,7 +100,9 @@ export default {
this.amountTotal = res.totalAmount
},
handlePic(url){
if(url){
window.open(url, "_blank")
}
},
cancel() {
this.$emit('cancel')
......
......@@ -21,12 +21,13 @@
@sort-change="sortChange"
>
<template slot="companyName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<router-link :to="`/enterprise/${encodeStr(scope.row.projectUnitId)}`" tag="a" class="a-link" v-if="scope.row.projectUnitId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<div v-else v-html="scope.row.companyName || '--'"></div>
</template>
<template slot="projectAllName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.projectId&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link>
<div v-else v-html="scope.row.projectAllName || '--'"></div>
<div class="a-link" @click="handleDetail(scope.row.projectInfo)" v-if="scope.row.projectInfo&&scope.row.projectInfo.sourceUrl&&scope.row.projectInfo.projectAllName" v-html="scope.row.projectInfo.projectAllName" style="cursor: pointer"></div>
<!-- <router-link to="" tag="a" class="a-link" v-if="scope.row.projectInfo.projectId&&scope.row.projectInfo.projectAllName" v-html="scope.row.projectInfo.projectAllName"></router-link>-->
<div v-else v-html="scope.row.projectInfo&&scope.row.projectInfo.projectAllName || '--'"></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template>
</tables>
......@@ -95,6 +96,11 @@ export default {
handleClick(e, data) {
this.rowData = data
this.isDetails = true
},
handleDetail(row){
if(row.sourceUrl){
window.open(row.sourceUrl, "_blank")
}
}
}
}
......
......@@ -21,11 +21,12 @@
@sort-change="sortChange"
>
<template slot="projectAllName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName " v-html="scope.row.projectAllName"></router-link>
<div class="a-link" @click="handleDetail(scope.row)" v-if="scope.row.sourceUrl&&scope.row.projectAllName" v-html="scope.row.projectAllName" style="cursor: pointer"></div>
<!-- <router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectAllName " v-html="scope.row.projectAllName"></router-link>-->
<div v-else v-html="scope.row.projectAllName || '--'"></div>
</template>
<template slot="companyName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName">{{ scope.row.companyName }}</router-link>
<router-link :to="`/enterprise/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName">{{ scope.row.companyName }}</router-link>
<div v-else>{{ scope.row.companyName || '--' }}</div>
</template>
</tables>
......@@ -101,6 +102,11 @@ export default {
this.tableData = res.rows
}
this.tableDataTotal = res.total
},
handleDetail(row){
if(row.sourceUrl){
window.open(row.sourceUrl, "_blank")
}
}
}
}
......
......@@ -21,12 +21,13 @@
@sort-change="sortChange"
>
<template slot="companyName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<router-link :to="`/enterprise/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<div v-else v-html="scope.row.companyName || '--'"></div>
</template>
<template slot="projectAllName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.projectId&&scope.row.projectAllName" v-html="scope.row.projectAllName"></router-link>
<div v-else v-html="scope.row.projectAllName || '--'"></div>
<div class="a-link" @click="handleDetail(scope.row.projectInfo)" v-if="scope.row.projectInfo&&scope.row.projectInfo.sourceUrl&&scope.row.projectInfo.projectAllName" v-html="scope.row.projectInfo.projectAllName" style="cursor: pointer"></div>
<!-- <router-link to="" tag="a" class="a-link" v-if="scope.row.projectInfo.projectId&&scope.row.projectInfo.projectAllName" v-html="scope.row.projectInfo.projectAllName"></router-link>-->
<div v-else v-html="scope.row.projectInfo&&scope.row.projectInfo.projectAllName || '--'"></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template>
</tables>
......@@ -95,6 +96,11 @@ export default {
handleClick(e, data) {
this.rowData = data
this.isDetails = true
},
handleDetail(row){
if(row.sourceUrl){
window.open(row.sourceUrl, "_blank")
}
}
}
}
......
......@@ -3,10 +3,10 @@
<div class="financial-header">
<div class="common-title">财务简析</div>
<div class="flex-box header-box">
<div class="header-item">总资产<div class="header-item-amount" v-if="financialDetail.totalAssets"><span>{{financialDetail.totalAssets || ''}}</span>亿元</div><img src="@/assets/images/detail/financial/financial_header01_ico.png"></div>
<div class="header-item">净资产<div class="header-item-amount" v-if="financialDetail.belongNetAssets"><span>{{financialDetail.belongNetAssets || ''}}</span>亿元</div><img src="@/assets/images/detail/financial/financial_header02_ico.png"></div>
<div class="header-item">营业收入<div class="header-item-amount" v-if="financialDetail.operatingIncome"><span>{{financialDetail.operatingIncome || ''}}</span>亿元</div><img src="@/assets/images/detail/financial/financial_header03_ico.png"></div>
<div class="header-item">授信余额<div class="header-item-amount" v-if="financialDetail.creditBalance"><span>{{financialDetail.creditBalance || ''}}</span>亿元</div><img src="@/assets/images/detail/financial/financial_header04_ico.png"></div>
<div class="header-item">总资产<div class="header-item-amount"><template v-if="financialDetail.totalAssets"><span>{{saveFixed(financialDetail.totalAssets)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header01_ico.png"></div>
<div class="header-item">净资产<div class="header-item-amount"><template v-if="financialDetail.belongNetAssets"><span>{{saveFixed(financialDetail.belongNetAssets)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header02_ico.png"></div>
<div class="header-item">营业收入<div class="header-item-amount"><template v-if="financialDetail.operatingIncome"><span>{{saveFixed(financialDetail.operatingIncome)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header03_ico.png"></div>
<div class="header-item">授信余额<div class="header-item-amount"><template v-if="financialDetail.creditBalance"><span>{{saveFixed(financialDetail.creditBalance)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header04_ico.png"></div>
</div>
</div>
<div class="financial-zcqk">
......@@ -14,27 +14,39 @@
<ul class="zcqk-list">
<li v-for="(item, index) in zcqkList" :key="index" :style="zcqkList.length==1?'border-right: 0;':''">
<div class="zcqk-list-box" :style="(parity(zcqkList) && index==zcqkList.length-2) || (index == zcqkList.length-1)?'border-bottom: 0':''">
<div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{item.amount}}</i>亿元</span></div>
<div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{saveFixed(item.amount)}}</i>{{item.unit}}</span><span v-else>--</span></div>
<div class="zcqk-list-intro">{{item.intro}}</div>
</div>
</li>
</ul>
</div>
<div class="financial-ylnl">
<div class="common-title">盈利能力</div>
<ul class="flex-box ylnl-list">
<li v-for="(item, index) in ylnlList" :key="index" :style="index===0?'border-left: 0;':''">
<div class="ylnl-amount"><template v-if="item.amount"><span>{{saveFixed(item.amount)}}</span>{{item.unit}}</template><template v-else>--</template></div>
<div class="ylnl-title">{{item.name}}</div>
</li>
</ul>
</div>
<div class="financial-zwqk">
<div class="common-title">负债情况及偿债能力</div>
<div class="flex-box zwqk-box">
<div class="zwqk-info">
<div class="zwqk-title">总负债</div>
<div class="zwqk-amount"><span>{{financialDetail.totalLiabilities || '0'}}</span>亿元</div>
<div class="zwqk-pro">资产负债率 {{financialDetail.tdr+'%' || '--'}}</div>
<div class="zwqk-amount"><span>{{financialDetail.totalLiabilities?saveFixed(financialDetail.totalLiabilities):'0'}}</span>亿元</div>
<div class="zwqk-pro">资产负债率 {{financialDetail.tdr?saveFixed(financialDetail.tdr)+'%':'--'}}</div>
<img src="@/assets/images/detail/financial/zwqk_bg_ico.png">
</div>
<div id="myEcharts" style="width: 444px;height:250px; margin: 0 auto;"></div>
<div id="myEcharts" style="width: 444px;height:250px; margin: 0 auto;" v-if="echartsData.length>0"></div>
<div class="fin-no-data" v-else>
<no-data />
</div>
</div>
<div class="flex-box zwqk-list">
<div class="list-item" v-for="(item, index) in zwqkList" :key="index">
<div class="flex-box list-item-all">{{item.name}}<img :src="item.ico"></div>
<div class="list-item-amount"><template v-if="item.amount"><span>{{item.amount}}</span>{{item.unit}}</template><template v-else>--</template></div>
<div class="list-item-amount"><template v-if="item.amount"><span>{{saveFixed(item.amount)}}</span>{{item.unit}}</template><template v-else>--</template></div>
<div class="list-item-pro">{{item.intro}}<span>{{item.introPro || '--'}}</span></div>
</div>
</div>
......@@ -44,7 +56,7 @@
<ul class="zcqk-list">
<li v-for="(item, index) in zjqkList" :key="index" :style="zjqkList.length==1?'border-right: 0;':''">
<div class="zcqk-list-box" :style="(parity(zjqkList) && index==zjqkList.length-2) || (index == zjqkList.length-1)?'border-bottom: 0':''">
<div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{item.amount}}</i>{{item.unit}}</span></div>
<div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{saveFixed(item.amount)}}</i>{{item.unit}}</span></div>
<div class="zcqk-list-intro">{{item.intro}}</div>
</div>
</li>
......@@ -54,13 +66,19 @@
</template>
<script>
import {saveFixed} from "@/assets/js/common"
import { financial } from '@/api/detail/party-a/financial'
import * as echarts from 'echarts'
import NoData from '../component/noData'
export default {
name: 'Financial',
props: ['companyId'],
components: {
NoData
},
data() {
return {
saveFixed,
financialDetail: {},
// 资产情况
zcqkList: [
......@@ -82,6 +100,12 @@ export default {
{ name: '对外担保金额', ico: require('@/assets/images/detail/financial/zwqk_ico4.png'), intro: '对外担保比例', introPro: '', amount: '', unit: '亿元'}
],
echartsData: [],
ylnlList: [
{ name: '营业收入', amount: '', unit: '亿元'},
{ name: '净资产收益率', amount: '', unit: '%'},
{ name: '归母净利润', amount: '', unit: '亿元'},
{ name: '公益性&准公益性主营占比', amount: '', unit: '%'},
],
// 资金情况
zjqkList: [
{ name: '经营现金流', ico: require('@/assets/images/detail/financial/zjqk_ico1.png'), intro: '该指标越高,说明经营活动的造血能力越强', amount: '', unit: '亿元'},
......@@ -117,7 +141,7 @@ export default {
this.tableLoading = true
let res = await financial({cid:this.companyId})
this.tableLoading = false
if(res.code==200){
if(res.code==200 && res.data){
this.financialDetail = res.data
//资产情况
let { totalAssets, belongNetAssets, monetaryFunds, accountsReceivable, landAssets, otherReceivable, restrictedAssets, receivableFromGovRatio, govSubsidy } = this.financialDetail
......@@ -131,7 +155,13 @@ export default {
let zwPercentObj = { econData_006, econData_005, nonStandardRatio, guaranteeRatio }
this.zwqkList.forEach((item, index) => {
item.amount = zwAmountObj[Object.keys(zwAmountObj)[index]]
item.introPro = zwPercentObj[Object.keys(zwPercentObj)[index]]?zwPercentObj[Object.keys(zwPercentObj)[index]]+'%':''
item.introPro = zwPercentObj[Object.keys(zwPercentObj)[index]]?saveFixed(zwPercentObj[Object.keys(zwPercentObj)[index]])+'%':''
})
//盈利能力
let { operatingIncome, roe, belongNetProfit, econData_001 } = this.financialDetail
let ylnlObj = { operatingIncome, roe, belongNetProfit, econData_001 }
this.ylnlList.forEach((item, index) => {
item.amount = ylnlObj[Object.keys(ylnlObj)[index]]
})
//资金情况
let { netOperatingCashFlow, cashRatio, netFinancingCashFlow, cashFlowRatio, netInvestmentCashFlow, cashDebtRatio } = this.financialDetail
......@@ -285,7 +315,7 @@ export default {
img{
width: 84px;
height: 115px;
right: -10px;
right: -4px;
bottom: -18px;
}
}
......@@ -367,6 +397,33 @@ export default {
}
}
}
.financial-ylnl{
background: #FFFFFF;
padding: 24px 16px;
margin-top: 12px;
border-radius: 4px;
.ylnl-list{
justify-content: space-between;
li{
color: #232323;
width: 25%;
height: 72px;
padding-top: 18px;
font-size: 16px;
text-align: center;
border-left: 1px solid #EEEEEE;
.ylnl-amount{
font-size: 14px;
font-weight: bold;
padding-bottom: 4px;
span{
font-size: 18px;
margin-right: 4px;
}
}
}
}
}
.financial-zwqk{
background: #FFFFFF;
padding: 24px 16px;
......@@ -376,7 +433,8 @@ export default {
padding-top: 20px;
justify-content: normal;
.zwqk-info{
width: 50%;
width: calc(50% - 11px);
margin-right: 11px;
height: 248px;
padding: 54px 24px 10px 24px;
color: #4D4C4B;
......@@ -421,6 +479,11 @@ export default {
margin-top: 33px;
}
}
.fin-no-data{
width: calc(50% - 11px);
height: 250px;
margin-left: 11px;
}
}
.zwqk-list{
justify-content: space-between;
......@@ -435,6 +498,10 @@ export default {
.list-item-all{
align-items: normal;
justify-content: space-between;
img{
width: 30px;
height: 30px;
}
}
.list-item-amount{
height: 39px;
......
import {encodeStr} from "@/assets/js/common"
import HeadForm from "../component/HeadForm"
import Tables from "../component/Tables"
export default {
......@@ -7,7 +8,7 @@ export default {
},
data() {
return {
encodeStr
}
},
mounted() {
......
......@@ -21,7 +21,7 @@
@sort-change="sortChange"
>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.bid&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<router-link :to="`/radar/Tender/details/${scope.row.bid}`" tag="a" class="a-link" v-if="scope.row.bid&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
<template slot="province" slot-scope="scope">
......
......@@ -20,7 +20,7 @@
@sort-change="sortChange"
>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<router-link :to="`/radar/Bidding/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
<template slot="province" slot-scope="scope">
......
......@@ -21,7 +21,7 @@
@sort-change="sortChange"
>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<router-link :to="`/radar/debtProject/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
</tables>
......
......@@ -21,7 +21,7 @@
@sort-change="sortChange"
>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<router-link :to="`/radar/Land/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
</tables>
......
......@@ -21,7 +21,7 @@
@sort-change="sortChange"
>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<router-link :to="`/radar/Establishment/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
<template slot="isProjcet" slot-scope="scope">
......
......@@ -19,15 +19,15 @@
@handle-current-change="handleCurrentChange"
>
<template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<router-link :to="`/radar/bxprozbgg/details/${scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.projectName " v-html="scope.row.projectName"></router-link>
<div v-else v-html="scope.row.projectName || '--'"></div>
</template>
<template slot="tenderee" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.tendereeId&&scope.row.tenderee " v-html="scope.row.tenderee"></router-link>
<router-link :to="`/enterprise/${encodeStr(scope.row.tendereeId)}`" tag="a" class="a-link" v-if="scope.row.tendereeId&&scope.row.tenderee " v-html="scope.row.tenderee"></router-link>
<div v-else v-html="scope.row.tenderee || '--'"></div>
</template>
<template slot="agency" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.agencyId&&scope.row.agency " v-html="scope.row.agency"></router-link>
<router-link :to="`/enterprise/${encodeStr(scope.row.agencyId)}`" tag="a" class="a-link" v-if="scope.row.agencyId&&scope.row.agency " v-html="scope.row.agency"></router-link>
<div v-else v-html="scope.row.agency || '--'"></div>
</template>
<template slot="province" slot-scope="scope">
......
......@@ -19,7 +19,7 @@
@handle-current-change="handleCurrentChange"
>
<template slot="name" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.name " v-html="scope.row.name"></router-link>
<router-link :to="`/enterprise/${encodeStr(scope.row.id)}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.name " v-html="scope.row.name"></router-link>
<div v-else v-html="scope.row.name || '--'"></div>
<div class="tags" v-if="scope.row.status || scope.row.biddingAnnouncement">
<span class="tag style1" v-if="scope.row.status">{{scope.row.status}}</span>
......
......@@ -2,13 +2,14 @@
<div class="flex-box app-container part-container">
<div class="bid-zbph">
<div class="common-title">招标偏好</div>
<template v-if="dataAll.totalCount||dataAll.lastYearCount||dataAll.bidAmount||this.dtdata.length>0">
<div class="flex-box zbph-item">
<div>历史招标总数
<el-popover
placement="top-start"
trigger="hover"
content="统计企业历年来公开招标总数">
<img src="@/assets/images/detail/overview/zbph_question.png" slot="reference">
<img src="@/assets/images/detail/overview/zbph_question.png" style="width: 12px; height: 12px;" slot="reference">
</el-popover>
<span class="zbph-item-num">{{dataAll.totalCount || '--'}}</span></div>
<div>近一年招标总数
......@@ -16,7 +17,7 @@
placement="top-start"
trigger="hover"
content="统计企业近一年公开招标总数">
<img src="@/assets/images/detail/overview/zbph_question.png" slot="reference">
<img src="@/assets/images/detail/overview/zbph_question.png" style="width: 12px; height: 12px;" slot="reference">
</el-popover>
<span class="zbph-item-num">{{dataAll.lastYearCount || '--'}}</span></div>
<div>历史招标总额(万元)
......@@ -24,7 +25,7 @@
placement="top-start"
trigger="hover"
content="统计企业历年来公开招标项目总金额">
<img src="@/assets/images/detail/overview/zbph_question.png" slot="reference">
<img src="@/assets/images/detail/overview/zbph_question.png" style="width: 12px; height: 12px;" slot="reference">
</el-popover>
<span class="zbph-item-num">{{dataAll.bidAmount?parseFloat(dataAll.bidAmount.toFixed(6)):'--'}}</span></div>
</div>
......@@ -36,6 +37,10 @@
</div>
</div>
<div id="myEcharts" style="width: 100%;height:250px; margin: 0 auto;"></div>
</template>
<div class="bid-no-data" v-else>
<no-data />
</div>
</div>
<div class="bid-ywwl">
<div class="common-title">业务往来供应商TOP5</div>
......@@ -79,9 +84,13 @@
import {encodeStr} from "@/assets/js/common"
import {bidDataGroup, supplierPage} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts'
import NoData from '../../component/noData'
export default {
name: 'Bidding',
props: ['companyId'],
components: {
NoData
},
data() {
return {
encodeStr,
......@@ -111,7 +120,11 @@ export default {
this.dttime=res.data.groupCount.map(item=>{
return item.span
})
if(this.dtdata.length>0&&this.dttime.length>0){
this.$nextTick(() => {
this.initDT(this.dtdata,this.dttime)
})
}
}
},
async handleSupplier() {
......@@ -228,6 +241,9 @@ export default {
}
}
}
.bid-no-data{
margin-top: 16px;
}
.zbph-account{
position: relative;
font-weight: bold;
......@@ -274,6 +290,8 @@ export default {
.table-item{
margin-top:15px;
.ywwl-ico{
width: 36px;
height: 36px;
margin-left: -6px;
}
::v-deep .el-table .el-table__body-wrapper tr:nth-child(2n){
......
......@@ -6,7 +6,10 @@
<el-tab-pane label="按项目" name="1"></el-tab-pane>
</el-tabs>
<div class="flex-box clue-box">
<div class="clue-echarts"><div id="echartsClue" style="width: 100%;height:300px; margin: 0 auto;"></div></div>
<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">
<el-table
:data="viewData"
......@@ -38,9 +41,13 @@
import {projectTenderDataGroup} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts'
import {changePath} from "@/assets/js/common"
import NoData from '../../component/noData'
export default {
name: 'Busclue',
props: ['companyId', 'statistic'],
components: {
NoData
},
data() {
return {
viewData:[],
......@@ -64,13 +71,17 @@ export default {
methods: {
async handleQuery(){
let res = await projectTenderDataGroup({cid: this.companyId, type: this.activeIndex})
if(res.code==200){
if(res.code==200 && res.data.length>0){
let data = res.data, totalVal = data.map(item => item.value).reduce((prev, cur) => prev + cur)
this.viewData = data.map(item => {
let it = {name:item.name, value:item.value, percent:parseFloat(Number(Number(item.value)/Number(totalVal)*100).toFixed(2))+'%'}
return it
})
if(this.viewData.length>0){
this.$nextTick(() => {
this.getDT()
})
}
}
},
getDT(val){
......@@ -149,10 +160,13 @@ export default {
width: 100%;
justify-content: space-between;
align-items: normal;
margin-top: 4px;
margin-top: 8px;
.clue-echarts{
width: calc(50% - 8px);
}
.busc-no-data{
width: calc(50% - 8px);
}
.table-item{
width: calc(50% - 8px);
::v-deep .el-table--border .el-table__cell{
......
<template>
<div class="app-container operations-container">
<div class="common-title">公司经营</div>
<div class="part-swiper">
<div class="part-swiper" v-if="operList.length>0">
<div class="swiper-containers swiper-oper" :style="operList.length<=6?'margin-left:0px; width: 100%;':''">
<ul class="swiper-wrapper">
<li class="swiper-slide" v-for="(item, index) in operList" :key="index">
......@@ -18,6 +18,9 @@
<div class="swiper-button-prev swiper-oper-prev" slot="button-prev" style="left: 0;"><i class="el-icon-arrow-left"></i></div>
<div class="swiper-button-next swiper-oper-next" slot="button-next" style="right: 0"><i class="el-icon-arrow-right"></i></div>
</div>
<div class="part-swiper" v-else>
<no-data />
</div>
<div class="flex-box operations-list">
<div class="list-item" v-for="(item, index) in gsjyList" :key="index">
<div class="flex-box list-item-all"><img :src="item.ico">{{item.name}}</div>
......@@ -31,9 +34,13 @@
import {bondCreditRating} from '@/api/detail/party-a/overview'
var Swiper = require('@/assets/lib/swiper/swiper-bundle.min.js')
import "@/assets/lib/swiper/swiper-bundle.css"
import NoData from '../../component/noData'
export default {
name: 'Overview',
props: ['companyId', 'financial'],
components: {
NoData
},
data() {
return {
operList: [],
......
......@@ -2,27 +2,40 @@
<div class="flex-box app-container part-container">
<div class="tender-list">
<div class="common-title">招标公告</div>
<template v-if="zbggList.length>0">
<div class="tender-item" v-for="(item, index) in zbggList" :key="index">
<div class="flex-box tender-title"><div class="text-cl1" :title="item.projectName"><router-link :to="'/radar/Bidding/details/'+item.bid" tag="a" class="a-link">{{item.projectName}}</router-link></div><span :class="item.tenderStage=='项目动态'?'style2':item.tag=='招投标'?'style4':'style1'">{{item.tenderStage}}</span></div>
<span class="tender-time">{{item.contact}} {{item.issueTime}}</span>
</div>
</template>
<div class="tender-no-data" v-else>
<no-data />
</div>
</div>
<div class="tender-list">
<div class="common-title">企业动态</div>
<template v-if="trendList.length>0">
<div class="tender-item" v-for="(item, index) in trendList" :key="index">
<div class="flex-box tender-title"><div class="text-cl1" :title="tendTitle(item.details)">{{tendTitle(item.details)}}</div><span :class="item.parentDimension=='新增分支机构'?'style2':item.parentDimension=='新增施工工法'?'style3':'style1'">{{item.parentDimension}}</span></div>
<span class="tender-time">{{item.createTime}}</span>
</div>
</template>
<div class="tender-no-data" v-else>
<no-data />
</div>
</div>
</div>
</template>
<script>
import {bidNoticePage, dynamicPage} from "@/api/detail/party-a/overview"
import NoData from '../../component/noData'
export default {
name: 'Tender',
props: ['companyId'],
components: {
NoData
},
data() {
return {
zbggParams: {
......@@ -34,7 +47,7 @@ export default {
//招标公告数据
zbggList:[],
trendParams: {
companyId: '2453',
companyId: this.companyId,
pageNum: 1,
pageSize: 5
},
......@@ -143,5 +156,9 @@ export default {
}
}
}
.tender-no-data{
height: 420px;
margin-top: 20px;
}
}
</style>
......@@ -29,7 +29,7 @@ export default {
queryParams: {
cid: this.companyId,
pageNum: 1,
pageSize: 20
pageSize: 100
},
forData: [
{label: '姓名', prop: 'name'},
......
......@@ -20,7 +20,7 @@
@handle-current-change="handleCurrentChange"
>
<template slot="stockName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.stockId&&scope.row.stockName " v-html="scope.row.stockName"></router-link>
<router-link :to="`/enterprise/${encodeStr(scope.row.stockId)}`" tag="a" class="a-link" v-if="scope.row.stockId&&scope.row.stockName " v-html="scope.row.stockName"></router-link>
<div v-else v-html="scope.row.stockName || '--'"></div>
<div class="tags" v-if="scope.row.businessStatus">
<span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span>
......
......@@ -19,7 +19,7 @@
@handle-current-change="handleCurrentChange"
>
<template slot="investName" slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-if="scope.row.id&&scope.row.investName " v-html="scope.row.investName"></router-link>
<router-link :to="`/enterprise/${encodeStr(scope.row.id)}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.investName " v-html="scope.row.investName"></router-link>
<div v-else v-html="scope.row.investName || '--'"></div>
<div class="tags" v-if="scope.row.businessStatus || scope.row.biddingAnnouncement">
<span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span>
......
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