Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
liyeyun
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
cfld-frontend
liyeyun
Commits
913a52ac
Commit
913a52ac
authored
Dec 16, 2023
by
shilei
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://101.201.78.203/cfld-front/liyeyun
into dev
parents
177d5148
d861230c
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
197 additions
and
63 deletions
+197
-63
.env.production
.env.production
+2
-2
default-pic__carrier.png
src/assets/images/default-pic__carrier.png
+0
-0
default-pic__develop.png
src/assets/images/default-pic__develop.png
+0
-0
default-pic__land.png
src/assets/images/default-pic__land.png
+0
-0
default-pic__park.png
src/assets/images/default-pic__park.png
+0
-0
reset.scss
src/assets/styles/reset.scss
+0
-9
CommonHeader.vue
src/components/common/CommonHeader.vue
+3
-3
CommonImage.vue
src/components/common/CommonImage.vue
+26
-3
ImageList.vue
src/components/common/ImageList.vue
+4
-0
DetailMain.vue
src/components/detail/DetailMain.vue
+1
-1
MiniListItem.vue
src/components/detail/MiniListItem.vue
+7
-1
SecretInfo.vue
src/components/detail/SecretInfo.vue
+3
-0
StarContactInfo.vue
src/components/detail/StarContactInfo.vue
+3
-2
VideoList.vue
src/components/detail/VideoList.vue
+7
-1
filter-view.vue
src/components/filter/filter-view.vue
+10
-0
FormModal.vue
src/components/form-modal/FormModal.vue
+8
-0
ParkItem.vue
src/components/list/ParkItem.vue
+2
-1
list-carrier-item.vue
src/components/list/list-carrier-item.vue
+7
-1
list-land-item.vue
src/components/list/list-land-item.vue
+7
-1
list-policy-item.vue
src/components/list/list-policy-item.vue
+8
-2
MyParkList.vue
src/components/user/MyParkList.vue
+31
-3
policyList.ts
src/types/api/policyList.ts
+1
-1
DevelopZoneDetail.vue
src/views/develop/DevelopZoneDetail.vue
+3
-1
HomeView.vue
src/views/home/HomeView.vue
+18
-1
IndustrialParkDetail.vue
src/views/industrial-park/IndustrialParkDetail.vue
+2
-1
IndustryCategory.vue
src/views/industry/IndustryCategory.vue
+29
-27
IndustryPolicyDetail.vue
src/views/industry/IndustryPolicyDetail.vue
+13
-2
MyDevelopDetail.vue
src/views/user/MyDevelopDetail.vue
+1
-0
MyIndustrialDetail.vue
src/views/user/MyIndustrialDetail.vue
+1
-0
No files found.
.env.production
View file @
913a52ac
VITE_BASE_URL=https://
prod.api
.liyeyun.com
VITE_BASE_URL=https://
www
.liyeyun.com
VITE_BASE_USER_URL=https://
prod.user
.liyeyun.com
VITE_BASE_USER_URL=https://
www
.liyeyun.com
src/assets/images/default-pic__carrier.png
0 → 100644
View file @
913a52ac
189 KB
src/assets/images/default-pic__develop.png
0 → 100644
View file @
913a52ac
279 KB
src/assets/images/default-pic__land.png
0 → 100644
View file @
913a52ac
316 KB
src/assets/images/default-pic__park.png
0 → 100644
View file @
913a52ac
248 KB
src/assets/styles/reset.scss
View file @
913a52ac
...
@@ -79,15 +79,6 @@ body {
...
@@ -79,15 +79,6 @@ body {
}
}
}
}
.el-input
.el-input__wrapper.el-input__wrapper
{
&
.is-focus.is-focus
{
box-shadow
:
0
0
0
1px
rgb
(
220
,
223
,
230
)
inset
!
important
;
}
}
.el-textarea__inner
:focus
{
box-shadow
:
0
0
0
1px
rgb
(
220
,
223
,
230
)
inset
!
important
;
}
$namespace
:
'lyy'
;
// change the 'mx' to 'xmx'. then <date-picker prefix-class="lyy" />
$namespace
:
'lyy'
;
// change the 'mx' to 'xmx'. then <date-picker prefix-class="lyy" />
$default-color
:
#555
;
$default-color
:
#555
;
...
...
src/components/common/CommonHeader.vue
View file @
913a52ac
...
@@ -69,7 +69,7 @@
...
@@ -69,7 +69,7 @@
"
"
>
>
<div
<div
class=
"flex w-[167px] items-center pl-2"
class=
"flex w-[167px] items-center
justify-end
pl-2"
@
click=
"
@
click=
"
() => {
() => {
route.name === 'home' && toUserCenter();
route.name === 'home' && toUserCenter();
...
@@ -78,7 +78,7 @@
...
@@ -78,7 +78,7 @@
>
>
<img
src=
"@/assets/images/icon-avatar.png"
class=
"mr-3 h-[26px] w-[26px]"
/>
<img
src=
"@/assets/images/icon-avatar.png"
class=
"mr-3 h-[26px] w-[26px]"
/>
<span
<span
class=
"
mr-2
cursor-pointer text-base text-[#333333]"
class=
"cursor-pointer text-base text-[#333333]"
:class=
"route.name !== 'home' ? 'text-[#333333]' : 'text-white'"
:class=
"route.name !== 'home' ? 'text-[#333333]' : 'text-white'"
>
>
{{ userInfo.phone }}
{{ userInfo.phone }}
...
@@ -105,7 +105,7 @@
...
@@ -105,7 +105,7 @@
</div>
</div>
</
template
>
</
template
>
</ElDropdown>
</ElDropdown>
<span
class=
"ml-
5
cursor-pointer"
@
click=
"handleLogout"
>
退出
</span>
<span
class=
"ml-
3
cursor-pointer"
@
click=
"handleLogout"
>
退出
</span>
</div>
</div>
<div
v-else
class=
"cursor-pointer"
>
<div
v-else
class=
"cursor-pointer"
>
<span
@
click=
"handleLogin('loginByPhone')"
>
登录
</span>
<span
@
click=
"handleLogin('loginByPhone')"
>
登录
</span>
...
...
src/components/common/CommonImage.vue
View file @
913a52ac
...
@@ -2,19 +2,42 @@
...
@@ -2,19 +2,42 @@
<
template
>
<
template
>
<ElImage
:src=
"src"
>
<ElImage
:src=
"src"
>
<template
#
placeholder
>
<template
#
placeholder
>
<img
class=
"h-full w-full"
src=
"@/assets/images/default-pic.png
"
/>
<img
class=
"h-full w-full"
:src=
"currentdefault
"
/>
</
template
>
</
template
>
<
template
#
error
><img
class=
"h-full w-full"
src=
"@/assets/images/default-pic.png
"
/></
template
>
<
template
#
error
><img
class=
"h-full w-full"
:src=
"currentdefault
"
/></
template
>
</ElImage>
</ElImage>
</template>
</template>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
withDefaults
(
import
defaultPicIcon
from
'@/assets/images/default-pic.png'
;
import
defaultParkPic
from
'@/assets/images/default-pic__park.png'
;
import
defaultDevelopPic
from
'@/assets/images/default-pic__develop.png'
;
import
defaultCarrierPic
from
'@/assets/images/default-pic__carrier.png'
;
import
defaultLandPic
from
'@/assets/images/default-pic__land.png'
;
import
{
DetailType
}
from
'@/types/enum.ts'
;
import
{
computed
}
from
'vue'
;
const
props
=
withDefaults
(
defineProps
<
{
defineProps
<
{
src
?:
string
|
null
;
src
?:
string
|
null
;
defaultPic
?:
string
;
type
?:
DetailType
|
null
;
}
>
(),
}
>
(),
{
{
src
:
null
,
src
:
null
,
defaultPic
:
defaultPicIcon
,
type
:
null
,
},
},
);
);
const
currentdefault
=
computed
(()
=>
{
const
config
:
Record
<
DetailType
,
string
>
=
{
[
DetailType
.
carrier
]:
defaultCarrierPic
,
[
DetailType
.
land
]:
defaultLandPic
,
[
DetailType
.
industrial
]:
defaultParkPic
,
[
DetailType
.
develop
]:
defaultDevelopPic
,
[
DetailType
.
startDevelop
]:
defaultDevelopPic
,
};
return
props
.
type
?
config
[
props
.
type
]
:
defaultPicIcon
;
});
</
script
>
</
script
>
src/components/common/ImageList.vue
View file @
913a52ac
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
class=
"h-[434px] w-full"
class=
"h-[434px] w-full"
:class=
"
{ 'cursor-pointer': image?.href }"
:class=
"
{ 'cursor-pointer': image?.href }"
:src="image?.url"
:src="image?.url"
:type="detailType"
@click="handleClick(image?.href)"
@click="handleClick(image?.href)"
/>
/>
<div
<div
...
@@ -36,6 +37,7 @@
...
@@ -36,6 +37,7 @@
class=
"h-[92px] w-[130px] cursor-pointer rounded"
class=
"h-[92px] w-[130px] cursor-pointer rounded"
:class=
"
{ 'border border-[#2878ff] p-1': index === currentIndex }"
:class=
"
{ 'border border-[#2878ff] p-1': index === currentIndex }"
:src="image.url"
:src="image.url"
:type="detailType"
/>
/>
</SwiperSlide>
</SwiperSlide>
</Swiper>
</Swiper>
...
@@ -65,10 +67,12 @@ import { Swiper, SwiperSlide } from 'swiper/vue';
...
@@ -65,10 +67,12 @@ import { Swiper, SwiperSlide } from 'swiper/vue';
import
{
computed
,
ref
}
from
'vue'
;
import
{
computed
,
ref
}
from
'vue'
;
import
CommonImage
from
'@/components/common/CommonImage.vue'
;
import
CommonImage
from
'@/components/common/CommonImage.vue'
;
import
type
{
Swiper
as
SwiperType
}
from
'swiper/types'
;
import
type
{
Swiper
as
SwiperType
}
from
'swiper/types'
;
import
type
{
DetailType
}
from
'@/types/enum.ts'
;
const
props
=
withDefaults
(
const
props
=
withDefaults
(
defineProps
<
{
defineProps
<
{
images
:
{
url
:
string
;
href
?:
string
}[];
images
:
{
url
:
string
;
href
?:
string
}[];
detailType
:
DetailType
;
}
>
(),
}
>
(),
{
{
images
:
()
=>
[],
images
:
()
=>
[],
...
...
src/components/detail/DetailMain.vue
View file @
913a52ac
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
<!-- main content -->
<!-- main content -->
<div
class=
"mt-4 flex"
>
<div
class=
"mt-4 flex"
>
<div>
<div>
<ImageList
:images=
"mainImageList"
></ImageList>
<ImageList
:images=
"mainImageList"
:detail-type=
"type"
></ImageList>
</div>
</div>
<div
class=
"ml-[30px] mt-4 flex flex-1 flex-col"
>
<div
class=
"ml-[30px] mt-4 flex flex-1 flex-col"
>
<div>
<div>
...
...
src/components/detail/MiniListItem.vue
View file @
913a52ac
...
@@ -2,7 +2,11 @@
...
@@ -2,7 +2,11 @@
<
template
>
<
template
>
<div
v-if=
"detail"
class=
"w-[274px]"
>
<div
v-if=
"detail"
class=
"w-[274px]"
>
<div
@
click=
"handleDetail"
>
<div
@
click=
"handleDetail"
>
<CommonImage
class=
"h-[204px] w-full cursor-pointer rounded-sm"
:src=
"detail.imgUrl"
/>
<CommonImage
class=
"h-[204px] w-full cursor-pointer rounded-sm"
:src=
"detail.imgUrl"
:type=
"detailType"
/>
</div>
</div>
<div
<div
class=
"ell2 mt-3 cursor-pointer font-yahei text-lg leading-6 text-[#1A1A1A]"
class=
"ell2 mt-3 cursor-pointer font-yahei text-lg leading-6 text-[#1A1A1A]"
...
@@ -17,6 +21,7 @@
...
@@ -17,6 +21,7 @@
</
template
>
</
template
>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
CommonImage
from
'@/components/common/CommonImage.vue'
;
import
CommonImage
from
'@/components/common/CommonImage.vue'
;
import
type
{
DetailType
}
from
'@/types/enum.ts'
;
export
interface
MiniDetail
{
export
interface
MiniDetail
{
imgUrl
:
string
;
imgUrl
:
string
;
...
@@ -27,6 +32,7 @@ export interface MiniDetail {
...
@@ -27,6 +32,7 @@ export interface MiniDetail {
withDefaults
(
withDefaults
(
defineProps
<
{
defineProps
<
{
detail
:
MiniDetail
;
detail
:
MiniDetail
;
detailType
:
DetailType
;
}
>
(),
}
>
(),
{},
{},
);
);
...
...
src/components/detail/SecretInfo.vue
View file @
913a52ac
...
@@ -166,5 +166,8 @@ const changeShowSelect = (b: boolean) => {
...
@@ -166,5 +166,8 @@ const changeShowSelect = (b: boolean) => {
.el-select
{
.el-select
{
width
:
100%
;
width
:
100%
;
}
}
.el-input-number
{
width
:
100%
!
important
;
}
}
}
</
style
>
</
style
>
src/components/detail/StarContactInfo.vue
View file @
913a52ac
...
@@ -11,9 +11,10 @@
...
@@ -11,9 +11,10 @@
<div
<div
v-if=
"isShowPhone"
v-if=
"isShowPhone"
class=
"star-contact-info absolute right-[50px] top-0 flex h-[145px] w-[328px] rounded bg-white p-5"
class=
"star-contact-info absolute right-[50px] top-0 flex h-[145px] w-[328px] rounded bg-white p-5"
:class=
"
{ 'w-[186px]': !detail.contactPerson }"
>
>
<div
class=
"flex w-[288px]"
>
<div
class=
"flex w-[288px]"
:class=
"
{ 'w-[146px]': !detail.contactPerson }"
>
<div
class=
"flex h-[105px] flex-none flex-col"
>
<div
v-if=
"detail.contactPerson"
class=
"flex h-[105px] flex-none flex-col"
>
<div>
<div>
<div
class=
"flex h-5 items-center justify-center"
>
<div
class=
"flex h-5 items-center justify-center"
>
<div
<div
...
...
src/components/detail/VideoList.vue
View file @
913a52ac
...
@@ -26,7 +26,12 @@
...
@@ -26,7 +26,12 @@
:src=
"item.videourl"
:src=
"item.videourl"
:cover=
"item.videoCover!"
:cover=
"item.videoCover!"
></CommonVideo>
></CommonVideo>
<CommonImage
v-else
class=
"h-full w-full"
:src=
"item.videourl"
></CommonImage>
<CommonImage
v-else
class=
"h-full w-full"
:src=
"item.videourl"
:type=
"DetailType.develop"
></CommonImage>
</SwiperSlide>
</SwiperSlide>
</Swiper>
</Swiper>
<div
<div
...
@@ -76,6 +81,7 @@ import { Swiper, SwiperSlide } from 'swiper/vue';
...
@@ -76,6 +81,7 @@ import { Swiper, SwiperSlide } from 'swiper/vue';
import
type
{
Swiper
as
SwiperType
}
from
'swiper/types'
;
import
type
{
Swiper
as
SwiperType
}
from
'swiper/types'
;
import
{
Autoplay
}
from
'swiper/modules'
;
import
{
Autoplay
}
from
'swiper/modules'
;
import
{
computed
,
ref
,
nextTick
,
onMounted
}
from
'vue'
;
import
{
computed
,
ref
,
nextTick
,
onMounted
}
from
'vue'
;
import
{
DetailType
}
from
'@/types/enum.ts'
;
import
CommonVideo
from
'../common/CommonVideo.vue'
;
import
CommonVideo
from
'../common/CommonVideo.vue'
;
import
CommonImage
from
'../common/CommonImage.vue'
;
import
CommonImage
from
'../common/CommonImage.vue'
;
...
...
src/components/filter/filter-view.vue
View file @
913a52ac
...
@@ -483,3 +483,13 @@ watch(
...
@@ -483,3 +483,13 @@ watch(
width
:
80
px
;
width
:
80
px
;
}
}
<
/style
>
<
/style
>
<
style
lang
=
"scss"
>
.
filter
-
view
{
.
el
-
input
.
el
-
input__wrapper
.
el
-
input__wrapper
{
&
.
is
-
focus
.
is
-
focus
{
box
-
shadow
:
0
0
0
1
px
rgb
(
220
,
223
,
230
)
inset
!
important
;
}
}
}
<
/style
>
src/components/form-modal/FormModal.vue
View file @
913a52ac
...
@@ -146,6 +146,14 @@ const commit = debounce(
...
@@ -146,6 +146,14 @@ const commit = debounce(
.el-input__wrapper
{
.el-input__wrapper
{
height
:
38px
;
height
:
38px
;
}
}
.el-input
.el-input__wrapper.el-input__wrapper
{
&
.is-focus.is-focus
{
box-shadow
:
0
0
0
1px
rgb
(
220
,
223
,
230
)
inset
!
important
;
}
}
.el-textarea__inner
:focus
{
box-shadow
:
0
0
0
1px
rgb
(
220
,
223
,
230
)
inset
!
important
;
}
}
}
.lyy
.el-select-dropdown__item.selected
{
.lyy
.el-select-dropdown__item.selected
{
color
:
#c0322b
;
color
:
#c0322b
;
...
...
src/components/list/ParkItem.vue
View file @
913a52ac
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
<CommonImage
<CommonImage
class=
"h-[156px] w-[208px] cursor-pointer rounded-sm"
class=
"h-[156px] w-[208px] cursor-pointer rounded-sm"
:src=
"item.imgUrl"
:src=
"item.imgUrl"
:type=
"isDevelop ? DetailType.develop : DetailType.industrial"
:alt=
"isDevelop ? '开发区' : '产业园'"
:alt=
"isDevelop ? '开发区' : '产业园'"
/>
/>
<div
<div
...
@@ -59,7 +60,7 @@ import type { IndustrialParkItem } from '@/types/api/industrialParkList.ts';
...
@@ -59,7 +60,7 @@ import type { IndustrialParkItem } from '@/types/api/industrialParkList.ts';
import
{
filterAddress
,
formatNumber
}
from
'@/utils/filters.ts'
;
import
{
filterAddress
,
formatNumber
}
from
'@/utils/filters.ts'
;
import
{
computed
}
from
'vue'
;
import
{
computed
}
from
'vue'
;
import
type
{
DevelopZoneItem
}
from
'@/types/api/developZoneList'
;
import
type
{
DevelopZoneItem
}
from
'@/types/api/developZoneList'
;
import
{
ParkItemType
}
from
'@/types/enum.ts'
;
import
{
DetailType
,
ParkItemType
}
from
'@/types/enum.ts'
;
import
CommonImage
from
'@/components/common/CommonImage.vue'
;
import
CommonImage
from
'@/components/common/CommonImage.vue'
;
import
ListInfo
from
'./ListInfo.vue'
;
import
ListInfo
from
'./ListInfo.vue'
;
...
...
src/components/list/list-carrier-item.vue
View file @
913a52ac
<
template
>
<
template
>
<div
class=
"flex"
>
<div
class=
"flex"
>
<div
class=
"media-left relative mr-4 cursor-pointer"
@
click=
"handleDetail"
>
<div
class=
"media-left relative mr-4 cursor-pointer"
@
click=
"handleDetail"
>
<CommonImage
class=
"h-[156px] w-[208px]"
:src=
"detail.imgUrl"
alt=
""
/>
<CommonImage
class=
"h-[156px] w-[208px]"
:src=
"detail.imgUrl"
:type=
"DetailType.carrier"
alt=
""
/>
<div
v-if=
"detail.isVr"
class=
"absolute bottom-2 left-2"
>
<div
v-if=
"detail.isVr"
class=
"absolute bottom-2 left-2"
>
<img
class=
"h-[45px] w-[45px] rounded-[50%]"
src=
"@/assets/images/vr-icon.png"
/>
<img
class=
"h-[45px] w-[45px] rounded-[50%]"
src=
"@/assets/images/vr-icon.png"
/>
</div>
</div>
...
@@ -36,6 +41,7 @@
...
@@ -36,6 +41,7 @@
import
type
{
CarrierListItem
}
from
'@/types/api/carrierList'
;
import
type
{
CarrierListItem
}
from
'@/types/api/carrierList'
;
import
CommonImage
from
'@/components/common/CommonImage.vue'
;
import
CommonImage
from
'@/components/common/CommonImage.vue'
;
import
{
formatNumber
}
from
'@/utils/filters.ts'
;
import
{
formatNumber
}
from
'@/utils/filters.ts'
;
import
{
DetailType
}
from
'@/types/enum.ts'
;
withDefaults
(
withDefaults
(
defineProps
<
{
defineProps
<
{
...
...
src/components/list/list-land-item.vue
View file @
913a52ac
<
template
>
<
template
>
<div
class=
"flex"
>
<div
class=
"flex"
>
<div
class=
"media-left relative mr-4 cursor-pointer"
@
click=
"handleDetail"
>
<div
class=
"media-left relative mr-4 cursor-pointer"
@
click=
"handleDetail"
>
<CommonImage
class=
"h-[156px] w-[208px]"
:src=
"detail.imgUrl"
alt=
""
/>
<CommonImage
class=
"h-[156px] w-[208px]"
:type=
"DetailType.land"
:src=
"detail.imgUrl"
alt=
""
/>
<div
v-if=
"detail.isVr"
class=
"absolute bottom-2 left-2"
>
<div
v-if=
"detail.isVr"
class=
"absolute bottom-2 left-2"
>
<img
class=
"h-[45px] w-[45px] rounded-[50%]"
src=
"@/assets/images/vr-icon.png"
/>
<img
class=
"h-[45px] w-[45px] rounded-[50%]"
src=
"@/assets/images/vr-icon.png"
/>
</div>
</div>
...
@@ -42,6 +47,7 @@
...
@@ -42,6 +47,7 @@
import
type
{
LandListItem
}
from
'@/types/api/landList'
;
import
type
{
LandListItem
}
from
'@/types/api/landList'
;
import
CommonImage
from
'@/components/common/CommonImage.vue'
;
import
CommonImage
from
'@/components/common/CommonImage.vue'
;
import
{
formatNumber
}
from
'@/utils/filters.ts'
;
import
{
formatNumber
}
from
'@/utils/filters.ts'
;
import
{
DetailType
}
from
'@/types/enum.ts'
;
withDefaults
(
withDefaults
(
defineProps
<
{
defineProps
<
{
...
...
src/components/list/list-policy-item.vue
View file @
913a52ac
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
{{
detail
.
content
.
trim
()
}}
{{
detail
.
content
.
trim
()
}}
</p>
</p>
<div
class=
"mt-4 flex justify-between text-sm leading-[22px] text-[#4d4d4d]"
>
<div
class=
"mt-4 flex justify-between text-sm leading-[22px] text-[#4d4d4d]"
>
<div
>
{{
detail
.
publisher
}}
|
{{
detail
.
ctime
}}
</div>
<div
class=
"flex items-center"
>
{{
infos
}}
</div>
<div
class=
"read-more flex items-center"
>
<div
class=
"read-more flex items-center"
>
<span>
了解详情
</span>
<span>
了解详情
</span>
<img
src=
"@/assets/images/icon-arrow_red.png"
class=
"ml-1 h-4 w-4"
alt=
""
/>
<img
src=
"@/assets/images/icon-arrow_red.png"
class=
"ml-1 h-4 w-4"
alt=
""
/>
...
@@ -30,8 +30,10 @@
...
@@ -30,8 +30,10 @@
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
type
{
PolicyListItem
}
from
'@/types/api/policyList'
;
import
type
{
PolicyListItem
}
from
'@/types/api/policyList'
;
import
CommonImage
from
'@/components/common/CommonImage.vue'
;
import
CommonImage
from
'@/components/common/CommonImage.vue'
;
import
{
computed
}
from
'vue'
;
import
{
haveValue
}
from
'@/utils/filters.ts'
;
withDefaults
(
const
props
=
withDefaults
(
defineProps
<
{
defineProps
<
{
detail
:
PolicyListItem
;
detail
:
PolicyListItem
;
}
>
(),
}
>
(),
...
@@ -45,6 +47,10 @@ const emit = defineEmits<{
...
@@ -45,6 +47,10 @@ const emit = defineEmits<{
const
handleDetail
=
()
=>
{
const
handleDetail
=
()
=>
{
emit
(
'to-detail'
);
emit
(
'to-detail'
);
};
};
const
infos
=
computed
(()
=>
{
const
{
publisher
,
publishTime
}
=
props
.
detail
;
return
[
publisher
,
publishTime
].
filter
(
haveValue
).
join
(
' | '
);
});
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.media-main
{
.media-main
{
...
...
src/components/user/MyParkList.vue
View file @
913a52ac
<
template
>
<
template
>
<div>
<div
class=
"my-park-list"
>
<div
class=
"flex"
>
<div
class=
"flex"
>
<div
class=
"flex space-x-[10px]"
>
<div
class=
"flex space-x-[10px]"
>
<div>
<div>
<ElSelect
v-model=
"params.isSystem"
clearable
placeholder=
"请选择来源方式"
>
<ElSelect
v-model=
"params.isSystem"
clearable
placeholder=
"请选择来源方式"
popper-class=
"source-select"
>
<ElOption
<ElOption
v-for=
"source of sourceList"
v-for=
"source of sourceList"
:key=
"source.dictCode"
:key=
"source.dictCode"
...
@@ -46,7 +51,12 @@
...
@@ -46,7 +51,12 @@
></DatePicker>
></DatePicker>
</div>
</div>
<div>
<div>
<ElSelect
v-model=
"params.status"
clearable
placeholder=
"请选择审批状态"
>
<ElSelect
v-model=
"params.status"
clearable
placeholder=
"请选择审批状态"
popper-class=
"source-select"
>
<ElOption
<ElOption
v-for=
"status of statusList"
v-for=
"status of statusList"
:key=
"status.dictCode"
:key=
"status.dictCode"
...
@@ -265,3 +275,21 @@ const tableHeaderStyle = {
...
@@ -265,3 +275,21 @@ const tableHeaderStyle = {
// }
// }
}
}
</
style
>
</
style
>
<
style
lang=
"scss"
>
.my-park-list
{
.el-input
.el-input__wrapper.el-input__wrapper
{
&
.is-focus.is-focus
{
box-shadow
:
0
0
0
1px
rgb
(
220
,
223
,
230
)
inset
!
important
;
}
}
.el-textarea__inner
:focus
{
box-shadow
:
0
0
0
1px
rgb
(
220
,
223
,
230
)
inset
!
important
;
}
}
.source-select
{
.el-select-dropdown__item.selected
{
color
:
#c0322b
;
}
}
</
style
>
src/types/api/policyList.ts
View file @
913a52ac
// 列表
// 列表
export
interface
PolicyListItem
{
export
interface
PolicyListItem
{
content
:
string
;
content
:
string
;
ct
ime
:
string
;
publishT
ime
:
string
;
id
:
number
;
id
:
number
;
industryList
:
string
;
industryList
:
string
;
publisher
:
string
;
publisher
:
string
;
...
...
src/views/develop/DevelopZoneDetail.vue
View file @
913a52ac
...
@@ -58,7 +58,7 @@
...
@@ -58,7 +58,7 @@
<DetailInfoCell
v-if=
"industryFund.length"
:infos=
"industryFund"
title=
"产业基金"
>
<DetailInfoCell
v-if=
"industryFund.length"
:infos=
"industryFund"
title=
"产业基金"
>
<DetailInfo
:infos=
"industryFund"
></DetailInfo>
<DetailInfo
:infos=
"industryFund"
></DetailInfo>
</DetailInfoCell>
</DetailInfoCell>
<DetailInfoCell
title=
"周边配套"
title-center
v-if=
"detail.latitude"
>
<DetailInfoCell
v-if=
"detail.latitude"
title=
"周边配套"
title-center
>
<MapView
:lat=
"detail.latitude"
:lng=
"detail.longitude"
></MapView>
<MapView
:lat=
"detail.latitude"
:lng=
"detail.longitude"
></MapView>
</DetailInfoCell>
</DetailInfoCell>
<DetailInfoCell
<DetailInfoCell
...
@@ -74,6 +74,7 @@
...
@@ -74,6 +74,7 @@
v-for=
"item of industrials.slice(0, 4)"
v-for=
"item of industrials.slice(0, 4)"
:key=
"item.name"
:key=
"item.name"
:detail=
"item"
:detail=
"item"
:detail-type=
"DetailType.industrial"
@
to-detail=
"toIndustrialDetail(item)"
@
to-detail=
"toIndustrialDetail(item)"
></MiniListItem>
></MiniListItem>
</div>
</div>
...
@@ -91,6 +92,7 @@
...
@@ -91,6 +92,7 @@
v-for=
"item of lands.slice(0, 4)"
v-for=
"item of lands.slice(0, 4)"
:key=
"item.name"
:key=
"item.name"
:detail=
"item"
:detail=
"item"
:detail-type=
"DetailType.land"
@
to-detail=
"toLandDetail(item)"
@
to-detail=
"toLandDetail(item)"
></MiniListItem>
></MiniListItem>
</div>
</div>
...
...
src/views/home/HomeView.vue
View file @
913a52ac
...
@@ -162,7 +162,12 @@
...
@@ -162,7 +162,12 @@
class=
"relative w-[272px] cursor-pointer"
class=
"relative w-[272px] cursor-pointer"
@
click=
"toDetail(item)"
@
click=
"toDetail(item)"
>
>
<CommonImage
class=
"h-[205px] w-[272px] rounded-sm"
:src=
"item.imgUrl"
alt=
""
/>
<CommonImage
:type=
"currentListType"
class=
"h-[205px] w-[272px] rounded-sm"
:src=
"item.imgUrl"
alt=
""
/>
<span
<span
v-if=
"item.isSuper"
v-if=
"item.isSuper"
class=
"absolute left-0 top-0 block rounded-tl-sm bg-[#C0322B] px-3 text-sm font-semibold leading-[26px] text-white"
class=
"absolute left-0 top-0 block rounded-tl-sm bg-[#C0322B] px-3 text-sm font-semibold leading-[26px] text-white"
...
@@ -298,6 +303,7 @@ import { filterAddress, formatNumber } from '@/utils/filters.ts';
...
@@ -298,6 +303,7 @@ import { filterAddress, formatNumber } from '@/utils/filters.ts';
import
ListInfo
from
'@/components/list/ListInfo.vue'
;
import
ListInfo
from
'@/components/list/ListInfo.vue'
;
import
{
useMessage
}
from
'@/composable/useMessage.ts'
;
import
{
useMessage
}
from
'@/composable/useMessage.ts'
;
import
{
useSearchParamsStore
}
from
'@/stores/searchParams.ts'
;
import
{
useSearchParamsStore
}
from
'@/stores/searchParams.ts'
;
import
{
DetailType
}
from
'@/types/enum.ts'
;
const
{
open
}
=
useJump
();
const
{
open
}
=
useJump
();
const
searchParamsStore
=
useSearchParamsStore
();
const
searchParamsStore
=
useSearchParamsStore
();
...
@@ -336,6 +342,17 @@ const selectedCity = computed(() => {
...
@@ -336,6 +342,17 @@ const selectedCity = computed(() => {
return
searchParamsStore
.
globalProvinceName
;
return
searchParamsStore
.
globalProvinceName
;
});
});
/** 当前列表类型 */
const
currentListType
=
computed
(()
=>
{
const
config
:
Record
<
string
,
DetailType
>
=
{
develop
:
DetailType
.
develop
,
carrier
:
DetailType
.
carrier
,
industrial
:
DetailType
.
industrial
,
land
:
DetailType
.
land
,
};
return
config
[
activeTab
.
value
]
!
;
});
const
toList
=
(
type
:
string
=
'search'
)
=>
{
const
toList
=
(
type
:
string
=
'search'
)
=>
{
let
name
:
RouteName
=
RouteName
.
developZoneList
;
let
name
:
RouteName
=
RouteName
.
developZoneList
;
let
filterType
:
string
=
searchType
.
value
;
let
filterType
:
string
=
searchType
.
value
;
...
...
src/views/industrial-park/IndustrialParkDetail.vue
View file @
913a52ac
...
@@ -91,7 +91,7 @@
...
@@ -91,7 +91,7 @@
</div>
</div>
</div>
</div>
</DetailInfoCell>
</DetailInfoCell>
<DetailInfoCell
title=
"周边配套"
title-center
v-if=
"detail.latitude"
>
<DetailInfoCell
v-if=
"detail.latitude"
title=
"周边配套"
title-center
>
<MapView
:lat=
"detail.latitude"
:lng=
"detail.longitude"
></MapView>
<MapView
:lat=
"detail.latitude"
:lng=
"detail.longitude"
></MapView>
</DetailInfoCell>
</DetailInfoCell>
<DetailInfoCell
<DetailInfoCell
...
@@ -107,6 +107,7 @@
...
@@ -107,6 +107,7 @@
v-for=
"item of carriers.slice(0, 4)"
v-for=
"item of carriers.slice(0, 4)"
:key=
"item.name"
:key=
"item.name"
:detail=
"item"
:detail=
"item"
:detail-type=
"DetailType.carrier"
@
to-detail=
"toCarrierDetail(item)"
@
to-detail=
"toCarrierDetail(item)"
></MiniListItem>
></MiniListItem>
</div>
</div>
...
...
src/views/industry/IndustryCategory.vue
View file @
913a52ac
...
@@ -58,33 +58,35 @@
...
@@ -58,33 +58,35 @@
<span
class=
"text-[#C0322B]"
>
{{
totalCount
}}
</span>
<span
class=
"text-[#C0322B]"
>
{{
totalCount
}}
</span>
个相关
{{
tabList
[
activeTab
].
name
}}
个相关
{{
tabList
[
activeTab
].
name
}}
</p>
</p>
<div
v-for=
"item in datas"
:key=
"item.id"
>
<div
class=
"space-y-[15px]"
>
<!-- 土地 -->
<div
v-for=
"item in datas"
:key=
"item.id"
>
<LandListItemView
<!-- 土地 -->
v-if=
"activeTab === 2"
<LandListItemView
:detail=
"item as any"
v-if=
"activeTab === 2"
@
to-detail=
"handleDetail(RouteName.landDetail, item)"
:detail=
"item as any"
></LandListItemView>
@
to-detail=
"handleDetail(RouteName.landDetail, item)"
<!-- 载体 -->
></LandListItemView>
<CarrierListItemView
<!-- 载体 -->
v-else-if=
"activeTab === 3"
<CarrierListItemView
:detail=
"item as any"
v-else-if=
"activeTab === 3"
@
to-detail=
"handleDetail(RouteName.carrierDetail, item)"
:detail=
"item as any"
></CarrierListItemView>
@
to-detail=
"handleDetail(RouteName.carrierDetail, item)"
<!-- 开发区 -->
></CarrierListItemView>
<ParkItem
<!-- 开发区 -->
v-else-if=
"activeTab === 0"
<ParkItem
:item=
"item"
v-else-if=
"activeTab === 0"
:type=
"ParkItemType.develop"
:item=
"item"
@
to-detail=
"handleDetail(RouteName.developZoneDetail, item)"
:type=
"ParkItemType.develop"
></ParkItem>
@
to-detail=
"handleDetail(RouteName.developZoneDetail, item)"
<!-- 产业园 -->
></ParkItem>
<ParkItem
<!-- 产业园 -->
v-else
<ParkItem
:item=
"item"
v-else
:type=
"ParkItemType.industrial"
:item=
"item"
@
to-detail=
"handleDetail(RouteName.industrialParkDetail, item)"
:type=
"ParkItemType.industrial"
></ParkItem>
@
to-detail=
"handleDetail(RouteName.industrialParkDetail, item)"
></ParkItem>
</div>
</div>
</div>
<ListPagination
<ListPagination
...
...
src/views/industry/IndustryPolicyDetail.vue
View file @
913a52ac
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
<div
class=
"mx-auto w-[800px]"
>
<div
class=
"mx-auto w-[800px]"
>
<p
class=
"mb-5 text-2xl font-semibold text-[#1a1a1a]"
>
{{
detail
.
title
}}
</p>
<p
class=
"mb-5 text-2xl font-semibold text-[#1a1a1a]"
>
{{
detail
.
title
}}
</p>
<div
class=
"mb-5 mt-4 text-sm leading-[22px] text-[#4d4d4d]"
>
<div
class=
"mb-5 mt-4 text-sm leading-[22px] text-[#4d4d4d]"
>
<div
>
发文机构:
{{
detail
.
publisher
}}
| 发文时间:
{{
detail
.
ctime
}}
</div>
<div
class=
"flex items-center"
>
{{
infos
}}
</div>
</div>
</div>
<div
class=
"mb-[17px] flex flex-wrap"
>
<div
class=
"mb-[17px] flex flex-wrap"
>
<span
<span
...
@@ -52,7 +52,7 @@ const { request: getDetail } = useRequest<PolicyListItem>(
...
@@ -52,7 +52,7 @@ const { request: getDetail } = useRequest<PolicyListItem>(
);
);
const
detail
=
ref
<
PolicyListItem
>
({
const
detail
=
ref
<
PolicyListItem
>
({
title
:
''
,
title
:
''
,
ct
ime
:
''
,
publishT
ime
:
''
,
publisher
:
''
,
publisher
:
''
,
content
:
''
,
content
:
''
,
id
:
0
,
id
:
0
,
...
@@ -85,6 +85,17 @@ const breadcrumbs = computed(() => {
...
@@ -85,6 +85,17 @@ const breadcrumbs = computed(() => {
},
},
];
];
});
});
const
infos
=
computed
(()
=>
{
const
{
publisher
,
publishTime
}
=
detail
.
value
;
return
[
{
name
:
'发文机构:'
,
value
:
publisher
},
{
name
:
'发文时间:'
,
value
:
publishTime
},
]
.
filter
(({
value
})
=>
!!
value
)
.
map
(({
value
,
name
})
=>
name
+
value
)
.
join
(
' | '
);
});
</
script
>
</
script
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.detail-main
{
.detail-main
{
...
...
src/views/user/MyDevelopDetail.vue
View file @
913a52ac
...
@@ -36,6 +36,7 @@
...
@@ -36,6 +36,7 @@
v-for=
"img of detail.imgUrlList"
v-for=
"img of detail.imgUrlList"
:key=
"img"
:key=
"img"
class=
"h-[124px] w-[124px]"
class=
"h-[124px] w-[124px]"
:type=
"DetailType.develop"
:src=
"img"
:src=
"img"
></CommonImage>
></CommonImage>
</div>
</div>
...
...
src/views/user/MyIndustrialDetail.vue
View file @
913a52ac
...
@@ -37,6 +37,7 @@
...
@@ -37,6 +37,7 @@
:key=
"img"
:key=
"img"
class=
"h-[124px] w-[124px]"
class=
"h-[124px] w-[124px]"
:src=
"img"
:src=
"img"
:type=
"DetailType.industrial"
></CommonImage>
></CommonImage>
</div>
</div>
</DetailInfoCell>
</DetailInfoCell>
...
...
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