Commit 5567ad10 authored by shilei's avatar shilei

Merge branch 'dev' of http://101.201.78.203/cfld-front/liyeyun into dev

parents a38eded9 54047662
VITE_BASE_URL=https://prod.api.liyeyun.com
VITE_BASE_USER_URL=https://prod.user.liyeyun.com
VITE_BASE_URL=http://test.api.liyeyun.com
# VITE_BASE_URL=/API
VITE_BASE_USER_URL=http://test.user.liyeyun.com
VITE_BASE_URL=https://prod.api.liyeyun.com
VITE_BASE_USER_URL=https://prod.user.liyeyun.com
......@@ -55,7 +55,7 @@
"typescript": "~5.2.2",
"unplugin-auto-import": "^0.17.2",
"unplugin-vue-components": "^0.26.0",
"vite": "^5.0.5",
"vite": "^5.0.10",
"vite-plugin-eslint": "^1.8.1",
"vitest": "^0.34.6",
"vue-tsc": "^1.8.24"
......@@ -11140,9 +11140,9 @@
"dev": true
},
"node_modules/vite": {
"version": "5.0.5",
"resolved": "https://registry.npmmirror.com/vite/-/vite-5.0.5.tgz",
"integrity": "sha512-OekeWqR9Ls56f3zd4CaxzbbS11gqYkEiBtnWFFgYR2WV8oPJRRKq0mpskYy/XaoCL3L7VINDhqqOMNDiYdGvGg==",
"version": "5.0.10",
"resolved": "https://registry.npmmirror.com/vite/-/vite-5.0.10.tgz",
"integrity": "sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==",
"dev": true,
"dependencies": {
"esbuild": "^0.19.3",
......@@ -19393,9 +19393,9 @@
"dev": true
},
"vite": {
"version": "5.0.5",
"resolved": "https://registry.npmmirror.com/vite/-/vite-5.0.5.tgz",
"integrity": "sha512-OekeWqR9Ls56f3zd4CaxzbbS11gqYkEiBtnWFFgYR2WV8oPJRRKq0mpskYy/XaoCL3L7VINDhqqOMNDiYdGvGg==",
"version": "5.0.10",
"resolved": "https://registry.npmmirror.com/vite/-/vite-5.0.10.tgz",
"integrity": "sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==",
"dev": true,
"requires": {
"esbuild": "^0.19.3",
......
......@@ -4,7 +4,7 @@
"private": true,
"scripts": {
"dev": "vite",
"build:prod": "npm run build-only -- -m development",
"build:prod": "npm run build-only",
"build:test": "npm run build-only -- -m test",
"preview": "vite preview",
"test:unit": "vitest",
......@@ -61,7 +61,7 @@
"typescript": "~5.2.2",
"unplugin-auto-import": "^0.17.2",
"unplugin-vue-components": "^0.26.0",
"vite": "^5.0.5",
"vite": "^5.0.10",
"vite-plugin-eslint": "^1.8.1",
"vitest": "^0.34.6",
"vue-tsc": "^1.8.24"
......
......@@ -21,6 +21,7 @@
</div>
<ElMenu
class="!border-none"
:class="{ 'no-select': route.name === 'home' }"
mode="horizontal"
:default-active="currentPath"
:ellipsis="false"
......@@ -325,6 +326,10 @@ const handleMenuChange = (menu: HeaderMenuItem) => {
cityInFilter.value && menuRoute.name !== RouteName.home
? JSON.stringify({ provinceName: cityInFilter.value.name })
: undefined;
const isNewPage = menuRoute.name === RouteName.industryCategory;
if (isNewPage) {
console.log(isNewPage);
}
openPage(
{
path: menu.path,
......@@ -332,81 +337,86 @@ const handleMenuChange = (menu: HeaderMenuItem) => {
searchParams,
},
},
menuRoute.name === RouteName.industryCategory,
isNewPage,
);
};
</script>
<style lang="scss" scoped>
<style lang="scss">
.header-view {
box-shadow: 0 2px 8px 0 rgba(90, 0, 0, 0.1);
position: relative;
min-width: 1200px;
z-index: 100;
::v-deep {
.el-menu-item {
padding: 0 16px;
.el-menu-item {
padding: 0 16px;
}
.el-menu--horizontal > .el-menu-item {
color: #333333;
// font-weight: 600;
font-size: 16px;
border: none;
&:hover {
background-color: #fff;
color: #c0322b;
}
.el-menu--horizontal > .el-menu-item {
color: #333333;
// font-weight: 600;
font-size: 16px;
&.is-active {
border-bottom-color: #fff;
color: #c0322b !important;
&:hover {
background-color: #fff;
color: #c0322b;
}
}
.el-menu--horizontal .el-menu-item:not(.is-disabled):focus {
background: #fff;
}
.no-select.el-menu--horizontal {
.el-menu-item.is-active {
color: white !important;
background: transparent !important;
}
.el-menu--horizontal > .el-menu-item.is-active {
border-bottom-color: #fff;
color: #c0322b !important;
& > .el-menu-item:hover {
color: white !important;
}
.el-menu--horizontal > .el-menu-item.is-active:hover {
color: #c0322b !important;
}
.city-space {
position: relative;
padding-right: 20px;
.city {
color: #ffffff;
line-height: 60px;
cursor: pointer;
}
}
}
.city-space {
position: relative;
padding-right: 20px;
.city {
color: #ffffff;
line-height: 60px;
cursor: pointer;
.city-view {
position: absolute;
left: calc(600px - 50vw);
right: 0;
top: 60px;
background: rgba(255, 255, 255, 0.9);
z-index: 99;
width: 100vw;
.city-item:hover {
color: #c0322b;
}
}
}
.city-view {
position: absolute;
left: calc(600px - 50vw);
right: 0;
top: 60px;
background: rgba(255, 255, 255, 0.9);
z-index: 99;
width: 100vw;
.city-item:hover {
.city-active {
color: #c0322b;
}
}
.city-active {
color: #c0322b;
}
::v-deep .el-dropdown__popper.el-popper.user-menu {
top: 43px !important;
border: none;
border-radius: 0;
box-shadow: 0 2px 8px 0 rgba(90, 0, 0, 0.1);
&::before {
content: '';
position: absolute;
background-color: #fff;
height: 9px;
left: -7px;
top: -9px;
width: 187px;
}
.el-popper__arrow {
display: none;
.el-dropdown__popper.el-popper.user-menu {
top: 43px !important;
border: none;
border-radius: 0;
box-shadow: 0 2px 8px 0 rgba(90, 0, 0, 0.1);
&::before {
content: '';
position: absolute;
background-color: #fff;
height: 9px;
left: -7px;
top: -9px;
width: 187px;
}
.el-popper__arrow {
display: none;
}
}
}
.home-page_header {
......
......@@ -36,6 +36,9 @@ import developIcon from '@/assets/images/title-icon__develop.png';
import landIcon from '@/assets/images/title-icon__land.png';
import policyIcon from '@/assets/images/title-icon__policy.png';
import carrierIcon from '@/assets/images/title-icon__carrier.png';
import aboutIcon from '@/assets/images/title-icon__about.png';
import contactIcon from '@/assets/images/title-icon__contact.png';
import userIcon from '@/assets/images/title-icon__user.png';
import { TitleIconType } from '@/types/enum.ts';
withDefaults(
......@@ -65,9 +68,9 @@ const titleIcon = computed(() => {
[TitleIconType.category]: categoryIcon,
[TitleIconType.policy]: policyIcon,
[TitleIconType.develop]: developIcon,
[TitleIconType.user]: developIcon,
[TitleIconType.about]: developIcon,
[TitleIconType.contact]: developIcon,
[TitleIconType.user]: userIcon,
[TitleIconType.about]: aboutIcon,
[TitleIconType.contact]: contactIcon,
};
const { iconType } = route.meta || {};
......
......@@ -15,6 +15,10 @@
:src="image?.url"
@click="handleClick(image?.href)"
/>
<div
v-if="image?.href"
class="vr-icon absolute left-1/2 top-1/2 z-20 -translate-x-1/2 -translate-y-1/2 cursor-pointer"
></div>
</SwiperSlide>
</Swiper>
</div>
......@@ -115,4 +119,19 @@ const handleClick = (href?: string) => {
background: linear-gradient(270deg, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0) 100%);
}
}
.vr-icon {
width: 100px;
height: 100px;
background: url('@/assets/images/vr-animation.png') no-repeat;
background-size: auto 100px;
animation: vr-ani 3.08333333s 0s steps(74) infinite normal;
}
@keyframes vr-ani {
from {
background-position: 0 0;
}
to {
background-position: 100% 0;
}
}
</style>
<!-- 联系人信息 -->
<template>
<div class="flex flex-col justify-between">
<div class="flex h-[100px] flex-none items-center justify-between bg-[#FAFAFC] px-10">
<div class="flex items-center space-x-4">
<div class="flex">
<div class="flex h-[100px] w-full items-center justify-between bg-[#FAFAFC] px-10">
<div class="flex items-center space-x-5">
<div class="flex items-center justify-center">
<div
class="flex h-[60px] w-[60px] items-center justify-center rounded bg-[#cccccc] font-yahei text-lg leading-5 text-white"
class="flex h-[60px] w-[60px] items-center justify-center rounded bg-[#cccccc] font-yahei text-2xl leading-5 text-white"
>
{{ noPerson ? '空' : personName?.[0] }}
</div>
</div>
<div>
<div class="text-center font-yahei text-lg font-semibold leading-5 text-[#1A1A1A]">
<div class="font-yahei text-lg font-semibold leading-5 text-[#1A1A1A]">
{{ personName || '暂无对接人' }}
</div>
<div class="mt-[5px] rounded-sm text-sm text-[#4F4F4F]">园区对接人</div>
......@@ -27,7 +27,7 @@
</div>
</div>
</div>
<div class="flex justify-end px-10">
<div class="ml-[60px] flex justify-end">
<div class="w-[68px]">
<div class="flex items-center justify-center">
<img src="@/assets/images/app-contact.png" class="h-[68px] w-[68px]" />
......
......@@ -2,11 +2,11 @@
<template>
<div v-if="detail" class="detail-main">
<CommonTitle :type-name="headerType" @search="searchToList"></CommonTitle>
<ElBreadcrumb class="ell mt-3" separator="/">
<ElBreadcrumb class="ell mt-5" separator="/">
<ElBreadcrumbItem
v-for="item of breadcrumbs"
:key="item.name"
class="!float-none !inline"
class="detail-breadcrumb-item !float-none !inline"
:to="item.to || undefined"
@click="item.searchParams ? searchToList(item.searchParams) : noop"
>
......@@ -69,10 +69,9 @@
</div>
</div>
</div>
<div class="mt-[68px] flex-1">
<div class="mt-[68px]">
<ContactInfo
:id="detail.id"
class="h-full"
:person-name="detail.contactPerson"
:detail-type="type"
></ContactInfo>
......@@ -235,7 +234,7 @@ const mainImageList = computed(() => {
</script>
<style lang="scss">
.detail-main {
.el-breadcrumb__item {
.detail-breadcrumb-item.el-breadcrumb__item {
.el-breadcrumb__inner {
font-size: 14px;
color: rgba(0, 0, 0, 0.45);
......
<!-- 星级开发区展示 -->
<template>
<div class="star-detail h-[600px]">
<div class="star-detail !mt-5 h-[600px]">
<div class="star-bg absolute inset-x-0 flex h-[600px] w-full items-center justify-center">
<div class="main-width">
<div class="flex">
......@@ -57,7 +57,7 @@
class="py-5"
>
<div
class="flex items-center space-x-[23px]"
class="flex items-center space-x-[45px]"
:class="{ 'space-x-9 overflow-x-auto pb-5': index === 1 }"
>
<StarInfoCell
......
......@@ -13,7 +13,7 @@
<div class="content-title font-yahei text-lg font-semibold leading-[30px] text-[#1A1A1A]">
{{ title }}
</div>
<div class="mt-3 overflow-hidden break-all text-sm leading-5">
<div class="mt-4 overflow-hidden break-all text-sm leading-5">
{{ content }}
</div>
</div>
......
......@@ -59,7 +59,7 @@
class="flex flex-none cursor-pointer items-center self-end"
@click="showDesc"
>
<div class="text-sm font-semibold leading-5 text-[#C0322B]">展开</div>
<div class="text-sm font-medium leading-5 text-[#C0322B]">展开</div>
<div class="ml-1 h-[5px] w-2">
<img src="@/assets/images/icon-arrow_down.png" />
</div>
......
<template>
<div v-if="item">
<div class="flex min-h-[156px]">
<div class="relative" @click="handleDetail">
<div class="relative text-[0px]" @click="handleDetail">
<CommonImage
class="h-[156px] w-[208px] cursor-pointer rounded-sm"
:src="item.imgUrl"
......@@ -9,10 +9,13 @@
/>
<div
v-if="item.isSuper"
class="absolute left-0 top-0 z-10 flex h-[26px] w-[94px] items-center justify-center rounded-br-sm rounded-tl-sm bg-[#C0322B] text-sm font-semibold text-white"
class="absolute left-0 top-0 z-10 flex h-[26px] w-[94px] items-center justify-center rounded-br-sm rounded-tl-sm bg-[#C0322B] text-sm font-medium text-white"
>
星级开发区
</div>
<div v-if="item.isVr" class="absolute bottom-2 left-2">
<img class="h-[45px] w-[45px] rounded-[50%]" src="@/assets/images/vr-icon.png" />
</div>
</div>
<div class="ml-4 max-w-[576px] py-2">
<div class="flex items-center">
......
<template>
<div class="flex">
<div class="media-left 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="" />
<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" />
</div>
</div>
<div
class="media-right relative flex w-[576px] flex-col justify-between pt-2 text-sm leading-[20px] text-[#4d4d4d]"
......
<template>
<div class="flex">
<div class="media-left 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="" />
<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" />
</div>
</div>
<div
class="media-right relative flex w-[576px] flex-col justify-between pt-2 text-sm leading-[20px] text-[#4d4d4d]"
......
......@@ -56,4 +56,6 @@ export interface CarrierListItem {
regionCode: string;
/** */
regionName: string;
/** 是否存在vr */
isVr: number;
}
......@@ -62,4 +62,6 @@ export interface DevelopZoneItem {
isSuper: number;
/** 星级开发区标识: 1-是 */
isSuperName: string;
/** 是否存在vr */
isVr: number;
}
......@@ -78,4 +78,6 @@ export interface IndustrialParkItem {
/** 认证状态(1-未认证;2-认证中;3-已认证;4-未通过;5-待认证;9-已作废) */
statusName: string;
type: string;
/** 是否存在vr */
isVr: number;
}
......@@ -56,4 +56,6 @@ export interface LandListItem {
regionName: string;
/** */
typeName: string;
/** 是否存在vr */
isVr: number;
}
export const heightLight = (str: string, key: string) => {
const reg = new RegExp(key, 'ig');
return str.replace(reg, (val) => {
return `<span style="color: #C0322B;line-height: 25px;background: rgba(192,50,43,0.06);display: inline-block;">${val}</span>`;
return `<span style="color: #C0322B;line-height: 25px;background: rgba(255,240,103,0.5);display: inline-block;">${val}</span>`;
});
};
<!-- 关于立业云 -->
<template>
<div>
<div class="mx-auto w-[1200px]">
<div class="main-width mx-auto mt-5">
<CommonTitle type-name="关于我们" :show-search="false"></CommonTitle>
</div>
<div class="mx-auto mt-5 w-[1200px]">
<img class="h-[200px] w-[1200px]" src="@/assets/images/banner-aboutUs.png" alt="" />
</div>
<!-- 关于我们 -->
......
<!-- 联系我们 -->
<template>
<div>
<div class="mx-auto w-[1200px]">
<div class="main-width mx-auto mt-5">
<CommonTitle type-name="联系我们" :show-search="false"></CommonTitle>
</div>
<div class="mx-auto mt-5 w-[1200px]">
<img class="h-[200px] w-[1200px]" src="@/assets/images/banner-contactUs.png" alt="" />
</div>
<!-- 联系我们 -->
......
......@@ -59,11 +59,7 @@
<DetailInfo :infos="industryFund"></DetailInfo>
</DetailInfoCell>
<DetailInfoCell title="周边配套" title-center>
<MapView
:lat="detail.latitude"
:lng="detail.longitude"
:container-class="isStar ? '!h-[400px]' : undefined"
></MapView>
<MapView :lat="detail.latitude" :lng="detail.longitude"></MapView>
</DetailInfoCell>
<DetailInfoCell
v-if="industrials.length"
......
......@@ -86,6 +86,7 @@
:key="item"
class="flex h-[30px] items-center rounded-sm px-[14px] font-yahei text-sm leading-[22px] text-[#4D4D4D] outline outline-1 outline-[#E6E6E6]"
>
<img class="mr-1 h-[10px] w-[10px]" src="@/assets/images/icon-green-true.png" />
{{ item }}
</div>
</div>
......
......@@ -9,6 +9,7 @@
<ElInput
v-model="searchKey"
class="w-50 m-2"
clearable
placeholder="请输入关键词检索"
@keyup.enter="keyWords = searchKey"
/>
......@@ -25,6 +26,7 @@
@click="handleDirectionClick(item)"
>
<span
class="text-[#333333]"
:class="{ 'active-direction': currentDirection === item.value }"
v-html="heightLight(item.name, keyWords)"
></span>
......@@ -240,6 +242,10 @@ watch(
},
{ immediate: true },
);
watch(searchKey, (val) => {
keyWords.value = val;
});
</script>
<style lang="scss" scoped>
.container-left p {
......
......@@ -5,6 +5,7 @@
<ElBreadcrumbItem
v-for="item of breadcrumbs"
:key="item.name"
class="detail-breadcrumb-item"
:to="item.to || undefined"
@click="noop"
>
......@@ -87,7 +88,7 @@ const breadcrumbs = computed(() => {
</script>
<style lang="scss">
.detail-main {
.el-breadcrumb__item {
.detail-breadcrumb-item.el-breadcrumb__item {
.el-breadcrumb__inner {
font-size: 14px;
color: rgba(0, 0, 0, 0.45);
......
......@@ -25,7 +25,7 @@ export default defineConfig({
Components({
resolvers: [ElementPlusResolver()],
}),
// legacy(),
legacy(),
splitVendorChunkPlugin(),
],
resolve: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment