Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
sensorConsult
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
zhanglw
sensorConsult
Commits
1737f143
Commit
1737f143
authored
Jun 25, 2023
by
zhanglw
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优质供应商
parent
dceff943
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
1653 additions
and
12 deletions
+1653
-12
top_area.png
src/assets/home_images/top_area.png
+0
-0
top_area_.png
src/assets/home_images/top_area_.png
+0
-0
index.js
src/router/index.js
+1
-1
routers.js
src/router/routers.js
+24
-0
inquiryView.vue
src/views/homepage/components/inquiryView.vue
+3
-1
titleMenus.vue
src/views/homepage/components/titleMenus.vue
+1
-1
titleMenusV2.vue
src/views/homepage/components/titleMenusV2.vue
+1
-1
userLogin.vue
src/views/homepage/components/userLogin.vue
+1
-3
userLoginV2.vue
src/views/homepage/components/userLoginV2.vue
+1
-3
index.vue
src/views/homepage/course/index.vue
+471
-0
index.vue
src/views/homepage/index.vue
+38
-2
index.vue
src/views/homepage/product/index.vue
+1
-0
index.vue
src/views/homepage/project/index.vue
+546
-0
index.vue
src/views/homepage/supplier/index.vue
+565
-0
No files found.
src/assets/home_images/top_area.png
View replaced file @
dceff943
View file @
1737f143
79.6 KB
|
W:
|
H:
46.9 KB
|
W:
|
H:
2-up
Swipe
Onion skin
src/assets/home_images/top_area_.png
0 → 100644
View file @
1737f143
79.6 KB
src/router/index.js
View file @
1737f143
...
@@ -9,7 +9,7 @@ import { filterAsyncRouter } from '@/store/modules/permission'
...
@@ -9,7 +9,7 @@ import { filterAsyncRouter } from '@/store/modules/permission'
NProgress
.
configure
({
showSpinner
:
false
})
// NProgress Configuration
NProgress
.
configure
({
showSpinner
:
false
})
// NProgress Configuration
const
whiteList
=
[
'
/login
'
,
'
/backlogin
'
,
'
/home
'
,
'
/product
'
]
// 免登录路由白名单
const
whiteList
=
[
'
/login
'
,
'
/backlogin
'
,
'
/home
'
,
'
/product
'
,
'
/supplier
'
,
'
/project
'
,
'
/course
'
]
// 免登录路由白名单
const
backUrlList
=
[
'
/dashboard
'
,
'
/system
'
,
'
/monitor
'
,
'
/sys-tools
'
,
'
/backstage
'
]
// 后台路由
const
backUrlList
=
[
'
/dashboard
'
,
'
/system
'
,
'
/monitor
'
,
'
/sys-tools
'
,
'
/backstage
'
]
// 后台路由
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
...
...
src/router/routers.js
View file @
1737f143
...
@@ -52,6 +52,30 @@ export const constantRouterMap = [
...
@@ -52,6 +52,30 @@ export const constantRouterMap = [
},
},
hidden
:
true
hidden
:
true
},
},
{
path
:
'
/supplier
'
,
meta
:
{
title
:
'
优质供应商
'
,
noCache
:
true
},
component
:
(
resolve
)
=>
{
return
require
([
'
@/views/homepage/supplier/index
'
],
resolve
)
},
hidden
:
true
},
{
path
:
'
/project
'
,
meta
:
{
title
:
'
解决方案与服务
'
,
noCache
:
true
},
component
:
(
resolve
)
=>
{
return
require
([
'
@/views/homepage/project/index
'
],
resolve
)
},
hidden
:
true
},
{
path
:
'
/course
'
,
meta
:
{
title
:
'
专业培训
'
,
noCache
:
true
},
component
:
(
resolve
)
=>
{
return
require
([
'
@/views/homepage/course/index
'
],
resolve
)
},
hidden
:
true
},
{
{
path
:
'
/backstage
'
,
path
:
'
/backstage
'
,
component
:
Layout
,
component
:
Layout
,
...
...
src/views/homepage/components/inquiryView.vue
View file @
1737f143
...
@@ -38,7 +38,7 @@ export default {
...
@@ -38,7 +38,7 @@ export default {
'
course
'
:
'
课程定制
'
'
course
'
:
'
课程定制
'
},
},
visible
:
false
,
visible
:
false
,
title
:
'
询 价
'
,
title
:
'
咨 询
'
,
formData
:
{
formData
:
{
name
:
''
,
name
:
''
,
phone
:
''
,
phone
:
''
,
...
@@ -94,6 +94,8 @@ export default {
...
@@ -94,6 +94,8 @@ export default {
initView
(
id
,
type
)
{
initView
(
id
,
type
)
{
if
(
type
)
{
if
(
type
)
{
this
.
title
=
this
.
typeDict
[
type
]
this
.
title
=
this
.
typeDict
[
type
]
}
else
{
this
.
title
=
'
咨 询
'
}
}
this
.
showView
()
this
.
showView
()
}
}
...
...
src/views/homepage/components/titleMenus.vue
View file @
1737f143
...
@@ -10,7 +10,7 @@ export default {
...
@@ -10,7 +10,7 @@ export default {
data
()
{
data
()
{
return
{
return
{
menus
:
[
menus
:
[
{
name
:
'
首页
'
,
url
:
'
/home
'
},
{
name
:
'
优质产品
'
,
url
:
'
/product
'
},
{
name
:
'
优质供应商
'
},
{
name
:
'
解决方案与服务
'
},
{
name
:
'
软件系统
'
},
{
name
:
'
专业培训
'
},
{
name
:
'
行业资讯
'
},
{
name
:
'
信息发布
'
}
{
name
:
'
首页
'
,
url
:
'
/home
'
},
{
name
:
'
优质产品
'
,
url
:
'
/product
'
},
{
name
:
'
优质供应商
'
,
url
:
'
/supplier
'
},
{
name
:
'
解决方案与服务
'
,
url
:
'
/project
'
},
{
name
:
'
软件系统
'
},
{
name
:
'
专业培训
'
,
url
:
'
/course
'
},
{
name
:
'
行业资讯
'
},
{
name
:
'
信息发布
'
}
],
],
currentMenuObj
:
null
currentMenuObj
:
null
}
}
...
...
src/views/homepage/components/titleMenusV2.vue
View file @
1737f143
...
@@ -17,7 +17,7 @@ export default {
...
@@ -17,7 +17,7 @@ export default {
data
()
{
data
()
{
return
{
return
{
menus
:
[
menus
:
[
{
name
:
'
首页
'
,
url
:
'
/home
'
},
{
name
:
'
优质产品
'
,
url
:
'
/product
'
},
{
name
:
'
优质供应商
'
},
{
name
:
'
解决方案与服务
'
},
{
name
:
'
软件系统
'
},
{
name
:
'
专业培训
'
},
{
name
:
'
行业资讯
'
},
{
name
:
'
信息发布
'
}
{
name
:
'
首页
'
,
url
:
'
/home
'
},
{
name
:
'
优质产品
'
,
url
:
'
/product
'
},
{
name
:
'
优质供应商
'
,
url
:
'
/supplier
'
},
{
name
:
'
解决方案与服务
'
,
url
:
'
/project
'
},
{
name
:
'
软件系统
'
},
{
name
:
'
专业培训
'
,
url
:
'
/course
'
},
{
name
:
'
行业资讯
'
},
{
name
:
'
信息发布
'
}
],
],
currentMenuObj
:
null
currentMenuObj
:
null
}
}
...
...
src/views/homepage/components/userLogin.vue
View file @
1737f143
...
@@ -39,9 +39,7 @@ export default {
...
@@ -39,9 +39,7 @@ export default {
])
])
},
},
mounted
()
{
mounted
()
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{})
console
.
log
(
this
.
user
)
})
},
},
methods
:
{
methods
:
{
login
(
item
)
{
login
(
item
)
{
...
...
src/views/homepage/components/userLoginV2.vue
View file @
1737f143
...
@@ -39,9 +39,7 @@ export default {
...
@@ -39,9 +39,7 @@ export default {
])
])
},
},
mounted
()
{
mounted
()
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{})
console
.
log
(
this
.
user
)
})
},
},
methods
:
{
methods
:
{
login
(
item
)
{
login
(
item
)
{
...
...
src/views/homepage/course/index.vue
0 → 100644
View file @
1737f143
<
template
>
<div
class=
"page-body"
>
<div
class=
"head-box"
>
<div
class=
"head-box-top"
>
<div
class=
"top-call"
/>
<div
class=
"top-call"
><img
src=
"@/assets/home_images/gemho_logo_b.png"
></div>
<div
class=
"top-call"
><title-menus
ref=
"titleMenus"
menu-index=
"5"
style=
"padding-top: 15px"
/></div>
<div
class=
"top-call"
><user-login
ref=
"userLogin"
/></div>
<div
class=
"top-call"
><language-setting
ref=
"languageSetting"
/></div>
</div>
</div>
<div
class=
"content-box"
>
<div
style=
"width: 88%;padding-left: 9%;"
>
<breadcrumb
/>
<!--专业培训-->
<div
class=
"page-title"
>
专业培训
</div>
<div
style=
"padding-top: 6px"
>
<div
v-for=
"(item,index) in courseList"
:key=
"'p_'+index"
class=
"box-card"
style=
"padding: 0 0 10px 0"
>
<el-image
:src=
"item.imgSrc?imgSrcStart+'/img'+item.imgSrc:defaultImgSystem"
style=
"width:358px;height: 240px;left: -4px;top: -3px"
/>
<div
class=
"line-text touch"
>
{{
item
.
title
}}
</div>
<div
style=
"width: 100%;text-align: center;padding: 2px;color: #333"
>
{{
item
.
subTitle
}}
</div>
<div
class=
"line-btn"
style=
"margin-top: 14px"
>
<div
class=
"btn-o"
style=
"width: 150px;border-radius: 10px;box-shadow: 0 1px 2px 0 rgba(0,0,0,0.2);font-size:20px;"
@
click=
"inquiry(item, 'course')"
>
课程定制
</div>
</div>
</div>
</div>
</div>
</div>
<home-footer
ref=
"homeFooter"
/>
<inquiry-view
ref=
"inquiryView"
/>
<el-backtop
/>
</div>
</
template
>
<
script
>
import
default_product
from
'
@/assets/home_images/default_product.png
'
import
default_project
from
'
@/assets/home_images/default_project.png
'
import
default_system
from
'
@/assets/home_images/default_system.png
'
import
titleMenus
from
'
../components/titleMenusV2
'
import
userLogin
from
'
../components/userLoginV2
'
import
languageSetting
from
'
../components/languageSettingV2
'
import
breadcrumb
from
'
../components/breadcrumb
'
import
homeFooter
from
'
../components/homeFooter
'
import
inquiryView
from
'
../components/inquiryView
'
import
NProgress
from
'
nprogress
'
export
default
{
components
:
{
titleMenus
,
userLogin
,
languageSetting
,
breadcrumb
,
homeFooter
,
inquiryView
},
dicts
:
[
'
product_type
'
,
'
area_province
'
],
data
()
{
return
{
defaultImgProduct
:
default_product
,
defaultImgProject
:
default_project
,
defaultImgSystem
:
default_system
,
imgSrcStart
:
process
.
env
.
VUE_APP_BASE_API
,
page
:
1
,
pageSize
:
16
,
total
:
0
,
query
:
{
keyword
:
''
,
area
:
undefined
,
type
:
undefined
,
sort
:
false
},
areaOpts
:
[],
courseList
:
[
{
title
:
'
自然灾害应急避险
'
,
subTitle
:
'
由xxxxxxx单位提供培训
'
,
imgSrc
:
''
},
{
title
:
'
自然灾害应急避险
'
,
subTitle
:
'
由xxxxxxx单位提供培训
'
,
imgSrc
:
''
},
{
title
:
'
自然灾害应急避险
'
,
subTitle
:
'
由xxxxxxxx单位提供培训
'
,
imgSrc
:
''
},
{
title
:
'
自然灾害应急避险
'
,
subTitle
:
'
由xxxxxxxxx单位提供培训
'
,
imgSrc
:
''
},
{
title
:
'
自然灾害应急避险
'
,
subTitle
:
'
由xxxxxxx单位提供培训
'
,
imgSrc
:
''
},
{
title
:
'
自然灾害应急避险
'
,
subTitle
:
'
由xxxxxxxx单位提供培训
'
,
imgSrc
:
''
},
{
title
:
'
自然灾害应急避险
'
,
subTitle
:
'
由xxxxxxxxx单位提供培训
'
,
imgSrc
:
''
}
],
throttle
:
null
,
// 节流器
throttleTime
:
300
}
},
mounted
()
{
this
.
$nextTick
(()
=>
{
})
},
methods
:
{
onDictReady
(
dict
)
{
this
.
areaOpts
=
[{
value
:
undefined
,
label
:
'
全部
'
},
...
dict
.
area_province
]
},
setQuertType
(
type
)
{
if
(
type
===
this
.
query
.
type
)
{
this
.
query
.
sort
=
!
this
.
query
.
sort
}
else
{
this
.
query
.
type
=
type
this
.
query
.
sort
=
false
}
},
// 点击询价
inquiry
(
item
,
type
)
{
console
.
log
(
item
,
type
)
this
.
$refs
.
inquiryView
.
initView
(
item
.
id
,
type
)
},
// 跳转到详情
goToDetails
(
item
,
type
)
{
console
.
log
(
item
,
type
)
},
pageChange
(
e
)
{
this
.
page
=
e
this
.
loadData
()
},
loadData
()
{
},
goTop
()
{
document
.
body
.
scrollTop
=
0
document
.
documentElement
.
scrollTop
=
0
}
}
}
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
scoped
>
.touch
{
cursor
:pointer
;
}
.clear
{
clear
:
both
}
.inline-block
{
display
:
inline-block
;
}
.ellipsis
{
// 多行溢出省略号
display
:
-
webkit-box
;
-webkit-box-orient
:
vertical
;
overflow
:
hidden
;
-webkit-line-clamp
:
2
;
text-overflow
:
ellipsis
;
}
// 分页 前文字+分页
.pagination
{
margin-top
:
23px
;
text-align
:
center
;
padding
:
10px
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
>>>
.el-pagination.is-background
.el-pager
li
{
font-style
:
normal
;
font-weight
:
400
;
font-size
:
14px
;
text-align
:
center
;
background-color
:
#fff
;
color
:
#000000
;
border
:
1px
solid
#e5e5ea
;
}
/* 激活后的样式 */
>>>
.el-pagination.is-background
.el-pager
li
:not
(
.disabled
)
.active
{
background-color
:
#ffffff
;
color
:
#0366ed
;
border
:
1px
solid
#0366ed
;
text-align
:
center
;
}
/* 修改左右箭头样式 */
>>>
.el-pagination
.btn-next
.el-icon
,
>>>
.el-pagination
.btn-prev
.el-icon
{
font-style
:
normal
;
font-weight
:
400
;
font-size
:
14px
;
text-align
:
center
;
background-color
:
#fff
;
color
:
#e5e5ea
;
border
:
1px
solid
#e5e5ea
;
}
>>>
.el-pager
{
height
:
35
.5px
!
important
;
}
>>>
.number
,
>>>
.el-icon
{
height
:
35
.5px
!
important
;
line-height
:
35
.5px
!
important
;
}
}
.head-box
{
width
:
100vw
;
top
:
0
;
position
:
fixed
;
background
:
none
repeat
scroll
0
0
white
;
z-index
:
999
;
box-shadow
:
0px
3px
7px
0px
rgba
(
0
,
0
,
0
,
0
.2
);
.head-box-top
{
display
:
flex
;
justify-content
:
space-evenly
;
align-items
:
center
;
.top-call
{
height
:
80px
;
padding-top
:
15px
;
}
}
}
.content-box
{
min-height
:
80vh
;
margin-top
:
94px
;
font-family
:
Source
Han
Sans
CN
;
user-select
:
none
;
.page-title
{
margin-top
:
20px
;
padding
:
0
20px
;
font-size
:
26px
;
font-weight
:
bold
;
color
:
#333333
;
}
.box-card
{
display
:
inline-block
;
position
:
relative
;
margin
:
12px
;
padding
:
10px
0
;
width
:
350px
;
background
:
#FFFFFF
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.12
);
box-shadow
:
1px
2px
8px
0
rgba
(
0
,
0
,
0
,
0
.12
);
border-radius
:
10px
;
.line-text
{
width
:
100%
;
text-align
:
center
;
padding
:
5px
;
font-size
:
18px
;
font-weight
:
bolder
;
opacity
:
0
.85
;
}
.line-text
:hover
{
opacity
:
1
;
}
.float-title
{
width
:
344px
;
position
:
absolute
;
padding
:
5px
;
top
:
200px
;
left
:
2px
;
text-align
:
center
;
font-weight
:
600
;
color
:
#fff
;
background
:
rgba
(
0
,
0
,
0
,
0
.6
);
opacity
:
0
.9
;
}
.float-title
:hover
{
opacity
:
1
;
}
.title
{
width
:
305px
;
padding
:
2px
20px
;
font-size
:
18px
;
color
:
#333333
;
overflow
:hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
-o-text-overflow
:ellipsis
;
}
.title
:hover
{
font-weight
:
600
;
}
.subTitle
{
width
:
260px
;
padding
:
2px
20px
;
font-size
:
15px
;
color
:
#1961C5
;
overflow
:hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
-o-text-overflow
:ellipsis
;
}
.area
{
padding
:
2px
0
;
font-size
:
17px
;
color
:
#666666
;
}
.date
{
padding
:
2px
10px
;
font-size
:
17px
;
color
:
#999999
;
}
.stamp
{
border-style
:
none
;
position
:
absolute
;
z-index
:
99
;
}
}
}
.search-box
{
padding-top
:
12px
;
width
:
100%
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
color
:
#666666
;
user-select
:
none
;
.search-item
{
width
:
100%
;
height
:
38px
;
display
:
inline-block
;
padding
:
8px
20px
;
background
:
#F7F7F7
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.12
);
overflow
:hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
-o-text-overflow
:ellipsis
;
.label
:hover
{
font-weight
:
600
;
}
.btn
{
width
:
74px
;
padding
:
3px
;
margin-left
:
12px
;
display
:
inline-block
;
background
:
#1961C5
;
border-radius
:
6px
;
color
:
white
;
text-align
:
center
;
opacity
:
0
.7
;
}
.btn
:hover
{
opacity
:
1
;
}
}
.area-title
{
height
:
62px
;
background
:
#F7F7F7
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.12
);
text-align
:
center
;
line-height
:
60px
;
}
.area_item
{
height
:
30px
;
padding
:
6px
12px
;
display
:
inline-block
;
}
.area_item
:hover
{
font-weight
:
600
;
}
.active
{
color
:
#1961C5
;
}
.search-tools
{
width
:
100%
;
.btn
{
width
:
76%
;
height
:
38px
;
border
:
2px
solid
#1961C5
;
border-radius
:
8px
;
background
:
#1961C5
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
font-size
:
21px
;
color
:
#ffffff
;
opacity
:
0
.7
;
}
.btn
:hover
{
opacity
:
1
;
}
>>>
.el-input__inner
{
height
:
38px
;
border
:
2px
solid
#1961C5
;
border-radius
:
8px
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
font-size
:
18px
;
color
:
#333333
;
opacity
:
0
.7
;
}
>>>
.el-input__inner
:hover
{
opacity
:
1
;
}
}
.search-keyword
{
padding
:
5px
0
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
font-size
:
14px
;
text-align
:
left
;
.label
{
padding
:
1px
15px
1px
;
color
:
#333333
;
cursor
:pointer
;
user-select
:
none
;
}
.label
:hover
{
color
:
#1961C5
;
}
}
}
.line-btn
{
display
:
flex
;
justify-content
:
center
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
.btn-o
{
margin
:
0
25px
;
width
:
360px
;
padding
:
6px
10px
;
background
:
#F7601A
;
box-shadow
:
0
3px
6px
0
rgba
(
0
,
0
,
0
,
0
.2
);
text-align
:
center
;
border
:
1px
solid
transparent
;
font-size
:
22px
;
color
:
#FFFFFF
;
cursor
:pointer
;
user-select
:
none
;
}
.btn-o
:hover
{
border
:
1px
solid
rgba
(
30
,
144
,
255
,
0
.8
);
color
:
#1482f0
;
}
.btn-l
{
margin
:
0
25px
;
width
:
360px
;
padding
:
10px
;
background
:
#1961C5
;
box-shadow
:
0
3px
6px
0
rgba
(
0
,
0
,
0
,
0
.2
);
text-align
:
center
;
border
:
1px
solid
transparent
;
font-size
:
22px
;
color
:
#FFFFFF
;
cursor
:pointer
;
user-select
:
none
;
}
.btn-l
:hover
{
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.3
);
color
:
#F7601A
;
}
.btn-b
{
margin
:
0
10px
;
width
:
168px
;
padding
:
6px
;
background
:
#EFF6FF
;
border
:
1px
solid
transparent
;
box-shadow
:
0
1px
2px
0
rgba
(
0
,
0
,
0
,
0
.2
);
text-align
:
center
;
font-size
:
20px
;
color
:
#1961C5
;
cursor
:pointer
;
user-select
:
none
;
}
.btn-b
:hover
{
border
:
1px
solid
rgba
(
30
,
144
,
255
,
0
.9
);
}
.active
{
color
:
#FFFFFF
;
font-weight
:
400
;
background
:
#1961C5
;
}
}
</
style
>
src/views/homepage/index.vue
View file @
1737f143
...
@@ -107,7 +107,15 @@
...
@@ -107,7 +107,15 @@
<!--热门排行榜-->
<!--热门排行榜-->
<div
class=
"line-title"
><div
class=
"title-point"
/><span
class=
"title-text"
>
热门排行榜
</span></div>
<div
class=
"line-title"
><div
class=
"title-point"
/><span
class=
"title-text"
>
热门排行榜
</span></div>
<el-row
:gutter=
"20"
style=
"padding-top: 20px"
>
<el-row
:gutter=
"20"
style=
"padding-top: 20px"
>
<el-col
:span=
"8"
><div
class=
"top_area"
/></el-col>
<el-col
:span=
"8"
><div
class=
"top_area"
>
<div
v-for=
"(item,index) in topAreas"
:key=
"'ta_'+index"
class=
"top_area_text touch"
:style=
"'top:'+item.top+';left:'+item.left+';font-size:'+item.size+';color:'+color[index]"
@
click=
"areaTopClick(item.name)"
>
{{
item
.
name
}}
</div>
</div></el-col>
<el-col
:span=
"8"
><div
class=
"box-toplist"
>
<el-col
:span=
"8"
><div
class=
"box-toplist"
>
<div
class=
"title"
>
供应商TOP8
</div>
<div
class=
"title"
>
供应商TOP8
</div>
<ul
class=
"contact-list"
>
<ul
class=
"contact-list"
>
...
@@ -167,6 +175,7 @@ export default {
...
@@ -167,6 +175,7 @@ export default {
dicts
:
[
'
product_type
'
,
'
area_province
'
],
dicts
:
[
'
product_type
'
,
'
area_province
'
],
data
()
{
data
()
{
return
{
return
{
color
:
[
'
#C1232B
'
,
'
#27727B
'
,
'
#FCCE10
'
,
'
#E87C25
'
,
'
#B5C334
'
,
'
#FE8463
'
,
'
#9BCA63
'
,
'
#FAD860
'
,
'
#F3A43B
'
,
'
#60C0DD
'
,
'
#D7504B
'
,
'
#C6E579
'
,
'
#F4E001
'
,
'
#F0805A
'
,
'
#26C0C0
'
],
defaultImgProduct
:
default_product
,
defaultImgProduct
:
default_product
,
defaultImgLogo
:
default_p_logo
,
defaultImgLogo
:
default_p_logo
,
imgSrcStart
:
process
.
env
.
VUE_APP_BASE_API
,
imgSrcStart
:
process
.
env
.
VUE_APP_BASE_API
,
...
@@ -352,6 +361,7 @@ export default {
...
@@ -352,6 +361,7 @@ export default {
imgSrcList
:
[]
imgSrcList
:
[]
}
}
],
],
topAreas
:
[],
topSuppliers
:
[
topSuppliers
:
[
{
name
:
'
中山市三角镇凌创传感器厂
'
,
id
:
123
},
{
name
:
'
中山市三角镇凌创传感器厂
'
,
id
:
123
},
{
name
:
'
中山市三角镇凌创传感器厂
'
,
id
:
123
},
{
name
:
'
中山市三角镇凌创传感器厂
'
,
id
:
123
},
...
@@ -387,7 +397,20 @@ export default {
...
@@ -387,7 +397,20 @@ export default {
},
},
mounted
()
{
mounted
()
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
const
random
=
(
min
,
max
)
=>
{
return
Math
.
floor
(
Math
.
random
()
*
(
max
-
min
))
+
min
}
const
arr
=
[
'
北京
'
,
'
上海
'
,
'
广州
'
,
'
深圳
'
,
'
青岛
'
,
'
南京
'
,
'
杭州
'
,
'
天津
'
,
'
石家庄
'
,
'
济南
'
,
'
烟台
'
,
'
威海
'
,
'
大连
'
,
'
连云港
'
,
'
潍坊
'
]
arr
.
forEach
((
item
,
index
)
=>
{
this
.
topAreas
.
push
({
name
:
item
,
top
:
`
${
random
(
0
,
382
)}
px`
,
left
:
`
${
random
(
0
,
324
)}
px`
,
size
:
`
${
Math
.
max
(
80
-
index
*
7
,
12
)}
px`
})
})
this
.
topAreas
[
0
].
top
=
'
180px
'
this
.
topAreas
[
0
].
left
=
'
120px
'
})
})
},
},
methods
:
{
methods
:
{
...
@@ -422,6 +445,10 @@ export default {
...
@@ -422,6 +445,10 @@ export default {
goToDetails
(
item
,
type
)
{
goToDetails
(
item
,
type
)
{
console
.
log
(
item
,
type
)
console
.
log
(
item
,
type
)
},
},
// 点击地区top
areaTopClick
(
text
)
{
console
.
log
(
text
)
},
// 点击更多
// 点击更多
moreTo
(
type
)
{
moreTo
(
type
)
{
console
.
log
(
type
)
console
.
log
(
type
)
...
@@ -546,10 +573,19 @@ export default {
...
@@ -546,10 +573,19 @@ export default {
}
}
}
}
.top_area
{
.top_area
{
position
:
relative
;
width
:
100%
;
width
:
100%
;
height
:
492px
;
height
:
492px
;
background
:
url("../../assets/home_images/top_area.png")
no-repeat
;
background
:
url("../../assets/home_images/top_area.png")
no-repeat
;
background-size
:
100%
100%
;
background-size
:
100%
100%
;
.top_area_text
{
position
:
absolute
;
font-weight
:
bolder
;
opacity
:
0
.7
;
}
.top_area_text
:hover
{
opacity
:
1
;
}
}
}
.box-toplist
{
.box-toplist
{
background
:
#FFFFFF
;
background
:
#FFFFFF
;
...
...
src/views/homepage/product/index.vue
View file @
1737f143
...
@@ -175,6 +175,7 @@
...
@@ -175,6 +175,7 @@
</div>
</div>
<home-footer
ref=
"homeFooter"
/>
<home-footer
ref=
"homeFooter"
/>
<inquiry-view
ref=
"inquiryView"
/>
<inquiry-view
ref=
"inquiryView"
/>
<el-backtop
/>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
...
...
src/views/homepage/project/index.vue
0 → 100644
View file @
1737f143
<
template
>
<div
class=
"page-body"
>
<div
class=
"head-box"
>
<div
class=
"head-box-top"
>
<div
class=
"top-call"
/>
<div
class=
"top-call"
><img
src=
"@/assets/home_images/gemho_logo_b.png"
></div>
<div
class=
"top-call"
><title-menus
ref=
"titleMenus"
menu-index=
"3"
style=
"padding-top: 15px"
/></div>
<div
class=
"top-call"
><user-login
ref=
"userLogin"
/></div>
<div
class=
"top-call"
><language-setting
ref=
"languageSetting"
/></div>
</div>
</div>
<div
class=
"content-box"
>
<div
style=
"width: 88%;padding-left: 9%;"
>
<breadcrumb
/>
<!--解决方案展柜-->
<div
class=
"page-title"
>
解决方案
</div>
<div
style=
"padding-top: 6px"
>
<div
v-for=
"(item,index) in projectList"
:key=
"'pj_'+index"
class=
"box-block"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<div
style=
"display: flex"
>
<el-image
:src=
"item.imgSrc?imgSrcStart+'/img'+item.imgSrc:defaultImgProject"
style=
"width:100%;height: 410px;margin: 1px;border-radius: 10px;"
/>
</div>
</el-col>
<el-col
:span=
"12"
>
<div
class=
"content ellipsis"
><span
style=
"font-size: 22px;font-weight: bolder"
>
方案概述
</span><br>
{{
item
.
content
}}
</div>
<div
class=
"line-btn"
style=
"margin-top: 4px;justify-content: flex-end;"
>
<div
class=
"btn-o"
style=
"width: 140px;border-radius: 10px;box-shadow: 0 1px 2px 0 rgba(0,0,0,0.2);font-size:20px;"
@
click=
"inquiry(item, 'project')"
>
咨 询
</div>
</div>
<div
class=
"content"
style=
"padding-top: 0"
>
<span
style=
"font-size: 22px;font-weight: bolder"
>
相关产品
</span>
<div
style=
"display: flex;justify-content: space-between;"
>
<el-image
:src=
"item.imgSrcList[0]?imgSrcStart+'/img'+item.imgSrcList[0]:defaultImgProject"
style=
"width: 230px;height: 140px;"
/>
<el-image
:src=
"item.imgSrcList[1]?imgSrcStart+'/img'+item.imgSrcList[1]:defaultImgProject"
style=
"width: 230px;height: 140px;"
/>
<el-image
:src=
"item.imgSrcList[2]?imgSrcStart+'/img'+item.imgSrcList[2]:defaultImgProject"
style=
"width: 230px;height: 140px;"
/>
</div>
</div>
</el-col>
</el-row>
</div>
</div>
<!--服务展柜-->
<div
class=
"line-title"
style=
"margin: 20px 0"
><div
class=
"title-point"
/><span
class=
"title-text"
>
服务
</span></div>
<div
v-for=
"(item,index) in serveList"
:key=
"'pj_'+index"
class=
"box-block"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<div
class=
"content ellipsis"
style=
"height: 240px;padding: 20px 10px 20px 30px;-webkit-line-clamp: 7;"
>
<span
style=
"font-size: 22px;font-weight: bolder"
>
服务
</span>
<br>
{{
item
.
content
}}
</div>
<div
class=
"line-btn"
style=
"margin-top: 4px;justify-content: flex-end;"
>
<div
class=
"btn-o"
style=
"width: 140px;border-radius: 10px;box-shadow: 0 1px 2px 0 rgba(0,0,0,0.2);font-size:20px;"
@
click=
"inquiry(item, null)"
>
咨 询
</div>
</div>
</el-col>
<el-col
:span=
"12"
>
<div
style=
"display: flex"
>
<el-image
:src=
"item.imgSrc?imgSrcStart+'/img'+item.imgSrc:defaultImgProject"
style=
"width:100%;height: 300px;margin: 1px;border-radius: 10px;"
/>
</div>
</el-col>
</el-row>
</div>
<div
class=
"line-btn"
style=
"padding: 30px 0 45px 0;"
>
<div
class=
"btn-l"
>
未找到所需信息,想咨询
</div>
</div>
</div>
</div>
<home-footer
ref=
"homeFooter"
/>
<inquiry-view
ref=
"inquiryView"
/>
<el-backtop
/>
</div>
</
template
>
<
script
>
import
default_product
from
'
@/assets/home_images/default_product.png
'
import
default_project
from
'
@/assets/home_images/default_project.png
'
import
default_system
from
'
@/assets/home_images/default_system.png
'
import
titleMenus
from
'
../components/titleMenusV2
'
import
userLogin
from
'
../components/userLoginV2
'
import
languageSetting
from
'
../components/languageSettingV2
'
import
breadcrumb
from
'
../components/breadcrumb
'
import
homeFooter
from
'
../components/homeFooter
'
import
inquiryView
from
'
../components/inquiryView
'
import
NProgress
from
'
nprogress
'
export
default
{
components
:
{
titleMenus
,
userLogin
,
languageSetting
,
breadcrumb
,
homeFooter
,
inquiryView
},
dicts
:
[
'
product_type
'
,
'
area_province
'
],
data
()
{
return
{
defaultImgProduct
:
default_product
,
defaultImgProject
:
default_project
,
defaultImgSystem
:
default_system
,
imgSrcStart
:
process
.
env
.
VUE_APP_BASE_API
,
page
:
1
,
pageSize
:
16
,
total
:
0
,
query
:
{
keyword
:
''
,
area
:
undefined
,
type
:
undefined
,
sort
:
false
},
areaOpts
:
[],
projectList
:
[
{
content
:
'
状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测
'
,
date
:
'
2023-06-12
'
,
imgSrc
:
''
,
imgSrcList
:
[]
},
{
content
:
'
状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测
'
,
date
:
'
2023-06-12
'
,
imgSrc
:
''
,
imgSrcList
:
[]
}
],
serveList
:
[
{
content
:
'
状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测
'
,
date
:
'
2023-06-12
'
,
imgSrc
:
''
},
{
content
:
'
状态监测已存在多年,如今,随着物耿网(loT) 的发展,它也有了新发展观看此网络研讨会,了解loT如何演化,状态监测
'
,
date
:
'
2023-06-12
'
,
imgSrc
:
''
}
],
throttle
:
null
,
// 节流器
throttleTime
:
300
}
},
mounted
()
{
this
.
$nextTick
(()
=>
{
})
},
methods
:
{
onDictReady
(
dict
)
{
this
.
areaOpts
=
[{
value
:
undefined
,
label
:
'
全部
'
},
...
dict
.
area_province
]
},
setQuertType
(
type
)
{
if
(
type
===
this
.
query
.
type
)
{
this
.
query
.
sort
=
!
this
.
query
.
sort
}
else
{
this
.
query
.
type
=
type
this
.
query
.
sort
=
false
}
},
// 点击询价
inquiry
(
item
,
type
)
{
console
.
log
(
item
,
type
)
this
.
$refs
.
inquiryView
.
initView
(
item
.
id
,
type
)
},
// 跳转到详情
goToDetails
(
item
,
type
)
{
console
.
log
(
item
,
type
)
},
pageChange
(
e
)
{
this
.
page
=
e
this
.
loadData
()
},
loadData
()
{
},
goTop
()
{
document
.
body
.
scrollTop
=
0
document
.
documentElement
.
scrollTop
=
0
}
}
}
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
scoped
>
.touch
{
cursor
:pointer
;
}
.clear
{
clear
:
both
}
.inline-block
{
display
:
inline-block
;
}
.ellipsis
{
// 多行溢出省略号
display
:
-
webkit-box
;
-webkit-box-orient
:
vertical
;
overflow
:
hidden
;
-webkit-line-clamp
:
5
;
text-overflow
:
ellipsis
;
}
// 分页 前文字+分页
.pagination
{
margin-top
:
23px
;
text-align
:
center
;
padding
:
10px
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
>>>
.el-pagination.is-background
.el-pager
li
{
font-style
:
normal
;
font-weight
:
400
;
font-size
:
14px
;
text-align
:
center
;
background-color
:
#fff
;
color
:
#000000
;
border
:
1px
solid
#e5e5ea
;
}
/* 激活后的样式 */
>>>
.el-pagination.is-background
.el-pager
li
:not
(
.disabled
)
.active
{
background-color
:
#ffffff
;
color
:
#0366ed
;
border
:
1px
solid
#0366ed
;
text-align
:
center
;
}
/* 修改左右箭头样式 */
>>>
.el-pagination
.btn-next
.el-icon
,
>>>
.el-pagination
.btn-prev
.el-icon
{
font-style
:
normal
;
font-weight
:
400
;
font-size
:
14px
;
text-align
:
center
;
background-color
:
#fff
;
color
:
#e5e5ea
;
border
:
1px
solid
#e5e5ea
;
}
>>>
.el-pager
{
height
:
35
.5px
!
important
;
}
>>>
.number
,
>>>
.el-icon
{
height
:
35
.5px
!
important
;
line-height
:
35
.5px
!
important
;
}
}
.head-box
{
width
:
100vw
;
top
:
0
;
position
:
fixed
;
background
:
none
repeat
scroll
0
0
white
;
z-index
:
999
;
box-shadow
:
0px
3px
7px
0px
rgba
(
0
,
0
,
0
,
0
.2
);
.head-box-top
{
display
:
flex
;
justify-content
:
space-evenly
;
align-items
:
center
;
.top-call
{
height
:
80px
;
padding-top
:
15px
;
}
}
}
.content-box
{
min-height
:
80vh
;
margin-top
:
94px
;
font-family
:
Source
Han
Sans
CN
;
user-select
:
none
;
.page-title
{
margin-top
:
20px
;
padding
:
0
20px
;
font-size
:
26px
;
font-weight
:
bold
;
color
:
#333333
;
}
.box-block
{
width
:
100%
;
margin
:
12px
0
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.12
);
box-shadow
:
1px
2px
8px
0
rgba
(
0
,
0
,
0
,
0
.12
);
border-radius
:
10px
;
.content
{
height
:
180px
;
padding
:
20px
30px
20px
10px
;
font-size
:
16px
;
line-height
:
32px
;
}
}
.box-card
{
display
:
inline-block
;
position
:
relative
;
margin
:
12px
;
padding
:
10px
0
;
width
:
350px
;
background
:
#FFFFFF
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.12
);
box-shadow
:
1px
2px
8px
0
rgba
(
0
,
0
,
0
,
0
.12
);
border-radius
:
10px
;
.line-text
{
width
:
100%
;
text-align
:
center
;
padding
:
5px
;
font-size
:
18px
;
font-weight
:
bolder
;
opacity
:
0
.85
;
}
.line-text
:hover
{
opacity
:
1
;
}
.float-title
{
width
:
344px
;
position
:
absolute
;
padding
:
5px
;
top
:
200px
;
left
:
2px
;
text-align
:
center
;
font-weight
:
600
;
color
:
#fff
;
background
:
rgba
(
0
,
0
,
0
,
0
.6
);
opacity
:
0
.9
;
}
.float-title
:hover
{
opacity
:
1
;
}
.title
{
width
:
305px
;
padding
:
2px
20px
;
font-size
:
18px
;
color
:
#333333
;
overflow
:hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
-o-text-overflow
:ellipsis
;
}
.title
:hover
{
font-weight
:
600
;
}
.subTitle
{
width
:
260px
;
padding
:
2px
20px
;
font-size
:
15px
;
color
:
#1961C5
;
overflow
:hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
-o-text-overflow
:ellipsis
;
}
.area
{
padding
:
2px
0
;
font-size
:
17px
;
color
:
#666666
;
}
.date
{
padding
:
2px
10px
;
font-size
:
17px
;
color
:
#999999
;
}
.stamp
{
border-style
:
none
;
position
:
absolute
;
z-index
:
99
;
}
}
.more
{
font-size
:
18px
;
font-weight
:
600
;
color
:
#0457C7
;
opacity
:
0
.7
;
}
.more
:hover
{
opacity
:
1
;
}
.line-title
{
padding
:
6px
0
;
position
:
relative
;
border-bottom
:
3px
solid
#0457C7
;
font-size
:
24px
;
color
:
#333333
;
.title-point
{
width
:
8px
;
height
:
21px
;
position
:
absolute
;
top
:
9px
;
background
:
#0457c7
;
}
.title-text
{
padding-left
:
14px
;
font-weight
:
600
;
}
.title-line
{
width
:
100%
;
position
:
absolute
;
bottom
:
-7px
;
border-bottom
:
2px
solid
#1961C5
;
opacity
:
0
.35
}
}
}
.search-box
{
padding-top
:
12px
;
width
:
100%
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
color
:
#666666
;
user-select
:
none
;
.search-item
{
width
:
100%
;
height
:
38px
;
display
:
inline-block
;
padding
:
8px
20px
;
background
:
#F7F7F7
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.12
);
overflow
:hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
-o-text-overflow
:ellipsis
;
.label
:hover
{
font-weight
:
600
;
}
.btn
{
width
:
74px
;
padding
:
3px
;
margin-left
:
12px
;
display
:
inline-block
;
background
:
#1961C5
;
border-radius
:
6px
;
color
:
white
;
text-align
:
center
;
opacity
:
0
.7
;
}
.btn
:hover
{
opacity
:
1
;
}
}
.area-title
{
height
:
62px
;
background
:
#F7F7F7
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.12
);
text-align
:
center
;
line-height
:
60px
;
}
.area_item
{
height
:
30px
;
padding
:
6px
12px
;
display
:
inline-block
;
}
.area_item
:hover
{
font-weight
:
600
;
}
.active
{
color
:
#1961C5
;
}
.search-tools
{
width
:
100%
;
.btn
{
width
:
76%
;
height
:
38px
;
border
:
2px
solid
#1961C5
;
border-radius
:
8px
;
background
:
#1961C5
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
font-size
:
21px
;
color
:
#ffffff
;
opacity
:
0
.7
;
}
.btn
:hover
{
opacity
:
1
;
}
>>>
.el-input__inner
{
height
:
38px
;
border
:
2px
solid
#1961C5
;
border-radius
:
8px
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
font-size
:
18px
;
color
:
#333333
;
opacity
:
0
.7
;
}
>>>
.el-input__inner
:hover
{
opacity
:
1
;
}
}
.search-keyword
{
padding
:
5px
0
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
font-size
:
14px
;
text-align
:
left
;
.label
{
padding
:
1px
15px
1px
;
color
:
#333333
;
cursor
:pointer
;
user-select
:
none
;
}
.label
:hover
{
color
:
#1961C5
;
}
}
}
.line-btn
{
display
:
flex
;
justify-content
:
center
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
.btn-o
{
margin
:
0
25px
;
width
:
360px
;
padding
:
6px
10px
;
background
:
#F7601A
;
box-shadow
:
0
3px
6px
0
rgba
(
0
,
0
,
0
,
0
.2
);
text-align
:
center
;
border
:
1px
solid
transparent
;
font-size
:
22px
;
color
:
#FFFFFF
;
cursor
:pointer
;
user-select
:
none
;
}
.btn-o
:hover
{
border
:
1px
solid
rgba
(
30
,
144
,
255
,
0
.8
);
color
:
#1482f0
;
}
.btn-l
{
margin
:
0
25px
;
width
:
360px
;
padding
:
10px
;
background
:
#1961C5
;
box-shadow
:
0
3px
6px
0
rgba
(
0
,
0
,
0
,
0
.2
);
text-align
:
center
;
border
:
1px
solid
transparent
;
font-size
:
22px
;
color
:
#FFFFFF
;
cursor
:pointer
;
user-select
:
none
;
}
.btn-l
:hover
{
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.3
);
color
:
#F7601A
;
}
.btn-b
{
margin
:
0
10px
;
width
:
168px
;
padding
:
6px
;
background
:
#EFF6FF
;
border
:
1px
solid
transparent
;
box-shadow
:
0
1px
2px
0
rgba
(
0
,
0
,
0
,
0
.2
);
text-align
:
center
;
font-size
:
20px
;
color
:
#1961C5
;
cursor
:pointer
;
user-select
:
none
;
}
.btn-b
:hover
{
border
:
1px
solid
rgba
(
30
,
144
,
255
,
0
.9
);
}
.active
{
color
:
#FFFFFF
;
font-weight
:
400
;
background
:
#1961C5
;
}
}
</
style
>
src/views/homepage/supplier/index.vue
0 → 100644
View file @
1737f143
<
template
>
<div
class=
"page-body"
>
<div
class=
"head-box"
>
<div
class=
"head-box-top"
>
<div
class=
"top-call"
/>
<div
class=
"top-call"
><img
src=
"@/assets/home_images/gemho_logo_b.png"
></div>
<div
class=
"top-call"
><title-menus
ref=
"titleMenus"
menu-index=
"2"
style=
"padding-top: 15px"
/></div>
<div
class=
"top-call"
><user-login
ref=
"userLogin"
/></div>
<div
class=
"top-call"
><language-setting
ref=
"languageSetting"
/></div>
</div>
</div>
<div
class=
"content-box"
>
<div
style=
"width: 88%;padding-left: 9%;"
>
<breadcrumb
/>
<!--查询面板-->
<div
class=
"search-box"
>
<el-row
style=
"padding-top: 16px"
>
<el-col
:span=
"2"
><div
class=
"area-title"
>
地区选择
</div></el-col>
<el-col
:span=
"22"
style=
"border: 1px solid rgba(0,0,0,0.12);"
>
<div
v-for=
"(item,index) in areaOpts"
:key=
"'a_'+index"
class=
"area_item touch"
:class=
"query.area===item.value?'active':''"
@
click=
"query.area=item.value"
>
{{
item
.
label
}}
</div>
</el-col>
</el-row>
<el-row
style=
"padding-top: 10px"
>
<el-col
:span=
"2"
>
<div
class=
"search-item"
:class=
"query.type===undefined?'active':''"
>
<span
class=
"touch label"
@
click=
"setQuertType()"
>
默认排序
</span>
<span
v-if=
"query.type===undefined"
>
<i
v-if=
"query.sort"
class=
"el-icon-sort-up touch"
/>
<i
v-else
class=
"el-icon-sort-down touch"
/>
</span>
</div>
</el-col>
<el-col
:span=
"2"
>
<div
class=
"search-item"
:class=
"query.type==='hot'?'active':''"
>
<span
class=
"touch label"
@
click=
"setQuertType('hot')"
>
人气排序
</span>
<span
v-if=
"query.type==='hot'"
>
<i
v-if=
"query.sort"
class=
"el-icon-sort-up touch"
/>
<i
v-else
class=
"el-icon-sort-down touch"
/>
</span>
</div>
</el-col>
<el-col
:span=
"2"
>
<div
class=
"search-item"
:class=
"query.type==='time'?'active':''"
>
<span
class=
"touch label"
@
click=
"setQuertType('time')"
>
上架时间
</span>
<span
v-if=
"query.type==='time'"
>
<i
v-if=
"query.sort"
class=
"el-icon-sort-up touch"
/>
<i
v-else
class=
"el-icon-sort-down touch"
/>
</span>
</div>
</el-col>
<el-col
:span=
"18"
>
<div
class=
"search-item"
>
<span>
产品价格区间
</span>
<div
style=
"position: absolute;top: 15px;left: 35%;"
>
<el-input
v-model=
"query.minPrice"
placeholder=
"请输入价格(元)"
clearable
style=
"width: 140px"
/>
~
<el-input
v-model=
"query.maxPrice"
placeholder=
"请输入价格(元)"
clearable
style=
"width: 140px"
/>
<div
class=
"btn touch"
>
确 定
</div>
</div>
</div>
</el-col>
</el-row>
</div>
<!--供应商展柜-->
<div
v-for=
"(item,index) in supplierList"
:key=
"'s_'+index"
class=
"showcase-line"
>
<div
class=
"supplier_card"
style=
"position: relative;"
>
<div
class=
"sup_btn touch"
style=
"position: absolute;top: 15px;right: 30px"
@
click=
"goToDetails(item, 'supplier')"
>
查看产品
</div>
<div
class=
"sup_btn touch"
style=
"position: absolute;top: 60px;right: 30px;background: transparent;color: #FB7B09"
@
click=
"inquiry(item, null)"
>
留言咨询
</div>
<div
class=
"sup_title touch"
>
{{
item
.
name
}}
<img
v-if=
"item.isGood"
src=
"@/assets/home_images/diamond.png"
title=
"推荐"
style=
"position:relative;top:4px;"
>
</div>
<div
class=
"sup_area"
>
<img
src=
"@/assets/home_images/locate.png"
style=
"position:relative;top:4px;"
>
{{
item
.
area
}}
</div>
<div
style=
"margin: 25px 40px"
>
<div
class=
"block-c"
>
<div>
成立时间
</div>
<div>
{{
item
.
createTime
}}
</div>
</div>
<div
class=
"block-c"
>
<div>
可购品类数
</div>
<div
style=
"color: #EF1F1F"
>
{{
item
.
classSum
}}
</div>
</div>
<div
class=
"block-c"
>
<div>
产品价格区间
</div>
<div
style=
"color: #EF1F1F"
>
{{
item
.
price
}}
</div>
</div>
</div>
<el-row
style=
"margin-top: 38px"
>
<el-col
:span=
"3"
>
<div
class=
"block-b"
>
主营品类:
</div>
</el-col>
<el-col
:span=
"21"
>
<div
class=
"block-b ellipsis"
>
{{
item
.
mainProduct
}}
</div>
</el-col>
</el-row>
</div>
<div
v-for=
"(p,i) in item.products"
:key=
"'p_'+index+'_'+i"
class=
"product_card"
>
<el-image
:src=
"p.imgSrc?imgSrcStart+'/img'+p.imgSrc:defaultImgProduct"
style=
"width:240px;height: 220px;border-radius: 10px;"
/>
<div
class=
"product_title touch ellipsis"
:title=
"p.name"
>
{{
p
.
name
}}
</div>
</div>
</div>
<div
class=
"pagination"
>
<!--
<span
style=
"font-size: 14px; color: #666; margin-right: 8px"
>
共
{{
total
}}
条记录
</span>
-->
<el-pagination
:hide-on-single-page=
"true"
:background=
"true"
:current-page.sync=
"page"
:page-size=
"pageSize"
:total=
"total"
layout=
" prev, pager, next"
@
current-change=
"pageChange"
/>
</div>
</div>
</div>
<home-footer
ref=
"homeFooter"
/>
<inquiry-view
ref=
"inquiryView"
/>
<el-backtop
/>
</div>
</
template
>
<
script
>
import
default_product
from
'
@/assets/home_images/default_product.png
'
import
default_project
from
'
@/assets/home_images/default_project.png
'
import
default_system
from
'
@/assets/home_images/default_system.png
'
import
titleMenus
from
'
../components/titleMenusV2
'
import
userLogin
from
'
../components/userLoginV2
'
import
languageSetting
from
'
../components/languageSettingV2
'
import
breadcrumb
from
'
../components/breadcrumb
'
import
homeFooter
from
'
../components/homeFooter
'
import
inquiryView
from
'
../components/inquiryView
'
import
NProgress
from
'
nprogress
'
export
default
{
components
:
{
titleMenus
,
userLogin
,
languageSetting
,
breadcrumb
,
homeFooter
,
inquiryView
},
dicts
:
[
'
product_type
'
,
'
area_province
'
],
data
()
{
return
{
defaultImgProduct
:
default_product
,
defaultImgProject
:
default_project
,
defaultImgSystem
:
default_system
,
imgSrcStart
:
process
.
env
.
VUE_APP_BASE_API
,
page
:
1
,
pageSize
:
10
,
total
:
0
,
query
:
{
keyword
:
''
,
area
:
undefined
,
type
:
undefined
,
sort
:
false
},
areaOpts
:
[],
supplierList
:
[
{
isGood
:
true
,
name
:
'
佛山英沃传感器科技有限公司
'
,
area
:
'
江苏省淮安市
'
,
createTime
:
'
2023 01-01
'
,
classSum
:
'
18
'
,
price
:
'
15 -300元
'
,
mainProduct
:
'
温度传感器 热电偶传感器 流量计 报做仪 pt100热电阳 压力变送器 气体检测仪 氟化氢检测仪
'
,
products
:
[
{
name
:
'
3GDN M30百流三线防 爆电感式接近传感爆电感式接近传感爆电感式接近传感爆电感式接近传感
'
,
imgSrc
:
''
},
{
name
:
'
3GDN M30百流三线防 爆电感式接近传感
'
,
imgSrc
:
''
},
{
name
:
'
3GDN M30百流三线防 爆电感式接近传感
'
,
imgSrc
:
''
}
]
},
{
isGood
:
true
,
name
:
'
佛山英沃传感器科技有限公司
'
,
area
:
'
江苏省淮安市
'
,
createTime
:
'
2023 01-01
'
,
classSum
:
'
18
'
,
price
:
'
15 -300元
'
,
mainProduct
:
'
温度传感器 热电偶传感器 流量计 报做仪 pt100热电阳 压力变送器 气体检测仪 氟化氢检测仪
'
,
products
:
[
{
name
:
'
3GDN M30百流三线防 爆电感式接近传感爆电感式接近传感爆电感式接近传感爆电感式接近传感
'
,
imgSrc
:
''
},
{
name
:
'
3GDN M30百流三线防 爆电感式接近传感
'
,
imgSrc
:
''
},
{
name
:
'
3GDN M30百流三线防 爆电感式接近传感
'
,
imgSrc
:
''
}
]
},
{
isGood
:
true
,
name
:
'
佛山英沃传感器科技有限公司
'
,
area
:
'
江苏省淮安市
'
,
createTime
:
'
2023 01-01
'
,
classSum
:
'
18
'
,
price
:
'
15 -300元
'
,
mainProduct
:
'
温度传感器 热电偶传感器 流量计 报做仪 pt100热电阳 压力变送器 气体检测仪 氟化氢检测仪
'
,
products
:
[
{
name
:
'
3GDN M30百流三线防 爆电感式接近传感爆电感式接近传感爆电感式接近传感爆电感式接近传感
'
,
imgSrc
:
''
},
{
name
:
'
3GDN M30百流三线防 爆电感式接近传感
'
,
imgSrc
:
''
},
{
name
:
'
3GDN M30百流三线防 爆电感式接近传感
'
,
imgSrc
:
''
}
]
}
],
throttle
:
null
,
// 节流器
throttleTime
:
300
}
},
mounted
()
{
this
.
$nextTick
(()
=>
{
})
},
methods
:
{
onDictReady
(
dict
)
{
this
.
areaOpts
=
[{
value
:
undefined
,
label
:
'
全部
'
},
...
dict
.
area_province
]
},
setQuertType
(
type
)
{
if
(
type
===
this
.
query
.
type
)
{
this
.
query
.
sort
=
!
this
.
query
.
sort
}
else
{
this
.
query
.
type
=
type
this
.
query
.
sort
=
false
}
},
// 点击询价
inquiry
(
item
,
type
)
{
console
.
log
(
item
,
type
)
this
.
$refs
.
inquiryView
.
initView
(
item
.
id
,
type
)
},
// 跳转到详情
goToDetails
(
item
,
type
)
{
console
.
log
(
item
,
type
)
},
pageChange
(
e
)
{
this
.
page
=
e
this
.
loadData
()
},
loadData
()
{
},
goTop
()
{
document
.
body
.
scrollTop
=
0
document
.
documentElement
.
scrollTop
=
0
}
}
}
</
script
>
<
style
rel=
"stylesheet/scss"
lang=
"scss"
scoped
>
.touch
{
cursor
:pointer
;
}
.clear
{
clear
:
both
}
.inline-block
{
display
:
inline-block
;
}
.ellipsis
{
// 多行溢出省略号
display
:
-
webkit-box
;
-webkit-box-orient
:
vertical
;
overflow
:
hidden
;
-webkit-line-clamp
:
2
;
text-overflow
:
ellipsis
;
}
// 分页 前文字+分页
.pagination
{
margin-top
:
23px
;
text-align
:
center
;
padding
:
10px
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
>>>
.el-pagination.is-background
.el-pager
li
{
font-style
:
normal
;
font-weight
:
400
;
font-size
:
14px
;
text-align
:
center
;
background-color
:
#fff
;
color
:
#000000
;
border
:
1px
solid
#e5e5ea
;
}
/* 激活后的样式 */
>>>
.el-pagination.is-background
.el-pager
li
:not
(
.disabled
)
.active
{
background-color
:
#ffffff
;
color
:
#0366ed
;
border
:
1px
solid
#0366ed
;
text-align
:
center
;
}
/* 修改左右箭头样式 */
>>>
.el-pagination
.btn-next
.el-icon
,
>>>
.el-pagination
.btn-prev
.el-icon
{
font-style
:
normal
;
font-weight
:
400
;
font-size
:
14px
;
text-align
:
center
;
background-color
:
#fff
;
color
:
#e5e5ea
;
border
:
1px
solid
#e5e5ea
;
}
>>>
.el-pager
{
height
:
35
.5px
!
important
;
}
>>>
.number
,
>>>
.el-icon
{
height
:
35
.5px
!
important
;
line-height
:
35
.5px
!
important
;
}
}
.head-box
{
width
:
100vw
;
top
:
0
;
position
:
fixed
;
background
:
none
repeat
scroll
0
0
white
;
z-index
:
999
;
box-shadow
:
0px
3px
7px
0px
rgba
(
0
,
0
,
0
,
0
.2
);
.head-box-top
{
display
:
flex
;
justify-content
:
space-evenly
;
align-items
:
center
;
.top-call
{
height
:
80px
;
padding-top
:
15px
;
}
}
}
.content-box
{
min-height
:
80vh
;
margin-top
:
94px
;
user-select
:
none
;
.showcase-line
{
margin
:
16px
0
28px
;
display
:
flex
;
justify-content
:
space-between
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
}
.supplier_card
{
padding
:
10px
20px
;
width
:
742px
;
height
:
278px
;
background
:
#F3F4F5
;
border
:
1px
solid
rgba
(
25
,
97
,
197
,
0
.12
);
box-shadow
:
1px
2px
8px
0
rgba
(
0
,
0
,
0
,
0
.12
);
border-radius
:
10px
;
.sup_btn
{
width
:
124px
;
height
:
36px
;
padding
:
6px
;
background
:
#FB7B09
;
border
:
1px
solid
#FB7B09
;
border-radius
:
10px
;
font-size
:
20px
;
color
:
#FFFFFF
;
text-align
:
center
;
}
.sup_btn
:hover
{
font-weight
:
bold
;
}
.sup_title
{
max-width
:
540px
;
color
:
#1961C5
;
font-size
:
26px
;
line-height
:
34px
;
}
.sup_title
:hover
{
font-weight
:
bolder
;
}
.sup_area
{
padding
:
10px
0
;
color
:
#666666
;
font-size
:
18px
;
}
.block-c
{
display
:
inline-block
;
width
:
180px
;
font-size
:
20px
;
line-height
:
26px
;
font-weight
:
600
;
color
:
#333333
;
text-align
:
center
;
opacity
:
0
.9
;
}
.block-b
{
height
:
50px
;
font-size
:
18px
;
color
:
#666666
;
line-height
:
25px
;
opacity
:
0
.9
;
}
}
.product_card
{
width
:
240px
;
height
:
278px
;
background
:
#FFFFFF
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.12
);
box-shadow
:
1px
2px
8px
0
rgba
(
0
,
0
,
0
,
0
.12
);
border-radius
:
10px
;
.product_title
{
padding
:
0
10px
;
width
:
100%
;
height
:
40px
;
line-height
:
20px
;
text-align
:
center
;
}
.product_title
:hover
{
font-weight
:
bolder
;
}
}
}
.search-box
{
padding-top
:
12px
;
width
:
100%
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
color
:
#666666
;
user-select
:
none
;
.search-item
{
width
:
100%
;
height
:
38px
;
display
:
inline-block
;
padding
:
8px
20px
;
background
:
#F7F7F7
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.12
);
overflow
:hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
-o-text-overflow
:ellipsis
;
.label
:hover
{
font-weight
:
600
;
}
.btn
{
width
:
74px
;
padding
:
3px
;
margin-left
:
12px
;
display
:
inline-block
;
background
:
#1961C5
;
border-radius
:
6px
;
color
:
white
;
text-align
:
center
;
opacity
:
0
.7
;
}
.btn
:hover
{
opacity
:
1
;
}
}
.area-title
{
height
:
62px
;
background
:
#F7F7F7
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.12
);
text-align
:
center
;
line-height
:
60px
;
}
.area_item
{
height
:
30px
;
padding
:
6px
12px
;
display
:
inline-block
;
}
.area_item
:hover
{
font-weight
:
600
;
}
.active
{
color
:
#1961C5
;
}
.search-tools
{
width
:
100%
;
.btn
{
width
:
76%
;
height
:
38px
;
border
:
2px
solid
#1961C5
;
border-radius
:
8px
;
background
:
#1961C5
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
font-size
:
21px
;
color
:
#ffffff
;
opacity
:
0
.7
;
}
.btn
:hover
{
opacity
:
1
;
}
>>>
.el-input__inner
{
height
:
38px
;
border
:
2px
solid
#1961C5
;
border-radius
:
8px
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
font-size
:
18px
;
color
:
#333333
;
opacity
:
0
.7
;
}
>>>
.el-input__inner
:hover
{
opacity
:
1
;
}
}
.search-keyword
{
padding
:
5px
0
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
font-size
:
14px
;
text-align
:
left
;
.label
{
padding
:
1px
15px
1px
;
color
:
#333333
;
cursor
:pointer
;
user-select
:
none
;
}
.label
:hover
{
color
:
#1961C5
;
}
}
}
.line-btn
{
display
:
flex
;
justify-content
:
center
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
.btn-o
{
margin
:
0
25px
;
width
:
360px
;
padding
:
6px
10px
;
background
:
#F7601A
;
box-shadow
:
0
3px
6px
0
rgba
(
0
,
0
,
0
,
0
.2
);
text-align
:
center
;
border
:
1px
solid
transparent
;
font-size
:
22px
;
color
:
#FFFFFF
;
cursor
:pointer
;
user-select
:
none
;
}
.btn-o
:hover
{
border
:
1px
solid
rgba
(
30
,
144
,
255
,
0
.8
);
color
:
#1482f0
;
}
.btn-l
{
margin
:
0
25px
;
width
:
360px
;
padding
:
10px
;
background
:
#1961C5
;
box-shadow
:
0
3px
6px
0
rgba
(
0
,
0
,
0
,
0
.2
);
text-align
:
center
;
border
:
1px
solid
transparent
;
font-size
:
22px
;
color
:
#FFFFFF
;
cursor
:pointer
;
user-select
:
none
;
}
.btn-l
:hover
{
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.3
);
color
:
#F7601A
;
}
.btn-b
{
margin
:
0
10px
;
width
:
168px
;
padding
:
6px
;
background
:
#EFF6FF
;
border
:
1px
solid
transparent
;
box-shadow
:
0
1px
2px
0
rgba
(
0
,
0
,
0
,
0
.2
);
text-align
:
center
;
font-size
:
20px
;
color
:
#1961C5
;
cursor
:pointer
;
user-select
:
none
;
}
.btn-b
:hover
{
border
:
1px
solid
rgba
(
30
,
144
,
255
,
0
.9
);
}
.active
{
color
:
#FFFFFF
;
font-weight
:
400
;
background
:
#1961C5
;
}
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment