Commit bad2b995 authored by yht15023815643's avatar yht15023815643

甲方详情骨架图

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