Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-cr20g
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
dsk-cr20g
Commits
bad2b995
Commit
bad2b995
authored
Jul 28, 2023
by
yht15023815643
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
甲方详情骨架图
parent
d23becf8
Changes
23
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
167 additions
and
45 deletions
+167
-45
bidagency.vue
...perate-ui/src/views/detail/party-a/dealings/bidagency.vue
+4
-1
bidrecords.vue
...erate-ui/src/views/detail/party-a/dealings/bidrecords.vue
+4
-1
custom.vue
dsk-operate-ui/src/views/detail/party-a/dealings/custom.vue
+4
-1
hiscontract.vue
...rate-ui/src/views/detail/party-a/dealings/hiscontract.vue
+4
-1
supplier.vue
...operate-ui/src/views/detail/party-a/dealings/supplier.vue
+4
-1
index.vue
dsk-operate-ui/src/views/detail/party-a/financial/index.vue
+20
-6
index.vue
dsk-operate-ui/src/views/detail/party-a/index.vue
+4
-1
mixin.js
dsk-operate-ui/src/views/detail/party-a/mixins/mixin.js
+4
-1
administrative.vue
...ate-ui/src/views/detail/party-a/opport/administrative.vue
+7
-1
announcement.vue
...erate-ui/src/views/detail/party-a/opport/announcement.vue
+7
-1
biddingplan.vue
...perate-ui/src/views/detail/party-a/opport/biddingplan.vue
+7
-1
bond.vue
dsk-operate-ui/src/views/detail/party-a/opport/bond.vue
+7
-1
landtransaction.vue
...te-ui/src/views/detail/party-a/opport/landtransaction.vue
+7
-1
proposed.vue
dsk-operate-ui/src/views/detail/party-a/opport/proposed.vue
+8
-2
tencent.vue
dsk-operate-ui/src/views/detail/party-a/opport/tencent.vue
+8
-2
bidding.vue
...i/src/views/detail/party-a/overview/component/bidding.vue
+12
-3
busclue.vue
...i/src/views/detail/party-a/overview/component/busclue.vue
+7
-2
finance.vue
...i/src/views/detail/party-a/overview/component/finance.vue
+7
-2
operations.vue
...rc/views/detail/party-a/overview/component/operations.vue
+8
-3
relationship.vue
.../views/detail/party-a/overview/component/relationship.vue
+7
-2
senior.vue
...ui/src/views/detail/party-a/overview/component/senior.vue
+7
-3
tender.vue
...ui/src/views/detail/party-a/overview/component/tender.vue
+16
-6
overview.vue
...operate-ui/src/views/detail/party-a/overview/overview.vue
+4
-2
No files found.
dsk-operate-ui/src/views/detail/party-a/dealings/bidagency.vue
View file @
bad2b995
...
...
@@ -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
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/bidrecords.vue
View file @
bad2b995
...
...
@@ -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
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/custom.vue
View file @
bad2b995
...
...
@@ -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
=>
{
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/hiscontract.vue
View file @
bad2b995
...
...
@@ -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
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/supplier.vue
View file @
bad2b995
...
...
@@ -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
=>
{
...
...
dsk-operate-ui/src/views/detail/party-a/financial/index.vue
View file @
bad2b995
...
...
@@ -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
...
...
dsk-operate-ui/src/views/detail/party-a/index.vue
View file @
bad2b995
...
...
@@ -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
,
...
...
dsk-operate-ui/src/views/detail/party-a/mixins/mixin.js
View file @
bad2b995
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
}
},
...
...
dsk-operate-ui/src/views/detail/party-a/opport/administrative.vue
View file @
bad2b995
...
...
@@ -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
,
""
)
...
...
dsk-operate-ui/src/views/detail/party-a/opport/announcement.vue
View file @
bad2b995
...
...
@@ -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
...
...
dsk-operate-ui/src/views/detail/party-a/opport/biddingplan.vue
View file @
bad2b995
...
...
@@ -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
...
...
dsk-operate-ui/src/views/detail/party-a/opport/bond.vue
View file @
bad2b995
...
...
@@ -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
...
...
dsk-operate-ui/src/views/detail/party-a/opport/landtransaction.vue
View file @
bad2b995
...
...
@@ -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
=>
{
...
...
dsk-operate-ui/src/views/detail/party-a/opport/proposed.vue
View file @
bad2b995
...
...
@@ -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
...
...
dsk-operate-ui/src/views/detail/party-a/opport/tencent.vue
View file @
bad2b995
...
...
@@ -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
=>
{
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/bidding.vue
View file @
bad2b995
...
...
@@ -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
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/busclue.vue
View file @
bad2b995
...
...
@@ -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
))}
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/finance.vue
View file @
bad2b995
...
...
@@ -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
(()
=>
{
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/operations.vue
View file @
bad2b995
<
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
()
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/relationship.vue
View file @
bad2b995
...
...
@@ -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
))
+
'%'
:
''
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/senior.vue
View file @
bad2b995
<
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
)
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/tender.vue
View file @
bad2b995
<
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
;
}
...
...
dsk-operate-ui/src/views/detail/party-a/overview/overview.vue
View file @
bad2b995
<
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
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment