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
68aa5757
Commit
68aa5757
authored
Oct 19, 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
9886a36e
eef9983a
Changes
35
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
1044 additions
and
232 deletions
+1044
-232
CacheConstants.java
...src/main/java/com/dsk/common/constant/CacheConstants.java
+8
-2
JskCombineInfoService.java
.../main/java/com/dsk/jsk/service/JskCombineInfoService.java
+4
-3
EconomicServiceImpl.java
...com/dsk/jsk/service/service/impl/EconomicServiceImpl.java
+3
-3
RedisCache.java
...sk-biz-api/src/main/java/com/dsk/jsk/util/RedisCache.java
+13
-14
MarketAnalysisService.java
...in/java/com/dsk/search/service/MarketAnalysisService.java
+8
-8
search-common.scss
dsk-operate-ui/src/assets/styles/search-common.scss
+2
-2
CustomMoneySelect.vue
dsk-operate-ui/src/views/component/CustomMoneySelect.vue
+3
-3
CustomTimeSelect.vue
dsk-operate-ui/src/views/component/CustomTimeSelect.vue
+3
-3
index.vue
dsk-operate-ui/src/views/custom/customList/index.vue
+15
-12
members.vue
...te-ui/src/views/detail/groupAccount/component/members.vue
+3
-1
performance.vue
...i/src/views/detail/groupAccount/component/performance.vue
+2
-0
zbxmfx.vue
...ate-ui/src/views/detail/groupAccount/component/zbxmfx.vue
+32
-15
zbxmmx.vue
...ate-ui/src/views/detail/groupAccount/component/zbxmmx.vue
+8
-0
HeadFormNew.vue
...ate-ui/src/views/detail/party-a/component/HeadFormNew.vue
+14
-3
Sidebar.vue
...operate-ui/src/views/detail/party-a/component/Sidebar.vue
+1
-1
Tables.vue
dsk-operate-ui/src/views/detail/party-a/component/Tables.vue
+81
-61
index.vue
dsk-operate-ui/src/views/detail/party-a/index.vue
+17
-1
bidding.vue
...i/src/views/detail/party-a/overview/component/bidding.vue
+5
-5
holderinfo.vue
...erate-ui/src/views/detail/party-a/overview/holderinfo.vue
+1
-1
regionalEconomies.vue
...iews/detail/party-a/urbanLnvestment/regionalEconomies.vue
+1
-1
index.vue
dsk-operate-ui/src/views/detail/party-b/index.vue
+4
-4
index.vue
dsk-operate-ui/src/views/index.vue
+167
-22
CustomTimeSelect.vue
...operate-ui/src/views/macro/component/CustomTimeSelect.vue
+1
-2
comparison.vue
...ate-ui/src/views/macro/economies/component/comparison.vue
+6
-1
industrialStructure.vue
...c/views/macro/economies/component/industrialStructure.vue
+6
-1
localEconomy.vue
...e-ui/src/views/macro/economies/component/localEconomy.vue
+19
-14
index.vue
dsk-operate-ui/src/views/macro/enterprises/index.vue
+3
-3
qgjjdq.vue
...ui/src/views/macro/nationalEconomies/component/qgjjdq.vue
+2
-2
tdjy.vue
...e-ui/src/views/macro/nationalEconomies/component/tdjy.vue
+127
-7
zhaobiao.vue
.../src/views/macro/nationalEconomies/component/zhaobiao.vue
+125
-4
zhongbiao.vue
...src/views/macro/nationalEconomies/component/zhongbiao.vue
+131
-7
index.vue
dsk-operate-ui/src/views/market/index.vue
+1
-1
xgqy.vue
...erate-ui/src/views/project/projectList/component/xgqy.vue
+106
-3
zlwd.vue
...erate-ui/src/views/project/projectList/component/zlwd.vue
+105
-5
index.vue
dsk-operate-ui/src/views/radar/index.vue
+17
-17
No files found.
dsk-common/src/main/java/com/dsk/common/constant/CacheConstants.java
View file @
68aa5757
...
...
@@ -28,9 +28,9 @@ public interface CacheConstants {
public
static
final
String
DATA_UIPGROUPDATA
=
"data:uipGroupData"
;
/**
*
查甲方 菜单选线
*
用户 位置信息
*/
public
static
final
String
PERSONAL_LOCATION
=
"personal:location"
;
public
static
final
String
PERSONAL_LOCATION
=
"personal:location
:
"
;
/**
* 查甲方 财务数据
...
...
@@ -42,4 +42,10 @@ public interface CacheConstants {
* 全国经济大全-默认
*/
public
static
final
String
DATA_ECONOMIC
=
"data:economic"
;
/**
* 查集团户-集团统计信息
*/
public
static
final
String
DATA_COMBINE
=
"data:combine:"
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/service/JskCombineInfoService.java
View file @
68aa5757
...
...
@@ -11,6 +11,7 @@ import com.dsk.common.core.domain.R;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.common.exception.ServiceException
;
import
com.dsk.common.utils.DskOpenApiUtil
;
import
com.dsk.common.utils.JsonUtils
;
import
com.dsk.common.utils.StringUtils
;
import
com.dsk.jsk.domain.JskCombineBidPageDto
;
import
com.dsk.jsk.domain.JskCombineCertificateDto
;
...
...
@@ -248,9 +249,9 @@ public class JskCombineInfoService {
*@date: 2023/9/12 16:05
*/
public
R
memberCount
(
JskCombineCountDto
dto
)
{
String
redisKey
=
CacheConstants
.
PERSONAL_LOCATION
+
dto
.
getCombineId
();
String
redisKey
=
CacheConstants
.
DATA_COMBINE
+
dto
.
getCombineId
();
if
(
ObjectUtil
.
isNotEmpty
(
redisKey
))
{
Map
<
String
,
Object
>
cacheMap
=
redisCache
.
getCacheObject
(
redisKey
);
Map
<
String
,
Object
>
cacheMap
=
JsonUtils
.
parseObject
(
redisCache
.
getCacheObject
(
redisKey
),
Map
.
class
);
if
(
MapUtils
.
isNotEmpty
(
cacheMap
))
{
return
R
.
ok
(
cacheMap
);
}
...
...
@@ -263,7 +264,7 @@ public class JskCombineInfoService {
Map
<
String
,
Object
>
data
=
BeanUtil
.
beanToMap
(
map
.
get
(
"data"
));
data
.
put
(
"performance"
,
businessCount
(
paramsMap
));
map
.
put
(
"data"
,
data
);
redisCache
.
setCacheObject
(
redisKey
,
data
,
24
,
TimeUnit
.
HOURS
);
redisCache
.
setCacheObject
(
redisKey
,
JsonUtils
.
toJsonString
(
data
),
24
,
TimeUnit
.
HOURS
);
}
return
BeanUtil
.
toBean
(
map
,
R
.
class
);
}
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/service/service/impl/EconomicServiceImpl.java
View file @
68aa5757
...
...
@@ -8,6 +8,7 @@ import com.dsk.common.core.domain.AjaxResult;
import
com.dsk.common.helper.LoginHelper
;
import
com.dsk.common.utils.DateUtils
;
import
com.dsk.common.utils.DskOpenApiUtil
;
import
com.dsk.common.utils.JsonUtils
;
import
com.dsk.jsk.domain.*
;
import
com.dsk.jsk.domain.bo.*
;
import
com.dsk.jsk.service.service.EconomicService
;
...
...
@@ -81,7 +82,7 @@ public class EconomicServiceImpl implements EconomicService {
String
redisKey
=
CacheConstants
.
PERSONAL_LOCATION
+
userId
;
if
(
ObjectUtil
.
isEmpty
(
detailsDto
.
getProvinceId
())
&&
ObjectUtil
.
isEmpty
(
detailsDto
.
getCityId
())
&&
ObjectUtil
.
isEmpty
(
detailsDto
.
getAreaId
()))
{
if
(
ObjectUtil
.
isNotEmpty
(
redisKey
))
{
Map
<
String
,
Object
>
cacheMap
=
redisCache
.
getCacheMap
(
redisKey
);
Map
<
Object
,
Object
>
cacheMap
=
JsonUtils
.
parseObject
(
redisCache
.
getCacheObject
(
redisKey
),
Map
.
class
);
if
(
MapUtils
.
isNotEmpty
(
cacheMap
))
{
return
AjaxResult
.
success
(
cacheMap
);
}
...
...
@@ -93,10 +94,9 @@ public class EconomicServiceImpl implements EconomicService {
if
(!
code
.
equals
(
HttpStatus
.
OK
.
value
()))
{
throw
new
RuntimeException
();
}
Map
data
=
MapUtils
.
getMap
(
map
,
"data"
,
null
);
if
(
ObjectUtil
.
isNotEmpty
(
detailsDto
.
getProvinceId
())
||
ObjectUtil
.
isNotEmpty
(
detailsDto
.
getCityId
())
||
ObjectUtil
.
isNotEmpty
(
detailsDto
.
getAreaId
()))
{
redisCache
.
setCache
Map
(
redisKey
,
data
);
redisCache
.
setCache
Object
(
redisKey
,
JsonUtils
.
toJsonString
(
data
)
);
}
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/util/RedisCache.java
View file @
68aa5757
...
...
@@ -7,10 +7,7 @@ import java.util.Map;
import
java.util.Set
;
import
java.util.concurrent.TimeUnit
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.BoundSetOperations
;
import
org.springframework.data.redis.core.HashOperations
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.data.redis.core.*
;
import
org.springframework.stereotype.Component
;
/**
...
...
@@ -25,15 +22,18 @@ public class RedisCache
@Autowired
public
RedisTemplate
redisTemplate
;
@Autowired
public
StringRedisTemplate
stringRedisTemplate
;
/**
* 缓存基本的对象,Integer、String、实体类等
*
* @param key 缓存的键值
* @param value 缓存的值
*/
public
<
T
>
void
setCacheObject
(
final
String
key
,
final
T
value
)
public
<
T
>
void
setCacheObject
(
final
String
key
,
final
String
value
)
{
r
edisTemplate
.
opsForValue
().
set
(
key
,
value
);
stringR
edisTemplate
.
opsForValue
().
set
(
key
,
value
);
}
/**
...
...
@@ -44,9 +44,9 @@ public class RedisCache
* @param timeout 时间
* @param timeUnit 时间颗粒度
*/
public
<
T
>
void
setCacheObject
(
final
String
key
,
final
T
value
,
final
Integer
timeout
,
final
TimeUnit
timeUnit
)
public
<
T
>
void
setCacheObject
(
final
String
key
,
final
String
value
,
final
Integer
timeout
,
final
TimeUnit
timeUnit
)
{
r
edisTemplate
.
opsForValue
().
set
(
key
,
value
,
timeout
,
timeUnit
);
stringR
edisTemplate
.
opsForValue
().
set
(
key
,
value
,
timeout
,
timeUnit
);
}
/**
...
...
@@ -102,10 +102,9 @@ public class RedisCache
* @param key 缓存键值
* @return 缓存键值对应的数据
*/
public
<
T
>
T
getCacheObject
(
final
String
key
)
public
String
getCacheObject
(
final
String
key
)
{
ValueOperations
<
String
,
T
>
operation
=
redisTemplate
.
opsForValue
();
return
operation
.
get
(
key
);
return
stringRedisTemplate
.
opsForValue
().
get
(
key
);
}
/**
...
...
@@ -191,7 +190,7 @@ public class RedisCache
public
<
T
>
void
setCacheMap
(
final
String
key
,
final
Map
<
String
,
T
>
dataMap
)
{
if
(
dataMap
!=
null
)
{
r
edisTemplate
.
opsForHash
().
putAll
(
key
,
dataMap
);
stringR
edisTemplate
.
opsForHash
().
putAll
(
key
,
dataMap
);
}
}
...
...
@@ -201,9 +200,9 @@ public class RedisCache
* @param key
* @return
*/
public
<
T
>
Map
<
String
,
T
>
getCacheMap
(
final
String
key
)
public
<
T
>
Map
<
Object
,
Object
>
getCacheMap
(
final
String
key
)
{
return
r
edisTemplate
.
opsForHash
().
entries
(
key
);
return
stringR
edisTemplate
.
opsForHash
().
entries
(
key
);
}
/**
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/search/service/MarketAnalysisService.java
View file @
68aa5757
...
...
@@ -124,14 +124,14 @@ public class MarketAnalysisService {
public
AjaxResult
combineRecentlyBid
(
JSONObject
object
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/marketAnalysis/combine/recentlyBid"
,
object
);
if
(!
ObjectUtils
.
isEmpty
(
map
.
get
(
"data"
)))
{
List
<
Map
<
String
,
Object
>>
list
=
(
List
<
Map
<
String
,
Object
>>)
map
.
get
(
"data"
);
list
.
parallelStream
().
forEach
(
res
->
{
Integer
companyId
=
MapUtils
.
getInteger
(
res
,
"tendereeId"
);
String
companyName
=
MapUtils
.
getString
(
res
,
"tenderee"
);
res
.
put
(
"uipId"
,
enterpriseService
.
getUipIdByCompanyNameOrCompanyId
(
companyName
,
companyId
));
});
}
//
if (!ObjectUtils.isEmpty(map.get("data"))) {
//
List<Map<String, Object>> list = (List<Map<String, Object>>) map.get("data");
//
list.parallelStream().forEach(res -> {
//
Integer companyId = MapUtils.getInteger(res, "tendereeId");
//
String companyName = MapUtils.getString(res, "tenderee");
//
res.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, companyId));
//
});
//
}
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
...
...
dsk-operate-ui/src/assets/styles/search-common.scss
View file @
68aa5757
::v-deep
.head-form-new
{
margin
-bottom
:
8px
;
padding
-bottom
:
8px
;
.query-box
{
.from-item
{
display
:
flex
;
...
...
@@ -25,7 +25,7 @@
}
}
.el-cascader__tags
{
.el-cascader__tags
,
.el-select__tags
{
.el-tag
{
max-width
:
unset
!
important
;
}
...
...
dsk-operate-ui/src/views/component/CustomMoneySelect.vue
View file @
68aa5757
<
template
>
<div
:ref=
"refStr"
class=
"custom-money-select screen-popper"
id=
"custom-money-select"
>
<div
:ref=
"refStr"
class=
"custom-money-select
1
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
>
...
...
@@ -238,8 +238,8 @@ export default {
</
script
>
<
style
lang=
"scss"
>
.custom-money-select
{
width
:
1
20
px
;
.custom-money-select
1
{
width
:
1
06
px
;
height
:
34px
;
position
:
relative
;
.rote
{
...
...
dsk-operate-ui/src/views/component/CustomTimeSelect.vue
View file @
68aa5757
<
template
>
<div
:ref=
"refStr"
class=
"custom-time-select screen-popper"
id=
"custom-time-select"
>
<div
:ref=
"refStr"
class=
"custom-time-select
1
screen-popper"
id=
"custom-time-select"
>
<div
:class=
"['input-block', isSelectOption?'rote':'']"
>
<div
class=
"block"
@
click=
"isSelectOption=!isSelectOption"
@
mouseenter=
"handleMouseenter"
@
mouseleave=
"handleMouseleave"
>
<el-input
class=
"custom-time-input"
v-model=
"value"
:placeholder=
"placeholder"
readonly
>
...
...
@@ -244,8 +244,8 @@ export default {
</
script
>
<
style
lang=
"scss"
>
.custom-time-select
{
width
:
120px
;
.custom-time-select
1
{
width
:
90px
!
important
;
height
:
34px
;
.rote
{
...
...
dsk-operate-ui/src/views/custom/customList/index.vue
View file @
68aa5757
...
...
@@ -845,24 +845,27 @@
padding-top
:
16px
;
width
:
100%
;
height
:
100%
;
::v-deep
.el-form
{
.el-input
{
line-height
:
32px
;
.el-input__inner
{
height
:
32px
;
.table_search
{
::v-deep
.el-form
{
.el-input
{
line-height
:
32px
;
border-radius
:
4px
;
border
:
0
;
.el-input__inner
{
height
:
32px
;
line-height
:
32px
;
border-radius
:
4px
;
border
:
0
;
}
}
}
.is-focus
{
.el-input__inner
{
background
:
#F4F6F9
;
.is-focus
{
.el-input__inner
{
background
:
#F4F6F9
;
}
}
}
}
}
}
.box
{
position
:
relative
;
...
...
dsk-operate-ui/src/views/detail/groupAccount/component/members.vue
View file @
68aa5757
...
...
@@ -6,6 +6,7 @@
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:headerFixed=
"true"
:isExcel=
"false"
@
handle-search=
"handleSearch"
>
...
...
@@ -53,6 +54,7 @@
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:headerFixed=
"true"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
:MaxPage=
500
...
...
@@ -456,7 +458,7 @@
font-size
:
14px
;
font-weight
:
400
;
line-height
:
32px
;
color
:
#999999
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
)
;
margin-right
:
8px
;
text-align
:
center
;
width
:
70px
;
...
...
dsk-operate-ui/src/views/detail/groupAccount/component/performance.vue
View file @
68aa5757
...
...
@@ -6,6 +6,7 @@
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:headerFixed=
"true"
:isExcel=
"true"
@
handle-search=
"handleSearch"
@
handle-excel=
"clickEXCEL"
...
...
@@ -21,6 +22,7 @@
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:headerFixed=
"true"
:MaxPage=
500
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
...
...
dsk-operate-ui/src/views/detail/groupAccount/component/zbxmfx.vue
View file @
68aa5757
<
template
>
<div
class=
"performance"
>
<div
class=
"content"
>
<head-form
<head-form
-new
ref=
"headForm"
title=
"集团施工项目最新招标"
:form-data=
"formData"
...
...
@@ -9,7 +9,7 @@
@
handle-search=
"handleSearch"
:slots=
"true"
:isExcel=
"false"
></head-form>
></head-form
-new
>
<span
class=
"check"
@
click=
"check"
>
查看集团招标
<i
class=
"el-icon-arrow-right"
></i></span>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<div
class=
"table-item"
v-if=
"!isSkeleton && tableData.length >0"
>
...
...
@@ -23,7 +23,7 @@
<el-table-column
label=
"发布日期"
prop=
"issueTime"
width=
"100"
></el-table-column>
<el-table-column
label=
"招标成员"
prop=
"tenderee"
min-width=
"220"
>
<
template
slot-scope=
"scope"
>
<
router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.tendereeId)}`:`/company/${encodeStr(scope.row.tendereeId)}`" tag="a" class="a-link" v-if="scope.row.tendereeId
&&
scope.row.tenderee" v-html="scope.row.tenderee">
</router-link
>
<
span
@
click=
"getUipIdByCid(scope.row.tendereeId)"
style=
"cursor: pointer;"
class=
"a-link"
v-if=
"scope.row.tendereeId&&scope.row.tenderee"
v-html=
"scope.row.tenderee"
></span
>
<div
v-else
v-html=
"scope.row.tenderee || '--'"
></div>
</
template
>
</el-table-column>
...
...
@@ -88,7 +88,7 @@
</div>
<div
class=
"content"
>
<head-form
title=
"集团施工项目发包金额
区间
"
title=
"集团施工项目发包金额"
:form-data=
"[]"
:query-params=
"{}"
:slots=
"true"
...
...
@@ -100,7 +100,7 @@
clearable
@
change=
"changeSelect1"
class=
"form-content-width"
style=
"width:
8
0px"
>
style=
"width:
10
0px"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
</el-select>
</div>
...
...
@@ -139,7 +139,7 @@
clearable
@
change=
"changeSelect2"
class=
"form-content-width"
style=
"width:
8
0px"
>
style=
"width:
10
0px"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
</el-select>
</div>
...
...
@@ -153,7 +153,7 @@
<div
class=
"table-item"
>
<el-table
class=
"fixed-table"
:data=
"lxtjList"
border
max-height=
"270"
>
<el-table-column
label=
"项目类型"
prop=
"type"
min-width=
"70"
></el-table-column>
<el-table-column
label=
"发包数量"
prop=
"count"
width=
"
12
0"
>
<el-table-column
label=
"发包数量"
prop=
"count"
width=
"
9
0"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
count
}}{{
scope
.
row
.
count
?
'个'
:
''
}}
</
template
>
...
...
@@ -189,7 +189,7 @@
clearable
@
change=
"changeSelect3"
class=
"form-content-width"
style=
"width:
8
0px"
>
style=
"width:
10
0px"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
</el-select>
</div>
...
...
@@ -216,14 +216,15 @@
</el-row>
</div>
<div
class=
"content"
>
<head-form
<head-form-new
ref=
"headForm1"
title=
"历史发包项目金额TOP10"
:form-data=
"formData1"
:query-params=
"queryParams1"
@
handle-search=
"handleSearch1"
:slots=
"true"
:isExcel=
"false"
></head-form>
></head-form
-new
>
<skeleton
v-if=
"isSkeleton6"
style=
"padding: 16px"
></skeleton>
<div
class=
"table-item"
v-if=
"!isSkeleton6 && peojectTopData.length > 0"
>
<el-table
class=
"fixed-table"
:data=
"peojectTopData"
border
max-height=
"235"
>
...
...
@@ -242,7 +243,7 @@
<el-table-column
label=
"项目类型"
prop=
"projectTypeNew"
width=
"100"
></el-table-column>
<el-table-column
label=
"招标成员"
prop=
"projectUnit"
min-width=
"250"
>
<
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
:to="scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.projectUnitId)}`:`/company/${encodeStr(scope.row.projectUnitId)}`"
>
<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>
<div
v-else
v-html=
"scope.row.projectUnit || '--'"
></div>
</
template
>
</el-table-column>
...
...
@@ -274,6 +275,7 @@
import
mixin
from
'../../party-a/mixins/mixin'
import
{
recentlyBid
,
bidByYear
,
groupByMoney
,
groupByType
,
groupByLowerRate
,
peojectTop
}
from
'@/api/detail/groupAccount/groupAccount'
import
{
getDictType
}
from
'@/api/main'
import
{
getUipIdByCid
}
from
'@/api/macro/macro'
export
default
{
name
:
'qualifications'
,
props
:
[
'customerId'
],
...
...
@@ -288,14 +290,14 @@
combineId
:
this
.
customerId
,
},
formData
:
[
{
type
:
4
,
fieldName
:
'type'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[],
width
:
150
,
uid
:
this
.
getUid
()},
{
type
:
4
,
fieldName
:
'type'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[],
uid
:
this
.
getUid
()},
{
type
:
1
,
fieldName
:
'cgbl'
,
value
:
''
,
placeholder
:
'持股比例'
,
options
:
[],
width
:
110
,
uid
:
this
.
getUid
()},
{
type
:
1
,
fieldName
:
'year'
,
value
:
'2023年'
,
placeholder
:
'年份'
,
options
:
[],
width
:
100
,
uid
:
this
.
getUid
()},
{
type
:
1
,
fieldName
:
'year'
,
value
:
'2023年'
,
placeholder
:
'
选择
年份'
,
options
:
[],
width
:
100
,
uid
:
this
.
getUid
()},
],
formData1
:
[
{
type
:
4
,
fieldName
:
'type'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[],
width
:
150
,
uid
:
this
.
getUid
()},
{
type
:
4
,
fieldName
:
'type'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[],
uid
:
this
.
getUid
()},
{
type
:
1
,
fieldName
:
'cgbl'
,
value
:
''
,
placeholder
:
'持股比例'
,
options
:
[],
width
:
110
,
uid
:
this
.
getUid
()},
{
type
:
1
,
fieldName
:
'year'
,
value
:
'2023年'
,
placeholder
:
'年份'
,
options
:
[],
width
:
100
,
uid
:
this
.
getUid
()},
{
type
:
1
,
fieldName
:
'year'
,
value
:
'2023年'
,
placeholder
:
'
选择
年份'
,
options
:
[],
width
:
100
,
uid
:
this
.
getUid
()},
],
cgblList
:
[
{
name
:
'100%'
,
value
:
'100%'
},
...
...
@@ -351,6 +353,21 @@
this
.
getPeojectTop
()
},
methods
:
{
getUipIdByCid
(
companyId
){
var
params
=
[
companyId
]
getUipIdByCid
(
params
).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
data
&&
res
.
data
.
length
>
0
&&
res
.
data
[
0
].
uipId
){
this
.
$router
.
push
({
path
:
'/enterprise/'
+
this
.
encodeStr
(
companyId
)})
}
else
{
this
.
$router
.
push
({
path
:
'/company/'
+
this
.
encodeStr
(
companyId
)})
}
}
}).
catch
(
error
=>
{
});
},
yearsData
(){
let
mydate
=
new
Date
();
let
Year
=
mydate
.
getFullYear
();
...
...
dsk-operate-ui/src/views/detail/groupAccount/component/zbxmmx.vue
View file @
68aa5757
...
...
@@ -379,6 +379,14 @@
border-radius
:
4px
;
padding
:
16px
;
height
:
calc
(
100%
-
64px
);
::v-deep
.el-table__header-wrapper
{
position
:
sticky
;
top
:
64px
!
important
;
z-index
:
9
;
}
.headForm
{
margin-bottom
:
14px
;
.common-title
{
...
...
dsk-operate-ui/src/views/detail/party-a/component/HeadFormNew.vue
View file @
68aa5757
<
template
>
<div
class=
"head-form-new"
>
<div
class=
"head-form-new"
:class=
"headerFixed ? 'headerFixed':''"
>
<div
class=
"common-title"
v-if=
"title"
>
{{
title
}}
</div>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
...
...
@@ -109,6 +109,10 @@ export default {
type
:
Number
,
default
:
0
},
headerFixed
:
{
type
:
Boolean
,
default
:
false
},
isExcel
:
{
type
:
Boolean
,
default
:
false
...
...
@@ -280,10 +284,17 @@ export default {
::v-deep
.el-popper
[
x-placement
^=
"bottom"
]
{
margin-top
:
5px
;
}
.headerFixed
{
position
:
sticky
;
top
:
0
;
z-index
:
9
;
padding-top
:
16px
;
margin-top
:
-16px
;
background
:
#fff
;
}
.head-form-new
{
display
:
flex
;
flex-direction
:
column
;
margin-bottom
:
14px
;
.common-title
{
margin-bottom
:
8px
;
}
...
...
@@ -432,7 +443,7 @@ export default {
::v-deep
.el-select__tags
{
.el-tag
{
&
:first-child
{
/
/width: 100%;
/
*width: 100%;*/
}
}
}
...
...
dsk-operate-ui/src/views/detail/party-a/component/Sidebar.vue
View file @
68aa5757
<
template
>
<div
id=
"detailPart"
class=
"sides-container"
:style=
"sideHeight?'height:'+sideHeight+'px':''"
>
<div
id=
"detailPart"
class=
"sides-container"
>
<el-input
placeholder=
"搜索"
class=
"side-input"
v-model=
"searchText"
clearable
@
input=
"handleSearch(true)"
@
keyup
.
enter
.
native=
"handleSearch()"
>
<i
slot=
"prefix"
class=
"el-input__icon el-icon-search"
@
click=
"handleSearch()"
></i>
</el-input>
...
...
dsk-operate-ui/src/views/detail/party-a/component/Tables.vue
View file @
68aa5757
<
template
>
<div
class=
"Tables"
>
<div
class=
"table-item"
>
<el-table
v-if=
"tableDataTotal>0"
class=
"fixed-table"
<el-table
v-if=
"tableDataTotal>0"
class=
"fixed-table"
:class=
"headerFixed ? 'headerFixed':''"
v-loading=
"tableLoading"
:data=
"tableData"
element-loading-text=
"Loading"
ref=
"tableRef"
v-horizontal-scroll=
"'hover'"
border
fit
highlight-current-row
...
...
@@ -86,6 +87,10 @@ export default {
type
:
Boolean
,
default
:
true
},
headerFixed
:
{
type
:
Boolean
,
default
:
false
},
indexFixed
:
{
type
:
Boolean
,
default
:
false
...
...
@@ -172,71 +177,86 @@ export default {
</
script
>
<
style
lang=
"scss"
scoped
>
::v-deep
.el-table__body
tr
.current-row
>
td
.el-table__cell
{
background-color
:
#ffffff
;
}
/*::v-deep .el-table__fixed{
height: calc(100% - 16px) !important;
}*/
.Tables
{
::v-deep
.el-table__body
tr
.current-row
>
td
.el-table__cell
{
background-color
:
#ffffff
;
}
/*::v-deep .el-table__fixed{
height: calc(100% - 16px) !important;
}*/
::v-deep
.el-table__row
{
&
:nth-child
(
even
)
{
background-color
:
#F9FCFF
;
.more
{
background
:
#F8FBFF
;
span
{
color
:
#0081FF
;
::v-deep
.el-table__row
{
&
:nth-child
(
even
)
{
background-color
:
#F9FCFF
;
.more
{
background
:
#F8FBFF
;
span
{
color
:
#0081FF
;
}
}
}
&
:nth-child
(
odd
)
{
.more
{
span
{
color
:
#0081FF
;
}
}
}
}
}
&
:nth-child
(
odd
)
{
.more
{
span
{
color
:
#0081FF
;
.table-item
{
::v-deep
.el-table
td
.el-table__cell
{
border-bottom
:
0
;
}
}
::v-deep
.el-table
th
.el-table__cell.is-leaf
,
::v-deep
.el-table
td
.el-table__cell
{
border-bottom
:
1px
solid
#E6EAF1
;
}
::v-deep
.el-table--border
.el-table__cell
{
border-right
:
1px
solid
#E6EAF1
;
}
::v-deep
.el-table__body
tr
.hover-row.current-row
>
td
,
::v-deep
.el-table__body
tr
.hover-row.el-table__row--striped.current-row
>
td
,
::v-deep
.el-table__body
tr
.hover-row.el-table__row--striped
>
td
,
::v-deep
.el-table__body
tr
.hover-row
>
td
{
background-color
:
#DCEBFF
!
important
;
.more
{
background
:
#DCEBFF
;
}
}
}
}
.table-item
{
::v-deep
.el-table
td
.el-table__cell
{
border-bottom
:
0
;
}
}
::v-deep
.el-table
th
.el-table__cell.is-leaf
,
::v-deep
.el-table
td
.el-table__cell
{
border-bottom
:
1px
solid
#E6EAF1
;
}
::v-deep
.el-table--border
.el-table__cell
{
border-right
:
1px
solid
#E6EAF1
;
}
::v-deep
.el-table__body
tr
.hover-row.current-row
>
td
,
::v-deep
.el-table__body
tr
.hover-row.el-table__row--striped.current-row
>
td
,
::v-deep
.el-table__body
tr
.hover-row.el-table__row--striped
>
td
,
::v-deep
.el-table__body
tr
.hover-row
>
td
{
background-color
:
#DCEBFF
!
important
;
.more
{
background
:
#DCEBFF
;
}
}
::v-deep
.el-table--enable-row-hover
.el-table__body
tr
:hover
>
td
{
background-color
:
#DCEBFF
;
}
::v-deep
.fixed-table
{
overflow
:
visible
;
}
::v-deep
.el-table__header-wrapper
{
position
:
sticky
;
top
:
0
;
z-index
:
9
;
}
::v-deep
.el-table__fixed-header-wrapper
{
position
:
sticky
;
z-index
:
9
;
top
:
0
;
}
.headerFixed
{
::v-deep
.el-table__header-wrapper
{
position
:
sticky
;
top
:
80px
;
z-index
:
9
;
}
::v-deep
.el-table__fixed-header-wrapper
{
position
:
sticky
;
z-index
:
9
;
top
:
80px
;
}
}
::v-deep
.el-table__fixed
{
overflow-x
:
clip
;
overflow-y
:
clip
;
}
::v-deep
.el-table--enable-row-hover
.el-table__body
tr
:hover
>
td
{
background-color
:
#DCEBFF
;
}
::v-deep
.fixed-table
{
overflow
:
visible
;
}
::v-deep
.el-table__header-wrapper
{
position
:
sticky
;
top
:
56px
;
z-index
:
9
;
}
::v-deep
.el-table__fixed-header-wrapper
{
position
:
sticky
;
z-index
:
9
;
top
:
56px
;
}
::v-deep
.el-table__fixed
{
overflow-x
:
clip
;
overflow-y
:
clip
;
}
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/index.vue
View file @
68aa5757
...
...
@@ -383,15 +383,31 @@ export default {
}
.part-main
{
margin-top
:
12px
;
width
:
100%
;
height
:
calc
(
100vh
-
155px
);
overflow-y
:
auto
;
align-items
:
initial
;
}
.part-left
{
margin-right
:
16px
;
padding-bottom
:
16px
;
position
:
fixed
;
background
:
#FFFFFF
;
width
:
144px
;
}
.part-right
{
min-width
:
1088px
;
width
:
100%
;
background
:
#
ffffff
;
background
:
#
FFFFFF
;
border-radius
:
4px
;
margin-left
:
160px
;
::v-deep
.el-table__header-wrapper
{
position
:
sticky
;
top
:
0
;
z-index
:
9
;
}
#groupBox
{
height
:
100%
;
}
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/overview/component/bidding.vue
View file @
68aa5757
...
...
@@ -42,7 +42,7 @@
<no-data
/>
</div>
</
template
>
</div>
<div
class=
"bid-ywwl"
>
<div
class=
"common-title"
>
业务往来供应商TOP5
</div>
...
...
@@ -69,15 +69,15 @@
</
template
>
</el-table-column>
<el-table-column
width=
"1
6
0"
width=
"1
4
0"
align=
"right"
label=
"合作次数"
>
<
template
slot-scope=
"scope"
>
<span
style=
"padding-right: 86px;"
>
{{
scope
.
row
.
count
}}
</span>
<span>
{{
scope
.
row
.
count
}}
</span>
</
template
>
</el-table-column>
<el-table-column
width=
"1
6
0"
width=
"1
8
0"
align=
"right"
label=
"合作总金额(万元)"
>
<
template
slot-scope=
"scope"
>
...
...
@@ -337,5 +337,5 @@ export default {
::deep
.el-table
::before
{
display
:
none
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/overview/holderinfo.vue
View file @
68aa5757
...
...
@@ -116,7 +116,7 @@ export default {
background
:
#FFFFFF
;
border-radius
:
4px
;
.detail-tab
{
margin
:
-
3
4px
0
0
-16px
;
margin
:
-
1
4px
0
0
-16px
;
::v-deep
.el-tabs__nav-wrap
::after
{
display
:
none
;
}
...
...
dsk-operate-ui/src/views/detail/party-a/urbanLnvestment/regionalEconomies.vue
View file @
68aa5757
...
...
@@ -327,7 +327,7 @@ export default {
.head-form-new
{
.common-title
{
margin
-bottom
:
8px
;
padding
-bottom
:
8px
;
}
.query-box
{
margin
:
0px
;
...
...
dsk-operate-ui/src/views/detail/party-b/index.vue
View file @
68aa5757
...
...
@@ -59,16 +59,16 @@
if
(
this
.
$route
.
name
==
'Company'
){
//企业详情
if
(
this
.
$route
.
query
.
html
){
if
(
this
.
$route
.
query
.
type
){
this
.
src
=
`
${
this
.
domain
}
/enterprise/
${
this
.
$route
.
params
.
id
}
/
${
this
.
$route
.
query
.
html
}
?flag=true&type=
${
this
.
$route
.
query
.
type
}
&ak=
${
this
.
ak
}
&initTime=
${
new
Date
().
getTime
()}
&uid=
${
this
.
ak
}
`
this
.
src
=
`
${
this
.
domain
}
/enterprise/
${
this
.
$route
.
params
.
id
}
/
${
this
.
$route
.
query
.
html
}
?flag=true&type=
${
this
.
$route
.
query
.
type
}
&ak=
${
this
.
ak
}
&initTime=
${
new
Date
().
getTime
()}
&uid=
${
this
.
ak
}
&origin=
${
window
.
location
.
origin
}
`
}
else
{
this
.
src
=
`
${
this
.
domain
}
/enterprise/
${
this
.
$route
.
params
.
id
}
/
${
this
.
$route
.
query
.
html
}
?ak=
${
this
.
ak
}
&initTime=
${
new
Date
().
getTime
()}
&uid=
${
this
.
ak
}
`
this
.
src
=
`
${
this
.
domain
}
/enterprise/
${
this
.
$route
.
params
.
id
}
/
${
this
.
$route
.
query
.
html
}
?ak=
${
this
.
ak
}
&initTime=
${
new
Date
().
getTime
()}
&uid=
${
this
.
ak
}
&origin=
${
window
.
location
.
origin
}
`
}
}
else
{
this
.
src
=
`
${
this
.
domain
}
/enterprise/
${
this
.
$route
.
params
.
id
}
?ak=
${
this
.
ak
}
&initTime=
${
new
Date
().
getTime
()}
&uid=
${
this
.
ak
}
`
this
.
src
=
`
${
this
.
domain
}
/enterprise/
${
this
.
$route
.
params
.
id
}
?ak=
${
this
.
ak
}
&initTime=
${
new
Date
().
getTime
()}
&uid=
${
this
.
ak
}
&origin=
${
window
.
location
.
origin
}
`
}
}
if
(
this
.
$route
.
name
==
'Personnel'
){
//人员详情
this
.
src
=
`
${
this
.
domain
}
/personnel/
${
this
.
$route
.
params
.
id
}
.html?ak=
${
this
.
ak
}
&initTime=
${
new
Date
().
getTime
()}
&uid=
${
this
.
ak
}
`
this
.
src
=
`
${
this
.
domain
}
/personnel/
${
this
.
$route
.
params
.
id
}
.html?ak=
${
this
.
ak
}
&initTime=
${
new
Date
().
getTime
()}
&uid=
${
this
.
ak
}
&origin=
${
window
.
location
.
origin
}
`
}
}
this
.
refreshtoken
()
...
...
dsk-operate-ui/src/views/index.vue
View file @
68aa5757
...
...
@@ -30,12 +30,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"
@
change=
"changeSelect1"
clearable
placeholder=
"项目地区"
style=
"width: 120px;
"
>
<el-select
v-model=
"queryParams.address"
:class=
"[`select-adaptive-$
{inputID1}`]" @change="iptAdaptive(inputID1,'','changeSelect1')" clearable placeholder="项目地区
">
<el-option
v-for=
"(item,index) in addressList"
:key=
"index"
:label=
"item.label"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
prop=
"type"
>
<el-select
v-model=
"queryParams.type"
@
change=
"
changeSelect1"
multiple
collapse-tags
clearable
placeholder=
"项目类型"
:class=
"queryParams.type.length > 1 ? 'selectTag' : ''"
style=
"width: 140px;
"
>
<el-select
v-model=
"queryParams.type"
@
change=
"
iptAdaptive(inputID2,true,'changeSelect1')"
:class=
"[`select-adaptive-$
{inputID2}`,queryParams.type.length > 1 ? 'selectTag' : '']" multiple collapse-tags clearable placeholder="项目类型
">
<el-option
v-for=
"(item,index) in projectType"
:key=
"index"
:label=
"item"
:value=
"item"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -43,9 +43,10 @@
<custom-time-select
:timeList=
"timeList"
v-model=
"queryParams.time"
:class=
"[`select-adaptive-$
{inputID3}`]"
timeValue="近七天"
placeholder="中标日期"
@
handle-search=
"
changeSelect1
"
/>
@handle-search="
iptAdaptive(inputID3,'','changeSelect1')
"/>
</el-form-item>
</el-form>
</div>
...
...
@@ -103,16 +104,17 @@
<custom-money-select
:moneyList=
"moneyList"
v-model=
"queryParams1.money"
:class=
"[`select-adaptive-${inputID4}`]"
placeholder=
"中标金额"
@
handle-search=
"
changeSelect2
"
/>
@
handle-search=
"
iptAdaptive(inputID4,'','changeSelect2')
"
/>
</el-form-item>
<el-form-item
prop=
"address"
>
<el-select
v-model=
"queryParams1.address"
@
change=
"changeSelect2"
clearable
placeholder=
"项目地区"
style=
"width: 120px;
"
>
<el-select
v-model=
"queryParams1.address"
:class=
"[`select-adaptive-${inputID5}`]"
@
change=
"iptAdaptive(inputID5,true,'changeSelect2')"
clearable
placeholder=
"项目地区
"
>
<el-option
v-for=
"(item,index) in addressList"
:key=
"index"
:label=
"item.label"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
prop=
"type"
>
<el-select
v-model=
"queryParams1.type"
multiple
collapse-tags
@
change=
"
changeSelect2"
clearable
placeholder=
"项目类型"
:class=
"queryParams1.type.length > 1 ? 'selectTag' : ''"
style=
"width: 140px;
"
>
<el-select
v-model=
"queryParams1.type"
multiple
collapse-tags
@
change=
"
iptAdaptive(inputID6,'','changeSelect2')"
:class=
"[`select-adaptive-${inputID6}`,queryParams1.type.length > 1 ? 'selectTag' : '']"
clearable
placeholder=
"项目类型
"
>
<el-option
v-for=
"(item,index) in projectType"
:key=
"index"
:label=
"item"
:value=
"item"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -120,9 +122,10 @@
<custom-time-select
:timeList=
"timeList"
v-model=
"queryParams1.time"
:class=
"[`select-adaptive-${inputID7}`]"
timeValue=
"近七天"
placeholder=
"中标日期"
@
handle-search=
"
changeSelect2
"
/>
@
handle-search=
"
iptAdaptive(inputID7,'','changeSelect2')
"
/>
</el-form-item>
</el-form>
</div>
...
...
@@ -239,17 +242,18 @@
<custom-money-select
:moneyList=
"moneyList"
v-model=
"amount"
:class=
"[`select-adaptive-${inputID8}`]"
moneyValue=
"2亿以上"
:placeholder=
"placeholder"
@
handle-search=
"
changeSelect3
"
/>
@
handle-search=
"
iptAdaptive(inputID8,'','changeSelect3')
"
/>
</el-form-item>
<el-form-item
prop=
"provinceId"
>
<el-select
v-model=
"queryParams2.provinceId"
@
change=
"changeSelect3"
clearable
placeholder=
"项目地区"
style=
"width: 120px;
"
>
<el-select
v-model=
"queryParams2.provinceId"
:class=
"[`select-adaptive-${inputID9}`]"
@
change=
"iptAdaptive(inputID9,'','changeSelect3')"
clearable
placeholder=
"项目地区
"
>
<el-option
v-for=
"(item,index) in addressList"
:key=
"index"
:label=
"item.label"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
prop=
"projects"
>
<el-select
v-model=
"queryParams2.projects"
@
change=
"
changeSelect3"
multiple
collapse-tags
clearable
placeholder=
"项目类型"
:class=
"queryParams2.projects.length > 1 ? 'selectTag' : ''"
style=
"width: 140px;
"
>
<el-select
v-model=
"queryParams2.projects"
@
change=
"
iptAdaptive(inputID10,'','changeSelect3')"
multiple
collapse-tags
clearable
placeholder=
"项目类型"
:class=
"[`select-adaptive-${inputID10}`,queryParams2.projects.length > 1 ? 'selectTag' : '']
"
>
<el-option
v-for=
"(item,index) in projectType"
:key=
"index"
:label=
"item"
:value=
"item"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -257,9 +261,10 @@
<custom-time-select
:timeList=
"timeList"
v-model=
"queryParams2.time"
:class=
"[`select-adaptive-${inputID11}`]"
timeValue=
"近七天"
:placeholder=
"timePlaceholder"
@
handle-search=
"
changeSelect3
"
/>
@
handle-search=
"
iptAdaptive(inputID11,'','changeSelect3')
"
/>
</el-form-item>
</el-form>
</div>
...
...
@@ -474,6 +479,7 @@
import
{
countByCompany
,
bidRank
,
bigWinningBidsPage
,
bigBidPage
,
getInfo
}
from
'@/api/index'
import
{
getUipIdByCid
}
from
'@/api/macro/macro'
import
api
from
'@/api/radar/radar.js'
;
import
{
v4
}
from
"uuid"
;
export
default
{
name
:
"Index"
,
components
:
{
...
...
@@ -696,10 +702,22 @@ export default {
{
url
:
'/enterpriseData/Group'
,
name
:
'集团户'
,
imgUrl
:
require
(
'@/assets/images/index/icon4.png'
)},
{
url
:
'/enterpriseData/Owner'
,
name
:
'查城投平台'
,
imgUrl
:
require
(
'@/assets/images/index/icon5.png'
)},
{
url
:
'/radar'
,
name
:
'商机雷达'
,
imgUrl
:
require
(
'@/assets/images/index/icon6.png'
)},
]
],
inputID1
:
this
.
getUid
(),
inputID2
:
this
.
getUid
(),
inputID3
:
this
.
getUid
(),
inputID4
:
this
.
getUid
(),
inputID5
:
this
.
getUid
(),
inputID6
:
this
.
getUid
(),
inputID7
:
this
.
getUid
(),
inputID8
:
this
.
getUid
(),
inputID9
:
this
.
getUid
(),
inputID10
:
this
.
getUid
(),
inputID11
:
this
.
getUid
(),
};
},
created
()
{
this
.
getPlaceholder
();
this
.
searchDic
()
this
.
getInfo
()
this
.
dataRegion
()
...
...
@@ -1477,7 +1495,129 @@ export default {
default
:
break
;
}
}
},
handleSearch
(
name
){
if
(
name
===
'changeSelect1'
){
this
.
changeSelect1
()
}
if
(
name
===
'changeSelect2'
){
this
.
changeSelect2
()
}
if
(
name
===
'changeSelect3'
){
this
.
changeSelect3
()
}
},
async
getPlaceholder
()
{
try
{
await
this
.
$nextTick
();
const
doms
=
document
.
querySelectorAll
(
"[class*='select-adaptive-']"
);
if
(
doms
?.
length
)
{
doms
.
forEach
(
dom
=>
{
const
realStyles
=
window
.
getComputedStyle
(
dom
);
const
ipt
=
dom
.
querySelector
(
"input"
);
const
text
=
ipt
.
getAttribute
(
"placeholder"
);
const
textContainer
=
document
.
createElement
(
"span"
);
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"
,
realStyles
.
paddingRight
)
:
null
;
textContainer
.
style
.
setProperty
(
"box-sizing"
,
"border-box"
);
textContainer
.
textContent
=
text
;
document
.
body
.
append
(
textContainer
);
// 加上按钮宽度 以及按钮左外边距
let
containerWidth
=
textContainer
.
offsetWidth
+
50
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
});
}
}
catch
(
error
)
{
}
},
iptAdaptive
(
uid
,
multiple
=
false
,
name
)
{
multiple
?
this
.
multipleAdaptiveHandle
(
uid
,
name
)
:
this
.
iptAdaptiveHandle
(
uid
,
name
);
},
getUid
()
{
return
v4
();
},
// 多选处理
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
+
50
}
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 = 130;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
this
.
handleSearch
(
name
);
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
},
// 单选处理
async
iptAdaptiveHandle
(
uid
,
name
)
{
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
.
handleSearch
(
name
);
}
catch
(
error
)
{
}
},
}
};
</
script
>
...
...
@@ -1492,6 +1632,7 @@ export default {
margin
:
0
;
}
.home
{
@import
"@/assets/styles/search-common.scss"
;
padding-bottom
:
24px
;
::v-deep
.el-row
{
.el-col
:nth-child
(
1
)
{
...
...
@@ -1505,6 +1646,16 @@ export default {
}
.manage
{
::v-deep
.el-form
{
.el-select
{
.el-select__tags
{
flex-wrap
:
inherit
;
.el-tag
{
/*max-width: 130px;*/
}
}
}
}
.task-wrap
{
height
:
99px
;
background
:
#FFFFFF
;
...
...
@@ -1752,6 +1903,9 @@ export default {
.el-form-item--small.el-form-item
{
margin-bottom
:
0
;
}
.el-select
{
width
:
108px
;
}
}
}
.list
{
...
...
@@ -1796,15 +1950,6 @@ export default {
.pagination-box
{
padding
:
16px
;
}
::v-deep
.selectTag
{
.el-select__tags
{
.el-tag
{
&
:first-child
{
width
:
65px
;
}
}
}
}
}
.empty
{
margin
:
0
auto
;
...
...
dsk-operate-ui/src/views/macro/component/CustomTimeSelect.vue
View file @
68aa5757
...
...
@@ -253,9 +253,8 @@ export default {
<
style
lang=
"scss"
>
.custom-time-select
{
width
:
1
2
0px
;
width
:
1
1
0px
;
height
:
34px
;
.rote
{
.el-input__inner
{
background
:
#F4F6F9
;
...
...
dsk-operate-ui/src/views/macro/economies/component/comparison.vue
View file @
68aa5757
...
...
@@ -653,13 +653,18 @@ export default {
.el-form-item
{
margin
:
0
!
important
;
.form-content-width
{
width
:
11
0px
;
width
:
8
0px
;
}
::v-deep
.el-input
{
.el-input__inner
{
border
:
0
;
}
}
::v-deep
.is-focus
{
.el-input__inner
{
background
:
#F4F6F9
;
}
}
}
}
.table-item
{
...
...
dsk-operate-ui/src/views/macro/economies/component/industrialStructure.vue
View file @
68aa5757
...
...
@@ -348,13 +348,18 @@ export default {
.el-form-item
{
margin
:
0
!
important
;
.form-content-width
{
width
:
10
0px
;
width
:
8
0px
;
}
::v-deep
.el-input
{
.el-input__inner
{
border
:
0
;
}
}
::v-deep
.is-focus
{
.el-input__inner
{
background
:
#F4F6F9
;
}
}
}
}
.content
{
...
...
dsk-operate-ui/src/views/macro/economies/component/localEconomy.vue
View file @
68aa5757
...
...
@@ -36,18 +36,18 @@
</
template
>
</el-table-column>
<el-table-column
prop=
"gdp"
label=
"GDP(亿元)"
sortable
width=
"120"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"gdpGrowth"
label=
"GDP增速(%)"
sortable
width=
"130"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"gdpPerCapita"
label=
"人均GDP(元)"
sortable
width=
"130"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"population"
label=
"人口(万人)"
sortable
width=
"120"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"fixedInvestment"
label=
"固定资产投资 (亿元) "
sortable
width=
"200"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"gbr"
label=
"一般公共预算收入(亿元)"
sortable
width=
"200"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"gbe"
label=
"一般公共预算支出(亿元)"
sortable
width=
"200"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"govFundIncome"
label=
"政府性基金收入(亿元)"
sortable
width=
"200"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"govDebtBalance"
label=
"地方政府债务余额(亿元)"
sortable
width=
"200"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"uipInterestBearingDebt"
label=
"城投平台有息债务(亿元)"
sortable
width=
"200"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"fiscalSelfSufficiencyRate"
label=
"财政自给率(%)"
sortable
width=
"150"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"govDebtRateWild"
label=
"债务率-宽口径(%)"
sortable
width=
"170"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"gdp"
label=
"GDP(亿元)"
sortable
=
"custom"
width=
"120"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"gdpGrowth"
label=
"GDP增速(%)"
sortable
=
"custom"
width=
"130"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"gdpPerCapita"
label=
"人均GDP(元)"
sortable
=
"custom"
width=
"130"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"population"
label=
"人口(万人)"
sortable
=
"custom"
width=
"120"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"fixedInvestment"
label=
"固定资产投资 (亿元) "
sortable
=
"custom"
width=
"200"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"gbr"
label=
"一般公共预算收入(亿元)"
sortable
=
"custom"
width=
"200"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"gbe"
label=
"一般公共预算支出(亿元)"
sortable
=
"custom"
width=
"200"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"govFundIncome"
label=
"政府性基金收入(亿元)"
sortable
=
"custom"
width=
"200"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"govDebtBalance"
label=
"地方政府债务余额(亿元)"
sortable
=
"custom"
width=
"200"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"uipInterestBearingDebt"
label=
"城投平台有息债务(亿元)"
sortable
=
"custom"
width=
"200"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"fiscalSelfSufficiencyRate"
label=
"财政自给率(%)"
sortable
=
"custom"
width=
"150"
:formatter=
"formatStatus"
/>
<el-table-column
prop=
"govDebtRateWild"
label=
"债务率-宽口径(%)"
sortable
=
"custom"
width=
"170"
:formatter=
"formatStatus"
/>
</el-table>
</div>
<div
class=
"pagination-box"
v-if=
"show_page && tableDataTotal>pageSize"
>
...
...
@@ -193,17 +193,22 @@ export default {
<
style
lang=
"scss"
scoped
>
.regionalEconomy
{
.el-form
{
/*margin-left: 24px;*/
margin-left
:
16px
;
.el-form-item
{
margin
:
0
!
important
;
.form-content-width
{
width
:
10
0px
;
width
:
8
0px
;
}
::v-deep
.el-input
{
.el-input__inner
{
border
:
0
;
}
}
::v-deep
.is-focus
{
.el-input__inner
{
background
:
#F4F6F9
;
}
}
}
}
.content
{
...
...
dsk-operate-ui/src/views/macro/enterprises/index.vue
View file @
68aa5757
...
...
@@ -399,7 +399,7 @@ export default {
width
+=
textContainer
.
offsetWidth
+
parseInt
(
itemInfo
.
marginLeft
)
+
parseInt
(
itemInfo
.
marginRight
);
textContainer
.
remove
();
});
dom
.
style
.
setProperty
(
"width"
,
`
${
width
+
6
0
}
px`
);
dom
.
style
.
setProperty
(
"width"
,
`
${
width
+
5
0
}
px`
);
this
.
handleSearch
(
name
);
return
;
}
...
...
@@ -411,7 +411,7 @@ export default {
textContainer
.
textContent
=
iptChild
.
getAttribute
(
"placeholder"
);
document
.
body
.
append
(
textContainer
);
// let containerWidth = textContainer.offsetWidth + 12 + 8;
let
containerWidth
=
1
2
0
;
let
containerWidth
=
1
1
0
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
this
.
handleSearch
(
name
);
...
...
@@ -509,7 +509,7 @@ export default {
float
:
left
;
}
::v-deep
.el-cascader
{
width
:
1
2
0px
;
width
:
1
1
0px
;
margin-right
:
12px
;
height
:
34px
;
line-height
:
34px
!
important
;
...
...
dsk-operate-ui/src/views/macro/nationalEconomies/component/qgjjdq.vue
View file @
68aa5757
...
...
@@ -485,10 +485,10 @@
}
.form-content-width
{
width
:
9
0px
;
width
:
8
0px
;
}
::v-deep
.el-cascader
{
width
:
1
80
px
;
width
:
1
06
px
;
.el-cascader__tags
{
flex-wrap
:
inherit
;
.el-tag
{
...
...
dsk-operate-ui/src/views/macro/nationalEconomies/component/tdjy.vue
View file @
68aa5757
...
...
@@ -6,7 +6,7 @@
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
全国土地交易项目供应方式
</span>
<el-select
v-model=
"years"
@
change=
"
handleYears(1)
"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-select
v-model=
"years"
@
change=
"
iptAdaptive(inputID1,true,1)"
:class=
"[`select-adaptive-$
{inputID1}`]
" multiple collapse-tags filterable class="form-content-width" placeholder="请选择" :popper-append-to-body='false' size="small">
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
...
...
@@ -49,7 +49,7 @@
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
全国土地交易项目土地用途
</span>
<el-select
v-model=
"years1"
@
change=
"
handleYears(2)
"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-select
v-model=
"years1"
@
change=
"
iptAdaptive(inputID2,true,2)"
:class=
"[`select-adaptive-${inputID2}`]
"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
...
...
@@ -92,10 +92,10 @@
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
全国土地交易项目地区Top10
</span>
<el-select
@
change=
"
handleYears(3)
"
style=
"margin-right: 8px"
v-model=
"address"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"地区筛选"
:popper-append-to-body=
'false'
size=
"small"
>
<el-select
@
change=
"
iptAdaptive(inputID3,true,3)"
:class=
"[`select-adaptive-${inputID3}`]
"
style=
"margin-right: 8px"
v-model=
"address"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"地区筛选"
:popper-append-to-body=
'false'
size=
"small"
>
<el-option
v-for=
"(item, index) in addressList"
:key=
"index"
:label=
"item.label"
:value=
"item.id"
/>
</el-select>
<el-select
v-model=
"years2"
@
change=
"
handleYears(3)
"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-select
v-model=
"years2"
@
change=
"
iptAdaptive(inputID3,true,3)"
:class=
"[`select-adaptive-${inputID4}`]
"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
...
...
@@ -177,6 +177,7 @@
import
dataRegion
from
'@/assets/json/dataRegion'
import
{
countLandMarketByType
,
countLandMarketByProvince
,
countLandMarketByYear
}
from
'@/api/macro/macro'
import
skeleton
from
'../../component/skeleton'
import
{
v4
}
from
"uuid"
;
export
default
{
name
:
'NationalEconomies'
,
components
:
{
...
...
@@ -203,11 +204,14 @@ export default {
tdytState
:
true
,
topState
:
true
,
nftjState
:
true
,
// typeName:['住宅用地','工业用地','城镇住宅用地','其他商服用地','公共设施用地','公路用地','城镇村道路用地','公园与绿地',
// '工矿仓储用地','零售商业用地','科研用地','街巷用地','机关团体用地','商服用地','商务金融用地']
inputID1
:
this
.
getUid
(),
inputID2
:
this
.
getUid
(),
inputID3
:
this
.
getUid
(),
inputID4
:
this
.
getUid
(),
}
},
created
()
{
this
.
getPlaceholder
()
this
.
dataRegion
()
this
.
yearsData
()
...
...
@@ -726,7 +730,116 @@ export default {
});
return
sums
;
},
async
getPlaceholder
()
{
try
{
await
this
.
$nextTick
();
const
doms
=
document
.
querySelectorAll
(
"[class*='select-adaptive-']"
);
if
(
doms
?.
length
)
{
doms
.
forEach
(
dom
=>
{
const
realStyles
=
window
.
getComputedStyle
(
dom
);
const
ipt
=
dom
.
querySelector
(
"input"
);
const
text
=
ipt
.
getAttribute
(
"placeholder"
);
const
textContainer
=
document
.
createElement
(
"span"
);
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"
,
realStyles
.
paddingRight
)
:
null
;
textContainer
.
style
.
setProperty
(
"box-sizing"
,
"border-box"
);
textContainer
.
textContent
=
text
;
document
.
body
.
append
(
textContainer
);
// 加上按钮宽度 以及按钮左外边距
let
containerWidth
=
textContainer
.
offsetWidth
+
50
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
});
}
}
catch
(
error
)
{
}
},
iptAdaptive
(
uid
,
multiple
=
false
,
key
)
{
multiple
?
this
.
multipleAdaptiveHandle
(
uid
,
key
)
:
this
.
iptAdaptiveHandle
(
uid
,
key
);
},
getUid
()
{
return
v4
();
},
// 多选处理
async
multipleAdaptiveHandle
(
uid
,
key
)
{
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
.
handleYears
(
key
);
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
+
30
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
this
.
handleYears
(
key
);
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
},
// 单选处理
async
iptAdaptiveHandle
(
uid
,
key
)
{
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
.
handleYears
(
key
);
}
catch
(
error
)
{
}
},
}
}
</
script
>
...
...
@@ -747,6 +860,7 @@ export default {
color
:
#0081FF
;
}
.tdjy
{
@import
"@/assets/styles/search-common.scss"
;
.text_p
{
color
:
#999999
;
font-size
:
14px
;
...
...
@@ -772,7 +886,7 @@ export default {
margin-right
:
24px
;
}
::v-deep
.form-content-width
{
width
:
13
5px
;
width
:
9
5px
;
.el-select__input
{
width
:
10px
!
important
;
max-width
:
10px
!
important
;
...
...
@@ -789,6 +903,12 @@ export default {
background
:
#F4F6F9
;
}
}
.el-select__tags
{
flex-wrap
:
inherit
;
.el-tag
{
/*max-width: 130px;*/
}
}
}
::v-deep
.el-cascader
{
width
:
220px
;
...
...
dsk-operate-ui/src/views/macro/nationalEconomies/component/zhaobiao.vue
View file @
68aa5757
...
...
@@ -38,10 +38,10 @@
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
全国各地区招标统计TOP10
</span>
<el-select
@
change=
"
handleYears(1)"
style=
"margin-right: 8px
"
v-model=
"address"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"地区筛选"
:popper-append-to-body=
'false'
size=
"small"
>
<el-select
@
change=
"
iptAdaptive(inputID1,true,1)"
style=
"margin-right: 8px"
:class=
"[`select-adaptive-${inputID1}`]
"
v-model=
"address"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"地区筛选"
:popper-append-to-body=
'false'
size=
"small"
>
<el-option
v-for=
"(item, index) in addressList"
:key=
"index"
:label=
"item.label"
:value=
"item.id"
/>
</el-select>
<el-select
v-model=
"years1"
@
change=
"
handleYears(1)"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-select
v-model=
"years1"
@
change=
"
iptAdaptive(inputID2,true,1)"
multiple
collapse-tags
filterable
:class=
"[`select-adaptive-${inputID2}`]"
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
...
...
@@ -83,7 +83,7 @@
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
全国各年度招标月份统计
</span>
<el-select
v-model=
"years2"
@
change=
"
handleYears(2)
"
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-select
v-model=
"years2"
@
change=
"
iptAdaptive(inputID3,'',2)"
:class=
"[`select-adaptive-${inputID3}`]"
style=
"width: 80px;
"
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
...
...
@@ -130,6 +130,7 @@
import
dataRegion
from
'@/assets/json/dataRegion'
import
{
countNewsBidByYear
,
countNewsBidByProvince
,
countNewsBidByMonth
}
from
'@/api/macro/macro'
import
skeleton
from
'../../component/skeleton'
import
{
v4
}
from
"uuid"
;
export
default
{
name
:
'NationalEconomies'
,
components
:
{
...
...
@@ -152,9 +153,13 @@
isSkeleton
:
true
,
gyflState
:
true
,
tdytState
:
true
,
inputID1
:
this
.
getUid
(),
inputID2
:
this
.
getUid
(),
inputID3
:
this
.
getUid
(),
}
},
created
()
{
this
.
getPlaceholder
()
this
.
dataRegion
()
this
.
yearsData
()
this
.
getcountNewsBidByYear
()
...
...
@@ -613,7 +618,116 @@
});
return
sums
;
},
async
getPlaceholder
()
{
try
{
await
this
.
$nextTick
();
const
doms
=
document
.
querySelectorAll
(
"[class*='select-adaptive-']"
);
if
(
doms
?.
length
)
{
doms
.
forEach
(
dom
=>
{
const
realStyles
=
window
.
getComputedStyle
(
dom
);
const
ipt
=
dom
.
querySelector
(
"input"
);
const
text
=
ipt
.
getAttribute
(
"placeholder"
);
const
textContainer
=
document
.
createElement
(
"span"
);
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"
,
realStyles
.
paddingRight
)
:
null
;
textContainer
.
style
.
setProperty
(
"box-sizing"
,
"border-box"
);
textContainer
.
textContent
=
text
;
document
.
body
.
append
(
textContainer
);
// 加上按钮宽度 以及按钮左外边距
let
containerWidth
=
textContainer
.
offsetWidth
+
50
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
});
}
}
catch
(
error
)
{
}
},
iptAdaptive
(
uid
,
multiple
=
false
,
key
)
{
multiple
?
this
.
multipleAdaptiveHandle
(
uid
,
key
)
:
this
.
iptAdaptiveHandle
(
uid
,
key
);
},
getUid
()
{
return
v4
();
},
// 多选处理
async
multipleAdaptiveHandle
(
uid
,
key
)
{
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
.
handleYears
(
key
);
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
+
30
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
this
.
handleYears
(
key
);
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
},
// 单选处理
async
iptAdaptiveHandle
(
uid
,
key
)
{
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
.
handleYears
(
key
);
}
catch
(
error
)
{
}
},
}
}
</
script
>
...
...
@@ -634,6 +748,7 @@
color
:
#0081FF
;
}
.tdjy
{
@import
"@/assets/styles/search-common.scss"
;
.text_p
{
color
:
#999999
;
font-size
:
14px
;
...
...
@@ -659,7 +774,7 @@
margin-right
:
24px
;
}
::v-deep
.form-content-width
{
width
:
14
5px
;
width
:
9
5px
;
.el-select__input
{
width
:
10px
!
important
;
max-width
:
10px
!
important
;
...
...
@@ -675,6 +790,12 @@
background
:
#F4F6F9
;
}
}
.el-select__tags
{
flex-wrap
:
inherit
;
.el-tag
{
/*max-width: 130px;*/
}
}
}
::v-deep
.el-cascader
{
width
:
220px
;
...
...
dsk-operate-ui/src/views/macro/nationalEconomies/component/zhongbiao.vue
View file @
68aa5757
...
...
@@ -6,7 +6,7 @@
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
全国中标项目统计
</span>
<el-select
v-model=
"years"
@
change=
"
handleYears(1)
"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-select
v-model=
"years"
@
change=
"
iptAdaptive(inputID1,true,1)"
:class=
"[`select-adaptive-$
{inputID1}`]
" multiple collapse-tags filterable class="form-content-width" placeholder="请选择" :popper-append-to-body='false' size="small">
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
...
...
@@ -54,7 +54,7 @@
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
全国各地区中标统计TOP10
</span>
<el-select
v-model=
"years1"
@
change=
"
handleYears(2)
"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-select
v-model=
"years1"
@
change=
"
iptAdaptive(inputID2,true,2)"
:class=
"[`select-adaptive-${inputID2}`]
"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
...
...
@@ -102,7 +102,7 @@
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
全国中标金额分析
</span>
<el-select
v-model=
"years2"
@
change=
"
handleYears(3)
"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-select
v-model=
"years2"
@
change=
"
iptAdaptive(inputID3,true,3)"
:class=
"[`select-adaptive-${inputID3}`]
"
multiple
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
...
...
@@ -183,7 +183,7 @@
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
全国中标下浮率分析
</span>
<el-select
v-model=
"years3"
@
change=
"
handleYears(5)
"
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-select
v-model=
"years3"
@
change=
"
iptAdaptive(inputID4,'',5)"
:class=
"[`select-adaptive-${inputID4}`]
"
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
...
...
@@ -226,10 +226,10 @@
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
全国中标业绩项目类型下浮率
</span>
<el-select
@
change=
"
handleYears(6)
"
style=
"margin-right: 8px"
v-model=
"address"
clearable
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"地区筛选"
:popper-append-to-body=
'false'
size=
"small"
>
<el-select
@
change=
"
iptAdaptive(inputID5,'',6)"
:class=
"[`select-adaptive-${inputID5}`]
"
style=
"margin-right: 8px"
v-model=
"address"
clearable
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"地区筛选"
:popper-append-to-body=
'false'
size=
"small"
>
<el-option
v-for=
"(item, index) in addressList"
:key=
"index"
:label=
"item.label"
:value=
"item.id"
/>
</el-select>
<el-select
v-model=
"years4"
@
change=
"
handleYears(6)
"
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-select
v-model=
"years4"
@
change=
"
iptAdaptive(inputID6,'',6)"
:class=
"[`select-adaptive-${inputID6}`]
"
collapse-tags
filterable
class=
"form-content-width"
placeholder=
"请选择"
:popper-append-to-body=
'false'
size=
"small"
>
<el-option
v-for=
"(item, index) in yearOptions"
:key=
"index"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
...
...
@@ -279,6 +279,7 @@
import
dataRegion
from
'@/assets/json/dataRegion'
import
{
countBidByType
,
countBidGroupByProvince
,
rangeBidMoney
,
rangeBidFiveYears
,
lowerRateByYear
,
lowerRangeTenderType
}
from
'@/api/macro/macro'
import
skeleton
from
'../../component/skeleton'
import
{
v4
}
from
"uuid"
;
export
default
{
name
:
'NationalEconomies'
,
components
:
{
...
...
@@ -306,9 +307,16 @@
qsfxState
:
true
,
xflState
:
true
,
xmlxState
:
true
,
inputID1
:
this
.
getUid
(),
inputID2
:
this
.
getUid
(),
inputID3
:
this
.
getUid
(),
inputID4
:
this
.
getUid
(),
inputID5
:
this
.
getUid
(),
inputID6
:
this
.
getUid
(),
}
},
created
()
{
this
.
getPlaceholder
()
this
.
dataRegion
()
this
.
yearsData
()
this
.
getCountBidByType
()
...
...
@@ -1160,13 +1168,123 @@
});
return
sums
;
},
async
getPlaceholder
()
{
try
{
await
this
.
$nextTick
();
const
doms
=
document
.
querySelectorAll
(
"[class*='select-adaptive-']"
);
if
(
doms
?.
length
)
{
doms
.
forEach
(
dom
=>
{
const
realStyles
=
window
.
getComputedStyle
(
dom
);
const
ipt
=
dom
.
querySelector
(
"input"
);
const
text
=
ipt
.
getAttribute
(
"placeholder"
);
const
textContainer
=
document
.
createElement
(
"span"
);
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"
,
realStyles
.
paddingRight
)
:
null
;
textContainer
.
style
.
setProperty
(
"box-sizing"
,
"border-box"
);
textContainer
.
textContent
=
text
;
document
.
body
.
append
(
textContainer
);
// 加上按钮宽度 以及按钮左外边距
let
containerWidth
=
textContainer
.
offsetWidth
+
50
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
});
}
}
catch
(
error
)
{
}
},
iptAdaptive
(
uid
,
multiple
=
false
,
key
)
{
multiple
?
this
.
multipleAdaptiveHandle
(
uid
,
key
)
:
this
.
iptAdaptiveHandle
(
uid
,
key
);
},
getUid
()
{
return
v4
();
},
// 多选处理
async
multipleAdaptiveHandle
(
uid
,
key
)
{
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
.
handleYears
(
key
);
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
+
30
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
this
.
handleYears
(
key
);
}
}
catch
(
error
)
{
console
.
log
(
error
);
}
},
// 单选处理
async
iptAdaptiveHandle
(
uid
,
key
)
{
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
.
handleYears
(
key
);
}
catch
(
error
)
{
}
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.zhongbiao
{
@import
"@/assets/styles/search-common.scss"
;
padding-top
:
16px
;
.text_p
{
color
:
#999999
;
...
...
@@ -1193,7 +1311,7 @@
margin-right
:
24px
;
}
::v-deep
.form-content-width
{
width
:
14
5px
;
width
:
9
5px
;
.el-select__input
{
width
:
10px
!
important
;
max-width
:
10px
!
important
;
...
...
@@ -1209,6 +1327,12 @@
background
:
#F4F6F9
;
}
}
.el-select__tags
{
flex-wrap
:
inherit
;
.el-tag
{
/*max-width: 130px;*/
}
}
}
::v-deep
.el-cascader
{
width
:
220px
;
...
...
dsk-operate-ui/src/views/market/index.vue
View file @
68aa5757
...
...
@@ -69,7 +69,7 @@ export default {
if
(
res
.
code
==
200
)
{
this
.
timelongs
=
res
.
data
.
expire
;
this
.
ak
=
res
.
data
.
accessToken
;
this
.
src
=
`
${
this
.
domain
}
/search/market?ak=
${
this
.
ak
}
&initTime=
${
new
Date
().
getTime
()}
&uid=
${
this
.
ak
}
`
;
this
.
src
=
`
${
this
.
domain
}
/search/market?ak=
${
this
.
ak
}
&initTime=
${
new
Date
().
getTime
()}
&uid=
${
this
.
ak
}
&origin=
${
window
.
location
.
origin
}
`
;
this
.
refreshtoken
();
}
else
{
clearTimeout
(
this
.
tokentimer
);
...
...
dsk-operate-ui/src/views/project/projectList/component/xgqy.vue
View file @
68aa5757
...
...
@@ -8,9 +8,18 @@
<el-option
v-for=
"(item,index) in companytype"
:label=
"item.dictLabel"
:value=
"item.dictValue"
></el-option>
</el-select>
<div
class=
"searchInput small"
>
<el-input
type=
"text"
placeholder=
"输入关键词查询"
clearable
v-model=
"searchParam.companyName"
>
<i
slot=
"prefix"
class=
"el-input__icon"
><img
src=
"@/assets/images/project/sousuo.png"
@
click=
"handleCurrentChange(1)"
></i></el-input>
<!--
<div
class=
"btn"
@
click=
"handleCurrentChange(1)"
>
搜索
</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=
"handleCurrentChange(1)"
@
focus=
"clickFocus('focus1')"
@
blur=
"clickFocus('focus1')"
v-model=
"searchParam.companyName"
placeholder=
"输入关键词查询"
></el-input>
<span
@
click=
"handleCurrentChange(1)"
>
搜索
</span>
</div>
</transition>
</div>
<div
class=
"btn btn_primary h32 b3"
@
click=
"opennew"
v-if=
"isDisableds == false"
><div
class=
"img img1"
></div>
添加相关企业
</div>
</div>
...
...
@@ -187,6 +196,7 @@
import
{
addXGQY
,
delXGQY
,
getXGQY
,
saveXGQY
}
from
'@/api/project/project'
import
{
getDictType
,
getEnterprise
}
from
'@/api/main'
import
skeleton
from
'./skeleton'
import
gsap
from
"gsap"
;
export
default
{
components
:{
skeleton
},
...
...
@@ -241,6 +251,7 @@
showlist
:
false
,
companData
:[],
isSkeleton
:
true
,
showSearchBox
:
false
,
}
},
created
(){
...
...
@@ -253,6 +264,10 @@
mounted
(){
},
methods
:{
clickFocus
(
e
)
{
document
.
getElementById
(
e
).
classList
.
toggle
(
'span-ba'
);
},
getDetail
(
row
){
this
.
isedit
=
true
this
.
hzhbVisible
=
true
...
...
@@ -358,6 +373,21 @@
remark
:
''
,
}
},
onEnter
(
el
,
done
)
{
gsap
.
from
(
el
,
{
opacity
:
0
,
width
:
0
,
});
gsap
.
to
(
el
,
{
opacity
:
1
,
width
:
242
,
onComplete
()
{
// 完成动画聚焦输入框
el
.
querySelector
(
"input"
).
focus
();
done
();
}
});
},
}
}
</
script
>
...
...
@@ -378,6 +408,79 @@
.searchInput
.el-input
{
width
:
68%
;
}
.searchInput.small
{
width
:
257px
;
}
.searchInput
{
.normal-search-container
{
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
{
display
:
flex
;
border-radius
:
2px
;
border
:
1px
solid
#d9d9d9
;
line-height
:
30px
;
height
:
30px
;
float
:
left
;
width
:
100%
;
span
{
width
:
60px
;
height
:
28px
;
line-height
:
28px
;
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
:
28px
;
height
:
28px
;
position
:
absolute
;
top
:
1px
;
padding-right
:
28px
;
font-size
:
12px
;
padding-left
:
8px
;
}
}
}
.w102
{
width
:
102px
;
}
...
...
dsk-operate-ui/src/views/project/projectList/component/zlwd.vue
View file @
68aa5757
...
...
@@ -4,12 +4,19 @@
<el-card
class=
"box-card noborder"
>
<div
class=
"cardtitles"
>
资料文档
</div>
<div
class=
"searchbtns"
>
<!--
<div
class=
"searchbtns"
v-if=
"fileDatas.rows != null && fileDatas.rows.length>0"
>
-->
<div
class=
"searchInput small"
>
<el-input
type=
"text"
v-model=
"param.keyword"
clearable
placeholder=
"输入关键词查询"
>
<i
slot=
"prefix"
class=
"el-input__icon"
><img
src=
"@/assets/images/project/sousuo.png"
@
click=
"handleCurrentChange(1)"
></i>
</el-input>
<!--
<div
class=
"btn"
@
click=
"handleCurrentChange(1)"
>
搜索
</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=
"handleCurrentChange(1)"
@
focus=
"clickFocus('focus1')"
@
blur=
"clickFocus('focus1')"
v-model=
"param.keyword"
placeholder=
"输入关键词查询"
></el-input>
<span
@
click=
"handleCurrentChange(1)"
>
搜索
</span>
</div>
</transition>
</div>
<!--
<div
class=
"btn btn_primary h32 b2"
@
click=
"getUP"
v-if=
"fileDatas.total>0"
><div
class=
"img img2"
></div>
上传
</div>
-->
...
...
@@ -154,6 +161,7 @@
import
{
getToken
}
from
'@/utils/auth'
import
{
delZLWD
,
getZLWD
}
from
'@/api/project/project'
import
skeleton
from
'./skeleton'
import
gsap
from
"gsap"
;
export
default
{
components
:{
skeleton
},
...
...
@@ -188,6 +196,7 @@
isDisableds
:
this
.
isDisabled
,
keys
:
1
,
isSkeleton
:
true
,
showSearchBox
:
false
,
}
},
created
(){
...
...
@@ -195,6 +204,24 @@
// console.log(this.$ref)
},
methods
:{
clickFocus
(
e
)
{
document
.
getElementById
(
e
).
classList
.
toggle
(
'span-ba'
);
},
onEnter
(
el
,
done
)
{
gsap
.
from
(
el
,
{
opacity
:
0
,
width
:
0
,
});
gsap
.
to
(
el
,
{
opacity
:
1
,
width
:
242
,
onComplete
()
{
// 完成动画聚焦输入框
el
.
querySelector
(
"input"
).
focus
();
done
();
}
});
},
getall
(){
this
.
param
.
filePath
=
this
.
detailId
?
this
.
detailId
:
this
.
$route
.
query
.
id
this
.
filename
=
''
...
...
@@ -316,6 +343,79 @@
<
style
lang=
"scss"
scoped
>
.searchInput.small
{
width
:
257px
;
}
.searchInput
{
.normal-search-container
{
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
{
display
:
flex
;
border-radius
:
2px
;
border
:
1px
solid
#d9d9d9
;
line-height
:
30px
;
height
:
30px
;
float
:
left
;
width
:
100%
;
span
{
width
:
60px
;
height
:
28px
;
line-height
:
28px
;
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
:
28px
;
height
:
28px
;
position
:
absolute
;
top
:
1px
;
padding-right
:
28px
;
font-size
:
12px
;
padding-left
:
8px
;
}
}
}
v-deep
.el-upload
:focus
{
color
:
#FFFFFF
!
important
;
}
...
...
dsk-operate-ui/src/views/radar/index.vue
View file @
68aa5757
...
...
@@ -9,7 +9,7 @@
<p>
{{
itme
.
value
}}
</p>
</div>
</div>
</div>
</div>
<p
class=
"solid"
></p>
...
...
@@ -25,13 +25,13 @@
<!-- 招标计划 -->
<Bidding
v-if=
"personnelHerf=='Bidding'"
/>
<!-- 标讯pro -->
<
bxprozbgg
v-if=
"personnelHerf=='bxprozbgg'"
/
>
<
!--
<bxprozbgg
v-if=
"personnelHerf=='bxprozbgg'"
/>
--
>
<!-- 公招标讯 -->
<Tender
v-if=
"personnelHerf=='Tender'"
/>
<!-- 开标记录 -->
<BidRecord
v-if=
"personnelHerf=='BidRecord'"
/>
</div>
</
template
>
...
...
@@ -44,7 +44,7 @@
import
BidRecord
from
"./components/BidRecord/index.vue"
;
import
Bidding
from
"./components/Bidding/index.vue"
;
import
MajorProject
from
"./components/MajorProject/index.vue"
;
import
"@/assets/styles/public.scss"
;
export
default
{
name
:
'Radar'
,
...
...
@@ -80,25 +80,25 @@
key
:
'Bidding'
,
status
:
false
,
value
:
'招标计划'
,
},
{
key
:
'bxprozbgg'
,
status
:
false
,
value
:
'标讯pro'
,
},
// {
// key: 'bxprozbgg',
// status: false,
// value: '标讯pro',
//
// },
{
key
:
'Tender'
,
status
:
false
,
value
:
'公招标讯'
,
},
{
key
:
'BidRecord'
,
status
:
false
,
value
:
'开标记录'
,
},
],
...
...
@@ -121,7 +121,7 @@
</
script
>
<
style
lang=
"scss"
scoped
>
.app-container
{
margin
:
12px
24px
;
padding
:
0
;
...
...
@@ -129,7 +129,7 @@
.content
{
padding
:
0px
16px
;
background
:
#FFFFFF
;
}
.app-container
.combined-title
{
...
...
@@ -261,4 +261,4 @@
border-bottom
:
2px
solid
#0081FF
;
font-weight
:
bold
;
}
</
style
>
\ No newline at end of file
</
style
>
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