Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-operate-sys-cscec
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fulixin
dsk-operate-sys-cscec
Commits
63e197d8
Commit
63e197d8
authored
Oct 10, 2023
by
Administrator
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/V20230915' into V20230915
parents
fbb9aa50
c1a61d02
Changes
45
Show whitespace changes
Inline
Side-by-side
Showing
45 changed files
with
2318 additions
and
1954 deletions
+2318
-1954
EnterpriseProjectImportantListDto.java
.../dsk/jsk/domain/bo/EnterpriseProjectImportantListDto.java
+1
-1
MarketAnalysisService.java
...in/java/com/dsk/search/service/MarketAnalysisService.java
+39
-0
package.json
dsk-operate-ui/package.json
+2
-0
market.svg
dsk-operate-ui/src/assets/icons/svg/market.svg
+1
-1
markets.svg
dsk-operate-ui/src/assets/icons/svg/markets.svg
+1
-1
enterprise-search-icon.svg
...i/src/assets/images/enterprise/enterprise-search-icon.svg
+1
-0
jskplug.js
dsk-operate-ui/src/assets/js/jskplug.js
+43
-43
common.css
dsk-operate-ui/src/assets/styles/common.css
+9
-0
index.scss
dsk-operate-ui/src/assets/styles/index.scss
+2
-2
search-common.scss
dsk-operate-ui/src/assets/styles/search-common.scss
+139
-0
main.js
dsk-operate-ui/src/main.js
+48
-47
index.vue
...operate-ui/src/views/custom/historicalCustomers/index.vue
+1
-1
index.vue
dsk-operate-ui/src/views/custom/overview/index.vue
+15
-12
performance.vue
...i/src/views/detail/groupAccount/component/performance.vue
+8
-199
HeadFormNew.vue
...ate-ui/src/views/detail/party-a/component/HeadFormNew.vue
+552
-0
bidagency.vue
...perate-ui/src/views/detail/party-a/dealings/bidagency.vue
+42
-55
bidrecords.vue
...erate-ui/src/views/detail/party-a/dealings/bidrecords.vue
+37
-45
custom.vue
dsk-operate-ui/src/views/detail/party-a/dealings/custom.vue
+57
-73
hiscontract.vue
...rate-ui/src/views/detail/party-a/dealings/hiscontract.vue
+51
-61
supplier.vue
...operate-ui/src/views/detail/party-a/dealings/supplier.vue
+57
-73
mixin.js
dsk-operate-ui/src/views/detail/party-a/mixins/mixin.js
+7
-1
administrative.vue
...ate-ui/src/views/detail/party-a/opport/administrative.vue
+60
-68
announcement.vue
...erate-ui/src/views/detail/party-a/opport/announcement.vue
+73
-85
biddingplan.vue
...perate-ui/src/views/detail/party-a/opport/biddingplan.vue
+47
-58
bond.vue
dsk-operate-ui/src/views/detail/party-a/opport/bond.vue
+34
-45
landtransaction.vue
...te-ui/src/views/detail/party-a/opport/landtransaction.vue
+52
-63
proposed.vue
dsk-operate-ui/src/views/detail/party-a/opport/proposed.vue
+37
-48
tencent.vue
dsk-operate-ui/src/views/detail/party-a/opport/tencent.vue
+89
-90
branch.vue
dsk-operate-ui/src/views/detail/party-a/overview/branch.vue
+55
-63
overseas.vue
...operate-ui/src/views/detail/party-a/overview/overseas.vue
+82
-87
businessAnomaly.vue
.../views/detail/party-a/riskInformation/businessAnomaly.vue
+53
-49
courtNotice.vue
.../src/views/detail/party-a/riskInformation/courtNotice.vue
+59
-67
dishonesty.vue
...i/src/views/detail/party-a/riskInformation/dishonesty.vue
+33
-42
ifThePerson.vue
.../src/views/detail/party-a/riskInformation/ifThePerson.vue
+31
-39
judgment.vue
...-ui/src/views/detail/party-a/riskInformation/judgment.vue
+55
-64
openacourtsessionNotice.vue
...etail/party-a/riskInformation/openacourtsessionNotice.vue
+60
-69
punish.vue
...te-ui/src/views/detail/party-a/riskInformation/punish.vue
+57
-64
landAcquisition.vue
.../views/detail/party-a/urbanLnvestment/landAcquisition.vue
+48
-56
regionalEconomies.vue
...iews/detail/party-a/urbanLnvestment/regionalEconomies.vue
+78
-74
sameRegion.vue
...i/src/views/detail/party-a/urbanLnvestment/sameRegion.vue
+162
-167
index.vue
dsk-operate-ui/src/views/detail/party-b/index.vue
+1
-1
localEconomy.vue
...e-ui/src/views/macro/economies/component/localEconomy.vue
+1
-1
zhongbiao.vue
...src/views/macro/nationalEconomies/component/zhongbiao.vue
+1
-1
index.vue
dsk-operate-ui/src/views/radar/index.vue
+16
-16
userAvatar.vue
dsk-operate-ui/src/views/system/user/profile/userAvatar.vue
+21
-22
No files found.
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/EnterpriseProjectImportantListDto.java
View file @
63e197d8
...
...
@@ -14,7 +14,7 @@ import javax.validation.constraints.NotNull;
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
EnterpriseProjectImportantListDto
extends
BasePage
{
private
Integer
c
ompanyI
d
;
private
Integer
c
i
d
;
private
String
keys
;
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/search/service/MarketAnalysisService.java
View file @
63e197d8
...
...
@@ -4,9 +4,13 @@ import cn.hutool.core.bean.BeanUtil;
import
com.alibaba.fastjson2.JSONObject
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.utils.DskOpenApiUtil
;
import
com.dsk.jsk.service.EnterpriseService
;
import
org.apache.commons.collections4.MapUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -20,6 +24,9 @@ public class MarketAnalysisService {
@Autowired
private
DskOpenApiUtil
dskOpenApiUtil
;
@Autowired
private
EnterpriseService
enterpriseService
;
public
AjaxResult
areaGroupByProvince
()
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/marketAnalysis/areaGroupByProvince"
,
new
JSONObject
());
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
...
...
@@ -117,11 +124,27 @@ 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
,
"companyId"
);
String
companyName
=
MapUtils
.
getString
(
res
,
"companyName"
);
res
.
put
(
"uipId"
,
enterpriseService
.
getUipIdByCompanyNameOrCompanyId
(
companyName
,
companyId
));
});
}
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
public
AjaxResult
combineBidByYear
(
JSONObject
object
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/marketAnalysis/combine/bidByYear"
,
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
));
});
}
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
...
...
@@ -132,6 +155,14 @@ public class MarketAnalysisService {
public
AjaxResult
combineGroupByType
(
JSONObject
object
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/marketAnalysis/combine/groupByType"
,
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
,
"companyId"
);
String
companyName
=
MapUtils
.
getString
(
res
,
"companyName"
);
res
.
put
(
"uipId"
,
enterpriseService
.
getUipIdByCompanyNameOrCompanyId
(
companyName
,
companyId
));
});
}
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
...
...
@@ -142,6 +173,14 @@ public class MarketAnalysisService {
public
AjaxResult
combinePeojectTop
(
JSONObject
object
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/marketAnalysis/combine/peojectTop"
,
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
,
"projectUnitId"
);
String
companyName
=
MapUtils
.
getString
(
res
,
"projectUnit"
);
res
.
put
(
"uipId"
,
enterpriseService
.
getUipIdByCompanyNameOrCompanyId
(
companyName
,
companyId
));
});
}
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
}
dsk-operate-ui/package.json
View file @
63e197d8
...
...
@@ -46,6 +46,7 @@
"element-ui"
:
"2.15.12"
,
"file-saver"
:
"2.0.5"
,
"fuse.js"
:
"6.4.3"
,
"gsap"
:
"^3.12.2"
,
"highlight.js"
:
"9.18.5"
,
"jquery"
:
"^3.7.0"
,
"js-beautify"
:
"1.13.0"
,
...
...
@@ -56,6 +57,7 @@
"quill"
:
"1.3.7"
,
"screenfull"
:
"5.0.2"
,
"sortablejs"
:
"^1.15.0"
,
"uuid"
:
"^9.0.1"
,
"vue"
:
"2.6.12"
,
"vue-count-to"
:
"1.0.13"
,
"vue-cropper"
:
"0.5.5"
,
...
...
dsk-operate-ui/src/assets/icons/svg/market.svg
View file @
63e197d8
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
fill=
"none"
version=
"1.1"
width=
"16"
height=
"16"
viewBox=
"0 0 16 16"
><g><g><g><path
d=
""
fill=
"#D8D8D8"
fill-opacity=
"0"
/><path
d=
"M8,2Q8.04925,2,8.09754,1.990393Q8.14584,1.980785,8.19134,1.96194Q8.23684,1.9430939999999999,8.27778,1.915735Q8.31873,1.888375,8.35355,1.853553Q8.38837,1.818731,8.41573,1.777785Q8.44309,1.736839,8.46194,1.6913420000000001Q8.48078,1.645845,8.49039,1.5975451Q8.5,1.5492457,8.5,1.5Q8.5,1.4507543,8.49039,1.4024549Q8.48078,1.354155,8.46194,1.3086579999999999Q8.44309,1.263161,8.41573,1.222215Q8.38837,1.181269,8.35355,1.146447Q8.31873,1.111625,8.27778,1.084265Q8.23684,1.0569060000000001,8.19134,1.03806Q8.14584,1.019215,8.09754,1.009607Q8.04925,1,8,1L7.99929,1.000001Q5.10025,1.000252,3.05025,3.05025Q1,5.10051,1,8Q1,10.89949,3.05025,12.9497Q5.1005,15,8,15Q10.8995,15,12.9497,12.9497Q15,10.89949,15,8Q15,6.57618,14.4497,5.27513Q13.9184,4.0191,12.9501,3.05065L12.9497,3.05025Q12.8794,2.97993,12.7875,2.9418699999999998Q12.6957,2.90381,12.5962,2.90381Q12.5469,2.90381,12.4986,2.91341Q12.4503,2.92302,12.4049,2.9418699999999998Q12.3594,2.9607099999999997,12.3184,2.98807Q12.2775,3.0154300000000003,12.2426,3.05025Q12.2078,3.08507,12.1805,3.12602Q12.1531,3.16697,12.1343,3.21246Q12.1154,3.2579599999999997,12.1058,3.30626Q12.0962,3.35456,12.0962,3.40381Q12.0962,3.50326,12.1343,3.59515Q12.1723,3.68703,12.2426,3.75736L12.243,3.75773Q13.0734,4.58827,13.5287,5.66468Q14,6.77897,14,8Q14,10.48528,12.2426,12.2426Q10.48528,14,8,14Q5.51472,14,3.75736,12.2426Q2,10.48528,2,8Q2,5.51472,3.75736,3.75736Q5.51472,2,8,2Z"
fill-rule=
"evenodd"
fill=
"#FFFFFF"
fill-opacity=
"1"
/></g><g><path
d=
""
fill=
"#D8D8D8"
fill-opacity=
"0"
/><path
d=
"M12.14616,6.24824Q11.804549999999999,5.44059,11.18198,4.818019Q11.111650000000001,4.747693,11.019770000000001,4.709633Q10.92788,4.671573,10.82843,4.671573Q10.77918,4.671573,10.730879999999999,4.68118Q10.68258,4.6907879999999995,10.637080000000001,4.709633Q10.59159,4.728479,10.55064,4.755838Q10.509699999999999,4.783198,10.47487,4.81802Q10.44005,4.852841,10.41269,4.893788Q10.38533,4.934734,10.366489999999999,4.980231Q10.34764,5.02573,10.33803,5.0740300000000005Q10.32843,5.12233,10.32843,5.17157Q10.32843,5.27103,10.366489999999999,5.36291Q10.40455,5.4548000000000005,10.47487,5.52513Q10.95953,6.00978,11.225159999999999,6.6378Q11.5,7.28759,11.5,8Q11.5,9.44975,10.47487,10.47487Q9.44975,11.5,8,11.5Q6.55025,11.5,5.52513,10.47487Q4.5,9.44975,4.5,8Q4.5,6.55025,5.52513,5.52513Q6.55025,4.5,8,4.5L8,3.5Q6.1360399999999995,3.5,4.818019,4.818019Q3.5,6.1360399999999995,3.5,8Q3.5,9.863959999999999,4.818019,11.18198Q6.1360399999999995,12.5,8,12.5Q9.863959999999999,12.5,11.18198,11.18198Q12.5,9.863959999999999,12.5,8Q12.5,7.08481,12.14616,6.24824Z"
fill-rule=
"evenodd"
fill=
"#FFFFFF"
fill-opacity=
"1"
/></g><g><ellipse
cx=
"8"
cy=
"8"
rx=
"1"
ry=
"1"
fill=
"#FFFFFF"
fill-opacity=
"1"
/></g><g><path
d=
"M8 1C8 1 8 1 8 1L8.5 1C8.776142374915397 1 9 1.2238576250846034 9 1.5L9 8C9 8 9 8 9 8L8 8C8 8 8 8 8 8Z"
fill=
"#FFFFFF"
fill-opacity=
"1"
/></g></g></g></svg>
\ No newline at end of file
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
fill=
"none"
version=
"1.1"
width=
"17.2025146484375"
height=
"17.110595703125"
viewBox=
"0 0 17.2025146484375 17.110595703125"
><g><g><g
transform=
"matrix(0.9634730815887451,0.2678050994873047,-0.2678050994873047,0.9634730815887451,0.31323258932116005,-1.0652609714268806)"
><path
d=
""
fill=
"#D8D8D8"
fill-opacity=
"0"
/><path
d=
"M9.351976079711914,1.1054855871429443Q9.393986079711915,1.0968885871429443,9.433926079711913,1.0812625871429442Q9.473866079711915,1.0656365871429443,9.510556079711915,1.0434375871429444Q9.547246079711915,1.0212395871429443,9.579626079711915,0.9931175871429443Q9.611996079711915,0.9649945871429444,9.639116079711915,0.9317705871429444Q9.666226079711915,0.8985455871429444,9.687286079711914,0.8611885871429443Q9.708346079711914,0.8238325871429444,9.722746079711914,0.7834345871429443Q9.737136079711913,0.7430375871429443,9.744436079711914,0.7007791871429443Q9.751736079711915,0.6585210871429443,9.751736079711915,0.6156365871429443Q9.751736079711915,0.5663908871429444,9.742136079711914,0.5180914871429443Q9.732526079711914,0.46979158714294433,9.713676079711913,0.4242945871429443Q9.694836079711914,0.3787975871429443,9.667476079711914,0.33785158714294433Q9.640116079711914,0.29690558714294435,9.605296079711914,0.26208358714294433Q9.570466079711913,0.2272615871429443,9.529526079711914,0.19990158714294431Q9.488576079711914,0.17254258714294435,9.443076079711915,0.15369658714294432Q9.397586079711914,0.13485158714294432,9.349286079711913,0.1252435871429443Q9.300986079711915,0.11563658714294434,9.251736079711915,0.11563658714294434Q9.201106079711913,0.11563658714294434,9.151506079711915,0.12578758714294436Q8.473826079711914,0.26445858714294435,7.836846079711914,0.5338796871429443Q6.580556079711914,1.0652465871429444,5.611966079711914,2.033836587142944Q3.561716079711914,4.0840765871429445,3.561716079711914,6.983576587142944Q3.561716079711914,9.883076587142945,5.611966079711914,11.933336587142945Q7.662216079711914,13.983536587142945,10.561716079711914,13.983536587142945Q13.461216079711914,13.983536587142945,15.511416079711914,11.933336587142945Q17.561716079711914,9.883076587142945,17.561716079711914,6.983576587142944Q17.561716079711914,5.560116587142945,17.011716079711913,4.259366587142944L17.011516079711914,4.259006587142944L17.011416079711914,4.258706587142944L16.090416079711915,4.6482665871429445L16.090416079711915,4.648326587142944L16.090716079711914,4.649046587142944Q16.561716079711914,5.762976587142944,16.561716079711914,6.983576587142944Q16.561716079711914,9.468866587142944,14.804316079711914,11.226236587142944Q13.046996079711914,12.983536587142945,10.561716079711914,12.983536587142945Q8.076436079711915,12.983536587142945,6.319076079711914,11.226236587142944Q4.561716079711914,9.468866587142944,4.561716079711914,6.983576587142944Q4.561716079711914,4.498296587142944,6.319076079711914,2.7409365871429445Q7.149746079711914,1.9102665871429443,8.226396079711915,1.4548845871429443Q8.771756079711913,1.2242155871429443,9.351976079711914,1.1054855871429443Z"
fill-rule=
"evenodd"
fill=
"#FFFFFF"
fill-opacity=
"1"
/></g><g
transform=
"matrix(0.9501094818115234,0.31191641092300415,-0.31191641092300415,0.9501094818115234,1.466013217420695,-1.676830753886975)"
><path
d=
""
fill=
"#D8D8D8"
fill-opacity=
"0"
/><path
d=
"M8.612602017211914,4.204861731674194Q8.680472017211914,4.1761547316741945,8.737172017211915,4.129087731674194Q8.793872017211914,4.082019731674194,8.834592017211914,4.020594731674194Q8.875302017211915,3.9591697316741943,8.896562017211913,3.8886107316741945Q8.917822017211915,3.8180521316741944,8.917822017211915,3.7443597316741943Q8.917822017211915,3.695114031674194,8.908212017211914,3.6468146316741943Q8.898602017211914,3.5985147316741943,8.879762017211913,3.553017731674194Q8.860912017211914,3.5075207316741945,8.833552017211915,3.466574731674194Q8.806192017211913,3.4256287316741942,8.771372017211913,3.3908067316741946Q8.736552017211913,3.3559847316741944,8.695602017211915,3.328624731674194Q8.654662017211914,3.3012657316741945,8.609162017211915,3.282419731674194Q8.563662017211914,3.2635747316741943,8.515362017211913,3.2539667316741943Q8.467062017211914,3.2443597316741943,8.417822017211915,3.2443597316741943Q8.316432017211914,3.2443597316741943,8.223042017211913,3.2838577316741944L8.223022017211914,3.283865731674194L8.222872017211914,3.283932731674194Q7.415332017211914,3.6255327316741943,6.792821017211914,4.2480397316741945Q5.474802017211914,5.566059731674194,5.474802017211914,7.430019731674195Q5.474802017211914,9.293979731674195,6.792821017211914,10.611999731674194Q8.110842017211914,11.930019731674195,9.974802017211914,11.930019731674195Q11.838762017211913,11.930019731674195,13.156782017211913,10.611999731674194Q14.474802017211914,9.293979731674195,14.474802017211914,7.430019731674195Q14.474802017211914,6.9706597316741945,14.383492017211914,6.524179731674194L14.383422017211915,6.523819731674195L14.383382017211915,6.523639731674194L13.403692017211913,6.724119731674195L8.612602017211914,4.204861731674194Z"
fill-rule=
"evenodd"
fill=
"#FFFFFF"
fill-opacity=
"1"
/></g></g><g
transform=
"matrix(0.7071067690849304,0.7071067690849304,-0.7071067690849304,0.7071067690849304,5.219374692351266,-7.617286286789749)"
><path
d=
"M14.716515429687501,2.61707421875L13.8048054296875,3.22488021875L12.8930954296875,2.61707421875Q12.544208429687501,2.38448021875,12.1745094296875,2.58233681875Q11.8048095996875,2.78019421875,11.8048095996875,3.1995092187500003L11.8048095996875,5.68164921875Q11.8048095996875,6.18618921875,12.2834504296875,6.34572921875L13.3045654296875,6.68609921875L13.3045654296875,9.325439218749999Q13.3045654296875,9.37468921875,13.3141754296875,9.422979218750001Q13.3237754296875,9.47127921875,13.3426254296875,9.516779218749999Q13.3614754296875,9.56227921875,13.3888254296875,9.603219218749999Q13.4161854296875,9.644169218750001,13.4510154296875,9.67898921875Q13.4858354296875,9.71381921875,13.5267754296875,9.741169218749999Q13.5677254296875,9.76852921875,13.6132254296875,9.78737921875Q13.6587254296875,9.80621921875,13.7070154296875,9.81582921875Q13.7553154296875,9.825439218749999,13.8045654296875,9.825439218749999Q13.8538154296875,9.825439218749999,13.9021054296875,9.81582921875Q13.9504054296875,9.80621921875,13.9959054296875,9.78737921875Q14.0414054296875,9.76852921875,14.0823454296875,9.741169218749999Q14.1232954296875,9.71381921875,14.1581154296875,9.67898921875Q14.1929454296875,9.644169218750001,14.2202954296875,9.603219218749999Q14.2476554296875,9.56227921875,14.2665054296875,9.516779218749999Q14.2853454296875,9.47127921875,14.2949554296875,9.422979218750001Q14.3045654296875,9.37468921875,14.3045654296875,9.325439218749999L14.3045654296875,6.68626921875L15.3261654296875,6.34572921875Q15.8048054296875,6.18618921875,15.8048054296875,5.68164921875L15.8048054296875,3.1995092187500003Q15.8048054296875,2.78019421875,15.4351054296875,2.58233681875Q15.0654054296875,2.38448021875,14.716515429687501,2.61707421875ZM13.4165154296875,4.16786921875L12.8048054296875,3.76005921875L12.8048054296875,5.46542921875L13.8048054296875,5.79875921875L14.8048054296875,5.46542921875L14.8048054296875,3.76005921875L14.1930954296875,4.16786921875Q13.8048054296875,4.42672921875,13.4165154296875,4.16786921875Z"
fill-rule=
"evenodd"
fill=
"#FFFFFF"
fill-opacity=
"1"
/></g></g></svg>
\ No newline at end of file
dsk-operate-ui/src/assets/icons/svg/markets.svg
View file @
63e197d8
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
fill=
"none"
version=
"1.1"
width=
"16"
height=
"16"
viewBox=
"0 0 16 16"
><g><g><g><ellipse
cx=
"8"
cy=
"8"
rx=
"4.5"
ry=
"4.5"
fill=
"#FFFFFF"
fill-opacity=
"0.5"
/></g><g><path
d=
""
fill=
"#D8D8D8"
fill-opacity=
"0"
/><path
d=
"M8,2Q8.04925,2,8.09754,1.990393Q8.14584,1.980785,8.19134,1.96194Q8.23684,1.9430939999999999,8.27778,1.915735Q8.31873,1.888375,8.35355,1.853553Q8.38837,1.818731,8.41573,1.777785Q8.44309,1.736839,8.46194,1.6913420000000001Q8.48078,1.645845,8.49039,1.5975451Q8.5,1.5492457,8.5,1.5Q8.5,1.4507543,8.49039,1.4024549Q8.48078,1.354155,8.46194,1.3086579999999999Q8.44309,1.263161,8.41573,1.222215Q8.38837,1.181269,8.35355,1.146447Q8.31873,1.111625,8.27778,1.084265Q8.23684,1.0569060000000001,8.19134,1.03806Q8.14584,1.019215,8.09754,1.009607Q8.04925,1,8,1L7.99929,1.000001Q5.10025,1.000252,3.05025,3.05025Q1,5.10051,1,8Q1,10.89949,3.05025,12.9497Q5.1005,15,8,15Q10.8995,15,12.9497,12.9497Q15,10.89949,15,8Q15,6.57618,14.4497,5.27513Q13.9184,4.0191,12.9501,3.05065L12.9497,3.05025Q12.8794,2.97993,12.7875,2.9418699999999998Q12.6957,2.90381,12.5962,2.90381Q12.5469,2.90381,12.4986,2.91341Q12.4503,2.92302,12.4049,2.9418699999999998Q12.3594,2.9607099999999997,12.3184,2.98807Q12.2775,3.0154300000000003,12.2426,3.05025Q12.2078,3.08507,12.1805,3.12602Q12.1531,3.16697,12.1343,3.21246Q12.1154,3.2579599999999997,12.1058,3.30626Q12.0962,3.35456,12.0962,3.40381Q12.0962,3.50326,12.1343,3.59515Q12.1723,3.68703,12.2426,3.75736L12.243,3.75773Q13.0734,4.58827,13.5287,5.66468Q14,6.77897,14,8Q14,10.48528,12.2426,12.2426Q10.48528,14,8,14Q5.51472,14,3.75736,12.2426Q2,10.48528,2,8Q2,5.51472,3.75736,3.75736Q5.51472,2,8,2Z"
fill-rule=
"evenodd"
fill=
"#FFFFFF"
fill-opacity=
"1"
/></g><g><path
d=
""
fill=
"#D8D8D8"
fill-opacity=
"0"
/><path
d=
"M12.14616,6.24824Q11.804549999999999,5.44059,11.18198,4.818019Q11.111650000000001,4.747693,11.019770000000001,4.709633Q10.92788,4.671573,10.82843,4.671573Q10.77918,4.671573,10.730879999999999,4.68118Q10.68258,4.6907879999999995,10.637080000000001,4.709633Q10.59159,4.728479,10.55064,4.755838Q10.509699999999999,4.783198,10.47487,4.81802Q10.44005,4.852841,10.41269,4.893788Q10.38533,4.934734,10.366489999999999,4.980231Q10.34764,5.02573,10.33803,5.0740300000000005Q10.32843,5.12233,10.32843,5.17157Q10.32843,5.27103,10.366489999999999,5.36291Q10.40455,5.4548000000000005,10.47487,5.52513Q10.95953,6.00978,11.225159999999999,6.6378Q11.5,7.28759,11.5,8Q11.5,9.44975,10.47487,10.47487Q9.44975,11.5,8,11.5Q6.55025,11.5,5.52513,10.47487Q4.5,9.44975,4.5,8Q4.5,6.55025,5.52513,5.52513Q6.55025,4.5,8,4.5L8,3.5Q6.1360399999999995,3.5,4.818019,4.818019Q3.5,6.1360399999999995,3.5,8Q3.5,9.863959999999999,4.818019,11.18198Q6.1360399999999995,12.5,8,12.5Q9.863959999999999,12.5,11.18198,11.18198Q12.5,9.863959999999999,12.5,8Q12.5,7.08481,12.14616,6.24824Z"
fill-rule=
"evenodd"
fill=
"#FFFFFF"
fill-opacity=
"1"
/></g><g><ellipse
cx=
"8"
cy=
"8"
rx=
"1"
ry=
"1"
fill=
"#FFFFFF"
fill-opacity=
"1"
/></g><g><path
d=
"M8 1C8 1 8 1 8 1L8.5 1C8.776142374915397 1 9 1.2238576250846034 9 1.5L9 8C9 8 9 8 9 8L8 8C8 8 8 8 8 8Z"
fill=
"#FFFFFF"
fill-opacity=
"1"
/></g></g></g></svg>
\ No newline at end of file
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
fill=
"none"
version=
"1.1"
width=
"17.2025146484375"
height=
"17.110595703125"
viewBox=
"0 0 17.2025146484375 17.110595703125"
><g><g><g><ellipse
cx=
"8.615457534790039"
cy=
"8.515636682510376"
rx=
"4.5"
ry=
"4.5"
fill=
"#FFFFFF"
fill-opacity=
"0.5"
/></g><g
transform=
"matrix(0.9634730815887451,0.2678050994873047,-0.2678050994873047,0.9634730815887451,0.31323370403424633,-1.0652691441899265)"
><path
d=
""
fill=
"#D8D8D8"
fill-opacity=
"0"
/><path
d=
"M9.352006597290039,1.1054855871429443Q9.39401659729004,1.0968885871429443,9.433956597290038,1.0812625871429442Q9.47389659729004,1.0656365871429443,9.51058659729004,1.0434375871429444Q9.54727659729004,1.0212395871429443,9.57965659729004,0.9931175871429443Q9.61202659729004,0.9649945871429444,9.63914659729004,0.9317705871429444Q9.66625659729004,0.8985455871429444,9.687316597290039,0.8611885871429443Q9.708376597290039,0.8238325871429444,9.72277659729004,0.7834345871429443Q9.737166597290038,0.7430375871429443,9.744466597290039,0.7007791871429443Q9.75176659729004,0.6585210871429443,9.75176659729004,0.6156365871429443Q9.75176659729004,0.5663908871429444,9.742166597290039,0.5180914871429443Q9.732556597290039,0.46979158714294433,9.713706597290038,0.4242945871429443Q9.694866597290039,0.3787975871429443,9.66750659729004,0.33785158714294433Q9.64014659729004,0.29690558714294435,9.60532659729004,0.26208358714294433Q9.570496597290038,0.2272615871429443,9.52955659729004,0.19990158714294431Q9.488606597290039,0.17254258714294435,9.44310659729004,0.15369658714294432Q9.397616597290039,0.13485158714294432,9.349316597290038,0.1252435871429443Q9.30101659729004,0.11563658714294434,9.25176659729004,0.11563658714294434Q9.201136597290038,0.11563658714294434,9.15153659729004,0.12578758714294436Q8.47385659729004,0.26445858714294435,7.836876597290039,0.5338796871429443Q6.580586597290039,1.0652465871429444,5.611996597290039,2.033836587142944Q3.561746597290039,4.0840765871429445,3.561746597290039,6.983576587142944Q3.561746597290039,9.883076587142945,5.611996597290039,11.933336587142945Q7.662246597290039,13.983536587142945,10.561746597290039,13.983536587142945Q13.461246597290039,13.983536587142945,15.511446597290039,11.933336587142945Q17.56174659729004,9.883076587142945,17.56174659729004,6.983576587142944Q17.56174659729004,5.560116587142945,17.01174659729004,4.259366587142944L17.01154659729004,4.259006587142944L17.01144659729004,4.258706587142944L16.09044659729004,4.6482665871429445L16.09044659729004,4.648326587142944L16.09074659729004,4.649046587142944Q16.56174659729004,5.762976587142944,16.56174659729004,6.983576587142944Q16.56174659729004,9.468866587142944,14.804346597290039,11.226236587142944Q13.047026597290039,12.983536587142945,10.561746597290039,12.983536587142945Q8.07646659729004,12.983536587142945,6.319106597290039,11.226236587142944Q4.561746597290039,9.468866587142944,4.561746597290039,6.983576587142944Q4.561746597290039,4.498296587142944,6.319106597290039,2.7409365871429445Q7.149776597290039,1.9102665871429443,8.22642659729004,1.4548845871429443Q8.771786597290038,1.2242155871429443,9.352006597290039,1.1054855871429443Z"
fill-rule=
"evenodd"
fill=
"#FFFFFF"
fill-opacity=
"1"
/></g><g
transform=
"matrix(0.9501094818115234,0.31191641092300415,-0.31191641092300415,0.9501094818115234,1.4660147399584815,-1.6768402728204137)"
><path
d=
""
fill=
"#D8D8D8"
fill-opacity=
"0"
/><path
d=
"M8.61263253479004,4.204861731674194Q8.680502534790039,4.1761547316741945,8.73720253479004,4.129087731674194Q8.793902534790039,4.082019731674194,8.83462253479004,4.020594731674194Q8.87533253479004,3.9591697316741943,8.896592534790038,3.8886107316741945Q8.91785253479004,3.8180521316741944,8.91785253479004,3.7443597316741943Q8.91785253479004,3.695114031674194,8.90824253479004,3.6468146316741943Q8.898632534790039,3.5985147316741943,8.879792534790038,3.553017731674194Q8.86094253479004,3.5075207316741945,8.83358253479004,3.466574731674194Q8.806222534790038,3.4256287316741942,8.771402534790038,3.3908067316741946Q8.736582534790038,3.3559847316741944,8.69563253479004,3.328624731674194Q8.654692534790039,3.3012657316741945,8.60919253479004,3.282419731674194Q8.56369253479004,3.2635747316741943,8.515392534790038,3.2539667316741943Q8.467092534790039,3.2443597316741943,8.41785253479004,3.2443597316741943Q8.31646253479004,3.2443597316741943,8.223072534790038,3.2838577316741944L8.223052534790039,3.283865731674194L8.22290253479004,3.283932731674194Q7.415362534790039,3.6255327316741943,6.792851534790039,4.2480397316741945Q5.474832534790039,5.566059731674194,5.474832534790039,7.430019731674195Q5.474832534790039,9.293979731674195,6.792851534790039,10.611999731674194Q8.110872534790039,11.930019731674195,9.974832534790039,11.930019731674195Q11.838792534790038,11.930019731674195,13.156812534790038,10.611999731674194Q14.474832534790039,9.293979731674195,14.474832534790039,7.430019731674195Q14.474832534790039,6.9706597316741945,14.383522534790039,6.524179731674194L14.38345253479004,6.523819731674195L14.38341253479004,6.523639731674194L13.403722534790038,6.724119731674195L8.61263253479004,4.204861731674194Z"
fill-rule=
"evenodd"
fill=
"#FFFFFF"
fill-opacity=
"1"
/></g></g><g
transform=
"matrix(0.7071067690849304,0.7071067690849304,-0.7071067690849304,0.7071067690849304,5.21939256913538,-7.617329445161886)"
><path
d=
"M14.716576464843751,2.61719621875L13.80486646484375,3.2250022187500003L12.89315646484375,2.61719621875Q12.544269464843751,2.38460221875,12.17457046484375,2.58245891875Q11.80487063484375,2.78031621875,11.80487063484375,3.19963121875L11.80487063484375,5.68177921875Q11.80487063484375,6.18630921875,12.28351146484375,6.345849218750001L13.30486646484375,6.68630921875L13.30486646484375,9.32555921875Q13.30486646484375,9.37480921875,13.31447646484375,9.42310921875Q13.32408646484375,9.47140921875,13.34292646484375,9.51689921875Q13.36177646484375,9.56239921875,13.38913646484375,9.603349218750001Q13.41649646484375,9.64428921875,13.45131646484375,9.67911921875Q13.48613646484375,9.71393921875,13.52708646484375,9.741299218750001Q13.56803646484375,9.768659218749999,13.61352646484375,9.78749921875Q13.65902646484375,9.80634921875,13.70732646484375,9.81594921875Q13.75562646484375,9.82555921875,13.80486646484375,9.82555921875Q13.85411646484375,9.82555921875,13.90241646484375,9.81594921875Q13.950716464843751,9.80634921875,13.99621646484375,9.78749921875Q14.04170646484375,9.768659218749999,14.082656464843751,9.741299218750001Q14.12360646484375,9.71393921875,14.15842646484375,9.67911921875Q14.19324646484375,9.64428921875,14.22060646484375,9.603349218750001Q14.24796646484375,9.56239921875,14.26680646484375,9.51689921875Q14.28565646484375,9.47140921875,14.295266464843749,9.42310921875Q14.30486646484375,9.37480921875,14.30486646484375,9.32555921875L14.30486646484375,6.68630921875L15.32622646484375,6.345849218750001Q15.80486646484375,6.18630921875,15.80486646484375,5.68177921875L15.80486646484375,3.19963121875Q15.80486646484375,2.78031621875,15.43516646484375,2.58245891875Q15.06546646484375,2.38460221875,14.716576464843751,2.61719621875ZM13.41657646484375,4.16798921875L12.80486646484375,3.76018921875L12.80486646484375,5.4655492187500005L13.80486646484375,5.79887921875L14.80486646484375,5.4655492187500005L14.80486646484375,3.76018921875L14.19315646484375,4.16798921875Q13.80486646484375,4.42684921875,13.41657646484375,4.16798921875Z"
fill-rule=
"evenodd"
fill=
"#FFFFFF"
fill-opacity=
"1"
/></g></g></svg>
\ No newline at end of file
dsk-operate-ui/src/assets/images/enterprise/enterprise-search-icon.svg
0 → 100644
View file @
63e197d8
<svg
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
fill=
"none"
version=
"1.1"
width=
"16"
height=
"16"
viewBox=
"0 0 16 16"
><defs><clipPath
id=
"master_svg0_1326_147842/1262_137253"
><rect
x=
"0"
y=
"0"
width=
"16"
height=
"16"
rx=
"0"
/></clipPath></defs><g
clip-path=
"url(#master_svg0_1326_147842/1262_137253)"
><g><path
d=
"M10.551783125,3.9530996875C8.729353125,2.1306496875,5.774553125,2.1306496875,3.952123125,3.9530996875C2.129673125,5.7755296875,2.129673125,8.7303296875,3.952123125,10.5527596875C5.774553125,12.3752296875,8.729353125,12.3752296875,10.551783125,10.5527596875C12.374253125,8.7303296875,12.374253125,5.7755296875,10.551783125,3.9530996875C10.551783125,3.9530996875,10.551783125,3.9530996875,10.551783125,3.9530996875ZM3.0093131250000003,3.0102896875000003C5.352453125,0.6671426875,9.151453125,0.6671426875,11.494553125,3.0102896875000003C13.678353125,5.1940996875,13.826953125,8.6424596875,11.940153125,10.9982596875C11.940153125,10.9982596875,14.323053125,13.3812296875,14.323053125,13.3812296875C14.323053125,13.3812296875,13.380253125,14.3240296875,13.380253125,14.3240296875C13.380253125,14.3240296875,10.997283125,11.9411296875,10.997283125,11.9411296875C8.641483125,13.8279296875,5.193123125,13.6793296875,3.0093131250000003,11.4955296875C0.666166125,9.1524296875,0.666166125,5.3534296875,3.0093131250000003,3.0102896875000003C3.0093131250000003,3.0102896875000003,3.0093131250000003,3.0102896875000003,3.0093131250000003,3.0102896875000003Z"
fill-rule=
"evenodd"
fill=
"#0081FF"
fill-opacity=
"1"
/></g></g></svg>
\ No newline at end of file
dsk-operate-ui/src/assets/js/jskplug.js
View file @
63e197d8
...
...
@@ -3,87 +3,87 @@
* 1、url地址,如正式环境企业详情:https://plug.jiansheku.com/enterprise/56546856314e567a69?ak=bc8e534da5ea40639b2f084919280a82&initTime=1694507179060&uid=4a3b4bfdfbca4bff9d9bd7c8fd42f533(ak:接口获得的accesToken;initTime:获得accesToken时的时间戳;uid:用户标识)
*
* */
const
steerScroll
=
function
(
iframeId
,
navigation
,
footHeight
,
state
,
parentId
,
_this
)
{
// iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略)
let
dom
=
window
const
steerScroll
=
function
(
iframeId
,
navigation
,
footHeight
,
state
,
parentId
,
_this
)
{
// iframeId: iframe的id;navigation:页面排除iframe后剩下的顶部高度;footHeight: 页面排除iframe后剩下的底部高度;state:监听or移除监听;parentId: 父级id[不带默认就是铺满整个页面]];_this:指向当前实例(可忽略)
let
dom
=
window
;
if
(
parentId
)
{
// 默认页面可以滚动
dom
=
document
.
getElementById
(
parentId
)
dom
=
document
.
getElementById
(
parentId
)
;
if
(
!
dom
)
{
return
return
;
}
dom
.
style
.
overflow
=
'auto'
dom
.
style
.
overflow
=
'auto'
;
}
else
{
document
.
body
.
style
.
overflow
=
'visible'
document
.
body
.
style
.
overflow
=
'visible'
;
}
if
(
state
)
{
window
.
addEventListener
(
'message'
,
function
(
e
)
{
const
data
=
e
.
data
const
sct
=
parentId
?
dom
.
scrollTop
:
document
&&
document
.
documentElement
.
scrollTop
||
document
&&
document
.
body
.
scrollTop
window
.
addEventListener
(
'message'
,
function
(
e
)
{
const
data
=
e
.
data
;
const
sct
=
parentId
?
dom
.
scrollTop
:
document
&&
document
.
documentElement
.
scrollTop
||
document
&&
document
.
body
.
scrollTop
;
if
(
data
&&
typeof
data
===
'object'
)
{
// 动态设置iFrame高度
if
(
data
.
height
)
{
document
.
getElementById
(
iframeId
).
style
.
height
=
data
.
height
+
'px'
scrolling
(
iframeId
,
navigation
,
footHeight
,
parentId
)
// 初始加载获取滚动条距离顶部高度
document
.
getElementById
(
iframeId
).
style
.
height
=
data
.
height
+
'px'
;
scrolling
(
iframeId
,
navigation
,
footHeight
,
parentId
)
;
// 初始加载获取滚动条距离顶部高度
}
// 插件当前路由
if
(
_this
&&
data
.
currentPath
)
{
_this
.
currentRoute
=
data
_this
.
searchFlag
=
data
.
currentName
.
includes
(
'search-'
)
?
true
:
false
_this
.
currentRoute
=
data
;
_this
.
searchFlag
=
data
.
currentName
.
includes
(
'search-'
)
?
true
:
false
;
}
// 点击企业详情页 栏目名动态设置滚动高度
if
(
data
.
scrollHeight
)
{
const
navHeight
=
navigation
.
isFixed
&&
!
parentId
?
navigation
.
totalHeight
-
navigation
.
fixedHeight
:
!
parentId
?
navigation
.
totalHeight
:
0
dom
.
scrollTo
(
sct
,
parseInt
(
data
.
scrollHeight
)
+
navHeight
)
const
navHeight
=
navigation
.
isFixed
&&
!
parentId
?
navigation
.
totalHeight
-
navigation
.
fixedHeight
:
!
parentId
?
navigation
.
totalHeight
:
0
;
dom
.
scrollTo
(
sct
,
parseInt
(
data
.
scrollHeight
)
+
navHeight
)
;
}
// 点击企业详情页 栏目下拉子标签动态设置滚动高度
if
(
data
.
clientHeight
)
{
dom
.
scrollTo
(
sct
,
sct
-
parseInt
(
data
.
clientHeight
))
dom
.
scrollTo
(
sct
,
sct
-
parseInt
(
data
.
clientHeight
))
;
}
// 点击下拉子标签动态设置滚动高度
if
(
data
.
initHeight
>=
0
)
{
dom
.
scrollTo
(
sct
,
data
.
initHeight
)
dom
.
scrollTo
(
sct
,
data
.
initHeight
)
;
}
// 根据子页面弹窗显示隐藏控制当前页面是否固定不可滚动
if
(
data
.
scrollDisabled
||
data
.
scrollDisabled
===
false
)
{
if
(
parentId
)
{
dom
.
style
.
overflow
=
data
.
scrollDisabled
?
'hidden'
:
'auto'
dom
.
style
.
overflow
=
data
.
scrollDisabled
?
'hidden'
:
'auto'
;
}
else
{
document
.
body
.
style
.
overflow
=
data
.
scrollDisabled
?
'hidden'
:
'visible'
document
.
body
.
style
.
overflow
=
data
.
scrollDisabled
?
'hidden'
:
'visible'
;
}
}
}
})
})
;
dom
.
addEventListener
(
'scroll'
,
(
event
)
=>
{
scrolling
(
iframeId
,
navigation
,
footHeight
,
parentId
)
})
scrolling
(
iframeId
,
navigation
,
footHeight
,
parentId
)
;
})
;
}
else
{
dom
.
removeEventListener
(
'scroll'
,
(
event
)
=>
{
scrolling
(
iframeId
,
navigation
,
footHeight
,
parentId
)
})
scrolling
(
iframeId
,
navigation
,
footHeight
,
parentId
)
;
})
;
}
}
}
;
const
scrolling
=
function
(
iframeId
,
navigation
,
footHeight
,
parentId
)
{
const
scrolling
=
function
(
iframeId
,
navigation
,
footHeight
,
parentId
)
{
// 滚动条距文档顶部的距离
let
scrollTop
=
parentId
?
document
.
getElementById
(
parentId
).
scrollTop
:
window
.
pageYOffset
||
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
let
scrollTop
=
parentId
?
document
.
getElementById
(
parentId
).
scrollTop
:
window
.
pageYOffset
||
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
;
// 将滚动距离传入子组件
const
ifa
=
document
.
getElementById
(
iframeId
)
scrollTop
=
scrollTop
+
navigation
.
totalHeight
let
rippleHeight
=
0
//插件筛选条件浮动层距离底部距离
let
scrollGap
=
parentId
?
document
.
getElementById
(
parentId
).
scrollTop
:
window
.
scrollTop
||
document
.
body
.
scrollTop
||
document
.
documentElement
.
scrollTop
let
scrollHeight
=
parentId
?
document
.
getElementById
(
parentId
).
offsetHeight
:
window
.
scrollHeight
||
document
.
body
.
scrollHeight
||
document
.
documentElement
.
scrollHeight
let
domHeight
=
parentId
?
document
.
getElementById
(
parentId
).
clientHeight
:
window
.
clientHeight
||
document
.
body
.
clientHeight
||
document
.
documentElement
.
clientHeight
if
(
parentId
)
{
//网页内部嵌套时
rippleHeight
=
scrollHeight
-
scrollGap
-
domHeight
}
else
{
//
if
(
scrollHeight
-
scrollGap
-
domHeight
<=
footHeight
)
{
rippleHeight
=
0
}
else
{
rippleHeight
=
scrollHeight
-
scrollGap
-
domHeight
-
footHeight
const
ifa
=
document
.
getElementById
(
iframeId
)
;
scrollTop
=
scrollTop
+
navigation
.
totalHeight
;
let
rippleHeight
=
0
;
//插件筛选条件浮动层距离底部距离
let
scrollGap
=
parentId
?
document
.
getElementById
(
parentId
).
scrollTop
:
window
.
scrollTop
||
document
.
body
.
scrollTop
||
document
.
documentElement
.
scrollTop
;
let
scrollHeight
=
parentId
?
document
.
getElementById
(
parentId
).
offsetHeight
:
window
.
scrollHeight
||
document
.
body
.
scrollHeight
||
document
.
documentElement
.
scrollHeight
;
let
domHeight
=
parentId
?
document
.
getElementById
(
parentId
).
clientHeight
:
window
.
clientHeight
||
document
.
body
.
clientHeight
||
document
.
documentElement
.
clientHeight
;
if
(
parentId
)
{
//网页内部嵌套时
rippleHeight
=
scrollHeight
-
scrollGap
-
domHeight
;
}
else
{
//
if
(
scrollHeight
-
scrollGap
-
domHeight
<=
footHeight
)
{
rippleHeight
=
0
;
}
else
{
rippleHeight
=
scrollHeight
-
scrollGap
-
domHeight
-
footHeight
;
}
}
ifa
.
contentWindow
.
postMessage
({
'scrollTop'
:
scrollTop
,
'navHeight'
:
navigation
.
totalHeight
,
'rippleHeight'
:
rippleHeight
},
'*'
)
}
ifa
?
ifa
.
contentWindow
.
postMessage
({
'scrollTop'
:
scrollTop
,
'navHeight'
:
navigation
.
totalHeight
,
'rippleHeight'
:
rippleHeight
},
'*'
)
:
null
;
}
;
export
{
steerScroll
}
}
;
dsk-operate-ui/src/assets/styles/common.css
0 → 100644
View file @
63e197d8
.search-enter-active
,
.search-leave-active
{
width
:
242px
;
transition
:
width
0.5s
;
}
.search-enter
,
.search-leave-to
{
width
:
60px
;
}
dsk-operate-ui/src/assets/styles/index.scss
View file @
63e197d8
...
...
@@ -336,7 +336,7 @@ ul, li {
.el-table__header-wrapper
{
th
{
background
:
#F0F3FA
;
text-align
:
left
;
//
text-align: left;
}
}
.el-table__fixed-header-wrapper
{
...
...
@@ -628,7 +628,7 @@ ul, li {
line-height
:
32px
;
}
&
:hover
{
color
:
#f
;
color
:
#f
ff
;
border-color
:
#006AD1
;
}
}
...
...
dsk-operate-ui/src/assets/styles/search-common.scss
0 → 100644
View file @
63e197d8
::v-deep
.head-form-new
{
margin-bottom
:
8px
;
.query-box
{
.from-item
{
display
:
flex
;
align-items
:
center
;
height
:
32px
;
}
// 下拉选择
.el-cascader
,
.el-select
{
max-width
:
unset
!
important
;
width
:
64px
;
padding
:
0px
8px
;
transition
:
width
0
.3s
;
box-sizing
:
border-box
;
.el-cascader__tags
,
.el-select__tags
{
flex-wrap
:
nowrap
;
.el-tag
:first-child
{
width
:
auto
;
}
}
.el-cascader__tags
{
.el-tag
{
max-width
:
unset
!
important
;
}
}
.el-input
{
display
:
flex
;
align-items
:
center
;
&
>
input
{
padding
:
0px
;
border
:
none
;
height
:
30px
;
line-height
:
30px
;
box-sizing
:
border-box
;
&
:
:
placeholder
{
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
font-size
:
14px
;
}
}
&
>
.el-input__suffix
{
position
:
unset
;
.el-input__suffix-inner
{
i
{
font-size
:
12px
;
line-height
:
30px
;
width
:
auto
;
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
}
}
}
}
}
// 自定义事件选择 金额选择
.custom-select
{
height
:
32px
;
transition
:
width
0
.3s
;
.block
{
&
>
.el-input
{
display
:
flex
;
align-items
:
center
;
&
>
input
{
padding
:
0px
;
border
:
none
;
height
:
30px
;
line-height
:
30px
;
box-sizing
:
border-box
;
&
:
:
placeholder
{
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
font-size
:
14px
;
}
}
&
>
.el-input__suffix
{
position
:
unset
;
width
:
auto
;
.el-input__suffix-inner
{
span
,
i
{
font-size
:
12px
;
line-height
:
30px
;
width
:
auto
;
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
}
}
}
}
}
}
// 时间选择器
.el-date-editor
{
height
:
32px
;
line-height
:
32px
;
padding-right
:
5px
;
}
// 企业搜索框
.enterprise-search-container
{
height
:
32px
;
line-height
:
32px
;
border-radius
:
4px
;
.el-input__inner
{
height
:
30px
;
line-height
:
30px
;
}
&
>
span
{
border-top-right-radius
:
4px
;
border-bottom-right-radius
:
4px
;
height
:
30px
;
line-height
:
30px
;
}
&
.span-ba
{
&
>
span
{
border-top-right-radius
:
0px
;
border-bottom-right-radius
:
0px
;
}
}
.el-input__suffix
{
right
:
0px
;
.el-input__icon
{
display
:
flex
;
align-items
:
center
;
}
}
}
}
}
dsk-operate-ui/src/main.js
View file @
63e197d8
import
Vue
from
'vue'
import
Vue
from
'vue'
;
import
Cookies
from
'js-cookie'
import
Cookies
from
'js-cookie'
;
import
Element
from
'element-ui'
import
'./assets/styles/element-variables.scss'
import
Element
from
'element-ui'
;
import
'./assets/styles/element-variables.scss'
;
import
'@/assets/styles/index.scss'
// global css
import
'@/assets/styles/ruoyi.scss'
// ruoyi css
import
App
from
'./App'
import
store
from
'./store'
import
router
from
'./router'
import
directive
from
'./directive'
// directive
import
plugins
from
'./plugins'
// plugins
import
{
download
}
from
'@/utils/request'
import
horizontalScroll
from
'el-table-horizontal-scroll'
import
"@/assets/styles/common.css"
;
import
'@/assets/styles/index.scss'
;
// global css
import
'@/assets/styles/ruoyi.scss'
;
// ruoyi css
import
App
from
'./App'
;
import
store
from
'./store'
;
import
router
from
'./router'
;
import
directive
from
'./directive'
;
// directive
import
plugins
from
'./plugins'
;
// plugins
import
{
download
}
from
'@/utils/request'
;
import
horizontalScroll
from
'el-table-horizontal-scroll'
;
import
'./assets/icons'
// icon
import
'./permission'
// permission control
import
'./assets/icons'
;
// icon
import
'./permission'
;
// permission control
import
{
getDicts
}
from
"@/api/system/dict/data"
;
import
{
getConfigKey
}
from
"@/api/system/config"
;
import
{
parseTime
,
resetForm
,
addDateRange
,
selectDictLabel
,
selectDictLabels
,
handleTree
}
from
"@/utils/ruoyi"
;
// 分页组件
import
Pagination
from
"@/components/Pagination"
;
// 自定义表格工具组件
import
RightToolbar
from
"@/components/RightToolbar"
import
RightToolbar
from
"@/components/RightToolbar"
;
// 富文本组件
import
Editor
from
"@/components/Editor"
import
Editor
from
"@/components/Editor"
;
// 文件上传组件
import
FileUpload
from
"@/components/FileUpload"
import
FileUpload
from
"@/components/FileUpload"
;
// 图片上传组件
import
ImageUpload
from
"@/components/ImageUpload"
import
ImageUpload
from
"@/components/ImageUpload"
;
// 图片预览组件
import
ImagePreview
from
"@/components/ImagePreview"
import
ImagePreview
from
"@/components/ImagePreview"
;
// 字典标签组件
import
DictTag
from
'@/components/DictTag'
import
DictTag
from
'@/components/DictTag'
;
// 头部标签组件
import
VueMeta
from
'vue-meta'
import
VueMeta
from
'vue-meta'
;
// 字典数据组件
import
DictData
from
'@/components/DictData'
import
DictData
from
'@/components/DictData'
;
// 全局方法挂载
Vue
.
prototype
.
getDicts
=
getDicts
Vue
.
prototype
.
getConfigKey
=
getConfigKey
Vue
.
prototype
.
parseTime
=
parseTime
Vue
.
prototype
.
resetForm
=
resetForm
Vue
.
prototype
.
addDateRange
=
addDateRange
Vue
.
prototype
.
selectDictLabel
=
selectDictLabel
Vue
.
prototype
.
selectDictLabels
=
selectDictLabels
Vue
.
prototype
.
download
=
download
Vue
.
prototype
.
handleTree
=
handleTree
Vue
.
prototype
.
getDicts
=
getDicts
;
Vue
.
prototype
.
getConfigKey
=
getConfigKey
;
Vue
.
prototype
.
parseTime
=
parseTime
;
Vue
.
prototype
.
resetForm
=
resetForm
;
Vue
.
prototype
.
addDateRange
=
addDateRange
;
Vue
.
prototype
.
selectDictLabel
=
selectDictLabel
;
Vue
.
prototype
.
selectDictLabels
=
selectDictLabels
;
Vue
.
prototype
.
download
=
download
;
Vue
.
prototype
.
handleTree
=
handleTree
;
// 全局组件挂载
Vue
.
component
(
'DictTag'
,
DictTag
)
Vue
.
component
(
'Pagination'
,
Pagination
)
Vue
.
component
(
'RightToolbar'
,
RightToolbar
)
Vue
.
component
(
'Editor'
,
Editor
)
Vue
.
component
(
'FileUpload'
,
FileUpload
)
Vue
.
component
(
'ImageUpload'
,
ImageUpload
)
Vue
.
component
(
'ImagePreview'
,
ImagePreview
)
Vue
.
component
(
'DictTag'
,
DictTag
)
;
Vue
.
component
(
'Pagination'
,
Pagination
)
;
Vue
.
component
(
'RightToolbar'
,
RightToolbar
)
;
Vue
.
component
(
'Editor'
,
Editor
)
;
Vue
.
component
(
'FileUpload'
,
FileUpload
)
;
Vue
.
component
(
'ImageUpload'
,
ImageUpload
)
;
Vue
.
component
(
'ImagePreview'
,
ImagePreview
)
;
Vue
.
use
(
horizontalScroll
)
Vue
.
use
(
directive
)
Vue
.
use
(
plugins
)
Vue
.
use
(
VueMeta
)
DictData
.
install
()
Vue
.
use
(
horizontalScroll
)
;
Vue
.
use
(
directive
)
;
Vue
.
use
(
plugins
)
;
Vue
.
use
(
VueMeta
)
;
DictData
.
install
()
;
/**
* If you don't want to use mock-server
...
...
@@ -76,13 +77,13 @@ DictData.install()
Vue
.
use
(
Element
,
{
size
:
Cookies
.
get
(
'size'
)
||
'medium'
// set element-ui default size
})
})
;
Vue
.
config
.
productionTip
=
false
Vue
.
config
.
productionTip
=
false
;
new
Vue
({
el
:
'#app'
,
router
,
store
,
render
:
h
=>
h
(
App
)
})
})
;
dsk-operate-ui/src/views/custom/historicalCustomers/index.vue
View file @
63e197d8
...
...
@@ -19,7 +19,7 @@
</div>
</div>
<skeleton
v-if=
"isSkeleton"
></skeleton>
<el-table
v-if=
"!isSkeleton&&tableData.total > 0"
class=
"fixed-table"
v-horizontal-scroll=
"
hover
"
max-height=
"640"
<el-table
v-if=
"!isSkeleton&&tableData.total > 0"
class=
"fixed-table"
v-horizontal-scroll=
"
tableData.total > 10 ? 'hover' : 'false'
"
max-height=
"640"
:data=
"tableData.rows"
stripe
border
style=
"width: 100%"
>
...
...
dsk-operate-ui/src/views/custom/overview/index.vue
View file @
63e197d8
...
...
@@ -118,8 +118,8 @@
自定义
<el-date-picker
ref=
"picker"
v-if=
"datatype ==3"
:default-value=
"defaultValue"
style=
"position: absolute;opacity: 0;left: -12px;width: 60px;"
v-model=
"pickerValue"
type=
"daterange"
range-separator=
"至"
...
...
@@ -507,10 +507,10 @@
}
this
.
datatype
=
key
;
if
(
value
==
'自定义'
)
{
//
this.$refs.picker && this.$refs.picker.length && this.$refs.picker[0].focus()
//
this.$nextTick(() => {
this
.
$refs
.
picker
&&
this
.
$refs
.
picker
.
length
&&
this
.
$refs
.
picker
[
0
].
focus
()
this
.
$nextTick
(()
=>
{
// this.$refs['picker-block'].appendChild(this.$refs.picker[0].popperElm)
//
})
})
}
else
{
this
.
pickerValue
=
[]
let
timeStr
=
[]
...
...
@@ -859,8 +859,8 @@
.time-label
{
.labels
{
width
:
240px
;
height
:
3
2
px
;
line-height
:
3
2
px
;
height
:
3
0
px
;
line-height
:
3
0
px
;
border-radius
:
4px
;
>
div
{
height
:
100%
;
...
...
@@ -888,12 +888,7 @@
}
}
}
::v-deep
.el-date-editor
{
width
:
320px
;
position
:
absolute
;
right
:
250px
;
height
:
32px
;
}
::v-deep
.picker-block
{
position
:
relative
;
...
...
@@ -904,6 +899,14 @@
visibility
:hidden
;
clear
:both
;
}
.el-picker-panel.el-date-range-picker.el-popper
{
left
:
-650px
!
important
;
}
.popper__arrow
{
left
:
30px
!
important
;
}
}
}
}
...
...
dsk-operate-ui/src/views/detail/groupAccount/component/performance.vue
View file @
63e197d8
...
...
@@ -7,7 +7,7 @@
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
@
handle-excel=
"click
Dialog
"
@
handle-excel=
"click
EXCEL
"
>
<template
slot=
"slot"
>
...
...
@@ -48,55 +48,6 @@
<div>
{{
scope
.
row
.
bidAmount
||
'--'
}}{{
scope
.
row
.
bidAmount
?
'万元'
:
''
}}
</div>
</
template
>
</tables>
<el-dialog
:visible
.
sync=
"dialogExportVisible"
width=
"640px"
append-to-body
class=
"dialogExport"
>
<
template
slot=
"title"
>
<img
class=
"tip-img"
src=
"@/assets/images/icon.png"
/>
数据导出
</
template
>
<div
class=
"table-item"
>
<el-table
:data=
"exportTableData"
>
<el-table-column
prop=
"bidTime"
label=
"中标时间"
width=
"110"
></el-table-column>
<el-table-column
prop=
"companyName"
label=
"中标成员"
width=
"200"
></el-table-column>
<el-table-column
prop=
"stockPercent"
label=
"持股比例"
min-width=
"100"
></el-table-column>
<el-table-column
prop=
"projectName"
label=
"项目名称"
min-width=
"220"
></el-table-column>
<el-table-column
prop=
"bidAmount"
label=
"中标金额"
min-width=
"100"
></el-table-column>
<el-table-column
prop=
"address"
label=
"中标地区"
min-width=
"120"
></el-table-column>
<el-table-column
prop=
"boundType"
label=
"业绩类型"
min-width=
"130"
></el-table-column>
<el-table-column
prop=
"projectType"
label=
"项目类型"
min-width=
"100"
></el-table-column>
<el-table-column
prop=
"projectUnit"
label=
"业主单位"
min-width=
"160"
></el-table-column>
</el-table>
</div>
<div
class=
"input"
>
导出数量:
<el-input
placeholder=
""
v-model=
"value"
oninput=
"value=value.replace(/[^\d]/g,'')"
>
<
template
slot=
"append"
>
条
</
template
>
</el-input>
<p
v-if=
"value > 2000"
><i
class=
"el-icon-error"
></i>
最多支持导出2000条,如需更多联系大司空客服人员
</p>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"clickEXCEL"
>
确认导出
</el-button>
<el-button
@
click=
"cancel"
>
取消
</el-button>
</div>
</el-dialog>
<el-dialog
:visible
.
sync=
"dialogExportVisible1"
width=
"640px"
append-to-body
class=
"dialogExport"
>
<
template
slot=
"title"
>
<img
class=
"tip-img"
src=
"@/assets/images/icon.png"
/>
数据导出
</
template
>
<div
class=
"content"
>
<img
class=
"success"
src=
"@/assets/images/success.png"
/>
<p
class=
"p1"
>
导出成功
</p>
<p
class=
"p2"
>
可在个人中心查看导出表格
<span
@
click=
"toUrl"
>
前往个人中心
</span>
</p>
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"downloadFile(exportData.url,exportData.originalName)"
>
下载表格
</el-button>
<el-button
@
click=
"dialogExportVisible1 = false"
>
取消
</el-button>
</div>
</el-dialog>
</div>
</template>
...
...
@@ -154,45 +105,7 @@
],
timeList
:
[
'近三天'
,
'近七天'
,
'近半月'
,
'自定义'
],
moneyList
:
[
'5000万以下'
,
'5000万-1亿'
,
'1亿-5亿'
,
'5亿-10亿'
,
'10亿以上'
,
'自定义'
],
dataEXCEL
:{},
dialogExportVisible
:
false
,
dialogExportVisible1
:
false
,
exportTableData
:[
{
"bidTime"
:
"2023-09-21"
,
"companyId"
:
329637
,
"address"
:
"浙江省"
,
"stockPercent"
:
"4.87%"
,
"boundType"
:
"施工"
,
"projectUnit"
:
"浙江浙能北仑发电有限公司"
,
"memberLevel"
:
"四级企业"
,
"companyName"
:
"浙江华业电力工程股份有限公司"
,
"projectType"
:
"机电工程"
,
"bidAmount"
:
"64.9565万元"
,
"projectName"
:
"浙江浙能北仑发电有限公司5号炉后包覆区域省煤器和后包覆受热面检修"
,
"projectId"
:
"147703347"
,
"uipId"
:
null
,
"projectUnitUipId"
:
null
},
{
"bidTime"
:
"2023-09-21"
,
"companyId"
:
329637
,
"address"
:
"河南省-郑州市"
,
"stockPercent"
:
"1.56%"
,
"boundType"
:
"施工"
,
"projectUnit"
:
"郑州地铁集团有限公司运营分公司"
,
"memberLevel"
:
"四级企业"
,
"companyName"
:
"中铁电气化局集团第三工程有限公司"
,
"projectType"
:
"机电工程"
,
"bidAmount"
:
"74.8018万元"
,
"projectName"
:
"郑州市轨道交通1号线、城郊线一期2023年加装摄像机技改项目"
,
"projectId"
:
"147703347"
,
"uipId"
:
null
,
"projectUnitUipId"
:
null
},
],
value
:
''
,
exportData
:{}
dataEXCEL
:{}
}
},
created
()
{
...
...
@@ -351,33 +264,20 @@
this
.
handleQuery
(
params
)
this
.
$emit
(
'handle-scroll'
)
},
clickDialog
(){
this
.
dialogExportVisible
=
true
;
},
clickEXCEL
()
{
if
(
this
.
value
>
2000
){
return
}
this
.
dialogExportVisible
=
false
;
this
.
dataEXCEL
.
combineName
=
this
.
combineName
;
if
(
this
.
value
){
this
.
dataEXCEL
.
pageSize
=
this
.
value
if
(
this
.
tableDataTotal
>
2000
){
this
.
dataEXCEL
.
pageSize
=
2000
;
}
else
{
this
.
dataEXCEL
.
pageSize
=
this
.
tableDataTotal
>
2000
?
2000
:
this
.
tableDataTotal
;
this
.
dataEXCEL
.
pageSize
=
this
.
tableDataTotal
;
}
delete
this
.
dataEXCEL
.
pageNum
exportWinBid
(
this
.
dataEXCEL
).
then
(
res
=>
{
if
(
res
.
code
===
200
){
this
.
dialogExportVisible1
=
true
;
this
.
value
=
''
this
.
exportData
=
res
.
data
;
this
.
downloadFile
(
res
.
data
.
url
,
res
.
data
.
originalName
)
}
})
},
cancel
(){
this
.
dialogExportVisible
=
false
this
.
value
=
''
// this.$download.exportByPost('/combine/info/export/win/bid',this.dataEXCEL,'集团中标.xlsx');
},
downloadFile
(
url
,
fileName
)
{
const
x
=
new
XMLHttpRequest
()
...
...
@@ -392,13 +292,7 @@
a
.
remove
()
}
x
.
send
()
},
toUrl
(){
this
.
dialogExportVisible1
=
false
;
this
.
$router
.
push
({
path
:
'/user/profile'
,
})
},
}
}
}
</
script
>
...
...
@@ -430,89 +324,4 @@
}
}
}
.dialogExport
{
::v-deep
.el-dialog
{
.el-dialog__header
{
height
:
48px
;
line-height
:
48px
;
padding
:
0
16px
;
border-bottom
:
1px
solid
#E1E1E1
;
font-weight
:
bold
;
color
:
#1D2129
;
font-size
:
16px
;
.tip-img
{
width
:
18px
;
height
:
18px
;
margin-right
:
7px
;
margin-bottom
:
-3px
;
}
.el-dialog__headerbtn
{
font-size
:
20px
;
font-weight
:
bold
;
top
:
15px
;
.el-dialog__close
{
color
:
#999999
;
}
}
}
.el-dialog__body
{
padding
:
16px
;
.input
{
margin-top
:
16px
;
.el-input
{
width
:
160px
;
border-radius
:
2px
;
height
:
32px
;
.el-input__inner
{
height
:
32px
;
line-height
:
32px
;
}
}
.el-input-group__append
{
padding
:
0
14px
;
}
p
{
color
:
#FF3C3C
;
font-size
:
12px
;
margin-left
:
12px
;
display
:
inline-block
;
i
{
font-size
:
14px
;
margin-right
:
4px
;
}
}
}
.content
{
text-align
:
center
;
margin-top
:
36px
;
.success
{
width
:
64px
;
height
:
64px
;
margin-bottom
:
16px
;
}
p
{
padding
:
0
;
margin
:
0
;
}
.p1
{
color
:
#232323
;
font-size
:
16px
;
margin-bottom
:
8px
;
}
.p2
{
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
font-size
:
14px
;
span
{
color
:
#0081FF
;
cursor
:
pointer
;
}
}
}
}
.el-dialog__footer
{
text-align
:
center
;
padding-bottom
:
24px
;
}
}
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/component/HeadFormNew.vue
0 → 100644
View file @
63e197d8
<
template
>
<div
class=
"head-form-new"
v-if=
"title === '集团业绩'"
>
<div
class=
"common-title"
v-if=
"title"
>
{{
title
}}
</div>
<div
class=
"flex-box query-box"
style=
"margin-bottom: 12px;"
>
<div
class=
"flex-box query-params"
>
</div>
<template
v-if=
"slots"
>
<slot
name=
"slot"
></slot>
</
template
>
<div
v-else
class=
"flex-box"
>
<span
class=
"flex-box ability-total"
v-if=
"isTotal"
>
共{{ total }}条
</span>
<span
class=
"flex-box ability-excel"
v-hasPermi=
"['combine:info:export:win:bid']"
v-if=
"isExcel && title ==='集团业绩'"
@
click=
"clickEXCEL"
><img
src=
"@/assets/images/ability_excel.png"
>
导出EXCEL
</span>
<span
class=
"flex-box ability-excel"
v-else
@
click=
"clickEXCEL"
><img
src=
"@/assets/images/ability_excel.png"
>
导出EXCEL
</span>
</div>
</div>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<div
class=
"headForm-from"
>
<div
class=
"from-item"
:key=
"i"
v-for=
"(form, i) in formData"
>
<!-- 单选 -->
<
template
v-if=
"form.type==1"
>
<el-select
v-model=
"form.value"
clearable
class=
"form-content-width same-select-com"
:class=
"[`select-adaptive-$
{form.uid}`]"
:style="form.width?'width:'+form.width+'px':'max-width: 110px'" :placeholder="form.placeholder" @change="iptAdaptive(form.uid)">
<el-option
v-for=
"(item, index) in form.options"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
:disabled=
"item.disabled"
/>
</el-select>
</
template
>
<!-- 年月日 -->
<
template
v-if=
"form.type==2"
>
<el-date-picker
@
change=
"changeSelect"
class=
"fromTime"
style=
"width: 210px"
v-model=
"form.value"
type=
"daterange"
prefix-icon=
"fromTime-icon"
value-format=
"yyyy-MM-dd"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</
template
>
<!-- 输入框 -->
<
template
v-if=
"form.type==3"
>
<!-- 未点击前的输入框样式 -->
<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=
"'focus'+i"
v-if=
"showSearchBox"
>
<el-input
clearable
@
clear=
"changeSelect"
@
focus=
"clickFocus('focus'+i)"
@
blur=
"clickFocus('focus'+i)"
v-model=
"form.value"
:placeholder=
"form.placeholder"
:style=
"form.width?'width:'+form.width+'px':'width:180px'"
></el-input>
<span
@
click=
"changeSelect"
>
搜索
</span>
</div>
</transition>
</
template
>
<!-- 多选 -->
<
template
v-if=
"form.type==4"
>
<el-select
class=
"form-content-width"
:class=
"form.value.length > 1 ? ['selectTag',`select-adaptive-$
{form.uid}`] : [`select-adaptive-${form.uid}`]" v-model="form.value"
multiple collapse-tags clearable :style="form.width?'width:'+form.width+'px':'max-width: 170px'" :placeholder="form.placeholder"
@change="iptAdaptive(form.uid,true)">
<el-option
v-for=
"(item, index) in form.options"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
</el-select>
</
template
>
<!-- 时间、自定义 -->
<
template
v-else-if=
"form.type==5"
>
<custom-time-select
:class=
"[`select-adaptive-$
{form.uid}`,'custom-select']" :timeList="form.timeList" v-model="form.value"
:placeholder="form.placeholder" :dateFrom="form.dateFrom ? form.dateFrom : ''" :dateTo="form.dateTo ? form.dateTo : ''"
@handle-search="iptAdaptive(form.uid)" />
</
template
>
<!-- 金额 -->
<
template
v-else-if=
"form.type==6"
>
<custom-money-select
:class=
"[`select-adaptive-$
{form.uid}`,'custom-select']" :moneyList="form.moneyList" v-model="form.value"
:placeholder="form.placeholder" @handle-search="iptAdaptive(form.uid)" />
</
template
>
<!-- 地区选择 -->
<
template
v-else-if=
"form.type==7"
>
<el-cascader
:class=
"[`select-adaptive-$
{form.uid}`]" ref="cascader" :options="form.options" :props="form.props" v-model="form.value"
@change="iptAdaptive(form.uid,true)" :placeholder="form.placeholder" collapse-tags clearable>
</el-cascader>
</
template
>
<!-- 自定义 -->
<
template
v-if=
"form.type==0"
>
<slot
name=
"slot"
></slot>
</
template
>
</div>
</div>
</div>
</div>
</div>
<div
class=
"head-form-new"
v-else
>
<div
class=
"common-title"
v-if=
"title"
>
{{ title }}
</div>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<div
class=
"headForm-from"
>
<div
class=
"from-item"
:key=
"i"
v-for=
"(form, i) in formData"
>
<!-- 单选 -->
<
template
v-if=
"form.type==1"
>
<el-select
v-model=
"form.value"
clearable
class=
"form-content-width same-select-com"
:class=
"[`select-adaptive-$
{form.uid}`]"
:style="form.width?'width:'+form.width+'px':'max-width: 110px'" :placeholder="form.placeholder" @change="iptAdaptive(form.uid)">
<el-option
v-for=
"(item, index) in form.options"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
:disabled=
"item.disabled"
/>
</el-select>
</
template
>
<!-- 年月日 -->
<
template
v-if=
"form.type==2"
>
<el-date-picker
@
change=
"changeSelect"
class=
"fromTime"
style=
"width: 210px"
v-model=
"form.value"
type=
"daterange"
prefix-icon=
"fromTime-icon"
value-format=
"yyyy-MM-dd"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</
template
>
<!-- 输入框 -->
<
template
v-if=
"form.type==3"
>
<!-- 未点击前的输入框样式 -->
<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=
"'focus'+i"
v-if=
"showSearchBox"
>
<el-input
clearable
@
clear=
"changeSelect"
@
focus=
"clickFocus('focus'+i)"
@
blur=
"clickFocus('focus'+i)"
v-model=
"form.value"
:placeholder=
"form.placeholder"
:style=
"form.width?'width:'+form.width+'px':'width:180px'"
></el-input>
<span
@
click=
"changeSelect"
>
搜索
</span>
</div>
</transition>
</
template
>
<!-- 多选 -->
<
template
v-if=
"form.type==4"
>
<el-select
class=
"form-content-width"
:class=
"form.value.length > 1 ? ['selectTag',`select-adaptive-$
{form.uid}`] : [`select-adaptive-${form.uid}`]" v-model="form.value"
multiple collapse-tags clearable :style="form.width?'width:'+form.width+'px':'max-width: 170px'" :placeholder="form.placeholder"
@change="iptAdaptive(form.uid,true)">
<el-option
v-for=
"(item, index) in form.options"
:key=
"index"
:label=
"item.name"
:value=
"item.value"
/>
</el-select>
</
template
>
<!-- 时间、自定义 -->
<
template
v-else-if=
"form.type==5"
>
<custom-time-select
:class=
"[`select-adaptive-$
{form.uid}`,'custom-select']" :timeList="form.timeList" v-model="form.value"
:placeholder="form.placeholder" :dateFrom="form.dateFrom ? form.dateFrom : ''" :dateTo="form.dateTo ? form.dateTo : ''"
@handle-search="iptAdaptive(form.uid)" />
</
template
>
<!-- 金额 -->
<
template
v-else-if=
"form.type==6"
>
<custom-money-select
:class=
"[`select-adaptive-$
{form.uid}`,'custom-select']" :moneyList="form.moneyList" v-model="form.value"
:placeholder="form.placeholder" @handle-search="iptAdaptive(form.uid)" />
</
template
>
<!-- 地区选择 -->
<
template
v-else-if=
"form.type==7"
>
<el-cascader
:class=
"[`select-adaptive-$
{form.uid}`]" ref="cascader" :options="form.options" :props="form.props" v-model="form.value"
@change="iptAdaptive(form.uid,true)" :placeholder="form.placeholder" collapse-tags clearable>
</el-cascader>
</
template
>
<!-- 自定义 -->
<
template
v-if=
"form.type==0"
>
<slot
name=
"slot"
></slot>
</
template
>
</div>
</div>
</div>
<
template
v-if=
"slots"
>
<slot
name=
"slot"
></slot>
</
template
>
<div
v-else
class=
"flex-box"
>
<span
class=
"flex-box ability-total"
v-if=
"isTotal"
>
共{{ total }}条
</span>
<span
class=
"flex-box ability-excel"
v-hasPermi=
"['combine:info:export:win:bid']"
v-if=
"isExcel && title ==='集团业绩'"
@
click=
"clickEXCEL"
><img
src=
"@/assets/images/ability_excel.png"
>
导出EXCEL
</span>
<span
class=
"flex-box ability-excel"
v-else
@
click=
"clickEXCEL"
><img
src=
"@/assets/images/ability_excel.png"
>
导出EXCEL
</span>
</div>
</div>
</div>
</template>
<
script
>
import
CustomTimeSelect
from
'./CustomTimeSelect'
;
import
CustomMoneySelect
from
'./CustomMoneySelect'
;
import
gsap
from
"gsap"
;
export
default
{
name
:
"HeadForm"
,
props
:
{
title
:
{
type
:
String
,
default
:
''
},
queryParams
:
{
type
:
Object
,
default
:
()
=>
({})
},
formData
:
{
type
:
Array
,
default
:
()
=>
[]
},
isTotal
:
{
type
:
Boolean
,
default
:
true
},
total
:
{
type
:
Number
,
default
:
0
},
isExcel
:
{
type
:
Boolean
,
default
:
false
},
slots
:
{
type
:
Boolean
,
default
:
false
}
},
data
()
{
return
{
showSearchBox
:
false
};
},
created
()
{
this
.
getPlaceholder
();
},
components
:
{
CustomTimeSelect
,
CustomMoneySelect
},
methods
:
{
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"
,
"0px 8px"
)
:
null
;
textContainer
.
style
.
setProperty
(
"box-sizing"
,
"border-box"
);
textContainer
.
textContent
=
text
;
document
.
body
.
append
(
textContainer
);
// 加上按钮宽度 以及间距
let
containerWidth
=
textContainer
.
offsetWidth
+
12
+
8
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
});
}
}
catch
(
error
)
{
}
},
onEnter
(
el
,
done
)
{
gsap
.
from
(
el
,
{
opacity
:
0
,
width
:
0
,
});
gsap
.
to
(
el
,
{
opacity
:
1
,
width
:
242
,
onComplete
()
{
// 完成动画聚焦输入框
el
.
querySelector
(
"input"
).
focus
();
done
();
}
});
},
iptAdaptive
(
uid
,
multiple
=
false
)
{
multiple
?
this
.
multipleAdaptiveHandle
(
uid
)
:
this
.
iptAdaptiveHandle
(
uid
);
},
// 多选处理
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
+
60
}
px`
);
this
.
$emit
(
'handle-search'
);
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
;
textContainer
.
remove
();
dom
.
style
.
setProperty
(
"width"
,
`
${
containerWidth
}
px`
);
this
.
$emit
(
'handle-search'
);
}
}
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
.
$emit
(
'handle-search'
);
}
catch
(
error
)
{
}
},
changeSelect
(
e
)
{
this
.
$emit
(
'handle-search'
);
},
clickEXCEL
()
{
if
(
this
.
title
===
'集团业绩'
)
{
this
.
$emit
(
'handle-excel'
);
}
else
{
this
.
$message
({
message
:
'功能正在开发中'
,
type
:
'warning'
});
}
},
clickFocus
(
e
)
{
document
.
getElementById
(
e
).
classList
.
toggle
(
'span-ba'
);
}
}
}
</
script
>
<
style
lang=
"scss"
>
.el-popper
[
x-placement
^=
"bottom"
]
{
margin-top
:
5px
!
important
;
}
</
style
>
<
style
lang=
"scss"
scoped
>
::v-deep
.el-popper
[
x-placement
^=
"bottom"
]
{
margin-top
:
5px
;
}
.head-form-new
{
display
:
flex
;
flex-direction
:
column
;
margin-bottom
:
14px
;
.common-title
{
margin-bottom
:
8px
;
}
::v-deep
.el-input__inner
{
border
:
1px
solid
#d9d9d9
;
height
:
34px
;
line-height
:
34px
;
padding-right
:
27px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
border-radius
:
4px
;
}
::v-deep
.el-form-item
{
margin-right
:
8px
!
important
;
}
::v-deep
.el-input--medium
.el-input__icon
{
line-height
:
34px
;
}
::v-deep
.el-cascader
{
height
:
34px
;
line-height
:
34px
;
width
:
190px
;
.el-input
{
input
{
height
:
34px
!
important
;
}
}
.el-cascader__tags
{
flex-wrap
:
inherit
;
margin-top
:
1px
;
.el-tag
{
max-width
:
100px
;
}
}
.el-input__suffix
{
top
:
1px
;
}
}
.headForm-from
{
display
:
flex
;
.from-item
{
margin-right
:
8px
;
&
:last-child
{
margin-right
:
0
;
}
.cooperate-name
{
display
:
flex
;
border-radius
:
2px
;
border
:
1px
solid
#d9d9d9
;
line-height
:
34px
;
height
:
34px
;
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
:
22px
;
font-size
:
12px
;
padding-left
:
8px
;
}
}
.fromTime
{
::v-deep
.el-range-input
{
width
:
100%
;
}
::v-deep
.el-range-separator
,
::v-deep
.el-range__close-icon
{
line-height
:
24px
;
width
:
20px
;
}
}
.fromTime-icon
{
display
:
none
;
}
.el-select
{
.el-input__suffix
{
right
:
10px
;
}
}
.normal-search-container
{
display
:
flex
;
align-items
:
center
;
cursor
:
pointer
;
&
:hover
{
&
>
span
{
color
:
#0081ff
;
}
}
&
>
img
{
width
:
16px
;
height
:
16px
;
margin-left
:
12px
;
}
&
>
span
{
color
:
#232323
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
font-weight
:
400
;
margin-left
:
8px
;
line-height
:
22px
;
font-size
:
14px
;
}
}
}
::v-deep
.form-content-width
{
width
:
170px
;
}
::v-deep
.selectTag
{
.el-select__tags
{
.el-tag
{
&
:first-child
{
width
:
70px
;
}
}
}
}
::v-deep
.el-select__tags
{
.el-tag
{
&
:first-child
{
//width: 100%;
}
}
}
}
.ability-total
{
font-size
:
12px
;
color
:
#3d3d3d
;
position
:
relative
;
&
:before
{
content
:
""
;
display
:
inline-block
;
width
:
2px
;
height
:
2px
;
background
:
rgba
(
35
,
35
,
35
,
0
.4
);
margin-right
:
4px
;
}
}
.ability-excel
{
font-size
:
14px
;
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
margin-left
:
16px
;
cursor
:
pointer
;
&
:hover
{
color
:
#0081ff
;
}
img
{
width
:
18px
;
height
:
18px
;
margin-right
:
4px
;
}
}
}
</
style
>
\ No newline at end of file
dsk-operate-ui/src/views/detail/party-a/dealings/bidagency.vue
View file @
63e197d8
<
template
>
<div
class=
"detail-container"
>
<head-form
title=
"常合作招标代理单位"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<div
class=
"detail-container bidding-agent"
>
<head-form-new
title=
"常合作招标代理单位"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<template
slot=
"agency"
slot-scope=
"scope"
>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.agencyId)}`:`/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>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.agencyId)}`:`/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=
"projectInfo"
slot-scope=
"scope"
>
<router-link
:to=
"`/radar/Notice/details/$
{scope.row.projectInfo.bid}`" tag="a" class="a-link" v-if="scope.row.projectInfo.bid
&&
scope.row.projectInfo.dealTitle" v-html="scope.row.projectInfo.dealTitle">
</router-link>
<router-link
:to=
"`/radar/Notice/details/$
{scope.row.projectInfo.bid}`" tag="a" class="a-link"
v-if="scope.row.projectInfo.bid
&&
scope.row.projectInfo.dealTitle" v-html="scope.row.projectInfo.dealTitle">
</router-link>
<div
v-else
v-html=
"scope.row.projectInfo.dealTitle || '--'"
></div>
<div
v-if=
"scope.row.count>1"
@
click=
"handleClick($event, scope.row)"
style=
"color: #FF7E38;cursor: pointer;"
>
有
{{
scope
.
row
.
count
}}
个合作项目/工程 >
</div>
<div
v-if=
"scope.row.count>1"
@
click=
"handleClick($event, scope.row)"
style=
"color: #FF7E38;cursor: pointer;"
>
有
{{
scope
.
row
.
count
}}
个合作项目/工程 >
</div>
</
template
>
</tables>
<client-detail
v-if=
"isDetails"
:data=
"rowData"
:title=
"'合作项目/工程明细'"
@
cancel=
"isDetails=false"
/>
<client-detail
v-if=
"isDetails"
:data=
"rowData"
:title=
"'合作项目/工程明细'"
@
cancel=
"isDetails=false"
/>
</div>
</template>
<
script
>
import
mixin
from
'../mixins/mixin'
import
{
oftenAgencyPage
}
from
'@/api/detail/party-a/dealings'
import
ClientDetail
from
'./component/bidagencyDetail'
import
mixin
from
'../mixins/mixin'
;
import
{
oftenAgencyPage
}
from
'@/api/detail/party-a/dealings'
;
import
ClientDetail
from
'./component/bidagencyDetail'
;
export
default
{
name
:
'Bidagency'
,
props
:
[
'companyId'
],
...
...
@@ -58,54 +41,58 @@ export default {
pageNum
:
1
,
pageSize
:
20
},
defaultSort
:
{
prop
:
'issueTime'
,
order
:
'descending'
},
defaultSort
:
{
prop
:
'issueTime'
,
order
:
'descending'
},
forData
:
[
{
label
:
'招标代理单位名称'
,
prop
:
'agency'
,
minWidth
:
'350'
,
slot
:
true
},
{
label
:
'合作项目/工程名称'
,
prop
:
'projectInfo'
,
minWidth
:
'400'
,
slot
:
true
,
sortable
:
'custom'
,
descending
:
'5'
,
ascending
:
'6'
},
{
label
:
'最近一次合作时间'
,
prop
:
'issueTime'
,
minWidth
:
'140'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
}
{
label
:
'招标代理单位名称'
,
prop
:
'agency'
,
minWidth
:
'350'
,
slot
:
true
},
{
label
:
'合作项目/工程名称'
,
prop
:
'projectInfo'
,
minWidth
:
'400'
,
slot
:
true
,
sortable
:
'custom'
,
descending
:
'5'
,
ascending
:
'6'
},
{
label
:
'最近一次合作时间'
,
prop
:
'issueTime'
,
minWidth
:
'140'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
}
],
formData
:
[
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入企业名称查询'
,
options
:
[]},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入企业名称查询'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isDetails
:
false
,
rowData
:
{}
}
}
;
},
computed
:
{
},
created
()
{
this
.
handleQuery
()
this
.
handleQuery
()
;
},
methods
:
{
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
let
res
=
await
oftenAgencyPage
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
)
{
this
.
tableLoading
=
true
;
let
param
=
params
?
params
:
this
.
queryParams
;
let
res
=
await
oftenAgencyPage
(
param
)
;
this
.
tableLoading
=
false
;
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
this
.
tableData
=
res
.
rows
.
map
((
item
)
=>
{
item
.
projectInfo
=
typeof
item
.
projectInfo
==
'string'
?
JSON
.
parse
(
item
.
projectInfo
)
:
item
.
projectInfo
return
item
})
this
.
tableData
=
res
.
rows
.
map
((
item
)
=>
{
item
.
projectInfo
=
typeof
item
.
projectInfo
==
'string'
?
JSON
.
parse
(
item
.
projectInfo
)
:
item
.
projectInfo
;
return
item
;
})
;
}
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
;
},
handleClick
(
e
,
data
)
{
this
.
rowData
=
data
this
.
isDetails
=
true
this
.
rowData
=
data
;
this
.
isDetails
=
true
;
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.detail-container
{
.detail-container
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
}
.bidding-agent
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/dealings/bidrecords.vue
View file @
63e197d8
<
template
>
<div
class=
"detail-container"
>
<head-form
title=
"开标记录"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<div
class=
"detail-container bid-opening-record"
>
<head-form-new
title=
"开标记录"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
v-else
:indexFixed=
"true"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<tables
v-else
:indexFixed=
"true"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<template
slot=
"name"
slot-scope=
"scope"
>
<router-link
:to=
"`/radar/BidRecord/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.name" v-html="scope.row.name">
</router-link>
<router-link
:to=
"`/radar/BidRecord/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.name"
v-html="scope.row.name">
</router-link>
<div
v-else
v-html=
"scope.row.name || '--'"
></div>
</
template
>
<
template
slot=
"source"
slot-scope=
"scope"
>
<span
class=
"a-link"
v-if=
"scope.row.url&&scope.row.source"
@
click=
"handlePic(scope.row.url)"
style=
"cursor: pointer;"
>
{{
scope
.
row
.
source
}}
</span>
<span
class=
"a-link"
v-if=
"scope.row.url&&scope.row.source"
@
click=
"handlePic(scope.row.url)"
style=
"cursor: pointer;"
>
{{
scope
.
row
.
source
}}
</span>
<div
v-else
>
{{
scope
.
row
.
source
||
'--'
}}
</div>
</
template
>
</tables>
...
...
@@ -32,8 +20,8 @@
</template>
<
script
>
import
mixin
from
'../mixins/mixin'
import
{
tenderPage
}
from
'@/api/detail/party-a/dealings'
import
mixin
from
'../mixins/mixin'
;
import
{
tenderPage
}
from
'@/api/detail/party-a/dealings'
;
export
default
{
name
:
'Bidrecords'
,
props
:
[
'companyId'
],
...
...
@@ -49,50 +37,54 @@ export default {
pageSize
:
20
},
forData
:
[
{
label
:
'项目名称'
,
prop
:
'name'
,
minWidth
:
'320'
,
slot
:
true
},
{
label
:
'本企业投标报价(万元)'
,
prop
:
'tenderOffer'
,
minWidth
:
'160'
},
{
label
:
'发布日期'
,
prop
:
'publishTime'
,
minWidth
:
'100'
},
{
label
:
'项目地区'
,
prop
:
'province'
,
minWidth
:
'160'
},
{
label
:
'信息来源'
,
prop
:
'source'
,
minWidth
:
'280'
,
slot
:
true
}
{
label
:
'项目名称'
,
prop
:
'name'
,
minWidth
:
'320'
,
slot
:
true
},
{
label
:
'本企业投标报价(万元)'
,
prop
:
'tenderOffer'
,
minWidth
:
'160'
},
{
label
:
'发布日期'
,
prop
:
'publishTime'
,
minWidth
:
'100'
},
{
label
:
'项目地区'
,
prop
:
'province'
,
minWidth
:
'160'
},
{
label
:
'信息来源'
,
prop
:
'source'
,
minWidth
:
'280'
,
slot
:
true
}
],
formData
:
[
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目名称查询'
,
options
:
[]},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目名称查询'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
}
;
},
computed
:
{
},
created
()
{
this
.
handleQuery
()
this
.
handleQuery
()
;
},
methods
:
{
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
let
res
=
await
tenderPage
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
)
{
this
.
tableLoading
=
true
;
let
param
=
params
?
params
:
this
.
queryParams
;
let
res
=
await
tenderPage
(
param
)
;
this
.
tableLoading
=
false
;
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
this
.
tableData
=
res
.
rows
this
.
tableData
=
res
.
rows
;
}
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
;
},
handlePic
(
url
){
if
(
url
)
{
window
.
open
(
url
,
"_blank"
)
handlePic
(
url
)
{
if
(
url
)
{
window
.
open
(
url
,
"_blank"
)
;
}
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.detail-container
{
.detail-container
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
}
.bid-opening-record
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/dealings/custom.vue
View file @
63e197d8
<
template
>
<div
class=
"detail-container"
>
<head-form
title=
"客户"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<div
class=
"detail-container client"
>
<head-form-new
title=
"客户"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<template
slot=
"companyName"
slot-scope=
"scope"
>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId
&&
scope.row.companyName" v-html="scope.row.companyName">
</router-link>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a"
class="a-link" v-if="scope.row.companyId
&&
scope.row.companyName" v-html="scope.row.companyName">
</router-link>
<div
v-else
v-html=
"scope.row.companyName || '--'"
></div>
</
template
>
<!-- <template slot="projectAllName" slot-scope="scope">
...
...
@@ -31,22 +16,17 @@
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">有{{scope.row.count}}个合作项目/工程 ></div>
</template> -->
<
template
slot=
"count"
slot-scope=
"scope"
>
<div
v-if=
"scope.row.count>0"
class=
"a-link"
style=
"cursor: pointer;"
@
click=
"handleClick($event, scope.row)"
>
{{
scope
.
row
.
count
}}
</div>
<div
v-if=
"scope.row.count>0"
class=
"a-link"
style=
"cursor: pointer;"
@
click=
"handleClick($event, scope.row)"
>
{{
scope
.
row
.
count
}}
</div>
</
template
>
</tables>
<client-detail
v-if=
"isDetails"
:data=
"rowData"
:title=
"title"
:company-id=
"companyId"
@
cancel=
"isDetails=false"
/>
<client-detail
v-if=
"isDetails"
:data=
"rowData"
:title=
"title"
:company-id=
"companyId"
@
cancel=
"isDetails=false"
/>
</div>
</template>
<
script
>
import
mixin
from
'../mixins/mixin'
import
{
clientPage
,
getSelect
}
from
'@/api/detail/party-a/dealings'
import
ClientDetail
from
'./component/customDetail'
import
mixin
from
'../mixins/mixin'
;
import
{
clientPage
,
getSelect
}
from
'@/api/detail/party-a/dealings'
;
import
ClientDetail
from
'./component/customDetail'
;
export
default
{
name
:
'Custom'
,
props
:
[
'companyId'
],
...
...
@@ -56,95 +36,99 @@ export default {
},
data
()
{
return
{
title
:
''
,
title
:
''
,
queryParams
:
{
cid
:
this
.
companyId
,
sort
:
5
,
pageNum
:
1
,
pageSize
:
20
},
defaultSort
:
{
prop
:
'count'
,
order
:
'descending'
},
defaultSort
:
{
prop
:
'count'
,
order
:
'descending'
},
forData
:
[
{
label
:
'客户名称'
,
prop
:
'companyName'
,
minWidth
:
'350'
,
slot
:
true
},
{
label
:
'客户名称'
,
prop
:
'companyName'
,
minWidth
:
'350'
,
slot
:
true
},
// {label: '合作项目/工程名称', prop: 'projectAllName', minWidth: '400', slot: true, sortable: 'custom', descending: '5', ascending: '6'},
{
label
:
'最近合作时间'
,
prop
:
'time'
,
minWidth
:
'140'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
},
{
label
:
'合作总金额(万元)'
,
prop
:
'amount'
,
minWidth
:
'150'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
},
{
label
:
'合作次数'
,
prop
:
'count'
,
minWidth
:
'150'
,
sortable
:
'custom'
,
slot
:
true
,
descending
:
'5'
,
ascending
:
'6'
},
{
label
:
'最近合作时间'
,
prop
:
'time'
,
minWidth
:
'140'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
},
{
label
:
'合作总金额(万元)'
,
prop
:
'amount'
,
minWidth
:
'150'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
},
{
label
:
'合作次数'
,
prop
:
'count'
,
minWidth
:
'150'
,
sortable
:
'custom'
,
slot
:
true
,
descending
:
'5'
,
ascending
:
'6'
},
],
formData
:
[
{
type
:
4
,
fieldName
:
'projects'
,
value
:
''
,
placeholder
:
'合作项目类型'
,
options
:
[]},
{
type
:
4
,
fieldName
:
'sources'
,
value
:
''
,
placeholder
:
'数据来源'
,
options
:
[]},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'搜索客户名称'
,
options
:
[]},
{
type
:
4
,
fieldName
:
'projects'
,
value
:
''
,
placeholder
:
'合作项目类型'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
4
,
fieldName
:
'sources'
,
value
:
''
,
placeholder
:
'数据来源'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'搜索客户名称'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isDetails
:
false
,
rowData
:
{}
}
}
;
},
computed
:
{
},
created
()
{
this
.
handleQuery
()
this
.
handleOption
()
this
.
handleQuery
()
;
this
.
handleOption
()
;
},
methods
:
{
async
handleOption
(){
let
res
=
await
getSelect
({})
if
(
res
.
code
==
200
)
{
let
data
=
res
.
data
.
projects
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
async
handleOption
()
{
let
res
=
await
getSelect
({})
;
if
(
res
.
code
==
200
)
{
let
data
=
res
.
data
.
projects
;
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
this
.
formData
[
0
].
options
.
push
({
name
:
data
[
i
],
value
:
data
[
i
],
})
})
;
}
let
data1
=
res
.
data
.
sources
for
(
var
i
=
0
;
i
<
data1
.
length
;
i
++
)
{
let
data1
=
res
.
data
.
sources
;
for
(
var
i
=
0
;
i
<
data1
.
length
;
i
++
)
{
this
.
formData
[
1
].
options
.
push
({
name
:
data1
[
i
],
value
:
data1
[
i
],
})
})
;
}
}
},
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
let
res
=
await
clientPage
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
)
{
this
.
tableLoading
=
true
;
let
param
=
params
?
params
:
this
.
queryParams
;
let
res
=
await
clientPage
(
param
)
;
this
.
tableLoading
=
false
;
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
this
.
tableData
=
res
.
rows
if
(
this
.
tableData
&&
this
.
tableData
.
length
>
0
)
{
this
.
tableData
=
res
.
rows
;
if
(
this
.
tableData
&&
this
.
tableData
.
length
>
0
)
{
this
.
tableData
.
forEach
(
item
=>
{
typeof
item
.
projectInfo
==
'string'
?
item
.
projectInfo
=
JSON
.
parse
(
item
.
projectInfo
)
:
''
item
.
amount
?
item
.
amount
=
parseFloat
(
item
.
amount
.
toFixed
(
4
))
:
''
})
typeof
item
.
projectInfo
==
'string'
?
item
.
projectInfo
=
JSON
.
parse
(
item
.
projectInfo
)
:
''
;
item
.
amount
?
item
.
amount
=
parseFloat
(
item
.
amount
.
toFixed
(
4
))
:
''
;
})
;
}
}
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
;
},
handleClick
(
e
,
data
)
{
this
.
rowData
=
data
this
.
rowData
=
data
;
this
.
isDetails
=
true
;
this
.
title
=
'与客户'
+
data
.
companyName
.
replace
(
/<font color='red'>/g
,
''
).
replace
(
/<
\/
font>/g
,
''
)
+
'合作记录'
this
.
title
=
'与客户'
+
data
.
companyName
.
replace
(
/<font color='red'>/g
,
''
).
replace
(
/<
\/
font>/g
,
''
)
+
'合作记录'
;
},
handleDetail
(
row
){
if
(
row
.
sourceUrl
)
{
handleDetail
(
row
)
{
if
(
row
.
sourceUrl
)
{
window
.
open
(
row
.
sourceUrl
,
"_blank"
)
window
.
open
(
row
.
sourceUrl
,
"_blank"
)
;
}
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.detail-container
{
.detail-container
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
}
.client
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/dealings/hiscontract.vue
View file @
63e197d8
<
template
>
<div
class=
"detail-container"
>
<head-form
title=
"历史发包"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<div
class=
"detail-container history-contract"
>
<head-form-new
title=
"历史发包"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<template
slot=
"projectAllName"
slot-scope=
"scope"
>
<router-link
:to=
"`/biddetail/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.projectAllName" >
{{
scope
.
row
.
projectAllName
}}
</router-link>
<router-link
:to=
"`/biddetail/$
{scope.row.id}`" tag="a" class="a-link"
v-if="scope.row.id
&&
scope.row.projectAllName">
{{
scope
.
row
.
projectAllName
}}
</router-link>
<div
v-else
v-html=
"scope.row&&scope.row.projectAllName || '--'"
></div>
</
template
>
<
template
slot=
"companyName"
slot-scope=
"scope"
>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId
&&
scope.row.companyName">
{{
scope
.
row
.
companyName
}}
</router-link>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a"
class="a-link" v-if="scope.row.companyId
&&
scope.row.companyName">
{{
scope
.
row
.
companyName
}}
</router-link>
<div
v-else
>
{{
scope
.
row
.
companyName
||
'--'
}}
</div>
</
template
>
</tables>
...
...
@@ -34,8 +20,8 @@
</template>
<
script
>
import
mixin
from
'../mixins/mixin'
import
{
historySendProvince
,
historySendPage
}
from
'@/api/detail/party-a/dealings'
import
mixin
from
'../mixins/mixin'
;
import
{
historySendProvince
,
historySendPage
}
from
'@/api/detail/party-a/dealings'
;
export
default
{
name
:
'Hiscontract'
,
props
:
[
'companyId'
],
...
...
@@ -53,68 +39,72 @@ export default {
},
defaultSort
:
{},
forData
:
[
{
label
:
'项目名称'
,
prop
:
'projectAllName'
,
minWidth
:
'560'
,
slot
:
true
},
{
label
:
'中标时间'
,
prop
:
'winBidTime'
,
minWidth
:
'100'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
},
{
label
:
'中标企业'
,
prop
:
'companyName'
,
minWidth
:
'320'
,
slot
:
true
},
{
label
:
'中标金额(万元)'
,
prop
:
'winBidAmount'
,
minWidth
:
'140'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
},
{
label
:
'下浮率(%)'
,
prop
:
'lowerRate'
,
minWidth
:
'120'
,
sortable
:
'custom'
,
descending
:
'7'
,
ascending
:
'8'
},
{
label
:
'项目经理 / 负责人'
,
prop
:
'staffName'
,
minWidth
:
'130'
},
{
label
:
'中标地区'
,
prop
:
'region'
,
minWidth
:
'160'
},
{
label
:
'工期(天)'
,
prop
:
'period'
,
minWidth
:
'110'
,
sortable
:
'custom'
,
descending
:
'9'
,
ascending
:
'10'
},
{
label
:
'业绩类别'
,
prop
:
'boundType'
,
minWidth
:
'110'
}
{
label
:
'项目名称'
,
prop
:
'projectAllName'
,
minWidth
:
'560'
,
slot
:
true
},
{
label
:
'中标时间'
,
prop
:
'winBidTime'
,
minWidth
:
'100'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
},
{
label
:
'中标企业'
,
prop
:
'companyName'
,
minWidth
:
'320'
,
slot
:
true
},
{
label
:
'中标金额(万元)'
,
prop
:
'winBidAmount'
,
minWidth
:
'140'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
},
{
label
:
'下浮率(%)'
,
prop
:
'lowerRate'
,
minWidth
:
'120'
,
sortable
:
'custom'
,
descending
:
'7'
,
ascending
:
'8'
},
{
label
:
'项目经理 / 负责人'
,
prop
:
'staffName'
,
minWidth
:
'130'
},
{
label
:
'中标地区'
,
prop
:
'region'
,
minWidth
:
'160'
},
{
label
:
'工期(天)'
,
prop
:
'period'
,
minWidth
:
'110'
,
sortable
:
'custom'
,
descending
:
'9'
,
ascending
:
'10'
},
{
label
:
'业绩类别'
,
prop
:
'boundType'
,
minWidth
:
'110'
}
],
formData
:
[
{
type
:
1
,
fieldName
:
'provinceId'
,
value
:
''
,
placeholder
:
'项目地区'
,
options
:
[]
},
{
type
:
5
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'中标时间'
,
startTime
:
'dateFrom'
,
endTime
:
'dateTo'
},
{
type
:
6
,
fieldName
:
'money'
,
value
:
''
,
placeholder
:
'中标金额'
,
startMoney
:
'amountMin'
,
endMoney
:
'amountMax'
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目名称查询'
,
options
:
[]
}
{
type
:
1
,
fieldName
:
'provinceId'
,
value
:
''
,
placeholder
:
'项目地区'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
5
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'中标时间'
,
startTime
:
'dateFrom'
,
endTime
:
'dateTo'
,
uid
:
this
.
getUid
()
},
{
type
:
6
,
fieldName
:
'money'
,
value
:
''
,
placeholder
:
'中标金额'
,
startMoney
:
'amountMin'
,
endMoney
:
'amountMax'
,
uid
:
this
.
getUid
()
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目名称查询'
,
options
:
[]
,
uid
:
this
.
getUid
()
}
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
}
;
},
computed
:
{
},
created
()
{
this
.
handleOption
()
this
.
handleQuery
()
this
.
handleOption
()
;
this
.
handleQuery
()
;
},
methods
:
{
async
handleOption
(){
let
res
=
await
historySendProvince
({
cid
:
this
.
companyId
})
if
(
res
.
code
==
200
)
{
async
handleOption
()
{
let
res
=
await
historySendProvince
({
cid
:
this
.
companyId
});
if
(
res
.
code
==
200
)
{
let
region
=
res
.
data
.
map
(
item
=>
{
let
it
=
{
name
:
item
.
province
+
'('
+
item
.
count
+
')'
,
value
:
item
.
provinceId
}
return
it
})
this
.
setFormData
(
'provinceId'
,
region
)
let
it
=
{
name
:
item
.
province
+
'('
+
item
.
count
+
')'
,
value
:
item
.
provinceId
};
return
it
;
})
;
this
.
setFormData
(
'provinceId'
,
region
)
;
}
},
async
handleQuery
(
params
)
{
let
param
=
params
?
params
:
this
.
queryParams
let
res
=
await
historySendPage
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
)
{
let
param
=
params
?
params
:
this
.
queryParams
;
let
res
=
await
historySendPage
(
param
)
;
this
.
tableLoading
=
false
;
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
this
.
tableData
=
res
.
rows
this
.
tableData
=
res
.
rows
;
}
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
;
},
handleDetail
(
row
){
if
(
row
.
sourceUrl
)
{
window
.
open
(
row
.
sourceUrl
,
"_blank"
)
handleDetail
(
row
)
{
if
(
row
.
sourceUrl
)
{
window
.
open
(
row
.
sourceUrl
,
"_blank"
)
;
}
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.detail-container
{
.detail-container
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
}
.history-contract
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/dealings/supplier.vue
View file @
63e197d8
<
template
>
<div
class=
"detail-container"
>
<head-form
title=
"供应商"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<div
class=
"detail-container supplier"
>
<head-form-new
title=
"供应商"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<template
slot=
"companyName"
slot-scope=
"scope"
>
<router-link
:to=
"`/company/$
{encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId
&&
scope.row.companyName" v-html="scope.row.companyName">
</router-link>
<router-link
:to=
"`/company/$
{encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId
&&
scope.row.companyName"
v-html="scope.row.companyName">
</router-link>
<div
v-else
v-html=
"scope.row.companyName || '--'"
></div>
</
template
>
<
template
slot=
"count"
slot-scope=
"scope"
>
<div
v-if=
"scope.row.count>0"
class=
"a-link"
style=
"cursor: pointer;"
@
click=
"handleClick($event, scope.row)"
>
{{
scope
.
row
.
count
}}
</div>
<div
v-if=
"scope.row.count>0"
class=
"a-link"
style=
"cursor: pointer;"
@
click=
"handleClick($event, scope.row)"
>
{{
scope
.
row
.
count
}}
</div>
</
template
>
</tables>
<client-detail
v-if=
"isDetails"
:data=
"rowData"
:title=
"title"
:company-id=
"companyId"
@
cancel=
"isDetails=false"
/>
<client-detail
v-if=
"isDetails"
:data=
"rowData"
:title=
"title"
:company-id=
"companyId"
@
cancel=
"isDetails=false"
/>
</div>
</template>
<
script
>
import
mixin
from
'../mixins/mixin'
import
{
supplierPage
,
getSelect
}
from
'@/api/detail/party-a/dealings'
import
ClientDetail
from
'./component/supplierDetail'
import
mixin
from
'../mixins/mixin'
;
import
{
supplierPage
,
getSelect
}
from
'@/api/detail/party-a/dealings'
;
import
ClientDetail
from
'./component/supplierDetail'
;
export
default
{
name
:
'Supplier'
,
props
:
[
'companyId'
],
...
...
@@ -51,7 +31,7 @@ export default {
},
data
()
{
return
{
title
:
''
,
title
:
''
,
queryParams
:
{
cid
:
this
.
companyId
,
sort
:
5
,
...
...
@@ -60,84 +40,88 @@ export default {
},
defaultSort
:
{},
forData
:
[
{
label
:
'供应商'
,
prop
:
'companyName'
,
minWidth
:
'350'
,
slot
:
true
},
{
label
:
'最近合作时间'
,
prop
:
'time'
,
minWidth
:
'140'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
},
{
label
:
'合作总金额(万元)'
,
prop
:
'amount'
,
minWidth
:
'150'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
},
{
label
:
'合作次数'
,
prop
:
'count'
,
minWidth
:
'150'
,
sortable
:
'custom'
,
slot
:
true
,
descending
:
'5'
,
ascending
:
'6'
},
{
label
:
'供应商'
,
prop
:
'companyName'
,
minWidth
:
'350'
,
slot
:
true
},
{
label
:
'最近合作时间'
,
prop
:
'time'
,
minWidth
:
'140'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
},
{
label
:
'合作总金额(万元)'
,
prop
:
'amount'
,
minWidth
:
'150'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
},
{
label
:
'合作次数'
,
prop
:
'count'
,
minWidth
:
'150'
,
sortable
:
'custom'
,
slot
:
true
,
descending
:
'5'
,
ascending
:
'6'
},
],
formData
:
[
{
type
:
4
,
fieldName
:
'projects'
,
value
:
''
,
placeholder
:
'合作项目类型'
,
options
:
[]},
{
type
:
4
,
fieldName
:
'sources'
,
value
:
''
,
placeholder
:
'数据来源'
,
options
:
[]},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'搜索供应商名称'
,
options
:
[]},
{
type
:
4
,
fieldName
:
'projects'
,
value
:
''
,
placeholder
:
'合作项目类型'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
4
,
fieldName
:
'sources'
,
value
:
''
,
placeholder
:
'数据来源'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'搜索供应商名称'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isDetails
:
false
,
rowData
:
{}
}
}
;
},
computed
:
{
},
created
()
{
this
.
handleQuery
()
this
.
handleOption
()
this
.
handleQuery
()
;
this
.
handleOption
()
;
},
methods
:
{
async
handleOption
(){
let
res
=
await
getSelect
({})
if
(
res
.
code
==
200
)
{
let
data
=
res
.
data
.
projects
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
async
handleOption
()
{
let
res
=
await
getSelect
({})
;
if
(
res
.
code
==
200
)
{
let
data
=
res
.
data
.
projects
;
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
this
.
formData
[
0
].
options
.
push
({
name
:
data
[
i
],
value
:
data
[
i
],
})
})
;
}
let
data1
=
res
.
data
.
sources
for
(
var
i
=
0
;
i
<
data1
.
length
;
i
++
)
{
let
data1
=
res
.
data
.
sources
;
for
(
var
i
=
0
;
i
<
data1
.
length
;
i
++
)
{
this
.
formData
[
1
].
options
.
push
({
name
:
data1
[
i
],
value
:
data1
[
i
],
})
})
;
}
}
},
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
let
res
=
await
supplierPage
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
)
{
this
.
tableLoading
=
true
;
let
param
=
params
?
params
:
this
.
queryParams
;
let
res
=
await
supplierPage
(
param
)
;
this
.
tableLoading
=
false
;
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
this
.
tableData
=
res
.
rows
if
(
this
.
tableData
&&
this
.
tableData
.
length
>
0
)
{
this
.
tableData
=
res
.
rows
;
if
(
this
.
tableData
&&
this
.
tableData
.
length
>
0
)
{
this
.
tableData
.
forEach
(
item
=>
{
typeof
item
.
projectInfo
==
'string'
?
item
.
projectInfo
=
JSON
.
parse
(
item
.
projectInfo
)
:
''
item
.
amount
?
item
.
amount
=
parseFloat
(
item
.
amount
.
toFixed
(
4
))
:
''
})
typeof
item
.
projectInfo
==
'string'
?
item
.
projectInfo
=
JSON
.
parse
(
item
.
projectInfo
)
:
''
;
item
.
amount
?
item
.
amount
=
parseFloat
(
item
.
amount
.
toFixed
(
4
))
:
''
;
})
;
}
}
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
;
},
handleClick
(
e
,
data
)
{
this
.
rowData
=
data
this
.
isDetails
=
true
this
.
title
=
'与供应商'
+
data
.
companyName
.
replace
(
/<font color='red'>/g
,
''
).
replace
(
/<
\/
font>/g
,
''
)
+
'合作记录'
this
.
rowData
=
data
;
this
.
isDetails
=
true
;
this
.
title
=
'与供应商'
+
data
.
companyName
.
replace
(
/<font color='red'>/g
,
''
).
replace
(
/<
\/
font>/g
,
''
)
+
'合作记录'
;
},
handleDetail
(
row
){
if
(
row
.
sourceUrl
)
{
window
.
open
(
row
.
sourceUrl
,
"_blank"
)
handleDetail
(
row
)
{
if
(
row
.
sourceUrl
)
{
window
.
open
(
row
.
sourceUrl
,
"_blank"
)
;
}
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.detail-container
{
.detail-container
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
}
.supplier
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/mixins/mixin.js
View file @
63e197d8
import
{
encodeStr
}
from
"@/assets/js/common"
import
HeadForm
from
"../component/HeadForm"
import
HeadFormNew
from
"../component/HeadFormNew"
import
Tables
from
"../component/Tables"
import
skeleton
from
'@/views/project/projectList/component/skeleton'
import
{
v4
}
from
"uuid"
;
export
default
{
components
:
{
HeadForm
,
Tables
,
skeleton
skeleton
,
HeadFormNew
},
data
()
{
return
{
...
...
@@ -18,6 +21,9 @@ export default {
},
methods
:
{
getUid
()
{
return
v4
();
},
// 设置下拉选项数据源
setFormData
(
fieldName
,
list
)
{
this
.
formData
.
forEach
(
item
=>
{
...
...
dsk-operate-ui/src/views/detail/party-a/opport/administrative.vue
View file @
63e197d8
<
template
>
<div
class=
"detail-container"
>
<head-form
title=
"行政许可"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
@
handle-search=
"handleSearch"
/>
<div
class=
"detail-container administrative-license"
>
<head-form-new
title=
"行政许可"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
@
handle-search=
"handleSearch"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
v-else
:indexFixed=
"true"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<tables
v-else
:indexFixed=
"true"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<template
slot=
"deciWritName"
slot-scope=
"scope"
>
<div
v-html=
"scope.row.deciWritName"
></div>
</
template
>
<
template
slot=
"content"
slot-scope=
"scope"
>
<div
:class=
"[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.content)?'cell-span':'']"
:style=
"
{'-webkit-line-clamp': 2}">
<div
:class=
"[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.content)?'cell-span':'']"
:style=
"
{'-webkit-line-clamp': 2}">
<div
v-html=
"scope.row.content"
></div>
<span
v-if=
"isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.content)"
@
click=
"changeShowAll(scope.index, 0)"
>
...
<span
style=
"color: #0081FF;"
>
展开
</span></span>
<span
v-if=
"isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.content)"
@
click=
"changeShowAll(scope.index, 0)"
>
...
<span
style=
"color: #0081FF;"
>
展开
</span></span>
</div>
</
template
>
</tables>
...
...
@@ -33,9 +21,9 @@
</template>
<
script
>
import
mixin
from
'../mixins/mixin'
import
skeleton
from
'@/views/project/projectList/component/skeleton'
import
{
creditXzxkPage
}
from
'@/api/detail/party-a/opport'
import
mixin
from
'../mixins/mixin'
;
import
skeleton
from
'@/views/project/projectList/component/skeleton'
;
import
{
creditXzxkPage
}
from
'@/api/detail/party-a/opport'
;
export
default
{
name
:
'Administrative'
,
props
:
[
'companyId'
],
...
...
@@ -45,95 +33,95 @@ export default {
},
data
()
{
return
{
isSkeleton
:
true
,
isSkeleton
:
true
,
queryParams
:
{
cid
:
this
.
companyId
,
pageNum
:
1
,
pageSize
:
20
},
forData
:
[
{
label
:
'许可决定日期'
,
prop
:
'deciTime'
,
width
:
'110'
},
{
label
:
'决定文书号'
,
prop
:
'deciWritNo'
,
width
:
'200'
},
{
label
:
'许可编号'
,
prop
:
'permitNo'
,
width
:
'100'
},
{
label
:
'决定文书名称'
,
prop
:
'deciWritName'
,
width
:
'190'
,
slot
:
true
},
{
label
:
'许可内容'
,
prop
:
'content'
,
width
:
'300'
,
slot
:
true
},
{
label
:
'有效期自'
,
prop
:
'valiBegin'
,
width
:
'100'
},
{
label
:
'有效期至'
,
prop
:
'valiEnd'
,
width
:
'100'
},
{
label
:
'行政许可类别'
,
prop
:
'permitType'
,
width
:
'110'
},
{
label
:
'许可机关'
,
prop
:
'office'
,
width
:
'180'
},
{
label
:
'行政许可机关统一社会信用代码'
,
prop
:
'officeCreditCode'
,
width
:
'210'
},
{
label
:
'数据来源单位'
,
prop
:
'dataSourceOffice'
,
width
:
'110'
},
{
label
:
'数据来源单位统一社会信用代码'
,
prop
:
'dataSourceOfficeCreditCode'
,
width
:
'210'
},
{
label
:
'来源'
,
prop
:
'dataSource'
,
width
:
'80'
}
{
label
:
'许可决定日期'
,
prop
:
'deciTime'
,
width
:
'110'
},
{
label
:
'决定文书号'
,
prop
:
'deciWritNo'
,
width
:
'200'
},
{
label
:
'许可编号'
,
prop
:
'permitNo'
,
width
:
'100'
},
{
label
:
'决定文书名称'
,
prop
:
'deciWritName'
,
width
:
'190'
,
slot
:
true
},
{
label
:
'许可内容'
,
prop
:
'content'
,
width
:
'300'
,
slot
:
true
},
{
label
:
'有效期自'
,
prop
:
'valiBegin'
,
width
:
'100'
},
{
label
:
'有效期至'
,
prop
:
'valiEnd'
,
width
:
'100'
},
{
label
:
'行政许可类别'
,
prop
:
'permitType'
,
width
:
'110'
},
{
label
:
'许可机关'
,
prop
:
'office'
,
width
:
'180'
},
{
label
:
'行政许可机关统一社会信用代码'
,
prop
:
'officeCreditCode'
,
width
:
'210'
},
{
label
:
'数据来源单位'
,
prop
:
'dataSourceOffice'
,
width
:
'110'
},
{
label
:
'数据来源单位统一社会信用代码'
,
prop
:
'dataSourceOfficeCreditCode'
,
width
:
'210'
},
{
label
:
'来源'
,
prop
:
'dataSource'
,
width
:
'80'
}
],
formData
:
[
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入关键词查询'
,
options
:
[]},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入关键词查询'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
showList
:[]
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
showList
:
[]
}
;
},
computed
:
{
},
created
()
{
this
.
handleQuery
()
this
.
handleQuery
()
;
},
methods
:
{
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
let
res
=
await
creditXzxkPage
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
)
{
this
.
tableLoading
=
true
;
let
param
=
params
?
params
:
this
.
queryParams
;
let
res
=
await
creditXzxkPage
(
param
)
;
this
.
tableLoading
=
false
;
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
if
(
res
.
rows
&&
res
.
rows
.
length
>
0
)
{
if
(
res
.
rows
&&
res
.
rows
.
length
>
0
)
{
res
.
rows
.
forEach
(
item
=>
{
item
.
smallContent
=
item
.
content
.
replace
(
/<.*
?
>/ig
,
""
)
})
item
.
smallContent
=
item
.
content
.
replace
(
/<.*
?
>/ig
,
""
);
})
;
}
this
.
tableData
=
res
.
rows
this
.
tableData
=
res
.
rows
;
}
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
;
},
changeShowAll
(
row
,
column
)
{
this
.
showList
.
push
({
row
:
row
,
column
:
column
})
})
;
},
isOverHiddenFlag
(
data
,
showList
,
row
,
column
,
value
)
{
if
(
value
&&
this
.
getByteLen
(
value
)
>
88
)
{
return
!
showList
.
some
(
item
=>
item
.
row
==
row
&&
item
.
column
==
column
)
}
else
{
return
false
if
(
value
&&
this
.
getByteLen
(
value
)
>
88
)
{
return
!
showList
.
some
(
item
=>
item
.
row
==
row
&&
item
.
column
==
column
);
}
else
{
return
false
;
}
},
/*getLenth(data) {
return Math.floor(data / 6) * 2 //宽度(300) / 一个字符的宽度(6) * 行数(2)
},*/
getByteLen
(
val
)
{
var
len
=
0
var
len
=
0
;
for
(
var
i
=
0
;
i
<
val
.
length
;
i
++
)
{
var
a
=
val
.
charAt
(
i
)
if
(
a
.
match
(
/
[^\x
00-
\x
ff
]
/ig
)
!=
null
){
len
+=
2
}
else
{
len
+=
1
var
a
=
val
.
charAt
(
i
)
;
if
(
a
.
match
(
/
[^\x
00-
\x
ff
]
/ig
)
!=
null
)
{
len
+=
2
;
}
else
{
len
+=
1
;
}
}
/*if(val.match(/ /g)){
len =len+Math.floor(val.match(/ /g).length/2)
}*/
return
len
return
len
;
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.detail-container
{
.detail-container
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
...
...
@@ -147,7 +135,7 @@ export default {
-webkit-line-clamp
:
4
;
cursor
:
pointer
;
>
span
{
>
span
{
display
:
inline-block
;
width
:
37px
;
position
:
absolute
;
...
...
@@ -158,4 +146,8 @@ export default {
}
}
}
.administrative-license
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/opport/announcement.vue
View file @
63e197d8
<
template
>
<div
class=
"detail-container"
>
<head-form
ref=
"headForm"
title=
"招标公告"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<div
class=
"detail-container tender-announcement"
>
<head-form-new
ref=
"headForm"
title=
"招标公告"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<template
slot=
"projectName"
slot-scope=
"scope"
>
<router-link
:to=
"`/radar/Notice/details/$
{scope.row.bid}`" tag="a" class="a-link" v-if="scope.row.bid
&&
scope.row.projectName " v-html="scope.row.projectName">
</router-link>
<router-link
:to=
"`/radar/Notice/details/$
{scope.row.bid}`" tag="a" class="a-link" v-if="scope.row.bid
&&
scope.row.projectName "
v-html="scope.row.projectName">
</router-link>
<div
v-else
v-html=
"scope.row.projectName || '--'"
></div>
</
template
>
<
template
slot=
"province"
slot-scope=
"scope"
>
...
...
@@ -35,9 +19,9 @@
<
/template
>
<
script
>
import
mixin
from
'../mixins/mixin'
import
skeleton
from
'@/views/project/projectList/component/skeleton'
import
{
bidNoticeArea
,
bidNoticeTenderStage
,
bidNoticePage
}
from
'@/api/detail/party-a/opport'
import
mixin
from
'../mixins/mixin'
;
import
skeleton
from
'@/views/project/projectList/component/skeleton'
;
import
{
bidNoticeArea
,
bidNoticeTenderStage
,
bidNoticePage
}
from
'@/api/detail/party-a/opport'
;
export
default
{
name
:
'Announcement'
,
props
:
[
'companyId'
],
...
...
@@ -47,14 +31,14 @@ export default {
}
,
data
()
{
return
{
isSkeleton
:
true
,
isSkeleton
:
true
,
queryParams
:
{
cid
:
this
.
companyId
,
sort
:
3
,
pageNum
:
1
,
pageSize
:
20
}
,
defaultSort
:
{
prop
:
'issueTime'
,
order
:
'descending'
}
,
defaultSort
:
{
prop
:
'issueTime'
,
order
:
'descending'
}
,
forData
:
[
{
label
:
'项目名称'
,
prop
:
'projectName'
,
minWidth
:
'300'
,
slot
:
true
,
fixed
:
true
}
,
{
label
:
'发布日期'
,
prop
:
'issueTime'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
,
width
:
'120'
}
,
...
...
@@ -69,101 +53,105 @@ export default {
{
label
:
'报名截止日期'
,
prop
:
'overTime'
,
width
:
'110'
}
],
formData
:
[
{
type
:
7
,
fieldName
:
'province'
,
value
:
''
,
props
:
{
multiple
:
true
}
,
placeholder
:
'项目地区'
,
options
:
[]
}
,
{
type
:
4
,
fieldName
:
'tenderStage'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[]
}
,
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入关键词查询'
,
options
:
[]
}
{
type
:
7
,
fieldName
:
'province'
,
value
:
''
,
props
:
{
multiple
:
true
}
,
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
()
}
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
}
;
}
,
computed
:
{
}
,
created
()
{
this
.
handleOption
()
this
.
handleQuery
()
this
.
handleOption
()
;
this
.
handleQuery
()
;
}
,
methods
:
{
async
handleOption
(){
async
handleOption
()
{
let
[
area
,
tender
]
=
await
Promise
.
all
([
bidNoticeArea
({
cid
:
this
.
companyId
}
),
bidNoticeTenderStage
({
cid
:
this
.
companyId
}
)
])
if
(
area
.
code
==
200
)
{
bidNoticeArea
({
cid
:
this
.
companyId
}
),
bidNoticeTenderStage
({
cid
:
this
.
companyId
}
)
])
;
if
(
area
.
code
==
200
)
{
let
region
=
area
.
data
.
map
(
item
=>
{
let
province
=
{
label
:
item
.
province
+
'('
+
item
.
count
+
')'
,
value
:
item
.
provinceId
}
if
(
item
.
citys
&&
item
.
citys
.
length
>
0
)
{
let
city
=
[],
citem
=
{
}
for
(
let
i
=
0
;
i
<
item
.
citys
.
length
;
i
++
)
{
citem
=
{
label
:
item
.
citys
[
i
].
city
,
value
:
item
.
citys
[
i
].
cityId
}
if
(
item
.
citys
[
i
].
areas
&&
item
.
citys
[
i
].
areas
.
length
>
0
)
{
let
area
=
[],
aitem
=
{
}
for
(
let
j
=
0
;
j
<
item
.
citys
[
i
].
areas
.
length
;
j
++
)
{
aitem
=
{
label
:
item
.
citys
[
i
].
areas
[
j
].
area
,
value
:
item
.
citys
[
i
].
areas
[
j
].
areaId
}
area
.
push
(
aitem
)
citem
.
children
=
area
let
province
=
{
label
:
item
.
province
+
'('
+
item
.
count
+
')'
,
value
:
item
.
provinceId
}
;
if
(
item
.
citys
&&
item
.
citys
.
length
>
0
)
{
let
city
=
[],
citem
=
{
}
;
for
(
let
i
=
0
;
i
<
item
.
citys
.
length
;
i
++
)
{
citem
=
{
label
:
item
.
citys
[
i
].
city
,
value
:
item
.
citys
[
i
].
cityId
}
;
if
(
item
.
citys
[
i
].
areas
&&
item
.
citys
[
i
].
areas
.
length
>
0
)
{
let
area
=
[],
aitem
=
{
}
;
for
(
let
j
=
0
;
j
<
item
.
citys
[
i
].
areas
.
length
;
j
++
)
{
aitem
=
{
label
:
item
.
citys
[
i
].
areas
[
j
].
area
,
value
:
item
.
citys
[
i
].
areas
[
j
].
areaId
}
;
area
.
push
(
aitem
)
;
citem
.
children
=
area
;
}
}
city
.
push
(
citem
)
city
.
push
(
citem
)
;
}
city
.
length
>
0
?
province
.
children
=
city
:
''
city
.
length
>
0
?
province
.
children
=
city
:
''
;
}
return
province
}
)
this
.
setFormData
(
'province'
,
region
)
return
province
;
}
)
;
this
.
setFormData
(
'province'
,
region
)
;
}
if
(
tender
.
code
==
200
)
{
if
(
tender
.
code
==
200
)
{
let
tenderStage
=
tender
.
data
.
map
(
item
=>
{
let
it
=
{
name
:
item
.
tenderStage
+
'('
+
item
.
count
+
')'
,
value
:
item
.
tenderStage
}
return
it
}
)
this
.
setFormData
(
'tenderStage'
,
tenderStage
)
let
it
=
{
name
:
item
.
tenderStage
+
'('
+
item
.
count
+
')'
,
value
:
item
.
tenderStage
}
;
return
it
;
}
)
;
this
.
setFormData
(
'tenderStage'
,
tenderStage
)
;
}
}
,
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
let
param
=
this
.
getAreaList
(
params
||
this
.
queryParams
)
let
res
=
await
bidNoticePage
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
)
{
this
.
tableLoading
=
true
;
let
param
=
this
.
getAreaList
(
params
||
this
.
queryParams
)
;
let
res
=
await
bidNoticePage
(
param
)
;
this
.
tableLoading
=
false
;
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
this
.
tableData
=
res
.
rows
this
.
tableData
=
res
.
rows
;
}
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
;
}
,
getAreaList
(
params
){
if
(
params
.
province
&&
params
.
province
.
length
>
0
)
{
let
arr
=
this
.
$refs
.
headForm
.
$refs
.
cascader
[
0
].
getCheckedNodes
()
let
provinceIds
=
[],
cityIds
=
[],
areaIds
=
[]
getAreaList
(
params
)
{
if
(
params
.
province
&&
params
.
province
.
length
>
0
)
{
let
arr
=
this
.
$refs
.
headForm
.
$refs
.
cascader
[
0
].
getCheckedNodes
()
;
let
provinceIds
=
[],
cityIds
=
[],
areaIds
=
[]
;
for
(
var
i
in
arr
)
{
if
(
arr
[
i
].
parent
)
{
if
(
!
arr
[
i
].
parent
.
checked
)
{
if
(
arr
[
i
].
hasChildren
||
arr
[
i
].
level
==
2
)
{
cityIds
.
push
(
arr
[
i
].
value
)
}
else
{
areaIds
.
push
(
arr
[
i
].
value
)
if
(
arr
[
i
].
hasChildren
||
arr
[
i
].
level
==
2
)
{
cityIds
.
push
(
arr
[
i
].
value
)
;
}
else
{
areaIds
.
push
(
arr
[
i
].
value
)
;
}
}
}
else
{
provinceIds
.
push
(
arr
[
i
].
value
)
provinceIds
.
push
(
arr
[
i
].
value
)
;
}
}
delete
params
.
province
provinceIds
.
length
>
0
?
params
.
provinceIds
=
provinceIds
:
''
cityIds
.
length
>
0
?
params
.
cityIds
=
cityIds
:
''
areaIds
.
length
>
0
?
params
.
areaIds
=
areaIds
:
''
delete
params
.
province
;
provinceIds
.
length
>
0
?
params
.
provinceIds
=
provinceIds
:
''
;
cityIds
.
length
>
0
?
params
.
cityIds
=
cityIds
:
''
;
areaIds
.
length
>
0
?
params
.
areaIds
=
areaIds
:
''
;
}
return
params
return
params
;
}
}
}
<
/script
>
<
style
lang
=
"scss"
scoped
>
.
detail
-
container
{
.
detail
-
container
{
background
:
#
ffffff
;
border
-
radius
:
4
px
;
padding
:
16
px
;
}
.
tender
-
announcement
{
@
import
"@/assets/styles/search-common.scss"
;
}
<
/style
>
dsk-operate-ui/src/views/detail/party-a/opport/biddingplan.vue
View file @
63e197d8
<
template
>
<div
class=
"detail-container"
>
<head-form
title=
"招标计划"
:form-data=
"formData"
:query-params=
"queryParams"
:isExcel=
"true"
@
handle-search=
"handleSearch"
:total=
"tableDataTotal"
/>
<div
class=
"detail-container bidding-plan"
>
<head-form-new
title=
"招标计划"
:form-data=
"formData"
:query-params=
"queryParams"
:isExcel=
"true"
@
handle-search=
"handleSearch"
:total=
"tableDataTotal"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<template
slot=
"projectName"
slot-scope=
"scope"
>
<router-link
:to=
"`/radar/Bidding/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.projectName " v-html="scope.row.projectName">
</router-link>
<router-link
:to=
"`/radar/Bidding/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.projectName "
v-html="scope.row.projectName">
</router-link>
<div
v-else
v-html=
"scope.row.projectName || '--'"
></div>
</
template
>
<
template
slot=
"province"
slot-scope=
"scope"
>
...
...
@@ -34,9 +19,9 @@
<
/template
>
<
script
>
import
mixin
from
'../mixins/mixin'
import
{
bidPlanPage
,
bidPlanProjectType
}
from
'@/api/detail/party-a/opport'
import
skeleton
from
'@/views/project/projectList/component/skeleton'
import
mixin
from
'../mixins/mixin'
;
import
{
bidPlanPage
,
bidPlanProjectType
}
from
'@/api/detail/party-a/opport'
;
import
skeleton
from
'@/views/project/projectList/component/skeleton'
;
export
default
{
name
:
'Biddingplan'
,
props
:
[
'companyId'
],
...
...
@@ -46,69 +31,73 @@ export default {
}
,
data
()
{
return
{
isSkeleton
:
true
,
isSkeleton
:
true
,
queryParams
:
{
cid
:
this
.
companyId
,
sort
:
3
,
pageNum
:
1
,
pageSize
:
20
}
,
defaultSort
:
{
prop
:
'issueTime'
,
order
:
'descending'
}
,
defaultSort
:
{
prop
:
'issueTime'
,
order
:
'descending'
}
,
forData
:
[
{
label
:
'项目名称'
,
prop
:
'projectName'
,
minWidth
:
'400'
,
slot
:
true
}
,
{
label
:
'发布日期'
,
prop
:
'issueTime'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
,
width
:
'120'
}
,
{
label
:
'合同预估金额(万元)'
,
prop
:
'planTenderAmount'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
,
width
:
'170'
}
,
{
label
:
'资金来源'
,
prop
:
'projecetCapitalSource'
,
minWidth
:
'100'
}
,
{
label
:
'项目地区'
,
prop
:
'province'
,
minWidth
:
'110'
,
slot
:
true
}
,
{
label
:
'项目类型'
,
prop
:
'buildingProjectType'
,
minWidth
:
'100'
}
,
{
label
:
'标的物类型'
,
prop
:
'objectType'
,
minWidth
:
'100'
}
,
{
label
:
'预计招标日期'
,
prop
:
'planTenderDateStart'
,
sortable
:
'custom'
,
descending
:
'15'
,
ascending
:
'16'
,
minWidth
:
'110'
}
{
label
:
'项目名称'
,
prop
:
'projectName'
,
minWidth
:
'400'
,
slot
:
true
}
,
{
label
:
'发布日期'
,
prop
:
'issueTime'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
,
width
:
'120'
}
,
{
label
:
'合同预估金额(万元)'
,
prop
:
'planTenderAmount'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
,
width
:
'170'
}
,
{
label
:
'资金来源'
,
prop
:
'projecetCapitalSource'
,
minWidth
:
'100'
}
,
{
label
:
'项目地区'
,
prop
:
'province'
,
minWidth
:
'110'
,
slot
:
true
}
,
{
label
:
'项目类型'
,
prop
:
'buildingProjectType'
,
minWidth
:
'100'
}
,
{
label
:
'标的物类型'
,
prop
:
'objectType'
,
minWidth
:
'100'
}
,
{
label
:
'预计招标日期'
,
prop
:
'planTenderDateStart'
,
sortable
:
'custom'
,
descending
:
'15'
,
ascending
:
'16'
,
minWidth
:
'110'
}
],
formData
:
[
{
type
:
4
,
fieldName
:
'buildingProjectType'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[]
}
,
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目名称关键词查询'
,
options
:
[],
width
:
220
}
{
type
:
4
,
fieldName
:
'buildingProjectType'
,
value
:
''
,
placeholder
:
'项目类型'
,
options
:
[]
,
uid
:
this
.
getUid
()
}
,
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目名称关键词查询'
,
options
:
[],
width
:
220
,
uid
:
this
.
getUid
()
}
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
}
;
}
,
computed
:
{
}
,
created
()
{
this
.
handleQuery
()
this
.
handleOption
()
this
.
handleQuery
()
;
this
.
handleOption
()
;
}
,
methods
:
{
async
handleOption
(){
let
res
=
await
bidPlanProjectType
({
cid
:
this
.
companyId
}
)
if
(
res
.
code
==
200
)
{
async
handleOption
()
{
let
res
=
await
bidPlanProjectType
({
cid
:
this
.
companyId
}
);
if
(
res
.
code
==
200
)
{
let
buildingProjectType
=
res
.
data
.
map
(
item
=>
{
let
it
=
{
name
:
item
.
buildingProjectType
+
'('
+
item
.
count
+
')'
,
value
:
item
.
buildingProjectType
}
return
it
}
)
this
.
setFormData
(
'buildingProjectType'
,
buildingProjectType
)
let
it
=
{
name
:
item
.
buildingProjectType
+
'('
+
item
.
count
+
')'
,
value
:
item
.
buildingProjectType
}
;
return
it
;
}
)
;
this
.
setFormData
(
'buildingProjectType'
,
buildingProjectType
)
;
}
}
,
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
let
res
=
await
bidPlanPage
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
)
{
this
.
tableLoading
=
true
;
let
param
=
params
?
params
:
this
.
queryParams
;
let
res
=
await
bidPlanPage
(
param
)
;
this
.
tableLoading
=
false
;
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
this
.
tableData
=
res
.
rows
this
.
tableData
=
res
.
rows
;
}
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
;
}
}
}
<
/script
>
<
style
lang
=
"scss"
scoped
>
.
detail
-
container
{
.
detail
-
container
{
background
:
#
ffffff
;
border
-
radius
:
4
px
;
padding
:
16
px
;
}
.
bidding
-
plan
{
@
import
"@/assets/styles/search-common.scss"
;
}
<
/style
>
dsk-operate-ui/src/views/detail/party-a/opport/bond.vue
View file @
63e197d8
<
template
>
<div
class=
"detail-container"
>
<head-form
title=
"专项债项目"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<div
class=
"detail-container special-bond"
>
<head-form-new
title=
"专项债项目"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<template
slot=
"projectName"
slot-scope=
"scope"
>
<router-link
:to=
"`/radar/debtProject/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.projectName " v-html="scope.row.projectName">
</router-link>
<router-link
:to=
"`/radar/debtProject/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.projectName "
v-html="scope.row.projectName">
</router-link>
<div
v-else
v-html=
"scope.row.projectName || '--'"
></div>
</
template
>
</tables>
...
...
@@ -31,9 +16,9 @@
</template>
<
script
>
import
mixin
from
'../mixins/mixin'
import
{
specialDebtProjectPage
}
from
'@/api/detail/party-a/opport'
import
skeleton
from
'@/views/project/projectList/component/skeleton'
import
mixin
from
'../mixins/mixin'
;
import
{
specialDebtProjectPage
}
from
'@/api/detail/party-a/opport'
;
import
skeleton
from
'@/views/project/projectList/component/skeleton'
;
export
default
{
name
:
'Bond'
,
props
:
[
'companyId'
],
...
...
@@ -43,53 +28,57 @@ export default {
},
data
()
{
return
{
isSkeleton
:
true
,
isSkeleton
:
true
,
queryParams
:
{
cid
:
this
.
companyId
,
sort
:
1
,
pageNum
:
1
,
pageSize
:
20
},
defaultSort
:
{
prop
:
'projectTotalInvestment'
,
order
:
'descending'
},
defaultSort
:
{
prop
:
'projectTotalInvestment'
,
order
:
'descending'
},
forData
:
[
{
label
:
'项目名称'
,
prop
:
'projectName'
,
minWidth
:
'300'
,
slot
:
true
},
{
label
:
'项目总投资(万元)'
,
prop
:
'projectTotalInvestment'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
,
width
:
'160'
},
{
label
:
'项目资本金(万元)'
,
prop
:
'projectCapital'
,
sortable
:
'custom'
,
descending
:
'17'
,
ascending
:
'18'
,
width
:
'160'
},
{
label
:
'专项债用作资本金(万元)'
,
prop
:
'specialBondCapital'
,
sortable
:
'custom'
,
descending
:
'19'
,
ascending
:
'20'
,
width
:
'200'
}
{
label
:
'项目名称'
,
prop
:
'projectName'
,
minWidth
:
'300'
,
slot
:
true
},
{
label
:
'项目总投资(万元)'
,
prop
:
'projectTotalInvestment'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
,
width
:
'160'
},
{
label
:
'项目资本金(万元)'
,
prop
:
'projectCapital'
,
sortable
:
'custom'
,
descending
:
'17'
,
ascending
:
'18'
,
width
:
'160'
},
{
label
:
'专项债用作资本金(万元)'
,
prop
:
'specialBondCapital'
,
sortable
:
'custom'
,
descending
:
'19'
,
ascending
:
'20'
,
width
:
'200'
}
],
formData
:
[
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目名称关键词查询'
,
options
:
[],
width
:
220
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目名称关键词查询'
,
options
:
[],
width
:
220
,
uid
:
this
.
getUid
()
},
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
}
;
},
computed
:
{
},
created
()
{
this
.
handleQuery
()
this
.
handleQuery
()
;
},
methods
:
{
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
let
res
=
await
specialDebtProjectPage
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
)
{
this
.
tableLoading
=
true
;
let
param
=
params
?
params
:
this
.
queryParams
;
let
res
=
await
specialDebtProjectPage
(
param
)
;
this
.
tableLoading
=
false
;
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
this
.
tableData
=
res
.
rows
this
.
tableData
=
res
.
rows
;
}
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
;
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.detail-container
{
.detail-container
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
}
.special-bond
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/opport/landtransaction.vue
View file @
63e197d8
<
template
>
<div
class=
"detail-container"
>
<head-form
title=
"土地交易"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<div
class=
"detail-container land-transaction"
>
<head-form-new
title=
"土地交易"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<template
slot=
"projectName"
slot-scope=
"scope"
>
<router-link
:to=
"`/radar/Land/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.projectName " v-html="scope.row.projectName">
</router-link>
<router-link
:to=
"`/radar/Land/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.projectName "
v-html="scope.row.projectName">
</router-link>
<div
v-else
v-html=
"scope.row.projectName || '--'"
></div>
</
template
>
</tables>
...
...
@@ -31,9 +16,9 @@
</template>
<
script
>
import
mixin
from
'../mixins/mixin'
import
{
landUse
,
landTransactionPage
}
from
'@/api/detail/party-a/opport'
import
skeleton
from
'@/views/project/projectList/component/skeleton'
import
mixin
from
'../mixins/mixin'
;
import
{
landUse
,
landTransactionPage
}
from
'@/api/detail/party-a/opport'
;
import
skeleton
from
'@/views/project/projectList/component/skeleton'
;
export
default
{
name
:
'Landtransaction'
,
props
:
[
'companyId'
],
...
...
@@ -43,75 +28,79 @@ export default {
},
data
()
{
return
{
isSkeleton
:
true
,
isSkeleton
:
true
,
queryParams
:
{
cid
:
this
.
companyId
,
sort
:
3
,
pageNum
:
1
,
pageSize
:
20
},
defaultSort
:
{
prop
:
'contractSignTime'
,
order
:
'descending'
},
defaultSort
:
{
prop
:
'contractSignTime'
,
order
:
'descending'
},
forData
:
[
{
label
:
'项目名称'
,
prop
:
'projectName'
,
minWidth
:
'300'
,
slot
:
true
},
{
label
:
'土地用途'
,
prop
:
'landUse'
,
width
:
'130'
},
{
label
:
'行业分类'
,
prop
:
'industry'
,
width
:
'100'
},
{
label
:
'供地方式'
,
prop
:
'supplyLandWay'
,
width
:
'100'
},
{
label
:
'土地坐落'
,
prop
:
'landAddr'
,
minWidth
:
'130'
},
{
label
:
'成交金额(万元)'
,
prop
:
'transactionPrice'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
,
width
:
'140'
},
{
label
:
'总面积(㎡)'
,
prop
:
'acreage'
,
sortable
:
'custom'
,
descending
:
'11'
,
ascending
:
'12'
,
width
:
'130'
},
{
label
:
'批准单位'
,
prop
:
'authority'
,
width
:
'130'
},
{
label
:
'签订日期'
,
prop
:
'contractSignTime'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
,
width
:
'130'
}
{
label
:
'项目名称'
,
prop
:
'projectName'
,
minWidth
:
'300'
,
slot
:
true
},
{
label
:
'土地用途'
,
prop
:
'landUse'
,
width
:
'130'
},
{
label
:
'行业分类'
,
prop
:
'industry'
,
width
:
'100'
},
{
label
:
'供地方式'
,
prop
:
'supplyLandWay'
,
width
:
'100'
},
{
label
:
'土地坐落'
,
prop
:
'landAddr'
,
minWidth
:
'130'
},
{
label
:
'成交金额(万元)'
,
prop
:
'transactionPrice'
,
sortable
:
'custom'
,
descending
:
'1'
,
ascending
:
'2'
,
width
:
'140'
},
{
label
:
'总面积(㎡)'
,
prop
:
'acreage'
,
sortable
:
'custom'
,
descending
:
'11'
,
ascending
:
'12'
,
width
:
'130'
},
{
label
:
'批准单位'
,
prop
:
'authority'
,
width
:
'130'
},
{
label
:
'签订日期'
,
prop
:
'contractSignTime'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
,
width
:
'130'
}
],
formData
:
[
{
type
:
4
,
fieldName
:
'landUse'
,
value
:
''
,
placeholder
:
'土地用途'
,
options
:
[]},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目名称关键词查询'
,
options
:
[],
width
:
220
}
{
type
:
4
,
fieldName
:
'landUse'
,
value
:
''
,
placeholder
:
'土地用途'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目名称关键词查询'
,
options
:
[],
width
:
220
,
uid
:
this
.
getUid
()
}
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
}
;
},
computed
:
{
},
created
()
{
this
.
handleOption
()
this
.
handleQuery
()
this
.
handleOption
()
;
this
.
handleQuery
()
;
},
methods
:
{
async
handleOption
(){
let
res
=
await
landUse
({
cid
:
this
.
companyId
})
if
(
res
.
code
==
200
)
{
async
handleOption
()
{
let
res
=
await
landUse
({
cid
:
this
.
companyId
});
if
(
res
.
code
==
200
)
{
let
use
=
res
.
data
.
map
(
item
=>
{
let
it
=
{
name
:
item
.
landUse
+
'('
+
item
.
count
+
')'
,
value
:
item
.
landUse
}
return
it
})
this
.
setFormData
(
'landUse'
,
use
)
let
it
=
{
name
:
item
.
landUse
+
'('
+
item
.
count
+
')'
,
value
:
item
.
landUse
};
return
it
;
})
;
this
.
setFormData
(
'landUse'
,
use
)
;
}
},
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
let
res
=
await
landTransactionPage
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
)
{
this
.
tableLoading
=
true
;
let
param
=
params
?
params
:
this
.
queryParams
;
let
res
=
await
landTransactionPage
(
param
)
;
this
.
tableLoading
=
false
;
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
this
.
tableData
=
res
.
rows
if
(
this
.
tableData
.
length
>
0
)
{
this
.
tableData
.
map
(
item
=>
{
item
.
transactionPrice
==
0
&&
(
item
.
transactionPrice
=
'--'
)
})
this
.
tableData
=
res
.
rows
;
if
(
this
.
tableData
.
length
>
0
)
{
this
.
tableData
.
map
(
item
=>
{
item
.
transactionPrice
==
0
&&
(
item
.
transactionPrice
=
'--'
);
})
;
}
}
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
;
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.detail-container
{
.detail-container
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
}
.land-transaction
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/opport/proposed.vue
View file @
63e197d8
<
template
>
<div
class=
"detail-container"
>
<head-form
title=
"拟建项目"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<div
class=
"detail-container proposed-project"
>
<head-form-new
title=
"拟建项目"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<tables
v-else
:indexFixed=
"true"
:defaultSort=
"defaultSort"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<template
slot=
"projectName"
slot-scope=
"scope"
>
<router-link
:to=
"`/radar/Establishment/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.projectName " v-html="scope.row.projectName">
</router-link>
<router-link
:to=
"`/radar/Establishment/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.projectName "
v-html="scope.row.projectName">
</router-link>
<div
v-else
v-html=
"scope.row.projectName || '--'"
></div>
</
template
>
<
template
slot=
"isProjcet"
slot-scope=
"scope"
>
...
...
@@ -34,9 +19,9 @@
</template>
<
script
>
import
mixin
from
'../mixins/mixin'
import
{
approvalProjectPage
}
from
'@/api/detail/party-a/opport'
import
skeleton
from
'@/views/project/projectList/component/skeleton'
import
mixin
from
'../mixins/mixin'
;
import
{
approvalProjectPage
}
from
'@/api/detail/party-a/opport'
;
import
skeleton
from
'@/views/project/projectList/component/skeleton'
;
export
default
{
name
:
'Proposed'
,
props
:
[
'companyId'
],
...
...
@@ -52,51 +37,55 @@ export default {
pageNum
:
1
,
pageSize
:
20
},
defaultSort
:
{
prop
:
'planStartTime'
,
order
:
'descending'
},
defaultSort
:
{
prop
:
'planStartTime'
,
order
:
'descending'
},
forData
:
[
{
label
:
'项目名称'
,
prop
:
'projectName'
,
minWidth
:
'300'
,
slot
:
true
},
{
label
:
'项目名称'
,
prop
:
'projectName'
,
minWidth
:
'300'
,
slot
:
true
},
// {label: '成交金额(万元)', prop: 'money', sortable: 'custom', descending: '1', ascending: '2', width: '150'},
{
label
:
'项目类别'
,
prop
:
'projectCategories'
,
width
:
'100'
},
{
label
:
'计划开工日期'
,
prop
:
'planStartTime'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
,
width
:
'130'
},
{
label
:
'计划完工日期'
,
prop
:
'planEndTime'
,
sortable
:
'custom'
,
descending
:
'13'
,
ascending
:
'14'
,
width
:
'130'
},
{
label
:
'审批结果'
,
prop
:
'examineStatus'
,
width
:
'100'
},
{
label
:
'是否为民间推介项目'
,
prop
:
'isProjcet'
,
width
:
'150'
,
slot
:
true
}
{
label
:
'项目类别'
,
prop
:
'projectCategories'
,
width
:
'100'
},
{
label
:
'计划开工日期'
,
prop
:
'planStartTime'
,
sortable
:
'custom'
,
descending
:
'3'
,
ascending
:
'4'
,
width
:
'130'
},
{
label
:
'计划完工日期'
,
prop
:
'planEndTime'
,
sortable
:
'custom'
,
descending
:
'13'
,
ascending
:
'14'
,
width
:
'130'
},
{
label
:
'审批结果'
,
prop
:
'examineStatus'
,
width
:
'100'
},
{
label
:
'是否为民间推介项目'
,
prop
:
'isProjcet'
,
width
:
'150'
,
slot
:
true
}
],
formData
:
[
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目名称关键词查询'
,
options
:
[],
width
:
220
},
{
type
:
1
,
fieldName
:
'isProject'
,
value
:
''
,
placeholder
:
'是否为民间推介项目'
,
options
:
[{
name
:
'不限'
,
value
:
null
},{
name
:
'是'
,
value
:
'1'
},{
name
:
'否'
,
value
:
'0'
}],
width
:
180
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入项目名称关键词查询'
,
options
:
[],
width
:
220
,
uid
:
this
.
getUid
()
},
{
type
:
1
,
fieldName
:
'isProject'
,
value
:
''
,
placeholder
:
'是否为民间推介项目'
,
options
:
[{
name
:
'不限'
,
value
:
null
},
{
name
:
'是'
,
value
:
'1'
},
{
name
:
'否'
,
value
:
'0'
}],
width
:
180
,
uid
:
this
.
getUid
()
},
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
isSkeleton
:
true
,
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isSkeleton
:
true
,
}
;
},
computed
:
{
},
created
()
{
this
.
handleQuery
()
this
.
handleQuery
()
;
},
methods
:
{
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
let
res
=
await
approvalProjectPage
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
)
{
this
.
tableLoading
=
true
;
let
param
=
params
?
params
:
this
.
queryParams
;
let
res
=
await
approvalProjectPage
(
param
)
;
this
.
tableLoading
=
false
;
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
this
.
tableData
=
res
.
rows
this
.
tableData
=
res
.
rows
;
}
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
;
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.detail-container
{
.detail-container
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
}
.proposed-project
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/opport/tencent.vue
View file @
63e197d8
<
template
>
<div
class=
"detail-container"
>
<head-form
title=
"标讯Pro"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<div
class=
"detail-container beacon-pro"
>
<head-form-new
title=
"标讯Pro"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<tables
v-else
:indexFixed=
"true"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<tables
v-else
:indexFixed=
"true"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<template
slot=
"projectName"
slot-scope=
"scope"
>
<router-link
:to=
"`/radar/bxprozbgg/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.projectName " v-html="scope.row.projectName">
</router-link>
<router-link
:to=
"`/radar/bxprozbgg/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.projectName "
v-html="scope.row.projectName">
</router-link>
<div
v-else
v-html=
"scope.row.projectName || '--'"
></div>
</
template
>
<
template
slot=
"tenderee"
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>
<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>
<div
v-else
v-html=
"scope.row.tenderee || '--'"
></div>
</
template
>
<
template
slot=
"agency"
slot-scope=
"scope"
>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.agencyId)}`:`/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>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.agencyId)}`:`/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"
>
...
...
@@ -40,9 +29,9 @@
<
/template
>
<
script
>
import
mixin
from
'../mixins/mixin'
import
skeleton
from
'@/views/project/projectList/component/skeleton'
import
{
bidNoticeProProjectType
,
bidNoticeProProjectPurposes
,
bidNoticeProAssessmentWay
,
bidNoticeProPage
}
from
'@/api/detail/party-a/opport'
import
mixin
from
'../mixins/mixin'
;
import
skeleton
from
'@/views/project/projectList/component/skeleton'
;
import
{
bidNoticeProProjectType
,
bidNoticeProProjectPurposes
,
bidNoticeProAssessmentWay
,
bidNoticeProPage
}
from
'@/api/detail/party-a/opport'
;
export
default
{
name
:
'Tencent'
,
props
:
[
'companyId'
],
...
...
@@ -58,101 +47,111 @@ export default {
pageSize
:
20
}
,
forData
:
[
{
label
:
'项目名称'
,
prop
:
'projectName'
,
minWidth
:
'320'
,
slot
:
true
}
,
{
label
:
'发布日期'
,
prop
:
'pubdate'
,
width
:
'110'
}
,
{
label
:
'金额(万元)'
,
prop
:
''
,
children
:
[
{
label
:
'建安费暂估'
,
prop
:
'projectSafeAmount'
,
width
:
'98px'
}
,
{
label
:
'勘察费暂估'
,
prop
:
'projectSurveyAmount'
,
width
:
'98px'
}
,
{
label
:
'保证金'
,
prop
:
'projectEnsureAmount'
,
width
:
'98px'
}
]
}
,
{
label
:
'招标人及联系方式'
,
prop
:
''
,
children
:
[
{
label
:
'招标人'
,
prop
:
'tenderee'
,
width
:
'98px'
,
slot
:
true
}
,
{
label
:
'联系人'
,
prop
:
'tendereeTel'
,
width
:
'98px'
}
]
}
,
{
label
:
'代理机构及联系方式'
,
prop
:
''
,
children
:
[
{
label
:
'代理机构'
,
prop
:
'agency'
,
width
:
'88px'
,
slot
:
true
}
,
{
label
:
'联系人'
,
prop
:
'agencyTel'
,
width
:
'88px'
}
]
}
,
{
label
:
'项目分类'
,
prop
:
'projectType'
,
width
:
'130'
}
,
{
label
:
'工程类别'
,
prop
:
'projectPurposes'
,
width
:
'130'
}
,
{
label
:
'分部分项'
,
prop
:
'projectSub'
,
width
:
'130'
}
,
{
label
:
'项目级别'
,
prop
:
'projectLevel'
,
width
:
'130'
}
,
{
label
:
'评标办法'
,
prop
:
'bidAssessmentWay'
,
width
:
'130'
}
,
{
label
:
'项目属地'
,
prop
:
'province'
,
width
:
'130'
,
slot
:
true
}
{
label
:
'项目名称'
,
prop
:
'projectName'
,
minWidth
:
'320'
,
slot
:
true
}
,
{
label
:
'发布日期'
,
prop
:
'pubdate'
,
width
:
'110'
}
,
{
label
:
'金额(万元)'
,
prop
:
''
,
children
:
[
{
label
:
'建安费暂估'
,
prop
:
'projectSafeAmount'
,
width
:
'98px'
}
,
{
label
:
'勘察费暂估'
,
prop
:
'projectSurveyAmount'
,
width
:
'98px'
}
,
{
label
:
'保证金'
,
prop
:
'projectEnsureAmount'
,
width
:
'98px'
}
]
}
,
{
label
:
'招标人及联系方式'
,
prop
:
''
,
children
:
[
{
label
:
'招标人'
,
prop
:
'tenderee'
,
width
:
'98px'
,
slot
:
true
}
,
{
label
:
'联系人'
,
prop
:
'tendereeTel'
,
width
:
'98px'
}
]
}
,
{
label
:
'代理机构及联系方式'
,
prop
:
''
,
children
:
[
{
label
:
'代理机构'
,
prop
:
'agency'
,
width
:
'88px'
,
slot
:
true
}
,
{
label
:
'联系人'
,
prop
:
'agencyTel'
,
width
:
'88px'
}
]
}
,
{
label
:
'项目分类'
,
prop
:
'projectType'
,
width
:
'130'
}
,
{
label
:
'工程类别'
,
prop
:
'projectPurposes'
,
width
:
'130'
}
,
{
label
:
'分部分项'
,
prop
:
'projectSub'
,
width
:
'130'
}
,
{
label
:
'项目级别'
,
prop
:
'projectLevel'
,
width
:
'130'
}
,
{
label
:
'评标办法'
,
prop
:
'bidAssessmentWay'
,
width
:
'130'
}
,
{
label
:
'项目属地'
,
prop
:
'province'
,
width
:
'130'
,
slot
:
true
}
],
formData
:
[
{
type
:
1
,
fieldName
:
'projectType'
,
value
:
''
,
placeholder
:
'项目类别'
,
options
:
[]
}
,
{
type
:
1
,
fieldName
:
'projectPurposes'
,
value
:
''
,
placeholder
:
'工程类别'
,
options
:
[]
}
,
{
type
:
1
,
fieldName
:
'bidAssessmentWay'
,
value
:
''
,
placeholder
:
'评标办法'
,
options
:
[]
}
,
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入关键词查询'
,
options
:
[]
}
{
type
:
1
,
fieldName
:
'projectType'
,
value
:
''
,
placeholder
:
'项目类别'
,
options
:
[]
,
uid
:
this
.
getUid
()
}
,
{
type
:
1
,
fieldName
:
'projectPurposes'
,
value
:
''
,
placeholder
:
'工程类别'
,
options
:
[]
,
uid
:
this
.
getUid
()
}
,
{
type
:
1
,
fieldName
:
'bidAssessmentWay'
,
value
:
''
,
placeholder
:
'评标办法'
,
options
:
[]
,
uid
:
this
.
getUid
()
}
,
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'输入关键词查询'
,
options
:
[]
,
uid
:
this
.
getUid
()
}
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
isSkeleton
:
true
,
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isSkeleton
:
true
,
}
;
}
,
computed
:
{
}
,
created
()
{
this
.
handleOption
()
this
.
handleQuery
()
this
.
handleOption
()
;
this
.
handleQuery
()
;
}
,
methods
:
{
async
handleOption
(){
async
handleOption
()
{
let
[
projectType
,
projectPurposes
,
proAssessmentWay
]
=
await
Promise
.
all
([
bidNoticeProProjectType
({
cid
:
this
.
companyId
}
),
bidNoticeProProjectPurposes
({
cid
:
this
.
companyId
}
),
bidNoticeProAssessmentWay
({
cid
:
this
.
companyId
}
)
])
if
(
projectType
.
code
==
200
)
{
bidNoticeProProjectType
({
cid
:
this
.
companyId
}
),
bidNoticeProProjectPurposes
({
cid
:
this
.
companyId
}
),
bidNoticeProAssessmentWay
({
cid
:
this
.
companyId
}
)
])
;
if
(
projectType
.
code
==
200
)
{
let
type
=
projectType
.
data
.
map
(
item
=>
{
let
it
=
{
name
:
item
.
projectType
+
'('
+
item
.
count
+
')'
,
value
:
item
.
projectType
}
return
it
}
)
this
.
setFormData
(
'projectType'
,
type
)
let
it
=
{
name
:
item
.
projectType
+
'('
+
item
.
count
+
')'
,
value
:
item
.
projectType
}
;
return
it
;
}
)
;
this
.
setFormData
(
'projectType'
,
type
)
;
}
if
(
projectPurposes
.
code
==
200
)
{
if
(
projectPurposes
.
code
==
200
)
{
let
purposes
=
projectPurposes
.
data
.
map
(
item
=>
{
let
it
=
{
name
:
item
.
projectPurposes
+
'('
+
item
.
count
+
')'
,
value
:
item
.
projectPurposes
}
return
it
}
)
this
.
setFormData
(
'projectPurposes'
,
purposes
)
let
it
=
{
name
:
item
.
projectPurposes
+
'('
+
item
.
count
+
')'
,
value
:
item
.
projectPurposes
}
;
return
it
;
}
)
;
this
.
setFormData
(
'projectPurposes'
,
purposes
)
;
}
if
(
proAssessmentWay
.
code
==
200
)
{
if
(
proAssessmentWay
.
code
==
200
)
{
let
way
=
proAssessmentWay
.
data
.
map
(
item
=>
{
let
it
=
{
name
:
item
.
bidAssessmentWay
+
'('
+
item
.
count
+
')'
,
value
:
item
.
bidAssessmentWay
}
return
it
}
)
this
.
setFormData
(
'bidAssessmentWay'
,
way
)
let
it
=
{
name
:
item
.
bidAssessmentWay
+
'('
+
item
.
count
+
')'
,
value
:
item
.
bidAssessmentWay
}
;
return
it
;
}
)
;
this
.
setFormData
(
'bidAssessmentWay'
,
way
)
;
}
}
,
async
handleQuery
(
params
)
{
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
let
res
=
await
bidNoticeProPage
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
)
{
this
.
tableLoading
=
true
;
let
param
=
params
?
params
:
this
.
queryParams
;
let
res
=
await
bidNoticeProPage
(
param
)
;
this
.
tableLoading
=
false
;
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
this
.
tableData
=
res
.
rows
if
(
this
.
tableData
&&
this
.
tableData
.
length
>
0
)
{
this
.
tableData
=
res
.
rows
;
if
(
this
.
tableData
&&
this
.
tableData
.
length
>
0
)
{
this
.
tableData
.
forEach
(
item
=>
{
item
.
projectSafeAmount
?
item
.
projectSafeAmount
=
parseFloat
(
parseFloat
(
item
.
projectSafeAmount
).
toFixed
(
4
))
:
''
item
.
projectSurveyAmount
?
item
.
projectSurveyAmount
=
parseFloat
(
parseFloat
(
item
.
projectSurveyAmount
).
toFixed
(
4
))
:
''
item
.
projectEnsureAmount
?
item
.
projectEnsureAmount
=
parseFloat
(
parseFloat
(
item
.
projectEnsureAmount
).
toFixed
(
4
))
:
''
}
)
item
.
projectSafeAmount
?
item
.
projectSafeAmount
=
parseFloat
(
parseFloat
(
item
.
projectSafeAmount
).
toFixed
(
4
))
:
''
;
item
.
projectSurveyAmount
?
item
.
projectSurveyAmount
=
parseFloat
(
parseFloat
(
item
.
projectSurveyAmount
).
toFixed
(
4
))
:
''
;
item
.
projectEnsureAmount
?
item
.
projectEnsureAmount
=
parseFloat
(
parseFloat
(
item
.
projectEnsureAmount
).
toFixed
(
4
))
:
''
;
}
)
;
}
}
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
;
}
}
}
<
/script
>
<
style
lang
=
"scss"
scoped
>
.
detail
-
container
{
.
detail
-
container
{
background
:
#
ffffff
;
border
-
radius
:
4
px
;
padding
:
16
px
;
}
.
beacon
-
pro
{
@
import
"@/assets/styles/search-common.scss"
;
}
<
/style
>
dsk-operate-ui/src/views/detail/party-a/overview/branch.vue
View file @
63e197d8
<
template
>
<div
class=
"app-container detail-container branch-office"
>
<head-form-new
title=
"分支机构"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<div
class=
"app-container detail-container"
v-else
>
<head-form
title=
"分支机构"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<tables
:indexFixed=
"true"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<tables
v-if=
"!isSkeleton"
:indexFixed=
"true"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<template
slot=
"name"
slot-scope=
"scope"
>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.id)}`:`/company/${encodeStr(scope.row.id)}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.name " v-html="scope.row.name">
</router-link>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.id)}`:`/company/${encodeStr(scope.row.id)}`" tag="a" class="a-link"
v-if="scope.row.id
&&
scope.row.name " v-html="scope.row.name">
</router-link>
<div
v-else
v-html=
"scope.row.name || '--'"
></div>
<div
class=
"tags"
v-if=
"scope.row.status || scope.row.biddingAnnouncement"
>
<span
class=
"tag style1"
v-if=
"scope.row.status"
>
{{
scope
.
row
.
status
}}
</span>
...
...
@@ -32,8 +19,8 @@
</template>
<
script
>
import
mixin
from
'../mixins/mixin'
import
{
affiliates
}
from
'@/api/detail/party-a/overview'
import
mixin
from
'../mixins/mixin'
;
import
{
affiliates
}
from
'@/api/detail/party-a/overview'
;
export
default
{
name
:
'Branch'
,
props
:
[
'companyId'
],
...
...
@@ -46,68 +33,73 @@ export default {
pageSize
:
20
},
forData
:
[
{
label
:
'被投资企业名称'
,
prop
:
'name'
,
slot
:
true
},
{
label
:
'负责人'
,
prop
:
'operName'
},
{
label
:
'成立日期'
,
prop
:
'startDate'
}
{
label
:
'被投资企业名称'
,
prop
:
'name'
,
slot
:
true
},
{
label
:
'负责人'
,
prop
:
'operName'
},
{
label
:
'成立日期'
,
prop
:
'startDate'
}
],
formData
:
[
{
type
:
1
,
fieldName
:
'hasBid'
,
value
:
''
,
placeholder
:
'招标公告'
,
options
:
[
{
name
:
'不限'
,
value
:
'noLimit'
},
{
name
:
'有招标公告'
,
value
:
1
},
{
name
:
'无招标公告'
,
value
:
0
}
{
type
:
1
,
fieldName
:
'hasBid'
,
value
:
''
,
placeholder
:
'招标公告'
,
options
:
[
{
name
:
'不限'
,
value
:
'noLimit'
},
{
name
:
'有招标公告'
,
value
:
1
},
{
name
:
'无招标公告'
,
value
:
0
}
]
}
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
}
;
},
created
()
{
this
.
handleQuery
()
this
.
handleQuery
()
;
},
methods
:
{
async
handleQuery
(
params
)
{
this
.
isSkeleton
=
true
;
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
if
(
param
.
hasBid
==
'noLimit'
)
{
delete
param
.
hasBid
this
.
tableLoading
=
true
;
let
param
=
params
?
params
:
this
.
queryParams
;
if
(
param
.
hasBid
==
'noLimit'
)
{
delete
param
.
hasBid
;
}
let
res
=
await
affiliates
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
)
{
let
res
=
await
affiliates
(
param
)
;
this
.
tableLoading
=
false
;
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
this
.
tableData
=
res
.
rows
this
.
tableData
=
res
.
rows
;
}
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
;
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.detail-container
{
.detail-container
{
margin
:
0
;
padding
:
16px
;
background
:
#FFFFFF
;
background
:
#ffffff
;
border-radius
:
4px
;
.tags
{
.tag
{
.tags
{
.tag
{
display
:
inline-block
;
border-radius
:
2px
;
padding
:
1px
7px
;
margin
:
4px
8px
0
0
;
&
.style1
{
background
:
#E4F3FD
;
color
:
#41A1FD
;
&
.style1
{
background
:
#e4f3fd
;
color
:
#41a1fd
;
}
}
}
::v-deep
.el-input__inner
{
::v-deep
.el-input__inner
{
padding-left
:
10px
;
padding-right
:
22px
;
}
}
}
.branch-office
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/overview/overseas.vue
View file @
63e197d8
<
template
>
<div
class=
"app-container detail-container outward-investment"
>
<head-form-new
title=
"对外投资"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
style=
"margin-left:16px;"
v-if=
"isSkeleton"
></skeleton>
<div
class=
"app-container detail-container"
v-else
>
<head-form
title=
"对外投资"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<tables
:indexFixed=
"true"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<tables
:indexFixed=
"true"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
v-if=
"!isSkeleton"
>
<template
slot=
"investName"
slot-scope=
"scope"
>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.id)}`:`/company/${encodeStr(scope.row.id)}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.investName " v-html="scope.row.investName">
</router-link>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.id)}`:`/company/${encodeStr(scope.row.id)}`" tag="a" class="a-link"
v-if="scope.row.id
&&
scope.row.investName " v-html="scope.row.investName">
</router-link>
<div
v-else
v-html=
"scope.row.investName || '--'"
></div>
<div
class=
"tags"
v-if=
"scope.row.businessStatus || scope.row.biddingAnnouncement"
>
<span
class=
"tag"
:class=
"labelArr.includes(scope.row.businessStatus)?'style2':'style1'"
v-if=
"scope.row.businessStatus"
>
{{
scope
.
row
.
businessStatus
}}
</span>
<span
class=
"tag"
:class=
"labelArr.includes(scope.row.businessStatus)?'style2':'style1'"
v-if=
"scope.row.businessStatus"
>
{{
scope
.
row
.
businessStatus
}}
</span>
<span
class=
"tag style1"
v-if=
"scope.row.biddingCount"
>
招标数
{{
scope
.
row
.
biddingCount
}}
</span>
</div>
</
template
>
...
...
@@ -44,8 +32,8 @@
</template>
<
script
>
import
mixin
from
'../mixins/mixin'
import
{
investment
}
from
'@/api/detail/party-a/overview'
import
mixin
from
'../mixins/mixin'
;
import
{
investment
}
from
'@/api/detail/party-a/overview'
;
export
default
{
name
:
'Overseas'
,
props
:
[
'companyId'
],
...
...
@@ -58,106 +46,113 @@ export default {
pageSize
:
20
},
forData
:
[
{
label
:
'被投资企业名称'
,
prop
:
'investName'
,
minWidth
:
'180'
,
slot
:
true
},
{
label
:
'法定代表人'
,
prop
:
'investOperName'
},
{
label
:
'注册资本'
,
prop
:
'investRegistCapi'
},
{
label
:
'成立日期'
,
prop
:
'investStartDate'
},
{
label
:
'股权占比'
,
prop
:
'stockPercentage'
,
slot
:
true
,
slotHeader
:
true
,
slotName
:
'proportion'
},
{
label
:
'认缴出资额(万元)'
,
prop
:
'shouldCapi'
}
{
label
:
'被投资企业名称'
,
prop
:
'investName'
,
minWidth
:
'180'
,
slot
:
true
},
{
label
:
'法定代表人'
,
prop
:
'investOperName'
},
{
label
:
'注册资本'
,
prop
:
'investRegistCapi'
},
{
label
:
'成立日期'
,
prop
:
'investStartDate'
},
{
label
:
'股权占比'
,
prop
:
'stockPercentage'
,
slot
:
true
,
slotHeader
:
true
,
slotName
:
'proportion'
},
{
label
:
'认缴出资额(万元)'
,
prop
:
'shouldCapi'
}
],
formData
:
[
{
type
:
1
,
fieldName
:
'hasBid'
,
value
:
''
,
placeholder
:
'招标公告'
,
options
:
[
{
name
:
'不限'
,
value
:
'noLimit'
},
{
name
:
'有招标公告'
,
value
:
1
},
{
name
:
'无招标公告'
,
value
:
0
}
{
type
:
1
,
fieldName
:
'hasBid'
,
value
:
''
,
placeholder
:
'招标公告'
,
options
:
[
{
name
:
'不限'
,
value
:
'noLimit'
},
{
name
:
'有招标公告'
,
value
:
1
},
{
name
:
'无招标公告'
,
value
:
0
}
],
width
:
130
width
:
130
,
uid
:
this
.
getUid
()
},
{
type
:
1
,
fieldName
:
'proportion'
,
value
:
''
,
placeholder
:
'股权占比'
,
options
:
[
{
name
:
'不限'
,
value
:
'noLimit'
},
{
name
:
'100%'
,
value
:
'1~1'
},
{
name
:
'66.66%以上'
,
value
:
'0.6666~1'
},
{
name
:
'50%以上'
,
value
:
'0.5~1'
},
{
name
:
'33.33%以上'
,
value
:
'0.3333~1'
},
{
name
:
'25%以上'
,
value
:
'0.25~1'
},
{
name
:
'不到5%'
,
value
:
'0~0.05'
}
{
type
:
1
,
fieldName
:
'proportion'
,
value
:
''
,
placeholder
:
'股权占比'
,
options
:
[
{
name
:
'不限'
,
value
:
'noLimit'
},
{
name
:
'100%'
,
value
:
'1~1'
},
{
name
:
'66.66%以上'
,
value
:
'0.6666~1'
},
{
name
:
'50%以上'
,
value
:
'0.5~1'
},
{
name
:
'33.33%以上'
,
value
:
'0.3333~1'
},
{
name
:
'25%以上'
,
value
:
'0.25~1'
},
{
name
:
'不到5%'
,
value
:
'0~0.05'
}
],
width
:
130
},
{
type
:
3
,
fieldName
:
'keyword'
,
value
:
''
,
placeholder
:
'输入企业名称查询'
},
{
type
:
3
,
fieldName
:
'keyword'
,
value
:
''
,
placeholder
:
'输入企业名称查询'
},
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
labelArr
:
[
'失信联合惩戒企业'
,
'严重行政处罚'
,
'司法纠纷'
,
'注销'
,
'注销企业'
],
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
labelArr
:
[
'失信联合惩戒企业'
,
'严重行政处罚'
,
'司法纠纷'
,
'注销'
,
'注销企业'
],
}
;
},
created
()
{
this
.
handleQuery
()
this
.
handleQuery
()
;
},
methods
:
{
async
handleQuery
(
params
)
{
this
.
isSkeleton
=
true
;
this
.
tableLoading
=
true
let
param
=
params
?
params
:
this
.
queryParams
let
res
=
await
investment
(
param
)
this
.
tableLoading
=
false
if
(
res
.
code
==
200
)
{
this
.
tableLoading
=
true
;
let
param
=
params
?
params
:
this
.
queryParams
;
let
res
=
await
investment
(
param
)
;
this
.
tableLoading
=
false
;
if
(
res
.
code
==
200
)
{
this
.
isSkeleton
=
false
;
this
.
tableData
=
res
.
rows
this
.
tableData
=
res
.
rows
;
}
this
.
tableDataTotal
=
res
.
total
this
.
tableDataTotal
=
res
.
total
;
},
handleSearch
(){
let
params
=
this
.
formParams
()
if
(
params
.
proportion
)
{
if
(
params
.
proportion
!=
'noLimit'
)
{
params
.
stockPercentageMin
=
parseFloat
(
params
.
proportion
.
split
(
'~'
)[
0
])
params
.
stockPercentageMax
=
parseFloat
(
params
.
proportion
.
split
(
'~'
)[
1
])
handleSearch
()
{
let
params
=
this
.
formParams
()
;
if
(
params
.
proportion
)
{
if
(
params
.
proportion
!=
'noLimit'
)
{
params
.
stockPercentageMin
=
parseFloat
(
params
.
proportion
.
split
(
'~'
)[
0
])
;
params
.
stockPercentageMax
=
parseFloat
(
params
.
proportion
.
split
(
'~'
)[
1
])
;
}
delete
params
.
proportion
delete
params
.
proportion
;
}
if
(
params
.
hasBid
==
'noLimit'
)
{
delete
params
.
hasBid
if
(
params
.
hasBid
==
'noLimit'
)
{
delete
params
.
hasBid
;
}
params
.
pageNum
=
1
this
.
queryParams
.
pageNum
=
1
this
.
handleQuery
(
params
)
params
.
pageNum
=
1
;
this
.
queryParams
.
pageNum
=
1
;
this
.
handleQuery
(
params
)
;
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.detail-container
{
.detail-container
{
margin
:
0
;
padding
:
16px
;
background
:
#
FFFFFF
;
background
:
#
ffffff
;
border-radius
:
4px
;
.tab-header
{
img
{
.tab-header
{
img
{
margin-bottom
:
2px
;
width
:
14px
;
height
:
14px
;
cursor
:
pointer
;
}
}
.tags
{
.tag
{
.tags
{
.tag
{
display
:
inline-block
;
border-radius
:
2px
;
padding
:
1px
7px
;
margin
:
4px
8px
0
0
;
&
.style1
{
background
:
#
E4F3FD
;
color
:
#41
A1FD
;
&
.style1
{
background
:
#
e4f3fd
;
color
:
#41
a1fd
;
}
&
.style2
{
background
:
#
FFF1F
1
;
color
:
#
FF3C3C
;
&
.style2
{
background
:
#
fff1f
1
;
color
:
#
ff3c3c
;
}
}
}
}
.outward-investment
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/riskInformation/businessAnomaly.vue
View file @
63e197d8
<
template
>
<div
class=
"corePersonnel"
>
<head-form
title=
"经营异常"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<div
class=
"corePersonnel operating-anomaly"
>
<head-form-new
title=
"经营异常"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<tables
v-if=
"!isSkeleton"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
/>
<tables
v-if=
"!isSkeleton"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
/>
</div>
</
template
>
...
...
@@ -25,9 +13,9 @@
import
{
abnormalPage
,
abnormalYears
}
from
'@/api/detail/party-a/riskInformation'
import
mixin
from
'../mixins/mixin'
import
skeleton
from
'../component/skeleton'
}
from
'@/api/detail/party-a/riskInformation'
;
import
mixin
from
'../mixins/mixin'
;
import
skeleton
from
'../component/skeleton'
;
export
default
{
name
:
'BusinessAnomaly'
,
mixins
:
[
mixin
],
...
...
@@ -43,63 +31,79 @@ export default {
pageSize
:
20
},
forData
:
[
{
label
:
'列入原因'
,
prop
:
'inReason'
},
{
label
:
'列入日期'
,
prop
:
'inDate'
,
width
:
'95'
},
{
label
:
'做出决定机关(移入)'
,
prop
:
'department'
,
width
:
'264'
},
{
label
:
'移出经营异常名录原因'
,
prop
:
'outReason'
,
width
:
'320'
},
{
label
:
'移出日期'
,
prop
:
'outDate'
,
width
:
'95'
},
{
label
:
'做出决定机关(移出)'
,
prop
:
'outDepartment'
,
width
:
'264'
}
{
label
:
'列入原因'
,
prop
:
'inReason'
,
width
:
"508"
},
{
label
:
'列入日期'
,
prop
:
'inDate'
,
width
:
'95'
},
{
label
:
'做出决定机关(移入)'
,
prop
:
'department'
,
width
:
'264'
},
{
label
:
'移出经营异常名录原因'
,
prop
:
'outReason'
,
width
:
'320'
},
{
label
:
'移出日期'
,
prop
:
'outDate'
,
width
:
'95'
},
{
label
:
'做出决定机关(移出)'
,
prop
:
'outDepartment'
,
width
:
'264'
}
],
formData
:
[
{
type
:
4
,
fieldName
:
'years'
,
value
:
''
,
placeholder
:
'列入时间'
,
options
:
[]}
{
type
:
4
,
fieldName
:
'years'
,
value
:
''
,
placeholder
:
'列入时间'
,
options
:
[]
,
uid
:
this
.
getUid
()
}
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
;
},
created
()
{
this
.
handleQuery
()
this
.
years
()
this
.
handleQuery
()
;
this
.
years
()
;
},
computed
:
{
},
methods
:
{
handleQuery
(
params
)
{
let
data
=
params
?
params
:
this
.
queryParams
this
.
isSkeleton
=
true
let
data
=
params
?
params
:
this
.
queryParams
;
this
.
isSkeleton
=
true
;
abnormalPage
(
data
).
then
(
res
=>
{
this
.
tableData
=
res
.
rows
this
.
tableDataTotal
=
res
.
total
this
.
isSkeleton
=
false
})
this
.
tableData
=
res
.
rows
;
this
.
tableDataTotal
=
res
.
total
;
this
.
isSkeleton
=
false
;
})
;
},
years
(){
abnormalYears
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
years
()
{
abnormalYears
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
;
if
(
data
.
length
>
0
)
{
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
this
.
formData
[
0
].
options
.
push
({
name
:
data
[
i
].
year
+
'('
+
data
[
i
].
count
+
')'
,
value
:
data
[
i
].
year
,
})
})
;
}
}
})
})
;
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.corePersonnel
{
.corePersonnel
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
.query-box
{
.query-box
{
margin
:
10px
0
20px
;
}
}
.operating-anomaly
{
@import
"@/assets/styles/search-common.scss"
;
::v-deep
.head-form-new
{
.query-box
{
.el-select
{
width
:
auto
;
.el-select__tags
{
flex-wrap
:
nowrap
;
}
}
}
}
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/riskInformation/courtNotice.vue
View file @
63e197d8
<
template
>
<div
class=
"corePersonnel"
>
<head-form
title=
"法院公告"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<div
class=
"corePersonnel court-announcement"
>
<head-form-new
title=
"法院公告"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<tables
v-if=
"!isSkeleton"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
/>
<tables
v-if=
"!isSkeleton"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
/>
</div>
</
template
>
...
...
@@ -27,9 +15,9 @@ import {
noticesType
,
noticesRole
,
noticesCaseReason
}
from
'@/api/detail/party-a/riskInformation'
import
mixin
from
'../mixins/mixin'
import
skeleton
from
'../component/skeleton'
}
from
'@/api/detail/party-a/riskInformation'
;
import
mixin
from
'../mixins/mixin'
;
import
skeleton
from
'../component/skeleton'
;
export
default
{
name
:
'CourtNotice'
,
mixins
:
[
mixin
],
...
...
@@ -45,97 +33,101 @@ export default {
pageSize
:
20
},
forData
:
[
{
label
:
'案由'
,
prop
:
'caseReason'
},
{
label
:
'公告时间'
,
prop
:
'date'
,
width
:
'95'
},
{
label
:
'当事人'
,
prop
:
'people'
,
width
:
'240'
},
{
label
:
'公告类型'
,
prop
:
'type'
,
width
:
'210'
},
{
label
:
'公告法院'
,
prop
:
'court'
,
width
:
'280'
}
{
label
:
'案由'
,
prop
:
'caseReason'
},
{
label
:
'公告时间'
,
prop
:
'date'
,
width
:
'95'
},
{
label
:
'当事人'
,
prop
:
'people'
,
width
:
'240'
},
{
label
:
'公告类型'
,
prop
:
'type'
,
width
:
'210'
},
{
label
:
'公告法院'
,
prop
:
'court'
,
width
:
'280'
}
],
formData
:
[
{
type
:
1
,
fieldName
:
'type'
,
value
:
''
,
placeholder
:
'公告类型'
,
options
:
[]},
{
type
:
1
,
fieldName
:
'caseReason'
,
value
:
''
,
placeholder
:
'案由'
,
options
:
[]},
{
type
:
1
,
fieldName
:
'role'
,
value
:
''
,
placeholder
:
'身份'
,
options
:
[]},
{
type
:
2
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
''
,
startTime
:
'dateFrom'
,
endTime
:
'dateTo'
}
{
type
:
1
,
fieldName
:
'type'
,
value
:
''
,
placeholder
:
'公告类型'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
1
,
fieldName
:
'caseReason'
,
value
:
''
,
placeholder
:
'案由'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
1
,
fieldName
:
'role'
,
value
:
''
,
placeholder
:
'身份'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
2
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
''
,
startTime
:
'dateFrom'
,
endTime
:
'dateTo'
,
uid
:
this
.
getUid
()
}
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
;
},
created
()
{
this
.
handleQuery
()
this
.
noticesTypes
()
this
.
noticesRoles
()
this
.
noticesCaseReasons
()
this
.
handleQuery
()
;
this
.
noticesTypes
()
;
this
.
noticesRoles
()
;
this
.
noticesCaseReasons
()
;
},
computed
:
{
},
methods
:
{
handleQuery
(
params
)
{
let
data
=
params
?
params
:
this
.
queryParams
this
.
isSkeleton
=
true
let
data
=
params
?
params
:
this
.
queryParams
;
this
.
isSkeleton
=
true
;
noticesPage
(
data
).
then
(
res
=>
{
this
.
tableData
=
res
.
rows
this
.
tableDataTotal
=
res
.
total
this
.
isSkeleton
=
false
})
this
.
tableData
=
res
.
rows
;
this
.
tableDataTotal
=
res
.
total
;
this
.
isSkeleton
=
false
;
})
;
},
// 公告
noticesTypes
(){
noticesType
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
noticesTypes
()
{
noticesType
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
;
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
this
.
formData
[
0
].
options
.
push
({
name
:
data
[
i
].
type
+
'('
+
data
[
i
].
count
+
')'
,
value
:
data
[
i
].
type
,
})
})
;
}
}
})
})
;
},
// 身份
noticesRoles
(){
noticesRole
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
noticesRoles
()
{
noticesRole
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
;
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
this
.
formData
[
2
].
options
.
push
({
name
:
data
[
i
].
role
+
'('
+
data
[
i
].
count
+
')'
,
value
:
data
[
i
].
role
,
})
})
;
}
}
})
})
;
},
// 案由
noticesCaseReasons
(){
noticesCaseReason
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
noticesCaseReasons
()
{
noticesCaseReason
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
;
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
this
.
formData
[
1
].
options
.
push
({
name
:
data
[
i
].
caseReason
+
'('
+
data
[
i
].
count
+
')'
,
value
:
data
[
i
].
caseReason
,
})
})
;
}
}
})
})
;
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.corePersonnel
{
.corePersonnel
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
.query-box
{
.query-box
{
margin
:
10px
0
20px
;
}
}
.court-announcement
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/riskInformation/dishonesty.vue
View file @
63e197d8
<
template
>
<div
class=
"corePersonnel"
>
<head-form
title=
"失信被执行人"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"false"
@
handle-search=
"handleSearch"
/>
<div
class=
"corePersonnel persons-breach"
>
<head-form-new
title=
"失信被执行人"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"false"
@
handle-search=
"handleSearch"
/>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<tables
v-if=
"!isSkeleton"
:index-fixed=
"true"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
/>
<tables
v-if=
"!isSkeleton"
:index-fixed=
"true"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
/>
</div>
</
template
>
...
...
@@ -25,9 +12,9 @@
<
script
>
import
{
executedPage
}
from
'@/api/detail/party-a/riskInformation'
import
mixin
from
'../mixins/mixin'
import
skeleton
from
'../component/skeleton'
}
from
'@/api/detail/party-a/riskInformation'
;
import
mixin
from
'../mixins/mixin'
;
import
skeleton
from
'../component/skeleton'
;
export
default
{
name
:
'Dishonesty'
,
mixins
:
[
mixin
],
...
...
@@ -43,49 +30,53 @@ export default {
pageSize
:
20
},
forData
:
[
{
label
:
'失信被执行人行为具体情形'
,
prop
:
'executionDesc'
,
fixed
:
true
},
{
label
:
'立案日期'
,
prop
:
'date'
,
width
:
'95'
},
{
label
:
'履行情况'
,
prop
:
'executionStatus'
,
width
:
'120'
},
{
label
:
'立案文号'
,
prop
:
'caseNumber'
,
width
:
'210'
},
{
label
:
'执行依据文号'
,
prop
:
'docNumber'
,
width
:
'360'
},
{
label
:
'执行法院'
,
prop
:
'court'
,
width
:
'280'
}
{
label
:
'失信被执行人行为具体情形'
,
prop
:
'executionDesc'
,
fixed
:
true
,
width
:
"508"
},
{
label
:
'立案日期'
,
prop
:
'date'
,
width
:
'95'
},
{
label
:
'履行情况'
,
prop
:
'executionStatus'
,
width
:
'120'
},
{
label
:
'立案文号'
,
prop
:
'caseNumber'
,
width
:
'210'
},
{
label
:
'执行依据文号'
,
prop
:
'docNumber'
,
width
:
'360'
},
{
label
:
'执行法院'
,
prop
:
'court'
,
width
:
'280'
}
],
formData
:
[
{
type
:
2
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'执行时间'
,
startTime
:
'dateFrom'
,
endTime
:
'dateTo'
,
options
:
[]
}
{
type
:
2
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'执行时间'
,
startTime
:
'dateFrom'
,
endTime
:
'dateTo'
,
options
:
[],
uid
:
this
.
getUid
()
}
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
;
},
created
()
{
this
.
handleQuery
()
this
.
handleQuery
()
;
},
computed
:
{
},
methods
:
{
handleQuery
(
params
)
{
let
data
=
params
?
params
:
this
.
queryParams
this
.
isSkeleton
=
true
let
data
=
params
?
params
:
this
.
queryParams
;
this
.
isSkeleton
=
true
;
executedPage
(
data
).
then
(
res
=>
{
this
.
tableData
=
res
.
rows
this
.
tableDataTotal
=
res
.
total
this
.
isSkeleton
=
false
})
this
.
tableData
=
res
.
rows
;
this
.
tableDataTotal
=
res
.
total
;
this
.
isSkeleton
=
false
;
})
;
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.corePersonnel
{
.corePersonnel
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
.query-box
{
.query-box
{
margin
:
10px
0
20px
;
}
}
.persons-breach
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/riskInformation/ifThePerson.vue
View file @
63e197d8
<
template
>
<div
class=
"corePersonnel"
>
<head-form
title=
"被执行人"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"false"
@
handle-search=
"handleSearch"
/>
<div
class=
"corePersonnel person-subject"
>
<head-form-new
title=
"被执行人"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"false"
@
handle-search=
"handleSearch"
/>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<tables
v-if=
"!isSkeleton"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
/>
<tables
v-if=
"!isSkeleton"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
/>
</div>
</
template
>
...
...
@@ -24,9 +12,9 @@
<
script
>
import
{
executedPersonsPage
}
from
'@/api/detail/party-a/riskInformation'
import
mixin
from
'../mixins/mixin'
import
skeleton
from
'../component/skeleton'
}
from
'@/api/detail/party-a/riskInformation'
;
import
mixin
from
'../mixins/mixin'
;
import
skeleton
from
'../component/skeleton'
;
export
default
{
name
:
'IfThePerson'
,
mixins
:
[
mixin
],
...
...
@@ -42,47 +30,51 @@ export default {
pageSize
:
20
},
forData
:
[
{
label
:
'执行标的(元)'
,
prop
:
'amount'
,
width
:
'140'
},
{
label
:
'案号'
,
prop
:
'caseNumber'
,
width
:
'320'
},
{
label
:
'执行法院'
,
prop
:
'court'
},
{
label
:
'立案日期'
,
prop
:
'caseDate'
,
width
:
'95'
}
{
label
:
'执行标的(元)'
,
prop
:
'amount'
,
width
:
'140'
},
{
label
:
'案号'
,
prop
:
'caseNumber'
,
width
:
'320'
},
{
label
:
'执行法院'
,
prop
:
'court'
},
{
label
:
'立案日期'
,
prop
:
'caseDate'
,
width
:
'95'
}
],
formData
:
[
{
type
:
2
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'执行时间'
,
startTime
:
'dateFrom'
,
endTime
:
'dateTo'
,
options
:
[]
}
{
type
:
2
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
'执行时间'
,
startTime
:
'dateFrom'
,
endTime
:
'dateTo'
,
options
:
[],
uid
:
this
.
getUid
()
}
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
;
},
created
()
{
this
.
handleQuery
()
this
.
handleQuery
()
;
},
computed
:
{
},
methods
:
{
handleQuery
(
params
)
{
let
data
=
params
?
params
:
this
.
queryParams
this
.
isSkeleton
=
true
let
data
=
params
?
params
:
this
.
queryParams
;
this
.
isSkeleton
=
true
;
executedPersonsPage
(
data
).
then
(
res
=>
{
this
.
tableData
=
res
.
rows
this
.
tableDataTotal
=
res
.
total
this
.
isSkeleton
=
false
})
this
.
tableData
=
res
.
rows
;
this
.
tableDataTotal
=
res
.
total
;
this
.
isSkeleton
=
false
;
})
;
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.corePersonnel
{
.corePersonnel
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
.query-box
{
.query-box
{
margin
:
10px
0
20px
;
}
}
.person-subject
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/riskInformation/judgment.vue
View file @
63e197d8
<
template
>
<div
class=
"corePersonnel"
>
<head-form
title=
"裁判文书"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"false"
@
handle-search=
"handleSearch"
/>
<div
class=
"corePersonnel judicial-document"
>
<head-form-new
title=
"裁判文书"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"false"
@
handle-search=
"handleSearch"
/>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<tables
v-if=
"!isSkeleton"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<tables
v-if=
"!isSkeleton"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<template
slot=
"relatedCompanies"
slot-scope=
"scope"
>
<div
v-for=
"item in scope.row.relatedCompanies"
>
<span>
{{
item
.
clean_role
}}
:
</span>
{{
item
.
name
}}
...
...
@@ -24,7 +12,6 @@
</
template
>
</tables>
</div>
</template>
...
...
@@ -33,9 +20,9 @@ import {
lawsuitsPage
,
lawsuitsCauseAction
,
lawsuitsRole
}
from
'@/api/detail/party-a/riskInformation'
import
mixin
from
'../mixins/mixin'
import
skeleton
from
'../component/skeleton'
}
from
'@/api/detail/party-a/riskInformation'
;
import
mixin
from
'../mixins/mixin'
;
import
skeleton
from
'../component/skeleton'
;
export
default
{
name
:
'Judgment'
,
mixins
:
[
mixin
],
...
...
@@ -51,84 +38,88 @@ export default {
pageSize
:
20
},
forData
:
[
{
label
:
'案由'
,
prop
:
'causeAction'
},
{
label
:
'执行案号'
,
prop
:
'causeNo'
,
width
:
'210'
},
{
label
:
'身份'
,
prop
:
'role'
,
width
:
'120'
},
{
label
:
'当事人'
,
prop
:
'relatedCompanies'
,
width
:
'240'
,
slot
:
true
},
{
label
:
'案件金额(元)'
,
prop
:
'subAmount'
,
width
:
'140'
},
{
label
:
'判决结果'
,
prop
:
'judgeresult'
,
width
:
'508'
},
{
label
:
'判决日期'
,
prop
:
'date'
,
width
:
'95'
},
{
label
:
'案由'
,
prop
:
'causeAction'
},
{
label
:
'执行案号'
,
prop
:
'causeNo'
,
width
:
'210'
},
{
label
:
'身份'
,
prop
:
'role'
,
width
:
'120'
},
{
label
:
'当事人'
,
prop
:
'relatedCompanies'
,
width
:
'240'
,
slot
:
true
},
{
label
:
'案件金额(元)'
,
prop
:
'subAmount'
,
width
:
'140'
,
align
:
"right"
},
{
label
:
'判决结果'
,
prop
:
'judgeresult'
,
width
:
'508'
},
{
label
:
'判决日期'
,
prop
:
'date'
,
width
:
'95'
},
],
formData
:
[
{
type
:
1
,
fieldName
:
'causeAction'
,
value
:
''
,
placeholder
:
'案由'
,
options
:
[]},
{
type
:
1
,
fieldName
:
'role'
,
value
:
''
,
placeholder
:
'身份'
,
options
:
[]},
{
type
:
2
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
''
,
startTime
:
'dateFrom'
,
endTime
:
'dateTo'
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'请输入执行案号'
}
{
type
:
1
,
fieldName
:
'causeAction'
,
value
:
''
,
placeholder
:
'案由'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
1
,
fieldName
:
'role'
,
value
:
''
,
placeholder
:
'身份'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
2
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
''
,
startTime
:
'dateFrom'
,
endTime
:
'dateTo'
,
uid
:
this
.
getUid
()
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'请输入执行案号'
,
uid
:
this
.
getUid
()
}
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
;
},
created
()
{
this
.
handleQuery
()
this
.
lawsuitsCauseActions
()
this
.
lawsuitsRoles
()
this
.
handleQuery
()
;
this
.
lawsuitsCauseActions
()
;
this
.
lawsuitsRoles
()
;
},
computed
:
{
},
methods
:
{
handleQuery
(
params
)
{
let
data
=
params
?
params
:
this
.
queryParams
this
.
isSkeleton
=
true
let
data
=
params
?
params
:
this
.
queryParams
;
this
.
isSkeleton
=
true
;
lawsuitsPage
(
data
).
then
(
res
=>
{
this
.
tableData
=
res
.
rows
for
(
var
i
=
0
;
i
<
this
.
tableData
.
length
;
i
++
)
{
this
.
tableData
[
i
].
relatedCompanies
=
JSON
.
parse
(
this
.
tableData
[
i
].
relatedCompanies
)
this
.
tableData
=
res
.
rows
;
for
(
var
i
=
0
;
i
<
this
.
tableData
.
length
;
i
++
)
{
this
.
tableData
[
i
].
relatedCompanies
=
JSON
.
parse
(
this
.
tableData
[
i
].
relatedCompanies
)
;
}
this
.
tableDataTotal
=
res
.
total
this
.
isSkeleton
=
false
})
this
.
tableDataTotal
=
res
.
total
;
this
.
isSkeleton
=
false
;
})
;
},
lawsuitsCauseActions
(){
lawsuitsCauseAction
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
lawsuitsCauseActions
()
{
lawsuitsCauseAction
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
;
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
this
.
formData
[
0
].
options
.
push
({
name
:
data
[
i
].
causeAction
+
'('
+
data
[
i
].
num
+
')'
,
value
:
data
[
i
].
causeAction
,
})
})
;
}
}
})
})
;
},
lawsuitsRoles
(){
lawsuitsRole
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
lawsuitsRoles
()
{
lawsuitsRole
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
;
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
this
.
formData
[
1
].
options
.
push
({
name
:
data
[
i
].
role
+
'('
+
data
[
i
].
num
+
')'
,
value
:
data
[
i
].
role
,
})
})
;
}
}
})
})
;
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.corePersonnel
{
.corePersonnel
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
.query-box
{
.query-box
{
margin
:
10px
0
20px
;
}
}
.judicial-document
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/riskInformation/openacourtsessionNotice.vue
View file @
63e197d8
<
template
>
<div
class=
"corePersonnel"
>
<head-form
title=
"开庭公告"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"false"
@
handle-search=
"handleSearch"
/>
<div
class=
"corePersonnel hearing-notice"
>
<head-form-new
title=
"开庭公告"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"false"
@
handle-search=
"handleSearch"
/>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<tables
:index-fixed=
"true"
v-if=
"!isSkeleton"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<tables
:index-fixed=
"true"
v-if=
"!isSkeleton"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<template
slot=
"relatedCompanies"
slot-scope=
"scope"
>
<div
v-for=
"item in scope.row.relatedCompanies"
>
<span>
{{
item
.
role
}}
:
</span>
{{
item
.
name
}}
...
...
@@ -33,9 +20,9 @@ import {
kaitingPage
,
kaitingCauseAction
,
kaitingPureRole
}
from
'@/api/detail/party-a/riskInformation'
import
mixin
from
'../mixins/mixin'
import
skeleton
from
'../component/skeleton'
}
from
'@/api/detail/party-a/riskInformation'
;
import
mixin
from
'../mixins/mixin'
;
import
skeleton
from
'../component/skeleton'
;
export
default
{
name
:
'OpenacourtsessionNotice'
,
mixins
:
[
mixin
],
...
...
@@ -51,91 +38,95 @@ export default {
pageSize
:
20
},
forData
:
[
{
label
:
'案由'
,
prop
:
'causeAction'
,
fixed
:
true
},
{
label
:
'开庭日期'
,
prop
:
'hearingDate'
,
width
:
'95'
},
{
label
:
'当事人'
,
prop
:
'relatedCompanies'
,
width
:
'428'
,
slot
:
true
},
{
label
:
'身份'
,
prop
:
'pureRole'
,
width
:
'120'
},
{
label
:
'公告内容'
,
prop
:
'content'
,
width
:
'508'
},
{
label
:
'案号'
,
prop
:
'caseNo'
,
width
:
'210'
},
{
label
:
'法院'
,
prop
:
'court'
,
width
:
'280'
},
{
label
:
'法庭'
,
prop
:
'tribunal'
,
width
:
'180'
},
{
label
:
'承办部门'
,
prop
:
'department'
,
width
:
'280'
},
{
label
:
'审判长/主判人'
,
prop
:
'judge'
,
width
:
'110'
}
{
label
:
'案由'
,
prop
:
'causeAction'
,
fixed
:
true
,
width
:
"240"
},
{
label
:
'开庭日期'
,
prop
:
'hearingDate'
,
width
:
'95'
},
{
label
:
'当事人'
,
prop
:
'relatedCompanies'
,
width
:
'428'
,
slot
:
true
},
{
label
:
'身份'
,
prop
:
'pureRole'
,
width
:
'120'
},
{
label
:
'公告内容'
,
prop
:
'content'
,
width
:
'508'
},
{
label
:
'案号'
,
prop
:
'caseNo'
,
width
:
'210'
},
{
label
:
'法院'
,
prop
:
'court'
,
width
:
'280'
},
{
label
:
'法庭'
,
prop
:
'tribunal'
,
width
:
'180'
},
{
label
:
'承办部门'
,
prop
:
'department'
,
width
:
'280'
},
{
label
:
'审判长/主判人'
,
prop
:
'judge'
,
width
:
'110'
}
],
formData
:
[
{
type
:
1
,
fieldName
:
'causeAction'
,
value
:
''
,
placeholder
:
'案由'
,
options
:
[]},
{
type
:
1
,
fieldName
:
'pureRole'
,
value
:
''
,
placeholder
:
'身份'
,
options
:
[]},
{
type
:
2
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
''
,
startTime
:
'dateFrom'
,
endTime
:
'dateTo'
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'请输入案号'
},
{
type
:
1
,
fieldName
:
'causeAction'
,
value
:
''
,
placeholder
:
'案由'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
1
,
fieldName
:
'pureRole'
,
value
:
''
,
placeholder
:
'身份'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
2
,
fieldName
:
'time'
,
value
:
''
,
placeholder
:
''
,
startTime
:
'dateFrom'
,
endTime
:
'dateTo'
,
uid
:
this
.
getUid
()
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'请输入案号'
,
uid
:
this
.
getUid
()
},
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
;
},
created
()
{
this
.
handleQuery
()
this
.
kaitingCauseActions
()
this
.
kaitingPureRoles
()
this
.
handleQuery
()
;
this
.
kaitingCauseActions
()
;
this
.
kaitingPureRoles
()
;
},
computed
:
{
},
methods
:
{
toDetail
(){
let
Id
=
'111'
toDetail
()
{
let
Id
=
'111'
;
this
.
$router
.
push
({
path
:
'/project/projectList/detail'
,
query
:
Id
});
},
handleQuery
(
params
)
{
let
data
=
params
?
params
:
this
.
queryParams
this
.
isSkeleton
=
true
let
data
=
params
?
params
:
this
.
queryParams
;
this
.
isSkeleton
=
true
;
kaitingPage
(
data
).
then
(
res
=>
{
this
.
tableData
=
res
.
rows
for
(
var
i
=
0
;
i
<
this
.
tableData
.
length
;
i
++
)
{
this
.
tableData
[
i
].
relatedCompanies
=
JSON
.
parse
(
this
.
tableData
[
i
].
relatedCompanies
)
this
.
tableData
=
res
.
rows
;
for
(
var
i
=
0
;
i
<
this
.
tableData
.
length
;
i
++
)
{
this
.
tableData
[
i
].
relatedCompanies
=
JSON
.
parse
(
this
.
tableData
[
i
].
relatedCompanies
)
;
}
this
.
tableDataTotal
=
res
.
total
this
.
isSkeleton
=
false
})
this
.
tableDataTotal
=
res
.
total
;
this
.
isSkeleton
=
false
;
})
;
},
kaitingCauseActions
(){
kaitingCauseAction
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
kaitingCauseActions
()
{
kaitingCauseAction
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
;
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
this
.
formData
[
0
].
options
.
push
({
name
:
data
[
i
].
causeAction
+
'('
+
data
[
i
].
count
+
')'
,
value
:
data
[
i
].
causeAction
,
})
})
;
}
}
})
})
;
},
kaitingPureRoles
(){
kaitingPureRole
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
kaitingPureRoles
()
{
kaitingPureRole
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
;
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
this
.
formData
[
1
].
options
.
push
({
name
:
data
[
i
].
pureRole
+
'('
+
data
[
i
].
count
+
')'
,
value
:
data
[
i
].
pureRole
,
})
})
;
}
}
})
})
;
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.corePersonnel
{
.corePersonnel
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
.query-box
{
.query-box
{
margin
:
10px
0
20px
;
}
}
.hearing-notice
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/riskInformation/punish.vue
View file @
63e197d8
<
template
>
<div
class=
"corePersonnel"
>
<head-form
title=
"行政处罚"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<div
class=
"corePersonnel administrative-punishment"
>
<head-form-new
title=
"行政处罚"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<tables
v-if=
"!isSkeleton"
:indexFixed=
"true"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<tables
v-if=
"!isSkeleton"
:indexFixed=
"true"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<template
slot=
"punishReason"
slot-scope=
"scope"
>
<span
:class=
"[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)?'cell-span':'']"
:style=
"
{'-webkit-line-clamp': 5}">
<span
:class=
"[isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)?'cell-span':'']"
:style=
"
{'-webkit-line-clamp': 5}">
<div
v-html=
"scope.row.punishReason"
></div>
<span
v-if=
"isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)"
@
click=
"changeShowAll(scope.index, 0)"
class=
"more"
>
...
<span>
更多
</span></span>
<span
v-if=
"isOverHiddenFlag(scope.data.width, showList, scope.index, 0, scope.row.punishReason)"
@
click=
"changeShowAll(scope.index, 0)"
class=
"more"
>
...
<span>
更多
</span></span>
</span>
</
template
>
</tables>
...
...
@@ -30,12 +19,12 @@
</template>
<
script
>
import
mixin
from
'../mixins/mixin'
import
mixin
from
'../mixins/mixin'
;
import
{
penalizePage
,
penalizeReasonType
}
from
'@/api/detail/party-a/riskInformation'
import
skeleton
from
'../component/skeleton'
}
from
'@/api/detail/party-a/riskInformation'
;
import
skeleton
from
'../component/skeleton'
;
export
default
{
name
:
'Punish'
,
mixins
:
[
mixin
],
...
...
@@ -51,87 +40,87 @@ export default {
pageSize
:
20
},
forData
:
[
{
label
:
'处罚原因'
,
prop
:
'punishReason'
,
slot
:
true
,
fixed
:
true
},
{
label
:
'决定日期'
,
prop
:
'punishBegin'
,
width
:
'105'
},
{
label
:
'处罚结果'
,
prop
:
'punishResult'
,
width
:
'264'
},
{
label
:
'处罚文书号'
,
prop
:
'fileNum'
,
width
:
'240'
},
{
label
:
'处罚机关'
,
prop
:
'office'
,
width
:
'264'
},
{
label
:
'处罚结束日期'
,
prop
:
'punishEnd'
,
width
:
'110'
},
{
label
:
'处罚原因'
,
prop
:
'punishReason'
,
slot
:
true
,
fixed
:
true
,
width
:
'508'
},
{
label
:
'决定日期'
,
prop
:
'punishBegin'
,
width
:
'105'
},
{
label
:
'处罚结果'
,
prop
:
'punishResult'
,
width
:
'264'
},
{
label
:
'处罚文书号'
,
prop
:
'fileNum'
,
width
:
'240'
},
{
label
:
'处罚机关'
,
prop
:
'office'
,
width
:
'264'
},
{
label
:
'处罚结束日期'
,
prop
:
'punishEnd'
,
width
:
'110'
},
],
formData
:
[
{
type
:
1
,
fieldName
:
'penalizeReasonType'
,
value
:
''
,
placeholder
:
'处罚类别'
,
options
:
[]},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'请输入关键词'
,
options
:
[]},
{
type
:
1
,
fieldName
:
'penalizeReasonType'
,
value
:
''
,
placeholder
:
'处罚类别'
,
options
:
[]
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'请输入关键词'
,
options
:
[]
},
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
showList
:[],
isSkeleton
:
true
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
showList
:
[],
isSkeleton
:
true
}
;
},
created
()
{
this
.
handleQuery
()
this
.
penalizeReasonTypeData
()
this
.
handleQuery
()
;
this
.
penalizeReasonTypeData
()
;
},
computed
:
{
},
methods
:
{
handleQuery
(
params
)
{
let
data
=
params
?
params
:
this
.
queryParams
this
.
isSkeleton
=
true
let
data
=
params
?
params
:
this
.
queryParams
;
this
.
isSkeleton
=
true
;
penalizePage
(
data
).
then
((
res
)
=>
{
this
.
tableData
=
res
.
rows
this
.
tableDataTotal
=
res
.
total
this
.
isSkeleton
=
false
})
this
.
tableData
=
res
.
rows
;
this
.
tableDataTotal
=
res
.
total
;
this
.
isSkeleton
=
false
;
})
;
},
penalizeReasonTypeData
(){
penalizeReasonType
({
cid
:
this
.
queryParams
.
cid
}).
then
((
res
)
=>
{
let
data
=
res
.
data
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
penalizeReasonTypeData
()
{
penalizeReasonType
({
cid
:
this
.
queryParams
.
cid
}).
then
((
res
)
=>
{
let
data
=
res
.
data
;
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
this
.
formData
[
0
].
options
.
push
({
name
:
data
[
i
].
punishType
+
'('
+
data
[
i
].
count
+
')'
,
value
:
data
[
i
].
punishTypeId
,
})
})
;
}
}
})
})
;
},
changeShowAll
(
row
,
column
)
{
this
.
showList
.
push
({
row
:
row
,
column
:
column
})
})
;
},
isOverHiddenFlag
(
data
,
showList
,
row
,
column
,
value
)
{
if
(
value
&&
String
(
value
).
length
>
this
.
getLenth
(
data
))
{
return
!
showList
.
some
(
item
=>
item
.
row
==
row
&&
item
.
column
==
column
)
}
else
{
return
false
if
(
value
&&
String
(
value
).
length
>
this
.
getLenth
(
data
))
{
return
!
showList
.
some
(
item
=>
item
.
row
==
row
&&
item
.
column
==
column
);
}
else
{
return
false
;
}
},
getLenth
(
data
)
{
return
Math
.
floor
(
data
/
12
)
*
5
return
Math
.
floor
(
data
/
12
)
*
5
;
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.corePersonnel
{
.corePersonnel
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
input
{
border
:
1px
solid
#
EFEFEF
;
input
{
border
:
1px
solid
#
efefef
;
}
::v-deep
.el-form-item
{
::v-deep
.el-form-item
{
margin-right
:
8px
!
important
;
}
.query-box
{
.query-box
{
margin
:
10px
0
20px
;
}
.cell-span
{
...
...
@@ -144,7 +133,7 @@ export default {
-webkit-line-clamp
:
4
;
cursor
:
pointer
;
>
span
{
>
span
{
display
:
inline-block
;
width
:
37px
;
position
:
absolute
;
...
...
@@ -155,4 +144,8 @@ export default {
}
}
}
.administrative-punishment
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/urbanLnvestment/landAcquisition.vue
View file @
63e197d8
<
template
>
<div
class=
"corePersonnel"
>
<head-form
title=
"城投拿地"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<div
class=
"corePersonnel takes-over-the-land"
>
<head-form-new
title=
"城投拿地"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
/>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<tables
v-if=
"!isSkeleton"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<tables
v-if=
"!isSkeleton"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
>
<template
slot=
"projectName"
slot-scope=
"scope"
>
<router-link
:to=
"`/radar/Land/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.projectName " v-html="scope.row.projectName">
</router-link>
<router-link
:to=
"`/radar/Land/details/$
{scope.row.id}`" tag="a" class="a-link" v-if="scope.row.id
&&
scope.row.projectName "
v-html="scope.row.projectName">
</router-link>
<div
v-else
v-html=
"scope.row.projectName || '--'"
></div>
</
template
>
<
template
slot=
"transactionPrice"
slot-scope=
"scope"
>
...
...
@@ -34,9 +22,9 @@
import
{
landTransactionPage
,
landUse
}
from
'@/api/detail/party-a/urbanLnvestment'
import
mixin
from
'../mixins/mixin'
import
skeleton
from
'../component/skeleton'
}
from
'@/api/detail/party-a/urbanLnvestment'
;
import
mixin
from
'../mixins/mixin'
;
import
skeleton
from
'../component/skeleton'
;
export
default
{
name
:
'landAcquisition'
,
mixins
:
[
mixin
],
...
...
@@ -53,68 +41,72 @@ export default {
pageSize
:
20
},
forData
:
[
{
label
:
'项目名称'
,
prop
:
'projectName'
,
slot
:
true
},
{
label
:
'土地用途'
,
prop
:
'landUse'
,
width
:
'120'
},
{
label
:
'行业分类'
,
prop
:
'industry'
,
width
:
'120'
},
{
label
:
'供地方式'
,
prop
:
'supplyLandWay'
,
width
:
'120'
},
{
label
:
'土地坐落'
,
prop
:
'landAddr'
,
width
:
'150'
},
{
label
:
'成交金额(万元)'
,
prop
:
'transactionPrice'
,
width
:
'130'
,
slot
:
true
},
{
label
:
'总面积(㎡)'
,
prop
:
'acreage'
,
width
:
'120'
},
{
label
:
'批准单位'
,
prop
:
'authority'
,
width
:
'120'
},
{
label
:
'签订日期'
,
prop
:
'contractSignTime'
,
width
:
'120'
}
{
label
:
'项目名称'
,
prop
:
'projectName'
,
slot
:
true
},
{
label
:
'土地用途'
,
prop
:
'landUse'
,
width
:
'120'
},
{
label
:
'行业分类'
,
prop
:
'industry'
,
width
:
'120'
},
{
label
:
'供地方式'
,
prop
:
'supplyLandWay'
,
width
:
'120'
},
{
label
:
'土地坐落'
,
prop
:
'landAddr'
,
width
:
'150'
},
{
label
:
'成交金额(万元)'
,
prop
:
'transactionPrice'
,
width
:
'130'
,
slot
:
true
},
{
label
:
'总面积(㎡)'
,
prop
:
'acreage'
,
width
:
'120'
},
{
label
:
'批准单位'
,
prop
:
'authority'
,
width
:
'120'
},
{
label
:
'签订日期'
,
prop
:
'contractSignTime'
,
width
:
'120'
}
],
formData
:
[
{
type
:
4
,
fieldName
:
'landUse'
,
value
:
''
,
placeholder
:
'土地用途'
,
options
:
[]},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'请输入关键词'
},
{
type
:
4
,
fieldName
:
'landUse'
,
value
:
''
,
placeholder
:
'土地用途'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
3
,
fieldName
:
'keys'
,
value
:
''
,
placeholder
:
'请输入关键词'
,
uid
:
this
.
getUid
()
},
],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
;
},
created
()
{
this
.
handleQuery
()
this
.
getlandUse
()
this
.
handleQuery
()
;
this
.
getlandUse
()
;
},
computed
:
{
},
methods
:
{
handleQuery
(
params
)
{
let
data
=
params
?
params
:
this
.
queryParams
this
.
isSkeleton
=
true
landTransactionPage
(
data
).
then
(
res
=>
{
this
.
tableData
=
res
.
rows
this
.
tableDataTotal
=
res
.
total
this
.
isSkeleton
=
false
})
let
data
=
params
?
params
:
this
.
queryParams
;
this
.
isSkeleton
=
true
;
landTransactionPage
(
data
).
then
(
res
=>
{
this
.
tableData
=
res
.
rows
;
this
.
tableDataTotal
=
res
.
total
;
this
.
isSkeleton
=
false
;
})
;
},
//土地用途
getlandUse
(){
landUse
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
getlandUse
()
{
landUse
({
cid
:
this
.
queryParams
.
cid
}).
then
(
res
=>
{
let
data
=
res
.
data
;
if
(
data
.
length
>
0
)
{
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
)
{
this
.
formData
[
0
].
options
.
push
({
name
:
data
[
i
].
landUse
+
'('
+
data
[
i
].
count
+
')'
,
value
:
data
[
i
].
landUse
,
})
})
;
}
}
})
})
;
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.corePersonnel
{
.corePersonnel
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
.query-box
{
.query-box
{
margin
:
10px
0
20px
;
}
}
.takes-over-the-land
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/urbanLnvestment/regionalEconomies.vue
View file @
63e197d8
<
template
>
<div
class=
"regionalEconomies"
>
<div
class=
"regionalEconomies regional-economy"
>
<div
class=
"head-form-new"
>
<div
class=
"common-title"
>
区域经济
</div>
<div
class=
"flex-box query-box"
>
<div
class=
"flex-box query-params"
>
<span
class=
"common-title"
>
区域经济
</span>
</div>
<div
class=
"params-dw"
><img
src=
"@/assets/images/addree.png"
/>
{{
addressList
}}
</div>
</div>
</div>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<div
class=
"table-item"
v-if=
"!isSkeleton"
>
<el-table
:tableLoading=
"tableLoading"
:data=
"getValues"
:show-header=
"false"
border
:cell-style=
"rowStyle"
>
<el-table-column
v-for=
"(item, index) in getHeaders"
:key=
"index"
:prop=
"item"
:formatter=
"formatStatus"
>
<el-table
:tableLoading=
"tableLoading"
:data=
"getValues"
:show-header=
"false"
border
:cell-style=
"rowStyle"
>
<el-table-column
v-for=
"(item, index) in getHeaders"
:key=
"index"
:prop=
"item"
:formatter=
"formatStatus"
>
</el-table-column>
</el-table>
</div>
...
...
@@ -29,20 +21,20 @@
</
template
>
<
script
>
import
dataRegion
from
'@/assets/json/dataRegion'
import
skeleton
from
'../component/skeleton'
import
dataRegion
from
'@/assets/json/dataRegion'
;
import
skeleton
from
'../component/skeleton'
;
import
{
regionalEconomy
}
from
'@/api/detail/party-a/urbanLnvestment'
}
from
'@/api/detail/party-a/urbanLnvestment'
;
export
default
{
name
:
'regionalEconomies'
,
components
:
{
skeleton
},
props
:
[
'companyId'
,
'companyInfo'
],
props
:
[
'companyId'
,
'companyInfo'
],
data
()
{
return
{
addressList
:
''
,
addressList
:
''
,
params
:
{
provinceId
:
this
.
companyInfo
.
provinceId
,
cityId
:
this
.
companyInfo
.
cityId
...
...
@@ -212,116 +204,116 @@ export default {
},
],
tableLoading
:
true
,
isSkeleton
:
true
}
isSkeleton
:
true
}
;
},
created
()
{
this
.
regionalEconomys
()
this
.
regionalEconomys
()
;
},
computed
:
{
getHeaders
()
{
return
this
.
tableData
.
reduce
((
pre
,
cur
,
index
)
=>
pre
.
concat
(
`value
${
index
}
`
),
[
'title'
])
return
this
.
tableData
.
reduce
((
pre
,
cur
,
index
)
=>
pre
.
concat
(
`value
${
index
}
`
),
[
'title'
])
;
},
getValues
()
{
return
this
.
headers
.
map
(
item
=>
{
return
this
.
tableData
.
reduce
((
pre
,
cur
,
index
)
=>
Object
.
assign
(
pre
,
{
[
'value'
+
index
]:
cur
[
item
.
prop
]}),
{
'title'
:
item
.
label
,})
return
this
.
tableData
.
reduce
((
pre
,
cur
,
index
)
=>
Object
.
assign
(
pre
,
{
[
'value'
+
index
]:
cur
[
item
.
prop
]
}),
{
'title'
:
item
.
label
,
});
});
}
},
methods
:
{
//地区
regionalEconomys
()
{
this
.
isSkeleton
=
true
if
(
this
.
companyInfo
)
{
this
.
isSkeleton
=
true
;
if
(
this
.
companyInfo
)
{
regionalEconomy
(
this
.
params
).
then
(
res
=>
{
this
.
tableData
=
res
.
data
this
.
isSkeleton
=
false
})
this
.
dataRegion
(
this
.
companyInfo
.
provinceId
,
this
.
companyInfo
.
cityId
)
this
.
tableData
=
res
.
data
;
this
.
isSkeleton
=
false
;
})
;
this
.
dataRegion
(
this
.
companyInfo
.
provinceId
,
this
.
companyInfo
.
cityId
)
;
}
},
dataRegion
(
p
,
c
)
{
dataRegion
(
p
,
c
)
{
var
str
=
[];
for
(
let
x
=
0
;
x
<
2
;
x
++
)
{
for
(
let
i
=
0
;
i
<
dataRegion
.
length
;
i
++
)
{
if
(
dataRegion
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
1
)
{
if
(
p
==
dataRegion
[
i
].
id
)
{
str
.
push
(
dataRegion
[
i
].
regionName
)
if
(
p
==
dataRegion
[
i
].
id
)
{
str
.
push
(
dataRegion
[
i
].
regionName
)
;
}
}
else
if
(
dataRegion
[
i
].
regionLevel
==
x
+
1
&&
x
+
1
==
2
)
{
if
(
c
==
dataRegion
[
i
].
id
)
{
str
.
push
(
dataRegion
[
i
].
regionName
)
if
(
c
==
dataRegion
[
i
].
id
)
{
str
.
push
(
dataRegion
[
i
].
regionName
)
;
}
}
}
}
this
.
addressList
=
str
.
join
(
' - '
);
},
formatStatus
:
function
(
row
,
column
,
cellValue
)
{
if
(
row
.
title
===
'经济'
||
row
.
title
===
'财政'
||
row
.
title
===
'债务'
)
{
return
cellValue
}
else
{
return
cellValue
?
cellValue
:
'--'
formatStatus
:
function
(
row
,
column
,
cellValue
)
{
if
(
row
.
title
===
'经济'
||
row
.
title
===
'财政'
||
row
.
title
===
'债务'
)
{
return
cellValue
;
}
else
{
return
cellValue
?
cellValue
:
'--'
;
}
},
rowStyle
(
row
){
if
(
row
.
row
.
title
===
'经济'
||
row
.
row
.
title
===
'财政'
||
row
.
row
.
title
===
'债务'
)
{
rowStyle
(
row
)
{
if
(
row
.
row
.
title
===
'经济'
||
row
.
row
.
title
===
'财政'
||
row
.
row
.
title
===
'债务'
)
{
return
{
// background: '#FAF5EB',
color
:
'#232323'
,
color
:
'#232323'
,
fontWeight
:
'bold'
}
}
;
}
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.regionalEconomies
{
.regionalEconomies
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
::v-deep
.el-table
tr
{
background
:
#
F9FCFF
;
::v-deep
.el-table
tr
{
background
:
#
f9fcff
;
}
::v-deep
.table-item
{
.el-table
{
overflow
:visible
;
.el-table__body-wrapper
{
overflow
:visible
;
::v-deep
.table-item
{
.el-table
{
overflow
:
visible
;
.el-table__body-wrapper
{
overflow
:
visible
;
}
.el-table__body
{
tr
:first-child
{
.el-table__body
{
tr
:first-child
{
position
:
sticky
;
top
:
56px
;
top
:
56px
;
z-index
:
9
;
}
}
td
.el-table__cell
{
td
.el-table__cell
{
border-bottom
:
0
;
}
.el-table__body-wrapper
{
tr
{
&
:first-child
{
background
:
#
F0F3FA
;
div
{
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
.el-table__body-wrapper
{
tr
{
&
:first-child
{
background
:
#
f0f3fa
;
div
{
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
}
}
&
:nth-child
(
2n
)
{
background
:
#
FFFFFF
;
&
:nth-child
(
2n
)
{
background
:
#
ffffff
;
}
}
}
}
}
.query-box
{
.query-box
{
margin
:
10px
0
20px
;
.params-dw
{
.params-dw
{
font-size
:
14px
;
font-weight
:
400
;
color
:
#0081
FF
;
img
{
color
:
#0081
ff
;
img
{
width
:
14px
;
height
:
14px
;
margin-right
:
5px
;
...
...
@@ -330,11 +322,23 @@ export default {
}
}
.regional-economy
{
@import
"@/assets/styles/search-common.scss"
;
.head-form-new
{
.common-title
{
margin-bottom
:
8px
;
}
.query-box
{
margin
:
0px
;
}
}
}
::v-deep
.el-table__body-wrapper
tr
:nth-child
(
2
)
td
,
::v-deep
.el-table__body-wrapper
tr
:nth-child
(
17
)
td
,
::v-deep
.el-table__body-wrapper
tr
:nth-child
(
29
)
td
{
::v-deep
.el-table__body-wrapper
tr
:nth-child
(
29
)
td
{
//font-weight: bold;
//color: #232323;
}
</
style
>
dsk-operate-ui/src/views/detail/party-a/urbanLnvestment/sameRegion.vue
View file @
63e197d8
<
template
>
<div
class=
"corePersonnel"
>
<head-form
title=
"同地区城投"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
>
<div
class=
"corePersonnel city-investment"
>
<head-form-new
title=
"同地区城投"
:form-data=
"formData"
:query-params=
"queryParams"
:total=
"tableDataTotal"
:isExcel=
"true"
@
handle-search=
"handleSearch"
>
<template
slot=
"slot"
>
<div
class=
"search-box"
>
<span
class=
"search-box-t"
:class=
"queryParams.uipExecutiveLevel ||
<span
class=
"search-box-t"
:class=
"queryParams.uipExecutiveLevel ||
queryParams.uipBusinessType.length > 0 ||
queryParams.bratingSubjectLevel.length > 0 ||
queryParams.shareholderBg.length > 0 ||
queryParams.equityRelationship.length > 0 ||
queryParams.platformImportance.length > 0 ||
queryParams.developmentZone.length > 0 ? 'search-box-ta' : ''"
@
click=
"handleSearch1"
>
筛选
<i
:class=
"searchState ? 'el-icon-caret-top' : 'el-icon-caret-bottom'"
></i></span>
queryParams.developmentZone.length > 0 ? 'search-box-ta' : ''"
@
click=
"handleSearch1"
>
筛选
<i
:class=
"searchState ? 'el-icon-caret-top' : 'el-icon-caret-bottom'"
></i></span>
<div
v-show=
"searchState"
ref=
"showContent"
class=
"search-main"
>
<div
class=
"item"
>
<span
class=
"wrap_label"
>
行政等级
</span>
...
...
@@ -34,7 +27,8 @@
<div
class=
"item_ckquery"
>
<span
:class=
"{color_text:queryParams.uipBusinessType.length == 0}"
@
click=
"changeBeCurrent('','uipBusinessType')"
>
全部
</span>
<
template
v-for=
"(item,index) in uipGroupDatalist.uipBusinessType"
>
<span
:class=
"
{color_text:queryParams.uipBusinessType.includes(item)}" @click="changeBeCurrent(item,'uipBusinessType')">
{{
item
}}
</span>
<span
:class=
"
{color_text:queryParams.uipBusinessType.includes(item)}"
@click="changeBeCurrent(item,'uipBusinessType')">
{{
item
}}
</span>
</
template
>
</div>
</div>
...
...
@@ -43,7 +37,8 @@
<div
class=
"item_ckquery"
>
<span
:class=
"{color_text:queryParams.bratingSubjectLevel.length == 0}"
@
click=
"changeBeCurrent('','bratingSubjectLevel')"
>
全部
</span>
<
template
v-for=
"(item,index) in uipGroupDatalist.bratingSubjectLevel"
>
<span
:class=
"
{color_text:queryParams.bratingSubjectLevel.includes(item)}" @click="changeBeCurrent(item,'bratingSubjectLevel')">
{{
item
}}
</span>
<span
:class=
"
{color_text:queryParams.bratingSubjectLevel.includes(item)}"
@click="changeBeCurrent(item,'bratingSubjectLevel')">
{{
item
}}
</span>
</
template
>
</div>
</div>
...
...
@@ -61,7 +56,8 @@
<div
class=
"item_ckquery"
>
<span
:class=
"{color_text:queryParams.equityRelationship.length == 0}"
@
click=
"changeBeCurrent('','equityRelationship')"
>
全部
</span>
<
template
v-for=
"(item,index) in uipGroupDatalist.equityRelationship"
>
<span
:class=
"
{color_text:queryParams.equityRelationship.includes(item)}" @click="changeBeCurrent(item,'equityRelationship')">
{{
item
}}
</span>
<span
:class=
"
{color_text:queryParams.equityRelationship.includes(item)}"
@click="changeBeCurrent(item,'equityRelationship')">
{{
item
}}
</span>
</
template
>
</div>
</div>
...
...
@@ -70,7 +66,8 @@
<div
class=
"item_ckquery"
>
<span
:class=
"{color_text:queryParams.platformImportance.length == 0}"
@
click=
"changeBeCurrent('','platformImportance')"
>
全部
</span>
<
template
v-for=
"(item,index) in uipGroupDatalist.platformImportance"
>
<span
:class=
"
{color_text:queryParams.platformImportance.includes(item)}" @click="changeBeCurrent(item,'platformImportance')">
{{
item
}}
</span>
<span
:class=
"
{color_text:queryParams.platformImportance.includes(item)}"
@click="changeBeCurrent(item,'platformImportance')">
{{
item
}}
</span>
</
template
>
</div>
</div>
...
...
@@ -79,27 +76,21 @@
<div
class=
"item_ckquery"
>
<span
:class=
"{color_text:queryParams.developmentZone.length == 0}"
@
click=
"changeBeCurrent('','developmentZone')"
>
全部
</span>
<
template
v-for=
"(item,index) in lfqType"
>
<span
:class=
"
{color_text:queryParams.developmentZone.includes(item)}" @click="changeBeCurrent(item,'developmentZone')">
{{
item
}}
</span>
<span
:class=
"
{color_text:queryParams.developmentZone.includes(item)}"
@click="changeBeCurrent(item,'developmentZone')">
{{
item
}}
</span>
</
template
>
</div>
</div>
</div>
</div>
</template>
</head-form>
</head-form
-new
>
<skeleton
v-if=
"isSkeleton"
style=
"padding: 16px"
></skeleton>
<tables
v-if=
"!isSkeleton"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<tables
v-if=
"!isSkeleton"
:tableLoading=
"tableLoading"
:tableData=
"tableData"
:forData=
"forData"
:tableDataTotal=
"tableDataTotal"
:queryParams=
"queryParams"
@
handle-current-change=
"handleCurrentChange"
@
sort-change=
"sortChange"
>
<
template
slot=
"companyName"
slot-scope=
"scope"
>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId
&&
scope.row.companyName " v-html="scope.row.companyName">
</router-link>
<router-link
:to=
"scope.row.uipId?`/enterprise/$
{encodeStr(scope.row.companyId)}`:`/company/${encodeStr(scope.row.companyId)}`" tag="a"
class="a-link" v-if="scope.row.companyId
&&
scope.row.companyName " v-html="scope.row.companyName">
</router-link>
<div
v-else
v-html=
"scope.row.companyName || '--'"
></div>
</
template
>
<
template
slot=
"area"
slot-scope=
"scope"
>
...
...
@@ -118,13 +109,13 @@
</template>
<
script
>
import
mixin
from
'../mixins/mixin'
import
skeleton
from
'../component/skeleton'
import
dataRegion
from
'@/assets/json/dataRegion'
import
mixin
from
'../mixins/mixin'
;
import
skeleton
from
'../component/skeleton'
;
import
dataRegion
from
'@/assets/json/dataRegion'
;
import
{
urbanInvestmentPage
,
uipGroupData
}
from
'@/api/detail/party-a/urbanLnvestment'
}
from
'@/api/detail/party-a/urbanLnvestment'
;
export
default
{
name
:
'SameRegion'
,
mixins
:
[
mixin
],
...
...
@@ -148,47 +139,47 @@ export default {
pageSize
:
20
},
forData
:
[
{
label
:
'企业名称'
,
prop
:
'companyName'
,
width
:
'369'
,
slot
:
true
},
{
label
:
'区域'
,
prop
:
'area'
,
width
:
'120'
,
slot
:
true
},
{
label
:
'招标数量'
,
prop
:
'biddingCount'
,
width
:
'100'
,
sortable
:
true
},
{
label
:
'城投拿地'
,
prop
:
'landInfoCount'
,
width
:
'100'
,
sortable
:
true
},
{
label
:
'供应商'
,
prop
:
'supplierCount'
,
width
:
'100'
,
sortable
:
true
},
{
label
:
'主体评级'
,
prop
:
'bratingSubjectLevel'
,
width
:
'110'
},
{
label
:
'债劵余额(亿元)'
,
prop
:
'bondBalance'
,
width
:
'130'
},
{
label
:
'行政级别'
,
prop
:
'uipExecutiveLevel'
,
width
:
'120'
},
{
label
:
'股东背景'
,
prop
:
'shareholderBg'
,
width
:
'120'
},
{
label
:
'股权关系'
,
prop
:
'equityRelationship'
,
width
:
'120'
},
{
label
:
'平台重要性'
,
prop
:
'platformImportance'
,
width
:
'120'
},
{
label
:
'城投业务类型'
,
prop
:
'uipBusinessType'
,
width
:
'120'
},
{
label
:
'实控人'
,
prop
:
'actualController'
,
width
:
'280'
},
{
label
:
'最新报告期'
,
prop
:
'latestReportPeriod'
,
width
:
'120'
},
{
label
:
'总资产(亿元)'
,
prop
:
'totalAssets'
,
width
:
'120'
},
{
label
:
'归母净资产(亿元)'
,
prop
:
'belongNetAssets'
,
width
:
'140'
},
{
label
:
'货币资金(亿元)'
,
prop
:
'monetaryFunds'
,
width
:
'130'
},
{
label
:
'土地资产(亿元)'
,
prop
:
'landAssets'
,
width
:
'130'
},
{
label
:
'受限资产(亿元)'
,
prop
:
'restrictedAssets'
,
width
:
'130'
},
{
label
:
'应收账款(亿元)'
,
prop
:
'accountsReceivable'
,
width
:
'130'
},
{
label
:
'其他应收款(亿元)'
,
prop
:
'otherReceivable'
,
width
:
'140'
},
{
label
:
'公益性&准公益性主营占比(%)'
,
prop
:
'econData001'
,
width
:
'200'
},
{
label
:
'应收类款项来自政府占比(%)'
,
prop
:
'receivableFromGovRatio'
,
width
:
'200'
},
{
label
:
'政府补助(亿元)'
,
prop
:
'govSubsidy'
,
width
:
'130'
},
{
label
:
'专项应付款(亿元)'
,
prop
:
'specialPayable'
,
width
:
'140'
},
{
label
:
'营业收入(亿元)'
,
prop
:
'operatingIncome'
,
width
:
'130'
},
{
label
:
'所属开发区'
,
prop
:
'developmentZone'
,
width
:
'120'
}
{
label
:
'企业名称'
,
prop
:
'companyName'
,
width
:
'369'
,
slot
:
true
},
{
label
:
'区域'
,
prop
:
'area'
,
width
:
'120'
,
slot
:
true
},
{
label
:
'招标数量'
,
prop
:
'biddingCount'
,
width
:
'100'
,
sortable
:
true
},
{
label
:
'城投拿地'
,
prop
:
'landInfoCount'
,
width
:
'100'
,
sortable
:
true
},
{
label
:
'供应商'
,
prop
:
'supplierCount'
,
width
:
'100'
,
sortable
:
true
},
{
label
:
'主体评级'
,
prop
:
'bratingSubjectLevel'
,
width
:
'110'
},
{
label
:
'债劵余额(亿元)'
,
prop
:
'bondBalance'
,
width
:
'130'
},
{
label
:
'行政级别'
,
prop
:
'uipExecutiveLevel'
,
width
:
'120'
},
{
label
:
'股东背景'
,
prop
:
'shareholderBg'
,
width
:
'120'
},
{
label
:
'股权关系'
,
prop
:
'equityRelationship'
,
width
:
'120'
},
{
label
:
'平台重要性'
,
prop
:
'platformImportance'
,
width
:
'120'
},
{
label
:
'城投业务类型'
,
prop
:
'uipBusinessType'
,
width
:
'120'
},
{
label
:
'实控人'
,
prop
:
'actualController'
,
width
:
'280'
},
{
label
:
'最新报告期'
,
prop
:
'latestReportPeriod'
,
width
:
'120'
},
{
label
:
'总资产(亿元)'
,
prop
:
'totalAssets'
,
width
:
'120'
},
{
label
:
'归母净资产(亿元)'
,
prop
:
'belongNetAssets'
,
width
:
'140'
},
{
label
:
'货币资金(亿元)'
,
prop
:
'monetaryFunds'
,
width
:
'130'
},
{
label
:
'土地资产(亿元)'
,
prop
:
'landAssets'
,
width
:
'130'
},
{
label
:
'受限资产(亿元)'
,
prop
:
'restrictedAssets'
,
width
:
'130'
},
{
label
:
'应收账款(亿元)'
,
prop
:
'accountsReceivable'
,
width
:
'130'
},
{
label
:
'其他应收款(亿元)'
,
prop
:
'otherReceivable'
,
width
:
'140'
},
{
label
:
'公益性&准公益性主营占比(%)'
,
prop
:
'econData001'
,
width
:
'200'
},
{
label
:
'应收类款项来自政府占比(%)'
,
prop
:
'receivableFromGovRatio'
,
width
:
'200'
},
{
label
:
'政府补助(亿元)'
,
prop
:
'govSubsidy'
,
width
:
'130'
},
{
label
:
'专项应付款(亿元)'
,
prop
:
'specialPayable'
,
width
:
'140'
},
{
label
:
'营业收入(亿元)'
,
prop
:
'operatingIncome'
,
width
:
'130'
},
{
label
:
'所属开发区'
,
prop
:
'developmentZone'
,
width
:
'120'
}
],
formData
:
[
{
type
:
0
,
fieldName
:
'penalizeReasonType'
,
value
:
''
,
placeholder
:
'筛选'
,
options
:
[]},
{
type
:
3
,
fieldName
:
'keyword'
,
value
:
''
,
placeholder
:
'请输入关键词'
,
options
:
[]},
{
type
:
0
,
fieldName
:
'penalizeReasonType'
,
value
:
''
,
placeholder
:
'筛选'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
{
type
:
3
,
fieldName
:
'keyword'
,
value
:
''
,
placeholder
:
'请输入关键词'
,
options
:
[]
,
uid
:
this
.
getUid
()
},
],
xzdj
:
[
'省级'
,
'地级市'
,
'区县级'
],
selected
:[],
xzdjCalss
:
''
,
typeList
:
[
'土地开发整理'
,
'基础设施建设'
,
'棚改保障房建设'
,
'公用事业'
,
'文化旅游'
,
'交通建设运营'
,
'产投平台'
],
ztpj
:
[
'AAA'
,
'AA+'
,
'AA'
,
'A+'
,
'A'
,
'A-'
,
'BBB+'
,
'其他'
],
gdbj
:
[
'政府'
,
'财政'
,
'国资委'
,
'其他'
],
gqgx
:
[
'直接控股'
,
'间接控股'
],
pt
:
[
'重要平台'
,
'主要平台'
,
'一般平台'
],
lfqType
:
[
'国家级经开'
,
'国家级高新区'
,
'国家海关监管区域'
,
'国家级新区'
,
'国家边和区'
,
'其他国家级'
,
'省级新区'
,
'省级开发区'
],
xzdj
:
[
'省级'
,
'地级市'
,
'区县级'
],
selected
:
[],
xzdjCalss
:
''
,
typeList
:
[
'土地开发整理'
,
'基础设施建设'
,
'棚改保障房建设'
,
'公用事业'
,
'文化旅游'
,
'交通建设运营'
,
'产投平台'
],
ztpj
:
[
'AAA'
,
'AA+'
,
'AA'
,
'A+'
,
'A'
,
'A-'
,
'BBB+'
,
'其他'
],
gdbj
:
[
'政府'
,
'财政'
,
'国资委'
,
'其他'
],
gqgx
:
[
'直接控股'
,
'间接控股'
],
pt
:
[
'重要平台'
,
'主要平台'
,
'一般平台'
],
lfqType
:
[
'国家级经开'
,
'国家级高新区'
,
'国家海关监管区域'
,
'国家级新区'
,
'国家边和区'
,
'其他国家级'
,
'省级新区'
,
'省级开发区'
],
props
:
{
value
:
'id'
,
multiple
:
true
,
...
...
@@ -196,17 +187,17 @@ export default {
addressList
:
[],
addressType
:
[],
addresslength
:
0
,
searchState
:
false
,
uipGroupDatalist
:[],
searchState
:
false
,
uipGroupDatalist
:
[],
//列表
tableLoading
:
false
,
tableData
:[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
tableLoading
:
false
,
tableData
:
[],
tableDataTotal
:
0
,
isSkeleton
:
true
}
;
},
watch
:{
searchState
:{
watch
:
{
searchState
:
{
handler
(
newVal
,
olVal
)
{
if
(
newVal
)
{
setTimeout
(()
=>
{
...
...
@@ -219,11 +210,11 @@ export default {
}
},
created
()
{
if
(
this
.
companyInfo
)
{
this
.
queryParams
.
provinceIds
.
push
(
this
.
companyInfo
.
provinceId
)
this
.
queryParams
.
cityIds
.
push
(
this
.
companyInfo
.
cityId
)
this
.
handleQuery
()
this
.
getScreen
()
if
(
this
.
companyInfo
)
{
this
.
queryParams
.
provinceIds
.
push
(
this
.
companyInfo
.
provinceId
)
;
this
.
queryParams
.
cityIds
.
push
(
this
.
companyInfo
.
cityId
)
;
this
.
handleQuery
()
;
this
.
getScreen
()
;
}
},
computed
:
{
...
...
@@ -274,7 +265,7 @@ export default {
this
.
addressList
=
str
;
},
// 筛选
handleSearch1
(
event
){
handleSearch1
(
event
)
{
// this.searchState=!this.searchState;
let
dom
=
this
.
$refs
.
showContent
;
if
(
!
dom
.
contains
(
event
.
target
))
{
...
...
@@ -283,45 +274,45 @@ export default {
}
},
// 请求筛选条件
getScreen
(){
getScreen
()
{
uipGroupData
().
then
(
res
=>
{
this
.
uipGroupDatalist
=
res
.
data
})
this
.
uipGroupDatalist
=
res
.
data
;
})
;
},
changeXZDJ
(
index
)
{
this
.
queryParams
.
uipExecutiveLevel
=
index
;
this
.
changes
()
this
.
changes
()
;
},
changeBeCurrent
(
index
,
name
)
{
if
(
index
)
{
let
i
=
this
.
queryParams
[
name
].
indexOf
(
index
)
if
(
i
==
-
1
)
{
changeBeCurrent
(
index
,
name
)
{
if
(
index
)
{
let
i
=
this
.
queryParams
[
name
].
indexOf
(
index
)
;
if
(
i
==
-
1
)
{
this
.
queryParams
[
name
].
push
(
index
);
}
else
{
this
.
queryParams
[
name
].
splice
(
i
,
1
);
}
else
{
this
.
queryParams
[
name
].
splice
(
i
,
1
);
}
}
else
{
this
.
queryParams
[
name
]
=
[]
}
else
{
this
.
queryParams
[
name
]
=
[]
;
}
this
.
changes
()
this
.
changes
()
;
this
.
$forceUpdate
();
},
changes
(){
let
params
=
this
.
formParams
()
params
.
pageNum
=
1
this
.
queryParams
.
pageNum
=
1
params
.
uipExecutiveLevel
=
this
.
queryParams
.
uipExecutiveLevel
params
.
uipBusinessType
=
this
.
queryParams
.
uipBusinessType
params
.
bratingSubjectLevel
=
this
.
queryParams
.
bratingSubjectLevel
params
.
shareholderBg
=
this
.
queryParams
.
shareholderBg
params
.
equityRelationship
=
this
.
queryParams
.
equityRelationship
params
.
platformImportance
=
this
.
queryParams
.
platformImportance
params
.
developmentZone
=
this
.
queryParams
.
developmentZone
this
.
handleQuery
(
params
)
changes
()
{
let
params
=
this
.
formParams
()
;
params
.
pageNum
=
1
;
this
.
queryParams
.
pageNum
=
1
;
params
.
uipExecutiveLevel
=
this
.
queryParams
.
uipExecutiveLevel
;
params
.
uipBusinessType
=
this
.
queryParams
.
uipBusinessType
;
params
.
bratingSubjectLevel
=
this
.
queryParams
.
bratingSubjectLevel
;
params
.
shareholderBg
=
this
.
queryParams
.
shareholderBg
;
params
.
equityRelationship
=
this
.
queryParams
.
equityRelationship
;
params
.
platformImportance
=
this
.
queryParams
.
platformImportance
;
params
.
developmentZone
=
this
.
queryParams
.
developmentZone
;
this
.
handleQuery
(
params
)
;
},
addressListbtn
()
{
let
arr
=
this
.
$refs
.
address
.
getCheckedNodes
();
let
provinceCode
=
[],
cityCode
=
[],
countyCode
=
[];
let
provinceCode
=
[],
cityCode
=
[],
countyCode
=
[];
for
(
var
i
in
arr
)
{
if
(
arr
[
i
].
parent
)
{
if
(
!
arr
[
i
].
parent
.
checked
)
{
...
...
@@ -329,7 +320,7 @@ export default {
!
arr
[
i
].
hasChildren
&&
countyCode
.
push
(
arr
[
i
].
value
);
}
}
else
{
provinceCode
.
push
(
arr
[
i
].
value
)
provinceCode
.
push
(
arr
[
i
].
value
)
;
}
}
if
(
provinceCode
.
length
>
0
||
cityCode
.
length
>
0
||
countyCode
.
length
>
0
)
{
...
...
@@ -339,93 +330,93 @@ export default {
}
},
handleQuery
(
params
){
let
data
=
params
?
params
:
this
.
queryParams
handleQuery
(
params
)
{
let
data
=
params
?
params
:
this
.
queryParams
;
urbanInvestmentPage
(
data
).
then
(
res
=>
{
this
.
tableData
=
res
.
data
.
list
this
.
tableDataTotal
=
res
.
data
.
totalCount
this
.
isSkeleton
=
false
})
this
.
tableData
=
res
.
data
.
list
;
this
.
tableDataTotal
=
res
.
data
.
totalCount
;
this
.
isSkeleton
=
false
;
})
;
},
//排序
sortChange
(
e
){
if
(
e
.
order
==
'ascending'
)
{
this
.
queryParams
.
field
=
e
.
prop
this
.
queryParams
.
order
=
'asc'
}
else
if
(
e
.
order
==
'descending'
)
{
this
.
queryParams
.
field
=
e
.
prop
this
.
queryParams
.
order
=
'desc'
}
else
{
delete
this
.
queryParams
.
field
delete
this
.
queryParams
.
order
sortChange
(
e
)
{
if
(
e
.
order
==
'ascending'
)
{
this
.
queryParams
.
field
=
e
.
prop
;
this
.
queryParams
.
order
=
'asc'
;
}
else
if
(
e
.
order
==
'descending'
)
{
this
.
queryParams
.
field
=
e
.
prop
;
this
.
queryParams
.
order
=
'desc'
;
}
else
{
delete
this
.
queryParams
.
field
;
delete
this
.
queryParams
.
order
;
}
this
.
handleSearch
();
},
// attr 参数表示当前点击的是哪一列,传进来的是点击列的标识
// rev 参数表示的是点击当前列表头之后是升序降序或者null,三种值分别是['ascending', 'descending', null]
sortFun
(
attr
,
rev
){
if
(
rev
===
'ascending'
)
{
rev
=
1
sortFun
(
attr
,
rev
)
{
if
(
rev
===
'ascending'
)
{
rev
=
1
;
}
else
if
(
rev
===
'descending'
)
{
rev
=
-
1
rev
=
-
1
;
}
else
{
rev
=
0
rev
=
0
;
}
return
function
(
x
,
y
)
{
let
a
=
x
[
attr
]
let
b
=
y
[
attr
]
let
a
=
x
[
attr
]
;
let
b
=
y
[
attr
]
;
if
(
!
a
)
{
a
=
""
a
=
""
;
}
if
(
!
b
)
{
b
=
""
b
=
""
;
}
if
(
a
<
b
)
{
return
rev
*
-
1
return
rev
*
-
1
;
}
if
(
a
>
b
)
{
return
rev
*
1
}
return
0
return
rev
*
1
;
}
return
0
;
};
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.corePersonnel
{
.corePersonnel
{
background
:
#ffffff
;
border-radius
:
4px
;
padding
:
16px
;
.query-box
{
.query-box
{
margin
:
10px
0
20px
;
}
.search-box
{
.search-box
{
display
:
inline-block
;
/*cursor: pointer;*/
position
:
relative
;
.search-box-t
{
.search-box-t
{
font-size
:
14px
;
font-weight
:
400
;
line-height
:
32px
;
color
:
#232323
;
color
:
#232323
;
margin-right
:
8px
;
cursor
:
pointer
;
i
{
color
:
rgba
(
35
,
35
,
35
,
0
.4
)
;
margin-left
:
5px
i
{
color
:
rgba
(
35
,
35
,
35
,
0
.4
);
margin-left
:
5px
;
}
}
.search-box-ta
{
color
:
#0081
FF
;
i
{
color
:
#0081
FF
;
.search-box-ta
{
color
:
#0081
ff
;
i
{
color
:
#0081
ff
;
}
}
.search-main
{
.search-main
{
background
:
#ffffff
;
box-shadow
:
0px
4px
10px
0px
rgba
(
0
,
0
,
0
,
0
.1
);
box-shadow
:
0px
4px
10px
0px
rgba
(
0
,
0
,
0
,
0
.1
);
border-radius
:
4px
;
width
:
880px
;
//height: 337px;
...
...
@@ -434,33 +425,33 @@ export default {
top
:
25px
;
left
:
0
;
z-index
:
2001
;
.item
{
.item
{
margin-bottom
:
5px
;
display
:
flex
;
/*align-items: center;*/
font-size
:
14px
;
.wrap_label
{
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
.wrap_label
{
color
:
rgba
(
35
,
35
,
35
,
0
.8
);
margin-right
:
12px
;
line-height
:
30px
;
}
.item_ckquery
{
.item_ckquery
{
position
:
relative
;
flex
:
1
;
span
{
span
{
color
:
#232323
;
padding
:
5px
6px
;
display
:
inline-block
;
cursor
:
pointer
;
margin-right
:
8px
;
}
.color_text
{
background
:
#
F3F4F
5
;
.color_text
{
background
:
#
f3f4f
5
;
border-radius
:
4px
;
color
:
#0081
FF
;
color
:
#0081
ff
;
}
.select-active
{
color
:
#0081
FF
;
.select-active
{
color
:
#0081
ff
;
}
}
...
...
@@ -475,4 +466,8 @@ export default {
}
}
}
.city-investment
{
@import
"@/assets/styles/search-common.scss"
;
}
</
style
>
dsk-operate-ui/src/views/detail/party-b/index.vue
View file @
63e197d8
...
...
@@ -22,7 +22,7 @@
navigation
:
{
isFixed
:
true
,
fixedHeight
:
56
,
totalHeight
:
68
},
// iframe之外页面顶部对象,ifFixed:是否浮动;fixedHeight:浮动对象高度;totalHeight:顶部整体高度
src
:
''
,
//iframe嵌套页面地址
domain
:
'https://plug.jiansheku.com'
,
// 插件地址
// domain: 'http://192.168.60.1
9
:3400',
// domain: 'http://192.168.60.1
04
:3400',
// domain: 'http://192.168.60.30:3300',
ak
:
'aec7b3ff2y2q8x6t49a7e2c463ce21912'
,
// 需要携带的sdkId
uid
:
this
.
$store
.
state
.
user
.
userId
,
// 需要携带的uid
...
...
dsk-operate-ui/src/views/macro/economies/component/localEconomy.vue
View file @
63e197d8
...
...
@@ -22,7 +22,7 @@
v-loading=
"tableLoading"
:data=
"tableData"
border
v-horizontal-scroll=
"
'hover
'"
v-horizontal-scroll=
"
tableData.total > 15 ? 'hover' : 'false
'"
highlight-current-row
@
sort-change=
"sortChange"
:default-sort =
"
{prop: 'gdp', order: 'descending'}"
...
...
dsk-operate-ui/src/views/macro/nationalEconomies/component/zhongbiao.vue
View file @
63e197d8
...
...
@@ -321,6 +321,7 @@
this
.
getRangeBidMoney
()
this
.
getRangeBidFiveYears
()
this
.
getLowerRateByYear
()
this
.
getLowerRangeTenderType
()
},
beforeDestroy
(){
...
...
@@ -345,7 +346,6 @@
this
.
initChart1
(
list
)
})
}
this
.
getLowerRangeTenderType
()
})
},
getCountBidGroupByProvince
(){
...
...
dsk-operate-ui/src/views/radar/index.vue
View file @
63e197d8
...
...
@@ -82,12 +82,12 @@
value
:
'招标计划'
,
},
//
{
//
key: 'bxprozbgg',
//
status: false,
//
value: '标讯pro',
//
//
},
{
key
:
'bxprozbgg'
,
status
:
false
,
value
:
'标讯pro'
,
},
{
key
:
'Tender'
,
status
:
false
,
...
...
dsk-operate-ui/src/views/system/user/profile/userAvatar.vue
View file @
63e197d8
...
...
@@ -4,18 +4,9 @@
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"800px"
append-to-body
@
opened=
"modalOpened"
@
close=
"closeDialog"
>
<el-row>
<el-col
:xs=
"24"
:md=
"12"
:style=
"
{height: '350px'}">
<vue-cropper
ref=
"cropper"
:img=
"options.img"
:info=
"true"
:autoCrop=
"options.autoCrop"
:autoCropWidth=
"options.autoCropWidth"
:autoCropHeight=
"options.autoCropHeight"
:fixedBox=
"options.fixedBox"
:outputType=
"options.outputType"
@
realTime=
"realTime"
v-if=
"visible"
/>
<vue-cropper
ref=
"cropper"
:img=
"options.img"
:info=
"true"
:autoCrop=
"options.autoCrop"
:autoCropWidth=
"options.autoCropWidth"
:autoCropHeight=
"options.autoCropHeight"
:fixedBox=
"options.fixedBox"
:outputType=
"options.outputType"
@
realTime=
"realTime"
v-if=
"visible"
/>
</el-col>
<el-col
:xs=
"24"
:md=
"12"
:style=
"
{height: '350px'}">
<div
class=
"avatar-upload-preview"
>
...
...
@@ -57,7 +48,7 @@
import
store
from
"@/store"
;
import
{
VueCropper
}
from
"vue-cropper"
;
import
{
uploadAvatar
}
from
"@/api/system/user"
;
import
{
debounce
}
from
'@/utils'
import
{
debounce
}
from
'@/utils'
;
export
default
{
components
:
{
VueCropper
},
...
...
@@ -80,13 +71,21 @@ export default {
autoCropWidth
:
200
,
// 默认生成截图框宽度
autoCropHeight
:
200
,
// 默认生成截图框高度
fixedBox
:
true
,
// 固定截图框大小 不允许改变
outputType
:
"png"
,
// 默认生成截图为PNG格式
outputType
:
"png"
,
// 默认生成截图为PNG格式
filename
:
''
},
previews
:
{},
resizeHandler
:
null
};
},
watch
:
{
user
:
{
handler
(
newVal
,
oldVal
)
{
this
.
options
.
img
=
newVal
.
avatar
;
},
deep
:
true
}
},
methods
:
{
// 编辑头像
editCropper
()
{
...
...
@@ -97,10 +96,10 @@ export default {
this
.
visible
=
true
;
if
(
!
this
.
resizeHandler
)
{
this
.
resizeHandler
=
debounce
(()
=>
{
this
.
refresh
()
},
100
)
this
.
refresh
()
;
},
100
)
;
}
window
.
addEventListener
(
"resize"
,
this
.
resizeHandler
)
window
.
addEventListener
(
"resize"
,
this
.
resizeHandler
)
;
},
// 刷新组件
refresh
()
{
...
...
@@ -139,7 +138,7 @@ export default {
uploadImg
()
{
this
.
$refs
.
cropper
.
getCropBlob
(
data
=>
{
let
formData
=
new
FormData
();
console
.
log
(
this
.
options
.
filename
)
console
.
log
(
this
.
options
.
filename
)
;
formData
.
append
(
"avatarfile"
,
data
,
this
.
options
.
filename
);
uploadAvatar
(
formData
).
then
(
response
=>
{
this
.
open
=
false
;
...
...
@@ -156,9 +155,9 @@ export default {
},
// 关闭窗口
closeDialog
()
{
this
.
options
.
img
=
store
.
getters
.
avatar
this
.
options
.
img
=
store
.
getters
.
avatar
;
this
.
visible
=
false
;
window
.
removeEventListener
(
"resize"
,
this
.
resizeHandler
)
window
.
removeEventListener
(
"resize"
,
this
.
resizeHandler
)
;
}
}
};
...
...
@@ -171,7 +170,7 @@ export default {
}
.user-info-head
:hover:after
{
content
:
'+'
;
content
:
"+"
;
position
:
absolute
;
left
:
0
;
right
:
0
;
...
...
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