Commit bad2b995 authored by yht15023815643's avatar yht15023815643

甲方详情骨架图

parent d23becf8
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -81,11 +82,13 @@ export default {
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await oftenAgencyPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows.map((item)=>{
item.projectInfo = typeof item.projectInfo == 'string' ? JSON.parse(item.projectInfo) : item.projectInfo
return item
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
......@@ -70,11 +71,13 @@ export default {
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await tenderPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
}
this.tableDataTotal = res.total
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -83,11 +84,13 @@ export default {
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await clientPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){
this.tableData.forEach(item => {
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -93,11 +94,13 @@ export default {
},
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await historySendPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
}
this.tableDataTotal = res.total
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -83,11 +84,13 @@ export default {
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await supplierPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){
this.tableData.forEach(item => {
......
......@@ -2,7 +2,9 @@
<div class="app-container part-container">
<div class="financial-header">
<div class="common-title">财务简析</div>
<div class="flex-box header-box">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="flex-box header-box" v-else>
<div class="header-item">总资产<div class="header-item-amount"><template v-if="financialDetail.totalAssets"><span>{{saveFixed(financialDetail.totalAssets)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header01_ico.png"></div>
<div class="header-item">净资产<div class="header-item-amount"><template v-if="financialDetail.belongNetAssets"><span>{{saveFixed(financialDetail.belongNetAssets)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header02_ico.png"></div>
<div class="header-item">营业收入<div class="header-item-amount"><template v-if="financialDetail.operatingIncome"><span>{{saveFixed(financialDetail.operatingIncome)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header03_ico.png"></div>
......@@ -11,7 +13,9 @@
</div>
<div class="financial-zcqk">
<div class="common-title">资产情况</div>
<ul class="zcqk-list">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="zcqk-list" v-else>
<li v-for="(item, index) in zcqkList" :key="index" :style="zcqkList.length==1?'border-right: 0;':''">
<div class="zcqk-list-box" :style="(parity(zcqkList) && index==zcqkList.length-2) || (index == zcqkList.length-1)?'border-bottom: 0':''">
<div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{saveFixed(item.amount)}}</i>{{item.unit}}</span><span v-else>--</span></div>
......@@ -22,7 +26,9 @@
</div>
<div class="financial-ylnl">
<div class="common-title">盈利能力</div>
<ul class="flex-box ylnl-list">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="flex-box ylnl-list" v-else>
<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>
......@@ -31,7 +37,9 @@
</div>
<div class="financial-zwqk">
<div class="common-title">负债情况及偿债能力</div>
<div class="flex-box zwqk-box">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="flex-box zwqk-box" v-else>
<div class="zwqk-info">
<div class="zwqk-title">总负债</div>
<div class="zwqk-amount"><template v-if="financialDetail.totalLiabilities"><span>{{saveFixed(financialDetail.totalLiabilities)}}</span>亿元</template><template v-else><span>--</span></template></div>
......@@ -53,7 +61,9 @@
</div>
<div class="financial-zcqk">
<div class="common-title">资金情况</div>
<ul class="zcqk-list">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="zcqk-list" v-else>
<li v-for="(item, index) in zjqkList" :key="index" :style="zjqkList.length==1?'border-right: 0;':''">
<div class="zcqk-list-box" :style="(parity(zjqkList) && index==zjqkList.length-2) || (index == zjqkList.length-1)?'border-bottom: 0':''">
<div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{saveFixed(item.amount)}}</i>{{item.unit}}</span></div>
......@@ -69,15 +79,17 @@
import {saveFixed} from "@/assets/js/common"
import { financial } from '@/api/detail/party-a/financial'
import * as echarts from 'echarts'
import skeleton from '@/views/project/projectList/component/skeleton'
import NoData from '../component/noData'
export default {
name: 'Financial',
props: ['companyId'],
components: {
NoData
NoData,skeleton
},
data() {
return {
isSkeleton:true,
saveFixed,
financialDetail: {},
// 资产情况
......@@ -138,10 +150,12 @@ export default {
},
methods: {
async handleQuery() {
this.isSkeleton = true;
this.tableLoading = true
let res = await financial({cid:this.companyId})
this.tableLoading = false
if(res.code==200 && res.data){
this.isSkeleton = false;
this.financialDetail = res.data
//资产情况
let { totalAssets, belongNetAssets, monetaryFunds, accountsReceivable, landAssets, otherReceivable, restrictedAssets, receivableFromGovRatio, govSubsidy } = this.financialDetail
......
......@@ -9,7 +9,7 @@
<div id="partBox" v-if="companyId">
<template v-if="isCompany">
<!-- 企业概览 -->
<Overview v-if="currentPath.pathName=='overview'" :company-id="companyId" :companyInfo="companyInfo" />
<Overview v-if="currentPath.pathName=='overview'" :company-id="companyId" :isSkeleton="isSkeleton" :companyInfo="companyInfo" />
<Businfo v-if="currentPath.pathName=='businfo'" :company-id="companyId" />
<Holderinfo v-if="currentPath.pathName=='holderinfo'" :company-id="companyId" />
<Execuinfo v-if="currentPath.pathName=='execuinfo'" :company-id="companyId" />
......@@ -150,6 +150,7 @@ export default {
},
data() {
return {
isSkeleton:true,
companyInfo: {},
customerInfo: {},
companyId: '', //企业Id(测试默认3068)
......@@ -250,8 +251,10 @@ export default {
}
},
async handleQuery() {
this.isSkeleton = true;
let res = await infoHeader({companyId:this.companyId})
if(res.code==200){
this.isSkeleton = false;
this.companyInfo = res.data || {}
let data = {
pageNum: 1,
......
import {encodeStr} from "@/assets/js/common"
import HeadForm from "../component/HeadForm"
import Tables from "../component/Tables"
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
components: {
HeadForm,
Tables
Tables,
skeleton
},
data() {
return {
isSkeleton:true,
encodeStr
}
},
......
......@@ -7,8 +7,9 @@
:total="tableDataTotal"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
......@@ -33,15 +34,18 @@
<script>
import mixin from '../mixins/mixin'
import skeleton from '@/views/project/projectList/component/skeleton'
import {creditXzxkPage} from '@/api/detail/party-a/opport'
export default {
name: 'Administrative',
props: ['companyId'],
mixins: [mixin],
components: {
skeleton
},
data() {
return {
isSkeleton:true,
queryParams: {
cid: this.companyId,
pageNum: 1,
......@@ -79,11 +83,13 @@ export default {
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await creditXzxkPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
if(res.rows&&res.rows.length>0){
res.rows.forEach(item => {
item.smallContent = item.content.replace(/<.*?>/ig,"")
......
......@@ -9,8 +9,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -35,15 +36,18 @@
<script>
import mixin from '../mixins/mixin'
import skeleton from '@/views/project/projectList/component/skeleton'
import {bidNoticeArea, bidNoticeTenderStage, bidNoticePage} from '@/api/detail/party-a/opport'
export default {
name: 'Announcement',
props: ['companyId'],
mixins: [mixin],
components: {
skeleton
},
data() {
return {
isSkeleton:true,
queryParams: {
cid: this.companyId,
sort: 3,
......@@ -119,11 +123,13 @@ export default {
}
},
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = this.getAreaList(params || this.queryParams)
let res = await bidNoticePage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
}
this.tableDataTotal = res.total
......
......@@ -8,8 +8,9 @@
@handle-search="handleSearch"
:total="tableDataTotal"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -35,14 +36,17 @@
<script>
import mixin from '../mixins/mixin'
import {bidPlanPage,bidPlanProjectType} from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Biddingplan',
props: ['companyId'],
mixins: [mixin],
components: {
skeleton
},
data() {
return {
isSkeleton:true,
queryParams: {
cid: this.companyId,
sort: 3,
......@@ -88,11 +92,13 @@ export default {
}
},
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await bidPlanPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
}
this.tableDataTotal = res.total
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -32,14 +33,17 @@
<script>
import mixin from '../mixins/mixin'
import {specialDebtProjectPage} from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Bond',
props: ['companyId'],
mixins: [mixin],
components: {
skeleton
},
data() {
return {
isSkeleton:true,
queryParams: {
cid: this.companyId,
sort: 1,
......@@ -69,11 +73,13 @@ export default {
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await specialDebtProjectPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
}
this.tableDataTotal = res.total
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -32,14 +33,17 @@
<script>
import mixin from '../mixins/mixin'
import {landUse, landTransactionPage} from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Landtransaction',
props: ['companyId'],
mixins: [mixin],
components: {
skeleton
},
data() {
return {
isSkeleton:true,
queryParams: {
cid: this.companyId,
sort: 3,
......@@ -86,11 +90,13 @@ export default {
}
},
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await landTransactionPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
if(this.tableData.length>0){
this.tableData.map(item=>{
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -35,11 +36,13 @@
<script>
import mixin from '../mixins/mixin'
import { approvalProjectPage } from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Proposed',
props: ['companyId'],
mixins: [mixin],
components: {
skeleton
},
data() {
return {
......@@ -66,7 +69,8 @@ export default {
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
tableDataTotal:0,
isSkeleton:true,
}
},
computed: {
......@@ -76,11 +80,13 @@ export default {
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await approvalProjectPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
}
this.tableDataTotal = res.total
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
......@@ -40,12 +41,14 @@
<script>
import mixin from '../mixins/mixin'
import skeleton from '@/views/project/projectList/component/skeleton'
import { bidNoticeProProjectType, bidNoticeProProjectPurposes, bidNoticeProAssessmentWay, bidNoticeProPage } from '@/api/detail/party-a/opport'
export default {
name: 'Tencent',
props: ['companyId'],
mixins: [mixin],
components: {
skeleton
},
data() {
return {
......@@ -86,7 +89,8 @@ export default {
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
tableDataTotal:0,
isSkeleton:true,
}
},
computed: {
......@@ -125,11 +129,13 @@ export default {
}
},
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await bidNoticeProPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){
this.tableData.forEach(item => {
......
......@@ -2,7 +2,8 @@
<div class="flex-box app-container part-container">
<div class="bid-zbph">
<div class="common-title">招标偏好</div>
<template v-if="dataAll.totalCount||dataAll.lastYearCount||dataAll.bidAmount||this.dtdata.length>0">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<template v-if="(dataAll.totalCount||dataAll.lastYearCount||dataAll.bidAmount||this.dtdata.length>0)&& !isSkeleton">
<div class="flex-box zbph-item">
<div>历史招标总数
<el-popover
......@@ -45,9 +46,10 @@
</div>
<div class="bid-ywwl">
<div class="common-title">业务往来供应商TOP5</div>
<skeleton style="margin-left:16px;" v-if="isSkeleton1"></skeleton>
<div class="table-item">
<el-table
v-if="tableData.length>0"
v-if="tableData.length>0&& !isSkeleton1"
:data="tableData"
style="width: 100%"
>
......@@ -96,15 +98,18 @@ import {encodeStr} from "@/assets/js/common"
import {bidDataGroup, supplierPage} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts'
import NoData from '../../component/noData'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Bidding',
props: ['companyId'],
components: {
NoData
NoData,skeleton
},
data() {
return {
encodeStr,
isSkeleton:true,
isSkeleton1:true,
datatype:'1',//切换类型
dataAll: {},
dtdata:[],//数据
......@@ -121,8 +126,10 @@ export default {
},
methods: {
async handleBid(){
this.isSkeleton = true;
let res = await bidDataGroup({cid: this.companyId, spanId: this.datatype})
if(res.code==200 && res.data){
this.isSkeleton = false;
let {totalCount, lastYearCount, bidAmount} = res.data
this.dataAll = {totalCount, lastYearCount, bidAmount}
this.dtdata=res.data.groupCount.map(item=>{
......@@ -139,8 +146,10 @@ export default {
}
},
async handleSupplier() {
this.isSkeleton1 = true;
let res = await supplierPage({cid: this.companyId, sort: 1, pageNum: 1, pageSize: 5})
if(res.code==200){
this.isSkeleton1 = false;
this.tableData = res.rows
this.tableData.forEach((item, index) => {
item.amount = item.amount?parseFloat(item.amount.toFixed(6)):0
......
......@@ -5,7 +5,8 @@
<el-tab-pane label="按金额" name="0"></el-tab-pane>
<el-tab-pane label="按项目" name="1"></el-tab-pane>
</el-tabs>
<div class="flex-box clue-box">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="flex-box clue-box" v-else>
<div class="clue-echarts" v-if="viewData.length>0"><div id="echartsClue" style="width: 100%;height:300px; margin: 0 auto;"></div></div>
<div class="table-item" v-if="viewData.length>0">
......@@ -43,6 +44,7 @@
</template>
<script>
import skeleton from '@/views/project/projectList/component/skeleton'
import {projectTenderDataGroup} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts'
import {changePath} from "@/assets/js/common"
......@@ -51,11 +53,12 @@ export default {
name: 'Busclue',
props: ['companyId', 'statistic'],
components: {
NoData
NoData,skeleton
},
data() {
return {
viewData:[],
isSkeleton:true,
activeIndex:0,
typeList:[
{name: '土地交易', pathName: 'landtransaction', ico: require("@/assets/images/detail/overview/clue_ico1.png"), count: 0, category:'global', field:'landInfo', dis_ico: require("@/assets/images/detail/overview/clue_dis_ico1.png")},
......@@ -75,8 +78,10 @@ export default {
},
methods: {
async handleQuery(){
this.isSkeleton = true;
let res = await projectTenderDataGroup({cid: this.companyId, type: this.activeIndex})
if(res.code==200 && res.data){
this.isSkeleton = false;
let data = res.data, totalVal = data.map(item => item.value).reduce((prev, cur) => prev + cur)
this.viewData = data.map(item => {
let it = {name:item.name, value:item.value, percent:parseFloat(Number(Number(item.value)/Number(totalVal)*100).toFixed(2))}
......
......@@ -12,7 +12,8 @@
<el-tab-pane label="总资产" name="2"></el-tab-pane>
<el-tab-pane label="净资产" name="3"></el-tab-pane>
</el-tabs>
<div class="flex-box finance-box">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="flex-box finance-box" v-else>
<div class="finance-echarts" v-if="viewData.length>0"><div id="echartsFinance" style="width: 100%;height:300px; margin: 0 auto;"></div></div>
<div class="finance-no-data" v-else>
<no-data />
......@@ -61,6 +62,7 @@
</template>
<script>
import skeleton from '@/views/project/projectList/component/skeleton'
import {financialData} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts'
import NoData from '../../component/noData'
......@@ -68,11 +70,12 @@ export default {
name: 'Finance',
props: ['companyId'],
components: {
NoData
NoData,skeleton
},
data() {
return {
viewData:[],
isSkeleton:true,
activeIndex:0,
vals:['operatingIncome','netProfit','totalAssets','netAssets'],
names:['营业收入(亿)','净利润(亿)','总资产(亿)','净资产(亿)'],
......@@ -85,8 +88,10 @@ export default {
},
methods: {
async handleQuery(val){
this.isSkeleton = true;
let res = await financialData({cid: this.companyId})
if(res.code==200 && res.data){
this.isSkeleton = false;
this.viewData = res.data
if(this.viewData.length>0){
this.$nextTick(() => {
......
<template>
<div class="app-container operations-container">
<div class="common-title">公司经营</div>
<div class="part-swiper" v-if="operList.length>0">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="part-swiper" v-if="operList.length>0&&!isSkeleton">
<div class="swiper-containers swiper-oper" :style="operList.length<=6?'margin-left:0px; width: 100%;':''">
<ul class="swiper-wrapper">
<li class="swiper-slide" v-for="(item, index) in operList" :key="index">
......@@ -18,7 +19,7 @@
<div class="swiper-button-prev swiper-oper-prev" slot="button-prev" style="left: 0;"><i class="el-icon-arrow-left"></i></div>
<div class="swiper-button-next swiper-oper-next" slot="button-next" style="right: 0"><i class="el-icon-arrow-right"></i></div>
</div>
<div class="part-swiper" v-else>
<div class="part-swiper" v-if="operList.length==0&&!isSkeleton">
<no-data />
</div>
<div class="flex-box operations-list">
......@@ -33,17 +34,19 @@
<script>
import {bondCreditRating} from '@/api/detail/party-a/overview'
var Swiper = require('@/assets/lib/swiper/swiper-bundle.min.js')
import skeleton from '@/views/project/projectList/component/skeleton'
import "@/assets/lib/swiper/swiper-bundle.css"
import NoData from '../../component/noData'
export default {
name: 'Overview',
props: ['companyId', 'financial'],
components: {
NoData
NoData,skeleton
},
data() {
return {
operList: [],
isSkeleton:true,
gsjyList: [
{ name: '总资产', ico: require('@/assets/images/detail/overview/gsjy_ico1.png'), amount: ''},
{ name: '净资产', ico: require('@/assets/images/detail/overview/gsjy_ico2.png'), amount: ''},
......@@ -71,8 +74,10 @@ export default {
})
},
async handleQuery() {
this.isSkeleton = true;
let res = await bondCreditRating({cid: this.companyId})
if(res.code==200){
this.isSkeleton = false;
this.operList = res.data || []
this.$nextTick(() => {
this.companySwiper()
......
......@@ -6,7 +6,8 @@
<el-tab-pane label="对外投资" :disabled="shipTotal<1" name="second"></el-tab-pane>
<el-tab-pane label="分支机构" :disabled="affiliatesTotal<1" name="third"></el-tab-pane>
</el-tabs>
<div class="table-item">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="table-item" v-else>
<div class="rela-person" v-show="activeName=='first'">实际控制人:{{financial&&financial.actualController || '--'}}</div>
<el-table :data="holderData" border style="width: 100%" v-show="activeName=='first'">
<el-table-column label="序号" width="55" align="left" fixed>
......@@ -103,14 +104,16 @@
import {encodeStr, changePath} from "@/assets/js/common"
import {bestStockPage, investment,affiliates} from '@/api/detail/party-a/overview'
import NoData from '../../component/noData'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Relationship',
props: ['companyId', 'financial'],
components: {
NoData
NoData,skeleton
},
data() {
return {
isSkeleton:true,
encodeStr,
activeName:'first',
//表格数据
......@@ -147,8 +150,10 @@ export default {
},
methods: {
async handleQuery(){
this.isSkeleton = true;
let res = await bestStockPage(this.holderParams)
if(res.code==200){
this.isSkeleton = false;
if(res.rows&&res.rows.length>0){
res.rows.forEach(item => {
item.stockPercent?item.stockPercent = parseFloat(Number(item.stockPercent*100).toFixed(4))+'%':''
......
<template>
<div class="app-container rela-container">
<div class="common-title">高管</div>
<div class="table-item">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="table-item" v-else>
<el-table
v-if="tableData.length>0"
:data="tableData"
......@@ -36,12 +37,13 @@
<script>
import {keymembers} from "@/api/detail/party-a/overview"
import NoData from '../../component/noData'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Senior',
props: ['companyId'],
data() {
return {
isSkeleton:true,
queryParams: {
cid: this.companyId,
pageNum: 1,
......@@ -52,7 +54,7 @@ export default {
}
},
components: {
NoData
NoData,skeleton
},
created() {
this.handleQuery()
......@@ -61,8 +63,10 @@ export default {
},
methods: {
async handleQuery(){
this.isSkeleton = true;
let res = await keymembers(this.queryParams)
if(res.code==200){
this.isSkeleton = false;
let tempRows = []
if(res.rows&&res.rows.length>0){
let arrLength = res.rows.length%2==0?(res.rows.length/2):(Math.floor(res.rows.length/2)+1)
......
<template>
<div class="flex-box app-container part-container">
<div class="tender-list" ref="zbggScroll" @scroll="scrollbottom()">
<div class="common-title">招标公告</div>
<template v-if="zbggList.length>0">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<template v-if="zbggList.length>0&&!isSkeleton">
<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>
<div class="tender-no-data" v-else>
<div class="tender-no-data" v-if="zbggList.length==0&&!isSkeleton">
<no-data />
</div>
</div>
<div class="tender-list" ref="trendScroll" @scroll="scrollbottom(true)">
<div class="tender-list" ref="trendScroll" @scroll="scrollbottom(true)" >
<div class="common-title">企业动态</div>
<template v-if="trendList.length>0">
<skeleton style="margin-left:16px;" v-if="isSkeleton1"></skeleton>
<template v-if="trendList.length>0&&!isSkeleton1">
<div class="tender-item" v-for="(item, index) in trendList" :key="index">
<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>
<div class="tender-no-data" v-else>
<div class="tender-no-data" v-if="trendList.length==0&&!isSkeleton1">
<no-data />
</div>
</div>
......@@ -30,14 +33,17 @@
<script>
import {bidNoticePage, dynamicPage} from "@/api/detail/party-a/overview"
import NoData from '../../component/noData'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Tender',
props: ['companyId'],
components: {
NoData
NoData,skeleton
},
data() {
return {
isSkeleton:true,
isSkeleton1:true,
zbggParams: {
cid: this.companyId,
sort: 3,
......@@ -81,15 +87,19 @@ export default {
},
methods: {
async handleQuery() {
this.isSkeleton = true;
this.isSkeleton1 = true;
let [notice, namic] = await Promise.all([
bidNoticePage(this.zbggParams),
dynamicPage(this.trendParams)
])
if(notice.code==200){
this.isSkeleton = false;
this.zbggList = notice.rows;
this.zbggTotal = notice.total;
}
if(namic.code==200){
this.isSkeleton1 = false;
this.trendList = namic.rows;
this.trendTotal = namic.total;
}
......
<template>
<div class="app-container part-container">
<div class="view-content"><Infoheader :companyId="companyId" :companyInfo="companyInfo" :statistic="statistic" /></div><!-- 企业信息 -->
<div class="view-content"><skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton><Infoheader v-else :companyId="companyId" :companyInfo="companyInfo" :statistic="statistic" /></div><!-- 企业信息 -->
<div class="view-content"><Operations :companyId="companyId" :financial="financial" /></div><!-- 公司经营 -->
<div class="view-content"><Bidding :companyId="companyId" /></div><!--招标偏好、业务往来-->
<div class="view-content"><Busclue :companyId="companyId" :statistic="statistic" /></div><!--商机线索-->
......@@ -23,10 +23,11 @@ import Finance from './component/finance'
import Relationship from './component/relationship'
import Senior from './component/senior'
import Risk from './component/risk'
import skeleton from '@/views/project/projectList/component/skeleton'
import Tender from "./component/tender"
export default {
name: 'Overview',
props: ['companyId', 'companyInfo'],
props: ['companyId', 'companyInfo','isSkeleton'],
components: {
Infoheader,
Operations,
......@@ -36,6 +37,7 @@ export default {
Senior,
Risk,
Finance,
skeleton,
Tender
},
data() {
......
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