Commit afab40ad authored by dengguangman's avatar dengguangman

Merge remote-tracking branch 'origin/master'

parents 441579e0 3128ba89
...@@ -74,4 +74,12 @@ public class BusinessOpportunityRadarController { ...@@ -74,4 +74,12 @@ public class BusinessOpportunityRadarController {
public AjaxResult jskBidPlanPage(@RequestBody ComposeQueryDto compose) { public AjaxResult jskBidPlanPage(@RequestBody ComposeQueryDto compose) {
return opportunityRadarService.jskBidPlanPage(compose); return opportunityRadarService.jskBidPlanPage(compose);
} }
/*
* 投标计划查询
*/
@RequestMapping("/jskBidPlan/getCapitalSourceSelect")
public AjaxResult getCapitalSourceSelect() {
return opportunityRadarService.getCapitalSourceSelect();
}
} }
...@@ -27,4 +27,7 @@ public interface BusinessOpportunityRadarService { ...@@ -27,4 +27,7 @@ public interface BusinessOpportunityRadarService {
AjaxResult bondProjectPage(ComposeQueryDto compose); AjaxResult bondProjectPage(ComposeQueryDto compose);
AjaxResult jskBidPlanPage(ComposeQueryDto compose); AjaxResult jskBidPlanPage(ComposeQueryDto compose);
AjaxResult getCapitalSourceSelect();
} }
...@@ -82,4 +82,10 @@ public class BusinessOpportunityRadarServiceImpl implements BusinessOpportunityR ...@@ -82,4 +82,10 @@ public class BusinessOpportunityRadarServiceImpl implements BusinessOpportunityR
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/page", BeanUtil.beanToMap(compose, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/page", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
@Override
public AjaxResult getCapitalSourceSelect() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBidPlan/getCapitalSourceSelect", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
} }
...@@ -28,7 +28,6 @@ public class EnterpriseProjectApprovalProjectPageBody extends BasePage { ...@@ -28,7 +28,6 @@ public class EnterpriseProjectApprovalProjectPageBody extends BasePage {
/* /*
* 1金额倒序,2金额正序,3计划开工时间倒序,4计划开工时间正序,13计划完工时间倒序,14计划完工时间正序 * 1金额倒序,2金额正序,3计划开工时间倒序,4计划开工时间正序,13计划完工时间倒序,14计划完工时间正序
*/ */
@NotNull(message = "排序条件不能为空")
private Integer sort; private Integer sort;
} }
...@@ -32,7 +32,6 @@ public class EnterpriseProjectBidNoticePageBody extends BasePage { ...@@ -32,7 +32,6 @@ public class EnterpriseProjectBidNoticePageBody extends BasePage {
/* /*
* 1金额倒序,2金额正序,3时间倒序,4时间正序 * 1金额倒序,2金额正序,3时间倒序,4时间正序
*/ */
@NotNull(message = "排序条件不能为空")
private Integer sort; private Integer sort;
/** /**
......
...@@ -27,7 +27,6 @@ public class EnterpriseProjectBidPlanPageBody extends BasePage { ...@@ -27,7 +27,6 @@ public class EnterpriseProjectBidPlanPageBody extends BasePage {
/* /*
* 排序字段:1金额倒序,2金额正序,3发布时间倒序,4发布时间正序,15预计招标时间倒序,16预计招标时间正序 * 排序字段:1金额倒序,2金额正序,3发布时间倒序,4发布时间正序,15预计招标时间倒序,16预计招标时间正序
*/ */
@NotNull(message = "排序条件不能为空")
private Integer sort; private Integer sort;
......
...@@ -33,7 +33,6 @@ public class EnterpriseProjectLandTransactionPageBody extends BasePage { ...@@ -33,7 +33,6 @@ public class EnterpriseProjectLandTransactionPageBody extends BasePage {
/* /*
* 1金额倒序,2金额正序,3时间倒序,4时间正序,11面积倒序,12面积正序 * 1金额倒序,2金额正序,3时间倒序,4时间正序,11面积倒序,12面积正序
*/ */
@NotNull(message = "排序条件不能为空")
private Integer sort; private Integer sort;
} }
...@@ -27,7 +27,6 @@ public class EnterpriseProjectSpecialDebtProjectPageBody extends BasePage { ...@@ -27,7 +27,6 @@ public class EnterpriseProjectSpecialDebtProjectPageBody extends BasePage {
/* /*
* 排序字段:1总投资金额倒序,2总投资金额正序,17项目资本金倒序,18项目资本金正序,19专项债用作资本金倒序,20专项债用作资本金正序 * 排序字段:1总投资金额倒序,2总投资金额正序,17项目资本金倒序,18项目资本金正序,19专项债用作资本金倒序,20专项债用作资本金正序
*/ */
@NotNull(message = "排序条件不能为空")
private Integer sort; private Integer sort;
} }
...@@ -23,7 +23,6 @@ public class EnterpriseUipSearchBody extends BasePage { ...@@ -23,7 +23,6 @@ public class EnterpriseUipSearchBody extends BasePage {
/* /*
* 1供应商倒序,2供应商正序,3拟建项目倒序,4拟建项目正序,5招标公告倒序,6招标公告正序,7土地倒序,8土地正序 * 1供应商倒序,2供应商正序,3拟建项目倒序,4拟建项目正序,5招标公告倒序,6招标公告正序,7土地倒序,8土地正序
*/ */
@NotNull(message = "排序条件不能为空")
private Integer sort; private Integer sort;
/** /**
......
...@@ -7,4 +7,13 @@ let importData= function importData(param) { ...@@ -7,4 +7,13 @@ let importData= function importData(param) {
data: param data: param
}) })
} }
export default {importData} // 查询条件字段
\ No newline at end of file let searchDic= function searchDic(param) {
return request({
url: 'https://files.jiansheku.com/file/json/common/searchDic.json',
method: 'get',
})
}
export default {importData,searchDic}
\ No newline at end of file
dsk-operate-ui/src/assets/images/EXCEL.png

381 Bytes | W: | H:

dsk-operate-ui/src/assets/images/EXCEL.png

434 Bytes | W: | H:

dsk-operate-ui/src/assets/images/EXCEL.png
dsk-operate-ui/src/assets/images/EXCEL.png
dsk-operate-ui/src/assets/images/EXCEL.png
dsk-operate-ui/src/assets/images/EXCEL.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/excel_1.png

446 Bytes | W: | H:

dsk-operate-ui/src/assets/images/excel_1.png

566 Bytes | W: | H:

dsk-operate-ui/src/assets/images/excel_1.png
dsk-operate-ui/src/assets/images/excel_1.png
dsk-operate-ui/src/assets/images/excel_1.png
dsk-operate-ui/src/assets/images/excel_1.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/folder.png

298 Bytes | W: | H:

dsk-operate-ui/src/assets/images/folder.png

518 Bytes | W: | H:

dsk-operate-ui/src/assets/images/folder.png
dsk-operate-ui/src/assets/images/folder.png
dsk-operate-ui/src/assets/images/folder.png
dsk-operate-ui/src/assets/images/folder.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/pdf.png

422 Bytes | W: | H:

dsk-operate-ui/src/assets/images/pdf.png

578 Bytes | W: | H:

dsk-operate-ui/src/assets/images/pdf.png
dsk-operate-ui/src/assets/images/pdf.png
dsk-operate-ui/src/assets/images/pdf.png
dsk-operate-ui/src/assets/images/pdf.png
  • 2-up
  • Swipe
  • Onion skin
dsk-operate-ui/src/assets/images/word.png

474 Bytes | W: | H:

dsk-operate-ui/src/assets/images/word.png

615 Bytes | W: | H:

dsk-operate-ui/src/assets/images/word.png
dsk-operate-ui/src/assets/images/word.png
dsk-operate-ui/src/assets/images/word.png
dsk-operate-ui/src/assets/images/word.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -49,7 +49,13 @@ function changePath(that, pathName){ ...@@ -49,7 +49,13 @@ function changePath(that, pathName){
} }
} }
//保留小数N位
function saveFixed(field, num=2){
return parseFloat(field.toFixed(num))
}
export { export {
encodeStr, encodeStr,
changePath changePath,
saveFixed
} }
...@@ -181,6 +181,7 @@ ...@@ -181,6 +181,7 @@
margin-top: 2px; margin-top: 2px;
&:hover{ &:hover{
background: url("../../assets/images/project/add_1.png") no-repeat center center; background: url("../../assets/images/project/add_1.png") no-repeat center center;
background-size: 100%;
} }
} }
.tips{ .tips{
...@@ -890,6 +891,7 @@ ...@@ -890,6 +891,7 @@
float: left; float: left;
margin-right: 8px; margin-right: 8px;
margin-top: -2px; margin-top: -2px;
width: 24px;
} }
} }
} }
......
...@@ -45,8 +45,8 @@ ...@@ -45,8 +45,8 @@
<!-- 输入框 --> <!-- 输入框 -->
<template v-if="form.type==3"> <template v-if="form.type==3">
<div class="cooperate-name"> <div class="cooperate-name">
<el-input v-model="form.value" :placeholder="form.placeholder"></el-input> <el-input @focus="clickFocus('detailFocus'+i)" @blur="clickFocus('detailFocus'+i)" v-model="form.value" :placeholder="form.placeholder"></el-input>
<span @click="changeSelect">搜索</span> <span :id="'detailFocus'+i" @click="changeSelect">搜索</span>
</div> </div>
</template> </template>
<!-- 多选 --> <!-- 多选 -->
...@@ -117,6 +117,9 @@ export default { ...@@ -117,6 +117,9 @@ export default {
methods: { methods: {
changeSelect(){ changeSelect(){
this.$emit('handle-search') this.$emit('handle-search')
},
clickFocus(e){
document.getElementById(e).classList.toggle('span-ba')
} }
} }
} }
...@@ -183,13 +186,18 @@ export default { ...@@ -183,13 +186,18 @@ export default {
border-left: 0; border-left: 0;
cursor: pointer; cursor: pointer;
} }
.span-ba{
color: #ffffff;
background: #0081FF;
border: 1px solid #0081FF;
}
::v-deep .el-input{ ::v-deep .el-input{
flex: 1; flex: 1;
} }
::v-deep .el-input__inner { ::v-deep .el-input__inner {
border-right: 0; border-right: 0;
border-radius: 2px 0 2px 0; border-radius: 2px 0 2px 0;
width: 259px; width: 180px;
} }
} }
.fromTime{ .fromTime{
...@@ -208,6 +216,22 @@ export default { ...@@ -208,6 +216,22 @@ export default {
::v-deep .form-content-width{ ::v-deep .form-content-width{
width: 170px; 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> </style>
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<!-- 输入框 --> <!-- 输入框 -->
<template v-if="form.type==3"> <template v-if="form.type==3">
<div class="cooperate-name"> <div class="cooperate-name">
<el-input @focus="clickFocus('focus'+i)" @blur="clickFocus('focus'+i)" v-model="form.value" :placeholder="form.placeholder"></el-input> <el-input clearable @focus="clickFocus('focus'+i)" @blur="clickFocus('focus'+i)" v-model="form.value" :placeholder="form.placeholder"></el-input>
<span :id="'focus'+i" @click="changeSelect">搜索</span> <span :id="'focus'+i" @click="changeSelect">搜索</span>
</div> </div>
</template> </template>
......
<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 @@ ...@@ -21,11 +21,11 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="agency" slot-scope="scope"> <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> <div v-else v-html="scope.row.agency || '--'"></div>
</template> </template>
<template slot="projectInfo" slot-scope="scope"> <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-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> <div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template> </template>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
> >
<template slot="name" slot-scope="scope"> <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> <div v-else v-html="scope.row.name || '--'"></div>
</template> </template>
<template slot="source" slot-scope="scope"> <template slot="source" slot-scope="scope">
...@@ -80,7 +80,9 @@ export default { ...@@ -80,7 +80,9 @@ export default {
this.tableDataTotal = res.total this.tableDataTotal = res.total
}, },
handlePic(url){ handlePic(url){
window.open(url, "_blank") if(url){
window.open(url, "_blank")
}
} }
} }
} }
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<template slot="dealTitle" slot-scope="scope"> <template slot="dealTitle" slot-scope="scope">
<div class="flex-box"> <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)"/> <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> <span v-else v-html="scope.row.dealTitle || '--'"></span>
</div> </div>
</template> </template>
...@@ -45,20 +45,10 @@ import {bidCooperatePage} from '@/api/detail/party-a/dealings' ...@@ -45,20 +45,10 @@ import {bidCooperatePage} from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm" import HeadDetailForm from "../../component/HeadDetailForm"
export default { export default {
props: { props: [
'data': { 'data',
type: Object, 'title'
default: () => { ],
return {}
}
},
'title': {
type: String,
default: () => {
return ''
}
}
},
components: { components: {
HeadDetailForm HeadDetailForm
}, },
...@@ -106,7 +96,9 @@ export default { ...@@ -106,7 +96,9 @@ export default {
this.amountTotal = res.totalAmount this.amountTotal = res.totalAmount
}, },
handlePic(url){ handlePic(url){
window.open(url, "_blank") if(url){
window.open(url, "_blank")
}
}, },
cancel() { cancel() {
this.$emit('cancel') this.$emit('cancel')
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
<template slot="projectAllName" slot-scope="scope"> <template slot="projectAllName" slot-scope="scope">
<div class="flex-box"> <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)"/> <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> <span v-else v-html="scope.row.projectAllName || '--'"></span>
</div> </div>
</template> </template>
...@@ -45,26 +46,11 @@ import {clientProjectPage} from '@/api/detail/party-a/dealings' ...@@ -45,26 +46,11 @@ import {clientProjectPage} from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm" import HeadDetailForm from "../../component/HeadDetailForm"
export default { export default {
props: { props: [
'data': { 'data',
type: Object, 'company-id',
default: () => { 'title'
return {} ],
}
},
'company-id': {
type: Number,
default: () => {
return 0
}
},
'title': {
type: String,
default: () => {
return ''
}
}
},
components: { components: {
HeadDetailForm HeadDetailForm
}, },
...@@ -114,7 +100,9 @@ export default { ...@@ -114,7 +100,9 @@ export default {
this.amountTotal = res.totalAmount this.amountTotal = res.totalAmount
}, },
handlePic(url){ handlePic(url){
window.open(url, "_blank") if(url){
window.open(url, "_blank")
}
}, },
cancel() { cancel() {
this.$emit('cancel') this.$emit('cancel')
......
...@@ -27,7 +27,8 @@ ...@@ -27,7 +27,8 @@
<template slot="projectAllName" slot-scope="scope"> <template slot="projectAllName" slot-scope="scope">
<div class="flex-box"> <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)"/> <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> <span v-else v-html="scope.row.projectAllName || '--'"></span>
</div> </div>
</template> </template>
...@@ -45,26 +46,11 @@ import { supplierProjectPage } from '@/api/detail/party-a/dealings' ...@@ -45,26 +46,11 @@ import { supplierProjectPage } from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm" import HeadDetailForm from "../../component/HeadDetailForm"
export default { export default {
props: { props: [
'data': { 'data',
type: Object, 'company-id',
default: () => { 'title'
return {} ],
}
},
'company-id': {
type: Number,
default: () => {
return 0
}
},
'title': {
type: String,
default: () => {
return ''
}
}
},
components: { components: {
HeadDetailForm HeadDetailForm
}, },
...@@ -114,7 +100,9 @@ export default { ...@@ -114,7 +100,9 @@ export default {
this.amountTotal = res.totalAmount this.amountTotal = res.totalAmount
}, },
handlePic(url){ handlePic(url){
window.open(url, "_blank") if(url){
window.open(url, "_blank")
}
}, },
cancel() { cancel() {
this.$emit('cancel') this.$emit('cancel')
......
...@@ -21,12 +21,13 @@ ...@@ -21,12 +21,13 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="companyName" slot-scope="scope"> <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> <div v-else v-html="scope.row.companyName || '--'"></div>
</template> </template>
<template slot="projectAllName" slot-scope="scope"> <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 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>
<div v-else v-html="scope.row.projectAllName || '--'"></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> <div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template> </template>
</tables> </tables>
...@@ -95,6 +96,11 @@ export default { ...@@ -95,6 +96,11 @@ export default {
handleClick(e, data) { handleClick(e, data) {
this.rowData = data this.rowData = data
this.isDetails = true this.isDetails = true
},
handleDetail(row){
if(row.sourceUrl){
window.open(row.sourceUrl, "_blank")
}
} }
} }
} }
......
...@@ -21,11 +21,12 @@ ...@@ -21,11 +21,12 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="projectAllName" slot-scope="scope"> <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> <div v-else v-html="scope.row.projectAllName || '--'"></div>
</template> </template>
<template slot="companyName" slot-scope="scope"> <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> <div v-else>{{ scope.row.companyName || '--' }}</div>
</template> </template>
</tables> </tables>
...@@ -101,6 +102,11 @@ export default { ...@@ -101,6 +102,11 @@ export default {
this.tableData = res.rows this.tableData = res.rows
} }
this.tableDataTotal = res.total this.tableDataTotal = res.total
},
handleDetail(row){
if(row.sourceUrl){
window.open(row.sourceUrl, "_blank")
}
} }
} }
} }
......
...@@ -21,12 +21,13 @@ ...@@ -21,12 +21,13 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="companyName" slot-scope="scope"> <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> <div v-else v-html="scope.row.companyName || '--'"></div>
</template> </template>
<template slot="projectAllName" slot-scope="scope"> <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 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>
<div v-else v-html="scope.row.projectAllName || '--'"></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> <div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template> </template>
</tables> </tables>
...@@ -95,6 +96,11 @@ export default { ...@@ -95,6 +96,11 @@ export default {
handleClick(e, data) { handleClick(e, data) {
this.rowData = data this.rowData = data
this.isDetails = true this.isDetails = true
},
handleDetail(row){
if(row.sourceUrl){
window.open(row.sourceUrl, "_blank")
}
} }
} }
} }
......
...@@ -3,10 +3,10 @@ ...@@ -3,10 +3,10 @@
<div class="financial-header"> <div class="financial-header">
<div class="common-title">财务简析</div> <div class="common-title">财务简析</div>
<div class="flex-box header-box"> <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"><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" 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"><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" 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"><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" 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.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> </div>
<div class="financial-zcqk"> <div class="financial-zcqk">
...@@ -14,27 +14,39 @@ ...@@ -14,27 +14,39 @@
<ul class="zcqk-list"> <ul class="zcqk-list">
<li v-for="(item, index) in zcqkList" :key="index" :style="zcqkList.length==1?'border-right: 0;':''"> <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="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 class="zcqk-list-intro">{{item.intro}}</div>
</div> </div>
</li> </li>
</ul> </ul>
</div> </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="financial-zwqk">
<div class="common-title">负债情况及偿债能力</div> <div class="common-title">负债情况及偿债能力</div>
<div class="flex-box zwqk-box"> <div class="flex-box zwqk-box">
<div class="zwqk-info"> <div class="zwqk-info">
<div class="zwqk-title">总负债</div> <div class="zwqk-title">总负债</div>
<div class="zwqk-amount"><span>{{financialDetail.totalLiabilities || '0'}}</span>亿元</div> <div class="zwqk-amount"><span>{{financialDetail.totalLiabilities?saveFixed(financialDetail.totalLiabilities):'0'}}</span>亿元</div>
<div class="zwqk-pro">资产负债率 {{financialDetail.tdr+'%' || '--'}}</div> <div class="zwqk-pro">资产负债率 {{financialDetail.tdr?saveFixed(financialDetail.tdr)+'%':'--'}}</div>
<img src="@/assets/images/detail/financial/zwqk_bg_ico.png"> <img src="@/assets/images/detail/financial/zwqk_bg_ico.png">
</div> </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>
<div class="flex-box zwqk-list"> <div class="flex-box zwqk-list">
<div class="list-item" v-for="(item, index) in zwqkList" :key="index"> <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="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 class="list-item-pro">{{item.intro}}<span>{{item.introPro || '--'}}</span></div>
</div> </div>
</div> </div>
...@@ -44,7 +56,7 @@ ...@@ -44,7 +56,7 @@
<ul class="zcqk-list"> <ul class="zcqk-list">
<li v-for="(item, index) in zjqkList" :key="index" :style="zjqkList.length==1?'border-right: 0;':''"> <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="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 class="zcqk-list-intro">{{item.intro}}</div>
</div> </div>
</li> </li>
...@@ -54,13 +66,19 @@ ...@@ -54,13 +66,19 @@
</template> </template>
<script> <script>
import {saveFixed} from "@/assets/js/common"
import { financial } from '@/api/detail/party-a/financial' import { financial } from '@/api/detail/party-a/financial'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import NoData from '../component/noData'
export default { export default {
name: 'Financial', name: 'Financial',
props: ['companyId'], props: ['companyId'],
components: {
NoData
},
data() { data() {
return { return {
saveFixed,
financialDetail: {}, financialDetail: {},
// 资产情况 // 资产情况
zcqkList: [ zcqkList: [
...@@ -82,6 +100,12 @@ export default { ...@@ -82,6 +100,12 @@ export default {
{ name: '对外担保金额', ico: require('@/assets/images/detail/financial/zwqk_ico4.png'), intro: '对外担保比例', introPro: '', amount: '', unit: '亿元'} { name: '对外担保金额', ico: require('@/assets/images/detail/financial/zwqk_ico4.png'), intro: '对外担保比例', introPro: '', amount: '', unit: '亿元'}
], ],
echartsData: [], echartsData: [],
ylnlList: [
{ name: '营业收入', amount: '', unit: '亿元'},
{ name: '净资产收益率', amount: '', unit: '%'},
{ name: '归母净利润', amount: '', unit: '亿元'},
{ name: '公益性&准公益性主营占比', amount: '', unit: '%'},
],
// 资金情况 // 资金情况
zjqkList: [ zjqkList: [
{ name: '经营现金流', ico: require('@/assets/images/detail/financial/zjqk_ico1.png'), intro: '该指标越高,说明经营活动的造血能力越强', amount: '', unit: '亿元'}, { name: '经营现金流', ico: require('@/assets/images/detail/financial/zjqk_ico1.png'), intro: '该指标越高,说明经营活动的造血能力越强', amount: '', unit: '亿元'},
...@@ -117,7 +141,7 @@ export default { ...@@ -117,7 +141,7 @@ export default {
this.tableLoading = true this.tableLoading = true
let res = await financial({cid:this.companyId}) let res = await financial({cid:this.companyId})
this.tableLoading = false this.tableLoading = false
if(res.code==200){ if(res.code==200 && res.data){
this.financialDetail = res.data this.financialDetail = res.data
//资产情况 //资产情况
let { totalAssets, belongNetAssets, monetaryFunds, accountsReceivable, landAssets, otherReceivable, restrictedAssets, receivableFromGovRatio, govSubsidy } = this.financialDetail let { totalAssets, belongNetAssets, monetaryFunds, accountsReceivable, landAssets, otherReceivable, restrictedAssets, receivableFromGovRatio, govSubsidy } = this.financialDetail
...@@ -131,7 +155,13 @@ export default { ...@@ -131,7 +155,13 @@ export default {
let zwPercentObj = { econData_006, econData_005, nonStandardRatio, guaranteeRatio } let zwPercentObj = { econData_006, econData_005, nonStandardRatio, guaranteeRatio }
this.zwqkList.forEach((item, index) => { this.zwqkList.forEach((item, index) => {
item.amount = zwAmountObj[Object.keys(zwAmountObj)[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 let { netOperatingCashFlow, cashRatio, netFinancingCashFlow, cashFlowRatio, netInvestmentCashFlow, cashDebtRatio } = this.financialDetail
...@@ -285,7 +315,7 @@ export default { ...@@ -285,7 +315,7 @@ export default {
img{ img{
width: 84px; width: 84px;
height: 115px; height: 115px;
right: -10px; right: -4px;
bottom: -18px; bottom: -18px;
} }
} }
...@@ -367,6 +397,33 @@ export default { ...@@ -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{ .financial-zwqk{
background: #FFFFFF; background: #FFFFFF;
padding: 24px 16px; padding: 24px 16px;
...@@ -376,7 +433,8 @@ export default { ...@@ -376,7 +433,8 @@ export default {
padding-top: 20px; padding-top: 20px;
justify-content: normal; justify-content: normal;
.zwqk-info{ .zwqk-info{
width: 50%; width: calc(50% - 11px);
margin-right: 11px;
height: 248px; height: 248px;
padding: 54px 24px 10px 24px; padding: 54px 24px 10px 24px;
color: #4D4C4B; color: #4D4C4B;
...@@ -421,6 +479,11 @@ export default { ...@@ -421,6 +479,11 @@ export default {
margin-top: 33px; margin-top: 33px;
} }
} }
.fin-no-data{
width: calc(50% - 11px);
height: 250px;
margin-left: 11px;
}
} }
.zwqk-list{ .zwqk-list{
justify-content: space-between; justify-content: space-between;
...@@ -435,6 +498,10 @@ export default { ...@@ -435,6 +498,10 @@ export default {
.list-item-all{ .list-item-all{
align-items: normal; align-items: normal;
justify-content: space-between; justify-content: space-between;
img{
width: 30px;
height: 30px;
}
} }
.list-item-amount{ .list-item-amount{
height: 39px; height: 39px;
......
import {encodeStr} from "@/assets/js/common"
import HeadForm from "../component/HeadForm" import HeadForm from "../component/HeadForm"
import Tables from "../component/Tables" import Tables from "../component/Tables"
export default { export default {
...@@ -7,7 +8,7 @@ export default { ...@@ -7,7 +8,7 @@ export default {
}, },
data() { data() {
return { return {
encodeStr
} }
}, },
mounted() { mounted() {
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="projectName" slot-scope="scope"> <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> <div v-else v-html="scope.row.projectName || '--'"></div>
</template> </template>
<template slot="province" slot-scope="scope"> <template slot="province" slot-scope="scope">
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="projectName" slot-scope="scope"> <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> <div v-else v-html="scope.row.projectName || '--'"></div>
</template> </template>
<template slot="province" slot-scope="scope"> <template slot="province" slot-scope="scope">
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="projectName" slot-scope="scope"> <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> <div v-else v-html="scope.row.projectName || '--'"></div>
</template> </template>
</tables> </tables>
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="projectName" slot-scope="scope"> <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> <div v-else v-html="scope.row.projectName || '--'"></div>
</template> </template>
</tables> </tables>
...@@ -53,10 +53,10 @@ export default { ...@@ -53,10 +53,10 @@ export default {
{label: '行业分类', prop: 'industry', width: '100'}, {label: '行业分类', prop: 'industry', width: '100'},
{label: '供地方式', prop: 'supplyLandWay', width: '100'}, {label: '供地方式', prop: 'supplyLandWay', width: '100'},
{label: '土地坐落', prop: 'landAddr', minWidth: '130'}, {label: '土地坐落', prop: 'landAddr', minWidth: '130'},
{label: '成交金额(万元)', prop: 'transactionPrice', sortable: 'custom', descending: '3', ascending: '4', width: '140'}, {label: '成交金额(万元)', prop: 'transactionPrice', sortable: 'custom', descending: '1', ascending: '2', width: '140'},
{label: '总面积(㎡)', prop: 'acreage', sortable: 'custom', descending: '11', ascending: '12', width: '130'}, {label: '总面积(㎡)', prop: 'acreage', sortable: 'custom', descending: '11', ascending: '12', width: '130'},
{label: '批准单位', prop: 'authority', width: '130'}, {label: '批准单位', prop: 'authority', width: '130'},
{label: '签订日期', prop: 'contractSignTime', sortable: 'custom', descending: '1', ascending: '2', width: '130'} {label: '签订日期', prop: 'contractSignTime', sortable: 'custom', descending: '3', ascending: '4', width: '130'}
], ],
formData: [ formData: [
{ type: 4, fieldName: 'landUse', value: '', placeholder: '土地用途', options: []}, { type: 4, fieldName: 'landUse', value: '', placeholder: '土地用途', options: []},
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="projectName" slot-scope="scope"> <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> <div v-else v-html="scope.row.projectName || '--'"></div>
</template> </template>
<template slot="isProjcet" slot-scope="scope"> <template slot="isProjcet" slot-scope="scope">
......
...@@ -19,15 +19,15 @@ ...@@ -19,15 +19,15 @@
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
> >
<template slot="projectName" slot-scope="scope"> <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> <div v-else v-html="scope.row.projectName || '--'"></div>
</template> </template>
<template slot="tenderee" slot-scope="scope"> <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> <div v-else v-html="scope.row.tenderee || '--'"></div>
</template> </template>
<template slot="agency" slot-scope="scope"> <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> <div v-else v-html="scope.row.agency || '--'"></div>
</template> </template>
<template slot="province" slot-scope="scope"> <template slot="province" slot-scope="scope">
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
> >
<template slot="name" slot-scope="scope"> <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 v-else v-html="scope.row.name || '--'"></div>
<div class="tags" v-if="scope.row.status || scope.row.biddingAnnouncement"> <div class="tags" v-if="scope.row.status || scope.row.biddingAnnouncement">
<span class="tag style1" v-if="scope.row.status">{{scope.row.status}}</span> <span class="tag style1" v-if="scope.row.status">{{scope.row.status}}</span>
......
...@@ -2,40 +2,45 @@ ...@@ -2,40 +2,45 @@
<div class="flex-box app-container part-container"> <div class="flex-box app-container part-container">
<div class="bid-zbph"> <div class="bid-zbph">
<div class="common-title">招标偏好</div> <div class="common-title">招标偏好</div>
<div class="flex-box zbph-item"> <template v-if="dataAll.totalCount||dataAll.lastYearCount||dataAll.bidAmount||this.dtdata.length>0">
<div>历史招标总数 <div class="flex-box zbph-item">
<el-popover <div>历史招标总数
placement="top-start" <el-popover
trigger="hover" placement="top-start"
content="统计企业历年来公开招标总数"> trigger="hover"
<img src="@/assets/images/detail/overview/zbph_question.png" slot="reference"> content="统计企业历年来公开招标总数">
</el-popover> <img src="@/assets/images/detail/overview/zbph_question.png" style="width: 12px; height: 12px;" slot="reference">
<span class="zbph-item-num">{{dataAll.totalCount || '--'}}</span></div> </el-popover>
<div>近一年招标总数 <span class="zbph-item-num">{{dataAll.totalCount || '--'}}</span></div>
<el-popover <div>近一年招标总数
placement="top-start" <el-popover
trigger="hover" placement="top-start"
content="统计企业近一年公开招标总数"> trigger="hover"
<img src="@/assets/images/detail/overview/zbph_question.png" slot="reference"> content="统计企业近一年公开招标总数">
</el-popover> <img src="@/assets/images/detail/overview/zbph_question.png" style="width: 12px; height: 12px;" slot="reference">
<span class="zbph-item-num">{{dataAll.lastYearCount || '--'}}</span></div> </el-popover>
<div>历史招标总额(万元) <span class="zbph-item-num">{{dataAll.lastYearCount || '--'}}</span></div>
<el-popover <div>历史招标总额(万元)
placement="top-start" <el-popover
trigger="hover" placement="top-start"
content="统计企业历年来公开招标项目总金额"> trigger="hover"
<img src="@/assets/images/detail/overview/zbph_question.png" slot="reference"> content="统计企业历年来公开招标项目总金额">
</el-popover> <img src="@/assets/images/detail/overview/zbph_question.png" style="width: 12px; height: 12px;" slot="reference">
<span class="zbph-item-num">{{dataAll.bidAmount?parseFloat(dataAll.bidAmount.toFixed(6)):'--'}}</span></div> </el-popover>
</div> <span class="zbph-item-num">{{dataAll.bidAmount?parseFloat(dataAll.bidAmount.toFixed(6)):'--'}}</span></div>
<div class="zbph-account">招标动态 </div>
<div class="labels"> <div class="zbph-account">招标动态
<div :class="{'on':datatype==3}" @click="getDT(3)">周</div> <div class="labels">
<div :class="{'on':datatype==2}" @click="getDT(2)">月</div> <div :class="{'on':datatype==3}" @click="getDT(3)">周</div>
<div :class="{'on':datatype==1}" @click="getDT(1)">年</div> <div :class="{'on':datatype==2}" @click="getDT(2)">月</div>
<div :class="{'on':datatype==1}" @click="getDT(1)">年</div>
</div>
</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 id="myEcharts" style="width: 100%;height:250px; margin: 0 auto;"></div>
</div> </div>
<div class="bid-ywwl"> <div class="bid-ywwl">
<div class="common-title">业务往来供应商TOP5</div> <div class="common-title">业务往来供应商TOP5</div>
...@@ -79,9 +84,13 @@ ...@@ -79,9 +84,13 @@
import {encodeStr} from "@/assets/js/common" import {encodeStr} from "@/assets/js/common"
import {bidDataGroup, supplierPage} from '@/api/detail/party-a/overview' import {bidDataGroup, supplierPage} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import NoData from '../../component/noData'
export default { export default {
name: 'Bidding', name: 'Bidding',
props: ['companyId'], props: ['companyId'],
components: {
NoData
},
data() { data() {
return { return {
encodeStr, encodeStr,
...@@ -111,7 +120,11 @@ export default { ...@@ -111,7 +120,11 @@ export default {
this.dttime=res.data.groupCount.map(item=>{ this.dttime=res.data.groupCount.map(item=>{
return item.span return item.span
}) })
this.initDT(this.dtdata,this.dttime) if(this.dtdata.length>0&&this.dttime.length>0){
this.$nextTick(() => {
this.initDT(this.dtdata,this.dttime)
})
}
} }
}, },
async handleSupplier() { async handleSupplier() {
...@@ -228,6 +241,9 @@ export default { ...@@ -228,6 +241,9 @@ export default {
} }
} }
} }
.bid-no-data{
margin-top: 16px;
}
.zbph-account{ .zbph-account{
position: relative; position: relative;
font-weight: bold; font-weight: bold;
...@@ -274,6 +290,8 @@ export default { ...@@ -274,6 +290,8 @@ export default {
.table-item{ .table-item{
margin-top:15px; margin-top:15px;
.ywwl-ico{ .ywwl-ico{
width: 36px;
height: 36px;
margin-left: -6px; margin-left: -6px;
} }
::v-deep .el-table .el-table__body-wrapper tr:nth-child(2n){ ::v-deep .el-table .el-table__body-wrapper tr:nth-child(2n){
......
...@@ -6,7 +6,10 @@ ...@@ -6,7 +6,10 @@
<el-tab-pane label="按项目" name="1"></el-tab-pane> <el-tab-pane label="按项目" name="1"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="flex-box clue-box"> <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"> <div class="table-item">
<el-table <el-table
:data="viewData" :data="viewData"
...@@ -38,9 +41,13 @@ ...@@ -38,9 +41,13 @@
import {projectTenderDataGroup} from '@/api/detail/party-a/overview' import {projectTenderDataGroup} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import {changePath} from "@/assets/js/common" import {changePath} from "@/assets/js/common"
import NoData from '../../component/noData'
export default { export default {
name: 'Busclue', name: 'Busclue',
props: ['companyId', 'statistic'], props: ['companyId', 'statistic'],
components: {
NoData
},
data() { data() {
return { return {
viewData:[], viewData:[],
...@@ -64,13 +71,17 @@ export default { ...@@ -64,13 +71,17 @@ export default {
methods: { methods: {
async handleQuery(){ async handleQuery(){
let res = await projectTenderDataGroup({cid: this.companyId, type: this.activeIndex}) 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) let data = res.data, totalVal = data.map(item => item.value).reduce((prev, cur) => prev + cur)
this.viewData = data.map(item => { this.viewData = data.map(item => {
let it = {name:item.name, value:item.value, percent:parseFloat(Number(Number(item.value)/Number(totalVal)*100).toFixed(2))+'%'} let it = {name:item.name, value:item.value, percent:parseFloat(Number(Number(item.value)/Number(totalVal)*100).toFixed(2))+'%'}
return it return it
}) })
this.getDT() if(this.viewData.length>0){
this.$nextTick(() => {
this.getDT()
})
}
} }
}, },
getDT(val){ getDT(val){
...@@ -149,10 +160,13 @@ export default { ...@@ -149,10 +160,13 @@ export default {
width: 100%; width: 100%;
justify-content: space-between; justify-content: space-between;
align-items: normal; align-items: normal;
margin-top: 4px; margin-top: 8px;
.clue-echarts{ .clue-echarts{
width: calc(50% - 8px); width: calc(50% - 8px);
} }
.busc-no-data{
width: calc(50% - 8px);
}
.table-item{ .table-item{
width: calc(50% - 8px); width: calc(50% - 8px);
::v-deep .el-table--border .el-table__cell{ ::v-deep .el-table--border .el-table__cell{
......
<template> <template>
<div class="app-container operations-container"> <div class="app-container operations-container">
<div class="common-title">公司经营</div> <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%;':''"> <div class="swiper-containers swiper-oper" :style="operList.length<=6?'margin-left:0px; width: 100%;':''">
<ul class="swiper-wrapper"> <ul class="swiper-wrapper">
<li class="swiper-slide" v-for="(item, index) in operList" :key="index"> <li class="swiper-slide" v-for="(item, index) in operList" :key="index">
...@@ -18,6 +18,9 @@ ...@@ -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-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 class="swiper-button-next swiper-oper-next" slot="button-next" style="right: 0"><i class="el-icon-arrow-right"></i></div>
</div> </div>
<div class="part-swiper" v-else>
<no-data />
</div>
<div class="flex-box operations-list"> <div class="flex-box operations-list">
<div class="list-item" v-for="(item, index) in gsjyList" :key="index"> <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> <div class="flex-box list-item-all"><img :src="item.ico">{{item.name}}</div>
...@@ -31,9 +34,13 @@ ...@@ -31,9 +34,13 @@
import {bondCreditRating} from '@/api/detail/party-a/overview' import {bondCreditRating} from '@/api/detail/party-a/overview'
var Swiper = require('@/assets/lib/swiper/swiper-bundle.min.js') var Swiper = require('@/assets/lib/swiper/swiper-bundle.min.js')
import "@/assets/lib/swiper/swiper-bundle.css" import "@/assets/lib/swiper/swiper-bundle.css"
import NoData from '../../component/noData'
export default { export default {
name: 'Overview', name: 'Overview',
props: ['companyId', 'financial'], props: ['companyId', 'financial'],
components: {
NoData
},
data() { data() {
return { return {
operList: [], operList: [],
......
...@@ -2,16 +2,26 @@ ...@@ -2,16 +2,26 @@
<div class="flex-box app-container part-container"> <div class="flex-box app-container part-container">
<div class="tender-list"> <div class="tender-list">
<div class="common-title">招标公告</div> <div class="common-title">招标公告</div>
<div class="tender-item" v-for="(item, index) in zbggList" :key="index"> <template v-if="zbggList.length>0">
<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> <div class="tender-item" v-for="(item, index) in zbggList" :key="index">
<span class="tender-time">{{item.contact}} {{item.issueTime}}</span> <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> </div>
<div class="tender-list"> <div class="tender-list">
<div class="common-title">企业动态</div> <div class="common-title">企业动态</div>
<div class="tender-item" v-for="(item, index) in trendList" :key="index"> <template v-if="trendList.length>0">
<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> <div class="tender-item" v-for="(item, index) in trendList" :key="index">
<span class="tender-time">{{item.createTime}}</span> <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> </div>
</div> </div>
...@@ -19,10 +29,13 @@ ...@@ -19,10 +29,13 @@
<script> <script>
import {bidNoticePage, dynamicPage} from "@/api/detail/party-a/overview" import {bidNoticePage, dynamicPage} from "@/api/detail/party-a/overview"
import NoData from '../../component/noData'
export default { export default {
name: 'Tender', name: 'Tender',
props: ['companyId'], props: ['companyId'],
components: {
NoData
},
data() { data() {
return { return {
zbggParams: { zbggParams: {
...@@ -34,7 +47,7 @@ export default { ...@@ -34,7 +47,7 @@ export default {
//招标公告数据 //招标公告数据
zbggList:[], zbggList:[],
trendParams: { trendParams: {
companyId: '2453', companyId: this.companyId,
pageNum: 1, pageNum: 1,
pageSize: 5 pageSize: 5
}, },
...@@ -143,5 +156,9 @@ export default { ...@@ -143,5 +156,9 @@ export default {
} }
} }
} }
.tender-no-data{
height: 420px;
margin-top: 20px;
}
} }
</style> </style>
...@@ -29,7 +29,7 @@ export default { ...@@ -29,7 +29,7 @@ export default {
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 100
}, },
forData: [ forData: [
{label: '姓名', prop: 'name'}, {label: '姓名', prop: 'name'},
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
> >
<template slot="stockName" slot-scope="scope"> <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 v-else v-html="scope.row.stockName || '--'"></div>
<div class="tags" v-if="scope.row.businessStatus"> <div class="tags" v-if="scope.row.businessStatus">
<span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span> <span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
> >
<template slot="investName" slot-scope="scope"> <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 v-else v-html="scope.row.investName || '--'"></div>
<div class="tags" v-if="scope.row.businessStatus || scope.row.biddingAnnouncement"> <div class="tags" v-if="scope.row.businessStatus || scope.row.biddingAnnouncement">
<span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span> <span class="tag style1" v-if="scope.row.businessStatus">{{scope.row.businessStatus}}</span>
......
...@@ -81,6 +81,7 @@ export default { ...@@ -81,6 +81,7 @@ export default {
this.tableLoading = false this.tableLoading = false
}) })
}, },
// 公告
noticesTypes(){ noticesTypes(){
noticesType({cid: this.queryParams.cid}).then(res => { noticesType({cid: this.queryParams.cid}).then(res => {
let data = res.data let data = res.data
...@@ -94,12 +95,13 @@ export default { ...@@ -94,12 +95,13 @@ export default {
} }
}) })
}, },
// 身份
noticesRoles(){ noticesRoles(){
noticesRole({cid: this.queryParams.cid}).then(res => { noticesRole({cid: this.queryParams.cid}).then(res => {
let data = res.data let data = res.data
if(data.length > 0){ if(data.length > 0){
for (var i=0;i<data.length;i++){ for (var i=0;i<data.length;i++){
this.formData[1].options.push({ this.formData[2].options.push({
name: data[i].role + '(' + data[i].count + ')', name: data[i].role + '(' + data[i].count + ')',
value: data[i].role, value: data[i].role,
}) })
...@@ -107,12 +109,13 @@ export default { ...@@ -107,12 +109,13 @@ export default {
} }
}) })
}, },
// 案由
noticesCaseReasons(){ noticesCaseReasons(){
noticesCaseReason({cid: this.queryParams.cid}).then(res => { noticesCaseReason({cid: this.queryParams.cid}).then(res => {
let data = res.data let data = res.data
if(data.length > 0){ if(data.length > 0){
for (var i=0;i<data.length;i++){ for (var i=0;i<data.length;i++){
this.formData[2].options.push({ this.formData[1].options.push({
name: data[i].caseReason + '(' + data[i].count + ')', name: data[i].caseReason + '(' + data[i].count + ')',
value: data[i].caseReason, value: data[i].caseReason,
}) })
......
...@@ -62,7 +62,7 @@ export default { ...@@ -62,7 +62,7 @@ export default {
{ type: 1, fieldName: 'causeAction', value: '', placeholder: '案由', options: []}, { type: 1, fieldName: 'causeAction', value: '', placeholder: '案由', options: []},
{ type: 1, fieldName: 'role', value: '', placeholder: '身份', options: []}, { type: 1, fieldName: 'role', value: '', placeholder: '身份', options: []},
{ type: 2, fieldName: 'time', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo'}, { type: 2, fieldName: 'time', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo'},
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索关键字'} { type: 3, fieldName: 'keys', value: '', placeholder: '请输入执行案号'}
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
......
...@@ -65,7 +65,7 @@ export default { ...@@ -65,7 +65,7 @@ export default {
{ type: 1, fieldName: 'causeAction', value: '', placeholder: '案由', options: []}, { type: 1, fieldName: 'causeAction', value: '', placeholder: '案由', options: []},
{ type: 1, fieldName: 'pureRole', value: '', placeholder: '身份', options: []}, { type: 1, fieldName: 'pureRole', value: '', placeholder: '身份', options: []},
{ type: 2, fieldName: 'time', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo'}, { type: 2, fieldName: 'time', value: '', placeholder: '',startTime: 'dateFrom',endTime: 'dateTo'},
{ type: 3, fieldName: 'keys', value: '', placeholder: '请输入关键词'}, { type: 3, fieldName: 'keys', value: '', placeholder: '请输入案号'},
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
> >
<template slot="punishReason" slot-scope="scope"> <template slot="punishReason" slot-scope="scope">
<span :class="[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)?'cell-span':'']" :style="{'-webkit-line-clamp': 5}"> <span :class="[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)?'cell-span':'']" :style="{'-webkit-line-clamp': 5}">
{{ scope.row.punishReason }} <div v-html="scope.row.punishReason"></div>
<span v-if="isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)" @click="changeShowAll(scope.index, 0)">...<span style="color: #0081FF;">更多</span></span> <span v-if="isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)" @click="changeShowAll(scope.index, 0)">...<span style="color: #0081FF;">更多</span></span>
</span> </span>
</template> </template>
......
...@@ -17,8 +17,9 @@ ...@@ -17,8 +17,9 @@
:queryParams="queryParams" :queryParams="queryParams"
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
> >
<template slot="projectName" slot-scope="data"> <template slot="projectName" slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{ data.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> </template>
</tables> </tables>
......
...@@ -97,8 +97,9 @@ ...@@ -97,8 +97,9 @@
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
@sort-change="sortChange" @sort-change="sortChange"
> >
<template slot="companyName" slot-scope="data"> <template slot="companyName" slot-scope="scope">
<router-link to="" tag="a" class="a-link">{{ data.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>
</tables> </tables>
......
...@@ -21,7 +21,8 @@ export default { ...@@ -21,7 +21,8 @@ export default {
created() { created() {
if (this.$route.params.id) { // 获取companyId if (this.$route.params.id) { // 获取companyId
this.loading = true this.loading = true
this.src = `https://pre-plug.jiansheku.com/enterprise/${this.$route.params.id}?secretId=${this.secretId}` // this.src = `https://pre-plug.jiansheku.com/enterprise/${this.$route.params.id}?secretId=${this.secretId}`
this.src = `http://192.168.60.30:3300/enterprise/${this.$route.params.id}?secretId=${this.secretId}`
} }
}, },
mounted() { mounted() {
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<el-table-column label="序号" width="50" align="left" fixed> <el-table-column label="序号" width="50" align="left" fixed>
<template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template> <template slot-scope="scope">{{ pageIndex * pageSize - pageSize + scope.$index + 1 }}</template>
</el-table-column> </el-table-column>
<el-table-column label="公司名称" align="left" width="300"> <el-table-column label="公司名称" align="left" width="300" fixed>
<template slot-scope="scope"> <template slot-scope="scope">
<router-link to="" tag="a" class="a-link" v-html="scope.row.name"></router-link> <router-link to="" tag="a" class="a-link" v-html="scope.row.name"></router-link>
</template> </template>
...@@ -148,12 +148,7 @@ export default { ...@@ -148,12 +148,7 @@ export default {
}) })
params.aptitudeQueryDto.aptitudeDtoList=aptitudeType params.aptitudeQueryDto.aptitudeDtoList=aptitudeType
} }
if(this.aptitudeType || this.queryParams.ename){
}
console.log(params)
enterprise(params).then(res => { enterprise(params).then(res => {
console.log(res.data)
this.tableData=res.data.list; this.tableData=res.data.list;
this.tableDataTotal=res.data.total; this.tableDataTotal=res.data.total;
}) })
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</div> </div>
<div class="item color4"> <div class="item color4">
<div class="item-left"> <div class="item-left">
<h4>{{details.specialCapital || '-'}}<span>{{details.specialCapital ? '亿' : ''}}</span></h4> <h4>{{details.specialBondCapital || '-'}}<span>{{details.specialBondCapital ? '亿' : ''}}</span></h4>
<p>专项债用作资本金</p> <p>专项债用作资本金</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon4.png" /> <img class="img" src="@/assets/images/financing/icon4.png" />
......
...@@ -51,12 +51,12 @@ ...@@ -51,12 +51,12 @@
<router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.projectName}}</router-link> <router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.projectName}}</router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="projectTotalInvestment" label="项目总投资(亿)" sortable="custom" width="155" /> <el-table-column prop="projectTotalInvestment" label="项目总投资(亿)" :formatter="formatStatus" sortable="custom" width="155" />
<el-table-column prop="projectCapital" label="项目资本金(亿)" sortable="custom" width="155" /> <el-table-column prop="projectCapital" label="项目资本金(亿)" :formatter="formatStatus" sortable="custom" width="155" />
<el-table-column prop="econData007" label="项目收益倍数(倍)" sortable="custom" width="150" /> <el-table-column prop="econData007" label="项目收益倍数(倍)" :formatter="formatStatus" sortable="custom" width="150" />
<el-table-column prop="zxz" label="专项债金额(亿)" sortable="custom" width="150" /> <el-table-column prop="zxz" label="专项债金额(亿)" :formatter="formatStatus" sortable="custom" width="150" />
<el-table-column prop="specialBondCapital" label="专项债用作资本金(亿)" width="170" /> <el-table-column prop="specialBondCapital" label="专项债用作资本金(亿)" :formatter="formatStatus" width="170" />
<el-table-column prop="projectEntity" label="项目主体"> <el-table-column prop="projectEntity" :formatter="formatStatus" label="项目主体">
<!--<template slot-scope="scope">--> <!--<template slot-scope="scope">-->
<!--<router-link :to="'/macro/financing/details/'+ scope.row.projectEntityId" tag="a" class="a-link">{{ scope.row.projectEntity}}</router-link>--> <!--<router-link :to="'/macro/financing/details/'+ scope.row.projectEntityId" tag="a" class="a-link">{{ scope.row.projectEntity}}</router-link>-->
<!--</template>--> <!--</template>-->
...@@ -190,6 +190,9 @@ export default { ...@@ -190,6 +190,9 @@ export default {
} }
myChart.setOption(option); myChart.setOption(option);
}, },
formatStatus: function(row, column, cellValue) {
return cellValue? cellValue : '-'
},
sortChange({ column, prop, order }){ sortChange({ column, prop, order }){
if(prop === 'number'){ if(prop === 'number'){
this.queryParams.field = 'count' this.queryParams.field = 'count'
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<span class="common-title">全国经济大全</span> <span class="common-title">全国经济大全</span>
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small"> <el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
<el-form-item prop="year"> <el-form-item prop="year">
<el-select v-model="queryParams.year" filterable class="form-content-width" placeholder="请选择年度" @change="querySubmit"> <el-select v-model="queryParams.year" filterable class="form-content-width" placeholder="请选择年度" @change="handleSearch">
<el-option v-for="(item, index) in yearOptions" :key="index" :label="item.year" :value="item.year" /> <el-option v-for="(item, index) in yearOptions" :key="index" :label="item.year" :value="item.year" />
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
:options="addressList" :options="addressList"
:props="props" :props="props"
v-model="queryParams.address" v-model="queryParams.address"
@change="querySubmit" @change="handleSearch"
placeholder="地区选择" placeholder="地区选择"
collapse-tags collapse-tags
clearable></el-cascader> clearable></el-cascader>
...@@ -51,8 +51,8 @@ ...@@ -51,8 +51,8 @@
<img src="@/assets/images/icon_detailed.png" class="icon-detailed" @click="handleDetail(scope.row)"> <img src="@/assets/images/icon_detailed.png" class="icon-detailed" @click="handleDetail(scope.row)">
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="GDP(元)" prop="gdp" :formatter="formatStatus" sortable="custom" min-width="115" align="right"></el-table-column> <el-table-column label="GDP(亿元)" prop="gdp" :formatter="formatStatus" sortable="custom" min-width="115" align="right"></el-table-column>
<el-table-column label="GDP增速" prop="gdpGrowth" :formatter="formatStatus" sortable="custom" min-width="100" align="right"></el-table-column> <el-table-column label="GDP增速(%)" prop="gdpGrowth" :formatter="formatStatus" sortable="custom" min-width="100" align="right"></el-table-column>
<el-table-column label="人均GDP(元)" prop="gdpPerCapita" :formatter="formatStatus" sortable="custom" width="125" align="right"></el-table-column> <el-table-column label="人均GDP(元)" prop="gdpPerCapita" :formatter="formatStatus" sortable="custom" width="125" align="right"></el-table-column>
<el-table-column label="人口(万人)" prop="population" :formatter="formatStatus" sortable="custom" width="120" align="right"></el-table-column> <el-table-column label="人口(万人)" prop="population" :formatter="formatStatus" sortable="custom" width="120" align="right"></el-table-column>
<el-table-column label="一般公共预算收入 (亿元)" prop="gbr" sortable="custom" width="170" align="right"></el-table-column> <el-table-column label="一般公共预算收入 (亿元)" prop="gbr" sortable="custom" width="170" align="right"></el-table-column>
...@@ -62,8 +62,8 @@ ...@@ -62,8 +62,8 @@
<el-table-column label="政府性基金收入(亿元)" width="140" prop="govFundIncome" :formatter="formatStatus" sortable="custom" align="left"></el-table-column> <el-table-column label="政府性基金收入(亿元)" width="140" prop="govFundIncome" :formatter="formatStatus" sortable="custom" align="left"></el-table-column>
<el-table-column label="政府性基金收入:土地出让收入(亿元)" prop="landTransferIncome" sortable="custom" width="150" align="left"></el-table-column> <el-table-column label="政府性基金收入:土地出让收入(亿元)" prop="landTransferIncome" sortable="custom" width="150" align="left"></el-table-column>
<el-table-column label="政府性基金支出(亿元)" prop="govFundExpenditure" :formatter="formatStatus" width="170" sortable="custom" align="left"></el-table-column> <el-table-column label="政府性基金支出(亿元)" prop="govFundExpenditure" :formatter="formatStatus" width="170" sortable="custom" align="left"></el-table-column>
<el-table-column label="国有资经营收入(亿元)" prop="soecoi" width="160" :formatter="formatStatus" align="left"></el-table-column> <el-table-column label="国有资经营收入(亿元)" prop="soecoi" width="160" :formatter="formatStatus" align="left"></el-table-column>
<el-table-column label="国有资经营支出(亿元)" prop="soecoe" width="160" :formatter="formatStatus" align="left"></el-table-column> <el-table-column label="国有资经营支出(亿元)" prop="soecoe" width="160" :formatter="formatStatus" align="left"></el-table-column>
<el-table-column label="固定资产投资(亿元)" prop="fixedInvestment" :formatter="formatStatus" width="160" align="left"></el-table-column> <el-table-column label="固定资产投资(亿元)" prop="fixedInvestment" :formatter="formatStatus" width="160" align="left"></el-table-column>
<el-table-column label="财政自给率(%)" prop="fiscalSelfSufficiencyRate" :formatter="formatStatus" width="160" align="left"></el-table-column> <el-table-column label="财政自给率(%)" prop="fiscalSelfSufficiencyRate" :formatter="formatStatus" width="160" align="left"></el-table-column>
<el-table-column label="地方政府债务余额(亿元)" prop="govDebtBalance" :formatter="formatStatus" width="160" align="left"></el-table-column> <el-table-column label="地方政府债务余额(亿元)" prop="govDebtBalance" :formatter="formatStatus" width="160" align="left"></el-table-column>
...@@ -275,6 +275,10 @@ ...@@ -275,6 +275,10 @@
this.pageIndex = 1; this.pageIndex = 1;
this.querySubmit() this.querySubmit()
}, },
handleSearch(){
this.pageIndex = 1
this.querySubmit()
},
} }
} }
</script> </script>
......
...@@ -80,10 +80,10 @@ ...@@ -80,10 +80,10 @@
<span class="common-title">全国招标项目概览</span> <span class="common-title">全国招标项目概览</span>
</div> </div>
</div> </div>
<div class="text">通过对近年全国招标数据进行分析,发现该企业主要集中在{{dataSort[0].label}}({{dataSort[0].count}}个)、{{dataSort[1].label}}({{dataSort[1].count}}个)进行招标。</div> <div class="text">通过对近年全国招标数据进行分析,发现该企业主要集中在{{dataSort[0].label}}({{dataSort[0].count}}个)、{{dataSort[1].label}}({{dataSort[1].count}}个)进行招标。</div>
<div class="main1"> <div class="main1">
<div id="gl-echarts" style="height: 250px"></div> <div id="gl-echarts" style="height: 250px"></div>
<p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为近年全国公开的招标项目,未公开的不含在内</p> <p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为近年全国公开的招标项目,未公开的不含在内</p>
</div> </div>
<div class="main2"> <div class="main2">
<div class="selectYear"> <div class="selectYear">
...@@ -125,63 +125,26 @@ export default { ...@@ -125,63 +125,26 @@ export default {
{ label: '近三年', value: '近三年' }, { label: '近三年', value: '近三年' },
{ label: '近一年', value: '近一年' }, { label: '近一年', value: '近一年' },
], ],
zbData:['广东','江苏','山东','浙江','河南','安徽','河北','四川','湖北','江西','甘肃','重庆','福建','云南','北京','湖南','山西'],
zbData1:[123,156,236,426,412,231,96,105,210,420,213,86,120,230,150,132,196],
tableData:[ tableData:[
{ {
area:'广东', type:'',
number:'123', count:'',
zb:'0.19%'
}, },
{ {
area:'江苏', type:'',
number:'156', count:'',
zb:'0.29%'
}, },
{ {
area:'山东', type:'',
number:'236', count:'',
zb:'0.34%'
}, },
{ {
area:'浙江', type:'',
number:'426', count:'',
zb:'0.34%'
}, },
{ {
area:'河南', type:'',
number:'412', count:'',
zb:'0.34%'
},
{
area:'安徽',
number:'231',
zb:'0.34%'
},
{
area:'河北',
number:'96',
zb:'0.34%'
},
{
area:'四川',
number:'105',
zb:'0.34%'
},
{
area:'湖北',
number:'210',
zb:'0.34%'
},
{
area:'江西',
number:'420',
zb:'0.34%'
},
{
area:'甘肃',
number:'213',
zb:'0.34%'
}, },
], ],
tableData1:[], tableData1:[],
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<span class="common-title">全国建筑企业概览</span> <span class="common-title">全国建筑企业概览</span>
</div> </div>
</div> </div>
<div class="text">截止2022年8月1日,全国共有建筑工程施工总承包资质的企业197572家,其中特级资质企业118家,占比0.06%;一级资质企业3879家,占比1.96%;二级资质企业22235家,占比11.25%;三级资质企业171340家,占比86.73%</div> <div class="text">截止{{currentdate}},全国共有建筑工程施工总承包资质的企业{{total}}家,其中特级资质企业{{glDetail.tjCount}}家,占比{{glDetail.tjRate}}%;一级资质企业{{glDetail.tjCount}}家,占比{{glDetail.oneRate}}%;二级资质企业{{glDetail.twoCount}}家,占比{{glDetail.twoRate}}%;三级资质企业{{glDetail.threeCount}}家,占比{{glDetail.threeRate}}%</div>
<div class="main1"> <div class="main1">
<div style="height: 300px;"> <div style="height: 300px;">
<div class="left"> <div class="left">
...@@ -107,7 +107,8 @@ ...@@ -107,7 +107,8 @@
<span class="common-title">全国建筑企业备案分布</span> <span class="common-title">全国建筑企业备案分布</span>
</div> </div>
</div> </div>
<div class="text">通过对全国建筑工程总承包一级及以上资质企业的备案数据分析,我们发现这些优质企业主要去了广东、安徽、江西、福建、湖北、浙江等地开展经营。</div> <div class="text">
通过对全国建筑工程总承包一级及以上资质企业的备案数据分析,我们发现这些优质企业主要去了<span v-for="(item,index) in rankList">{{item.province}}{{ rankList.length === index+1 ? '':'、'}}</span>等地开展经营。</div>
<div class="main1"> <div class="main1">
<div id="ba-echarts" style="height: 250px"></div> <div id="ba-echarts" style="height: 250px"></div>
<p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为公开企业备案地数据。</p> <p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为公开企业备案地数据。</p>
...@@ -124,7 +125,7 @@ ...@@ -124,7 +125,7 @@
<template slot-scope="scope">{{ scope.$index + 1 }}</template> <template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="province" label="地区"/> <el-table-column prop="province" label="地区"/>
<el-table-column prop="count" label="企业异地备案数量(个)"/> <el-table-column prop="count" label="企业异地备案数量(个)" sortable/>
<!--<el-table-column prop="zb" label="占比"/>--> <!--<el-table-column prop="zb" label="占比"/>-->
</el-table> </el-table>
</div> </div>
...@@ -208,22 +209,28 @@ export default { ...@@ -208,22 +209,28 @@ export default {
dqData:[], dqData:[],
qydqIndex:0, qydqIndex:0,
zbData:[], zbData:[],
jzdqData:[] rankList:[],
jzdqData:[],
currentdate:'',
total:'',
glDetail:{},
} }
}, },
created() { created() {
this.getData() this.getData()
var date = new Date()
var year = date.getFullYear()
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth()+ 1
var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
this.currentdate=year + '-' +month + '-' + day;
}, },
methods: { methods: {
getData(){ getData(){
//全国建筑企业概览 //全国建筑企业概览
certGroupByMajorAndLevel().then(res => { certGroupByMajorAndLevel().then(res => {
this.glData=res.data;
this.jzglData=this.glData[0].levelList.reverse();
let list=[]; let list=[];
for (let i=0; i<res.data.length; i++){ for (let i=0; i<res.data.length; i++){
res.data[i].levelList=res.data[i].levelList.reverse();
let item={}; let item={};
item.major=res.data[i].major; item.major=res.data[i].major;
for (let j=0; j<res.data[i].levelList.length; j++){ for (let j=0; j<res.data[i].levelList.length; j++){
...@@ -247,7 +254,16 @@ export default { ...@@ -247,7 +254,16 @@ export default {
// item.levelList=res.data[i].levelList.reverse(); // item.levelList=res.data[i].levelList.reverse();
list.push(item) list.push(item)
} }
this.zzTableData=list this.zzTableData=list;
this.glData=res.data;
this.jzglData=this.glData[0].levelList;
this.glDetail=list[0]
let total=0;
for(let i=0; i<this.jzglData.length; i++){
total=total+this.jzglData[i].count
}
this.total=total;
this.initChart() this.initChart()
}) })
certGroupByMajorProvinceLevel().then(res => { certGroupByMajorProvinceLevel().then(res => {
...@@ -282,6 +298,15 @@ export default { ...@@ -282,6 +298,15 @@ export default {
}) })
areaGroupByProvince().then(res => { areaGroupByProvince().then(res => {
this.zbData=res.data; this.zbData=res.data;
let arr=this.zbData.sort((old,New)=>{
return New.count - old.count
})
let data=[]
for(let i=0; i<5; i++){
data.push(arr[i])
}
this.rankList=data;
this.initChart2() this.initChart2()
}) })
}, },
...@@ -338,6 +363,7 @@ export default { ...@@ -338,6 +363,7 @@ export default {
} }
] ]
} }
myChart.clear();
myChart.setOption(option); myChart.setOption(option);
}, },
initChart1() { initChart1() {
...@@ -563,7 +589,13 @@ export default { ...@@ -563,7 +589,13 @@ export default {
handleClick(type,index){ handleClick(type,index){
if(type === 1){ if(type === 1){
this.typeIndex=index; this.typeIndex=index;
this.jzglData=this.glData[index].levelList.reverse(); this.jzglData=this.glData[index].levelList;
let total=0
for(let i=0; i<this.jzglData.length; i++){
total=total+this.jzglData[i].count
}
this.total=total;
this.glDetail=this.zzTableData[index]
this.initChart() this.initChart()
} }
if(type === 2){ if(type === 2){
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
</div> </div>
</div> </div>
<div class="search"> <div class="search">
<el-radio-group v-model="queryParams.radio" @change="querySubmit"> <el-radio-group v-model="queryParams.radio" @change="changeRadio">
<el-radio label="1">含下属辖区</el-radio> <el-radio label="1">含下属辖区</el-radio>
<el-radio label="2">本级</el-radio> <el-radio label="2">本级</el-radio>
</el-radio-group> </el-radio-group>
...@@ -89,7 +89,7 @@ ...@@ -89,7 +89,7 @@
</div> </div>
<el-input class="search-input" placeholder="输入企业名称关键词" v-model="queryParams.keyword"> <el-input class="search-input" placeholder="输入企业名称关键词" v-model="queryParams.keyword">
<template slot="prepend"><i class="el-icon-search"></i></template> <template slot="prepend"><i class="el-icon-search"></i></template>
<el-button slot="append" @click="querySubmit">搜索</el-button> <el-button slot="append" @click="handleKeyword">搜索</el-button>
</el-input> </el-input>
</div> </div>
<div class="list-box"> <div class="list-box">
...@@ -165,14 +165,14 @@ ...@@ -165,14 +165,14 @@
<!--</template>--> <!--</template>-->
</el-table-column> </el-table-column>
<el-table-column prop="biddingCount" label="招标数量" :formatter="formatStatus" sortable="custom" width="120" /> <el-table-column prop="biddingCount" label="招标数量" :formatter="formatStatus" sortable="custom" width="120" />
<el-table-column prop="landInfoCount" label="城投拿地" :formatter="formatStatus" sortable="custom" width="140" /> <el-table-column prop="landInfoCount" label="城投拿地" :formatter="formatStatus" sortable="custom" width="100" />
<el-table-column prop="supplierCount" label="供应商" :formatter="formatStatus" sortable="custom" width="170" /> <el-table-column prop="supplierCount" label="供应商" :formatter="formatStatus" sortable="custom" width="100" />
<el-table-column prop="bratingSubjectLevel" label="主体评级" :formatter="formatStatus" sortable="custom" width="140" /> <el-table-column prop="bratingSubjectLevel" label="主体评级" :formatter="formatStatus" sortable="custom" width="140" />
<el-table-column prop="bondBalance" label="债券余额(亿元)" :formatter="formatStatus" sortable="custom" width="140" /> <el-table-column prop="bondBalance" label="债券余额(亿元)" :formatter="formatStatus" sortable="custom" width="140" />
<el-table-column prop="uipExecutiveLevel" label="行政级别" :formatter="formatStatus" width="140" /> <el-table-column prop="uipExecutiveLevel" label="行政级别" :formatter="formatStatus" width="110" />
<el-table-column prop="shareholderBg" label="股东背景" :formatter="formatStatus" width="140" /> <el-table-column prop="shareholderBg" label="股东背景" :formatter="formatStatus" width="110" />
<el-table-column prop="equityRelationship" label="股权关系" :formatter="formatStatus" width="140" /> <el-table-column prop="equityRelationship" label="股权关系" :formatter="formatStatus" width="110" />
<el-table-column prop="platformImportance" label="平台重要性" :formatter="formatStatus" width="140" /> <el-table-column prop="platformImportance" label="平台重要性" :formatter="formatStatus" width="110" />
<el-table-column prop="uipBusinessType" label="城投业务类型" :formatter="formatStatus" width="140" > <el-table-column prop="uipBusinessType" label="城投业务类型" :formatter="formatStatus" width="140" >
<template slot="header" slot-scope="scope"> <template slot="header" slot-scope="scope">
<span>城投业务类型 <span>城投业务类型
...@@ -182,42 +182,42 @@ ...@@ -182,42 +182,42 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="actualController" label="实控人" :formatter="formatStatus" width="200" /> <el-table-column prop="actualController" label="实控人" :formatter="formatStatus" width="250" />
<el-table-column prop="latestReportPeriod" label="最新报告期" :formatter="formatStatus" width="120" /> <el-table-column prop="latestReportPeriod" label="最新报告期" :formatter="formatStatus" width="120" />
<el-table-column prop="totalAssets" label="总资产(亿元)" :formatter="formatStatus" sortable="custom" width="120" /> <el-table-column prop="totalAssets" label="总资产(亿元)" :formatter="formatStatus" sortable="custom" width="120" />
<el-table-column prop="belongNetAssets" label="归母净资产(亿元)" :formatter="formatStatus" sortable="custom" width="160" /> <el-table-column prop="belongNetAssets" label="归母净资产(亿元)" :formatter="formatStatus" sortable="custom" width="160" />
<el-table-column prop="monetaryFunds" label="货币资金(亿元)" :formatter="formatStatus" sortable="custom" width="160" /> <el-table-column prop="monetaryFunds" label="货币资金(亿元)" :formatter="formatStatus" sortable="custom" width="150" />
<el-table-column prop="landAssets" label="土地资产(亿元)" :formatter="formatStatus" sortable="custom" width="160" /> <el-table-column prop="landAssets" label="土地资产(亿元)" :formatter="formatStatus" sortable="custom" width="150" />
<el-table-column prop="restrictedAssets" label="受限资产(亿元)" :formatter="formatStatus" sortable="custom" width="160" /> <el-table-column prop="restrictedAssets" label="受限资产(亿元)" :formatter="formatStatus" sortable="custom" width="150" />
<el-table-column prop="accountsReceivable" label="应收账款(亿元)" :formatter="formatStatus" sortable="custom" width="160" /> <el-table-column prop="accountsReceivable" label="应收账款(亿元)" :formatter="formatStatus" sortable="custom" width="150" />
<el-table-column prop="otherReceivable" label="其他应收款(亿元)" :formatter="formatStatus" sortable="custom" width="160" /> <el-table-column prop="otherReceivable" label="其他应收款(亿元)" :formatter="formatStatus" sortable="custom" width="160" />
<el-table-column prop="econData001" label="公益性&准公益性主营占比(%)" :formatter="formatStatus" width="160" /> <el-table-column prop="econData001" label="公益性&准公益性主营占比(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="receivableFromGovRatio" label="应收类款项来自政府占比(%)" :formatter="formatStatus" width="160" /> <el-table-column prop="receivableFromGovRatio" label="应收类款项来自政府占比(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="govSubsidy" label="政府补助(亿元)" :formatter="formatStatus" width="120" /> <el-table-column prop="govSubsidy" label="政府补助(亿元)" :formatter="formatStatus" width="130" />
<el-table-column prop="specialPayable" label="专项应付款(亿元)" :formatter="formatStatus" width="140" /> <el-table-column prop="specialPayable" label="专项应付款(亿元)" :formatter="formatStatus" width="140" />
<el-table-column prop="operatingIncome" label="营业收入(亿元)" :formatter="formatStatus" width="140" /> <el-table-column prop="operatingIncome" label="营业收入(亿元)" :formatter="formatStatus" width="130" />
<el-table-column prop="belongNetProfit" label="归母净利润(亿元)" :formatter="formatStatus" width="140" /> <el-table-column prop="belongNetProfit" label="归母净利润(亿元)" :formatter="formatStatus" width="140" />
<el-table-column prop="roe" label="净资产收益率(%)" :formatter="formatStatus" width="140" /> <el-table-column prop="roe" label="净资产收益率(%)" :formatter="formatStatus" width="140" />
<el-table-column prop="netOperatingCashFlow" label="经营现金流量净额(亿元)" :formatter="formatStatus" width="160" /> <el-table-column prop="netOperatingCashFlow" label="经营现金流量净额(亿元)" :formatter="formatStatus" width="160" />
<el-table-column prop="netFinancingCashFlow" label="筹资现金流量净额(亿元)" :formatter="formatStatus" width="160" /> <el-table-column prop="netFinancingCashFlow" label="筹资现金流量净额(亿元)" :formatter="formatStatus" width="160" />
<el-table-column prop="netInvestmentCashFlow" label="投资现金流量净额(亿元)" :formatter="formatStatus" width="160" /> <el-table-column prop="netInvestmentCashFlow" label="投资现金流量净额(亿元)" :formatter="formatStatus" width="160" />
<el-table-column prop="totalLiabilities" label="总负债(亿元)" :formatter="formatStatus" width="160" /> <el-table-column prop="totalLiabilities" label="总负债(亿元)" :formatter="formatStatus" width="120" />
<el-table-column prop="uipInterestBearingDebt" label="有息债务(亿元)" :formatter="formatStatus" width="160" /> <el-table-column prop="uipInterestBearingDebt" label="有息债务(亿元)" :formatter="formatStatus" width="140" />
<el-table-column prop="econData002" label="有息债务/总负债(%)" :formatter="formatStatus" width="160" /> <el-table-column prop="econData002" label="有息债务/总负债(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="tdr" label="资产负债率(%)" :formatter="formatStatus" width="160" /> <el-table-column prop="tdr" label="资产负债率(%)" :formatter="formatStatus" width="140" />
<el-table-column prop="ofcb" label="综合融资成本(%)" :formatter="formatStatus" width="160" /> <el-table-column prop="ofcb" label="综合融资成本(%)" :formatter="formatStatus" width="150" />
<el-table-column prop="cashRatio" label="现金比率" :formatter="formatStatus" width="160" /> <el-table-column prop="cashRatio" label="现金比率" :formatter="formatStatus" width="110" />
<el-table-column prop="cashFlowRatio" label="现金流量比率" :formatter="formatStatus" width="160" /> <el-table-column prop="cashFlowRatio" label="现金流量比率" :formatter="formatStatus" width="120" />
<el-table-column prop="cashDebtRatio" label="现金到期债务比" :formatter="formatStatus" width="160" /> <el-table-column prop="cashDebtRatio" label="现金到期债务比" :formatter="formatStatus" width="120" />
<el-table-column prop="creditBalance" label="授信余额(亿元)" :formatter="formatStatus" width="160" /> <el-table-column prop="creditBalance" label="授信余额(亿元)" :formatter="formatStatus" width="130" />
<el-table-column prop="econData003" label="授信余额/全部债务(%)" :formatter="formatStatus" width="160" /> <el-table-column prop="econData003" label="授信余额/全部债务(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="ebitdaIcr" label="EBITDA保障倍数" :formatter="formatStatus" width="160" /> <el-table-column prop="ebitdaIcr" label="EBITDA保障倍数" :formatter="formatStatus" width="150" />
<el-table-column prop="ppnBalanceProp" label="私募债余额占比(%)" :formatter="formatStatus" width="160" /> <el-table-column prop="ppnBalanceProp" label="私募债余额占比(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="econData004" label="一年内到期债权占比(%)" :formatter="formatStatus" width="160" /> <el-table-column prop="econData004" label="一年内到期债权占比(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="econData005" label="债券余额/有息债务(%)" :formatter="formatStatus" width="160" /> <el-table-column prop="econData005" label="债券余额/有息债务(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="loan" label="借款余额(亿元)" :formatter="formatStatus" width="160" /> <el-table-column prop="loan" label="借款余额(亿元)" :formatter="formatStatus" width="140" />
<el-table-column prop="econData006" label="借款/有息债务(%)" :formatter="formatStatus" width="160" /> <el-table-column prop="econData006" label="借款/有息债务(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="nonStandardBalance" label="非标余额(亿元)" :formatter="formatStatus" width="160" /> <el-table-column prop="nonStandardBalance" label="非标余额(亿元)" :formatter="formatStatus" width="140" />
<el-table-column prop="nonStandardRatio" label="非标余额/有息债务(%)" :formatter="formatStatus" width="160" /> <el-table-column prop="nonStandardRatio" label="非标余额/有息债务(%)" :formatter="formatStatus" width="160" />
<el-table-column prop="guaranteeAmount" label="对外担保金额(亿元)" :formatter="formatStatus" width="160" /> <el-table-column prop="guaranteeAmount" label="对外担保金额(亿元)" :formatter="formatStatus" width="160" />
<el-table-column prop="guaranteeRatio" label="对外担保比例(%)" :formatter="formatStatus" width="160" /> <el-table-column prop="guaranteeRatio" label="对外担保比例(%)" :formatter="formatStatus" width="160" />
...@@ -289,7 +289,6 @@ export default { ...@@ -289,7 +289,6 @@ export default {
methods: { methods: {
getType(){ getType(){
uipGroupData().then(res => { uipGroupData().then(res => {
console.log(res.data)
this.typeList=res.data; this.typeList=res.data;
}) })
}, },
...@@ -501,6 +500,7 @@ export default { ...@@ -501,6 +500,7 @@ export default {
} }
break; break;
} }
this.pageIndex = 1;
this.querySubmit() this.querySubmit()
}, },
formatStatus: function(row, column, cellValue) { formatStatus: function(row, column, cellValue) {
...@@ -519,6 +519,14 @@ export default { ...@@ -519,6 +519,14 @@ export default {
this.pageIndex = 1; this.pageIndex = 1;
this.querySubmit() this.querySubmit()
}, },
handleKeyword(){
this.pageIndex = 1;
this.querySubmit()
},
changeRadio(){
this.pageIndex = 1;
this.querySubmit()
},
}, },
} }
</script> </script>
......
...@@ -686,7 +686,7 @@ export default { ...@@ -686,7 +686,7 @@ export default {
color: #FFFFFF; color: #FFFFFF;
.img{ .img{
background: url("../../../assets/images/project/add_2.png") no-repeat center center; background: url("../../../assets/images/project/add_2.png") no-repeat center center;
background-size: 100%;
} }
} }
} }
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<img src="@/assets/images/project/empty.png"> <img src="@/assets/images/project/empty.png">
<div class="p1">暂无数据展示</div> <div class="p1">暂无数据展示</div>
<div class="p2">抱歉,你还未添加相关数据,快去添加吧</div> <div class="p2">抱歉,你还未添加相关数据,快去添加吧</div>
<div class="btn btn_primary h36 w102" @click="opennew">新增联系人</div> <div class="btn btn_primary h36 w102" @click="opennew">新增相关企业</div>
</div> </div>
</template> </template>
<el-table-column <el-table-column
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
<img src="@/assets/images/economies/icon.png"> <img src="@/assets/images/economies/icon.png">
<span>新建相关企业-{{types}}</span> <span>新建相关企业-{{types}}</span>
</div> </div>
<el-form class="popform i" label-width="85px" :rules="rules" ref="ruleForm" > <el-form class="popform i":model="queryParam" label-width="85px" :rules="rules" ref="ruleForm" >
<el-form-item label="企业名称:" prop="companyName" class="row"> <el-form-item label="企业名称:" prop="companyName" class="row">
<el-input type="text" v-model="queryParam.companyName" placeholder="请输入"></el-input> <el-input type="text" v-model="queryParam.companyName" placeholder="请输入"></el-input>
</el-form-item> </el-form-item>
...@@ -154,25 +154,7 @@ ...@@ -154,25 +154,7 @@
nowedit:-1,//当前正在编辑的文本 nowedit:-1,//当前正在编辑的文本
tipslit:[],//项目标签 tipslit:[],//项目标签
tipsvalue:"",//标签填写内容 tipsvalue:"",//标签填写内容
tableData: [ tableData: [],
{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}
],
typelist:['对接深度:','合作阶段:','竞争力度:'], typelist:['对接深度:','合作阶段:','竞争力度:'],
typename:"", typename:"",
rules:{ rules:{
...@@ -224,6 +206,8 @@ ...@@ -224,6 +206,8 @@
}, },
addqy(){ addqy(){
addXGQY(this.queryParam).then(res=>{ addXGQY(this.queryParam).then(res=>{
this.hzhbVisible=false
this.dialogVisible=false
if(res.code == 200){ if(res.code == 200){
this.$message.success('添加成功!') this.$message.success('添加成功!')
this.getlist() this.getlist()
......
...@@ -10,8 +10,8 @@ ...@@ -10,8 +10,8 @@
<el-tab-pane label="公司全部项目" name="second"></el-tab-pane> <el-tab-pane label="公司全部项目" name="second"></el-tab-pane>
<div class="searchInput"> <div class="searchInput">
<el-input type="text" placeholder="请输入项目或业主单位名称关键词进行搜索"></el-input> <el-input type="text" v-model="searchParam.projectName" placeholder="请输入项目或业主单位名称关键词进行搜索"></el-input>
<div class="btn">搜索</div> <div class="btn" @click="getList(1)">搜索</div>
</div> </div>
<div class="sellist"> <div class="sellist">
<div class="selli"> <div class="selli">
...@@ -283,6 +283,7 @@ export default { ...@@ -283,6 +283,7 @@ export default {
}else{ }else{
this.searchParam.userId = null this.searchParam.userId = null
} }
this.searchParam.ownerCompany = this.searchParam.projectName
getProjectlist(this.searchParam).then(result=>{ getProjectlist(this.searchParam).then(result=>{
if(result.code == 200){ if(result.code == 200){
this.datalist = result.rows this.datalist = result.rows
...@@ -315,6 +316,7 @@ export default { ...@@ -315,6 +316,7 @@ export default {
pageNum:1, pageNum:1,
pageSize:10, pageSize:10,
} }
this.getList(1)
}, },
//地区 //地区
async prvinceTree() { async prvinceTree() {
......
...@@ -50,13 +50,13 @@ ...@@ -50,13 +50,13 @@
// tablist // tablist
personnelList: [{ personnelList: [{
key: 'debtProject', key: 'debtProject',
status: false, status: true,
value: '企业专项债项目', value: '企业专项债项目',
}, },
{ {
key: 'Land', key: 'Land',
status: true, status: false,
value: '土地交易', value: '土地交易',
}, },
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
}, },
], ],
personnelHerf:'Land' personnelHerf:'debtProject'
} }
}, },
created() {}, created() {},
......
...@@ -144,7 +144,7 @@ public class EnterpriseService { ...@@ -144,7 +144,7 @@ public class EnterpriseService {
public R getUipId(String companyName) throws Exception { public R getUipId(String companyName) throws Exception {
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("companyName",companyName); params.put("companyName", companyName);
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/getUipId", params); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/getUipId", params);
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
...@@ -186,7 +186,7 @@ public class EnterpriseService { ...@@ -186,7 +186,7 @@ public class EnterpriseService {
} }
public R uipGroupData() throws Exception { public R uipGroupData() throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/uipGroupData", null); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/uipGroupData", new HashMap<>());
return BeanUtil.toBean(map, R.class); return BeanUtil.toBean(map, R.class);
} }
......
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