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
bb6eab16
Commit
bb6eab16
authored
Aug 25, 2023
by
Administrator
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev20230707' into dev20230707
parents
dfbc9892
ae974026
Changes
23
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
375 additions
and
207 deletions
+375
-207
package.json
dsk-operate-ui/package.json
+1
-0
dealings.js
dsk-operate-ui/src/api/detail/party-a/dealings.js
+17
-1
china.js
dsk-operate-ui/src/assets/lib/china.js
+1
-1
index.scss
dsk-operate-ui/src/assets/styles/index.scss
+12
-0
main.js
dsk-operate-ui/src/main.js
+2
-1
index.vue
dsk-operate-ui/src/views/custom/overview/index.vue
+31
-25
HeadDetailForm.vue
...-ui/src/views/detail/party-a/component/HeadDetailForm.vue
+22
-5
index.vue
dsk-operate-ui/src/views/detail/party-a/cooperate/index.vue
+1
-1
bidagency.vue
...perate-ui/src/views/detail/party-a/dealings/bidagency.vue
+0
-1
bidrecords.vue
...erate-ui/src/views/detail/party-a/dealings/bidrecords.vue
+0
-1
bidagencyDetail.vue
...ews/detail/party-a/dealings/component/bidagencyDetail.vue
+12
-3
customDetail.vue
.../views/detail/party-a/dealings/component/customDetail.vue
+39
-11
supplierDetail.vue
...iews/detail/party-a/dealings/component/supplierDetail.vue
+39
-11
custom.vue
dsk-operate-ui/src/views/detail/party-a/dealings/custom.vue
+2
-2
hiscontract.vue
...rate-ui/src/views/detail/party-a/dealings/hiscontract.vue
+0
-1
index.vue
dsk-operate-ui/src/views/index.vue
+21
-24
localEconomy.vue
...e-ui/src/views/macro/economies/component/localEconomy.vue
+2
-2
qgjjdq.vue
...ui/src/views/macro/nationalEconomies/component/qgjjdq.vue
+2
-1
tdjy.vue
...e-ui/src/views/macro/nationalEconomies/component/tdjy.vue
+27
-31
index.vue
dsk-operate-ui/src/views/project/overview/index.vue
+121
-74
jsnr.vue
...erate-ui/src/views/project/projectList/component/jsnr.vue
+18
-6
details.vue
dsk-operate-ui/src/views/radar/Land/details.vue
+4
-4
CustomerMapper.xml
.../main/resources/mapper/system/customer/CustomerMapper.xml
+1
-1
No files found.
dsk-operate-ui/package.json
View file @
bb6eab16
...
@@ -41,6 +41,7 @@
...
@@ -41,6 +41,7 @@
"clipboard"
:
"2.0.8"
,
"clipboard"
:
"2.0.8"
,
"core-js"
:
"3.25.3"
,
"core-js"
:
"3.25.3"
,
"echarts"
:
"^5.0.0"
,
"echarts"
:
"^5.0.0"
,
"el-table-horizontal-scroll"
:
"^1.2.5"
,
"element-resize-detector"
:
"^1.2.4"
,
"element-resize-detector"
:
"^1.2.4"
,
"element-ui"
:
"2.15.12"
,
"element-ui"
:
"2.15.12"
,
"file-saver"
:
"2.0.5"
,
"file-saver"
:
"2.0.5"
,
...
...
dsk-operate-ui/src/api/detail/party-a/dealings.js
View file @
bb6eab16
...
@@ -88,7 +88,7 @@ export function getSelect(data) {
...
@@ -88,7 +88,7 @@ export function getSelect(data) {
data
:
data
data
:
data
})
})
}
}
//
数据
来源链接
//
中标公示
来源链接
export
function
bidWinMergeDetail
(
data
)
{
export
function
bidWinMergeDetail
(
data
)
{
return
request
({
return
request
({
url
:
'/enterpriseBussiness/bidWinMergeDetail'
,
url
:
'/enterpriseBussiness/bidWinMergeDetail'
,
...
@@ -96,3 +96,19 @@ export function bidWinMergeDetail(data) {
...
@@ -96,3 +96,19 @@ export function bidWinMergeDetail(data) {
data
:
data
data
:
data
})
})
}
}
// 四库业绩来源链接
export
function
skyProjectDetail
(
data
)
{
return
request
({
url
:
'/enterpriseBussiness/skyProjectDetail'
,
method
:
'post'
,
data
:
data
})
}
// 荣誉奖项来源链接
export
function
awardDetail
(
data
)
{
return
request
({
url
:
'/enterpriseBussiness/awardDetail'
,
method
:
'post'
,
data
:
data
})
}
dsk-operate-ui/src/assets/lib/china.js
View file @
bb6eab16
This source diff could not be displayed because it is too large. You can
view the blob
instead.
dsk-operate-ui/src/assets/styles/index.scss
View file @
bb6eab16
...
@@ -407,6 +407,18 @@ ul, li {
...
@@ -407,6 +407,18 @@ ul, li {
background
:
#566380
;
background
:
#566380
;
}
}
}
}
.el-scrollbar
{
height
:
16px
;
.el-scrollbar__bar.is-horizontal
{
height
:
8px
;
}
.el-scrollbar__thumb
{
background
:
rgba
(
98
,
110
,
126
,
0
.4
);
&
:hover
{
background
:
#566380
;
}
}
}
}
}
}
}
...
...
dsk-operate-ui/src/main.js
View file @
bb6eab16
...
@@ -13,7 +13,7 @@ import router from './router'
...
@@ -13,7 +13,7 @@ import router from './router'
import
directive
from
'./directive'
// directive
import
directive
from
'./directive'
// directive
import
plugins
from
'./plugins'
// plugins
import
plugins
from
'./plugins'
// plugins
import
{
download
}
from
'@/utils/request'
import
{
download
}
from
'@/utils/request'
import
horizontalScroll
from
'el-table-horizontal-scroll'
import
'./assets/icons'
// icon
import
'./assets/icons'
// icon
import
'./permission'
// permission control
import
'./permission'
// permission control
...
@@ -59,6 +59,7 @@ Vue.component('FileUpload', FileUpload)
...
@@ -59,6 +59,7 @@ Vue.component('FileUpload', FileUpload)
Vue
.
component
(
'ImageUpload'
,
ImageUpload
)
Vue
.
component
(
'ImageUpload'
,
ImageUpload
)
Vue
.
component
(
'ImagePreview'
,
ImagePreview
)
Vue
.
component
(
'ImagePreview'
,
ImagePreview
)
Vue
.
use
(
horizontalScroll
)
Vue
.
use
(
directive
)
Vue
.
use
(
directive
)
Vue
.
use
(
plugins
)
Vue
.
use
(
plugins
)
Vue
.
use
(
VueMeta
)
Vue
.
use
(
VueMeta
)
...
...
dsk-operate-ui/src/views/custom/overview/index.vue
View file @
bb6eab16
...
@@ -81,7 +81,7 @@
...
@@ -81,7 +81,7 @@
</div>
</div>
<div
class=
"content content_wap2"
>
<div
class=
"content content_wap2"
>
<div
class=
"head_title"
>
客户资信评级
</div>
<div
class=
"head_title"
>
客户资信评级
</div>
<el-row>
<el-row
v-if=
"creditLevel.length > 0"
>
<el-col
:span=
"14"
>
<el-col
:span=
"14"
>
<div
id=
"zxpj-echarts"
style=
"height: 250px;"
></div>
<div
id=
"zxpj-echarts"
style=
"height: 250px;"
></div>
</el-col>
</el-col>
...
@@ -100,6 +100,10 @@
...
@@ -100,6 +100,10 @@
</div>
</div>
</el-col>
</el-col>
</el-row>
</el-row>
<div
class=
"empty"
v-if=
"creditLevel.length === 0"
>
<img
class=
"img"
src=
"@/assets/images/project/empty.png"
>
<div
class=
"p1"
>
抱歉,没找到相关数据
</div>
</div>
</div>
</div>
<div
class=
"content_wap3"
>
<div
class=
"content_wap3"
>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-box"
>
...
@@ -216,8 +220,8 @@
...
@@ -216,8 +220,8 @@
defaultValue
:
new
Date
(),
defaultValue
:
new
Date
(),
pickerValue
:
[],
pickerValue
:
[],
params
:{
params
:{
startTime
:
this
.
formatDate
(
new
Date
())
,
startTime
:
''
,
endTime
:
this
.
formatDate
(
new
Date
())
endTime
:
''
,
},
},
data
:{
data
:{
open
:
false
open
:
false
...
@@ -264,12 +268,16 @@
...
@@ -264,12 +268,16 @@
}
}
})
})
creditLevel
().
then
(
res
=>
{
creditLevel
().
then
(
res
=>
{
let
data
=
[]
for
(
let
i
=
0
;
i
<
res
.
data
.
length
;
i
++
){
for
(
let
i
=
0
;
i
<
res
.
data
.
length
;
i
++
){
if
(
res
.
data
[
i
].
creditLevel
){
if
(
res
.
data
[
i
].
creditLevel
){
this
.
creditLevel
.
push
(
res
.
data
[
i
])
data
.
push
(
res
.
data
[
i
])
}
}
}
}
this
.
creditLevel
=
data
;
if
(
this
.
creditLevel
.
length
>
0
){
this
.
initChart1
(
this
.
creditLevel
)
this
.
initChart1
(
this
.
creditLevel
)
}
})
})
},
},
getFollowList
(){
getFollowList
(){
...
@@ -829,7 +837,6 @@
...
@@ -829,7 +837,6 @@
}
}
}
}
.content_wap1
{
.empty
{
.empty
{
margin
:
0
auto
;
margin
:
0
auto
;
height
:
300px
;
height
:
300px
;
...
@@ -850,7 +857,6 @@
...
@@ -850,7 +857,6 @@
margin-top
:
8px
;
margin-top
:
8px
;
}
}
}
}
}
.content_wap3
{
.content_wap3
{
background
:
#ffffff
;
background
:
#ffffff
;
.query-box
{
.query-box
{
...
...
dsk-operate-ui/src/views/detail/party-a/component/HeadDetailForm.vue
View file @
bb6eab16
<
template
>
<
template
>
<div
class=
"headForm"
>
<div
class=
"headForm"
>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<div
class=
"flex-box query-params"
:class=
"flag?'box1':''"
>
<div
class=
"flex-box headForm-text"
>
<div
class=
"flex-box headForm-text"
>
<!--
<img
v-if=
"title"
src=
"@/assets/images/detail/ico_title.png"
/>
-->
<template
v-if=
"flag"
>
<!--
<span
class=
"drawer-title"
v-if=
"title"
>
{{
title
}}
</span>
-->
<img
v-if=
"title"
src=
"@/assets/images/detail/ico_title.png"
/>
<span
class=
"drawer-title"
v-if=
"title"
>
{{
title
}}
</span>
</
template
>
<
template
v-if=
"slots"
>
<
template
v-if=
"slots"
>
<slot
name=
"slot"
></slot>
<slot
name=
"slot"
></slot>
</
template
>
</
template
>
<
!-- <div v-else
>
<
div
v-if=
"flag"
>
<span
class=
"ability-total"
v-if=
"isTotal"
>
{{ total }}条数据
</span>
<span
class=
"ability-total"
v-if=
"isTotal"
>
{{ total }}条数据
</span>
<span
class=
"ability-total"
v-if=
"amountTotal"
>
,共计合作总金额:
<i>
{{ amountTotal }}
</i>
万元
</span>
<span
class=
"ability-total"
v-if=
"amountTotal"
>
,共计合作总金额:
<i>
{{ amountTotal }}
</i>
万元
</span>
</div>
-->
</div>
</div>
</div>
<div
class=
"headForm-from"
>
<div
class=
"headForm-from"
>
<div
class=
"from-item"
:key=
"i"
v-for=
"(form, i) in formData"
>
<div
class=
"from-item"
:key=
"i"
v-for=
"(form, i) in formData"
>
...
@@ -96,6 +98,10 @@ export default {
...
@@ -96,6 +98,10 @@ export default {
type
:
String
,
type
:
String
,
default
:
''
default
:
''
},
},
flag
:
{
type
:
Boolean
,
default
:
false
},
queryParams
:
{
queryParams
:
{
type
:
Object
,
type
:
Object
,
default
:
{}
default
:
{}
...
@@ -143,6 +149,11 @@ export default {
...
@@ -143,6 +149,11 @@ export default {
width
:
100%
;
width
:
100%
;
padding
:
8px
17px
8px
0
;
padding
:
8px
17px
8px
0
;
}
}
.box1
{
padding
:
8px
17px
8px
13px
;
justify-content
:
space-between
;
border-bottom
:
1px
solid
#E1E1E1
;
}
::v-deep
.el-input__inner
{
::v-deep
.el-input__inner
{
border
:
0
;
border
:
0
;
height
:
32px
;
height
:
32px
;
...
@@ -171,6 +182,12 @@ export default {
...
@@ -171,6 +182,12 @@ export default {
line-height
:
32px
;
line-height
:
32px
;
}
}
.headForm-text
{
.headForm-text
{
.drawer-title
{
font-size
:
16px
;
color
:
#232323
;
font-weight
:
bold
;
margin-right
:
4px
;
}
img
{
img
{
width
:
17px
;
width
:
17px
;
height
:
17px
;
height
:
17px
;
...
...
dsk-operate-ui/src/views/detail/party-a/cooperate/index.vue
View file @
bb6eab16
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
>
>
<template
slot=
"slot"
>
<template
slot=
"slot"
>
<div
class=
"flex-box query-add"
>
<div
class=
"flex-box query-add"
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"drawer = true"
>
添加
商务信息
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"drawer = true"
>
添加
合作情况
</el-button>
</div>
</div>
</
template
>
</
template
>
</head-form>
</head-form>
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/bidagency.vue
View file @
bb6eab16
...
@@ -82,7 +82,6 @@ export default {
...
@@ -82,7 +82,6 @@ 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
)
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/bidrecords.vue
View file @
bb6eab16
...
@@ -71,7 +71,6 @@ export default {
...
@@ -71,7 +71,6 @@ 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
)
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/component/bidagencyDetail.vue
View file @
bb6eab16
...
@@ -8,13 +8,16 @@
...
@@ -8,13 +8,16 @@
@
closed=
"cancel"
>
@
closed=
"cancel"
>
<head-detail-form
<head-detail-form
:title=
"title"
:title=
"title"
:flag=
"true"
:form-data=
"formData"
:form-data=
"formData"
:query-params=
"queryParams"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:total=
"tableDataTotal"
:amountTotal=
"amountTotal"
:amountTotal=
"amountTotal"
@
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"
...
@@ -27,7 +30,7 @@
...
@@ -27,7 +30,7 @@
<template
slot=
"dealTitle"
slot-scope=
"scope"
>
<template
slot=
"dealTitle"
slot-scope=
"scope"
>
<div
class=
"flex-box"
>
<div
class=
"flex-box"
>
<img
class=
"tip-img"
src=
"@/assets/images/detail/ico_pdf.png"
v-if=
"scope.row.fileUrlL"
@
click=
"handlePic(scope.row.fileUrlL)"
/>
<img
class=
"tip-img"
src=
"@/assets/images/detail/ico_pdf.png"
v-if=
"scope.row.fileUrlL"
@
click=
"handlePic(scope.row.fileUrlL)"
/>
<
router-link
:to=
"`/radar/Notice/details/$
{scope.row.bid}`" tag="a" class="a-link" v-if="scope.row.bid
&&
scope.row.dealTitle" v-html="scope.row.dealTitle">
</router-link
>
<
div
class=
"a-link"
@
click=
"linkTo(scope.row.bid)"
v-if=
"scope.row.bid&&scope.row.dealTitle"
v-html=
"scope.row.dealTitle"
style=
"cursor: pointer"
></div
>
<span
v-else
v-html=
"scope.row.dealTitle || '--'"
></span>
<span
v-else
v-html=
"scope.row.dealTitle || '--'"
></span>
</div>
</div>
</
template
>
</
template
>
...
@@ -43,18 +46,19 @@
...
@@ -43,18 +46,19 @@
import
mixin
from
'../../mixins/mixin'
import
mixin
from
'../../mixins/mixin'
import
{
bidCooperatePage
}
from
'@/api/detail/party-a/dealings'
import
{
bidCooperatePage
}
from
'@/api/detail/party-a/dealings'
import
HeadDetailForm
from
"../../component/HeadDetailForm"
import
HeadDetailForm
from
"../../component/HeadDetailForm"
import
skeleton
from
'@/views/project/projectList/component/skeleton'
export
default
{
export
default
{
props
:
[
props
:
[
'data'
,
'data'
,
'title'
'title'
],
],
components
:
{
components
:
{
HeadDetailForm
HeadDetailForm
,
skeleton
}
,
}
,
mixins
:
[
mixin
],
mixins
:
[
mixin
],
data
()
{
data
()
{
return
{
return
{
isSkeleton
:
true
,
drawer
:
false
,
drawer
:
false
,
queryParams
:
{
queryParams
:
{
tendereeId
:
this
.
data
.
tendereeId
,
tendereeId
:
this
.
data
.
tendereeId
,
...
@@ -84,6 +88,10 @@ export default {
...
@@ -84,6 +88,10 @@ export default {
this
.
handleQuery
()
this
.
handleQuery
()
}
,
}
,
methods
:
{
methods
:
{
linkTo
(
id
){
this
.
drawer
=
false
this
.
$router
.
push
(
`/radar/Notice/details/${id
}
`
)
}
,
async
handleQuery
(
params
)
{
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
let
param
=
params
?
params
:
this
.
queryParams
...
@@ -92,6 +100,7 @@ export default {
...
@@ -92,6 +100,7 @@ export default {
if
(
res
.
code
==
200
){
if
(
res
.
code
==
200
){
this
.
tableData
=
res
.
rows
this
.
tableData
=
res
.
rows
}
}
this
.
isSkeleton
=
false
;
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
this
.
amountTotal
=
res
.
totalAmount
this
.
amountTotal
=
res
.
totalAmount
}
,
}
,
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/component/customDetail.vue
View file @
bb6eab16
...
@@ -22,13 +22,17 @@
...
@@ -22,13 +22,17 @@
:tableData=
"tableData"
:tableData=
"tableData"
:forData=
"forData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:tableDataTotal=
"tableDataTotal"
@
sort-change=
"sortChange"
:queryParams=
"queryParams"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
handle-current-change=
"handleCurrentChange"
>
>
<template
slot=
"projectName"
slot-scope=
"scope"
>
<span
v-html=
"scope.row.projectName"
></span>
</
template
>
<
template
slot=
"sourceType"
slot-scope=
"scope"
>
<
template
slot=
"sourceType"
slot-scope=
"scope"
>
<div
class=
"flex-box"
>
<div
class=
"flex-box"
>
<div
class=
"a-link"
@
click=
"linkTo(scope)"
v-if=
"scope.row.sourceId&&scope.row.sourceType=='中标业绩'"
v-html=
"scope.row.sourceType"
style=
"cursor: pointer"
></div>
<div
class=
"a-link"
@
click=
"linkTo(scope)"
v-if=
"scope.row.sourceId&&scope.row.sourceType=='中标业绩'"
v-html=
"scope.row.sourceType"
style=
"cursor: pointer"
></div>
<span
v-else-if=
"scope.row.sourceId"
@
click=
"linkTo1(scope)"
class=
"a-link"
style=
"cursor: pointer"
v-html=
"scope.row.sourceType"
></span>
<span
v-else-if=
"scope.row.sourceId
&&(scope.row.sourceType=='中标公示'||scope.row.sourceType=='四库业绩'||scope.row.sourceType=='荣誉奖项')
"
@
click=
"linkTo1(scope)"
class=
"a-link"
style=
"cursor: pointer"
v-html=
"scope.row.sourceType"
></span>
<span
v-else
v-html=
"scope.row.sourceType || '--'"
></span>
<span
v-else
v-html=
"scope.row.sourceType || '--'"
></span>
</div>
</div>
</
template
>
</
template
>
...
@@ -39,7 +43,7 @@
...
@@ -39,7 +43,7 @@
<
script
>
<
script
>
import
mixin
from
'../../mixins/mixin'
import
mixin
from
'../../mixins/mixin'
import
{
clientProjectPage
,
getSelect
,
bidWinMergeDetail
}
from
'@/api/detail/party-a/dealings'
import
{
clientProjectPage
,
getSelect
,
bidWinMergeDetail
,
skyProjectDetail
,
awardDetail
}
from
'@/api/detail/party-a/dealings'
import
HeadDetailForm
from
"../../component/HeadDetailForm"
import
HeadDetailForm
from
"../../component/HeadDetailForm"
import
skeleton
from
'@/views/project/projectList/component/skeleton'
import
skeleton
from
'@/views/project/projectList/component/skeleton'
...
@@ -60,7 +64,7 @@ export default {
...
@@ -60,7 +64,7 @@ export default {
queryParams
:
{
queryParams
:
{
cid
:
this
.
companyId
,
cid
:
this
.
companyId
,
companyId
:
this
.
data
.
companyId
,
companyId
:
this
.
data
.
companyId
,
companyName
:
this
.
data
.
companyName
,
companyName
:
this
.
data
.
companyName
.
replace
(
/<font color='red'>/g
,
''
).
replace
(
/<
\/
font>/g
,
''
)
,
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
20
pageSize
:
20
},
},
...
@@ -71,9 +75,9 @@ export default {
...
@@ -71,9 +75,9 @@ export default {
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目/工程名称查询'
,
options
:
[]},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目/工程名称查询'
,
options
:
[]},
],
],
forData
:
[
forData
:
[
{
label
:
'项目名称'
,
prop
:
'projectName'
,
fixed
:
true
},
{
label
:
'项目名称'
,
prop
:
'projectName'
,
fixed
:
true
,
slot
:
true
},
{
label
:
'公布时间'
,
prop
:
'time'
,
width
:
'120'
,
sortable
:
true
},
{
label
:
'公布时间'
,
prop
:
'time'
,
width
:
'120'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
},
{
label
:
'本次合同金额(万元)'
,
prop
:
'amount'
,
width
:
'180'
,
sortable
:
true
},
{
label
:
'本次合同金额(万元)'
,
prop
:
'amount'
,
width
:
'180'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
},
{
label
:
'项目类型'
,
prop
:
'projectTtype'
,
width
:
'130'
},
{
label
:
'项目类型'
,
prop
:
'projectTtype'
,
width
:
'130'
},
{
label
:
'数据来源'
,
prop
:
'sourceType'
,
width
:
'90'
,
slot
:
true
}
{
label
:
'数据来源'
,
prop
:
'sourceType'
,
width
:
'90'
,
slot
:
true
}
],
],
...
@@ -132,11 +136,35 @@ export default {
...
@@ -132,11 +136,35 @@ export default {
this
.
$router
.
push
(
`/biddetail/
${
scope
.
row
.
sourceId
}
`
)
this
.
$router
.
push
(
`/biddetail/
${
scope
.
row
.
sourceId
}
`
)
},
},
linkTo1
(
scope
){
linkTo1
(
scope
){
let
url
=
""
switch
(
scope
.
row
.
sourceType
)
{
case
'中标公示'
:
bidWinMergeDetail
({
sourceId
:
scope
.
row
.
sourceId
}).
then
(
res
=>
{
bidWinMergeDetail
({
sourceId
:
scope
.
row
.
sourceId
}).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
sourceUrl
){
if
(
res
.
data
&&
res
.
data
.
sourceUrl
){
window
.
open
(
res
.
data
.
sourceUrl
,
"_blank"
)
url
=
res
.
data
.
sourceUrl
window
.
open
(
url
,
"_blank"
)
}
})
break
;
case
'荣誉奖项'
:
awardDetail
({
sourceId
:
scope
.
row
.
sourceId
}).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
sourceUrl
){
url
=
res
.
data
.
sourceUrl
window
.
open
(
url
,
"_blank"
)
}
}
})
})
break
;
case
'四库业绩'
:
skyProjectDetail
({
sourceId
:
scope
.
row
.
sourceId
}).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
sourceUrl
){
url
=
res
.
data
.
sourceUrl
window
.
open
(
url
,
"_blank"
)
}
})
break
;
default
:
break
;
}
},
},
cancel
()
{
cancel
()
{
this
.
$emit
(
'cancel'
)
this
.
$emit
(
'cancel'
)
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/component/supplierDetail.vue
View file @
bb6eab16
...
@@ -23,12 +23,16 @@
...
@@ -23,12 +23,16 @@
:forData=
"forData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
:queryParams=
"queryParams"
@
sort-change=
"sortChange"
@
handle-current-change=
"handleCurrentChange"
@
handle-current-change=
"handleCurrentChange"
>
>
<template
slot=
"projectName"
slot-scope=
"scope"
>
<span
v-html=
"scope.row.projectName"
></span>
</
template
>
<
template
slot=
"sourceType"
slot-scope=
"scope"
>
<
template
slot=
"sourceType"
slot-scope=
"scope"
>
<div
class=
"flex-box"
>
<div
class=
"flex-box"
>
<div
class=
"a-link"
@
click=
"linkTo(scope)"
v-if=
"scope.row.sourceId&&scope.row.sourceType=='中标业绩'"
v-html=
"scope.row.sourceType"
style=
"cursor: pointer"
></div>
<div
class=
"a-link"
@
click=
"linkTo(scope)"
v-if=
"scope.row.sourceId&&scope.row.sourceType=='中标业绩'"
v-html=
"scope.row.sourceType"
style=
"cursor: pointer"
></div>
<span
v-else-if=
"scope.row.sourceId"
@
click=
"linkTo1(scope)"
class=
"a-link"
style=
"cursor: pointer"
v-html=
"scope.row.sourceType"
></span>
<span
v-else-if=
"scope.row.sourceId
&&(scope.row.sourceType=='中标公示'||scope.row.sourceType=='四库业绩'||scope.row.sourceType=='荣誉奖项')
"
@
click=
"linkTo1(scope)"
class=
"a-link"
style=
"cursor: pointer"
v-html=
"scope.row.sourceType"
></span>
<span
v-else
v-html=
"scope.row.sourceType || '--'"
></span>
<span
v-else
v-html=
"scope.row.sourceType || '--'"
></span>
</div>
</div>
</
template
>
</
template
>
...
@@ -39,7 +43,7 @@
...
@@ -39,7 +43,7 @@
<
script
>
<
script
>
import
mixin
from
'../../mixins/mixin'
import
mixin
from
'../../mixins/mixin'
import
{
supplierProjectPage
,
getSelect
,
bidWinMergeDetail
}
from
'@/api/detail/party-a/dealings'
import
{
supplierProjectPage
,
getSelect
,
bidWinMergeDetail
,
skyProjectDetail
,
awardDetail
}
from
'@/api/detail/party-a/dealings'
import
HeadDetailForm
from
"../../component/HeadDetailForm"
import
HeadDetailForm
from
"../../component/HeadDetailForm"
import
skeleton
from
'@/views/project/projectList/component/skeleton'
import
skeleton
from
'@/views/project/projectList/component/skeleton'
...
@@ -59,7 +63,7 @@ export default {
...
@@ -59,7 +63,7 @@ export default {
drawer
:
false
,
drawer
:
false
,
queryParams
:
{
queryParams
:
{
companyId
:
this
.
data
.
companyId
,
companyId
:
this
.
data
.
companyId
,
companyName
:
this
.
data
.
companyName
,
companyName
:
this
.
data
.
companyName
.
replace
(
/<font color='red'>/g
,
''
).
replace
(
/<
\/
font>/g
,
''
)
,
cid
:
this
.
companyId
,
cid
:
this
.
companyId
,
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
20
pageSize
:
20
...
@@ -71,9 +75,9 @@ export default {
...
@@ -71,9 +75,9 @@ export default {
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入合作项目/工程名称查询'
,
options
:
[],
width
:
260
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入合作项目/工程名称查询'
,
options
:
[],
width
:
260
},
],
],
forData
:
[
forData
:
[
{
label
:
'项目名称'
,
prop
:
'projectName'
,
fixed
:
true
},
{
label
:
'项目名称'
,
prop
:
'projectName'
,
fixed
:
true
,
slot
:
true
},
{
label
:
'公布时间'
,
prop
:
'time'
,
width
:
'120'
,
sortable
:
true
},
{
label
:
'公布时间'
,
prop
:
'time'
,
width
:
'120'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
},
{
label
:
'本次合同金额(万元)'
,
prop
:
'amount'
,
width
:
'180'
,
sortable
:
true
},
{
label
:
'本次合同金额(万元)'
,
prop
:
'amount'
,
width
:
'180'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
},
{
label
:
'项目类型'
,
prop
:
'projectType'
,
width
:
'130'
},
{
label
:
'项目类型'
,
prop
:
'projectType'
,
width
:
'130'
},
{
label
:
'数据来源'
,
prop
:
'sourceType'
,
width
:
'90'
,
slot
:
true
}
{
label
:
'数据来源'
,
prop
:
'sourceType'
,
width
:
'90'
,
slot
:
true
}
],
],
...
@@ -132,11 +136,35 @@ export default {
...
@@ -132,11 +136,35 @@ export default {
this
.
$router
.
push
(
`/biddetail/
${
scope
.
row
.
sourceId
}
`
)
this
.
$router
.
push
(
`/biddetail/
${
scope
.
row
.
sourceId
}
`
)
},
},
linkTo1
(
scope
){
linkTo1
(
scope
){
let
url
=
""
switch
(
scope
.
row
.
sourceType
)
{
case
'中标公示'
:
bidWinMergeDetail
({
sourceId
:
scope
.
row
.
sourceId
}).
then
(
res
=>
{
bidWinMergeDetail
({
sourceId
:
scope
.
row
.
sourceId
}).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
sourceUrl
){
if
(
res
.
data
&&
res
.
data
.
sourceUrl
){
window
.
open
(
res
.
data
.
sourceUrl
,
"_blank"
)
url
=
res
.
data
.
sourceUrl
window
.
open
(
url
,
"_blank"
)
}
})
break
;
case
'荣誉奖项'
:
awardDetail
({
sourceId
:
scope
.
row
.
sourceId
}).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
sourceUrl
){
url
=
res
.
data
.
sourceUrl
window
.
open
(
url
,
"_blank"
)
}
}
})
})
break
;
case
'四库业绩'
:
skyProjectDetail
({
sourceId
:
scope
.
row
.
sourceId
}).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
sourceUrl
){
url
=
res
.
data
.
sourceUrl
window
.
open
(
url
,
"_blank"
)
}
})
break
;
default
:
break
;
}
},
},
cancel
()
{
cancel
()
{
this
.
$emit
(
'cancel'
)
this
.
$emit
(
'cancel'
)
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/custom.vue
View file @
bb6eab16
...
@@ -59,11 +59,11 @@ export default {
...
@@ -59,11 +59,11 @@ export default {
title
:
''
,
title
:
''
,
queryParams
:
{
queryParams
:
{
cid
:
this
.
companyId
,
cid
:
this
.
companyId
,
sort
:
3
,
sort
:
5
,
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
20
pageSize
:
20
},
},
defaultSort
:
{},
defaultSort
:
{
prop
:
'count'
,
order
:
'descending'
},
forData
:
[
forData
:
[
{
label
:
'客户名称'
,
prop
:
'companyName'
,
minWidth
:
'350'
,
slot
:
true
},
{
label
:
'客户名称'
,
prop
:
'companyName'
,
minWidth
:
'350'
,
slot
:
true
},
// {label: '合作项目/工程名称', prop: 'projectAllName', minWidth: '400', slot: true, sortable: 'custom', descending: '5', ascending: '6'},
// {label: '合作项目/工程名称', prop: 'projectAllName', minWidth: '400', slot: true, sortable: 'custom', descending: '5', ascending: '6'},
...
...
dsk-operate-ui/src/views/detail/party-a/dealings/hiscontract.vue
View file @
bb6eab16
...
@@ -94,7 +94,6 @@ export default {
...
@@ -94,7 +94,6 @@ export default {
},
},
async
handleQuery
(
params
)
{
async
handleQuery
(
params
)
{
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
...
...
dsk-operate-ui/src/views/index.vue
View file @
bb6eab16
...
@@ -50,11 +50,11 @@
...
@@ -50,11 +50,11 @@
</div>
</div>
</el-col>
</el-col>
</el-row>
</el-row>
<div
class=
"tips"
>
注:数据来源大司空建筑大数据平台,统计范围为全国公开的施工内土地交易项目,未公开的不含在内
</div>
<div
class=
"content content_wap1"
>
<div
class=
"content content_wap1"
>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
集团中标统计
</span>
<span
class=
"common-title"
>
集团中标统计
</span>
<div
class=
"tips"
>
注:数据来源大司空建筑大数据平台,统计范围为全国公开的施工内土地交易项目,未公开的不含在内
</div>
</div>
</div>
<div
class=
"flex-box"
>
<div
class=
"flex-box"
>
<div
class=
"search"
>
<div
class=
"search"
>
...
@@ -116,6 +116,7 @@
...
@@ -116,6 +116,7 @@
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
大项目中标排行榜
</span>
<span
class=
"common-title"
>
大项目中标排行榜
</span>
<div
class=
"tips"
>
注:数据来源大司空建筑大数据平台,统计范围为全国公开的施工内土地交易项目,未公开的不含在内
</div>
</div>
</div>
<div
class=
"flex-box"
>
<div
class=
"flex-box"
>
<div
class=
"search"
>
<div
class=
"search"
>
...
@@ -190,7 +191,7 @@
...
@@ -190,7 +191,7 @@
<div
class=
"list-content"
>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<p
class=
"list-content-text"
>
<span>
中标企业:
</span>
<span>
中标企业:
</span>
<span
><router-link
:to=
"`/enterprise/${encodeStr(item.jskEid)}`"
tag=
"a"
class=
"a-link companyName"
v-html=
"item.ename"
></router-link>
</span>
<span
@
click=
"getUipIdByCid(item.jskEid)"
class=
"a-link"
>
{{item.ename}}
</span>
</p>
</p>
<p
class=
"list-content-text"
>
<p
class=
"list-content-text"
>
<span>
中标金额:
</span>
<span>
中标金额:
</span>
...
@@ -262,7 +263,7 @@
...
@@ -262,7 +263,7 @@
:timeList=
"timeList"
:timeList=
"timeList"
v-model=
"queryParams2.time"
v-model=
"queryParams2.time"
timeValue=
"近七天"
timeValue=
"近七天"
placeholder=
"中标日期
"
:placeholder=
"timePlaceholder
"
@
handle-search=
"changeSelect3"
/>
@
handle-search=
"changeSelect3"
/>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
...
@@ -670,7 +671,7 @@ export default {
...
@@ -670,7 +671,7 @@ export default {
provinceId
:
''
,
provinceId
:
''
,
projects
:[],
projects
:[],
amount
:
''
,
amount
:
''
,
time
:
''
,
time
:
[
this
.
formatDate
(
new
Date
(
new
Date
().
getTime
()
-
3600
*
1000
*
24
*
7
)),
this
.
formatDate
(
new
Date
())]
,
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
10
pageSize
:
10
},
},
...
@@ -686,6 +687,7 @@ export default {
...
@@ -686,6 +687,7 @@ export default {
dxmzbState
:
true
,
dxmzbState
:
true
,
zhaobiaoIsSkeleton
:
true
,
zhaobiaoIsSkeleton
:
true
,
placeholder
:
'中标金额'
,
placeholder
:
'中标金额'
,
timePlaceholder
:
'中标日期'
,
show_page
:
true
,
show_page
:
true
,
MaxPage
:
500
,
MaxPage
:
500
,
};
};
...
@@ -922,7 +924,7 @@ export default {
...
@@ -922,7 +924,7 @@ export default {
top
:
30
,
top
:
30
,
left
:
80
,
left
:
80
,
right
:
90
,
right
:
90
,
bottom
:
3
0
,
bottom
:
5
0
,
},
},
series
:
[
series
:
[
{
{
...
@@ -1215,7 +1217,7 @@ export default {
...
@@ -1215,7 +1217,7 @@ export default {
top
:
30
,
top
:
30
,
left
:
60
,
left
:
60
,
right
:
90
,
right
:
90
,
bottom
:
3
0
,
bottom
:
5
0
,
// containLabel: true
// containLabel: true
},
},
// dataZoom:[
// dataZoom:[
...
@@ -1303,10 +1305,12 @@ export default {
...
@@ -1303,10 +1305,12 @@ export default {
if
(
this
.
activeName
===
'first'
){
if
(
this
.
activeName
===
'first'
){
this
.
getBigWinningBidsPage
()
this
.
getBigWinningBidsPage
()
this
.
placeholder
=
'中标金额'
this
.
placeholder
=
'中标金额'
this
.
timePlaceholder
=
'中标日期'
}
}
if
(
this
.
activeName
===
'second'
){
if
(
this
.
activeName
===
'second'
){
this
.
getBigBidPage
()
this
.
getBigBidPage
()
this
.
placeholder
=
'总投资'
this
.
placeholder
=
'总投资'
this
.
timePlaceholder
=
'发布日期'
}
}
},
},
handleClickTab1
(){},
handleClickTab1
(){},
...
@@ -1417,6 +1421,14 @@ export default {
...
@@ -1417,6 +1421,14 @@ export default {
}
}
}
}
},
},
// 时间格式化
formatDate
(
timeStr
)
{
let
date
=
new
Date
(
Number
(
timeStr
))
let
year
=
date
.
getFullYear
()
let
month
=
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
0
)
let
day
=
String
(
date
.
getDate
()).
padStart
(
2
,
0
)
return
`
${
year
}
-
${
month
}
-
${
day
}
`
},
}
}
};
};
</
script
>
</
script
>
...
@@ -1503,17 +1515,19 @@ export default {
...
@@ -1503,17 +1515,19 @@ export default {
color
:
#999999
;
color
:
#999999
;
font-size
:
12px
;
font-size
:
12px
;
margin
:
12px
0
;
margin
:
12px
0
;
padding-left
:
16px
;
}
}
.content
{
.content
{
background
:
#ffffff
;
background
:
#ffffff
;
padding
:
16px
;
padding
:
16px
;
margin-top
:
12px
;
.query-box
{
.query-box
{
margin-bottom
:
16px
;
margin-bottom
:
16px
;
}
}
}
}
.content_wap1
{
.content_wap1
{
height
:
430px
;
height
:
430px
;
margin-bottom
:
12px
;
}
}
.content_wap2
{
.content_wap2
{
height
:
430px
;
height
:
430px
;
...
@@ -1718,23 +1732,6 @@ export default {
...
@@ -1718,23 +1732,6 @@ export default {
align-items
:
center
;
align-items
:
center
;
margin-right
:
32px
;
margin-right
:
32px
;
font-size
:
14px
;
font-size
:
14px
;
span
:first-child
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
line-height
:
15px
}
span
:last-child
{
font-weight
:
400
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
line-height
:
15px
}
.blue
{
color
:
#0081FF
!
important
;
cursor
:
pointer
;
}
}
}
}
}
...
...
dsk-operate-ui/src/views/macro/economies/component/localEconomy.vue
View file @
bb6eab16
...
@@ -111,10 +111,10 @@ export default {
...
@@ -111,10 +111,10 @@ export default {
params
.
provinceIds
=
[
this
.
provinceId
[
0
]]
params
.
provinceIds
=
[
this
.
provinceId
[
0
]]
}
}
if
(
this
.
provinceId
.
length
>
1
){
if
(
this
.
provinceId
.
length
>
1
){
params
.
cityId
=
[
this
.
provinceId
[
1
]]
params
.
cityId
s
=
[
this
.
provinceId
[
1
]]
}
}
if
(
this
.
provinceId
.
length
>
2
){
if
(
this
.
provinceId
.
length
>
2
){
params
.
areaId
=
[
this
.
provinceId
[
2
]]
params
.
areaId
s
=
[
this
.
provinceId
[
2
]]
}
}
// params.provinceIds=[this.dataQuery.provinceId]
// params.provinceIds=[this.dataQuery.provinceId]
// this.isSkeleton = true
// this.isSkeleton = true
...
...
dsk-operate-ui/src/views/macro/nationalEconomies/component/qgjjdq.vue
View file @
bb6eab16
...
@@ -29,14 +29,15 @@
...
@@ -29,14 +29,15 @@
</div>
</div>
</div>
</div>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<!--v-horizontal-scroll="'always'"-->
<div
class=
"table-item"
>
<div
class=
"table-item"
>
<el-table
<el-table
class=
"fixed-table"
class=
"fixed-table"
:data=
"tableData"
:data=
"tableData"
element-loading-text=
"Loading"
element-loading-text=
"Loading"
@
sort-change=
"sortChange"
@
sort-change=
"sortChange"
border
max-height=
"640"
max-height=
"640"
border
highlight-current-row
highlight-current-row
v-if=
"tableDataTotal > 0 && !isSkeleton"
v-if=
"tableDataTotal > 0 && !isSkeleton"
:default-sort =
"
{prop: 'gdp', order: 'descending'}"
:default-sort =
"
{prop: 'gdp', order: 'descending'}"
...
...
dsk-operate-ui/src/views/macro/nationalEconomies/component/tdjy.vue
View file @
bb6eab16
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
</el-select>
</el-select>
</div>
</div>
</div>
</div>
<div
class=
"content_box"
v-if=
"gyf
lState
"
>
<div
class=
"content_box"
v-if=
"gyf
sList.length > 0 && !isSkeleton
"
>
<div
class=
"box-left"
>
<div
class=
"box-left"
>
<div
id=
"echarts1"
style=
"height: 280px"
></div>
<div
id=
"echarts1"
style=
"height: 280px"
></div>
</div>
</div>
...
@@ -36,12 +36,12 @@
...
@@ -36,12 +36,12 @@
</el-table>
</el-table>
</div>
</div>
</div>
</div>
<div
class=
"empty"
v-if=
"
!gyflState
"
>
<div
class=
"empty"
v-if=
"
gyfsList.length === 0 && !isSkeleton
"
>
<img
class=
"img"
src=
"@/assets/images/project/empty.png"
>
<img
class=
"img"
src=
"@/assets/images/project/empty.png"
>
<div
class=
"p1"
>
抱歉,暂无数据展示
</div>
<div
class=
"p1"
>
抱歉,暂无数据展示
</div>
</div>
</div>
</div>
</div>
<div
v-if=
"!
isSkeleton
"
class=
"td_content"
>
<div
v-if=
"!
tdytState
"
class=
"td_content"
>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
全国土地交易项目土地用途
</span>
<span
class=
"common-title"
>
全国土地交易项目土地用途
</span>
...
@@ -50,7 +50,7 @@
...
@@ -50,7 +50,7 @@
</el-select>
</el-select>
</div>
</div>
</div>
</div>
<div
class=
"content_box"
v-if=
"tdytState"
>
<div
class=
"content_box"
v-if=
"tdyt
List.length > 0 && !tdyt
State"
>
<div
class=
"box-left"
>
<div
class=
"box-left"
>
<div
id=
"echarts2"
style=
"height: 280px"
></div>
<div
id=
"echarts2"
style=
"height: 280px"
></div>
</div>
</div>
...
@@ -75,12 +75,12 @@
...
@@ -75,12 +75,12 @@
</el-table>
</el-table>
</div>
</div>
</div>
</div>
<div
class=
"empty"
v-if=
"!tdytState"
>
<div
class=
"empty"
v-if=
"
tdytList.length === 0 &&
!tdytState"
>
<img
class=
"img"
src=
"@/assets/images/project/empty.png"
>
<img
class=
"img"
src=
"@/assets/images/project/empty.png"
>
<div
class=
"p1"
>
抱歉,暂无数据展示
</div>
<div
class=
"p1"
>
抱歉,暂无数据展示
</div>
</div>
</div>
</div>
</div>
<div
v-if=
"!
isSkeleton
"
class=
"td_content"
>
<div
v-if=
"!
topState
"
class=
"td_content"
>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
全国土地交易项目地区Top10
</span>
<span
class=
"common-title"
>
全国土地交易项目地区Top10
</span>
...
@@ -92,7 +92,7 @@
...
@@ -92,7 +92,7 @@
</el-select>
</el-select>
</div>
</div>
</div>
</div>
<div
class=
"content_box"
v-if=
"topList.length > 0 && !
isSkeleton
"
>
<div
class=
"content_box"
v-if=
"topList.length > 0 && !
topState
"
>
<div
class=
"box-left"
style=
"width: 60%;"
>
<div
class=
"box-left"
style=
"width: 60%;"
>
<div
id=
"echarts3"
style=
"height: 300px"
></div>
<div
id=
"echarts3"
style=
"height: 300px"
></div>
</div>
</div>
...
@@ -117,18 +117,18 @@
...
@@ -117,18 +117,18 @@
</el-table>
</el-table>
</div>
</div>
</div>
</div>
<div
class=
"empty"
v-if=
"topList.length === 0 && !
isSkeleton
"
>
<div
class=
"empty"
v-if=
"topList.length === 0 && !
topState
"
>
<img
class=
"img"
src=
"@/assets/images/project/empty.png"
>
<img
class=
"img"
src=
"@/assets/images/project/empty.png"
>
<div
class=
"p1"
>
抱歉,暂无数据展示
</div>
<div
class=
"p1"
>
抱歉,暂无数据展示
</div>
</div>
</div>
</div>
</div>
<div
v-if=
"!
isSkeleton
"
class=
"td_content"
>
<div
v-if=
"!
nftjState
"
class=
"td_content"
>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
全国土地交易项目年份统计
</span>
<span
class=
"common-title"
>
全国土地交易项目年份统计
</span>
</div>
</div>
</div>
</div>
<div
class=
"content_box"
>
<div
class=
"content_box"
v-if=
"nftjList.length > 0 && !nftjState"
>
<div
class=
"box-left"
style=
"width: 60%;"
>
<div
class=
"box-left"
style=
"width: 60%;"
>
<div
id=
"echarts4"
style=
"height: 300px"
></div>
<div
id=
"echarts4"
style=
"height: 300px"
></div>
</div>
</div>
...
@@ -187,6 +187,7 @@ export default {
...
@@ -187,6 +187,7 @@ export default {
gyflState
:
true
,
gyflState
:
true
,
tdytState
:
true
,
tdytState
:
true
,
topState
:
true
,
topState
:
true
,
nftjState
:
true
,
// typeName:['住宅用地','工业用地','城镇住宅用地','其他商服用地','公共设施用地','公路用地','城镇村道路用地','公园与绿地',
// typeName:['住宅用地','工业用地','城镇住宅用地','其他商服用地','公共设施用地','公路用地','城镇村道路用地','公园与绿地',
// '工矿仓储用地','零售商业用地','科研用地','街巷用地','机关团体用地','商服用地','商务金融用地']
// '工矿仓储用地','零售商业用地','科研用地','街巷用地','机关团体用地','商服用地','商务金融用地']
}
}
...
@@ -194,15 +195,16 @@ export default {
...
@@ -194,15 +195,16 @@ export default {
created
()
{
created
()
{
this
.
dataRegion
()
this
.
dataRegion
()
this
.
yearsData
()
this
.
yearsData
()
setTimeout
(()
=>
{
},
mounted
()
{
this
.
$nextTick
(()
=>
{
this
.
getCountLandMarketByType
()
this
.
getCountLandMarketByType
()
this
.
getCountLandMarketByTypeTd
()
this
.
getCountLandMarketByTypeTd
()
this
.
getCountLandMarketByProvince
()
this
.
getCountLandMarketByProvince
()
this
.
getCountLandMarketByYear
()
this
.
getCountLandMarketByYear
()
this
.
isSkeleton
=
false
;
})
},
1500
);
},
mounted
()
{
},
},
beforeDestroy
(){
beforeDestroy
(){
...
@@ -211,7 +213,8 @@ export default {
...
@@ -211,7 +213,8 @@ export default {
getCountLandMarketByType
(){
getCountLandMarketByType
(){
// this.isSkeleton = true
// this.isSkeleton = true
countLandMarketByType
({
type
:
'供应方式'
,
yearStr
:
this
.
years
.
join
(
","
)}).
then
(
res
=>
{
countLandMarketByType
({
type
:
'供应方式'
,
yearStr
:
this
.
years
.
join
(
","
)}).
then
(
res
=>
{
// this.isSkeleton = false
this
.
isSkeleton
=
false
this
.
gyflState
=
false
this
.
gyfsList
=
res
.
data
.
provinceDate
;
this
.
gyfsList
=
res
.
data
.
provinceDate
;
var
list
=
[];
var
list
=
[];
for
(
var
i
=
0
;
i
<
res
.
data
.
provinceDate
.
length
;
i
++
){
for
(
var
i
=
0
;
i
<
res
.
data
.
provinceDate
.
length
;
i
++
){
...
@@ -222,12 +225,9 @@ export default {
...
@@ -222,12 +225,9 @@ export default {
list
.
push
(
obj
)
list
.
push
(
obj
)
}
}
if
(
list
.
length
>
0
){
if
(
list
.
length
>
0
){
this
.
gyflState
=
true
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
initChart1
(
list
)
this
.
initChart1
(
list
)
})
})
}
else
{
this
.
gyflState
=
false
;
}
}
})
})
},
},
...
@@ -235,9 +235,9 @@ export default {
...
@@ -235,9 +235,9 @@ export default {
// this.isSkeleton = true
// this.isSkeleton = true
countLandMarketByType
({
type
:
'土地用途'
,
yearStr
:
this
.
years1
.
join
(
","
)}).
then
(
res
=>
{
countLandMarketByType
({
type
:
'土地用途'
,
yearStr
:
this
.
years1
.
join
(
","
)}).
then
(
res
=>
{
// this.isSkeleton = false
// this.isSkeleton = false
this
.
tdytState
=
false
;
this
.
tdytList
=
res
.
data
.
provinceDate
;
this
.
tdytList
=
res
.
data
.
provinceDate
;
if
(
res
.
data
.
provinceDate
.
length
>
0
){
if
(
res
.
data
.
provinceDate
.
length
>
0
){
this
.
tdytState
=
true
var
list
=
[];
var
list
=
[];
for
(
var
i
=
0
;
i
<
10
;
i
++
){
for
(
var
i
=
0
;
i
<
10
;
i
++
){
var
obj
=
{};
var
obj
=
{};
...
@@ -251,10 +251,7 @@ export default {
...
@@ -251,10 +251,7 @@ export default {
this
.
initChart2
(
list
)
this
.
initChart2
(
list
)
})
})
}
}
}
else
{
this
.
tdytState
=
false
;
}
}
})
})
},
},
getCountLandMarketByProvince
(){
getCountLandMarketByProvince
(){
...
@@ -264,9 +261,8 @@ export default {
...
@@ -264,9 +261,8 @@ export default {
if
(
this
.
address
.
length
>
0
){
if
(
this
.
address
.
length
>
0
){
params
.
provinceId
=
this
.
address
.
join
(
","
)
params
.
provinceId
=
this
.
address
.
join
(
","
)
}
}
// this.isSkeleton = true
countLandMarketByProvince
(
params
).
then
(
res
=>
{
countLandMarketByProvince
(
params
).
then
(
res
=>
{
// this.isSkeleton
= false
this
.
topState
=
false
this
.
topList
=
res
.
data
.
provinceDate
;
this
.
topList
=
res
.
data
.
provinceDate
;
var
list
=
[];
var
list
=
[];
if
(
res
.
data
.
provinceDate
){
if
(
res
.
data
.
provinceDate
){
...
@@ -288,10 +284,10 @@ export default {
...
@@ -288,10 +284,10 @@ export default {
},
},
getCountLandMarketByYear
(){
getCountLandMarketByYear
(){
countLandMarketByYear
().
then
(
res
=>
{
countLandMarketByYear
().
then
(
res
=>
{
this
.
nftjState
=
false
;
this
.
nftjList
=
res
.
data
.
yearDate
;
this
.
nftjList
=
res
.
data
.
yearDate
;
var
list
=
[];
var
list
=
[];
if
(
res
.
data
.
yearDate
){
if
(
res
.
data
.
yearDate
){
this
.
topState
=
true
for
(
var
i
=
0
;
i
<
res
.
data
.
yearDate
.
length
;
i
++
){
for
(
var
i
=
0
;
i
<
res
.
data
.
yearDate
.
length
;
i
++
){
var
obj
=
{};
var
obj
=
{};
obj
.
type
=
res
.
data
.
yearDate
[
i
].
type
;
obj
.
type
=
res
.
data
.
yearDate
[
i
].
type
;
...
@@ -300,11 +296,11 @@ export default {
...
@@ -300,11 +296,11 @@ export default {
obj
.
typeList
=
res
.
data
.
yearDate
[
i
].
typeList
obj
.
typeList
=
res
.
data
.
yearDate
[
i
].
typeList
list
.
push
(
obj
)
list
.
push
(
obj
)
}
}
if
(
list
.
length
>
0
){
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
initChart4
(
list
)
this
.
initChart4
(
list
)
})
})
}
else
{
}
this
.
topState
=
false
;
}
}
})
})
},
},
...
...
dsk-operate-ui/src/views/project/overview/index.vue
View file @
bb6eab16
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container"
style=
"padding-bottom: 16px;"
>
<div
class=
"chart-top clearfix"
>
<div
class=
"chart-top clearfix"
>
<div
class=
"left"
>
<div
class=
"left"
>
<el-card
class=
"box-card noborder"
>
<el-card
class=
"box-card noborder"
>
...
@@ -52,7 +52,7 @@
...
@@ -52,7 +52,7 @@
<div>
水利项目
</div>
<div>
水利项目
</div>
</div>
</div>
</div>
-->
</div>
-->
<!--
<div
class=
"cardtitles i"
>
储备项目类
型
</div>
<!--
<div
class=
"cardtitles i"
>
储备项目类
别
</div>
<div
class=
"gzlist"
>
<div
class=
"gzlist"
>
<div>
<div>
<img
src=
"@/assets/images/project/EPC.png"
>
<img
src=
"@/assets/images/project/EPC.png"
>
...
@@ -119,7 +119,8 @@
...
@@ -119,7 +119,8 @@
</el-card>
-->
</el-card>
-->
<el-card
class=
"box-card noborder pd16"
>
<el-card
class=
"box-card noborder pd16"
>
<h3>
储备项目统计
</h3>
<h3>
储备项目统计
</h3>
<div
class=
"flex-box clue-box"
v-if=
"viewData1.length>0"
>
<skeleton
v-if=
"isSkeleton1"
style=
"padding: 16px"
></skeleton>
<div
class=
"flex-box clue-box"
v-if=
"viewData1.length>0&&!isSkeleton1"
>
<div
class=
"clue-echarts"
><div
id=
"echarts1"
style=
"width: 100%;height:300px; margin: 0 auto;"
></div></div>
<div
class=
"clue-echarts"
><div
id=
"echarts1"
style=
"width: 100%;height:300px; margin: 0 auto;"
></div></div>
<div
class=
"table-item"
>
<div
class=
"table-item"
>
<el-table
<el-table
...
@@ -130,7 +131,7 @@
...
@@ -130,7 +131,7 @@
>
>
<el-table-column
<el-table-column
prop=
"projectCategory"
prop=
"projectCategory"
label=
"项目类
型
"
></el-table-column>
label=
"项目类
别
"
></el-table-column>
<el-table-column
<el-table-column
prop=
"businessCount"
prop=
"businessCount"
label=
"储备数量"
>
label=
"储备数量"
>
...
@@ -142,11 +143,12 @@
...
@@ -142,11 +143,12 @@
</el-table>
</el-table>
</div>
</div>
</div>
</div>
<no-data
v-
else
/>
<no-data
v-
if=
"viewData1.length==0"
/>
</el-card>
</el-card>
<el-card
class=
"box-card noborder pd16"
>
<el-card
class=
"box-card noborder pd16"
>
<h3>
储备项目资金来源
</h3>
<h3>
储备项目资金来源
</h3>
<div
class=
"flex-box clue-box"
v-if=
"viewData2.length>0"
>
<skeleton
v-if=
"isSkeleton2"
style=
"padding: 16px"
></skeleton>
<div
class=
"flex-box clue-box"
v-if=
"viewData2.length>0&&!isSkeleton2"
>
<div
class=
"clue-echarts"
><div
id=
"echarts2"
style=
"width: 100%;height:300px; margin: 0 auto;"
></div></div>
<div
class=
"clue-echarts"
><div
id=
"echarts2"
style=
"width: 100%;height:300px; margin: 0 auto;"
></div></div>
<div
class=
"table-item"
>
<div
class=
"table-item"
>
<el-table
<el-table
...
@@ -169,11 +171,12 @@
...
@@ -169,11 +171,12 @@
</el-table>
</el-table>
</div>
</div>
</div>
</div>
<no-data
v-
else
/>
<no-data
v-
if=
"viewData2.length==0"
/>
</el-card>
</el-card>
<el-card
class=
"box-card noborder pd16"
>
<el-card
class=
"box-card noborder pd16"
>
<h3>
已合作项目统计
</h3>
<h3>
已合作项目统计
</h3>
<div
class=
"flex-box clue-box"
v-if=
"viewData3.length>0"
>
<skeleton
v-if=
"isSkeleton3"
style=
"padding: 16px"
></skeleton>
<div
class=
"flex-box clue-box"
v-if=
"viewData3.length>0&&!isSkeleton3"
>
<div
class=
"clue-echarts"
><div
id=
"echarts3"
style=
"width: 100%;height:300px; margin: 0 auto;"
></div></div>
<div
class=
"clue-echarts"
><div
id=
"echarts3"
style=
"width: 100%;height:300px; margin: 0 auto;"
></div></div>
<div
class=
"table-item"
>
<div
class=
"table-item"
>
<el-table
<el-table
...
@@ -184,7 +187,7 @@
...
@@ -184,7 +187,7 @@
>
>
<el-table-column
<el-table-column
prop=
"projectCategory"
prop=
"projectCategory"
label=
"项目类
型
"
></el-table-column>
label=
"项目类
别
"
></el-table-column>
<el-table-column
<el-table-column
prop=
"businessCount"
prop=
"businessCount"
label=
"中标数量"
>
label=
"中标数量"
>
...
@@ -196,7 +199,7 @@
...
@@ -196,7 +199,7 @@
</el-table>
</el-table>
</div>
</div>
</div>
</div>
<no-data
v-
else
/>
<no-data
v-
if=
"viewData3.length==0"
/>
</el-card>
</el-card>
<el-card
class=
"box-card noborder pd16"
>
<el-card
class=
"box-card noborder pd16"
>
<h3>
公招项目地区统计
</h3>
<h3>
公招项目地区统计
</h3>
...
@@ -206,6 +209,7 @@
...
@@ -206,6 +209,7 @@
@
change=
"dateChange4"
@
change=
"dateChange4"
type=
"daterange"
type=
"daterange"
value-format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
unlink-panels
size=
"small"
size=
"small"
range-separator=
"至"
range-separator=
"至"
start-placeholder=
"开始日期"
start-placeholder=
"开始日期"
...
@@ -216,7 +220,8 @@
...
@@ -216,7 +220,8 @@
<el-radio-button
label=
"近七天"
></el-radio-button>
<el-radio-button
label=
"近七天"
></el-radio-button>
<el-radio-button
label=
"自定义"
></el-radio-button>
<el-radio-button
label=
"自定义"
></el-radio-button>
</el-radio-group>
</el-radio-group>
<div
class=
"flex-box clue-box"
v-if=
"viewData4.length>0"
>
<skeleton
v-if=
"isSkeleton4"
style=
"padding: 16px"
></skeleton>
<div
class=
"flex-box clue-box"
v-if=
"viewData4.length>0&&!isSkeleton4"
>
<div
class=
"drawChinese"
>
<div
class=
"drawChinese"
>
<div
id=
"drawChinese"
style=
"width: 411px; height: 360px;"
></div>
<div
id=
"drawChinese"
style=
"width: 411px; height: 360px;"
></div>
<!--
<img
src=
"@/static/img/index/map-nhzd.png"
class=
"nhzd"
alt=
"南海诸岛"
title=
"南海诸岛"
>
-->
<!--
<img
src=
"@/static/img/index/map-nhzd.png"
class=
"nhzd"
alt=
"南海诸岛"
title=
"南海诸岛"
>
-->
...
@@ -244,7 +249,7 @@
...
@@ -244,7 +249,7 @@
</el-table>
</el-table>
</div>
</div>
</div>
</div>
<no-data
v-
else
/>
<no-data
v-
if=
"viewData4.length==0"
/>
</el-card>
</el-card>
<el-card
class=
"box-card noborder pd16"
>
<el-card
class=
"box-card noborder pd16"
>
<h3>
公招项目投资金额统计
</h3>
<h3>
公招项目投资金额统计
</h3>
...
@@ -254,6 +259,7 @@
...
@@ -254,6 +259,7 @@
@
change=
"dateChange5"
@
change=
"dateChange5"
type=
"daterange"
type=
"daterange"
value-format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
unlink-panels
size=
"small"
size=
"small"
range-separator=
"至"
range-separator=
"至"
start-placeholder=
"开始日期"
start-placeholder=
"开始日期"
...
@@ -264,7 +270,8 @@
...
@@ -264,7 +270,8 @@
<el-radio-button
label=
"近七天"
></el-radio-button>
<el-radio-button
label=
"近七天"
></el-radio-button>
<el-radio-button
label=
"自定义"
></el-radio-button>
<el-radio-button
label=
"自定义"
></el-radio-button>
</el-radio-group>
</el-radio-group>
<div
class=
"flex-box clue-box"
v-if=
"viewData5.length>0"
>
<skeleton
v-if=
"isSkeleton5"
style=
"padding: 16px"
></skeleton>
<div
class=
"flex-box clue-box"
v-if=
"viewData5.length>0&&!isSkeleton5"
>
<div
class=
"clue-echarts"
><div
id=
"echarts5"
style=
"width: 100%;height:300px; margin: 0 auto;"
></div></div>
<div
class=
"clue-echarts"
><div
id=
"echarts5"
style=
"width: 100%;height:300px; margin: 0 auto;"
></div></div>
<div
class=
"table-item"
>
<div
class=
"table-item"
>
<el-table
<el-table
...
@@ -284,9 +291,9 @@
...
@@ -284,9 +291,9 @@
</el-table>
</el-table>
</div>
</div>
</div>
</div>
<no-data
v-else
/>
<no-data
v-if=
"viewData5.length==0"
/>
</el-card>
</el-card>
<el-card
class=
"box-card noborder"
>
<el-card
class=
"box-card noborder"
style=
"margin-bottom:0;"
>
<div
>
<div
>
<div
class=
"item_title"
>
<div
class=
"item_title"
>
<h3>
跟进动态
</h3>
<h3>
跟进动态
</h3>
...
@@ -296,6 +303,7 @@
...
@@ -296,6 +303,7 @@
@
change=
"dateChange6"
@
change=
"dateChange6"
type=
"daterange"
type=
"daterange"
value-format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
unlink-panels
size=
"small"
size=
"small"
range-separator=
"至"
range-separator=
"至"
start-placeholder=
"开始日期"
start-placeholder=
"开始日期"
...
@@ -308,27 +316,36 @@
...
@@ -308,27 +316,36 @@
<el-radio-button
label=
"自定义"
></el-radio-button>
<el-radio-button
label=
"自定义"
></el-radio-button>
</el-radio-group>
</el-radio-group>
</div>
</div>
<template
v-if=
"viewData6.length>0"
>
<skeleton
v-if=
"isSkeleton6"
style=
"padding: 16px"
></skeleton>
<template
v-if=
"viewData6.length>0&&!isSkeleton6"
>
<div
class=
"scroll_box"
ref=
"scrollRef"
@
scroll=
"scrollbottom()"
>
<div
class=
"scroll_box"
ref=
"scrollRef"
@
scroll=
"scrollbottom()"
>
<div
class=
"item_wrap"
v-for=
"(item,index) in viewData6"
:key=
"index"
>
<div
class=
"item_wrap"
v-for=
"(item,index) in viewData6"
:key=
"index"
>
<h2>
{{
item
.
recordInfo
}}
</h2>
<h2>
{{
item
.
recordInfo
}}
</h2>
<div
>
<div
>
<span
class=
"label"
>
关联项目:
</span>
<span
class=
"label"
v-if=
"item.businessId||item.projectName"
>
关联项目:
</span>
<router-link
v-if=
"item.businessId"
:to=
"'/project/projectList/detail?id='+item.businessId+'&tag=xmsl'"
tag=
"a"
class=
"a-link"
>
{{
item
.
projectName
}}
</router-link>
<router-link
v-if=
"item.businessId"
:to=
"'/project/projectList/detail?id='+item.businessId+'&tag=xmsl'"
tag=
"a"
class=
"a-link"
>
{{
item
.
projectName
}}
</router-link>
<span
v-else
>
{{
item
.
projectName
}}
</span>
<span
v-else
>
{{
item
.
projectName
}}
</span>
<template
v-if=
"item.nickName"
>
<span
class=
"label"
>
跟进人:
</span>
<span
class=
"label"
>
跟进人:
</span>
<span>
{{
item
.
nickName
}}
</span>
<span>
{{
item
.
nickName
}}
</span>
</
template
>
<
template
v-if=
"item.visitPerson"
>
<span
class=
"label"
>
拜访对象:
</span>
<span
class=
"label"
>
拜访对象:
</span>
<span>
{{
item
.
visitPerson
}}
</span>
<span>
{{
item
.
visitPerson
}}
</span>
</
template
>
<
template
v-if=
"item.visitTime"
>
<span
class=
"label"
>
本次拜访时间:
</span>
<span
class=
"label"
>
本次拜访时间:
</span>
<span>
{{
item
.
visitTime
}}
</span>
<span>
{{
item
.
visitTime
}}
</span>
</
template
>
<
template
v-if=
"item.nextVisitTime"
>
<span
class=
"label"
>
下次拜访时间:
</span>
<span
class=
"label"
>
下次拜访时间:
</span>
<span>
{{
item
.
nextVisitTime
}}
</span>
<span>
{{
item
.
nextVisitTime
}}
</span>
</
template
>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
</template>
<no-data
style=
"margin:20px 0"
v-else
/>
<no-data
:condition=
"true"
style=
"padding:40px"
v-if=
"viewData6.length==0"
/>
</div>
</div>
</el-card>
</el-card>
</div>
</div>
...
@@ -343,12 +360,19 @@
...
@@ -343,12 +360,19 @@
import
addproject
from
'../projectList/component/addProject'
import
addproject
from
'../projectList/component/addProject'
import
NoData
from
'../../component/noData'
import
NoData
from
'../../component/noData'
import
'@/assets/lib/china.js'
import
'@/assets/lib/china.js'
import
skeleton
from
'@/views/project/projectList/component/skeleton'
export
default
{
export
default
{
name
:
'Overview'
,
name
:
'Overview'
,
components
:{
addproject
,
NoData
},
components
:{
addproject
,
NoData
,
skeleton
},
data
()
{
data
()
{
return
{
return
{
isSkeleton1
:
true
,
isSkeleton2
:
true
,
isSkeleton3
:
true
,
isSkeleton4
:
true
,
isSkeleton5
:
true
,
isSkeleton6
:
true
,
projectName
:
''
,
projectName
:
''
,
datatype
:
'1'
,
//切换类型
datatype
:
'1'
,
//切换类型
viewData1
:[],
viewData1
:[],
...
@@ -377,7 +401,7 @@ export default {
...
@@ -377,7 +401,7 @@ export default {
date5
:
''
,
date5
:
''
,
startDate5
:
''
,
startDate5
:
''
,
endDate5
:
''
,
endDate5
:
''
,
radio6
:
'
今日
'
,
radio6
:
''
,
date6
:
''
,
date6
:
''
,
startDate6
:
''
,
startDate6
:
''
,
endDate6
:
''
,
endDate6
:
''
,
...
@@ -395,7 +419,7 @@ export default {
...
@@ -395,7 +419,7 @@ export default {
this
.
getAllRecord
();
this
.
getAllRecord
();
getStatistics
().
then
(
res
=>
{
getStatistics
().
then
(
res
=>
{
if
(
res
.
code
==
200
){
if
(
res
.
code
==
200
){
this
.
statistics
=
res
.
data
this
.
statistics
=
res
.
data
;
}
}
})
})
window
.
addEventListener
(
"resize"
,
this
.
resizeEcharts
);
window
.
addEventListener
(
"resize"
,
this
.
resizeEcharts
);
...
@@ -408,7 +432,6 @@ export default {
...
@@ -408,7 +432,6 @@ export default {
},
},
methods
:
{
methods
:
{
getAllRecord
(
page
){
getAllRecord
(
page
){
console
.
log
(
this
.
$store
.
state
)
this
.
recordParams
.
userId
=
this
.
$store
.
state
.
user
.
userId
this
.
recordParams
.
userId
=
this
.
$store
.
state
.
user
.
userId
if
(
page
){
if
(
page
){
this
.
recordParams
.
pageNum
=
1
;
this
.
recordParams
.
pageNum
=
1
;
...
@@ -416,6 +439,7 @@ export default {
...
@@ -416,6 +439,7 @@ export default {
}
}
getAllRecord
(
this
.
recordParams
).
then
(
res
=>
{
getAllRecord
(
this
.
recordParams
).
then
(
res
=>
{
if
(
res
.
code
==
200
){
if
(
res
.
code
==
200
){
this
.
isSkeleton6
=
false
;
this
.
recordTotal
=
res
.
total
this
.
recordTotal
=
res
.
total
this
.
viewData6
=
this
.
viewData6
.
concat
(
res
.
rows
)
this
.
viewData6
=
this
.
viewData6
.
concat
(
res
.
rows
)
}
}
...
@@ -424,8 +448,15 @@ export default {
...
@@ -424,8 +448,15 @@ export default {
getCount1
(){
getCount1
(){
getCount
(
0
).
then
(
res
=>
{
getCount
(
0
).
then
(
res
=>
{
if
(
res
.
code
==
200
){
if
(
res
.
code
==
200
){
this
.
isSkeleton1
=
false
;
this
.
viewData1
=
res
.
data
;
this
.
viewData1
=
res
.
data
;
if
(
res
.
data
.
length
>
0
){
if
(
this
.
viewData1
.
length
>
0
){
for
(
var
i
=
0
;
i
<
this
.
viewData1
.
length
;
i
++
){
if
(
!
this
.
viewData1
[
i
].
projectCategory
){
this
.
viewData1
.
splice
(
i
,
1
)
i
--
}
}
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
let
chartDom1
=
document
.
getElementById
(
"echarts1"
)
let
chartDom1
=
document
.
getElementById
(
"echarts1"
)
this
.
myChart1
=
echarts
.
init
(
chartDom1
)
this
.
myChart1
=
echarts
.
init
(
chartDom1
)
...
@@ -438,6 +469,7 @@ export default {
...
@@ -438,6 +469,7 @@ export default {
getCount2
(){
getCount2
(){
getCount
(
2
).
then
(
res
=>
{
getCount
(
2
).
then
(
res
=>
{
if
(
res
.
code
==
200
){
if
(
res
.
code
==
200
){
this
.
isSkeleton3
=
false
;
this
.
viewData3
=
res
.
data
;
this
.
viewData3
=
res
.
data
;
if
(
res
.
data
.
length
>
0
){
if
(
res
.
data
.
length
>
0
){
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
...
@@ -452,8 +484,15 @@ export default {
...
@@ -452,8 +484,15 @@ export default {
getAmount
(){
getAmount
(){
getAmount
().
then
(
res
=>
{
getAmount
().
then
(
res
=>
{
if
(
res
.
code
==
200
){
if
(
res
.
code
==
200
){
this
.
isSkeleton2
=
false
;
this
.
viewData2
=
res
.
data
;
this
.
viewData2
=
res
.
data
;
if
(
res
.
data
.
length
>
0
){
if
(
res
.
data
.
length
>
0
){
for
(
var
i
=
0
;
i
<
this
.
viewData2
.
length
;
i
++
){
if
(
!
this
.
viewData2
[
i
].
amountSource
){
this
.
viewData2
.
splice
(
i
,
1
)
i
--
}
}
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
let
chartDom2
=
document
.
getElementById
(
"echarts2"
)
let
chartDom2
=
document
.
getElementById
(
"echarts2"
)
this
.
myChart2
=
echarts
.
init
(
chartDom2
)
this
.
myChart2
=
echarts
.
init
(
chartDom2
)
...
@@ -473,10 +512,13 @@ export default {
...
@@ -473,10 +512,13 @@ export default {
}
}
countGroupByProvince
(
data
).
then
(
res
=>
{
countGroupByProvince
(
data
).
then
(
res
=>
{
if
(
res
.
code
==
200
){
if
(
res
.
code
==
200
){
this
.
isSkeleton4
=
false
;
this
.
viewData4
=
res
.
data
;
this
.
viewData4
=
res
.
data
;
if
(
this
.
viewData4
.
length
>
0
){
if
(
this
.
viewData4
.
length
>
0
){
this
.
viewData4
.
map
(
item
=>
{
this
.
viewData4
.
map
(
item
=>
{
if
(
item
.
money
>
0
){
item
.
money
=
Number
(
item
.
money
)
}
item
.
name
=
item
.
type
item
.
name
=
item
.
type
item
.
value
=
{
count
:
item
.
count
}
item
.
value
=
{
count
:
item
.
count
}
item
.
select
=
{
item
.
select
=
{
...
@@ -490,8 +532,8 @@ export default {
...
@@ -490,8 +532,8 @@ export default {
}
}
})
})
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
console
.
log
(
this
.
viewData4
)
let
chartDom1
=
document
.
getElementById
(
"drawChinese"
)
this
.
myChart4
=
echarts
.
init
(
chartDom1
)
this
.
initChart4
()
this
.
initChart4
()
})
})
}
}
...
@@ -508,7 +550,8 @@ export default {
...
@@ -508,7 +550,8 @@ export default {
}
}
rangByMoney
(
data
).
then
(
res
=>
{
rangByMoney
(
data
).
then
(
res
=>
{
if
(
res
.
code
==
200
){
if
(
res
.
code
==
200
){
this
.
viewData5
=
res
.
data
;
this
.
isSkeleton5
=
false
;
this
.
viewData5
=
res
.
data
.
reverse
();
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
let
chartDom5
=
document
.
getElementById
(
"echarts5"
)
let
chartDom5
=
document
.
getElementById
(
"echarts5"
)
this
.
myChart5
=
echarts
.
init
(
chartDom5
)
this
.
myChart5
=
echarts
.
init
(
chartDom5
)
...
@@ -536,7 +579,7 @@ export default {
...
@@ -536,7 +579,7 @@ export default {
grid
:
{
grid
:
{
left
:
'3%'
,
left
:
'3%'
,
right
:
'4%'
,
right
:
'4%'
,
bottom
:
'
3
%'
,
bottom
:
'
10
%'
,
containLabel
:
true
containLabel
:
true
},
},
xAxis
:
[
xAxis
:
[
...
@@ -551,6 +594,7 @@ export default {
...
@@ -551,6 +594,7 @@ export default {
],
],
yAxis
:
[
yAxis
:
[
{
{
name
:
'单位:个'
,
type
:
'value'
,
type
:
'value'
,
splitLine
:
{
//网格线
splitLine
:
{
//网格线
lineStyle
:
{
lineStyle
:
{
...
@@ -559,6 +603,11 @@ export default {
...
@@ -559,6 +603,11 @@ export default {
}
}
},
},
{
{
nameTextStyle
:
{
padding
:
[
0
,
10
,
0
,
50
],
// 四个数字分别为上右下左与原位置距离
color
:
'#666666'
,
},
name
:
'单位:万元'
,
type
:
'value'
,
type
:
'value'
,
splitLine
:
{
//网格线
splitLine
:
{
//网格线
show
:
false
show
:
false
...
@@ -601,7 +650,7 @@ export default {
...
@@ -601,7 +650,7 @@ export default {
},
},
initChart2
(){
initChart2
(){
//储备项目统计
//储备项目
资金来源
统计
let
data
=
[]
let
data
=
[]
this
.
viewData2
.
length
>
0
&&
this
.
viewData2
.
map
(
item
=>
{
this
.
viewData2
.
length
>
0
&&
this
.
viewData2
.
map
(
item
=>
{
data
.
push
({
value
:
item
.
totalAmount
,
name
:
item
.
amountSource
})
data
.
push
({
value
:
item
.
totalAmount
,
name
:
item
.
amountSource
})
...
@@ -643,7 +692,7 @@ export default {
...
@@ -643,7 +692,7 @@ export default {
},
},
initChart3
(){
initChart3
(){
//
储备
项目统计
//
合作
项目统计
let
barData1
=
[],
xAxisData1
=
[],
lineData1
=
[];
let
barData1
=
[],
xAxisData1
=
[],
lineData1
=
[];
this
.
viewData3
.
length
>
0
&&
this
.
viewData3
.
map
(
item
=>
{
this
.
viewData3
.
length
>
0
&&
this
.
viewData3
.
map
(
item
=>
{
barData1
.
push
(
item
.
businessCount
)
barData1
.
push
(
item
.
businessCount
)
...
@@ -676,6 +725,7 @@ export default {
...
@@ -676,6 +725,7 @@ export default {
],
],
yAxis
:
[
yAxis
:
[
{
{
name
:
'单位:个'
,
type
:
'value'
,
type
:
'value'
,
splitLine
:
{
//网格线
splitLine
:
{
//网格线
lineStyle
:
{
lineStyle
:
{
...
@@ -684,7 +734,12 @@ export default {
...
@@ -684,7 +734,12 @@ export default {
}
}
},
},
{
{
name
:
'单位:万元'
,
type
:
'value'
,
type
:
'value'
,
nameTextStyle
:
{
padding
:
[
0
,
10
,
0
,
50
],
// 四个数字分别为上右下左与原位置距离
color
:
'#666666'
,
},
splitLine
:
{
//网格线
splitLine
:
{
//网格线
show
:
false
show
:
false
},
},
...
@@ -727,18 +782,21 @@ export default {
...
@@ -727,18 +782,21 @@ export default {
},
},
//中国地图
//中国地图
initChart4
(){
initChart4
(){
let
chartDom1
=
document
.
getElementById
(
"drawChinese"
)
this
.
myChart4
=
echarts
.
init
(
chartDom1
)
let
_this
=
this
// 指定图表的配置项和数据
// 指定图表的配置项和数据
// 绘制图表
// 绘制图表
let
data
=
[]
this
.
viewData4
.
length
>
0
&&
this
.
viewData4
.
map
(
item
=>
{
data
.
push
({
value
:
item
.
count
,
name
:
item
.
name
,
money
:
item
.
money
})
})
let
options
=
{
let
options
=
{
tooltip
:
{
tooltip
:
{
trigger
:
'item'
,
trigger
:
'item'
,
show
:
true
,
show
:
true
,
formatter
:
function
(
params
)
{
formatter
:
function
(
params
)
{
console
.
dir
(
params
)
return
`<span style="color:rgba(35, 35, 35, 1);font-size:14px;">
${
params
.
name
}
</span><br>
return
`
${
params
.
value
}
`
<span style="color:#3D3D3D;font-size:12px;">招标数量</span><span style="color:#3D3D3D;font-size:12px;font-weight:700;">
${
params
.
value
}
</span><br>
<span style="color:#3D3D3D;font-size:12px;">总投资(万元)</span><span style="color:#3D3D3D;font-size:12px;font-weight:700;">
${
params
.
data
.
money
}
</span><br>
`
}
}
},
},
// 左侧小导航图标
// 左侧小导航图标
...
@@ -748,7 +806,7 @@ export default {
...
@@ -748,7 +806,7 @@ export default {
y
:
'center'
,
y
:
'center'
,
min
:
0
,
min
:
0
,
max
:
830000
,
max
:
830000
,
color
:
[
'#D
DECFF'
,
'#ADD4
FF'
]
color
:
[
'#D
1E6
FF'
]
},
},
selectedMode
:
'single'
,
selectedMode
:
'single'
,
series
:
[{
series
:
[{
...
@@ -757,15 +815,11 @@ export default {
...
@@ -757,15 +815,11 @@ export default {
mapType
:
'china'
,
mapType
:
'china'
,
roam
:
false
,
roam
:
false
,
zoom
:
1.2
,
zoom
:
1.2
,
label
:
{
label
:
{
normal
:
{
normal
:
{
show
:
false
,
// 省份名称
show
:
false
,
// 省份名称
},
},
emphasis
:
{
show
:
true
,
textStyle
:{
color
:
"#FFFFFF"
,
fontSize
:
'10'
}
//省份标签字体颜色
}
},
},
itemStyle
:
{
itemStyle
:
{
normal
:
{
// 未选中状态
normal
:
{
// 未选中状态
...
@@ -776,22 +830,16 @@ export default {
...
@@ -776,22 +830,16 @@ export default {
}
}
},
},
emphasis
:
{
// 也是选中样式
emphasis
:
{
// 也是选中样式
areaColor
:
'#0081FF'
,
areaColor
:
'#FDD85E'
,
label
:
{
show
:
true
,
textStyle
:
{
color
:
'#FFFFFF'
}
}
}
}
},
},
data
:
this
.
viewData4
data
:
data
}]
}]
}
}
_
this
.
myChart4
.
setOption
(
options
)
this
.
myChart4
.
setOption
(
options
)
},
},
initChart5
(){
initChart5
(){
//
储备项目
统计
//
公招项目投资金额
统计
let
data
=
[]
let
data
=
[]
this
.
viewData5
.
length
>
0
&&
this
.
viewData5
.
map
(
item
=>
{
this
.
viewData5
.
length
>
0
&&
this
.
viewData5
.
map
(
item
=>
{
data
.
push
({
value
:
item
.
count
,
name
:
item
.
rangeName
})
data
.
push
({
value
:
item
.
count
,
name
:
item
.
rangeName
})
...
@@ -815,17 +863,12 @@ export default {
...
@@ -815,17 +863,12 @@ export default {
type
:
'pie'
,
type
:
'pie'
,
radius
:
[
'50%'
,
'70%'
],
radius
:
[
'50%'
,
'70%'
],
data
:
data
,
data
:
data
,
emphasis
:
{
itemStyle
:
{
shadowBlur
:
10
,
shadowOffsetX
:
0
,
shadowColor
:
'rgba(0, 0, 0, 0)'
},
label
:
{
label
:
{
show
:
true
,
show
:
true
,
fo
ntSize
:
14
,
fo
rmatter
(
param
)
{
}
return
param
.
value
+
'个'
;
}
}
},
}
}
]
]
}
}
...
@@ -987,7 +1030,6 @@ export default {
...
@@ -987,7 +1030,6 @@ export default {
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.chart-top
{
.chart-top
{
margin-bottom
:
12px
;
.left
{
.left
{
float
:
left
;
float
:
left
;
height
:
122px
;
height
:
122px
;
...
@@ -1063,6 +1105,12 @@ export default {
...
@@ -1063,6 +1105,12 @@ export default {
font-weight
:
400
;
font-weight
:
400
;
margin-left
:
2px
;
margin-left
:
2px
;
}
}
&
:hover
{
color
:
#0081FF
;
span
{
color
:
#0081FF
;
}
}
}
}
.compare
{
.compare
{
font-size
:
12px
;
font-size
:
12px
;
...
@@ -1095,7 +1143,6 @@ export default {
...
@@ -1095,7 +1143,6 @@ export default {
}
}
.chart-bot
{
.chart-bot
{
height
:
auto
;
height
:
auto
;
margin-bottom
:
12px
;
.left
{
.left
{
float
:
left
;
float
:
left
;
width
:
353px
;
width
:
353px
;
...
@@ -1213,7 +1260,7 @@ export default {
...
@@ -1213,7 +1260,7 @@ export default {
}
}
.scroll_box
{
.scroll_box
{
overflow-y
:scroll
;
overflow-y
:scroll
;
height
:
512
px
;
max-height
:
509
px
;
.item_wrap
{
.item_wrap
{
height
:
102px
;
height
:
102px
;
...
@@ -1322,7 +1369,7 @@ export default {
...
@@ -1322,7 +1369,7 @@ export default {
height
:
16px
;
height
:
16px
;
background
:
url("../../../assets/images/project/add.png")
no-repeat
center
center
;
background
:
url("../../../assets/images/project/add.png")
no-repeat
center
center
;
display
:
inline-block
;
display
:
inline-block
;
margin
:
1
2
px
8px
0
114px
;
margin
:
1
0
px
8px
0
114px
;
}
}
// &:hover{
// &:hover{
...
...
dsk-operate-ui/src/views/project/projectList/component/jsnr.vue
View file @
bb6eab16
...
@@ -20,13 +20,16 @@
...
@@ -20,13 +20,16 @@
</div>
</div>
<div
class=
"con i"
>
<div
class=
"con i"
>
<span>
资金来源 :
</span>
<span>
资金来源 :
</span>
<div
class=
"inputxt"
id=
"inputxt2"
>
<div
class=
"inputxt
22
"
id=
"inputxt2"
>
<div
class=
"flex"
v-if=
"nowedit == 2 && isDisableds == false"
>
<div
class=
"flex"
v-if=
"nowedit == 2 && isDisableds == false"
>
<el-input
placeholder=
"待添加"
v-model=
"amountSource"
></el-input>
<!--
<el-input
placeholder=
"待添加"
v-model=
"amountSource"
></el-input>
-->
<div
class=
"flex"
>
<el-select
placeholder=
"请选择"
v-model=
"amountSource"
@
change=
"changes(
{'amountSource':amountSource})">
<el-option
v-for=
"(item,index) in amountSourceList"
:key=
"index"
:label=
"item"
:value=
"item"
></el-option>
</el-select>
<!--
<div
class=
"flex"
>
<div
class=
"btnsmall btn_primary h28"
@
click=
"changes(
{'amountSource':amountSource})" style="width: 56px">确定
</div>
<div
class=
"btnsmall btn_primary h28"
@
click=
"changes(
{'amountSource':amountSource})" style="width: 56px">确定
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
<div
class=
"cancels h28"
@
click=
"nowedit = -1"
style=
""
>
取消
</div>
</div>
</div>
-->
</div>
</div>
<span
:class=
"
{'txt':!amountSource}" v-else @click="nowedit = 2">
{{
amountSource
||
'待添加'
}}
</span>
<span
:class=
"
{'txt':!amountSource}" v-else @click="nowedit = 2">
{{
amountSource
||
'待添加'
}}
</span>
</div>
</div>
...
@@ -214,6 +217,7 @@
...
@@ -214,6 +217,7 @@
},
},
data
(){
data
(){
return
{
return
{
amountSourceList
:[
'财政资金'
,
'自筹资金'
,
'债券资金'
,
'投资资金'
,
'贷款资金'
,
'其他'
],
nowedit
:
-
1
,
//当前正在编辑的文本
nowedit
:
-
1
,
//当前正在编辑的文本
id
:
this
.
detailId
?
this
.
detailId
:
parseInt
(
this
.
$route
.
query
.
id
),
id
:
this
.
detailId
?
this
.
detailId
:
parseInt
(
this
.
$route
.
query
.
id
),
investmentAmount
:
''
,
//总投资额
investmentAmount
:
''
,
//总投资额
...
@@ -337,5 +341,13 @@
...
@@ -337,5 +341,13 @@
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.baseinfo
.row
.con
.inputxt22
{
line-height
:
36px
;
margin-top
:
-5px
;
display
:
inline-block
;
width
:
184px
;
height
:
28px
;
border-radius
:
2px
;
cursor
:
pointer
;
}
</
style
>
</
style
>
dsk-operate-ui/src/views/radar/Land/details.vue
View file @
bb6eab16
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
</p>
</p>
<p
class=
"list-content-text"
>
<p
class=
"list-content-text"
>
<span>
成交金额:
</span>
<span>
成交金额:
</span>
<span
v-if=
"textList.transactionPrice"
>
{{
textList
.
transactionPrice
}}
万元
</span>
<span
v-if=
"textList.transactionPrice"
>
{{
textList
.
transactionPrice
>
0
?
textList
.
transactionPrice
+
'万元'
:
'--'
}}
</span>
<span
v-else
>
--
</span>
<span
v-else
>
--
</span>
</p>
</p>
<p
class=
"list-content-text"
>
<p
class=
"list-content-text"
>
...
@@ -169,9 +169,9 @@
...
@@ -169,9 +169,9 @@
</p>
</p>
<p>
<p>
<label
class=
"label"
>
起始价(万元)
</label>
<label
class=
"label"
>
起始价(万元)
</label>
<span>
{{textList.moneyBegin
||"--"
}}
</span>
<span>
{{textList.moneyBegin
>0?textList.moneyBegin:'--'
}}
</span>
<label
class=
"label"
>
竞买保证金(万元)
</label>
<label
class=
"label"
>
竞买保证金(万元)
</label>
<span>
{{textList.bondmoney
||"--"
}}
</span>
<span>
{{textList.bondmoney
>0?textList.bondmoney:'--'
}}
</span>
</p>
</p>
<p>
<p>
<label
class=
"label"
>
加价幅度
</label>
<label
class=
"label"
>
加价幅度
</label>
...
@@ -181,7 +181,7 @@
...
@@ -181,7 +181,7 @@
</p>
</p>
<p>
<p>
<label
class=
"label"
>
成交价(万元)
</label>
<label
class=
"label"
>
成交价(万元)
</label>
<span>
{{textList.transactionPrice
||"--"
}}
</span>
<span>
{{textList.transactionPrice
>0?textList.transactionPrice:'--'
}}
</span>
<label
class=
"label"
>
受让人
</label>
<label
class=
"label"
>
受让人
</label>
<span>
{{textList.company||"--"}}
</span>
<span>
{{textList.company||"--"}}
</span>
</p>
</p>
...
...
dsk-system/src/main/resources/mapper/system/customer/CustomerMapper.xml
View file @
bb6eab16
...
@@ -129,7 +129,7 @@
...
@@ -129,7 +129,7 @@
ct.credit_level creditLevel, count(ct.customer_id) customerCount
ct.credit_level creditLevel, count(ct.customer_id) customerCount
from customer ct
from customer ct
join customer_user ctu on ct.customer_id = ctu.customer_id
join customer_user ctu on ct.customer_id = ctu.customer_id
where ctu.user_id = #{userId} and ct.credit_level is not null
where ctu.
status = 0 and ctu.
user_id = #{userId} and ct.credit_level is not null
group by ct.credit_level
group by ct.credit_level
) ct
) ct
left join sys_dict_data sdd on (sdd.dict_label = ct.creditLevel and sdd.dict_type = 'credit_level_type')
left join sys_dict_data sdd on (sdd.dict_label = ct.creditLevel and sdd.dict_type = 'credit_level_type')
...
...
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