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
8140b78c
Commit
8140b78c
authored
Oct 11, 2023
by
tianhongyang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'V20230915' of
http://192.168.60.201/root/dsk-operate-sys
into V20230915
parents
453eac9d
0ee1bbd3
Changes
20
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
811 additions
and
156 deletions
+811
-156
CustomerController.java
.../main/java/com/dsk/biz/controller/CustomerController.java
+1
-1
EnterpriseProjectService.java
...in/java/com/dsk/jsk/service/EnterpriseProjectService.java
+1
-1
BusinessOpportunityRadarService.java
...m/dsk/search/service/BusinessOpportunityRadarService.java
+5
-7
MarketAnalysisService.java
...in/java/com/dsk/search/service/MarketAnalysisService.java
+4
-4
index.scss
dsk-operate-ui/src/assets/styles/index.scss
+4
-1
index.js
dsk-operate-ui/src/router/index.js
+1
-1
index.vue
dsk-operate-ui/src/views/custom/customList/index.vue
+229
-13
members.vue
...te-ui/src/views/detail/groupAccount/component/members.vue
+10
-8
performance.vue
...i/src/views/detail/groupAccount/component/performance.vue
+11
-9
zbxmfx.vue
...ate-ui/src/views/detail/groupAccount/component/zbxmfx.vue
+162
-64
zbxmmx.vue
...ate-ui/src/views/detail/groupAccount/component/zbxmmx.vue
+11
-9
zhaobiao.vue
...e-ui/src/views/detail/groupAccount/component/zhaobiao.vue
+4
-2
HeadFormNew.vue
...ate-ui/src/views/detail/party-a/component/HeadFormNew.vue
+2
-2
mixin.js
dsk-operate-ui/src/views/detail/party-a/mixins/mixin.js
+3
-0
announcement.vue
...erate-ui/src/views/detail/party-a/opport/announcement.vue
+17
-13
sameRegion.vue
...i/src/views/detail/party-a/urbanLnvestment/sameRegion.vue
+2
-2
index.vue
dsk-operate-ui/src/views/index.vue
+4
-0
index.vue
dsk-operate-ui/src/views/macro/enterprises/index.vue
+217
-11
qgjjdq.vue
...ui/src/views/macro/nationalEconomies/component/qgjjdq.vue
+121
-7
lxr.vue
...perate-ui/src/views/project/projectList/component/lxr.vue
+2
-1
No files found.
dsk-module/dsk-biz-api/src/main/java/com/dsk/biz/controller/CustomerController.java
View file @
8140b78c
...
@@ -77,7 +77,7 @@ public class CustomerController extends BaseController {
...
@@ -77,7 +77,7 @@ public class CustomerController extends BaseController {
@PostMapping
(
"/claim"
)
@PostMapping
(
"/claim"
)
@RepeatSubmit
@RepeatSubmit
public
R
<
Map
<
String
,
Object
>>
claim
(
@RequestBody
Customer
customer
)
{
public
R
<
Map
<
String
,
Object
>>
claim
(
@RequestBody
Customer
customer
)
{
if
(
ObjectUtils
.
isEmpty
(
customer
.
getUipId
()))
throw
new
BeanException
(
"城投uipId不能为空"
);
//
if (ObjectUtils.isEmpty(customer.getUipId())) throw new BeanException("城投uipId不能为空");
boolean
add
=
baseService
.
add
(
customer
);
boolean
add
=
baseService
.
add
(
customer
);
if
(
add
)
{
if
(
add
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/service/EnterpriseProjectService.java
View file @
8140b78c
...
@@ -277,7 +277,7 @@ public class EnterpriseProjectService {
...
@@ -277,7 +277,7 @@ public class EnterpriseProjectService {
}
}
public
TableDataInfo
importantList
(
EnterpriseProjectImportantListDto
dto
)
throws
Exception
{
public
TableDataInfo
importantList
(
EnterpriseProjectImportantListDto
dto
)
throws
Exception
{
if
(
ObjectUtil
.
isEmpty
(
dto
.
getC
ompanyI
d
()))
throw
new
BeanException
(
"企业id不能为空!"
);
if
(
ObjectUtil
.
isEmpty
(
dto
.
getC
i
d
()))
throw
new
BeanException
(
"企业id不能为空!"
);
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/operate/enterpriseProject/importantList"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
));
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/operate/enterpriseProject/importantList"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
));
return
dskOpenApiUtil
.
responsePage
(
map
);
return
dskOpenApiUtil
.
responsePage
(
map
);
}
}
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/search/service/BusinessOpportunityRadarService.java
View file @
8140b78c
...
@@ -91,29 +91,27 @@ public class BusinessOpportunityRadarService {
...
@@ -91,29 +91,27 @@ public class BusinessOpportunityRadarService {
}
}
ArrayList
<
String
>
companyNames
=
new
ArrayList
<>();
ArrayList
<
String
>
companyNames
=
new
ArrayList
<>();
ArrayList
<
Long
>
cIds
=
new
ArrayList
<>();
for
(
Object
dataMap
:
list
)
{
for
(
Object
dataMap
:
list
)
{
String
name
=
MapUtils
.
getString
(
CommonUtils
.
assertAsMap
(
dataMap
),
"
companyN
ame"
);
String
name
=
MapUtils
.
getString
(
CommonUtils
.
assertAsMap
(
dataMap
),
"
n
ame"
);
if
(
ObjectUtil
.
isNotEmpty
(
name
)
&&
name
.
contains
(
"font"
))
{
if
(
ObjectUtil
.
isNotEmpty
(
name
)
&&
name
.
contains
(
"font"
))
{
name
=
name
.
replaceAll
(
"<font color='
red
'>"
,
""
);
name
=
name
.
replaceAll
(
"<font color='
#FF204E
'>"
,
""
);
name
=
name
.
replaceAll
(
"</font>"
,
""
);
name
=
name
.
replaceAll
(
"</font>"
,
""
);
companyNames
.
add
(
name
);
companyNames
.
add
(
name
);
}
else
{
}
else
{
companyNames
.
add
(
name
);
companyNames
.
add
(
name
);
}
}
cIds
.
add
(
MapUtils
.
getLong
(
CommonUtils
.
assertAsMap
(
dataMap
),
"companyId"
));
}
}
List
<
CustomerStatusListVo
>
claimStatusList
=
iCustomerService
.
selectStatusListByCompanyName
(
companyNames
);
List
<
CustomerStatusListVo
>
claimStatusList
=
iCustomerService
.
selectStatusListByCompanyName
(
companyNames
);
for
(
Object
enterprise
:
list
)
{
for
(
Object
enterprise
:
list
)
{
Map
<
String
,
Object
>
companyMap
=
CommonUtils
.
assertAsMap
(
enterprise
);
Map
<
String
,
Object
>
companyMap
=
CommonUtils
.
assertAsMap
(
enterprise
);
String
companyName
=
MapUtils
.
getString
(
companyMap
,
"
companyN
ame"
,
""
);
String
companyName
=
MapUtils
.
getString
(
companyMap
,
"
n
ame"
,
""
);
if
(
ObjectUtil
.
isNotEmpty
(
companyName
)
&&
companyName
.
contains
(
"font"
))
{
if
(
ObjectUtil
.
isNotEmpty
(
companyName
)
&&
companyName
.
contains
(
"font"
))
{
companyName
=
companyName
.
replace
(
"<font color='
red
'>"
,
""
);
companyName
=
companyName
.
replace
(
"<font color='
#FF204E
'>"
,
""
);
companyName
=
companyName
.
replace
(
"</font>"
,
""
);
companyName
=
companyName
.
replace
(
"</font>"
,
""
);
}
}
companyMap
.
put
(
"claimStatus"
,
null
);
companyMap
.
put
(
"claimStatus"
,
0
);
for
(
CustomerStatusListVo
vo
:
claimStatusList
)
{
for
(
CustomerStatusListVo
vo
:
claimStatusList
)
{
if
(
companyName
.
equals
(
vo
.
getCompanyName
()))
{
if
(
companyName
.
equals
(
vo
.
getCompanyName
()))
{
companyMap
.
put
(
"claimStatus"
,
vo
.
getStatus
());
companyMap
.
put
(
"claimStatus"
,
vo
.
getStatus
());
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/search/service/MarketAnalysisService.java
View file @
8140b78c
...
@@ -127,8 +127,8 @@ public class MarketAnalysisService {
...
@@ -127,8 +127,8 @@ public class MarketAnalysisService {
if
(!
ObjectUtils
.
isEmpty
(
map
.
get
(
"data"
)))
{
if
(!
ObjectUtils
.
isEmpty
(
map
.
get
(
"data"
)))
{
List
<
Map
<
String
,
Object
>>
list
=
(
List
<
Map
<
String
,
Object
>>)
map
.
get
(
"data"
);
List
<
Map
<
String
,
Object
>>
list
=
(
List
<
Map
<
String
,
Object
>>)
map
.
get
(
"data"
);
list
.
parallelStream
().
forEach
(
res
->
{
list
.
parallelStream
().
forEach
(
res
->
{
Integer
companyId
=
MapUtils
.
getInteger
(
res
,
"
company
Id"
);
Integer
companyId
=
MapUtils
.
getInteger
(
res
,
"
tenderee
Id"
);
String
companyName
=
MapUtils
.
getString
(
res
,
"
companyNam
e"
);
String
companyName
=
MapUtils
.
getString
(
res
,
"
tendere
e"
);
res
.
put
(
"uipId"
,
enterpriseService
.
getUipIdByCompanyNameOrCompanyId
(
companyName
,
companyId
));
res
.
put
(
"uipId"
,
enterpriseService
.
getUipIdByCompanyNameOrCompanyId
(
companyName
,
companyId
));
});
});
}
}
...
@@ -140,8 +140,8 @@ public class MarketAnalysisService {
...
@@ -140,8 +140,8 @@ public class MarketAnalysisService {
if
(!
ObjectUtils
.
isEmpty
(
map
.
get
(
"data"
)))
{
if
(!
ObjectUtils
.
isEmpty
(
map
.
get
(
"data"
)))
{
List
<
Map
<
String
,
Object
>>
list
=
(
List
<
Map
<
String
,
Object
>>)
map
.
get
(
"data"
);
List
<
Map
<
String
,
Object
>>
list
=
(
List
<
Map
<
String
,
Object
>>)
map
.
get
(
"data"
);
list
.
parallelStream
().
forEach
(
res
->
{
list
.
parallelStream
().
forEach
(
res
->
{
Integer
companyId
=
MapUtils
.
getInteger
(
res
,
"
tenderee
Id"
);
Integer
companyId
=
MapUtils
.
getInteger
(
res
,
"
company
Id"
);
String
companyName
=
MapUtils
.
getString
(
res
,
"
tendere
e"
);
String
companyName
=
MapUtils
.
getString
(
res
,
"
companyNam
e"
);
res
.
put
(
"uipId"
,
enterpriseService
.
getUipIdByCompanyNameOrCompanyId
(
companyName
,
companyId
));
res
.
put
(
"uipId"
,
enterpriseService
.
getUipIdByCompanyNameOrCompanyId
(
companyName
,
companyId
));
});
});
}
}
...
...
dsk-operate-ui/src/assets/styles/index.scss
View file @
8140b78c
...
@@ -228,9 +228,12 @@ ul, li {
...
@@ -228,9 +228,12 @@ ul, li {
border-color
:
#D9D9D9
;
border-color
:
#D9D9D9
;
color
:
#232323
;
color
:
#232323
;
&
:
:
placeholder
{
&
:
:
placeholder
{
color
:
rgba
(
35
,
35
,
35
,
0
.
5
);
color
:
rgba
(
35
,
35
,
35
,
0
.
4
);
}
}
}
}
.
el-input__inner
:
:
placeholder
{
color
:
rgba
(
35
,
35
,
35
,
0
.4
)
!
important
;
}
.el-select
.el-input
.el-select__caret
{
.el-select
.el-input
.el-select__caret
{
color
:
#232323
;
color
:
#232323
;
}
}
...
...
dsk-operate-ui/src/router/index.js
View file @
8140b78c
...
@@ -70,7 +70,7 @@ export const constantRoutes = [
...
@@ -70,7 +70,7 @@ export const constantRoutes = [
path
:
'index'
,
path
:
'index'
,
component
:
()
=>
import
(
'@/views/index'
),
component
:
()
=>
import
(
'@/views/index'
),
name
:
'Index'
,
name
:
'Index'
,
meta
:
{
title
:
'首页'
,
icon
:
'index'
,
noCache
:
tru
e
}
meta
:
{
title
:
'首页'
,
icon
:
'index'
,
noCache
:
fals
e
}
}
}
]
]
},
},
...
...
dsk-operate-ui/src/views/custom/customList/index.vue
View file @
8140b78c
...
@@ -17,40 +17,54 @@
...
@@ -17,40 +17,54 @@
<div
class=
"table_search"
>
<div
class=
"table_search"
>
<div>
<div>
<el-form
ref=
"queryForm"
:model=
"searchParam"
:inline=
"true"
size=
"small"
>
<el-form
ref=
"queryForm"
:model=
"searchParam"
:inline=
"true"
size=
"small"
>
<el-form-item
prop=
"companyName"
>
<div
class=
"newSearch"
>
<el-input
type=
"text"
v-model=
"searchParam.companyName"
clearable
placeholder=
"输入企业名称查询"
@
change=
"clearname"
>
<i
slot=
"prefix"
class=
"el-input__icon"
><img
src=
"@/assets/images/project/sousuo.png"
width=
"16px"
@
click=
"handleCurrentChange(1)"
></i>
</el-input>
</div>
</el-form-item>
<el-form-item>
<el-form-item>
<el-cascader
<el-cascader
ref=
"address1"
ref=
"address1"
:class=
"[`select-adaptive-$
{inputID1}`]"
:options="addressList"
:options="addressList"
:props="addressProps"
:props="addressProps"
v-model="address"
v-model="address"
@
change=
"
handleSearch
"
@change="
iptAdaptive(inputID1,true)
"
placeholder="地区选择"
placeholder="地区选择"
collapse-tags
collapse-tags
style=
"width:
20
0px;"
style="width:
13
0px;"
clearable>
</el-cascader>
clearable>
</el-cascader>
</el-form-item>
</el-form-item>
<el-form-item
prop=
"companyNatures"
>
<el-form-item
prop=
"companyNatures"
>
<el-select
v-model=
"searchParam.companyNatures"
style=
"width: 175px;"
@
change=
"handleSearch"
filterable
collapse-tags
multip
le
class=
"form-content-width"
placeholder=
"客户性质"
>
<el-select
v-model=
"searchParam.companyNatures"
:class=
"[`select-adaptive-$
{inputID2}`]" style="width: 130px;" @change="iptAdaptive(inputID2,true)" multiple collapse-tags clearab
le class="form-content-width" placeholder="客户性质">
<el-option
v-for=
"(item, index) in companyNaturelist"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
<el-option
v-for=
"(item, index) in companyNaturelist"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
prop=
"isOn"
>
<el-form-item
prop=
"isOn"
>
<el-select
v-model=
"searchParam.isOn"
filterable
clearable
style=
"width: 175px;"
@
change=
"handleSearch
"
class=
"form-content-width"
placeholder=
"上市公司"
>
<el-select
v-model=
"searchParam.isOn"
:class=
"[`select-adaptive-$
{inputID3}`]" filterable clearable style="width: 130px;" @change="iptAdaptive(inputID3)
" class="form-content-width" placeholder="上市公司">
<el-option
v-for=
"(item, index) in isMajorlist"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
<el-option
v-for=
"(item, index) in isMajorlist"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
prop=
"creditLevels"
>
<el-form-item
prop=
"creditLevels"
>
<el-select
v-model=
"searchParam.creditLevels"
style=
"width: 175px;"
@
change=
"handleSearch"
multiple
filterable
collapse-tags
class=
"form-content-width"
placeholder=
"资信评级"
>
<el-select
v-model=
"searchParam.creditLevels"
:class=
"[`select-adaptive-$
{inputID4}`]" style="width: 130px;" @change="iptAdaptive(inputID4,true)" multiple collapse-tags clearable
class="form-content-width" placeholder="资信评级">
<el-option
v-for=
"(item, index) in creditLevellist"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
<el-option
v-for=
"(item, index) in creditLevellist"
:key=
"index"
:label=
"item.dictLabel"
:value=
"item.dictValue"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
prop=
"companyName"
>
<!--
<div
class=
"newSearch"
>
-->
<!--
<el-input
type=
"text"
v-model=
"searchParam.companyName"
clearable
placeholder=
"输入企业名称查询"
@
change=
"clearname"
>
-->
<!--
<i
slot=
"prefix"
class=
"el-input__icon"
><img
src=
"@/assets/images/project/sousuo.png"
width=
"16px"
@
click=
"handleCurrentChange(1)"
></i>
-->
<!--
</el-input>
-->
<!--
</div>
-->
<!-- 未点击前的输入框样式 -->
<div
class=
"normal-search-container"
@
click=
"showSearchBox = true"
v-if=
"!showSearchBox"
>
<img
src=
"@/assets/images/enterprise/enterprise-search-icon.svg"
alt=
""
>
<span>
搜索
</span>
</div>
<!-- 输入框展开后样式 -->
<transition
@
enter=
"onEnter"
appear
mode=
"out-in"
>
<div
class=
"cooperate-name enterprise-search-container"
id=
"focus1"
v-if=
"showSearchBox"
>
<el-input
clearable
@
clear=
"handleSearch"
@
focus=
"clickFocus('focus1')"
@
blur=
"clickFocus('focus1')"
v-model=
"searchParam.companyName"
placeholder=
"输入关键词查询"
></el-input>
<span
@
click=
"handleSearch"
>
搜索
</span>
</div>
</transition>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
...
@@ -296,6 +310,8 @@
...
@@ -296,6 +310,8 @@
import
batchimport
from
'../../project/projectList/component/batchImport'
import
batchimport
from
'../../project/projectList/component/batchImport'
import
skeleton
from
'../../project/projectList/component/skeleton'
import
skeleton
from
'../../project/projectList/component/skeleton'
import
{
encodeStr
}
from
'@/assets/js/common'
import
{
encodeStr
}
from
'@/assets/js/common'
import
{
v4
}
from
"uuid"
;
import
gsap
from
"gsap"
;
export
default
{
export
default
{
name
:
'CustomList'
,
name
:
'CustomList'
,
components
:{
batchimport
,
skeleton
},
components
:{
batchimport
,
skeleton
},
...
@@ -366,6 +382,11 @@
...
@@ -366,6 +382,11 @@
isSkeleton
:
true
,
isSkeleton
:
true
,
companypage
:
1
,
companypage
:
1
,
isscroll
:
false
,
isscroll
:
false
,
inputID1
:
this
.
getUid
(),
inputID2
:
this
.
getUid
(),
inputID3
:
this
.
getUid
(),
inputID4
:
this
.
getUid
(),
showSearchBox
:
false
}
}
},
},
created
()
{
created
()
{
...
@@ -394,6 +415,21 @@
...
@@ -394,6 +415,21 @@
)
)
},
},
methods
:{
methods
:{
onEnter
(
el
,
done
)
{
gsap
.
from
(
el
,
{
opacity
:
0
,
width
:
0
,
});
gsap
.
to
(
el
,
{
opacity
:
1
,
width
:
242
,
onComplete
()
{
// 完成动画聚焦输入框
el
.
querySelector
(
"input"
).
focus
();
done
();
}
});
},
async
handleQuery
()
{
async
handleQuery
()
{
let
[
type1
,
type2
]
=
await
Promise
.
all
([
let
[
type1
,
type2
]
=
await
Promise
.
all
([
getDictType
(
'company_nature_type'
),
getDictType
(
'company_nature_type'
),
...
@@ -703,6 +739,98 @@
...
@@ -703,6 +739,98 @@
this
.
queryParam
.
registerCapital
=
value
this
.
queryParam
.
registerCapital
=
value
else
else
this
.
queryParam
.
registerCapital
=
value
.
replace
(
/^
\D
*
(\d
*
(?:\.\d{0,6})?)
.*$/g
,
'$1'
)
//输入6位小数
this
.
queryParam
.
registerCapital
=
value
.
replace
(
/^
\D
*
(\d
*
(?:\.\d{0,6})?)
.*$/g
,
'$1'
)
//输入6位小数
},
iptAdaptive
(
uid
,
multiple
=
false
)
{
multiple
?
this
.
multipleAdaptiveHandle
(
uid
)
:
this
.
iptAdaptiveHandle
(
uid
);
},
getUid
()
{
return
v4
();
},
// 多选处理
async
multipleAdaptiveHandle
(
uid
)
{
try
{
await
this
.
$nextTick
();
const
dom
=
document
.
querySelector
(
`.select-adaptive-
${
uid
}
`
);
const
iptChild
=
dom
.
querySelector
(
".el-input__inner"
);
if
(
dom
)
{
const
textContainer
=
document
.
createElement
(
"span"
);
const
textName
=
`text-
${
uid
}
`
;
textContainer
.
classList
.
add
(
textName
);
const
selectChildren
=
dom
.
querySelectorAll
(
".el-tag"
);
if
(
selectChildren
.
length
)
{
let
width
=
0
;
selectChildren
.
forEach
(
item
=>
{
const
text
=
item
.
textContent
;
const
itemInfo
=
window
.
getComputedStyle
(
item
);
textContainer
.
style
.
setProperty
(
"visibility"
,
"hidden"
);
textContainer
.
style
.
setProperty
(
"display"
,
"inline-block"
);
textContainer
.
style
.
setProperty
(
"font-size"
,
"14px"
);
textContainer
.
style
.
setProperty
(
"padding"
,
itemInfo
.
padding
);
textContainer
.
style
.
setProperty
(
"box-sizing"
,
"border-box"
);
textContainer
.
textContent
=
text
;
document
.
body
.
append
(
textContainer
);
width
+=
textContainer
.
offsetWidth
+
parseInt
(
itemInfo
.
marginLeft
)
+
parseInt
(
itemInfo
.
marginRight
);
textContainer
.
remove
();
});
dom
.
style
.
setProperty
(
"width"
,
`
${
width
+
50
}
px`
);
this
.
handleSearch
();
return
;
}
textContainer
.
style
.
setProperty
(
"visibility"
,
"hidden"
);
textContainer
.
style
.
setProperty
(
"display"
,
"inline-block"
);
textContainer
.
style
.
setProperty
(
"font-size"
,
"14px"
);
textContainer
.
style
.
setProperty
(
"padding"
,
"0px 8px"
);
textContainer
.
style
.
setProperty
(
"box-sizing"
,
"border-box"
);
textContainer
.
textContent
=
iptChild
.
getAttribute
(
"placeholder"
);
document
.
body
.
append
(
textContainer
);
// let containerWidth = textContainer.offsetWidth + 12 + 8;
let
containerWidth
=
130
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
this
.
handleSearch
();
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
},
// 单选处理
async
iptAdaptiveHandle
(
uid
)
{
try
{
await
this
.
$nextTick
();
const
dom
=
document
.
querySelector
(
`.select-adaptive-
${
uid
}
`
);
const
realStyles
=
window
.
getComputedStyle
(
dom
);
if
(
dom
)
{
const
iptChild
=
dom
.
querySelector
(
".el-input__inner"
);
const
textContainer
=
document
.
createElement
(
"span"
);
const
textName
=
`text-
${
uid
}
`
;
textContainer
.
classList
.
add
(
textName
);
textContainer
.
style
.
setProperty
(
"visibility"
,
"hidden"
);
textContainer
.
style
.
setProperty
(
"display"
,
"inline-block"
);
textContainer
.
style
.
setProperty
(
"font-size"
,
"14px"
);
const
hasPadding
=
(
parseInt
(
realStyles
.
paddingLeft
)
||
parseInt
(
realStyles
.
paddingRight
))
?
true
:
false
;
hasPadding
?
textContainer
.
style
.
setProperty
(
"padding"
,
"0px 8px"
)
:
null
;
textContainer
.
style
.
setProperty
(
"box-sizing"
,
"border-box"
);
textContainer
.
textContent
=
iptChild
.
value
?
iptChild
.
value
:
iptChild
.
getAttribute
(
"placeholder"
);
document
.
body
.
append
(
textContainer
);
// let containerWidth = textContainer.offsetWidth + 12 + 8;
let
containerWidth
=
0
if
(
iptChild
.
value
){
containerWidth
=
70
;
}
else
{
containerWidth
=
130
;
}
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
}
this
.
handleSearch
();
}
catch
(
error
)
{
}
},
clickFocus
(
e
)
{
document
.
getElementById
(
e
).
classList
.
toggle
(
'span-ba'
);
}
}
}
}
}
}
...
@@ -713,9 +841,28 @@
...
@@ -713,9 +841,28 @@
height
:
calc
(
100vh
-
134px
)
height
:
calc
(
100vh
-
134px
)
}
}
.box-card
{
.box-card
{
@import
"@/assets/styles/search-common.scss"
;
padding-top
:
16px
;
padding-top
:
16px
;
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
::v-deep
.el-form
{
.el-input
{
line-height
:
32px
;
.el-input__inner
{
height
:
32px
;
line-height
:
32px
;
border-radius
:
4px
;
border
:
0
;
}
}
.is-focus
{
.el-input__inner
{
background
:
#F4F6F9
;
}
}
}
}
}
.box
{
.box
{
position
:
relative
;
position
:
relative
;
...
@@ -785,13 +932,82 @@
...
@@ -785,13 +932,82 @@
flex-wrap
:
inherit
;
flex-wrap
:
inherit
;
margin-top
:
1px
;
margin-top
:
1px
;
.el-tag
{
.el-tag
{
max-width
:
120px
;
/*max-width: 120px;*/
}
}
}
}
.el-input__suffix
{
.el-input__suffix
{
top
:
1px
;
top
:
1px
;
}
}
}
}
.normal-search-container
{
margin-left
:
12px
;
display
:
flex
;
align-items
:
center
;
cursor
:
pointer
;
height
:
34px
;
&
:hover
{
&
>
span
{
color
:
#0081ff
;
}
}
&
>
img
{
width
:
16px
;
height
:
16px
;
margin-left
:
12px
;
}
&
>
span
{
color
:
#232323
;
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
font-weight
:
400
;
margin-left
:
8px
;
line-height
:
22px
;
font-size
:
14px
;
}
}
.cooperate-name
{
margin-left
:
12px
;
display
:
flex
;
border-radius
:
2px
;
border
:
1px
solid
#d9d9d9
;
line-height
:
34px
;
height
:
34px
;
float
:
left
;
span
{
width
:
60px
;
height
:
32px
;
line-height
:
32px
;
font-size
:
14px
;
background
:
#f5f5f5
;
text-align
:
center
;
color
:
#0081ff
;
border
:
1px
solid
#efefef
;
border-left
:
0
;
cursor
:
pointer
;
}
&
.span-ba
{
border
:
1px
solid
#0081ff
;
span
{
color
:
#ffffff
;
background
:
#0081ff
;
border
:
1px
solid
#0081ff
;
}
}
::v-deep
.el-input
{
flex
:
1
;
}
::v-deep
.el-input__inner
{
border
:
0
;
line-height
:
32px
;
height
:
32px
;
position
:
absolute
;
top
:
0
;
padding-right
:
28px
;
font-size
:
12px
;
padding-left
:
8px
;
}
}
}
}
}
}
.ps1
{
.ps1
{
...
...
dsk-operate-ui/src/views/detail/groupAccount/component/members.vue
View file @
8140b78c
<
template
>
<
template
>
<div
class=
"members"
>
<div
class=
"members"
>
<head-form
<head-form-new
ref=
"headForm"
title=
"集团成员"
title=
"集团成员"
:form-data=
"formData"
:form-data=
"formData"
:query-params=
"queryParams"
:query-params=
"queryParams"
...
@@ -44,7 +45,7 @@
...
@@ -44,7 +45,7 @@
</div>
</div>
</div>
</div>
</template>
</template>
</head-form>
</head-form
-new
>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
<tables
v-if=
"!isSkeleton"
v-if=
"!isSkeleton"
...
@@ -101,12 +102,12 @@
...
@@ -101,12 +102,12 @@
{
label
:
'企业地区'
,
prop
:
'address'
,
minWidth
:
'200'
},
{
label
:
'企业地区'
,
prop
:
'address'
,
minWidth
:
'200'
},
],
],
formData
:
[
formData
:
[
{
type
:
4
,
fieldName
:
'combineMemberLevels'
,
value
:
''
,
placeholder
:
'成员层级'
,
options
:[]},
{
type
:
4
,
fieldName
:
'combineMemberLevels'
,
value
:
''
,
placeholder
:
'成员层级'
,
options
:[]
,
uid
:
this
.
getUid
()
},
{
type
:
1
,
fieldName
:
'businessType'
,
value
:
''
,
placeholder
:
'主营业务'
,
options
:[]},
{
type
:
1
,
fieldName
:
'businessType'
,
value
:
''
,
placeholder
:
'主营业务'
,
options
:[]
,
uid
:
this
.
getUid
()
},
{
type
:
7
,
fieldName
:
'province'
,
value
:
''
,
props
:
{
multiple
:
true
,
value
:
'id'
,
expandTrigger
:
'hover'
},
placeholder
:
'地区'
,
options
:[]},
{
type
:
7
,
fieldName
:
'province'
,
value
:
''
,
props
:
{
multiple
:
true
,
value
:
'id'
,
expandTrigger
:
'hover'
},
placeholder
:
'地区'
,
options
:[]
,
uid
:
this
.
getUid
()
},
{
type
:
6
,
fieldName
:
'money'
,
value
:
''
,
placeholder
:
'注册资本'
,
startMoney
:
'minAmount'
,
endMoney
:
'maxAmount'
,
moneyList
:[]
},
{
type
:
6
,
fieldName
:
'money'
,
value
:
''
,
placeholder
:
'注册资本'
,
startMoney
:
'minAmount'
,
endMoney
:
'maxAmount'
,
moneyList
:[]
,
uid
:
this
.
getUid
()
},
{
type
:
0
,
fieldName
:
'penalizeReasonType'
,
value
:
''
,
placeholder
:
'筛选'
,
options
:
[]},
{
type
:
0
,
fieldName
:
'penalizeReasonType'
,
value
:
''
,
placeholder
:
'筛选'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
3
,
fieldName
:
'searchValue'
,
value
:
''
,
placeholder
:
'输入关键词查询'
},
{
type
:
3
,
fieldName
:
'searchValue'
,
value
:
''
,
placeholder
:
'输入关键词查询'
,
uid
:
this
.
getUid
()
},
],
],
cycj
:[
cycj
:[
{
{
...
@@ -548,5 +549,6 @@
...
@@ -548,5 +549,6 @@
font-size
:
14px
;
font-size
:
14px
;
color
:
#232323
!
important
;
color
:
#232323
!
important
;
}
}
@import
"@/assets/styles/search-common.scss"
;
}
}
</
style
>
</
style
>
dsk-operate-ui/src/views/detail/groupAccount/component/performance.vue
View file @
8140b78c
<
template
>
<
template
>
<div
class=
"performance"
>
<div
class=
"performance"
>
<head-form
<head-form-new
ref=
"headForm"
title=
"集团业绩"
title=
"集团业绩"
:form-data=
"formData"
:form-data=
"formData"
:query-params=
"queryParams"
:query-params=
"queryParams"
...
@@ -12,7 +13,7 @@
...
@@ -12,7 +13,7 @@
<template
slot=
"slot"
>
<template
slot=
"slot"
>
</
template
>
</
template
>
</head-form>
</head-form
-new
>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
<tables
v-if=
"!isSkeleton"
v-if=
"!isSkeleton"
...
@@ -84,14 +85,14 @@
...
@@ -84,14 +85,14 @@
{
label
:
'业主单位'
,
prop
:
'projectUnit'
,
slot
:
true
,
minWidth
:
'190'
},
{
label
:
'业主单位'
,
prop
:
'projectUnit'
,
slot
:
true
,
minWidth
:
'190'
},
],
],
formData
:
[
formData
:
[
{
type
:
7
,
fieldName
:
'province'
,
value
:
''
,
props
:
{
multiple
:
true
,
value
:
'id'
,
expandTrigger
:
'hover'
},
placeholder
:
'项目地区'
,
options
:[]},
{
type
:
7
,
fieldName
:
'province'
,
value
:
''
,
props
:
{
multiple
:
true
,
value
:
'id'
,
expandTrigger
:
'hover'
},
placeholder
:
'项目地区'
,
options
:[]
,
uid
:
this
.
getUid
()
},
{
type
:
5
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'中标时间'
,
startTime
:
'startBidTime'
,
endTime
:
'endBidTime'
,
timeList
:[],
dateTo
:
this
.
formatDate
(
new
Date
())
},
{
type
:
5
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'中标时间'
,
startTime
:
'startBidTime'
,
endTime
:
'endBidTime'
,
timeList
:[],
dateTo
:
this
.
formatDate
(
new
Date
())
,
uid
:
this
.
getUid
()
},
{
type
:
6
,
fieldName
:
'money'
,
value
:
''
,
placeholder
:
'中标金额'
,
startMoney
:
'minAmount'
,
endMoney
:
'maxAmount'
,
moneyList
:[]
},
{
type
:
6
,
fieldName
:
'money'
,
value
:
''
,
placeholder
:
'中标金额'
,
startMoney
:
'minAmount'
,
endMoney
:
'maxAmount'
,
moneyList
:[]
,
uid
:
this
.
getUid
()
},
{
type
:
4
,
fieldName
:
'boundTypes'
,
value
:
''
,
placeholder
:
'业绩类型'
,
options
:
[],
width
:
150
},
{
type
:
4
,
fieldName
:
'boundTypes'
,
value
:
''
,
placeholder
:
'业绩类型'
,
options
:
[],
width
:
150
,
uid
:
this
.
getUid
()
},
{
type
:
4
,
fieldName
:
'projectTypes'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[],
width
:
150
},
{
type
:
4
,
fieldName
:
'projectTypes'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[],
width
:
150
,
uid
:
this
.
getUid
()
},
{
type
:
1
,
fieldName
:
'cgbl'
,
value
:
''
,
placeholder
:
'持股比例'
,
options
:
[],
width
:
100
},
{
type
:
1
,
fieldName
:
'cgbl'
,
value
:
''
,
placeholder
:
'持股比例'
,
options
:
[],
width
:
100
,
uid
:
this
.
getUid
()
},
// { type: 3, fieldName: 'searchValue', value: '', placeholder: '搜索中标成员名称/项目名称'},
// { type: 3, fieldName: 'searchValue', value: '', placeholder: '搜索中标成员名称/项目名称'},
{
type
:
3
,
fieldName
:
'searchValue'
,
value
:
''
,
placeholder
:
'
查询'
},
{
type
:
3
,
fieldName
:
'searchValue'
,
value
:
''
,
placeholder
:
'
输入关键词查询'
,
uid
:
this
.
getUid
()
},
],
],
tableData
:[],
tableData
:[],
tableDataTotal
:
0
,
tableDataTotal
:
0
,
...
@@ -323,5 +324,6 @@
...
@@ -323,5 +324,6 @@
background
:
#F0F3FA
;
background
:
#F0F3FA
;
}
}
}
}
@import
"@/assets/styles/search-common.scss"
;
}
}
</
style
>
</
style
>
dsk-operate-ui/src/views/detail/groupAccount/component/zbxmfx.vue
View file @
8140b78c
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
<div
class=
"performance"
>
<div
class=
"performance"
>
<div
class=
"content"
>
<div
class=
"content"
>
<head-form
<head-form
ref=
"headForm"
title=
"集团施工项目最新招标"
title=
"集团施工项目最新招标"
:form-data=
"formData"
:form-data=
"formData"
:query-params=
"queryParams"
:query-params=
"queryParams"
...
@@ -9,9 +10,9 @@
...
@@ -9,9 +10,9 @@
:slots=
"true"
:slots=
"true"
:isExcel=
"false"
:isExcel=
"false"
></head-form>
></head-form>
<span
class=
"check"
>
查看集团招标
<i
class=
"el-icon-arrow-right"
></i></span>
<span
class=
"check"
@
click=
"check"
>
查看集团招标
<i
class=
"el-icon-arrow-right"
></i></span>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<div
class=
"table-item"
v-if=
"!isSkeleton"
>
<div
class=
"table-item"
v-if=
"!isSkeleton
&& tableData.length >0
"
>
<el-table
class=
"fixed-table"
:data=
"tableData"
border
max-height=
"235"
>
<el-table
class=
"fixed-table"
:data=
"tableData"
border
max-height=
"235"
>
<el-table-column
label=
"项目名称"
prop=
"title"
min-width=
"350"
>
<el-table-column
label=
"项目名称"
prop=
"title"
min-width=
"350"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
...
@@ -28,7 +29,7 @@
...
@@ -28,7 +29,7 @@
</el-table-column>
</el-table-column>
<el-table-column
label=
"招标金额"
prop=
"projectAmount"
width=
"110"
>
<el-table-column
label=
"招标金额"
prop=
"projectAmount"
width=
"110"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
projectAmount
?
scope
.
row
.
projectAmount
:
'
0.00
'
}}{{
scope
.
row
.
projectAmount
?
'万元'
:
''
}}
{{
scope
.
row
.
projectAmount
?
scope
.
row
.
projectAmount
:
'
--
'
}}{{
scope
.
row
.
projectAmount
?
'万元'
:
''
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"项目类型"
prop=
"projectCategory"
width=
"110"
></el-table-column>
<el-table-column
label=
"项目类型"
prop=
"projectCategory"
width=
"110"
></el-table-column>
...
@@ -47,20 +48,21 @@
...
@@ -47,20 +48,21 @@
</div>
</div>
<div
class=
"content"
>
<div
class=
"content"
>
<head-form
<head-form
title=
"集团
施工项目年度招标
"
title=
"集团
年度发包统计
"
:form-data=
"[]"
:form-data=
"[]"
:query-params=
"{}"
:query-params=
"{}"
:slots=
"true"
:slots=
"true"
:isExcel=
"false"
:isExcel=
"false"
></head-form>
></head-form>
<el-row>
<skeleton
v-if=
"isSkeleton2"
style=
"padding: 16px"
></skeleton>
<el-row
v-if=
"!isSkeleton2"
>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<div
id=
"ndzb-echarts"
style=
"height:
30
0px;"
></div>
<div
id=
"ndzb-echarts"
style=
"height:
28
0px;"
></div>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<div
class=
"box-right"
>
<div
class=
"box-right"
>
<div
class=
"table-item"
>
<div
class=
"table-item"
>
<el-table
class=
"fixed-table"
:data=
"ndzbList"
border
max-height=
"2
7
0"
>
<el-table
class=
"fixed-table"
:data=
"ndzbList"
border
max-height=
"2
6
0"
>
<el-table-column
label=
"年度"
prop=
"type"
min-width=
"70"
></el-table-column>
<el-table-column
label=
"年度"
prop=
"type"
min-width=
"70"
></el-table-column>
<el-table-column
label=
"历史发包数量"
prop=
"count"
width=
"120"
>
<el-table-column
label=
"历史发包数量"
prop=
"count"
width=
"120"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
...
@@ -69,7 +71,7 @@
...
@@ -69,7 +71,7 @@
</el-table-column>
</el-table-column>
<el-table-column
label=
"历史发包总金额"
prop=
"sum"
width=
"140"
>
<el-table-column
label=
"历史发包总金额"
prop=
"sum"
width=
"140"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
sum
?
scope
.
row
.
sum
:
'
0.00
'
}}{{
scope
.
row
.
sum
?
'万元'
:
''
}}
{{
scope
.
row
.
sum
?
scope
.
row
.
sum
:
'
--
'
}}{{
scope
.
row
.
sum
?
'万元'
:
''
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"发包金额最高成员"
prop=
"companyName"
min-width=
"200"
>
<el-table-column
label=
"发包金额最高成员"
prop=
"companyName"
min-width=
"200"
>
...
@@ -96,12 +98,14 @@
...
@@ -96,12 +98,14 @@
<el-select
<el-select
v-model=
"year1"
v-model=
"year1"
clearable
clearable
@
change=
"changeSelect1"
class=
"form-content-width"
class=
"form-content-width"
style=
"width: 80px"
>
style=
"width: 80px"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
</el-select>
</el-select>
</div>
</div>
<el-row>
<skeleton
v-if=
"isSkeleton3"
style=
"padding: 16px"
></skeleton>
<el-row
v-if=
"!isSkeleton3"
>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<div
id=
"fbje-echarts"
style=
"height: 280px;"
></div>
<div
id=
"fbje-echarts"
style=
"height: 280px;"
></div>
</el-col>
</el-col>
...
@@ -133,12 +137,14 @@
...
@@ -133,12 +137,14 @@
<el-select
<el-select
v-model=
"year2"
v-model=
"year2"
clearable
clearable
@
change=
"changeSelect2"
class=
"form-content-width"
class=
"form-content-width"
style=
"width: 80px"
>
style=
"width: 80px"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
</el-select>
</el-select>
</div>
</div>
<el-row>
<skeleton
v-if=
"isSkeleton4"
style=
"padding: 16px"
></skeleton>
<el-row
v-if=
"!isSkeleton4"
>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<div
id=
"lxtj-echarts"
style=
"height: 280px;"
></div>
<div
id=
"lxtj-echarts"
style=
"height: 280px;"
></div>
</el-col>
</el-col>
...
@@ -154,7 +160,7 @@
...
@@ -154,7 +160,7 @@
</el-table-column>
</el-table-column>
<el-table-column
label=
"发包总金额"
prop=
"sum"
width=
"140"
>
<el-table-column
label=
"发包总金额"
prop=
"sum"
width=
"140"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
sum
?
scope
.
row
.
sum
:
'
0.00
'
}}{{
scope
.
row
.
sum
?
'万元'
:
''
}}
{{
scope
.
row
.
sum
?
scope
.
row
.
sum
:
'
--
'
}}{{
scope
.
row
.
sum
?
'万元'
:
''
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"发包金额最大成员"
prop=
"companyName"
min-width=
"200"
>
<el-table-column
label=
"发包金额最大成员"
prop=
"companyName"
min-width=
"200"
>
...
@@ -181,12 +187,14 @@
...
@@ -181,12 +187,14 @@
<el-select
<el-select
v-model=
"year3"
v-model=
"year3"
clearable
clearable
@
change=
"changeSelect3"
class=
"form-content-width"
class=
"form-content-width"
style=
"width: 80px"
>
style=
"width: 80px"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
</el-select>
</el-select>
</div>
</div>
<el-row>
<skeleton
v-if=
"isSkeleton5"
style=
"padding: 16px"
></skeleton>
<el-row
v-if=
"!isSkeleton5"
>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<div
id=
"xfl-echarts"
style=
"height: 280px;"
></div>
<div
id=
"xfl-echarts"
style=
"height: 280px;"
></div>
</el-col>
</el-col>
...
@@ -195,6 +203,11 @@
...
@@ -195,6 +203,11 @@
<div
class=
"table-item"
>
<div
class=
"table-item"
>
<el-table
class=
"fixed-table"
:data=
"xflList"
border
max-height=
"270"
>
<el-table
class=
"fixed-table"
:data=
"xflList"
border
max-height=
"270"
>
<el-table-column
label=
"项目类型"
prop=
"type"
min-width=
"120"
></el-table-column>
<el-table-column
label=
"项目类型"
prop=
"type"
min-width=
"120"
></el-table-column>
<el-table-column
label=
"统计项目数量"
prop=
"count"
min-width=
"150"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
count
}}{{
scope
.
row
.
count
?
'个'
:
''
}}
</
template
>
</el-table-column>
<el-table-column
label=
"下浮率区间"
prop=
"lowerRate"
></el-table-column>
<el-table-column
label=
"下浮率区间"
prop=
"lowerRate"
></el-table-column>
</el-table>
</el-table>
</div>
</div>
...
@@ -212,24 +225,24 @@
...
@@ -212,24 +225,24 @@
:isExcel=
"false"
:isExcel=
"false"
></head-form>
></head-form>
<skeleton
v-if=
"isSkeleton6"
style=
"padding: 16px"
></skeleton>
<skeleton
v-if=
"isSkeleton6"
style=
"padding: 16px"
></skeleton>
<div
class=
"table-item"
v-if=
"!isSkeleton6"
>
<div
class=
"table-item"
v-if=
"!isSkeleton6
&& peojectTopData.length > 0
"
>
<el-table
class=
"fixed-table"
:data=
"peojectTopData"
border
max-height=
"235"
>
<el-table
class=
"fixed-table"
:data=
"peojectTopData"
border
max-height=
"235"
>
<el-table-column
label=
"项目名称"
prop=
"projectName"
min-width=
"350"
>
<el-table-column
label=
"项目名称"
prop=
"projectName"
min-width=
"350"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<router-link
:to=
"`/biddetail/$
{
item.id}`" tag="a" class="a-link" v-if="scope.row.b
id" v-html="scope.row.projectName">
</router-link>
<router-link
:to=
"`/biddetail/$
{
scope.row.id}`" tag="a" class="a-link" v-if="scope.row.
id" v-html="scope.row.projectName">
</router-link>
<div
v-else
v-html=
"scope.row.projectName || '--'"
></div>
<div
v-else
v-html=
"scope.row.projectName || '--'"
></div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"中标日期"
prop=
"winBidTime"
width=
"100"
></el-table-column>
<el-table-column
label=
"中标日期"
prop=
"winBidTime"
width=
"100"
></el-table-column>
<el-table-column
label=
"中标金额"
prop=
"winBidAmount"
width=
"130"
>
<el-table-column
label=
"中标金额"
prop=
"winBidAmount"
width=
"130"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
winBidAmount
?
scope
.
row
.
winBidAmount
:
'
0.00
'
}}{{
scope
.
row
.
winBidAmount
?
'万元'
:
''
}}
{{
scope
.
row
.
winBidAmount
?
scope
.
row
.
winBidAmount
:
'
--
'
}}{{
scope
.
row
.
winBidAmount
?
'万元'
:
''
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"项目类型"
prop=
"projectTypeNew"
width=
"100"
></el-table-column>
<el-table-column
label=
"项目类型"
prop=
"projectTypeNew"
width=
"100"
></el-table-column>
<el-table-column
label=
"招标成员"
prop=
"projectUnit"
min-width=
"250"
>
<el-table-column
label=
"招标成员"
prop=
"projectUnit"
min-width=
"250"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.projectUnitId)}`:`/company/${encodeStr(scope.row.projectUnitId)}`" tag="a" class="a-link" v-if="scope.row.projectUnitId
&&
scope.row.projectUnit" v-html="scope.row.projectUnit">
</router-link>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.projectUnitId)}`:`/company/${encodeStr(scope.row.projectUnitId)}`" tag="a" class="a-link" v-if="scope.row.projectUnitId
&&
scope.row.projectUnit" v-html="scope.row.projectUnit">
</router-link
:to="scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.projectUnitId)}`:`/company/${encodeStr(scope.row.projectUnitId)}`"
>
<div
v-else
v-html=
"scope.row.projectUnit || '--'"
></div>
<div
v-else
v-html=
"scope.row.projectUnit || '--'"
></div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
...
@@ -270,14 +283,16 @@
...
@@ -270,14 +283,16 @@
return
{
return
{
queryParams
:
{
queryParams
:
{
combineId
:
this
.
customerId
,
combineId
:
this
.
customerId
,
year
:
'2023年'
},
},
queryParams1
:
{
queryParams1
:
{
combineId
:
this
.
customerId
,
combineId
:
this
.
customerId
,
year
:
'2023年'
},
},
formData
:
[
formData
:
[
{
type
:
4
,
fieldName
:
'type'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[],
width
:
150
},
{
type
:
4
,
fieldName
:
'type'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[],
width
:
150
,
uid
:
this
.
getUid
()
},
{
type
:
1
,
fieldName
:
'cgbl'
,
value
:
''
,
placeholder
:
'持股比例'
,
options
:
[],
width
:
110
},
{
type
:
1
,
fieldName
:
'cgbl'
,
value
:
''
,
placeholder
:
'持股比例'
,
options
:
[],
width
:
110
,
uid
:
this
.
getUid
()
},
{
type
:
1
,
fieldName
:
'year'
,
value
:
'
'
,
placeholder
:
'年份'
,
options
:
[],
width
:
80
},
{
type
:
1
,
fieldName
:
'year'
,
value
:
'
2023年'
,
placeholder
:
'年份'
,
options
:
[],
width
:
100
,
uid
:
this
.
getUid
()
},
],
],
cgblList
:
[
cgblList
:
[
{
name
:
'100%'
,
value
:
'100%'
},
{
name
:
'100%'
,
value
:
'100%'
},
...
@@ -293,9 +308,9 @@
...
@@ -293,9 +308,9 @@
peojectTopData
:[],
peojectTopData
:[],
ndzbList
:[],
ndzbList
:[],
yearOptions
:[],
yearOptions
:[],
year1
:
'2023'
,
year1
:
'2023
年
'
,
year2
:
'2023'
,
year2
:
'2023
年
'
,
year3
:
'2023'
,
year3
:
'2023
年
'
,
isSkeleton
:
true
,
isSkeleton
:
true
,
isSkeleton2
:
true
,
isSkeleton2
:
true
,
isSkeleton3
:
true
,
isSkeleton3
:
true
,
...
@@ -335,14 +350,15 @@
...
@@ -335,14 +350,15 @@
let
Years
=
[];
let
Years
=
[];
for
(
var
i
=
startyear
;
i
<=
Year
;
i
++
){
for
(
var
i
=
startyear
;
i
<=
Year
;
i
++
){
Years
.
push
({
Years
.
push
({
name
:
i
,
name
:
i
+
'年'
,
value
:
i
,
value
:
i
+
'年'
,
})
})
}
}
this
.
yearOptions
=
Years
.
reverse
()
this
.
yearOptions
=
Years
.
reverse
()
this
.
formData
[
2
].
options
=
Years
this
.
formData
[
2
].
options
=
Years
},
},
handleQuery
(
params
){
handleQuery
(
params
){
// this.isSkeleton = true
let
data
=
params
||
this
.
queryParams
;
let
data
=
params
||
this
.
queryParams
;
if
(
data
.
cgbl
){
if
(
data
.
cgbl
){
if
(
data
.
cgbl
===
'100%'
){
if
(
data
.
cgbl
===
'100%'
){
...
@@ -364,7 +380,7 @@
...
@@ -364,7 +380,7 @@
delete
data
.
cgbl
delete
data
.
cgbl
}
}
if
(
data
.
year
){
if
(
data
.
year
){
data
.
year
=
[
data
.
year
.
toString
()]
data
.
year
=
[
data
.
year
.
toString
()
.
substr
(
0
,
4
)
]
}
}
delete
data
.
pageNum
delete
data
.
pageNum
recentlyBid
(
data
).
then
(
res
=>
{
recentlyBid
(
data
).
then
(
res
=>
{
...
@@ -378,7 +394,7 @@
...
@@ -378,7 +394,7 @@
},
},
getBidByYear
(){
getBidByYear
(){
bidByYear
({
combineId
:
this
.
customerId
}).
then
(
res
=>
{
bidByYear
({
combineId
:
this
.
customerId
}).
then
(
res
=>
{
// this.isSkeleton
= false
this
.
isSkeleton2
=
false
if
(
res
.
code
===
200
){
if
(
res
.
code
===
200
){
this
.
ndzbList
=
res
.
data
;
this
.
ndzbList
=
res
.
data
;
if
(
res
.
data
.
length
>
0
){
if
(
res
.
data
.
length
>
0
){
...
@@ -388,9 +404,12 @@
...
@@ -388,9 +404,12 @@
})
})
},
},
getGroupByMoney
(){
getGroupByMoney
(){
let
year
=
[
this
.
year1
.
toString
()]
let
year
=
''
if
(
this
.
year1
){
year
=
[
this
.
year1
.
toString
().
substr
(
0
,
4
)]
}
groupByMoney
({
combineId
:
this
.
customerId
,
year
:
year
}).
then
(
res
=>
{
groupByMoney
({
combineId
:
this
.
customerId
,
year
:
year
}).
then
(
res
=>
{
// this.isSkeleton
= false
this
.
isSkeleton3
=
false
if
(
res
.
code
===
200
){
if
(
res
.
code
===
200
){
this
.
jeqjList
=
res
.
data
;
this
.
jeqjList
=
res
.
data
;
...
@@ -408,9 +427,12 @@
...
@@ -408,9 +427,12 @@
})
})
},
},
getGroupByType
(){
getGroupByType
(){
let
year
=
[
this
.
year2
.
toString
()]
let
year
=
''
if
(
this
.
year2
){
year
=
[
this
.
year2
.
toString
().
substr
(
0
,
4
)]
}
groupByType
({
combineId
:
this
.
customerId
,
year
:
year
}).
then
(
res
=>
{
groupByType
({
combineId
:
this
.
customerId
,
year
:
year
}).
then
(
res
=>
{
// this.isSkeleton
= false
this
.
isSkeleton4
=
false
if
(
res
.
code
===
200
){
if
(
res
.
code
===
200
){
this
.
lxtjList
=
res
.
data
;
this
.
lxtjList
=
res
.
data
;
if
(
res
.
data
.
length
>
0
){
if
(
res
.
data
.
length
>
0
){
...
@@ -420,9 +442,12 @@
...
@@ -420,9 +442,12 @@
})
})
},
},
getGroupByLowerRate
(){
getGroupByLowerRate
(){
let
year
=
[
this
.
year3
.
toString
()]
let
year
=
''
if
(
this
.
year3
){
year
=
[
this
.
year3
.
toString
().
substr
(
0
,
4
)]
}
groupByLowerRate
({
combineId
:
this
.
customerId
,
year
:
year
}).
then
(
res
=>
{
groupByLowerRate
({
combineId
:
this
.
customerId
,
year
:
year
}).
then
(
res
=>
{
// this.isSkeleton
= false
this
.
isSkeleton5
=
false
if
(
res
.
code
===
200
){
if
(
res
.
code
===
200
){
this
.
xflList
=
res
.
data
;
this
.
xflList
=
res
.
data
;
if
(
res
.
data
.
length
>
0
){
if
(
res
.
data
.
length
>
0
){
...
@@ -453,7 +478,7 @@
...
@@ -453,7 +478,7 @@
delete
data
.
cgbl
delete
data
.
cgbl
}
}
if
(
data
.
year
){
if
(
data
.
year
){
data
.
year
=
[
data
.
year
.
toString
()]
data
.
year
=
[
data
.
year
.
toString
()
.
substr
(
0
,
4
)
]
}
}
delete
data
.
pageNum
delete
data
.
pageNum
peojectTop
(
data
).
then
(
res
=>
{
peojectTop
(
data
).
then
(
res
=>
{
...
@@ -469,11 +494,19 @@
...
@@ -469,11 +494,19 @@
let
params
=
this
.
formParams
()
let
params
=
this
.
formParams
()
this
.
getPeojectTop
(
params
)
this
.
getPeojectTop
(
params
)
},
},
changeSelect
(){
changeSelect1
(){
this
.
getGroupByMoney
()
},
changeSelect2
(){
this
.
getGroupByType
()
},
changeSelect3
(){
this
.
getGroupByLowerRate
()
},
},
initChart
(
data
)
{
initChart
(
data
)
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
// 让 指定id 的 div 的_echarts_instance_属性值 为 空状态
document
.
getElementById
(
"ndzb-echarts"
).
removeAttribute
(
'_echarts_instance_'
);
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"ndzb-echarts"
))
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"ndzb-echarts"
))
let
option
=
{
let
option
=
{
tooltip
:
{
tooltip
:
{
...
@@ -482,6 +515,25 @@
...
@@ -482,6 +515,25 @@
type
:
'cross'
type
:
'cross'
}
}
},
},
legend
:
{
data
:
[
{
name
:
'招标数量'
,
// icon: 'rect',
},
{
name
:
'招标金额(万元)'
,
// icon: 'circle',
}
],
top
:
0
,
right
:
30
,
itemHeight
:
10
,
itemWidth
:
10
,
textStyle
:
{
fontSize
:
12
},
},
xAxis
:
{
xAxis
:
{
type
:
'category'
,
type
:
'category'
,
axisLabel
:
{
//坐标轴刻度标签的相关设置
axisLabel
:
{
//坐标轴刻度标签的相关设置
...
@@ -526,7 +578,7 @@
...
@@ -526,7 +578,7 @@
}
}
],
],
grid
:
{
grid
:
{
top
:
3
0
,
top
:
4
0
,
left
:
80
,
left
:
80
,
right
:
130
,
right
:
130
,
bottom
:
30
,
bottom
:
30
,
...
@@ -540,7 +592,7 @@
...
@@ -540,7 +592,7 @@
yAxisIndex
:
1
,
yAxisIndex
:
1
,
tooltip
:
{
tooltip
:
{
valueFormatter
:
function
(
value
)
{
valueFormatter
:
function
(
value
)
{
return
value
+
'万元'
return
value
}
}
},
},
itemStyle
:
{
itemStyle
:
{
...
@@ -586,6 +638,7 @@
...
@@ -586,6 +638,7 @@
},
},
initChart2
(
data
)
{
initChart2
(
data
)
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
document
.
getElementById
(
"fbje-echarts"
).
removeAttribute
(
'_echarts_instance_'
);
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"fbje-echarts"
))
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"fbje-echarts"
))
let
option
=
{
let
option
=
{
tooltip
:
{
tooltip
:
{
...
@@ -635,13 +688,41 @@
...
@@ -635,13 +688,41 @@
},
},
initChart3
(
data
)
{
initChart3
(
data
)
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
document
.
getElementById
(
"lxtj-echarts"
).
removeAttribute
(
'_echarts_instance_'
);
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"lxtj-echarts"
))
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"lxtj-echarts"
))
let
option
=
{
let
option
=
{
tooltip
:
{
tooltip
:
{
trigger
:
'axis'
,
trigger
:
'axis'
,
axisPointer
:
{
axisPointer
:
{
type
:
'cross'
type
:
'cross'
},
formatter
:
function
(
params
)
{
var
relVal
=
params
[
0
].
name
;
// relVal+='
<
br
/>
' +"<span style=
\
"display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:#f17f0a;
\
"></span>" + '
次数
' +": "+ array[0][relVal.replace(/"/g, '')]
for (var i = 0, l = params.length; i < l; i++) {
relVal += '
<
br
/>
' + params[i].marker + params[i].seriesName +": "+ params[i].value
}
}
return relVal
}
},
legend: {
data: [
{
name: '
招标数量
',
// icon: '
rect
',
},
{
name: '
招标金额
(
万元)
',
// icon: '
circle
',
}
],
top: 0,
right:30,
itemHeight: 10,
itemWidth: 10,
textStyle: {
fontSize: 12
},
},
},
xAxis: {
xAxis: {
type: '
category
',
type: '
category
',
...
@@ -687,7 +768,7 @@
...
@@ -687,7 +768,7 @@
}
}
],
],
grid: {
grid: {
top
:
3
0
,
top:
4
0,
left:80,
left:80,
right:130,
right:130,
bottom:30,
bottom:30,
...
@@ -701,7 +782,7 @@
...
@@ -701,7 +782,7 @@
yAxisIndex: 1,
yAxisIndex: 1,
tooltip: {
tooltip: {
valueFormatter: function (value) {
valueFormatter: function (value) {
return
value
+
'万元'
return value
}
}
},
},
itemStyle: {
itemStyle: {
...
@@ -747,13 +828,14 @@
...
@@ -747,13 +828,14 @@
},
},
initChart4(data) {
initChart4(data) {
this.$nextTick(()=>{
this.$nextTick(()=>{
document.getElementById("xfl-echarts").removeAttribute('
_echarts_instance_
');
let myChart = echarts.init(document.getElementById("xfl-echarts"))
let myChart = echarts.init(document.getElementById("xfl-echarts"))
let option ={
let option ={
tooltip: {
tooltip: {
trigger: '
axis
',
trigger: '
axis
',
axisPointer
:
{
//
axisPointer: {
type
:
'cross'
//
type: '
cross
'
}
//
}
},
},
xAxis: {
xAxis: {
type: '
category
',
type: '
category
',
...
@@ -767,6 +849,21 @@
...
@@ -767,6 +849,21 @@
},
},
data: data.map(item => item.type),
data: data.map(item => item.type),
},
},
legend: {
data: [
{
name: '
统计项目数量
',
// icon: '
rect
',
},
],
top: 0,
right:30,
itemHeight: 10,
itemWidth: 10,
textStyle: {
fontSize: 12
},
},
yAxis: [
yAxis: [
{
{
type: '
value
',
type: '
value
',
...
@@ -805,29 +902,29 @@
...
@@ -805,29 +902,29 @@
bottom:30,
bottom:30,
},
},
series: [
series: [
{
//
{
name
:
'下浮率区间
'
,
// name:'
统计项目数量
',
smooth
:
false
,
//平滑
//
smooth: false, //平滑
type
:
"line"
,
//
type:"line",
symbolSize
:
6
,
//
symbolSize: 6,
yAxisIndex
:
1
,
//
yAxisIndex: 1,
// tooltip: {
// tooltip: {
// valueFormatter: function (value) {
// valueFormatter: function (value) {
// return value + '万元'
// return value
// }
// }
// },
// },
itemStyle
:
{
//
itemStyle: {
normal
:{
//
normal:{
color
:
'#14C9C9'
,
//
color: '
#
14
C9C9
',
lineStyle
:
{
//
lineStyle: {
width
:
2
//
width:2
},
//
},
}
//
}
},
//
},
data
:
data
.
map
(
item
=>
item
.
lowerRate
),
//
data:data.map(item => item.lowerRate),
},
//
},
{
{
name
:
'
招标
数量'
,
name:'
统计项目
数量
',
type: '
bar
',
type: '
bar
',
barWidth: 20,
barWidth: 20,
tooltip: {
tooltip: {
...
@@ -863,6 +960,7 @@
...
@@ -863,6 +960,7 @@
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.performance
{
.performance
{
@import
"@/assets/styles/search-common.scss"
;
/*height: calc(100% - 64px);*/
/*height: calc(100% - 64px);*/
.content
{
.content
{
background
:
#ffffff
;
background
:
#ffffff
;
...
...
dsk-operate-ui/src/views/detail/groupAccount/component/zbxmmx.vue
View file @
8140b78c
<
template
>
<
template
>
<div
class=
"performance"
>
<div
class=
"performance"
>
<head-form
<head-form-new
ref=
"headForm"
title=
""
title=
""
:form-data=
"formData"
:form-data=
"formData"
:query-params=
"queryParams"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:total=
"tableDataTotal"
:isExcel=
"false"
:isExcel=
"false"
@
handle-search=
"handleSearch"
@
handle-search=
"handleSearch"
></head-form>
></head-form
-new
>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
<tables
v-if=
"!isSkeleton"
v-if=
"!isSkeleton"
...
@@ -129,13 +130,13 @@
...
@@ -129,13 +130,13 @@
{
label
:
'代理单位'
,
prop
:
'agency'
,
minWidth
:
'160'
,
slot
:
true
},
{
label
:
'代理单位'
,
prop
:
'agency'
,
minWidth
:
'160'
,
slot
:
true
},
],
],
formData
:
[
formData
:
[
{
type
:
7
,
fieldName
:
'province'
,
value
:
''
,
props
:
{
multiple
:
true
,
value
:
'id'
,
expandTrigger
:
'hover'
},
placeholder
:
'项目地区'
,
options
:[]},
{
type
:
7
,
fieldName
:
'province'
,
value
:
''
,
props
:
{
multiple
:
true
,
value
:
'id'
,
expandTrigger
:
'hover'
},
placeholder
:
'项目地区'
,
options
:[]
,
uid
:
this
.
getUid
()
},
{
type
:
5
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'招标发布时间'
,
startTime
:
'startTime'
,
endTime
:
'endTime'
,
timeList
:[]
},
{
type
:
5
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'招标发布时间'
,
startTime
:
'startTime'
,
endTime
:
'endTime'
,
timeList
:[]
,
uid
:
this
.
getUid
()
},
{
type
:
6
,
fieldName
:
'money'
,
value
:
''
,
placeholder
:
'预算金额'
,
startMoney
:
'minAmount'
,
endMoney
:
'maxAmount'
,
moneyList
:[]
},
{
type
:
6
,
fieldName
:
'money'
,
value
:
''
,
placeholder
:
'预算金额'
,
startMoney
:
'minAmount'
,
endMoney
:
'maxAmount'
,
moneyList
:[]
,
uid
:
this
.
getUid
()
},
{
type
:
1
,
fieldName
:
'subjectMatters'
,
value
:
''
,
placeholder
:
'招标采购分类'
,
options
:
[],
width
:
125
},
{
type
:
1
,
fieldName
:
'subjectMatters'
,
value
:
''
,
placeholder
:
'招标采购分类'
,
options
:
[],
width
:
125
,
uid
:
this
.
getUid
()
},
{
type
:
4
,
fieldName
:
'projectTypes'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[],
width
:
150
},
{
type
:
4
,
fieldName
:
'projectTypes'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[],
width
:
150
,
uid
:
this
.
getUid
()
},
{
type
:
1
,
fieldName
:
'cgbl'
,
value
:
''
,
placeholder
:
'持股比例'
,
options
:
[],
width
:
110
},
{
type
:
1
,
fieldName
:
'cgbl'
,
value
:
''
,
placeholder
:
'持股比例'
,
options
:
[],
width
:
110
,
uid
:
this
.
getUid
()
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'查询'
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'
输入关键词
查询'
},
],
],
tableData
:[],
tableData
:[],
tableDataTotal
:
0
,
tableDataTotal
:
0
,
...
@@ -373,6 +374,7 @@
...
@@ -373,6 +374,7 @@
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.performance
{
.performance
{
@import
"@/assets/styles/search-common.scss"
;
background
:
#ffffff
;
background
:
#ffffff
;
border-radius
:
4px
;
border-radius
:
4px
;
padding
:
16px
;
padding
:
16px
;
...
...
dsk-operate-ui/src/views/detail/groupAccount/component/zhaobiao.vue
View file @
8140b78c
...
@@ -30,8 +30,10 @@
...
@@ -30,8 +30,10 @@
},
},
methods
:
{
methods
:
{
handleClick
()
{
handleClick
(
key
)
{
if
(
key
===
'second'
){
this
.
activeName
=
key
}
}
}
}
}
}
}
...
...
dsk-operate-ui/src/views/detail/party-a/component/HeadFormNew.vue
View file @
8140b78c
...
@@ -493,7 +493,7 @@ export default {
...
@@ -493,7 +493,7 @@ export default {
&
>
span
{
&
>
span
{
color
:
#232323
;
color
:
#232323
;
color
:
rgba
(
35
,
35
,
35
,
0
.
8
);
color
:
rgba
(
35
,
35
,
35
,
0
.
4
);
font-weight
:
400
;
font-weight
:
400
;
margin-left
:
8px
;
margin-left
:
8px
;
line-height
:
22px
;
line-height
:
22px
;
...
...
dsk-operate-ui/src/views/detail/party-a/mixins/mixin.js
View file @
8140b78c
...
@@ -21,6 +21,9 @@ export default {
...
@@ -21,6 +21,9 @@ export default {
},
},
methods
:
{
methods
:
{
check
(){
this
.
$parent
.
handleClick
(
'second'
);
},
getUid
()
{
getUid
()
{
return
v4
();
return
v4
();
},
},
...
...
dsk-operate-ui/src/views/detail/party-a/opport/announcement.vue
View file @
8140b78c
...
@@ -10,6 +10,10 @@
...
@@ -10,6 +10,10 @@
v-html="scope.row.projectName">
</router-link>
v-html="scope.row.projectName">
</router-link>
<div
v-else
v-html=
"scope.row.projectName || '--'"
></div>
<div
v-else
v-html=
"scope.row.projectName || '--'"
></div>
</
template
>
</
template
>
<
template
slot=
"agency"
slot-scope=
"scope"
>
<router-link
:to=
"`/company/$
{encodeStr(scope.row.agencyId)}`" tag="a" class="a-link" v-if="scope.row.agencyId
&&
scope.row.agency" v-html="scope.row.agency">
</router-link>
<div
v-else
v-html=
"scope.row.agency || '--'"
></div>
</
template
>
<
template
slot=
"province"
slot-scope=
"scope"
>
<
template
slot=
"province"
slot-scope=
"scope"
>
{{
scope
.
row
.
province
}}{{
`${scope.row.city?'-'+scope.row.city:''
}
`
}}
{{
`${scope.row.area?'-'+scope.row.area:''
}
`
}}
{{
scope
.
row
.
province
}}{{
`${scope.row.city?'-'+scope.row.city:''
}
`
}}
{{
`${scope.row.area?'-'+scope.row.area:''
}
`
}}
<
/template
>
<
/template
>
...
@@ -40,21 +44,21 @@ export default {
...
@@ -40,21 +44,21 @@ export default {
}
,
}
,
defaultSort
:
{
prop
:
'issueTime'
,
order
:
'descending'
}
,
defaultSort
:
{
prop
:
'issueTime'
,
order
:
'descending'
}
,
forData
:
[
forData
:
[
{
label
:
'项目名称'
,
prop
:
'projectName'
,
minWidth
:
'300'
,
slot
:
true
,
fixed
:
true
}
,
{
label
:
'项目名称'
,
prop
:
'projectName'
,
minWidth
:
'300'
,
slot
:
true
,
fixed
:
true
}
,
{
label
:
'发布日期'
,
prop
:
'issueTime'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
,
width
:
'120'
}
,
{
label
:
'发布日期'
,
prop
:
'issueTime'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
,
width
:
'120'
}
,
{
label
:
'预算金额(万元)'
,
prop
:
'projectAmount'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
,
width
:
'140'
}
,
{
label
:
'预算金额(万元)'
,
prop
:
'projectAmount'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
,
width
:
'140'
}
,
{
label
:
'项目类型'
,
prop
:
'projectCategory'
,
width
:
'110'
}
,
{
label
:
'项目类型'
,
prop
:
'projectCategory'
,
width
:
'110'
}
,
{
label
:
'项目地区'
,
prop
:
'province'
,
width
:
'120'
,
slot
:
true
}
,
{
label
:
'项目地区'
,
prop
:
'province'
,
width
:
'120'
,
slot
:
true
}
,
{
label
:
'招标阶段'
,
prop
:
'tenderStage'
,
width
:
'90'
}
,
{
label
:
'招标阶段'
,
prop
:
'tenderStage'
,
width
:
'90'
}
,
{
label
:
'招采单位联系人'
,
prop
:
'contact'
,
width
:
'120'
}
,
{
label
:
'招采单位联系人'
,
prop
:
'contact'
,
width
:
'120'
}
,
{
label
:
'招采单位联系方式'
,
prop
:
'contactTel'
,
width
:
'130'
}
,
{
label
:
'招采单位联系方式'
,
prop
:
'contactTel'
,
width
:
'130'
}
,
{
label
:
'代理单位'
,
prop
:
'agency'
,
minWidth
:
'170'
}
,
{
label
:
'代理单位'
,
prop
:
'agency'
,
minWidth
:
'170'
,
slot
:
true
}
,
{
label
:
'代理单位联系人'
,
prop
:
'agencyContact'
,
width
:
'120'
}
,
{
label
:
'代理单位联系人'
,
prop
:
'agencyContact'
,
width
:
'120'
}
,
{
label
:
'代理单位联系方式'
,
prop
:
'agencyContactTel'
,
width
:
'130'
}
,
{
label
:
'代理单位联系方式'
,
prop
:
'agencyContactTel'
,
width
:
'130'
}
,
{
label
:
'报名截止日期'
,
prop
:
'overTime'
,
width
:
'110'
}
{
label
:
'报名截止日期'
,
prop
:
'overTime'
,
width
:
'110'
}
],
],
formData
:
[
formData
:
[
{
type
:
7
,
fieldName
:
'province'
,
value
:
''
,
props
:
{
multiple
:
true
}
,
placeholder
:
'项目地区'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
7
,
fieldName
:
'province'
,
value
:
''
,
props
:
{
multiple
:
true
}
,
placeholder
:
'项目地区'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
4
,
fieldName
:
'projectCategory'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
4
,
fieldName
:
'projectCategory'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
4
,
fieldName
:
'tenderStage'
,
value
:
''
,
placeholder
:
'招标阶段'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
4
,
fieldName
:
'tenderStage'
,
value
:
''
,
placeholder
:
'招标阶段'
,
options
:
[],
uid
:
this
.
getUid
()
}
,
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入关键词查询'
,
options
:
[],
uid
:
this
.
getUid
()
}
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入关键词查询'
,
options
:
[],
uid
:
this
.
getUid
()
}
...
...
dsk-operate-ui/src/views/detail/party-a/urbanLnvestment/sameRegion.vue
View file @
8140b78c
...
@@ -86,7 +86,7 @@
...
@@ -86,7 +86,7 @@
</template>
</template>
</head-form-new>
</head-form-new>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<tables
v-if=
"!isSkeleton"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
<tables
v-if=
"!isSkeleton"
:
indexFixed=
"true"
:
tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<
template
slot=
"companyName"
slot-scope=
"scope"
>
<
template
slot=
"companyName"
slot-scope=
"scope"
>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a"
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a"
...
@@ -139,7 +139,7 @@ export default {
...
@@ -139,7 +139,7 @@ export default {
pageSize
:
20
pageSize
:
20
},
},
forData
:
[
forData
:
[
{
label
:
'企业名称'
,
prop
:
'companyName'
,
width
:
'369'
,
slot
:
true
},
{
label
:
'企业名称'
,
prop
:
'companyName'
,
width
:
'369'
,
slot
:
true
,
fixed
:
true
},
{
label
:
'区域'
,
prop
:
'area'
,
width
:
'120'
,
slot
:
true
},
{
label
:
'区域'
,
prop
:
'area'
,
width
:
'120'
,
slot
:
true
},
{
label
:
'招标数量'
,
prop
:
'biddingCount'
,
width
:
'100'
,
sortable
:
true
},
{
label
:
'招标数量'
,
prop
:
'biddingCount'
,
width
:
'100'
,
sortable
:
true
},
{
label
:
'城投拿地'
,
prop
:
'landInfoCount'
,
width
:
'100'
,
sortable
:
true
},
{
label
:
'城投拿地'
,
prop
:
'landInfoCount'
,
width
:
'100'
,
sortable
:
true
},
...
...
dsk-operate-ui/src/views/index.vue
View file @
8140b78c
...
@@ -882,6 +882,8 @@ export default {
...
@@ -882,6 +882,8 @@ export default {
data
.
push
(
list
[
i
])
data
.
push
(
list
[
i
])
}
}
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
// 让 指定id 的 div 的_echarts_instance_属性值 为 空状态
document
.
getElementById
(
"zbtj-echarts"
).
removeAttribute
(
'_echarts_instance_'
);
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"zbtj-echarts"
))
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"zbtj-echarts"
))
let
option
=
{
let
option
=
{
tooltip
:
{
tooltip
:
{
...
@@ -1020,6 +1022,8 @@ export default {
...
@@ -1020,6 +1022,8 @@ export default {
require
(
'@/assets/images/index/10.png'
),
require
(
'@/assets/images/index/10.png'
),
]
]
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
// 让 指定id 的 div 的_echarts_instance_属性值 为 空状态
document
.
getElementById
(
"zbph-echarts"
).
removeAttribute
(
'_echarts_instance_'
);
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"zbph-echarts"
))
let
myChart
=
echarts
.
init
(
document
.
getElementById
(
"zbph-echarts"
))
// let option ={
// let option ={
// legend: {
// legend: {
...
...
dsk-operate-ui/src/views/macro/enterprises/index.vue
View file @
8140b78c
...
@@ -14,21 +14,37 @@
...
@@ -14,21 +14,37 @@
ref=
"aptitudeCode"
ref=
"aptitudeCode"
:options=
"aptitudeCodeList"
:options=
"aptitudeCodeList"
:props=
"props"
:props=
"props"
:class=
"[`select-adaptive-$
{inputID1}`]"
v-model="queryParams.codeStr"
v-model="queryParams.codeStr"
@
change=
"
handleChange
"
@change="
iptAdaptive(inputID1,true,'handleChange')
"
placeholder="资质资格"
placeholder="资质资格"
collapse-tags
collapse-tags
clearable>
</el-cascader>
clearable>
</el-cascader>
<custom-time-select
<custom-time-select
style=
"display: inline-block"
style=
"display: inline-block"
:timeList=
"timeList"
:timeList=
"timeList"
:class=
"[`select-adaptive-$
{inputID2}`,'custom-select']"
v-model="queryParams.time"
v-model="queryParams.time"
:placeholder="timePlaceholder"
:placeholder="timePlaceholder"
@
handle-search=
"changeSelect"
/>
@handle-search="iptAdaptive(inputID2,'','changeSelect')"
<el-input
placeholder=
"输入关键词查询"
v-model=
"queryParams.ename"
clearable
@
clear=
"handleSearch()"
>
/>
<i
slot=
"prefix"
class=
"el-icon-search"
></i>
<!--
<el-input
placeholder=
"输入关键词查询"
v-model=
"queryParams.ename"
clearable
@
clear=
"handleSearch()"
>
-->
<el-button
slot=
"append"
@
click=
"handleSearch()"
>
搜索
</el-button>
<!--
<i
slot=
"prefix"
class=
"el-icon-search"
></i>
-->
</el-input>
<!--
<el-button
slot=
"append"
@
click=
"handleSearch()"
>
搜索
</el-button>
-->
<!--
</el-input>
-->
<!-- 未点击前的输入框样式 -->
<div
class=
"normal-search-container"
@
click=
"showSearchBox = true"
v-if=
"!showSearchBox"
>
<img
src=
"@/assets/images/enterprise/enterprise-search-icon.svg"
alt=
""
>
<span>
搜索
</span>
</div>
<!-- 输入框展开后样式 -->
<transition
@
enter=
"onEnter"
appear
mode=
"out-in"
>
<div
class=
"cooperate-name enterprise-search-container"
id=
"focus1"
v-if=
"showSearchBox"
>
<el-input
clearable
@
clear=
"handleSearch"
@
focus=
"clickFocus('focus1')"
@
blur=
"clickFocus('focus1')"
v-model=
"queryParams.ename"
placeholder=
"输入关键词查询"
></el-input>
<span
@
click=
"handleSearch"
>
搜索
</span>
</div>
</transition>
<span
class=
"total"
>
共
{{
tableDataTotal
}}
条
</span>
<span
class=
"total"
>
共
{{
tableDataTotal
}}
条
</span>
</div>
</div>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
...
@@ -102,6 +118,8 @@
...
@@ -102,6 +118,8 @@
import
{
enterprise
,
location
,
getUipIdByCid
}
from
'@/api/macro/macro'
import
{
enterprise
,
location
,
getUipIdByCid
}
from
'@/api/macro/macro'
import
Region
from
'../component/region'
import
Region
from
'../component/region'
import
skeleton
from
'../component/skeleton'
import
skeleton
from
'../component/skeleton'
import
{
v4
}
from
"uuid"
;
import
gsap
from
"gsap"
;
export
default
{
export
default
{
name
:
'Enterprises'
,
name
:
'Enterprises'
,
components
:
{
Region
,
skeleton
,
CustomTimeSelect
},
components
:
{
Region
,
skeleton
,
CustomTimeSelect
},
...
@@ -137,6 +155,9 @@ export default {
...
@@ -137,6 +155,9 @@ export default {
isSkeleton
:
true
,
isSkeleton
:
true
,
timeList
:
[
'近半月'
,
'近一月'
,
'近半年'
,
'近一年'
,
'自定义'
],
timeList
:
[
'近半月'
,
'近一月'
,
'近半年'
,
'近一年'
,
'自定义'
],
timePlaceholder
:
'中标时间'
,
timePlaceholder
:
'中标时间'
,
inputID1
:
this
.
getUid
(),
inputID2
:
this
.
getUid
(),
showSearchBox
:
false
}
}
},
},
created
()
{
created
()
{
...
@@ -155,6 +176,21 @@ export default {
...
@@ -155,6 +176,21 @@ export default {
// window.removeEventListener("scroll", this.scrolling);
// window.removeEventListener("scroll", this.scrolling);
},
},
methods
:
{
methods
:
{
onEnter
(
el
,
done
)
{
gsap
.
from
(
el
,
{
opacity
:
0
,
width
:
0
,
});
gsap
.
to
(
el
,
{
opacity
:
1
,
width
:
242
,
onComplete
()
{
// 完成动画聚焦输入框
el
.
querySelector
(
"input"
).
focus
();
done
();
}
});
},
scrolling
()
{
scrolling
()
{
let
el
=
document
.
getElementsByClassName
(
"el-table__fixed-header-wrapper"
)[
0
]
let
el
=
document
.
getElementsByClassName
(
"el-table__fixed-header-wrapper"
)[
0
]
let
scrollTop
=
window
.
pageYOffset
||
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
;
let
scrollTop
=
window
.
pageYOffset
||
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
;
...
@@ -267,12 +303,17 @@ export default {
...
@@ -267,12 +303,17 @@ export default {
codeStr
:
''
,
codeStr
:
''
,
time
:
''
,
time
:
''
,
}
}
this
.
showSearchBox
=
false
;
this
.
pageIndex
=
1
;
this
.
pageIndex
=
1
;
this
.
querySubmit
()
this
.
querySubmit
()
},
},
handleSearch
(){
handleSearch
(
name
){
if
(
name
===
'handleChange'
){
this
.
handleChange
()
}
else
{
this
.
pageIndex
=
1
;
this
.
pageIndex
=
1
;
this
.
querySubmit
()
this
.
querySubmit
()
}
},
},
formatStatus
:
function
(
row
,
column
,
cellValue
)
{
formatStatus
:
function
(
row
,
column
,
cellValue
)
{
return
cellValue
?
cellValue
:
'-'
return
cellValue
?
cellValue
:
'-'
...
@@ -326,6 +367,91 @@ export default {
...
@@ -326,6 +367,91 @@ export default {
this
.
pageIndex
=
1
;
this
.
pageIndex
=
1
;
this
.
querySubmit
()
this
.
querySubmit
()
},
},
getUid
()
{
return
v4
();
},
iptAdaptive
(
uid
,
multiple
=
false
,
name
)
{
multiple
?
this
.
multipleAdaptiveHandle
(
uid
,
name
)
:
this
.
iptAdaptiveHandle
(
uid
);
},
// 多选处理
async
multipleAdaptiveHandle
(
uid
,
name
)
{
try
{
await
this
.
$nextTick
();
const
dom
=
document
.
querySelector
(
`.select-adaptive-
${
uid
}
`
);
const
iptChild
=
dom
.
querySelector
(
".el-input__inner"
);
if
(
dom
)
{
const
textContainer
=
document
.
createElement
(
"span"
);
const
textName
=
`text-
${
uid
}
`
;
textContainer
.
classList
.
add
(
textName
);
const
selectChildren
=
dom
.
querySelectorAll
(
".el-tag"
);
if
(
selectChildren
.
length
)
{
let
width
=
0
;
selectChildren
.
forEach
(
item
=>
{
const
text
=
item
.
textContent
;
const
itemInfo
=
window
.
getComputedStyle
(
item
);
textContainer
.
style
.
setProperty
(
"visibility"
,
"hidden"
);
textContainer
.
style
.
setProperty
(
"display"
,
"inline-block"
);
textContainer
.
style
.
setProperty
(
"font-size"
,
"14px"
);
textContainer
.
style
.
setProperty
(
"padding"
,
itemInfo
.
padding
);
textContainer
.
style
.
setProperty
(
"box-sizing"
,
"border-box"
);
textContainer
.
textContent
=
text
;
document
.
body
.
append
(
textContainer
);
width
+=
textContainer
.
offsetWidth
+
parseInt
(
itemInfo
.
marginLeft
)
+
parseInt
(
itemInfo
.
marginRight
);
textContainer
.
remove
();
});
dom
.
style
.
setProperty
(
"width"
,
`
${
width
+
60
}
px`
);
this
.
handleSearch
(
name
);
return
;
}
textContainer
.
style
.
setProperty
(
"visibility"
,
"hidden"
);
textContainer
.
style
.
setProperty
(
"display"
,
"inline-block"
);
textContainer
.
style
.
setProperty
(
"font-size"
,
"14px"
);
textContainer
.
style
.
setProperty
(
"padding"
,
"0px 8px"
);
textContainer
.
style
.
setProperty
(
"box-sizing"
,
"border-box"
);
textContainer
.
textContent
=
iptChild
.
getAttribute
(
"placeholder"
);
document
.
body
.
append
(
textContainer
);
// let containerWidth = textContainer.offsetWidth + 12 + 8;
let
containerWidth
=
120
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
this
.
handleSearch
(
name
);
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
},
// 单选处理
async
iptAdaptiveHandle
(
uid
)
{
try
{
await
this
.
$nextTick
();
const
dom
=
document
.
querySelector
(
`.select-adaptive-
${
uid
}
`
);
const
realStyles
=
window
.
getComputedStyle
(
dom
);
if
(
dom
)
{
const
iptChild
=
dom
.
querySelector
(
".el-input__inner"
);
const
textContainer
=
document
.
createElement
(
"span"
);
const
textName
=
`text-
${
uid
}
`
;
textContainer
.
classList
.
add
(
textName
);
textContainer
.
style
.
setProperty
(
"visibility"
,
"hidden"
);
textContainer
.
style
.
setProperty
(
"display"
,
"inline-block"
);
textContainer
.
style
.
setProperty
(
"font-size"
,
"14px"
);
const
hasPadding
=
(
parseInt
(
realStyles
.
paddingLeft
)
||
parseInt
(
realStyles
.
paddingRight
))
?
true
:
false
;
hasPadding
?
textContainer
.
style
.
setProperty
(
"padding"
,
"0px 8px"
)
:
null
;
textContainer
.
style
.
setProperty
(
"box-sizing"
,
"border-box"
);
textContainer
.
textContent
=
iptChild
.
value
?
iptChild
.
value
:
iptChild
.
getAttribute
(
"placeholder"
);
document
.
body
.
append
(
textContainer
);
let
containerWidth
=
textContainer
.
offsetWidth
+
50
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
}
this
.
changeSelect
();
}
catch
(
error
)
{
}
},
clickFocus
(
e
)
{
document
.
getElementById
(
e
).
classList
.
toggle
(
'span-ba'
);
}
}
}
}
}
</
script
>
</
script
>
...
@@ -335,6 +461,7 @@ export default {
...
@@ -335,6 +461,7 @@ export default {
padding
:
0
;
padding
:
0
;
}
}
.enterprises
{
.enterprises
{
@import
"@/assets/styles/search-common.scss"
;
.eco-header
{
.eco-header
{
justify-content
:
space-between
;
justify-content
:
space-between
;
height
:
48px
;
height
:
48px
;
...
@@ -377,8 +504,12 @@ export default {
...
@@ -377,8 +504,12 @@ export default {
margin-top
:
12px
;
margin-top
:
12px
;
padding
:
16px
;
padding
:
16px
;
.search
{
.search
{
height
:
34px
;
>
div
{
float
:
left
;
}
::v-deep
.el-cascader
{
::v-deep
.el-cascader
{
width
:
1
8
0px
;
width
:
1
2
0px
;
margin-right
:
12px
;
margin-right
:
12px
;
height
:
34px
;
height
:
34px
;
line-height
:
34px
!
important
;
line-height
:
34px
!
important
;
...
@@ -386,14 +517,20 @@ export default {
...
@@ -386,14 +517,20 @@ export default {
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
.el-input__inner
{
.el-input__inner
{
border
:
0
;
width
:
100%
;
width
:
100%
;
height
:
100%
;
height
:
100%
;
}
}
}
}
.is-focus
{
.el-input__inner
{
background
:
#F4F6F9
;
}
}
.el-cascader__tags
{
.el-cascader__tags
{
flex-wrap
:
inherit
;
flex-wrap
:
inherit
;
.el-tag
{
.el-tag
{
max-width
:
100px
;
/*max-width: 100px;*/
margin
:
5px
0
2px
6px
;
margin
:
5px
0
2px
6px
;
}
}
}
}
...
@@ -456,6 +593,75 @@ export default {
...
@@ -456,6 +593,75 @@ export default {
margin-bottom
:
3px
;
margin-bottom
:
3px
;
}
}
}
}
.normal-search-container
{
margin-left
:
12px
;
display
:
flex
;
align-items
:
center
;
cursor
:
pointer
;
height
:
34px
;
&
:hover
{
&
>
span
{
color
:
#0081ff
;
}
}
&
>
img
{
width
:
16px
;
height
:
16px
;
margin-left
:
12px
;
}
&
>
span
{
color
:
#232323
;
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
font-weight
:
400
;
margin-left
:
8px
;
line-height
:
22px
;
font-size
:
14px
;
}
}
.cooperate-name
{
margin-left
:
12px
;
display
:
flex
;
border-radius
:
2px
;
border
:
1px
solid
#d9d9d9
;
line-height
:
34px
;
height
:
34px
;
float
:
left
;
span
{
width
:
60px
;
height
:
32px
;
line-height
:
32px
;
font-size
:
14px
;
background
:
#f5f5f5
;
text-align
:
center
;
color
:
#0081ff
;
border
:
1px
solid
#efefef
;
border-left
:
0
;
cursor
:
pointer
;
}
&
.span-ba
{
border
:
1px
solid
#0081ff
;
span
{
color
:
#ffffff
;
background
:
#0081ff
;
border
:
1px
solid
#0081ff
;
}
}
::v-deep
.el-input
{
flex
:
1
;
}
::v-deep
.el-input__inner
{
border
:
0
;
line-height
:
32px
;
height
:
32px
;
position
:
absolute
;
top
:
0
;
padding-right
:
28px
;
font-size
:
12px
;
padding-left
:
8px
;
}
}
}
}
.table-item
{
.table-item
{
margin-top
:
14px
;
margin-top
:
14px
;
...
...
dsk-operate-ui/src/views/macro/nationalEconomies/component/qgjjdq.vue
View file @
8140b78c
...
@@ -6,17 +6,18 @@
...
@@ -6,17 +6,18 @@
<span
class=
"common-title"
>
全国经济大全
</span>
<span
class=
"common-title"
>
全国经济大全
</span>
<el-form
ref=
"queryForm"
:model=
"queryParams"
:inline=
"true"
size=
"small"
>
<el-form
ref=
"queryForm"
:model=
"queryParams"
:inline=
"true"
size=
"small"
>
<el-form-item
prop=
"year"
>
<el-form-item
prop=
"year"
>
<el-select
v-model=
"queryParams.year"
filterable
class=
"form-content-width
"
placeholder=
"请选择
"
@
change=
"handleSearch"
:popper-append-to-body=
'false'
>
<el-select
v-model=
"queryParams.year"
filterable
class=
"form-content-width
same-select-com"
placeholder=
"请选择"
:class=
"[`select-adaptive-$
{inputID1}`]
" @change="handleSearch" :popper-append-to-body='false'>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item.year"
:value=
"item.year"
/>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item.year"
:value=
"item.year"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
prop=
"area"
>
<el-form-item
prop=
"area"
>
<el-cascader
<el-cascader
ref=
"address"
ref=
"address"
:class=
"[`select-adaptive-$
{inputID2}`]"
:options="addressList"
:options="addressList"
:props="props"
:props="props"
v-model="queryParams.address"
v-model="queryParams.address"
@
change=
"
handleSearch
"
@change="
iptAdaptive(inputID2,true)
"
placeholder="地区选择"
placeholder="地区选择"
collapse-tags
collapse-tags
clearable>
</el-cascader>
clearable>
</el-cascader>
...
@@ -124,6 +125,7 @@
...
@@ -124,6 +125,7 @@
import
dataRegion
from
'@/assets/json/dataRegion'
import
dataRegion
from
'@/assets/json/dataRegion'
import
economiesDetail
from
'./economies-detail'
import
economiesDetail
from
'./economies-detail'
import
skeleton
from
'../../component/skeleton'
import
skeleton
from
'../../component/skeleton'
import
{
v4
}
from
"uuid"
;
export
default
{
export
default
{
name
:
'NationalEconomies'
,
name
:
'NationalEconomies'
,
components
:
{
components
:
{
...
@@ -149,7 +151,9 @@
...
@@ -149,7 +151,9 @@
tableDataTotal
:
null
,
tableDataTotal
:
null
,
show_page
:
true
,
show_page
:
true
,
MaxPage
:
500
,
MaxPage
:
500
,
isSkeleton
:
true
isSkeleton
:
true
,
inputID1
:
this
.
getUid
(),
inputID2
:
this
.
getUid
()
}
}
},
},
created
()
{
created
()
{
...
@@ -353,7 +357,89 @@
...
@@ -353,7 +357,89 @@
path
:
'/macro/economies'
,
path
:
'/macro/economies'
,
query
:
params
query
:
params
})
})
},
iptAdaptive
(
uid
,
multiple
=
false
)
{
multiple
?
this
.
multipleAdaptiveHandle
(
uid
)
:
this
.
iptAdaptiveHandle
(
uid
);
},
getUid
()
{
return
v4
();
},
// 多选处理
async
multipleAdaptiveHandle
(
uid
)
{
try
{
await
this
.
$nextTick
();
const
dom
=
document
.
querySelector
(
`.select-adaptive-
${
uid
}
`
);
const
iptChild
=
dom
.
querySelector
(
".el-input__inner"
);
if
(
dom
)
{
const
textContainer
=
document
.
createElement
(
"span"
);
const
textName
=
`text-
${
uid
}
`
;
textContainer
.
classList
.
add
(
textName
);
const
selectChildren
=
dom
.
querySelectorAll
(
".el-tag"
);
if
(
selectChildren
.
length
)
{
let
width
=
0
;
selectChildren
.
forEach
(
item
=>
{
const
text
=
item
.
textContent
;
const
itemInfo
=
window
.
getComputedStyle
(
item
);
textContainer
.
style
.
setProperty
(
"visibility"
,
"hidden"
);
textContainer
.
style
.
setProperty
(
"display"
,
"inline-block"
);
textContainer
.
style
.
setProperty
(
"font-size"
,
"14px"
);
textContainer
.
style
.
setProperty
(
"padding"
,
itemInfo
.
padding
);
textContainer
.
style
.
setProperty
(
"box-sizing"
,
"border-box"
);
textContainer
.
textContent
=
text
;
document
.
body
.
append
(
textContainer
);
width
+=
textContainer
.
offsetWidth
+
parseInt
(
itemInfo
.
marginLeft
)
+
parseInt
(
itemInfo
.
marginRight
);
textContainer
.
remove
();
});
dom
.
style
.
setProperty
(
"width"
,
`
${
width
+
20
}
px`
);
this
.
handleSearch
();
return
;
}
textContainer
.
style
.
setProperty
(
"visibility"
,
"hidden"
);
textContainer
.
style
.
setProperty
(
"display"
,
"inline-block"
);
textContainer
.
style
.
setProperty
(
"font-size"
,
"14px"
);
textContainer
.
style
.
setProperty
(
"padding"
,
"0px 8px"
);
textContainer
.
style
.
setProperty
(
"box-sizing"
,
"border-box"
);
textContainer
.
textContent
=
iptChild
.
getAttribute
(
"placeholder"
);
document
.
body
.
append
(
textContainer
);
// let containerWidth = textContainer.offsetWidth + 12 + 8;
let
containerWidth
=
150
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
this
.
handleSearch
();
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
}
},
// 单选处理
async
iptAdaptiveHandle
(
uid
)
{
try
{
await
this
.
$nextTick
();
const
dom
=
document
.
querySelector
(
`.select-adaptive-
${
uid
}
`
);
const
realStyles
=
window
.
getComputedStyle
(
dom
);
if
(
dom
)
{
const
iptChild
=
dom
.
querySelector
(
".el-input__inner"
);
const
textContainer
=
document
.
createElement
(
"span"
);
const
textName
=
`text-
${
uid
}
`
;
textContainer
.
classList
.
add
(
textName
);
textContainer
.
style
.
setProperty
(
"visibility"
,
"hidden"
);
textContainer
.
style
.
setProperty
(
"display"
,
"inline-block"
);
textContainer
.
style
.
setProperty
(
"font-size"
,
"14px"
);
const
hasPadding
=
(
parseInt
(
realStyles
.
paddingLeft
)
||
parseInt
(
realStyles
.
paddingRight
))
?
true
:
false
;
hasPadding
?
textContainer
.
style
.
setProperty
(
"padding"
,
"0px 8px"
)
:
null
;
textContainer
.
style
.
setProperty
(
"box-sizing"
,
"border-box"
);
textContainer
.
textContent
=
iptChild
.
value
?
iptChild
.
value
:
iptChild
.
getAttribute
(
"placeholder"
);
document
.
body
.
append
(
textContainer
);
let
containerWidth
=
textContainer
.
offsetWidth
+
12
+
8
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
}
this
.
handleSearch
();
}
catch
(
error
)
{
}
},
}
}
}
}
</
script
>
</
script
>
...
@@ -361,6 +447,7 @@
...
@@ -361,6 +447,7 @@
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.qgjjdq
{
.qgjjdq
{
@import
"@/assets/styles/search-common.scss"
;
.query-box
{
.query-box
{
margin
:
-8px
0
8px
0
;
margin
:
-8px
0
8px
0
;
.a-link
:hover
{
.a-link
:hover
{
...
@@ -370,15 +457,42 @@
...
@@ -370,15 +457,42 @@
.el-form
{
.el-form
{
margin-left
:
24px
;
margin-left
:
24px
;
}
}
::v-deep
.el-form
{
.el-form-item--small.el-form-item
{
margin-top
:
0
;
margin-bottom
:
0
;
}
.el-form-item
{
height
:
32px
;
}
.el-form-item__content
{
line-height
:
32px
;
}
.el-input
{
line-height
:
32px
;
.el-input__inner
{
height
:
32px
;
line-height
:
32px
;
border-radius
:
4px
;
border
:
0
;
}
}
.is-focus
{
.el-input__inner
{
background
:
#F4F6F9
;
}
}
}
.form-content-width
{
.form-content-width
{
width
:
11
0px
;
width
:
9
0px
;
}
}
::v-deep
.el-cascader
{
::v-deep
.el-cascader
{
width
:
20
0px
;
width
:
18
0px
;
.el-cascader__tags
{
.el-cascader__tags
{
flex-wrap
:
inherit
;
flex-wrap
:
inherit
;
.el-tag
{
.el-tag
{
max-width
:
130px
;
/*max-width: 130px;*/
}
}
}
}
}
}
...
...
dsk-operate-ui/src/views/project/projectList/component/lxr.vue
View file @
8140b78c
...
@@ -343,10 +343,11 @@
...
@@ -343,10 +343,11 @@
companyName
:
""
,
companyName
:
""
,
// accendant:"",
// accendant:"",
}
}
console
.
log
(
this
.
$route
.
query
.
projectname
)
if
(
this
.
thistype
==
'project'
){
if
(
this
.
thistype
==
'project'
){
this
.
queryParam
.
businessId
=
this
.
searchParam
.
businessId
this
.
queryParam
.
businessId
=
this
.
searchParam
.
businessId
this
.
companyName
=
""
this
.
companyName
=
""
this
.
queryParam
.
companyName
=
this
.
$route
.
query
.
projectname
this
.
queryParam
.
companyName
=
''
}
}
if
(
this
.
thistype
==
'custom'
){
if
(
this
.
thistype
==
'custom'
){
this
.
queryParam
.
customerId
=
this
.
searchParam
.
customerId
this
.
queryParam
.
customerId
=
this
.
searchParam
.
customerId
...
...
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