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
863b3a70
Commit
863b3a70
authored
Jun 12, 2023
by
caixingbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*
parent
e32430d6
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
342 additions
and
297 deletions
+342
-297
overview.js
dsk-operate-ui/src/api/detail/party-a/overview.js
+13
-31
Sidebar.vue
...operate-ui/src/views/detail/party-a/component/Sidebar.vue
+32
-21
bidding.vue
...i/src/views/detail/party-a/overview/component/bidding.vue
+36
-22
busclue.vue
...i/src/views/detail/party-a/overview/component/busclue.vue
+38
-87
infoheader.vue
...rc/views/detail/party-a/overview/component/infoheader.vue
+12
-21
operations.vue
...rc/views/detail/party-a/overview/component/operations.vue
+29
-15
relationship.vue
.../views/detail/party-a/overview/component/relationship.vue
+47
-46
risk.vue
...e-ui/src/views/detail/party-a/overview/component/risk.vue
+58
-28
senior.vue
...ui/src/views/detail/party-a/overview/component/senior.vue
+18
-7
tender.vue
...ui/src/views/detail/party-a/overview/component/tender.vue
+32
-11
overview.vue
...operate-ui/src/views/detail/party-a/overview/overview.vue
+27
-8
No files found.
dsk-operate-ui/src/api/detail/party-a/overview.js
View file @
863b3a70
...
...
@@ -3,7 +3,16 @@ import request from "@/utils/request";
// 企业数据统计
export
function
statistic
(
data
)
{
return
request
({
url
:
'/enterprise/statistic'
,
url
:
'/enterprise/statistic(建设库)'
,
method
:
'post'
,
data
:
data
})
}
// 企业主体信用评级
export
function
bondCreditRating
(
data
)
{
return
request
({
url
:
'/enterprise/bondCreditRating'
,
method
:
'post'
,
data
:
data
})
...
...
@@ -36,33 +45,6 @@ export function projectTenderDataGroup(data) {
})
}
// 关系企业-股东信息
export
function
yyy
(
data
)
{
return
request
({
url
:
'xxx'
,
method
:
'post'
,
data
:
data
})
}
// 关系企业-对外投资
export
function
testinvestment
(
data
)
{
return
request
({
url
:
'/enterprise/investment'
,
method
:
'post'
,
data
:
data
})
}
// 关系企业-分支机构
export
function
testaffiliates
(
data
)
{
return
request
({
url
:
'/enterprise/affiliates'
,
method
:
'post'
,
data
:
data
})
}
// 招标公告
export
function
bidNoticePage
(
data
)
{
return
request
({
...
...
@@ -99,7 +81,7 @@ export function changeInfo(data) {
})
}
// 工商股东信息列表
//
关系企业-股东信息、
工商股东信息列表
export
function
bestStockPage
(
data
)
{
return
request
({
url
:
'/enterprise/bestStockPage'
,
...
...
@@ -108,7 +90,7 @@ export function bestStockPage(data) {
})
}
// 工商高管信息
//
关系企业-高管信息、
工商高管信息
export
function
keymembers
(
data
)
{
return
request
({
url
:
'/enterprise/keymembers'
,
...
...
@@ -117,7 +99,7 @@ export function keymembers(data) {
})
}
// 工商对外投资
//
关系企业-对外投资、
工商对外投资
export
function
investment
(
data
)
{
return
request
({
url
:
'/enterprise/investment'
,
...
...
dsk-operate-ui/src/views/detail/party-a/component/Sidebar.vue
View file @
863b3a70
...
...
@@ -3,12 +3,13 @@
<el-input
placeholder=
"搜索"
class=
"side-input"
v-model=
"searchText"
>
v-model=
"searchText"
@
keyup
.
enter
.
native=
"handleSearch"
>
<i
slot=
"prefix"
class=
"el-input__icon el-icon-search"
@
click=
"handleSearch"
></i>
</el-input>
<el-menu
ref=
"sideMenu"
:default-active=
"routeIndex"
:unique-opened=
"true"
class=
"detail-menu"
@
open=
"handleOpen"
>
<template
v-for=
"(item, index) in sideRoute"
>
...
...
@@ -104,29 +105,16 @@ export default {
},
computed
:
{
sideHeight
()
{
let
sideHeight
=
document
.
getElementById
(
"detailPart"
)?
document
.
getElementById
(
"detailPart"
).
offsetHeight
:
null
if
(
sideHeight
<
this
.
partBoxHeight
)
{
let
sideHeight
=
document
.
getElementById
(
"detailPart"
)?
document
.
getElementById
(
"detailPart"
).
offsetHeight
:
null
,
bowerHeight
=
document
.
body
.
clientHeight
-
170
||
null
if
(
this
.
partBoxHeight
<
bowerHeight
)
{
sideHeight
=
bowerHeight
}
else
{
sideHeight
=
this
.
partBoxHeight
}
else
{
sideHeight
=
null
}
return
sideHeight
},
routeIndex
(){
let
idx
=
'0-0'
,
sideArr
=
this
.
sideRoute
for
(
let
i
=
0
;
i
<
sideArr
.
length
;
i
++
){
if
(
sideArr
[
i
].
pathName
==
this
.
pathName
){
idx
=
i
.
toString
()
break
}
else
if
(
sideArr
[
i
].
children
){
for
(
let
j
=
0
;
j
<
sideArr
[
i
].
children
.
length
;
j
++
){
if
(
sideArr
[
i
].
children
[
j
].
pathName
==
this
.
pathName
){
idx
=
i
+
'-'
+
j
break
}
}
}
}
let
idx
=
this
.
getRouteIdx
(
''
,
this
.
pathName
)
||
'0-0'
return
idx
}
},
...
...
@@ -140,7 +128,30 @@ export default {
this
.
$emit
(
"currentPath"
,
item
)
},
handleSearch
(){
console
.
log
(
'开始搜索了'
)
if
(
this
.
searchText
){
let
idx
=
this
.
getRouteIdx
(
this
.
searchText
)
if
(
idx
&&
idx
.
includes
(
'-'
)){
let
openIdx
=
idx
.
slice
(
0
,
1
)
this
.
$refs
.
sideMenu
.
open
(
openIdx
)
}
}
},
getRouteIdx
(
pathTitle
,
pathName
){
let
idx
=
''
,
sideArr
=
this
.
sideRoute
for
(
let
i
=
0
;
i
<
sideArr
.
length
;
i
++
){
if
(
sideArr
[
i
].
title
==
pathTitle
||
sideArr
[
i
].
pathName
==
pathName
){
idx
=
i
.
toString
()
break
}
else
if
(
sideArr
[
i
].
children
){
for
(
let
j
=
0
;
j
<
sideArr
[
i
].
children
.
length
;
j
++
){
if
(
sideArr
[
i
].
children
[
j
].
title
==
pathTitle
||
sideArr
[
i
].
children
[
j
].
pathName
==
pathName
){
idx
=
i
+
'-'
+
j
break
}
}
}
}
return
idx
},
isCustomerId
(
name
){
if
(
this
.
customer
.
indexOf
(
name
)
!=
-
1
){
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/bidding.vue
View file @
863b3a70
...
...
@@ -10,7 +10,7 @@
content=
"历史招标总数"
>
<img
src=
"@/assets/images/detail/overview/zbph_question.png"
slot=
"reference"
>
</el-popover>
<span
class=
"zbph-item-num"
>
356
</span></div>
<span
class=
"zbph-item-num"
>
{{
dataAll
.
bidAmount
||
'--'
}}
</span></div>
<div>
近一年招标总数
<el-popover
placement=
"top-start"
...
...
@@ -18,7 +18,7 @@
content=
"近一年招标总数"
>
<img
src=
"@/assets/images/detail/overview/zbph_question.png"
slot=
"reference"
>
</el-popover>
<span
class=
"zbph-item-num"
>
356
</span></div>
<span
class=
"zbph-item-num"
>
{{
dataAll
.
lastYearCount
||
'--'
}}
</span></div>
<div>
历史招标总额
<el-popover
placement=
"top-start"
...
...
@@ -26,13 +26,13 @@
content=
"历史招标总额"
>
<img
src=
"@/assets/images/detail/overview/zbph_question.png"
slot=
"reference"
>
</el-popover>
<span
class=
"zbph-item-num"
>
356
</span></div>
<span
class=
"zbph-item-num"
>
{{
dataAll
.
bidAmount
||
'--'
}}
</span></div>
</div>
<div
class=
"zbph-account"
>
招标动态
<div
class=
"labels"
>
<div
:class=
"
{'on':datatype==
1}" @click="getDT(1
)">周
</div>
<div
:class=
"
{'on':datatype==
3}" @click="getDT(3
)">周
</div>
<div
:class=
"
{'on':datatype==2}" @click="getDT(2)">月
</div>
<div
:class=
"
{'on':datatype==
3}" @click="getDT(3
)">年
</div>
<div
:class=
"
{'on':datatype==
1}" @click="getDT(1
)">年
</div>
</div>
</div>
<div
id=
"myEcharts"
style=
"width: 100%;height:250px; margin: 0 auto;"
></div>
...
...
@@ -43,7 +43,6 @@
<el-table
:data=
"tableData"
style=
"width: 100%"
:default-sort =
"
{prop: 'date', order: 'descending'}"
>
<el-table-column
prop=
"ico"
...
...
@@ -54,14 +53,14 @@
</
template
>
</el-table-column>
<el-table-column
prop=
"
n
ame"
prop=
"
companyN
ame"
label=
"公司名称"
>
<
template
slot-scope=
"scope"
>
<router-link
to=
""
tag=
"a"
class=
"a-link"
>
{{
scope
.
row
.
n
ame
}}
</router-link>
<router-link
to=
""
tag=
"a"
class=
"a-link"
>
{{
scope
.
row
.
companyN
ame
}}
</router-link>
</
template
>
</el-table-column>
<el-table-column
prop=
"
number
"
prop=
"
count
"
width=
"160"
label=
"合作次数"
>
</el-table-column>
...
...
@@ -77,32 +76,47 @@
</template>
<
script
>
import
{
bidDataGroup
,
supplierPage
}
from
'@/api/detail/party-a/overview'
import
*
as
echarts
from
'echarts'
export
default
{
name
:
'Bidding'
,
props
:
[
'companyId'
],
data
()
{
return
{
datatype
:
'1'
,
//切换类型
datatype
:
'3'
,
//切换类型
dataAll
:
{},
dtdata
:[],
//数据
dttime
:[],
//坐标
//表格数据
tableData
:[
{
name
:
'中国建筑第八工程局有限公司'
,
companyId
:
'6034'
,
number
:
'11%'
,
amount
:
'2134'
,
ico
:
require
(
"@/assets/images/detail/overview/ywwl_top1.png"
)},
{
name
:
'中建三局集团有限公司'
,
companyId
:
'3068'
,
number
:
'11%'
,
amount
:
'2134'
,
ico
:
require
(
"@/assets/images/detail/overview/ywwl_top2.png"
)},
{
name
:
'中国建筑一局(集团)有限公司'
,
companyId
:
'428280'
,
number
:
'11%'
,
amount
:
'2134'
,
ico
:
require
(
"@/assets/images/detail/overview/ywwl_top3.png"
)},
{
name
:
'上海宝冶集团有限公司'
,
companyId
:
'7759'
,
number
:
'11%'
,
amount
:
'2134'
,
ico
:
require
(
"@/assets/images/detail/overview/ywwl_top4.png"
)},
{
name
:
'中国五冶集团有限公司'
,
companyId
:
'10951'
,
number
:
'11%'
,
amount
:
'2134'
,
ico
:
require
(
"@/assets/images/detail/overview/ywwl_top5.png"
)},
]
tableData
:[]
}
},
created
()
{
this
.
handleBid
()
this
.
handleSupplier
()
},
mounted
()
{
this
.
$nextTick
(()
=>
{
this
.
getDT
(
1
)
this
.
getDT
(
3
)
})
},
methods
:
{
async
handleBid
(){
let
res
=
await
bidDataGroup
({
cid
:
this
.
companyId
,
spanId
:
this
.
datatype
})
if
(
res
.
code
==
200
){
let
{
totalCount
,
lastYearCount
,
bidAmount
}
=
res
.
data
this
.
dataAll
=
{
totalCount
,
lastYearCount
,
bidAmount
}
}
},
async
handleSupplier
()
{
let
res
=
await
supplierPage
({
cid
:
this
.
companyId
,
sort
:
1
,
pageNum
:
1
,
pageSize
:
5
})
if
(
res
.
code
==
200
){
this
.
tableData
=
res
.
rows
this
.
tableData
.
forEach
((
item
,
index
)
=>
{
item
.
ico
=
require
(
`@/assets/images/detail/overview/ywwl_top
${
index
+
1
}
.png`
)
})
}
},
initDT
(
datas
,
labels
){
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"myEcharts"
))
let
option
=
{
...
...
@@ -174,7 +188,7 @@ export default {
let
datas
=
[]
let
labels
=
[]
switch
(
type
)
{
case
1
:
case
3
:
time
=
time
.
getDay
()
// week.length = time
weekdata
.
length
=
time
...
...
@@ -190,7 +204,7 @@ export default {
let
days
=
new
Date
(
time
.
getFullYear
(),
time
.
getMonth
()
+
1
,
0
).
getDate
()
//获取到本月天数
time
=
time
.
getDate
()
monthdata
.
length
=
time
for
(
var
i
=
1
;
i
<
days
;
i
++
){
for
(
var
i
=
1
;
i
<
=
days
;
i
++
){
labels
.
push
(
i
+
'日'
)
if
(
i
>
time
){
monthdata
.
push
(
""
)
...
...
@@ -198,10 +212,10 @@ export default {
}
datas
=
monthdata
break
;
case
3
:
case
1
:
time
=
time
.
getMonth
()
+
1
yeardata
.
length
=
time
for
(
var
i
=
1
;
i
<
12
;
i
++
){
for
(
var
i
=
1
;
i
<
=
12
;
i
++
){
labels
.
push
(
i
+
'月'
)
if
(
i
>
time
){
yeardata
.
push
(
''
)
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/busclue.vue
View file @
863b3a70
<
template
>
<div
class=
"app-container clue-container"
>
<div
class=
"common-title"
>
商机线索
</div>
<el-tabs
v-model=
"active
Name"
@
tab-click=
"handleClick
"
class=
"tabpane selfTab"
>
<el-tab-pane
label=
"按金额"
name=
"
first
"
></el-tab-pane>
<el-tab-pane
label=
"按项目"
name=
"
second
"
></el-tab-pane>
<el-tabs
v-model=
"active
Index"
@
tab-click=
"handleQuery
"
class=
"tabpane selfTab"
>
<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"
>
<div
class=
"clue-echarts"
><div
id=
"echartsClue"
style=
"width: 100%;height:300px; margin: 0 auto;"
></div></div>
<div
class=
"table-item"
>
<el-table
:data=
"
activeName=='first'?viewData:project
Data"
:data=
"
view
Data"
border
style=
"width: 100%"
:default-sort =
"
{prop: 'date', order: 'descending'}"
...
...
@@ -20,107 +20,60 @@
<el-table-column
prop=
"value"
label=
"数量"
>
<template
slot-scope=
"scope"
>
<div
style=
"text-align: right"
>
{{
scope
.
row
.
value
}}
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"percent"
label=
"占比"
>
<
template
slot-scope=
"scope"
>
<div
style=
"text-align: right"
>
{{
scope
.
row
.
percent
}}
</div>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
<div
class=
"flex-box clue-type"
>
<div
class=
"flex-box clue-type-item"
:class=
"
typeName==index&&!item.disabled?'on':item.disabled?'disab':''"
v-for=
"(item, index) in typeList"
:key=
"index"
@
click=
"handleType(item, index)"
><img
:src=
"item.disabled
?item.dis_ico:item.ico"
>
{{item.name}}
</div>
<div
class=
"flex-box clue-type-item"
:class=
"
!item.count?'disab':''"
v-for=
"(item, index) in typeList"
:key=
"index"
@
click=
"handleType(item, index)"
><img
:src=
"!item.count
?item.dis_ico:item.ico"
>
{{
item
.
name
}}
</div>
</div>
</div>
</
template
>
<
script
>
import
{
projectTenderDataGroup
}
from
'@/api/detail/party-a/overview'
import
*
as
echarts
from
'echarts'
import
{
changePath
}
from
"@/assets/js/common"
export
default
{
name
:
'Busclue'
,
props
:
[
'companyId'
,
'statistic'
],
data
()
{
return
{
viewData
:[
{
name
:
'7亿~12亿'
,
value
:
'12'
,
percent
:
'12%'
},
{
name
:
'4亿~6亿'
,
value
:
'2'
,
percent
:
'12%'
},
{
name
:
'1亿~3亿'
,
value
:
'42'
,
percent
:
'12%'
},
{
name
:
'5000万~1亿'
,
value
:
'2'
,
percent
:
'12%'
},
{
name
:
'5000万以下'
,
value
:
'2'
,
percent
:
'12%'
},
],
projectData
:[
{
name
:
'公路工程'
,
value
:
'22'
,
percent
:
'12%'
},
{
name
:
'房建工程'
,
value
:
'12'
,
percent
:
'12%'
},
{
name
:
'水利工程'
,
value
:
'32'
,
percent
:
'12%'
},
{
name
:
'铁路工程'
,
value
:
'16'
,
percent
:
'12%'
},
{
name
:
'市政工程'
,
value
:
'8'
,
percent
:
'12%'
},
],
activeName
:
'first'
,
typeName
:
0
,
viewData
:[],
activeIndex
:
0
,
typeList
:[
{
name
:
'土地交易'
,
ico
:
require
(
"@/assets/images/detail/overview/clue_ico1.png"
),
disabled
:
false
,
dis_ico
:
require
(
"@/assets/images/detail/overview/clue_dis_ico1.png"
)},
{
name
:
'拟建项目'
,
ico
:
require
(
"@/assets/images/detail/overview/clue_ico2.png"
),
disabled
:
false
,
dis_ico
:
require
(
"@/assets/images/detail/overview/clue_dis_ico2.png"
)},
{
name
:
'专项债项目'
,
ico
:
require
(
"@//assets/images/detail/overview/clue_ico3.png"
),
disabled
:
true
,
dis_ico
:
require
(
"@/assets/images/detail/overview/clue_dis_ico3.png"
)},
{
name
:
'招标计划'
,
ico
:
require
(
"@/assets/images/detail/overview/clue_ico4.png"
),
disabled
:
false
,
dis_ico
:
require
(
"@/assets/images/detail/overview/clue_dis_ico4.png"
)},
{
name
:
'招标公告'
,
ico
:
require
(
"@/assets/images/detail/overview/clue_ico5.png"
),
disabled
:
true
,
dis_ico
:
require
(
"@/assets/images/detail/overview/clue_dis_ico5.png"
)},
{
name
:
'标讯Pro'
,
ico
:
require
(
"@/assets/images/detail/overview/clue_ico6.png"
),
disabled
:
false
,
dis_ico
:
require
(
"@/assets/images/detail/overview/clue_dis_ico6.png"
)},
{
name
:
'行政许可'
,
ico
:
require
(
"@/assets/images/detail/overview/clue_ico7.png"
),
disabled
:
false
,
dis_ico
:
require
(
"@/assets/images/detail/overview/clue_dis_ico7.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"
)},
{
name
:
'拟建项目'
,
pathName
:
'proposed'
,
ico
:
require
(
"@/assets/images/detail/overview/clue_ico2.png"
),
count
:
0
,
category
:
'global'
,
field
:
'proposedProject'
,
dis_ico
:
require
(
"@/assets/images/detail/overview/clue_dis_ico2.png"
)},
{
name
:
'专项债项目'
,
pathName
:
'bond'
,
ico
:
require
(
"@//assets/images/detail/overview/clue_ico3.png"
),
count
:
0
,
category
:
'xxx'
,
field
:
'yy'
,
dis_ico
:
require
(
"@/assets/images/detail/overview/clue_dis_ico3.png"
)},
{
name
:
'招标计划'
,
pathName
:
'biddingplan'
,
ico
:
require
(
"@/assets/images/detail/overview/clue_ico4.png"
),
count
:
0
,
category
:
'xxx'
,
field
:
'zz'
,
dis_ico
:
require
(
"@/assets/images/detail/overview/clue_dis_ico4.png"
)},
{
name
:
'招标公告'
,
pathName
:
'announcement'
,
ico
:
require
(
"@/assets/images/detail/overview/clue_ico5.png"
),
count
:
0
,
category
:
'business'
,
field
:
'biddingAnnouncement'
,
dis_ico
:
require
(
"@/assets/images/detail/overview/clue_dis_ico5.png"
)},
{
name
:
'标讯Pro'
,
pathName
:
'tencent'
,
ico
:
require
(
"@/assets/images/detail/overview/clue_ico6.png"
),
count
:
0
,
category
:
'business'
,
field
:
'proCount'
,
dis_ico
:
require
(
"@/assets/images/detail/overview/clue_dis_ico6.png"
)},
{
name
:
'行政许可'
,
pathName
:
'administrative'
,
ico
:
require
(
"@/assets/images/detail/overview/clue_ico7.png"
),
count
:
0
,
category
:
'business'
,
field
:
'adminLicensing'
,
dis_ico
:
require
(
"@/assets/images/detail/overview/clue_dis_ico7.png"
)},
]
}
},
created
()
{
this
.
handleStatistic
()
this
.
handleQuery
()
},
mounted
()
{
this
.
$nextTick
(()
=>
{
this
.
getDT
()
})
},
methods
:
{
async
handleQuery
(){
let
res
=
await
projectTenderDataGroup
({
cid
:
this
.
companyId
,
type
:
this
.
activeIndex
})
if
(
res
.
code
==
200
){
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
))
+
'%'
}
return
it
})
this
.
getDT
()
}
},
getDT
(
val
){
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"echartsClue"
)),
data
=
val
?
val
:
this
.
viewData
let
option
=
{
...
...
@@ -157,16 +110,14 @@ export default {
}
myChart
.
setOption
(
option
)
},
handleClick
(){
if
(
this
.
activeName
==
'first'
){
this
.
getDT
(
this
.
viewData
)
}
else
{
this
.
getDT
(
this
.
projectData
)
}
handleStatistic
()
{
this
.
typeList
.
forEach
((
item
,
index
)
=>
{
item
.
count
=
this
.
statistic
[
item
.
category
]?
this
.
statistic
[
item
.
category
][
item
.
field
]:
0
})
},
handleType
(
it
,
idx
){
if
(
!
it
.
disabled
){
this
.
typeName
=
idx
if
(
it
.
count
){
changePath
(
this
,
it
.
pathName
)
}
}
}
...
...
@@ -217,10 +168,10 @@ export default {
.clue-type-item
{
color
:
#232323
;
cursor
:
pointer
;
&
.on
{
&
:hover
{
color
:
#0081FF
;
}
&
.disab
le
{
&
.disab
{
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
}
img
{
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/infoheader.vue
View file @
863b3a70
...
...
@@ -125,13 +125,12 @@
</template>
<
script
>
import
{
statistic
}
from
'@/api/detail/party-a/overview'
import
{
changePath
}
from
'@/assets/js/common'
var
Swiper
=
require
(
'@/assets/lib/swiper/swiper-bundle.min.js'
)
import
"@/assets/lib/swiper/swiper-bundle.css"
export
default
{
name
:
'Infoheader'
,
props
:
[
'companyId'
,
'companyInfo'
],
props
:
[
'companyId'
,
'companyInfo'
,
'statistic'
],
data
()
{
return
{
labelList
:
[],
//企业标签
...
...
@@ -139,7 +138,6 @@ export default {
ifClaim
:
false
,
//是否认领
showMore
:
false
,
showState
:
false
,
statistic
:
{},
graphList
:
[
{
id
:
1
,
name
:
'业务往来'
,
intro
:[{
id
:
101
,
name
:
'客户'
,
val
:
0
,
category
:
'global'
,
field
:
'customer'
},{
id
:
102
,
name
:
'供应商'
,
val
:
0
,
category
:
'global'
,
field
:
'supplier'
}],
ico
:
require
(
'@/assets/images/detail/overview/company_ywwl.png'
)},
{
id
:
2
,
name
:
'商机线索'
,
intro
:[{
id
:
201
,
name
:
'专项债项目'
,
val
:
0
,
category
:
'xxx'
,
field
:
'yy'
},{
id
:
202
,
name
:
'招标计划'
,
val
:
0
,
category
:
'xxx'
,
field
:
'zz'
}],
ico
:
require
(
'@/assets/images/detail/overview/company_sjxs.png'
)},
...
...
@@ -155,8 +153,8 @@ export default {
}
},
created
()
{
this
.
handleStatistic
()
this
.
getCompanyInfo
()
//处理曾用名
this
.
handleStatistic
()
//企业背景是否收起
},
mounted
()
{
this
.
getClaimStatus
()
//获取企业认领状态
...
...
@@ -192,23 +190,16 @@ export default {
this
.
companyInfo
.
historyNames
=
JSON
.
parse
(
this
.
companyInfo
.
historyNames
)
}
},
async
handleStatistic
()
{
let
res
=
await
statistic
({
companyId
:
this
.
companyId
})
if
(
res
.
code
==
200
){
this
.
statistic
=
res
.
data
this
.
graphList
.
forEach
((
item
,
index
)
=>
{
if
(
item
.
intro
){
item
.
intro
.
forEach
((
it
,
idx
)
=>
{
if
(
it
.
category
||
it
.
field
){
it
.
val
=
this
.
getStatistic
(
it
.
category
,
it
.
field
)
}
})
}
})
}
},
getStatistic
(
category
,
field
)
{
return
this
.
statistic
[
category
][
field
]
||
0
handleStatistic
()
{
this
.
graphList
.
forEach
((
item
,
index
)
=>
{
if
(
item
.
intro
){
item
.
intro
.
forEach
((
it
,
idx
)
=>
{
if
(
it
.
category
||
it
.
field
){
it
.
val
=
this
.
statistic
[
it
.
category
]?
this
.
statistic
[
it
.
category
][
it
.
field
]:
0
}
})
}
})
},
//获取认领状态
async
getClaimStatus
(){
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/operations.vue
View file @
863b3a70
...
...
@@ -6,10 +6,10 @@
<ul
class=
"swiper-wrapper"
>
<li
class=
"swiper-slide"
v-for=
"(item, index) in operList"
:key=
"index"
>
<div
class=
"swiper-div"
>
<div
class=
"operations-title"
>
{{
item
.
range
}}
-
<span>
{{
item
.
year
}}
</span></div>
<div
class=
"operations-title"
>
{{
item
.
bratingSubjectLevel
}}
-
<span>
{{
item
.
ratingDate
}}
</span></div>
<div
class=
"flex-box text-cl1 operations-info"
>
{{
item
.
nam
e
}}
<span><img
src=
"@/assets/images/detail/overview/oper_source.png"
>
{{
item
.
name
}}
</span>
{{
item
.
bondTyp
e
}}
<span><img
src=
"@/assets/images/detail/overview/oper_source.png"
>
{{
item
.
creditRatingAgency
}}
</span>
</div>
</div>
</li>
...
...
@@ -21,35 +21,34 @@
<div
class=
"flex-box operations-list"
>
<div
class=
"list-item"
v-for=
"(item, index) in gsjyList"
:key=
"index"
>
<div
class=
"flex-box list-item-all"
><img
:src=
"item.ico"
>
{{
item
.
name
}}
</div>
<div
class=
"list-item-amount"
>
{{
item
.
amount
}}
</div>
<div
class=
"list-item-amount"
>
{{
item
.
amount
?
item
.
amount
+
'亿元'
:
'--'
}}
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
bondCreditRating
}
from
'@/api/detail/party-a/overview'
var
Swiper
=
require
(
'@/assets/lib/swiper/swiper-bundle.min.js'
)
import
"@/assets/lib/swiper/swiper-bundle.css"
export
default
{
name
:
'Overview'
,
props
:
[
'companyId'
,
'financial'
],
data
()
{
return
{
operList
:
[
{
name
:
'债务信用评级'
,
rate
:
'中国标普信用'
,
range
:
'AA'
,
year
:
'2021'
},
{
name
:
'债务信用评级'
,
rate
:
'中国标普信用'
,
range
:
'AA'
,
year
:
'2021'
},
{
name
:
'债务信用评级'
,
rate
:
'中国标普信用'
,
range
:
'AA'
,
year
:
'2021'
},
{
name
:
'债务信用评级'
,
rate
:
'中国标普信用'
,
range
:
'AA'
,
year
:
'2021'
}
],
operList
:
[],
gsjyList
:
[
{
name
:
'总资产'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico1.png'
),
amount
:
'
1699.7
'
},
{
name
:
'净资产'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico2.png'
),
amount
:
'
1699.7
'
},
{
name
:
'授信余额'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico3.png'
),
amount
:
'
1699.7
'
},
{
name
:
'营业收入'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico4.png'
),
amount
:
'
1699.7
'
},
{
name
:
'总负债'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico5.png'
),
amount
:
'
1699.7
'
}
{
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_ico3.png'
),
amount
:
''
},
{
name
:
'营业收入'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico4.png'
),
amount
:
''
},
{
name
:
'总负债'
,
ico
:
require
(
'@/assets/images/detail/overview/gsjy_ico5.png'
),
amount
:
''
}
],
}
},
created
()
{
this
.
handleQuery
()
this
.
handleFinancial
()
},
mounted
()
{
this
.
companySwiper
()
...
...
@@ -64,6 +63,21 @@ export default {
prevEl
:
'.swiper-oper-prev'
,
}
})
},
async
handleQuery
()
{
let
res
=
await
bondCreditRating
({
cid
:
this
.
companyId
})
if
(
res
.
code
==
200
){
this
.
operList
=
res
.
data
}
},
handleFinancial
(){
if
(
this
.
financial
){
let
{
totalAssets
,
belongNetAssets
,
creditBalance
,
operatingIncome
,
totalLiabilities
}
=
this
.
financial
let
jyqkObj
=
{
totalAssets
,
belongNetAssets
,
creditBalance
,
operatingIncome
,
totalLiabilities
}
this
.
gsjyList
.
forEach
((
item
,
index
)
=>
{
item
.
amount
=
jyqkObj
[
Object
.
keys
(
jyqkObj
)[
index
]]
})
}
}
}
}
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/relationship.vue
View file @
863b3a70
<
template
>
<div
class=
"app-container rela-container"
>
<div
class=
"common-title"
>
关系企业
</div>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handle
Click
"
class=
"tabpane selfTab"
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handle
Query
"
class=
"tabpane selfTab"
>
<el-tab-pane
label=
"股东"
name=
"first"
></el-tab-pane>
<el-tab-pane
label=
"对外投资"
name=
"second"
></el-tab-pane>
</el-tabs>
<div
class=
"table-item"
>
<div
class=
"rela-person"
v-if=
"activeName=='first'"
>
实际控制人:
<router-link
to=
""
tag=
"a"
class=
"a-link"
>
重庆市国有资产监督管理委员会
</router-link></div>
<el-table
:data=
"holderData"
border
style=
"width: 100%"
:default-sort =
"
{prop: 'date', order: 'descending'}"
v-if="activeName=='first'">
<div
class=
"rela-person"
v-if=
"activeName=='first'"
>
实际控制人:
<router-link
to=
""
tag=
"a"
class=
"a-link"
>
{{
financial
&&
financial
.
actualController
||
'--'
}}
</router-link></div>
<el-table
:data=
"holderData"
border
style=
"width: 100%"
v-if=
"activeName=='first'"
>
<el-table-column
label=
"序号"
width=
"55"
align=
"left"
fixed
>
<template
slot-scope=
"scope"
>
{{
pageIndex
*
pageSize
-
pageSize
+
scope
.
$index
+
1
}}
</
template
>
<template
slot-scope=
"scope"
>
{{
holderParams
.
pageNum
*
holderParams
.
pageSize
-
holderParams
.
pageSize
+
scope
.
$index
+
1
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"
n
ame"
min-width=
"140"
label=
"股东名称"
></el-table-column>
<el-table-column
prop=
"
cgsl
"
label=
"持股数量(亿)"
></el-table-column>
<el-table-column
prop=
"
cgbl
"
label=
"持股比例"
></el-table-column>
<el-table-column
prop=
"
fddbr
"
label=
"法定代表人"
></el-table-column>
<el-table-column
prop=
"
clrq
"
label=
"成立日期"
></el-table-column>
<el-table-column
prop=
"
stockN
ame"
min-width=
"140"
label=
"股东名称"
></el-table-column>
<el-table-column
prop=
"
xxx
"
label=
"持股数量(亿)"
></el-table-column>
<el-table-column
prop=
"
xxx
"
label=
"持股比例"
></el-table-column>
<el-table-column
prop=
"
xxx
"
label=
"法定代表人"
></el-table-column>
<el-table-column
prop=
"
xxx
"
label=
"成立日期"
></el-table-column>
</el-table>
<el-table
:data=
"shipData"
border
style=
"width: 100%"
:default-sort =
"{prop: 'date', order: 'descending'}"
v-else
>
<el-table
:data=
"shipData"
border
style=
"width: 100%"
v-else
>
<el-table-column
label=
"序号"
width=
"55"
align=
"left"
fixed
>
<
template
slot-scope=
"scope"
>
{{
pageIndex
*
pageSize
-
pageSize
+
scope
.
$index
+
1
}}
</
template
>
<
template
slot-scope=
"scope"
>
{{
shipParams
.
pageNum
*
shipParams
.
pageSize
-
shipParams
.
pageSize
+
scope
.
$index
+
1
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"
n
ame"
min-width=
"140"
label=
"被投资企业名称"
>
<el-table-column
prop=
"
investN
ame"
min-width=
"140"
label=
"被投资企业名称"
>
<
template
slot-scope=
"scope"
>
<router-link
to=
""
tag=
"a"
class=
"a-link"
>
{{
scope
.
row
.
name
}}
</router-link>
<div
class=
"tags"
v-if=
"scope.row.nAjlx"
>
<span
class=
"tag style1"
>
{{
scope
.
row
.
nAjlx
}}
</span>
<span
class=
"tag style1"
>
{{
scope
.
row
.
nAjlx
}}
</span>
<router-link
to=
""
tag=
"a"
class=
"a-link"
v-if=
"scope.row.id&&scope.row.investName"
v-html=
"scope.row.investName"
></router-link>
<div
v-else
v-html=
"scope.row.investName || '--'"
></div>
<div
class=
"tags"
v-if=
"scope.row.businessStatus || scope.row.biddingAnnouncement"
>
<span
class=
"tag style1"
v-if=
"scope.row.businessStatus"
>
{{
scope
.
row
.
businessStatus
}}
</span>
<span
class=
"tag style1"
v-if=
"scope.row.biddingAnnouncement"
>
招标数
{{
scope
.
row
.
biddingAnnouncement
}}
</span>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"fddbr"
label=
"法定代表人"
></el-table-column>
<el-table-column
prop=
"zczb"
label=
"注册资本(万元)"
>
<el-table-column
prop=
"investOperName"
label=
"法定代表人"
></el-table-column>
<el-table-column
prop=
"investRegistCapi"
label=
"注册资本(万元)"
></el-table-column>
<el-table-column
prop=
"investStartDate"
label=
"成立日期"
></el-table-column>
<el-table-column
prop=
"stockPercentage"
label=
"股权占比"
>
<
template
slot-scope=
"scope"
>
<div
style=
"text-align: right"
>
{{
scope
.
row
.
zczb
}}
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"clrq"
label=
"成立日期"
></el-table-column>
<el-table-column
prop=
"gqzb"
label=
"股权占比"
>
<
template
slot-scope=
"scope"
>
<div
style=
"text-align: right"
>
{{
scope
.
row
.
gqzb
}}
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"rjcze"
label=
"认缴出资额(万元)"
>
<
template
slot-scope=
"scope"
>
<div
style=
"text-align: right"
>
{{
scope
.
row
.
rjcze
}}
</div>
<span>
{{
scope
.
row
.
stockPercentage
?
parseFloat
(
Number
(
scope
.
row
.
stockPercentage
*
100
).
toFixed
(
4
))
+
'%'
:
'--'
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"shouldCapi"
label=
"认缴出资额(万元)"
></el-table-column>
</el-table>
<div
class=
"rela-more"
v-if=
"activeName=='second'"
><router-link
to=
""
tag=
"a"
class=
"a-link"
>
查看更多数据 >
</router-link></div>
<div
class=
"rela-more"
v-if=
"activeName=='second'
&& shipTotal>shipParams.pageSize
"
><router-link
to=
""
tag=
"a"
class=
"a-link"
>
查看更多数据 >
</router-link></div>
</div>
</div>
</template>
<
script
>
import
{
bestStockPage
,
investment
}
from
'@/api/detail/party-a/overview'
export
default
{
name
:
'Relationship'
,
props
:
[
'companyId'
,
'financial'
],
data
()
{
return
{
activeName
:
'first'
,
//表格数据
holderData
:[
{
name
:
'重庆城市交通开发投资 (集团)有限公司'
,
cgsl
:
'60.00'
,
cgbl
:
'100%'
,
fddbr
:
'李方宇'
,
clrq
:
'1994-11-09'
},
{
name
:
'重庆城市交通开发投资 (集团)有限公司'
,
cgsl
:
'60.00'
,
cgbl
:
'100%'
,
fddbr
:
'李方宇'
,
clrq
:
'1994-11-09'
}
],
shipData
:[
{
name
:
'深圳市地铁集团有限建设总部'
,
nAjlx
:
'招标'
,
fddbr
:
'雷江松'
,
zczb
:
'15100'
,
clrq
:
'1920-02-21'
,
gqzb
:
'35%'
,
rjcze
:
'2133'
},
{
name
:
'深圳市地铁集团有限建设总部'
,
nAjlx
:
'招标'
,
fddbr
:
'雷江松'
,
zczb
:
'15100'
,
clrq
:
'1920-02-21'
,
gqzb
:
'35%'
,
rjcze
:
'2133'
},
{
name
:
'深圳市地铁集团有限建设总部'
,
nAjlx
:
'招标'
,
fddbr
:
'雷江松'
,
zczb
:
'15100'
,
clrq
:
'1920-02-21'
,
gqzb
:
'35%'
,
rjcze
:
'2133'
},
{
name
:
'深圳市地铁集团有限建设总部'
,
nAjlx
:
'招标'
,
fddbr
:
'雷江松'
,
zczb
:
'15100'
,
clrq
:
'1920-02-21'
,
gqzb
:
'35%'
,
rjcze
:
'2133'
},
{
name
:
'深圳市地铁集团有限建设总部'
,
nAjlx
:
'招标'
,
fddbr
:
'雷江松'
,
zczb
:
'15100'
,
clrq
:
'1920-02-21'
,
gqzb
:
'35%'
,
rjcze
:
'2133'
}
],
pageIndex
:
1
,
pageSize
:
10
holderData
:[],
holderParams
:
{
cid
:
this
.
companyId
,
isHistory
:
0
,
pageNum
:
1
,
pageSize
:
20
},
shipData
:[],
shipParams
:
{
cid
:
this
.
companyId
,
pageNum
:
1
,
pageSize
:
10
},
shipTotal
:
0
}
},
created
()
{
this
.
handleQuery
()
},
mounted
()
{
},
methods
:
{
handleClick
(){
async
handleQuery
(){
let
res
=
this
.
activeName
==
'first'
?
await
bestStockPage
(
this
.
holderParams
):
await
investment
(
this
.
shipParams
)
if
(
res
.
code
==
200
){
this
.
activeName
==
'first'
?
this
.
holderData
=
res
.
rows
:
this
.
shipData
=
res
.
rows
}
this
.
activeName
==
'second'
?
this
.
shipTotal
=
res
.
total
:
''
}
}
}
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/risk.vue
View file @
863b3a70
...
...
@@ -8,7 +8,6 @@
:data=
"viewData"
border
style=
"width: 100%"
:default-sort =
"
{prop: 'date', order: 'descending'}"
>
<el-table-column
prop=
"name"
...
...
@@ -17,14 +16,14 @@
prop=
"value"
label=
"数量"
>
<template
slot-scope=
"scope"
>
<
div
style=
"text-align: right"
>
{{
scope
.
row
.
value
}}
</div
>
<
span>
{{
scope
.
row
.
value
}}
</span
>
</
template
>
</el-table-column>
<el-table-column
prop=
"bl"
label=
"占比"
>
<
template
slot-scope=
"scope"
>
<
div
style=
"text-align: right"
>
{{
scope
.
row
.
bl
}}
</div
>
<
span>
{{
scope
.
row
.
bl
}}
</span
>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -37,61 +36,79 @@
import
*
as
echarts
from
'echarts'
export
default
{
name
:
'Risk'
,
props
:
[
'statistic'
],
data
()
{
return
{
viewData
:[
{
name
:
'开庭公告'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
value
:
''
,
category
:
'credit'
,
field
:
'openAnnouncement'
,
tz
:
''
,
bl
:
''
},
{
name
:
'企业公告'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
value
:
''
,
category
:
'xxx'
,
field
:
'yy'
,
tz
:
''
,
bl
:
''
},
{
name
:
'送达公告'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
value
:
''
,
category
:
'xxx'
,
field
:
'yy'
,
tz
:
''
,
bl
:
''
},
{
name
:
'对外投资变更'
,
value
:
'7'
,
tz
:
'50.01'
,
bl
:
'0.19%'
value
:
''
,
category
:
'basic'
,
field
:
'outboundInvestment'
,
tz
:
''
,
bl
:
''
},
{
name
:
'法院公告'
,
value
:
'2'
,
tz
:
'50.01'
,
bl
:
'0.19%'
value
:
''
,
category
:
'credit'
,
field
:
'courtAnnouncement'
,
tz
:
''
,
bl
:
''
},
{
name
:
'立案信息'
,
value
:
'3'
,
tz
:
'50.01'
,
bl
:
'0.19%'
value
:
''
,
category
:
'xxx'
,
field
:
'zz'
,
tz
:
''
,
bl
:
''
},
{
name
:
'被执行人'
,
value
:
'5'
,
tz
:
'50.01'
,
bl
:
'0.19%'
value
:
''
,
category
:
'credit'
,
field
:
'dishonestExecutee'
,
tz
:
''
,
bl
:
''
},
{
name
:
'行政处罚'
,
value
:
'11'
,
tz
:
'50.01'
,
bl
:
'0.19%'
value
:
''
,
category
:
'credit'
,
field
:
'adminSanction'
,
tz
:
''
,
bl
:
''
},
]
}
},
created
()
{
this
.
handView
()
},
mounted
()
{
this
.
$nextTick
(()
=>
{
...
...
@@ -99,6 +116,17 @@ export default {
})
},
methods
:
{
handView
(){
let
totalVal
=
this
.
viewData
.
map
(
item
=>
{
let
number
=
this
.
statistic
[
item
.
category
]
&&
this
.
statistic
[
item
.
category
][
item
.
field
]?
this
.
statistic
[
item
.
category
][
item
.
field
]:
0
return
number
}).
reduce
((
prev
,
cur
)
=>
prev
+
cur
)
this
.
viewData
=
this
.
viewData
.
map
(
item
=>
{
let
number
=
this
.
statistic
[
item
.
category
]
&&
this
.
statistic
[
item
.
category
][
item
.
field
]?
this
.
statistic
[
item
.
category
][
item
.
field
]:
0
let
it
=
{
name
:
item
.
name
,
value
:
number
,
tz
:
''
,
bl
:
parseFloat
(
Number
(
Number
(
number
)
/
Number
(
totalVal
)
*
100
).
toFixed
(
2
))
+
'%'
}
return
it
})
},
getDT
(){
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"echartsRisk"
))
let
option
=
{
...
...
@@ -110,7 +138,9 @@ export default {
var
result
=
''
result
+=
'<h3 style="color: #232226;padding: 0 0 5px 0;margin: 0;">'
+
params
.
data
.
name
+
'</h3>'
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
data
.
value
+
'个</p>'
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
data
.
tz
+
'亿元</p>'
if
(
params
.
data
.
tz
){
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;" >'
+
params
.
data
.
tz
+
'亿元</p>'
}
result
+=
'<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'
+
params
.
data
.
bl
+
'%</p>'
return
result
;
},
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/senior.vue
View file @
863b3a70
...
...
@@ -9,13 +9,13 @@
:default-sort =
"
{prop: 'date', order: 'descending'}"
>
<el-table-column
label=
"序号"
width=
"55"
align=
"left"
fixed
>
<template
slot-scope=
"scope"
>
{{
pageIndex
*
pageSize
-
pageSize
+
scope
.
$index
+
1
}}
</
template
>
<template
slot-scope=
"scope"
>
{{
queryParams
.
pageNum
*
queryParams
.
pageSize
-
queryParams
.
pageSize
+
scope
.
$index
+
1
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"姓名"
></el-table-column>
<el-table-column
prop=
"
zw
"
prop=
"
jobTitle
"
label=
"职务"
></el-table-column>
</el-table>
</div>
...
...
@@ -23,23 +23,34 @@
</template>
<
script
>
import
{
keymembers
}
from
"@/api/detail/party-a/overview"
export
default
{
name
:
'Senior'
,
props
:
[
'companyId'
],
data
()
{
return
{
queryParams
:
{
cid
:
this
.
companyId
,
pageNum
:
1
,
pageSize
:
20
},
//表格数据
tableData
:[
{
name
:
'重庆城市交通开发投资 (集团)有限公司'
,
zw
:
'董事'
}
],
pageIndex
:
1
,
pageSize
:
10
tableData
:[]
}
},
created
()
{
this
.
handleQuery
()
},
mounted
()
{
},
methods
:
{
async
handleQuery
(){
let
res
=
await
keymembers
(
this
.
queryParams
)
if
(
res
.
code
==
200
){
this
.
tableData
=
res
.
rows
}
}
}
}
</
script
>
...
...
dsk-operate-ui/src/views/detail/party-a/overview/component/tender.vue
View file @
863b3a70
...
...
@@ -3,33 +3,41 @@
<div
class=
"tender-list"
>
<div
class=
"common-title"
>
招标公告
</div>
<div
class=
"tender-item"
v-for=
"(item, index) in zbggList"
:key=
"index"
>
<div
class=
"flex-box tender-title"
>
{{
item
.
name
}}
<span
:class=
"item.tag=='项目动态'?'style2':item.tag=='招投标'?'style4':'style1'"
>
{{
item
.
tag
}}
</span></div>
<span
class=
"tender-time"
>
{{
item
.
tip
}}
{{
item
.
t
ime
}}
</span>
<div
class=
"flex-box tender-title"
>
{{
item
.
projectName
}}
<span
:class=
"item.tenderStage=='项目动态'?'style2':item.tag=='招投标'?'style4':'style1'"
>
{{
item
.
tenderStage
}}
</span></div>
<span
class=
"tender-time"
>
{{
item
.
contact
}}
{{
item
.
issueT
ime
}}
</span>
</div>
</div>
<div
class=
"tender-list"
>
<div
class=
"common-title"
>
企业动态
</div>
<div
class=
"tender-item"
v-for=
"(item, index) in trendList"
:key=
"index"
>
<div
class=
"flex-box tender-title"
>
{{
item
.
name
}}
<span
:class=
"item.tag=='新增分支机构'?'style2':item.tag=='新增施工工法'?'style3':'style1'"
>
{{
item
.
tag
}}
</span></div>
<span
class=
"tender-time"
>
{{
item
.
t
ime
}}
</span>
<div
class=
"flex-box tender-title"
>
{{
item
.
xxx
}}
<span
:class=
"item.tag=='新增分支机构'?'style2':item.tag=='新增施工工法'?'style3':'style1'"
>
{{
item
.
tag
}}
</span></div>
<span
class=
"tender-time"
>
{{
item
.
createT
ime
}}
</span>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
bidNoticePage
,
dynamicPage
}
from
"@/api/detail/party-a/overview"
export
default
{
name
:
'Tender'
,
props
:
[
'companyId'
],
data
()
{
return
{
zbggParams
:
{
cid
:
this
.
companyId
,
sort
:
3
,
pageNum
:
1
,
pageSize
:
5
},
//招标公告数据
zbggList
:[
{
name
:
'深圳北站片区正建超大型商场,预计2026年建成'
,
tag
:
'公司经营'
,
tip
:
'通信信息报'
,
time
:
'03-21'
},
{
name
:
'深圳北站片区正建超大型商场,预计2026年建成'
,
tag
:
'项目动态'
,
tip
:
'通信信息报'
,
time
:
'03-21'
},
{
name
:
'深圳北站片区正建超大型商场,预计2026年建成'
,
tag
:
'公司经营'
,
tip
:
'通信信息报'
,
time
:
'03-21'
},
{
name
:
'深圳北站片区正建超大型商场,预计2026年建成'
,
tag
:
'招投标'
,
tip
:
'通信信息报'
,
time
:
'03-21'
},
{
name
:
'深圳北站片区正建超大型商场,预计2026年建成'
,
tag
:
'公司经营'
,
tip
:
'通信信息报'
,
time
:
'03-21'
}
],
zbggList
:[],
trendParams
:
{
companyId
:
this
.
companyId
,
pageNum
:
1
,
pageSize
:
5
},
//企业动态数据
trendList
:[
{
name
:
'深圳北站片区正建超大型商场,预计2026年建成'
,
tag
:
'对外投资变更'
,
time
:
'03-21'
},
...
...
@@ -41,10 +49,23 @@ export default {
}
},
created
()
{
this
.
handleQuery
()
},
mounted
()
{
},
methods
:
{
async
handleQuery
()
{
let
[
notice
,
namic
]
=
await
Promise
.
all
([
bidNoticePage
(
this
.
zbggParams
),
dynamicPage
(
this
.
trendParams
)
])
if
(
notice
.
code
==
200
){
this
.
zbggList
=
notice
.
rows
}
if
(
namic
.
code
==
200
){
this
.
trendList
=
namic
.
rows
}
}
}
}
</
script
>
...
...
dsk-operate-ui/src/views/detail/party-a/overview/overview.vue
View file @
863b3a70
<
template
>
<div
class=
"app-container part-container"
>
<div
class=
"view-content"
><Infoheader
:companyId=
"companyId"
:companyInfo=
"companyInfo"
/></div>
<!-- 企业信息 -->
<div
class=
"view-content"
><Operations
/></div>
<!-- 公司经营 -->
<div
class=
"view-content"
><Bidding
/></div>
<!--招标偏好、业务往来-->
<div
class=
"view-content"
><Busclue
/></div>
<!--商机线索-->
<div
class=
"view-content"
><Relationship
/></div>
<!--关系企业-->
<div
class=
"view-content"
><Senior
/></div>
<!--高管-->
<div
class=
"view-content"
><Risk
/></div>
<!--风险概览-->
<div
class=
"view-content"
><Tender
/></div>
<!--招标公告、企业动态-->
<div
class=
"view-content"
><Infoheader
:companyId=
"companyId"
:companyInfo=
"companyInfo"
:statistic=
"statistic"
v-if=
"isShow"
/></div>
<!-- 企业信息 -->
<div
class=
"view-content"
><Operations
:companyId=
"companyId"
:financial=
"financial"
v-if=
"isShow"
/></div>
<!-- 公司经营 -->
<div
class=
"view-content"
><Bidding
:companyId=
"companyId"
/></div>
<!--招标偏好、业务往来-->
<div
class=
"view-content"
><Busclue
:companyId=
"companyId"
:statistic=
"statistic"
v-if=
"statistic"
/></div>
<!--商机线索-->
<div
class=
"view-content"
><Relationship
:companyId=
"companyId"
:financial=
"financial"
v-if=
"isShow"
/></div>
<!--关系企业-->
<div
class=
"view-content"
><Senior
:companyId=
"companyId"
/></div>
<!--高管-->
<div
class=
"view-content"
><Risk
:companyId=
"companyId"
:statistic=
"statistic"
v-if=
"isShow"
/></div>
<!--风险概览-->
<div
class=
"view-content"
><Tender
:companyId=
"companyId"
/></div>
<!--招标公告、企业动态-->
</div>
</
template
>
<
script
>
import
{
statistic
}
from
'@/api/detail/party-a/overview'
import
{
financial
}
from
'@/api/detail/party-a/financial'
import
Infoheader
from
"./component/infoheader"
import
Operations
from
"./component/operations"
import
Bidding
from
"./component/bidding"
...
...
@@ -35,11 +37,28 @@ export default {
},
data
()
{
return
{
isShow
:
false
,
statistic
:
{},
financial
:
{}
}
},
created
()
{
this
.
handleQuery
()
},
methods
:
{
async
handleQuery
()
{
let
[
statis
,
financ
]
=
await
Promise
.
all
([
statistic
({
companyId
:
this
.
companyId
}),
financial
({
cid
:
this
.
companyId
})
])
if
(
statis
.
code
==
200
){
this
.
statistic
=
statis
.
data
}
if
(
financ
.
code
==
200
){
this
.
financial
=
financ
.
data
}
this
.
isShow
=
true
}
}
}
</
script
>
...
...
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