Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-operate-sys-cscec
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
fulixin
dsk-operate-sys-cscec
Commits
40df17e3
Commit
40df17e3
authored
Aug 16, 2023
by
danfuman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改
parent
20650a06
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
785 additions
and
81 deletions
+785
-81
index.js
dsk-operate-ui/src/api/index.js
+20
-0
index.scss
dsk-operate-ui/src/assets/styles/index.scss
+11
-0
CustomMoneySelect.vue
dsk-operate-ui/src/views/component/CustomMoneySelect.vue
+442
-0
members.vue
...te-ui/src/views/detail/groupAccount/component/members.vue
+37
-10
performance.vue
...i/src/views/detail/groupAccount/component/performance.vue
+15
-0
qualifications.vue
...rc/views/detail/groupAccount/component/qualifications.vue
+16
-1
qualificationsDetail.vue
...ws/detail/groupAccount/component/qualificationsDetail.vue
+4
-2
CustomMoneySelect.vue
.../src/views/detail/party-a/component/CustomMoneySelect.vue
+2
-2
HeadForm.vue
...perate-ui/src/views/detail/party-a/component/HeadForm.vue
+12
-7
index.vue
dsk-operate-ui/src/views/index.vue
+226
-59
No files found.
dsk-operate-ui/src/api/index.js
0 → 100644
View file @
40df17e3
import
request
from
"@/utils/request"
;
// 大项目最新中标
export
function
bigWinningBidsPage
(
data
)
{
return
request
({
url
:
'/index/bigWinningBidsPage'
,
method
:
'post'
,
data
:
data
})
}
// 大项目最新招标
export
function
bigBidPage
(
data
)
{
return
request
({
url
:
'/index/bigBidPage'
,
method
:
'post'
,
data
:
data
})
}
dsk-operate-ui/src/assets/styles/index.scss
View file @
40df17e3
...
...
@@ -233,6 +233,17 @@ ul, li {
.el-select
.el-input
.el-select__caret
{
color
:
#232323
;
}
.el-cascader
.el-input
.el-icon-arrow-down
{
color
:
#232323
;
}
.custom-money-select
.el-input
.el-icon-arrow-down
{
color
:
#232323
;
font-size
:
14px
;
}
.custom-time-select
.el-input
.el-icon-arrow-down
{
color
:
#232323
;
font-size
:
14px
;
}
.query-box
{
justify-content
:
space-between
;
}
...
...
dsk-operate-ui/src/views/component/CustomMoneySelect.vue
0 → 100644
View file @
40df17e3
<
template
>
<div
:ref=
"refStr"
class=
"custom-money-select screen-popper"
id=
"custom-money-select"
>
<div
:class=
"['input-block', isSelectOption?'rote':'']"
>
<div
class=
"block"
@
click=
"isSelectOption=!isSelectOption"
@
mouseenter=
"handleMouseenter"
@
mouseleave=
"handleMouseleave"
>
<el-input
class=
"custom-money-input"
v-model=
"value"
:placeholder=
"placeholder"
readonly
>
<template
slot=
"suffix"
>
<span
@
click
.
stop=
"handleClear"
:class=
"[isClear&&isHover?'el-icon-circle-close':'el-icon-arrow-down']"
></span>
</
template
>
</el-input>
</div>
<div
class=
"options-block"
v-if=
"isSelectOption"
>
<div
class=
"arrow"
></div>
<div
@
click=
"handleClick(option)"
:class=
"['option', value==option?'active':'']"
:key=
"i"
v-for=
"(option, i) in options"
>
<
template
v-if=
"option == '自定义'"
>
<!--
<div
class=
"number-box"
>
-->
<!--
<input
type=
"number"
v-model=
"startMoney"
class=
"number-input"
clearable
>
至
<input
v-model=
"endMoney"
class=
"number-input"
type=
"text"
clearable
>
万元
<el-button
@
click
.
stop=
"handleConfirm"
class=
"number-button"
type=
"primary"
>
确定
</el-button>
-->
<!--
</div>
-->
<div
style=
"position: relative"
>
自定义
<div
class=
"popper_box"
style=
"position: absolute"
v-if=
"value === '自定义'"
>
<div
class=
"popper_wrap"
>
从
<el-input
class=
"popper_input"
type=
"number"
clearable
v-model=
"startMoney"
></el-input>
万
</div>
<div
class=
"popper_wrap"
>
到
<el-input
class=
"popper_input"
type=
"number"
clearable
v-model=
"endMoney"
></el-input>
万
</div>
<div
style=
""
>
<el-button
size=
"mini"
@
click
.
stop=
"cancellation"
>
取消
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click
.
stop=
"handleConfirm"
>
确定
</el-button>
</div>
</div>
</div>
</
template
>
<
template
v-else
>
<span>
{{
option
}}
</span>
<span
v-if=
"value==option"
class=
"el-icon-check"
></span>
</
template
>
</div>
</div>
</div>
</div>
</template>
<
script
>
export
default
{
props
:
{
'placeholder'
:
{
type
:
String
,
default
:
'请选择'
},
'ref-str'
:
{
type
:
String
,
default
:
`timeselect
${
String
(
Math
.
random
(
0
,
100
)).
slice
(
2
)}
`
,
},
permissions
:
{
//文本权限相关字段
type
:
Array
,
default
:
()
=>
{},
},
powerLabel
:
{
type
:
String
,
default
:
''
},
moneyList
:
{
type
:
Array
,
default
:
()
=>
[],
}
},
computed
:
{
isClear
()
{
if
(
!
this
.
isSelectOption
&&
this
.
value
)
{
return
true
}
else
{
return
false
}
}
},
data
()
{
return
{
value
:
''
,
options
:
[
'一亿以上'
,
'5000万-1亿'
,
'1000万-5000万'
,
'1000万以下'
,
'自定义'
],
isSelectOption
:
false
,
startMoney
:
''
,
endMoney
:
''
,
isHover
:
false
}
},
mounted
()
{
this
.
handleAppClick
()
if
(
this
.
moneyList
&&
this
.
moneyList
.
length
>
0
){
this
.
options
=
this
.
moneyList
}
},
destroyed
()
{
const
app
=
document
.
getElementById
(
'app'
)
app
.
removeEventListener
(
'click'
,
()
=>
{},
true
)
},
methods
:
{
// 判断是否点击的为组件内部
handleAppClick
()
{
const
app
=
document
.
getElementById
(
'app'
)
app
.
addEventListener
(
'click'
,
(
e
)
=>
{
const
dom
=
this
.
$refs
[
this
.
refStr
]
const
flag
=
dom
&&
dom
.
contains
(
e
.
target
)
// const flag = document.getElementById('custom-money-select').contains(e.target)
!
flag
?
this
.
isSelectOption
=
false
:
''
// if(this.value == '自定义' && !this.startMoney && !this.endMoney) {
// this.value = ''
// this.$emit('input', '')
// this.$emit('handle-search')
// }
},
true
)
},
// 清除
handleClear
()
{
if
(
this
.
isClear
&&
this
.
isHover
)
{
this
.
value
=
''
this
.
startMoney
=
''
this
.
endMoney
=
''
this
.
$emit
(
'input'
,
''
)
this
.
$emit
(
'handle-search'
)
}
else
{
this
.
isSelectOption
=
true
}
},
// 鼠标移入后的回调
handleMouseenter
()
{
this
.
isHover
=
true
},
// 鼠标离开后的回调
handleMouseleave
()
{
this
.
isHover
=
false
},
// 选项点击后的回调
handleClick
(
value
)
{
this
.
value
=
value
let
moneyStr
=
''
if
(
value
==
'自定义'
)
{
this
.
value
=
'自定义'
;
}
else
{
this
.
startMoney
=
''
this
.
endMoney
=
''
this
.
isSelectOption
=
false
switch
(
value
)
{
case
'10亿以上'
:
moneyStr
=
[
100000
]
break
;
case
'一亿以上'
:
moneyStr
=
[
10000
]
break
;
case
'5亿-10亿'
:
moneyStr
=
[
50000
,
100000
]
break
;
case
'1亿-10亿'
:
moneyStr
=
[
10000
,
100000
]
break
;
case
'1亿-5亿'
:
moneyStr
=
[
10000
,
50000
]
break
;
case
'5000万-1亿'
:
moneyStr
=
[
5000
,
10000
]
break
;
case
'1000万-5000万'
:
moneyStr
=
[
1000
,
5000
]
break
;
case
'2000万-1亿'
:
moneyStr
=
[
2000
,
10000
]
break
;
case
'400万-2000万'
:
moneyStr
=
[
400
,
2000
]
break
;
case
'5000万以下'
:
moneyStr
=
[,
5000
]
break
;
case
'1000万以下'
:
moneyStr
=
[,
1000
]
break
;
case
'400万以下'
:
moneyStr
=
[,
400
]
break
;
default
:
moneyStr
=
[,
1000
]
break
;
}
this
.
$emit
(
'input'
,
moneyStr
)
this
.
$emit
(
'handle-search'
)
}
},
// 自定义取消
cancellation
(){
this
.
isSelectOption
=
false
this
.
value
=
''
this
.
$emit
(
'input'
,
''
)
this
.
$emit
(
'handle-search'
)
},
// 自定义确认点击后的回调
handleConfirm
()
{
this
.
isSelectOption
=
false
if
(
!
this
.
startMoney
&&
!
this
.
endMoney
)
{
this
.
value
=
''
this
.
$emit
(
'input'
,
''
)
}
else
{
if
(
this
.
endMoney
&&
this
.
startMoney
)
{
this
.
value
=
`
${
this
.
startMoney
}
-
${
this
.
endMoney
}
万`
}
else
{
if
(
this
.
startMoney
)
{
this
.
value
=
`大于等于
${
this
.
startMoney
}
万`
}
if
(
this
.
endMoney
)
{
this
.
value
=
`小于等于
${
this
.
endMoney
}
万`
}
}
let
moneyStr
=
[
this
.
startMoney
,
this
.
endMoney
]
this
.
$emit
(
'input'
,
moneyStr
)
}
this
.
$emit
(
'handle-search'
)
}
}
}
</
script
>
<
style
lang=
"scss"
>
.custom-money-select
{
width
:
120px
;
height
:
34px
;
position
:
relative
;
.input-block
{
margin
:
0
;
width
:
100%
;
height
:
100%
;
cursor
:
pointer
;
.block
{
width
:
100%
;
height
:
100%
;
>
.custom-money-input.el-input
{
width
:
100%
;
height
:
100%
;
>
input
{
width
:
100%
;
height
:
100%
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
border-radius
:
2px
;
}
}
}
.el-input__suffix
{
transform
:
rotateZ
(
0
);
width
:
25px
;
height
:
100%
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
&
.rote
{
.el-input__suffix
{
transform
:
rotateZ
(
180deg
);
}
}
}
.options-block
{
position
:
absolute
;
margin-top
:
12px
;
min-width
:
120px
;
font-size
:
14px
;
color
:
#666666
;
background-color
:
#fff
;
border
:
1px
solid
#E4E7ED
;
padding
:
6px
0
;
border-radius
:
4px
;
z-index
:
10
;
// .arrow {
// position: absolute;
// width: 0;
// height: 0;
// top: -12px;
// left: 35px;
// border: 6px solid transparent;
// border-bottom-color: #E4E7ED;
// &::after {
// position: absolute;
// display: inline-block;
// left: -4px;
// top: -2px;
// content: '';
// width: 0;
// height: 0;
// border: 4px solid transparent;
// border-bottom-color: #fff;
// z-index: 9;
// }
// }
.option
{
padding
:
0
24px
0
16px
;
box-sizing
:
border-box
;
width
:
140px
;
height
:
36px
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
.number-box
{
display
:
flex
;
align-items
:
center
;
>
span
{
margin
:
0
10px
;
}
.number-input
{
padding
:
0
24px
0
10px
;
width
:
100px
!
important
;
height
:
30px
;
line-height
:
30px
;
border
:
none
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
border-radius
:
2px
;
&
:
:-
webkit-outer-spin-button
,
&::-
webkit-inner-spin-button
{
-webkit-appearance
:
none
;
}
&
[
type
=
"number"
]
{
-moz-appearance
:
textfield
;
}
}
.number-button
{
padding
:
0
;
width
:
60px
;
height
:
30px
;
line-height
:
30px
;
margin-left
:
10px
;
}
}
>
span
{
display
:
inline-block
;
}
&
.active
{
background-color
:
#F2F7FF
;
color
:
#0381FA
;
}
&
:hover
{
background-color
:
#F5F7FA
;
}
}
}
.number-input
{
padding
:
0
24px
0
10px
;
width
:
60px
!
important
;
height
:
30px
;
line-height
:
30px
;
border
:
none
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
width
:
206px
;
border
:
1px
solid
#DCDCDC
;
border-radius
:
2px
;
&
:
:-
webkit-outer-spin-button
,
&::-
webkit-inner-spin-button
{
-webkit-appearance
:
none
;
}
&
[
type
=
"number"
]
{
-moz-appearance
:
textfield
;
}
}
.number-button
{
padding
:
0
;
width
:
60px
;
height
:
30px
;
line-height
:
30px
;
margin-left
:
10px
;
}
.popper_box
{
position
:
absolute
;
left
:
128px
;
bottom
:
-15px
;
background
:
#ffffff
;
width
:
186px
;
color
:
#606266
;
text-indent
:
0
;
padding
:
16px
;
padding-top
:
0px
;
border
:
1px
solid
#e0e0e0
;
.popper_wrap
{
margin-top
:
16px
;
display
:
inline-block
;
.popper_input
{
width
:
100px
;
display
:
inline-block
;
margin
:
0px
8px
;
line-height
:
34px
;
}
.el-input__inner
{
width
:
100px
;
}
}
input
:
:-
webkit-outer-spin-button
,
input
::-
webkit-inner-spin-button
{
-webkit-appearance
:
none
!
important
;
}
input
[
type
=
'number'
]
{
-moz-appearance
:
textfield
;
}
}
.popper_box
div
:last-child
{
display
:
flex
;
justify-content
:
center
;
margin-top
:
16px
;
}
}
</
style
>
dsk-operate-ui/src/views/detail/groupAccount/component/members.vue
View file @
40df17e3
...
...
@@ -13,8 +13,8 @@
<span
class=
"search-box-t"
:class=
" queryParams.companyType||
queryParams.companyTypes.length > 0 ? 'search-box-ta' : ''"
@
click=
"handleSearch1"
>
筛选
<i
:class=
"searchState ? 'el-icon-
caret-top' : 'el-icon-caret-bottom
'"
></i></span>
<div
v-show=
"searchState"
ref
=
"showContent"
class=
"search-main"
>
@
click=
"handleSearch1"
>
筛选
<i
:class=
"searchState ? 'el-icon-
arrow-up' : 'el-icon-arrow-down
'"
></i></span>
<div
v-show=
"searchState"
id
=
"showContent"
class=
"search-main"
>
<div
class=
"item"
>
<span
class=
"wrap_label"
>
科技型企业
</span>
<div
class=
"item_ckquery"
>
...
...
@@ -167,7 +167,8 @@
moneyList
:
[
'1000万以下'
,
'1000万-5000万'
,
'5000万-1亿'
,
'1亿-10亿'
,
'10亿以上'
,
'自定义'
],
qyType
:[],
cgblList
:[
'100%'
,
'50%以上'
,
'20%以上'
,
'5%以上'
,
'1%-5%'
],
cgblName
:
''
cgblName
:
''
,
paramsData
:[],
//储存组件筛选的条件
}
},
watch
:{
...
...
@@ -218,13 +219,16 @@
// 筛选
handleSearch1
(
event
){
// this.searchState=!this.searchState;
let
dom
=
this
.
$refs
.
showContent
;
if
(
!
dom
.
contains
(
event
.
target
))
{
this
.
searchState
=
!
this
.
searchState
;
document
.
removeEventListener
(
'click'
,
this
.
handleQuery
);
let
dom
=
document
.
getElementById
(
"showContent"
);
if
(
dom
){
if
(
!
dom
.
contains
(
event
.
target
))
{
this
.
searchState
=
!
this
.
searchState
;
document
.
removeEventListener
(
'click'
,
this
.
handleQuery
);
}
}
},
handleQuery
(
params
){
this
.
paramsData
=
params
;
let
data
=
this
.
getAreaList
(
params
||
this
.
queryParams
)
memberList
(
data
).
then
(
res
=>
{
this
.
isSkeleton
=
false
...
...
@@ -292,8 +296,9 @@
}
else
{
this
.
queryParams
[
name
]
=
[]
}
this
.
handleQuery
();
// this.$forceUpdate();
this
.
paramsData
.
companyType
=
this
.
queryParams
.
companyType
this
.
paramsData
.
companyTypes
=
this
.
queryParams
.
companyTypes
this
.
handleQuery
(
this
.
paramsData
);
},
handleChange
(
key
,
name
)
{
if
(
key
===
'1'
){
...
...
@@ -354,6 +359,9 @@
provinceIds
.
length
>
0
?
params
.
provinceIds
=
provinceIds
:
''
cityIds
.
length
>
0
?
params
.
cityIds
=
cityIds
:
''
districtIds
.
length
>
0
?
params
.
districtIds
=
districtIds
:
''
// provinceIds.length>0?this.queryParams.provinceIds = provinceIds:''
// cityIds.length>0?this.queryParams.cityIds = cityIds:''
// districtIds.length>0?this.queryParams.districtIds = districtIds:''
}
return
params
},
...
...
@@ -396,7 +404,7 @@
font-size
:
14px
;
font-weight
:
400
;
line-height
:
32px
;
color
:
#
232323
;
color
:
#
999999
;
margin-right
:
8px
;
text-align
:
center
;
width
:
82px
;
...
...
@@ -470,5 +478,24 @@
}
}
}
::v-deep
.el-table
{
.has-gutter
{
tr
{
th
:nth-last-child
(
2
)
{
border-right
:
0
;
}
td
:nth-last-child
(
2
)
{
border-right
:
0
;
}
}
}
.el-table__cell.gutter
{
background
:
#F0F3FA
;
}
}
::v-deep
.el-icon-arrow-down
,
.el-icon-arrow-up
{
font-size
:
14px
;
color
:
#232323
!
important
;
}
}
</
style
>
dsk-operate-ui/src/views/detail/groupAccount/component/performance.vue
View file @
40df17e3
...
...
@@ -253,5 +253,20 @@
margin-right
:
24px
;
}
}
::v-deep
.el-table
{
.has-gutter
{
tr
{
th
:nth-last-child
(
2
)
{
border-right
:
0
;
}
td
:nth-last-child
(
2
)
{
border-right
:
0
;
}
}
}
.el-table__cell.gutter
{
background
:
#F0F3FA
;
}
}
}
</
style
>
dsk-operate-ui/src/views/detail/groupAccount/component/qualifications.vue
View file @
40df17e3
...
...
@@ -60,7 +60,7 @@
{
label
:
'拥有该资质成员'
,
prop
:
'companyCount'
,
slot
:
true
},
],
formData
:
[
{
type
:
1
,
fieldName
:
'qualificationType'
,
value
:
''
,
placeholder
:
'筛选'
,
options
:[]},
{
type
:
1
,
fieldName
:
'qualificationType'
,
value
:
''
,
placeholder
:
'筛选'
,
options
:[]
,
width
:
260
},
],
tableData
:[],
tableDataTotal
:
0
,
...
...
@@ -117,5 +117,20 @@
margin-right
:
24px
;
}
}
::v-deep
.el-table
{
.has-gutter
{
tr
{
th
:nth-last-child
(
2
)
{
border-right
:
0
;
}
td
:nth-last-child
(
2
)
{
border-right
:
0
;
}
}
}
.el-table__cell.gutter
{
background
:
#F0F3FA
;
}
}
}
</
style
>
dsk-operate-ui/src/views/detail/groupAccount/component/qualificationsDetail.vue
View file @
40df17e3
...
...
@@ -19,8 +19,10 @@
style=
"margin: 12px;"
>
<template
slot=
"companyName"
slot-scope=
"scope"
>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId
&&
scope.row.companyName" v-html="scope.row.companyName">
</router-link>
<div
v-else
v-html=
"scope.row.companyName || '--'"
></div>
<div
@
click=
"cancel"
>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId
&&
scope.row.companyName" v-html="scope.row.companyName">
</router-link>
</div>
<!--
<div
v-else
v-html=
"scope.row.companyName || '--'"
></div>
-->
</
template
>
</tables>
</el-drawer>
...
...
dsk-operate-ui/src/views/detail/party-a/component/CustomMoneySelect.vue
View file @
40df17e3
...
...
@@ -399,7 +399,7 @@ export default {
.popper_box
{
position
:
absolute
;
left
:
12
8
px
;
left
:
12
5
px
;
bottom
:
-15px
;
background
:
#ffffff
;
width
:
186px
;
...
...
@@ -407,7 +407,7 @@ export default {
text-indent
:
0
;
padding
:
16px
;
padding-top
:
0px
;
border
:
1px
solid
#
e0e0e0
;
border
:
1px
solid
#
E4E7ED
;
.popper_wrap
{
margin-top
:
16px
;
display
:
inline-block
;
...
...
dsk-operate-ui/src/views/detail/party-a/component/HeadForm.vue
View file @
40df17e3
...
...
@@ -179,6 +179,9 @@ export default {
height
:
34px
;
line-height
:
34px
;
padding-right
:
27px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
::v-deep
.el-form-item
{
margin-right
:
8px
!
important
;
...
...
@@ -213,12 +216,12 @@ export default {
display
:
flex
;
border-radius
:
2px
0px
0px
2px
;
border
:
1px
solid
#D9D9D9
;
line-height
:
3
2
px
;
height
:
3
2
px
;
line-height
:
3
4
px
;
height
:
3
4
px
;
span
{
width
:
60px
;
height
:
3
0
px
;
line-height
:
28
px
;
height
:
3
2
px
;
line-height
:
32
px
;
font-size
:
14px
;
background
:
#F5F5F5
;
text-align
:
center
;
...
...
@@ -240,11 +243,13 @@ export default {
}
::v-deep
.el-input__inner
{
border
:
0
;
line-height
:
3
0
px
;
height
:
3
0
px
;
line-height
:
3
2
px
;
height
:
3
2
px
;
position
:
absolute
;
top
:
0
;
padding-right
:
32px
;
padding-right
:
22px
;
font-size
:
12px
;
padding-left
:
8px
;
}
}
.fromTime
{
...
...
dsk-operate-ui/src/views/index.vue
View file @
40df17e3
...
...
@@ -53,12 +53,12 @@
<div
class=
"search"
>
<el-form
ref=
"queryForm"
:model=
"queryParams"
:inline=
"true"
size=
"small"
>
<el-form-item
prop=
"address"
>
<el-select
v-model=
"queryParams.address"
placeholder=
"项目地区"
>
<el-select
v-model=
"queryParams.address"
placeholder=
"项目地区"
style=
"width: 150px;"
>
<el-option
v-for=
"(item,index) in addressList"
:key=
"index"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
prop=
"type"
>
<el-select
v-model=
"queryParams.type"
placeholder=
"项目类型
"
>
<el-select
v-model=
"queryParams.type"
multiple
collapse-tags
clearable
placeholder=
"项目类型"
:class=
"queryParams.type.length > 1 ? 'selectTag' : ''"
style=
"width: 170px;
"
>
<el-option
v-for=
"(item,index) in typeList"
:key=
"index"
:label=
"item"
:value=
"item"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -99,19 +99,27 @@
<el-col
:span=
"10"
>
<div
class=
"search"
>
<el-form
ref=
"queryForm"
:model=
"queryParams"
:inline=
"true"
size=
"small"
>
<el-form-item
prop=
"money"
>
<custom-money-select
:moneyList=
"moneyList"
v-model=
"queryParams.money"
placeholder=
"中标金额"
@
handle-search=
"changeSelect"
/>
</el-form-item>
<el-form-item
prop=
"address"
>
<el-select
v-model=
"queryParams.address"
placeholder=
"项目地区"
>
<el-select
v-model=
"queryParams.address"
placeholder=
"项目地区"
style=
"width: 150px;"
>
<el-option
v-for=
"(item,index) in addressList"
:key=
"index"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
prop=
"type"
>
<el-select
v-model=
"queryParams.type"
placeholder=
"项目类型
"
>
<el-select
v-model=
"queryParams.type"
multiple
collapse-tags
clearable
placeholder=
"项目类型"
:class=
"queryParams.type.length > 1 ? 'selectTag' : ''"
style=
"width: 170px;
"
>
<el-option
v-for=
"(item,index) in typeList"
:key=
"index"
:label=
"item"
:value=
"item"
></el-option>
</el-select>
</el-form-item>
<el-form-item
prop=
"time"
>
<custom-time-select
:timeList=
"timeList"
v-model=
"queryParams.time"
placeholder=
"中标日期"
@
handle-search=
"changeSelect"
/>
</el-form-item>
...
...
@@ -133,22 +141,62 @@
</el-col>
</el-row>
</div>
<!--
<div
class=
"content content_wap3"
>
-->
<!--
<div
class=
"head"
></div>
-->
<!--
<div
class=
"list"
>
-->
<!--
<div
class=
"item"
v-for=
"(item,index) in projectList"
:key=
"index"
>
-->
<!--
<h3>
{{
item
.
projectName
}}
</h3>
-->
<!--
<p>
-->
<!--
<span>
中标企业:
</span>
-->
<!--
<span>
{{
item
.
enterprise
}}
</span>
-->
<!--
</p>
-->
<!--
<p>
-->
<!--
<span>
中标金额:
</span>
-->
<!--
<span>
{{
item
.
amount
}}
</span>
-->
<!--
</p>
-->
<!--
</div>
-->
<!--
</div>
-->
<!--
</div>
-->
<div
class=
"content_wap3"
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClickTab"
>
<el-tab-pane
label=
"大项目最新中标"
name=
"first"
>
<div
class=
"list"
>
<div
class=
"item"
v-for=
"(item,index) in projectList"
:key=
"index"
>
<p
class=
"list-title"
><router-link
:to=
"`/biddetail/$
{item.id}`" tag="a" class="a-link" v-if="item.id" v-html="item.projectName">
</router-link></p>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
中标企业:
</span>
<span>
{{
item
.
companyName
||
'--'
}}
</span>
</p>
<p
class=
"list-content-text"
>
<span>
中标金额:
</span>
<span>
{{
item
.
amount
}}
万元
</span>
</p>
<p
class=
"list-content-text"
>
<span>
中标日期:
</span>
<span>
{{
item
.
winBidTime
||
'--'
}}
</span>
</p>
<p
class=
"list-content-text"
>
<span>
招标人:
</span>
<span>
{{
item
.
projectUnit
||
'--'
}}
</span>
</p>
</div>
</div>
</div>
<div
class=
"pagination-box"
v-if=
"totalCount>queryParams2.pageSize"
>
<el-pagination
background
:current-page=
"queryParams2.pageNum"
:page-size=
"queryParams2.pageSize"
:total=
"totalCount"
layout=
"prev, pager, next, jumper"
@
current-change=
"handleCurrentChange"
@
size-change=
"handleSizeChange"
/>
</div>
</el-tab-pane>
<el-tab-pane
label=
"大项目最新招标"
name=
"second"
>
<div
class=
"list"
>
<div
class=
"item"
v-for=
"(item,index) in zbList"
:key=
"index"
>
<p
class=
"list-title"
><router-link
:to=
"`/biddetail/$
{item.bid}`" tag="a" class="a-link" v-if="item.bid" v-html="item.projectName">
</router-link></p>
<div
class=
"list-content"
>
<p
class=
"list-content-text"
>
<span>
总投资:
</span>
<span>
{{
item
.
projectAmount
}}
万元
</span>
</p>
<p
class=
"list-content-text"
>
<span>
招标人:
</span>
<span>
{{
item
.
tenderee
||
'--'
}}
</span>
</p>
<p
class=
"list-content-text"
>
<span>
发布日期:
</span>
<span>
{{
item
.
issueTime
||
'--'
}}
</span>
</p>
</div>
</div>
</div>
<div
class=
"pagination-box"
v-if=
"zbTableTotal>queryParams3.pageSize"
>
<el-pagination
background
:current-page=
"queryParams3.pageNum"
:page-size=
"queryParams3.pageSize"
:total=
"zbTableTotal"
layout=
"prev, pager, next, jumper"
@
current-change=
"handleCurrentChange"
@
size-change=
"handleSizeChange"
/>
</div>
</el-tab-pane>
</el-tabs>
</div>
</div>
<!--员工视角-->
<div
class=
"staff"
v-if=
"user === 2"
>
...
...
@@ -212,7 +260,7 @@
</div>
</div>
<div
class=
"trends"
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClickTab"
>
<el-tabs
v-model=
"activeName"
@
tab-click=
"handleClickTab
1
"
>
<el-tab-pane
label=
"甲方舆情"
name=
"first"
>
<div
class=
"main-box"
>
<el-timeline>
...
...
@@ -351,10 +399,12 @@
import
dataRegion
from
'@/assets/json/dataRegion'
import
"@/assets/styles/public.css"
;
import
CustomTimeSelect
from
'./component/CustomTimeSelect'
import
CustomMoneySelect
from
'./component/CustomMoneySelect'
import
{
bigWinningBidsPage
,
bigBidPage
}
from
'@/api/index'
export
default
{
name
:
"Index"
,
components
:
{
CustomTimeSelect
,
CustomTimeSelect
,
CustomMoneySelect
,
},
data
()
{
return
{
...
...
@@ -578,47 +628,48 @@ export default {
},
],
addressList
:[],
typeList
:[
'施工类项目'
],
typeList
:[
'施工类项目'
,
'施工类项目1'
,
'施工类项目2'
,
'施工类项目3'
,
'施工类项目4'
],
queryParams
:{
address
:
''
,
type
:
''
type
:[],
money
:
''
,
time
:
''
,
},
queryParams1
:{
address
:
''
,
type
:[],
money
:
''
,
time
:
''
,
},
queryParams2
:{
provinceId
:
''
,
projects
:[],
amount
:
''
,
time
:
''
,
pageNum
:
1
,
pageSize
:
10
},
queryParams3
:{
provinceId
:
''
,
projects
:[],
amount
:
''
,
time
:
''
,
pageNum
:
1
,
pageSize
:
10
},
timeList
:
[
'近三天'
,
'近七天'
,
'近半月'
,
'自定义'
],
projectList
:[
{
projectName
:
'永川综合保税区建设工程项目二期 (第一批建设项目) EPC总承包联合体2'
,
enterprise
:
'平庆渝西保税产业发展有限公司'
,
amount
:
'33333万元'
,
time
:
'2022-03-05'
,
zbr
:
'重庆渝西保税产业发展有限公司'
},
{
projectName
:
'永川综合保税区建设工程项目二期 (第一批建设项目) EPC总承包联合体2'
,
enterprise
:
'平庆渝西保税产业发展有限公司'
,
amount
:
'33333万元'
,
time
:
'2022-03-05'
,
zbr
:
'重庆渝西保税产业发展有限公司'
},
{
projectName
:
'永川综合保税区建设工程项目二期 (第一批建设项目) EPC总承包联合体2'
,
enterprise
:
'平庆渝西保税产业发展有限公司'
,
amount
:
'33333万元'
,
time
:
'2022-03-05'
,
zbr
:
'重庆渝西保税产业发展有限公司'
},
{
projectName
:
'永川综合保税区建设工程项目二期 (第一批建设项目) EPC总承包联合体2'
,
enterprise
:
'平庆渝西保税产业发展有限公司'
,
amount
:
'33333万元'
,
time
:
'2022-03-05'
,
zbr
:
'重庆渝西保税产业发展有限公司'
},
]
moneyList
:
[
'2亿以上'
,
'5亿以上'
,
'10亿以上'
,
'自定义'
],
projectList
:[],
zbList
:[],
totalCount
:
0
,
zbTableTotal
:
0
,
};
},
created
()
{
this
.
dataRegion
()
this
.
getBigWinningBidsPage
()
if
(
this
.
user
===
1
){
this
.
$nextTick
(()
=>
{
this
.
initChart
(
this
.
jtList
)
...
...
@@ -627,6 +678,26 @@ export default {
}
},
methods
:
{
getBigWinningBidsPage
(){
let
params
=
{}
bigWinningBidsPage
(
this
.
queryParams2
).
then
(
res
=>
{
console
.
log
(
res
)
if
(
res
.
code
==
200
){
this
.
projectList
=
res
.
rows
;
this
.
totalCount
=
res
.
total
;
}
})
},
getBigBidPage
(){
let
params
=
{}
bigBidPage
(
this
.
queryParams3
).
then
(
res
=>
{
console
.
log
(
res
)
if
(
res
.
code
==
200
){
this
.
zbList
=
res
.
rows
;
this
.
zbTableTotal
=
res
.
total
;
}
})
},
//地区
async
dataRegion
()
{
var
str
=
[];
...
...
@@ -939,8 +1010,14 @@ export default {
});
},
handleClickTab
(){
if
(
this
.
activeName
===
'first'
){
this
.
getBigWinningBidsPage
()
}
if
(
this
.
activeName
===
'second'
){
this
.
getBigBidPage
()
}
},
handleClickTab1
(){},
handleChange
(){
this
.
user
=
this
.
user
===
1
?
2
:
1
;
if
(
this
.
user
===
1
){
...
...
@@ -954,6 +1031,12 @@ export default {
console
.
log
(
"11111"
)
// this.$emit('handle-search')
},
handleCurrentChange
(){
},
handleSizeChange
(){
},
}
};
</
script
>
...
...
@@ -1181,12 +1264,96 @@ export default {
}
}
.content_wap3
{
.head
{
height
:
56px
;
border-bottom
:
1px
solid
#EFEFEF
;
margin-top
:
12px
;
background
:
#ffffff
;
::v-deep
.el-tabs
{
.el-tabs__header
{
margin-bottom
:
0
;
}
.el-tabs__item
{
height
:
54px
;
line-height
:
54px
;
font-size
:
16px
;
}
.el-tabs__item.is-active
{
font-weight
:
700
;
color
:
#232323
;
}
.el-tabs__nav-wrap
{
padding
:
0
24px
;
}
.el-tabs__active-bar
{
border-radius
:
8px
;
}
.
el-tabs__nav-wrap
:
:
after
{
height
:
1px
;
}
}
}
.list
{
margin
:
0
16px
;
.item
{
border-bottom
:
1px
solid
#EFEFEF
;
padding
:
16px
0
;
.list-title
{
font-size
:
16px
;
font-weight
:
700
;
color
:
#3D3D3D
;
line-height
:
23px
;
cursor
:
pointer
;
.list-titel-a
{
text-decoration
:
none
;
color
:
#3D3D3D
;
}
a
{
color
:
#3D3D3D
;
}
a
:hover
{
color
:
#0081FF
;
}
}
.list-content
{
margin-top
:
16px
;
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
.list-content-text
{
display
:
flex
;
justify-content
:
start
;
align-items
:
center
;
margin-right
:
32px
;
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
;
}
}
}
}
}
}
::v-deep
.selectTag
{
.el-select__tags
{
.el-tag
{
&
:first-child
{
width
:
90px
;
}
}
}
}
}
...
...
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