Commit 76af4e7c authored by yht15023815643's avatar yht15023815643

业主详情优化

parent 963df5ab
......@@ -8,3 +8,11 @@ export function infoHeader(data) {
data: data
})
}
//企业数据统计
export function statistic(data) {
return request({
url: '/enterprise/statistic',
method: 'post',
data: data
})
}
......@@ -202,6 +202,14 @@ aside {
white-space: nowrap;
overflow: hidden;
}
.text-cl2{
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
line-clamp: 2;
-webkit-box-orient: vertical;
}
ul, li {
list-style: none;
......
......@@ -50,6 +50,10 @@ export default {
type: Boolean,
default: true
},
statisticObj:{
type:Object,
default: {}
},
isCustomer: {
type: Boolean,
default: false
......@@ -143,6 +147,139 @@ export default {
created() {
this.defaultRoute = JSON.parse(JSON.stringify(this.sideRoute))
},
watch:{
statisticObj:{
handler(val) {
let arr = JSON.parse(JSON.stringify(val))
for(var i in arr){
for(var j in arr[i]){
switch (j) {
case 'ownershipStructure':
if(arr[i][j]<1){
this.sideRoute[0].children[2].disabled = true;
}
break;
case 'leadingMember':
if(arr[i][j]<1){
this.sideRoute[0].children[3].disabled = true;
}
break;
case 'outboundInvestment':
if(arr[i][j]<1){
this.sideRoute[0].children[4].disabled = true;
}
break;
case 'branch':
if(arr[i][j]<1){
this.sideRoute[0].children[5].disabled = true;
}
break;
case 'landInfo':
if(arr[i][j]<1){
this.sideRoute[2].children[0].disabled = true;
}
break;
case 'busProposedProjectV1':
if(arr[i][j]<1){
this.sideRoute[2].children[1].disabled = true;
}
break;
case 'specialDebt':
if(arr[i][j]<1){
this.sideRoute[2].children[2].disabled = true;
}
break;
case 'bidPlan':
if(arr[i][j]<1){
this.sideRoute[2].children[3].disabled = true;
}
break;
case 'biddingAnnouncement':
if(arr[i][j]<1){
this.sideRoute[2].children[4].disabled = true;
}
break;
case 'proCount':
if(arr[i][j]<1){
this.sideRoute[2].children[5].disabled = true;
}
break;
case 'adminLicensing':
if(arr[i][j]<1){
this.sideRoute[2].children[6].disabled = true;
}
break;
case 'customer':
if(arr[i][j]<1){
this.sideRoute[3].children[0].disabled = true;
}
break;
case 'supplier':
if(arr[i][j]<1){
this.sideRoute[3].children[1].disabled = true;
}
break;
case 'coopBiddingAgency':
if(arr[i][j]<1){
this.sideRoute[3].children[2].disabled = true;
}
break;
case 'historySend':
if(arr[i][j]<1){
this.sideRoute[3].children[3].disabled = true;
}
break;
case 'tenderRecordV1':
if(arr[i][j]<1){
this.sideRoute[3].children[4].disabled = true;
}
break;
case 'adminSanction':
if(arr[i][j]<1){
this.sideRoute[5].children[0].disabled = true;
}
break;
case 'abnormalOperation':
if(arr[i][j]<1){
this.sideRoute[5].children[1].disabled = true;
}
break;
case 'dishonestExecutee':
if(arr[i][j]<1){
this.sideRoute[5].children[2].disabled = true;
}
break;
case 'dishonestExecutor':
if(arr[i][j]<1){
this.sideRoute[5].children[3].disabled = true;
}
break;
case 'adjudicativeDoc':
if(arr[i][j]<1){
this.sideRoute[5].children[4].disabled = true;
}
break;
case 'courtAnnouncement':
if(arr[i][j]<1){
this.sideRoute[5].children[5].disabled = true;
}
break;
case 'openAnnouncement':
if(arr[i][j]<1){
this.sideRoute[5].children[6].disabled = true;
}
break;
default:
break;
}
}
}
}
}
},
methods: {
handleOpen(key, keyPath) {
......
......@@ -3,7 +3,7 @@
<Header :company-id="companyId" :companyInfo="companyInfo" :cooDetail="cooDetail" v-if="companyId" @close-detail="closeDetail" />
<div class="flex-box part-main">
<div class="part-left">
<side-bar @currentPath="showPartPage" :pathName="currentPath.pathName" :partBoxHeight="partBoxHeight" :customerId="customerId" :isCompany="isCompany" :isCustomer="isCustomer" />
<side-bar :statisticObj="statisticObj" @currentPath="showPartPage" :pathName="currentPath.pathName" :partBoxHeight="partBoxHeight" :customerId="customerId" :isCompany="isCompany" :isCustomer="isCustomer" />
</div>
<div class="part-right">
<div id="partBox" v-if="companyId">
......@@ -64,7 +64,7 @@
<script>
import { idRemark } from '@/api/common'
import { infoHeader } from '@/api/detail/party-a/index'
import { infoHeader,statistic } from '@/api/detail/party-a/index'
import { customerInfo } from '@/api/detail/party-a/cooperate'
import elementResizeDetectorMaker from "element-resize-detector"
import Header from "./component/Header"
......@@ -156,6 +156,7 @@ export default {
currentPath: {
pathName: 'overview' //默认展示页
},
statisticObj:{},
partBoxHeight: null,
cooDetail: false
}
......@@ -234,10 +235,17 @@ export default {
this.$nextTick(() => {
this.listenSider()
})
this.handleQuery()
this.getStatistic();
this.handleQuery();
this.association(this.$route.query.customerId)
}
},
async getStatistic(){
let res = await statistic({companyId:this.companyId});
if(res.code==200){
this.statisticObj = res.data
}
},
async handleQuery() {
let res = await infoHeader({companyId:this.companyId})
if(res.code==200){
......
......@@ -5,6 +5,7 @@
:form-data="formData"
:query-params="queryParams"
:isExcel="true"
@handle-search="handleSearch"
:total="tableDataTotal"
/>
......@@ -59,7 +60,10 @@ export default {
{label: '标的物类型', prop: 'objectType', minWidth: '100'},
{label: '预计招标日期', prop: 'planTenderDateStart', sortable: 'custom', descending: '15', ascending: '16', minWidth: '110'}
],
formData: [],
formData: [
{ type: 4, fieldName: 'buildingProjectType', value: '', placeholder: '项目类型', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目名称关键词查询', options: [], width: 220}
],
//列表
tableLoading:false,
tableData:[],
......
......@@ -52,7 +52,7 @@ export default {
defaultSort: {prop: 'planStartTime', order: 'descending'},
forData: [
{label: '项目名称', prop: 'projectName', minWidth: '300', slot: true},
{label: '成交金额(万元)', prop: 'money', sortable: 'custom', descending: '1', ascending: '2', width: '150'},
// {label: '成交金额(万元)', prop: 'money', sortable: 'custom', descending: '1', ascending: '2', width: '150'},
{label: '项目类别', prop: 'projectCategories', width: '100'},
{label: '计划开工日期', prop: 'planStartTime', sortable: 'custom', descending: '3', ascending: '4', width: '130'},
{label: '计划完工日期', prop: 'planEndTime', sortable: 'custom', descending: '13', ascending: '14', width: '130'},
......
......@@ -4,6 +4,7 @@
<el-tabs v-model="activeName" @tab-click="handleClick" class="tabpane selfTab">
<el-tab-pane label="股东" name="first"></el-tab-pane>
<el-tab-pane label="对外投资" name="second"></el-tab-pane>
<el-tab-pane label="分支机构" name="third"></el-tab-pane>
</el-tabs>
<div class="table-item">
<div class="rela-person" v-show="activeName=='first'">实际控制人:{{financial&&financial.actualController || '--'}}</div>
......@@ -69,14 +70,35 @@
</div>
</template>
</el-table>
<el-table :data="affiliatesData" border style="width: 100%" v-show="activeName=='third'">
<el-table-column label="序号" width="55" align="left" >
<template slot-scope="scope">{{ affiliatesParams.pageNum * affiliatesParams.pageSize - affiliatesParams.pageSize + scope.$index + 1 }}</template>
</el-table-column>
<el-table-column min-width="140" label="被投资企业名称">
<template slot-scope="scope">
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.id)}`:`/company/${encodeStr(scope.row.id)}`" tag="a" class="a-link" v-if="scope.row.id&&scope.row.name" v-html="scope.row.name"></router-link>
<div v-else v-html="scope.row.name || '--'"></div>
<div class="tags" v-if="scope.row.status || scope.row.biddingCount|| scope.row.landInfoCount|| scope.row.proposedProjectCount">
<span class="tag" :class="labelArr.includes(scope.row.status)?'style2':'style1'" v-if="scope.row.status">{{scope.row.status}}</span>
<span class="tag style1" v-if="scope.row.proposedProjectCount">拟建{{scope.row.proposedProjectCount}}</span>
<span class="tag style1" v-if="scope.row.landInfoCount">土地{{scope.row.landInfoCount}}</span>
<span class="tag style1" v-if="scope.row.biddingCount">招标{{scope.row.biddingCount}}</span>
</div>
</template>
</el-table-column>
<el-table-column prop="operName" label="负责人"></el-table-column>
<el-table-column prop="provinceCode" label="地区"></el-table-column>
<el-table-column prop="startDate" label="成立日期"></el-table-column>
</el-table>
<div class="rela-more" v-show="activeName=='second'&& shipTotal>shipParams.pageSize"><span class="a-link" @click="handlePath">查看更多数据 ></span></div>
<div class="rela-more" v-show="activeName=='third'&& affiliatesTotal>affiliatesParams.pageSize"><span class="a-link" @click="handlePath1">查看更多数据 ></span></div>
</div>
</div>
</template>
<script>
import {encodeStr, changePath} from "@/assets/js/common"
import {bestStockPage, investment} from '@/api/detail/party-a/overview'
import {bestStockPage, investment,affiliates} from '@/api/detail/party-a/overview'
import NoData from '../../component/noData'
export default {
name: 'Relationship',
......@@ -103,12 +125,20 @@ export default {
pageSize: 5
},
shipTotal: 0,
affiliatesData:[],
affiliatesParams: {
cid: this.companyId,
pageNum: 1,
pageSize: 5
},
affiliatesTotal: 0,
labelArr:['失信联合惩戒企业','严重行政处罚','司法纠纷','注销', '注销企业']
}
},
created() {
this.handleQuery()
this.handleInvest()
this.getAffiliatesData()
},
mounted() {
},
......@@ -136,10 +166,20 @@ export default {
this.shipTotal = res.total
}
},
async getAffiliatesData(){
let res = await affiliates(this.affiliatesParams)
if(res.code==200){
this.affiliatesData = res.rows
this.affiliatesTotal = res.total
}
},
handleClick(){
},
handlePath(){
changePath(this, 'overseas')
},
handlePath1(){
changePath(this, 'branch')
}
}
}
......
<template>
<div class="flex-box app-container part-container">
<div class="tender-list">
<div class="tender-list" ref="zbggScroll" @scroll="scrollbottom()">
<div class="common-title">招标公告</div>
<template v-if="zbggList.length>0">
<div class="tender-item" v-for="(item, index) in zbggList" :key="index">
<div class="flex-box tender-title"><div class="text-cl1" :title="item.projectName"><router-link :to="'/radar/Notice/details/'+item.bid" tag="a" class="a-link">{{item.projectName}}</router-link></div><span :class="item.projectCategory=='项目动态'?'style2':item.tag=='招投标'?'style4':'style1'" v-if="item.projectCategory">{{item.projectCategory}}</span></div>
<div class="tender-item" v-for="(item, index) in zbggList" :key="index">
<div class="flex-box tender-title"><div class="text-cl2" :title="item.projectName"><router-link :to="'/radar/Notice/details/'+item.bid" tag="a" class="a-link">{{item.projectName}}</router-link></div><span :class="item.projectCategory=='项目动态'?'style2':item.tag=='招投标'?'style4':'style1'" v-if="item.projectCategory">{{item.projectCategory}}</span></div>
<span class="tender-time"><span @click="handleUrl(item.url)" style="cursor: pointer;">{{item.dataSource}}</span> {{item.issueTime}}</span>
</div>
</template>
......@@ -12,11 +12,11 @@
<no-data />
</div>
</div>
<div class="tender-list">
<div class="tender-list" ref="trendScroll" @scroll="scrollbottom(true)">
<div class="common-title">企业动态</div>
<template v-if="trendList.length>0">
<div class="tender-item" v-for="(item, index) in trendList" :key="index">
<div class="flex-box tender-title"><div class="text-cl1" :title="tendTitle(item.details)">{{tendTitle(item.details)}}</div><span :class="item.parentDimension=='新增分支机构'?'style2':item.parentDimension=='新增施工工法'?'style3':'style1'">{{item.parentDimension}}</span></div>
<div class="flex-box tender-title"><div class="text-cl2" :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>
......@@ -42,17 +42,20 @@ export default {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 5
pageSize: 6
},
//招标公告数据
zbggList:[],
zbggTotal:0,
trendParams: {
companyId: this.companyId,
pageNum: 1,
pageSize: 5
pageSize: 6
},
//企业动态数据
trendList:[]
trendList:[],
trendTotal:0,
}
},
computed: {
......@@ -83,17 +86,54 @@ export default {
dynamicPage(this.trendParams)
])
if(notice.code==200){
this.zbggList = notice.rows
this.zbggList = notice.rows;
this.zbggTotal = notice.total;
}
if(namic.code==200){
this.trendList = namic.rows
this.trendList = namic.rows;
this.trendTotal = namic.total;
}
},
handleUrl(url){
if(url){
window.open(url, "_blank")
}
}
},
async getBidNotice(){
let notice = await bidNoticePage(this.zbggParams)
if(notice.code==200){
this.zbggTotal = notice.total;
this.zbggList = this.zbggList.concat(notice.rows)
}
},
async getDynamic(){
let dynamic = await dynamicPage(this.trendParams)
if(dynamic.code==200){
this.trendTotal = dynamic.total;
this.trendList = this.trendList.concat(dynamic.rows)
}
},
scrollbottom(type){
let scrllEl = type ? this.$refs.trendScroll : this.$refs.zbggScroll
let scrollHeight = scrllEl.scrollHeight
let clientHeight = scrllEl.clientHeight
let scrollTop = scrllEl.scrollTop
if(scrollHeight - (scrollTop+clientHeight) <= 1 ){
if(type){
if(this.trendParams.pageNum*this.trendParams.pageSize>=this.trendTotal){
return
}
this.trendParams.pageNum+=1;
this.getDynamic()
}else{
if(this.zbggParams.pageNum*this.zbggParams.pageSize>=this.zbggTotal){
return
}
this.zbggParams.pageNum+=1;
this.getBidNotice()
}
}
},
}
}
</script>
......@@ -108,8 +148,9 @@ export default {
width: calc(50% - 8px);
padding: 24px 16px;
background: #FFFFFF;
overflow: hidden;
overflow-y:scroll ;
border-radius: 4px;
height: 512px;
.common-title{
margin-bottom: 10px;
}
......
......@@ -133,7 +133,7 @@ export default {
border-radius: 4px;
.tab-header{
img{
margin-bottom: -3px;
margin-bottom: 2px;
width: 14px;
height: 14px;
cursor: pointer;
......
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