提交 a7184bf0 authored 作者: 刘旭's avatar 刘旭

跟新页面代码

上级 4a3ee88f
......@@ -37,6 +37,7 @@ module.exports = {
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': 'off',
'no-undef': 'off',
'no-console': 'off'
'no-console': 'off',
'vue/no-mutating-props': 'off'
}
}
......@@ -4,7 +4,7 @@
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>vue3Web框架</title>
<title>南山就业帮</title>
<style>
body,
html {
......
import { MenuListParmes } from './interface'
export const menuList: MenuListParmes[] = [
{ id: 0, name: '首页', link: '/home' },
{ id: 1, name: '公共就业服务政策', link: '/policy' },
{ id: 2, name: '招聘管理', link: '/recruitmentManagement' },
{ id: 3, name: '专题招聘', link: '/specialRecruitment' },
{ id: 4, name: '街道办专题', link: '/streetOfficeSpecialTopic' },
{ id: 5, name: '技能培训', link: '/skillTraining' },
{ id: 6, name: '灵活就业', link: '/flexibleEmploym' },
{ id: 7, name: '港澳青年就业', link: '/macaoYouthEmployment' },
{ id: 8, name: '就业援助', link: '/employmentAssistance' },
{ id: 9, name: '创新创业', link: '/innovationEntrepreneurship' },
{ id: 10, name: '高校学生', link: '/collegeStudents' },
{ id: 11, name: '退役军人', link: '/veterans' },
{ id: 12, name: '家政服务', link: '/housekeepingServices' },
{ id: 13, name: '残疾人就业', link: '/disabilitiesEmployment' },
{ id: 14, name: '人力资源服务', link: '/humanResourcesServices' },
{ id: 15, name: '人力实训基地', link: '/trainingBase' },
{ id: 16, name: '对口帮扶', link: '/counterpartAssistance' }
]
<template>
<div class="footer-container">
<div class="footer-top">
<dl>
<dt>企业服务</dt>
<dd>职位搜索</dd>
<dd>人才搜索</dd>
</dl>
<dl>
<dt>使用与帮助</dt>
<dd>用户协议</dd>
<dd>使用帮助</dd>
</dl>
<dl>
<dt>关于我们</dt>
<dd>深圳市西部人力资源发展有限公司</dd>
<dd>深圳市南山区桃园西路287号南山人才大厦四楼</dd>
<dd>联系电话:0755-86218514</dd>
</dl>
<div style="display: flex">
<dl>
<dt>企业服务</dt>
<dd>职位搜索</dd>
<dd>人才搜索</dd>
</dl>
<dl>
<dt>使用与帮助</dt>
<dd>用户协议</dd>
<dd>使用帮助</dd>
</dl>
<dl>
<dt>关于我们</dt>
<dd>深圳市西部人力资源发展有限公司</dd>
<dd>深圳市南山区桃园西路287号南山人才大厦四楼</dd>
<dd>联系电话:0755-86218514</dd>
</dl>
</div>
<div class="qrcode">
<img height="110" width="110" src="@/assets/XBRLPX.png" />
<p>手机版</p>
......@@ -45,20 +47,17 @@
<style lang="scss" scoped>
.footer-container {
width: 1200px;
width: 1316px;
height: 100%;
margin: 0 auto;
box-sizing: border-box;
.footer-top {
position: relative;
display: flex;
justify-content: space-between;
padding: 35px 0 20px 0;
border-bottom: 1px solid #f2f2f2;
box-sizing: border-box;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: flex-start;
border-bottom: 1px solid rgba(255, 255, 255, 0.6);
dl {
margin-right: 170px;
......@@ -70,6 +69,7 @@
dt {
margin-bottom: 40px;
color: #ffffff;
}
dd {
......@@ -77,18 +77,23 @@
font-weight: 400;
font-size: 14px;
line-height: 14px;
font-family: Source Han Sans CN;
color: #999;
color: rgba(255, 255, 255, 0.6);
cursor: pointer;
}
}
.qrcode {
position: absolute;
top: 35px;
right: 0;
height: 24px;
font-size: 16px;
font-weight: 500;
color: #ffffff;
display: flex;
align-items: center;
flex-direction: column;
p {
width: 100%;
text-align: center;
margin-top: 0;
margin-top: 16px;
}
}
}
......@@ -101,14 +106,13 @@
font-weight: 400;
font-size: 14px;
line-height: 14px;
font-family: Source Han Sans CN;
color: #999;
color: rgba(255, 255, 255, 0.6);
span {
margin-right: 48px;
margin-right: 42px;
a {
color: rgb(153, 153, 153);
color: rgba(255, 255, 255, 0.6);
text-decoration: none;
}
}
......
......@@ -2,44 +2,73 @@
<div class="headers">
<div class="headers-top">
<div class="content">
<el-link :underline="false">登录</el-link>
<text class="slash"> / </text>
<el-link :underline="false">注册</el-link>
<div style="display: flex; align-items: center; margin-right: 32px; cursor: pointer">
<img src="@/assets/img/icon-shou.png" />
网页首页
</div>
<div style="display: flex; align-items: center; cursor: pointer">
<img src="@/assets/img/icon-yi.png" />
移动端
</div>
</div>
</div>
<div class="headers-bottom">
<div class="content">
<h1>西部人力培训中心</h1>
<el-link
v-for="(item, index) in tabsList"
:key="index"
class="item"
:underline="false"
:href="item.link"
:type="route.fullPath == item.link ? 'primary' : ''"
target=""
>{{ item.name }}</el-link
>
<el-link class="item item-long" :underline="false" href="" target=""
>高校毕业生就业服务专区</el-link
>
<img src="../assets/img/logo.jpg" width="150" height="60" />
<div class="menu-list">
<template v-for="item in menuList" :key="item.link">
<router-link :to="{ path: item.link }" @click="handleClick(item)">
<el-link
class="item"
:underline="false"
:type="activeName === item.link ? 'primary' : ''"
target=""
>{{ item.name }}</el-link
>
</router-link>
<el-link
v-if="item.id === 7"
class="item"
style=""
:underline="false"
type="primary"
target=""
@click="login"
>登录/注册</el-link
>
</template>
</div>
<div class="info-name">欢迎货拉拉科技</div>
</div>
</div>
</div>
<loginVue v-model:show="show" />
</template>
<script lang="ts" setup>
import { menuList } from './config'
import loginVue from '@/views/login/index.vue'
const route = useRoute()
const tabsList = [
{ name: '首页', link: '/home' },
{ name: '专题招聘', link: '/home1' },
{ name: '灵活就业', link: '' },
{ name: '在线培训', link: '' },
{ name: '军人专区', link: '' },
{ name: '港澳就业', link: '' },
{ name: '校园招聘', link: '' }
]
const activeName = ref('')
const show = ref(false)
watch(
() => route.fullPath,
(newPath: any) => {
activeName.value = newPath.split('?')[0]
},
{ immediate: true }
)
const login = () => {
show.value = true
}
const handleClick = (item: any) => {
// console.log(item)
}
</script>
<style lang="scss" scoped>
......@@ -52,18 +81,19 @@ const tabsList = [
.headers-top {
width: 100%;
background-color: #f0f0f0;
height: 30px;
background-color: #022756;
display: flex;
justify-content: center;
text-align: end;
text-align: start;
.content {
min-width: 1200px;
line-height: 30px;
.slash {
color: #606266;
}
min-width: 1316px;
height: 32px;
display: flex;
align-items: center;
font-size: 14px;
font-weight: 400;
color: rgba(255, 255, 255, 0.8);
}
}
......@@ -74,20 +104,25 @@ const tabsList = [
background-color: #ffffff;
.content {
height: 60px;
// width: 1200px;
width: 1316px;
display: flex;
align-items: center;
.item {
width: 100px;
height: 100%;
line-height: 60px;
text-align: center;
font-weight: 400;
font-size: 16px;
font-weight: 400;
font-size: 14px;
img {
margin: 10px 16px 10px 0;
}
.menu-list {
.item {
font-weight: 400;
font-size: 14px;
padding: 10px 24px 9px;
}
}
.item-long {
width: 180px;
.info-name {
white-space: nowrap;
color: var(--el-color-primary);
cursor: pointer;
}
}
}
......
......@@ -23,15 +23,13 @@ import Footer from './footer.vue'
<style lang="scss" scoped>
.layout-container {
background-image: url(https://img2.baidu.com/it/u=622993978,1977535812&fm=253&fmt=auto&app=120&f=JPEG?w=1280&h=800);
background-size: cover;
background-color: #f4f6f9;
background: linear-gradient(180deg, #f2f8ff 0%, #f4f4f4 100%);
position: relative;
width: 100%;
min-width: 1200px;
min-width: 1316px;
.el-header {
height: 80px;
height: 112px;
padding: 0;
}
.el-main {
......@@ -41,7 +39,7 @@ import Footer from './footer.vue'
.footer {
padding: 0;
width: 100%;
background-color: #fff;
background-color: #022756;
}
}
</style>
export interface MenuListParmes {
id: number
name: string
link: string
}
差异被折叠。
export const imgUrl =
'https://x0.ifengimg.com/res/2021/D19180EA4230E6F277709FE11A4FE1EA4A5910A1_size646_w2048_h1365.jpeg'
export const imgUrl1 =
'https://img1.baidu.com/it/u=3125581720,366739733&fm=253&fmt=auto&app=138&f=JPEG?w=1080&h=460'
<template>
<div class="content-container">
<div v-for="(item, index) in list" :key="index" class="content-item">
<img :src="item.url" height="238" />
<div class="detail">{{ item.name }}</div>
</div>
</div>
</template>
<!-- @/assets/img/Frame690(2).png -->
<script setup lang="ts">
defineProps({
list: {
type: Array,
default: () => []
} as any
})
</script>
<style lang="scss" scoped>
.content-container {
display: flex;
flex-wrap: wrap;
margin: -12px;
.content-item {
flex: 0 0 calc(33.333% - 24px);
margin: 12px;
box-sizing: border-box;
display: flex;
flex-direction: column;
img {
width: 100%;
min-height: 238px;
border-radius: 12px 12px 0px 0px;
display: block; /* 将图片设置为块级元素 */
max-width: 100%; /* 保证图片在其父元素内部自适应大小 */
height: auto; /* 保持图片的宽高比 */
}
.detail {
height: 42px;
line-height: 42px;
background: linear-gradient(90deg, #177cfa 0%, #177cfa 100%);
border-radius: 0px 0px 12px 12px;
color: #ffffff;
font-size: 20px;
font-weight: 400;
color: #ffffff;
}
}
}
</style>
<template>
<div class="policy flx-direction-between">
<div class="policy-top">{{ title }}</div>
<div class="policy-content card">
<div v-for="(item, index) in list" :key="index" class="policy-item">
<span class="poliy-item-order" :class="index > 2 ? 'poliy-item-postorder' : ''">{{
index + 1
}}</span>
<el-link>{{ item.detail }}</el-link>
<img v-show="index < 3" src="@/assets/img/icon-new.png" width="28" height="15" alt="" />
</div>
<div v-show="isMore" class="policy-footer">
查看更多<el-icon><DArrowRight /></el-icon>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { DArrowRight } from '@element-plus/icons-vue'
defineProps({
title: {
type: String,
default: ''
},
list: {
type: Array,
default: () => []
} as any,
isMore: {
type: Boolean,
default: false
}
})
</script>
<style lang="scss" scoped>
.policy {
width: 645px;
.policy-top {
width: 100%;
height: 42px;
line-height: 42px;
background: #1887fb;
border-radius: 8px 8px 0px 0px;
font-size: 24px;
color: #ffffff;
}
.policy-content {
width: 100%;
display: flex;
flex-direction: column;
align-items: start;
padding: 0 23px;
box-sizing: border-box;
padding-bottom: 16px;
.policy-item {
display: flex;
align-items: center;
font-size: 14px;
font-weight: 400;
color: #222222;
margin-top: 16px;
.poliy-item-order {
display: inline-block;
width: 14px;
height: 14px;
line-height: 14px;
background: linear-gradient(90deg, #177cfa 0%, #177cfa 100%);
border-radius: 2px 2px 2px 2px;
font-size: 12px;
font-family: Roboto, Roboto;
font-weight: 400;
color: #ffffff;
margin-right: 4px;
}
.poliy-item-postorder {
background: #f8f8f8;
color: #999999;
}
:deep(.el-link__inner) {
display: inline-block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 554px;
}
img {
margin-left: 4px;
}
}
.policy-footer {
width: 100%;
margin-top: 16px;
display: flex;
align-items: center;
justify-content: flex-end;
font-size: 14px;
font-weight: 400;
color: #05a8ff;
cursor: pointer;
}
}
}
</style>
declare module '*.svg'
declare module '*.png'
declare module '*.jpg'
declare module '*.jpeg'
declare module '*.gif'
declare module '*.bmp'
declare module '*.tiff'
......@@ -4,6 +4,7 @@ import App from './App.vue'
import router from './routers'
import store from './stores'
import '@/styles/reset.scss'
import '@/styles/common.scss'
const app = createApp(App)
......
......@@ -12,16 +12,68 @@ const routes = [
component: () => import('@/views/home/index.vue')
},
{
path: '/home1',
component: () => import('@/views/home/index1.vue')
path: '/policy',
component: () => import('@/views/policy/index.vue')
},
{
path: '/job',
component: () => import('@/views/job/index.vue')
path: '/recruitmentManagement',
component: () => import('@/views/recruitmentManagement/index.vue')
},
{
path: '/details',
component: () => import('@/views/home/details.vue')
path: '/specialRecruitment',
component: () => import('@/views/specialRecruitment/index.vue')
},
{
path: '/streetOfficeSpecialTopic',
component: () => import('@/views/streetOfficeSpecialTopic/index.vue')
},
{
path: '/skillTraining',
component: () => import('@/views/skillTraining/index.vue')
},
{
path: '/flexibleEmploym',
component: () => import('@/views/flexibleEmploym/index.vue')
},
{
path: '/macaoYouthEmployment',
component: () => import('@/views/macaoYouthEmployment/index.vue')
},
{
path: '/employmentAssistance',
component: () => import('@/views/employmentAssistance/index.vue')
},
{
path: '/innovationEntrepreneurship',
component: () => import('@/views/innovationEntrepreneurship/index.vue')
},
{
path: '/collegeStudents',
component: () => import('@/views/collegeStudents/index.vue')
},
{
path: '/veterans',
component: () => import('@/views/veterans/index.vue')
},
{
path: '/housekeepingServices',
component: () => import('@/views/housekeepingServices/index.vue')
},
{
path: '/disabilitiesEmployment',
component: () => import('../views/disabilitiesEmployment/index.vue')
},
{
path: '/humanResourcesServices',
component: () => import('@/views/humanResourcesServices/index.vue')
},
{
path: '/trainingBase',
component: () => import('@/views/trainingBase/index.vue')
},
{
path: '/counterpartAssistance',
component: () => import('@/views/counterpartAssistance/index.vue')
}
]
}
......@@ -32,6 +84,19 @@ const routes = [
//component: () => import(''),
//}
]
// {
// path: '/home1',
// component: () => import('@/views/home/index1.vue')
// },
// {
// path: '/job',
// component: () => import('@/views/job/index.vue')
// },
// {
// path: '/details',
// component: () => import('@/views/home/details.vue')
// }
// 路由
const router = createRouter({
history: createWebHistory(),
......
.title {
font-size: 32px;
font-weight: 500;
color: #222222;
}
/* flex */
.flx-center {
display: flex;
align-items: center;
justify-content: center;
}
.flx-justify-between {
display: flex;
align-items: center;
justify-content: space-between;
}
.flx-align-center {
display: flex;
align-items: center;
}
.flx-direction-column {
display: flex;
flex-direction: column;
}
.flx-direction-between {
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
}
.card {
box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.05);
border-radius: 8px;
min-height: 50px;
background: #ffffff;
}
.triangle {
width: 0;
height: 0;
border-left: 14px solid transparent;
border-right: 14px solid transparent;
border-bottom: 24px solid #68d3ff;
}
.nowrap-ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
......@@ -88,6 +88,9 @@ video {
font-size: 100%;
vertical-align: baseline;
border: 0;
font-family:
Source Han Sans CN,
Source Han Sans CN;
}
/* HTML5 display-role reset for older browsers */
......
<template>
<div>高校学生</div>
</template>
<script setup lang="ts"></script>
<style scoped></style>
<template>
<div>对口帮扶</div>
</template>
<script setup lang="ts"></script>
<style scoped></style>
<template>
<div>为什么,我不理解</div>
</template>
<script setup lang="ts"></script>
<style scoped></style>
.skill-container {
width: 100%;
.container {
width: 1316px;
text-align: center;
img {
width: 100%;
margin-top: 24px;
border-radius: 12px;
}
.train-list {
display: flex;
margin: 24px 0;
border: 1px solid #177cfa;
border-radius: 8px;
.train-item {
flex: 0 0 20%;
height: 58px;
line-height: 58px;
border-right: 1px solid #177cfa;
font-size: 24px;
font-weight: 500;
color: #177cfa;
&:nth-child(5) {
border-right: 0;
}
}
}
}
}
<template>
<div class="skill-container flx-center">
<div class="container">
<img :src="imgUrl1" height="560" />
<div style="margin: 24px 0 360px">
<contentBlock :list="trainDetailList" />
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { imgUrl1 } from '@/assets/imgUrl'
import Frame690 from '@/assets/img/Frame690(2).png'
import contentBlock from '@/components/contentBlock.vue'
const trainDetailList = [
{ url: Frame690, name: '失业登记(含户籍、异地务工人员)' },
{ url: Frame690, name: '就业困难人员和零就业家庭人员认定' },
{ url: Frame690, name: '就业困难人员灵活就业社保补贴申领' },
{ url: Frame690, name: '用人单位招用就业困难人员申请补贴和奖励' },
{ url: Frame690, name: '吸纳脱贫人口就业补贴' },
{ url: Frame690, name: '吸纳脱贫人口社保和岗位补贴' },
{ url: Frame690, name: '吸纳退役军人一次性就业补贴' }
]
</script>
<style lang="scss" scoped>
@import './index.scss';
</style>
<template>
<div>灵活就业</div>
</template>
<script setup lang="ts"></script>
<style scoped></style>
......@@ -73,7 +73,7 @@ const show = ref(false)
.content {
padding-top: 40px;
width: 1200px;
width: 1316px;
display: flex;
justify-content: space-between;
.details-header-top {
......@@ -140,7 +140,7 @@ const show = ref(false)
display: flex;
justify-content: center;
.content {
width: 1200px;
width: 1316px;
.title {
font-size: 18px;
margin-bottom: 16px;
......
.home-container {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
.banner {
text-align: center;
color: #ffffff;
top: 25% !important;
div:nth-child(1) {
font-size: 28px;
font-weight: 500;
color: #ffffff;
margin-bottom: 16px;
}
div:nth-child(2) {
width: 982px;
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 20px;
}
}
.container {
width: 1316px;
.home-tp {
margin: 48px 0 24px;
text-align: center;
.policy-bottom {
margin-top: 24px;
}
.recruit {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-top: 24px;
.recruit-item {
flex-basis: calc(25% - 7.5px); /* 让每个盒子占据四分之一的宽度,并减去间距 */
margin-bottom: 15px; /* 设置下方的间距 */
&.recruit-item:nth-child(4n) {
margin-right: 0; /* 清除第4个盒子的右侧间距 */
}
img {
border-radius: 12px 12px 0px 0px;
display: block; /* 将图片设置为块级元素 */
max-width: 100%; /* 保证图片在其父元素内部自适应大小 */
height: auto; /* 保持图片的宽高比 */
}
.recruit-item-detail {
width: 318px;
height: 50px;
background: #ffffff;
border-radius: 0px 0px 12px 12px;
color: #177cfa;
text-align: center;
font-size: 24px;
font-weight: 500;
line-height: 50px;
}
}
}
}
.employment-training {
width: 645px;
text-align: center;
.employment {
margin-top: 24px;
box-sizing: border-box;
.employment-item {
height: 70px;
background: #fffefe;
border-radius: 12px;
border: 1px solid #177cfa;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 26px;
margin-bottom: 15px;
}
}
.train {
margin-top: 24px;
font-size: 24px;
font-weight: 500;
color: #ffffff;
box-sizing: border-box;
// img {
// display: block; /* 将图片设置为块级元素 */
// max-width: 100%; /* 保证图片在其父元素内部自适应大小 */
// height: auto; /* 保持图片的宽高比 */
// height: 100%;
// }
.train-item {
height: 100px;
height: 100px;
background: #8ec4f3;
border-radius: 12px;
}
}
}
.scene {
display: flex;
flex-wrap: wrap;
margin: -5px;
margin-top: 24px;
.scene-item {
flex: 0 0 calc(16.666% - 10px); /* 让每个盒子占据六分之一的宽度,并且减去间距 */
margin: 5px; /* 设置为盒子之间的间隔 */
box-sizing: border-box; /* 让盒子的边框和填充算入盒子的总宽度 */
padding: 13px 63px;
background: #ffffff;
border-radius: 12px;
border: 1px solid rgba(23, 124, 250, 1);
display: flex;
flex-direction: column;
align-items: center;
div {
height: 50px;
font-size: 20px;
font-weight: 400;
line-height: 50px;
color: #177cfa;
}
&:nth-child(6n) {
margin-right: 0; /* 清除每行最后一个盒子的右侧间距 */
}
}
}
}
.guarantee {
position: relative;
margin-top: 48px;
.guarantee-content {
width: 1316px;
text-align: center;
}
.guarantee-detail {
display: flex;
flex-direction: column;
align-items: start;
justify-content: flex-start;
p {
font-size: 14px;
font-weight: 400;
color: #333333;
margin-bottom: 16px;
text-align: start;
&:nth-child(1) {
margin-top: 36px;
margin-bottom: 24px;
font-size: 17px;
font-weight: 500;
color: #222222;
}
}
}
}
.img-ct {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
差异被折叠。
......@@ -149,12 +149,12 @@ init()
align-items: center;
box-sizing: border-box;
.top {
width: 1200px;
width: 1316px;
border-radius: 10px;
margin: 30px;
}
.content {
width: 1200px;
width: 1316px;
// height: 410px;
display: flex;
margin-bottom: 40px;
......@@ -222,7 +222,7 @@ init()
}
}
.bottom {
width: 1200px;
width: 1316px;
margin-bottom: 20px;
.job-item {
// :deep(.el-card__header) {
......
.skill-container {
width: 100%;
.container {
width: 1316px;
text-align: center;
img {
width: 100%;
margin-top: 24px;
border-radius: 12px;
}
.train-list {
display: flex;
margin: 24px 0;
border: 1px solid #177cfa;
border-radius: 8px;
.train-item {
flex: 0 0 20%;
height: 58px;
line-height: 58px;
border-right: 1px solid #177cfa;
font-size: 24px;
font-weight: 500;
color: #177cfa;
&:nth-child(5) {
border-right: 0;
}
}
}
}
}
<template>
<div class="skill-container flx-center">
<div class="container">
<img :src="imgUrl1" height="560" />
<div style="margin: 24px 0 360px">
<contentBlock :list="trainDetailList" />
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { imgUrl1 } from '@/assets/imgUrl'
import Frame690 from '@/assets/img/Frame690(2).png'
import contentBlock from '@/components/contentBlock.vue'
const trainDetailList = [
{ url: Frame690, name: '家政服务企业商业保险补贴' },
{ url: Frame690, name: '员工制家政服务企业备案' },
{ url: Frame690, name: '员工制家政服务企业社保补贴' },
{ url: Frame690, name: '员工制家政服务企业吸纳就业补贴' }
]
</script>
<style lang="scss" scoped>
@import './index.scss';
</style>
<template>
<div>人力资源服务</div>
</template>
<script setup lang="ts"></script>
<style scoped></style>
.skill-container {
width: 100%;
.container {
width: 1316px;
text-align: center;
img {
width: 100%;
margin-top: 24px;
border-radius: 12px;
}
.train-list {
display: flex;
margin: 24px 0;
border: 1px solid #177cfa;
border-radius: 8px;
.train-item {
flex: 0 0 20%;
height: 58px;
line-height: 58px;
border-right: 1px solid #177cfa;
font-size: 24px;
font-weight: 500;
color: #177cfa;
&:nth-child(5) {
border-right: 0;
}
}
}
}
}
<template>
<div class="skill-container flx-center">
<div class="container">
<img :src="imgUrl1" height="560" />
<div style="margin: 24px 0 360px">
<contentBlock :list="trainDetailList" />
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { imgUrl1 } from '@/assets/imgUrl'
import Frame690 from '@/assets/img/Frame690(2).png'
import contentBlock from '@/components/contentBlock.vue'
const trainDetailList = [
{ url: Frame690, name: '自主创业人员身份核实' },
{ url: Frame690, name: '创业社保补贴' },
{ url: Frame690, name: '初创企业补贴 (一次性创业资助)' },
{ url: Frame690, name: '创业场租补贴 (创业租金补贴)' },
{ url: Frame690, name: '创业孵化补贴' }
]
</script>
<style lang="scss" scoped>
@import './index.scss';
</style>
......@@ -39,7 +39,7 @@
</div>
</div>
</el-card>
<el-card shadow="never" style="width: 1200px; margin: 20px 0; border-radius: 8px">
<el-card shadow="never" style="width: 1316px; margin: 20px 0; border-radius: 8px">
<el-link type="primary" :underline="false">综合排序</el-link>
</el-card>
</div>
......@@ -116,7 +116,7 @@ init()
align-items: center;
.screen-group {
width: 1200px;
width: 1316px;
border-radius: 8px;
.screen-list {
......
<template>
<el-dialog
v-model="props.show"
title=""
width="720"
style="border-radius: 24px"
:before-close="handleClose"
>
<div class="login-dialog">
<div class="login-top">
<div class="info">个人用户</div>
<div class="switch-info">切换为企业用户>></div>
</div>
<el-form
ref="formRef"
:model="state.loginForm"
:rules="state.loginRules"
label-width="0"
class="demo-dynamic"
>
<el-form-item label="" prop="Phone">
<el-input v-model="state.loginForm.Phone" size="large" placeholder="请输入手机号">
<template #prefix>
<img src="../../assets/img/Phone.png" alt="" />
</template>
</el-input>
</el-form-item>
<el-form-item label="" prop="Code">
<el-input v-model="state.loginForm.Code" size="large" placeholder="请输入验证码">
<template #prefix>
<img src="../../assets/img/pwd.png" alt="" />
</template>
<template #suffix>
<el-button type="primary" link :disabled="state.disabled">获取验证码</el-button>
</template>
</el-input>
</el-form-item>
</el-form>
<el-button type="primary" style="width: 100%; margin-top: 46px" @click="onConfirm"
>登录/注册</el-button
>
</div>
<div class="agree-with">
<el-checkbox v-model="state.agreeWith" label="" size="large" text-color="#ffffff">
<template #default>
<div style="color: #999999">
同意南山就业帮
<span style="color: #409eff" @click.prevent="open">《南山就业帮用户服务协议》</span>
<span style="color: #409eff" @click.prevent="open">《个人信息保护政策》</span>
</div>
</template>
</el-checkbox>
</div>
</el-dialog>
</template>
<script setup lang="ts">
const props = defineProps({
show: {
type: Boolean,
default: false
}
})
const emits = defineEmits(['update:show'])
const formRef = ref()
const state = reactive({
loginForm: {
Phone: '',
Code: ''
},
loginRules: {
Phone: [
{ required: true, message: '请输入手机号', trigger: 'blur' },
{
pattern: /^1[3|4|5|6|7|8][0-9]\d{8}$/,
message: '手机号码格式不正确',
trigger: 'blur'
}
],
Code: [{ required: true, message: '请输入验证码', trigger: 'blur' }]
},
disabled: false,
agreeWith: false
})
const onConfirm = () => {
formRef.value?.validate((valid: boolean, fields: any) => {
if (valid) {
console.log(state.loginForm)
console.log('submit!')
} else {
console.log('error submit!', fields)
}
})
}
const open = () => {
console.log('open')
}
const handleClose = () => {
formRef.value?.resetFields()
emits('update:show', false)
}
</script>
<style lang="scss" scoped>
.login-dialog {
padding: 0 130px;
.login-top {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 64px;
.info {
font-size: 32px;
font-weight: 500;
color: #000000;
}
.switch-info {
color: #265ea4;
cursor: pointer;
}
}
}
.agree-with {
display: flex;
align-items: center;
margin-top: 24px;
margin-bottom: 50px;
padding-left: 130px;
}
</style>
.skill-container {
width: 100%;
.container {
width: 1316px;
text-align: center;
img {
width: 100%;
margin-top: 24px;
border-radius: 12px;
}
.train-list {
display: flex;
margin: 24px 0;
border: 1px solid #177cfa;
border-radius: 8px;
.train-item {
flex: 0 0 20%;
height: 58px;
line-height: 58px;
border-right: 1px solid #177cfa;
font-size: 24px;
font-weight: 500;
color: #177cfa;
&:nth-child(5) {
border-right: 0;
}
}
}
}
}
<template>
<div class="skill-container flx-center">
<div class="container">
<img :src="imgUrl1" height="560" />
<div style="margin: 24px 0 360px">
<contentBlock :list="trainDetailList" />
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { imgUrl1 } from '@/assets/imgUrl'
import Frame690 from '@/assets/img/Frame690(2).png'
import contentBlock from '@/components/contentBlock.vue'
const trainDetailList = [
{ url: Frame690, name: '就业见习补贴' },
{ url: Frame690, name: '港澳台青年实习补助' },
{ url: Frame690, name: '大湾区青年就业计划生活补助' },
{ url: Frame690, name: '求职创业补贴' },
{ url: Frame690, name: '高校毕业生职业技能培训补贴' },
{ url: Frame690, name: '高校毕业生灵活就业社保补贴' },
{ url: Frame690, name: '小微企业社保补贴' },
{ url: Frame690, name: '职业技能鉴定 (评价)补贴' },
{ url: Frame690, name: '市外职业院校学生来深顶岗实习补贴' }
]
</script>
<style lang="scss" scoped>
@import './index.scss';
</style>
<template>
<div class="policy-container flx-center">
<div class="container">
<img :src="imgUrl" height="560" style="width: 100%" />
<el-input v-model="searchValue" placeholder="搜索关键词" @change="search">
<template #suffix>
<el-icon size="24" style="cursor: pointer" @click="search"><Search /></el-icon>
</template>
</el-input>
<div class="flx-justify-between" style="margin-bottom: 64px">
<policy title="南山就业政策公告" :list="policyList" is-more />
<policy title="南山就业活动" :list="policyList" is-more />
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { imgUrl } from '@/assets/imgUrl'
import { Search } from '@element-plus/icons-vue'
import policy from '@/components/policy.vue'
const policyList = [
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '深圳市创业带动就业补贴办事指南' },
{ detail: '深圳市创业带动就业补贴办事指南' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' },
{ detail: '关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知' }
]
const searchValue = ref()
const search = () => {
console.log(searchValue.value)
}
</script>
<style lang="scss" scoped>
.policy-container {
width: 100%;
.container {
width: 1316px;
text-align: center;
img {
border-radius: 12px;
margin: 17px 0 19px;
}
.el-input {
width: 869px;
height: 62px;
margin-bottom: 24px;
:deep(.el-input__wrapper) {
border-radius: 29px;
padding: 0 45px;
}
}
}
}
</style>
<template>
<div class="main-container">
<search />
<div class="banner-group">
<div class="job-menu">
<el-menu class="el-menu-vertical-demo">
<el-menu-item
v-for="item in menuList"
:key="item.index"
@mouseover="mouseover(item)"
@mouseout="mouseout(item)"
>
<template #title>
<div class="menu-item-title">
<span>{{ item.name }}</span>
<el-icon><i-ep-ArrowRight /></el-icon>
</div>
</template>
</el-menu-item>
</el-menu>
<div class="job-menu-sub" @mouseover="mouseover" @mouseout="mouseout">
<el-scrollbar height="400px">
<el-descriptions v-for="item in 10" :key="item" :column="4">
<template #title>
<div style="font-size: 14px; font-weight: 400">销售</div>
</template>
<el-descriptions-item v-for="item1 in 4" :key="item1">
<template #default>
<el-link :underline="false" href="/job">销售业务</el-link>
</template>
</el-descriptions-item>
</el-descriptions>
</el-scrollbar>
</div>
</div>
<div class="banner-main">
<el-carousel height="410px">
<el-carousel-item v-for="item in 4" :key="item">
<el-image
style="width: 100%; height: 100%"
src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"
/>
</el-carousel-item>
</el-carousel>
</div>
<div class="home-login">
<div class="login">
<el-avatar
:size="60"
:icon="UserFilled"
src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"
/>
<text>Hi!欢迎登录!</text>
<div class="login-btn">
<el-button type="primary">登录</el-button>
<el-button>注册</el-button>
</div>
</div>
<div class="headlines">
<div class="news-group">
<h2>政策公告</h2>
<text>更多&nbsp;>></text>
</div>
<el-scrollbar height="152px">
<el-link
v-for="item in 10"
:key="item"
title="关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知"
>关于协助做好2022年农村电商“省级精英训练营”宣传发动有关工作的通知</el-link
>
</el-scrollbar>
</div>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { UserFilled } from '@element-plus/icons-vue'
import search from '@/components/search.vue'
const menuList = [
{
index: 0,
name: '销售|客服|采购|淘宝'
},
{
index: 1,
name: '人力|行政|管理'
},
{
index: 2,
name: '网络|通信|电子|电气'
},
{
index: 3,
name: '市场|媒介|广告|设计'
},
{
index: 4,
name: '生产| 物流|质控|汽车'
},
{
index: 5,
name: '生活| 服务业|超市|百货'
},
{
index: 6,
name: '法律|教育|翻译|出版'
},
{
index: 7,
name: '财会 | 金融 | 保险'
},
{
index: 8,
name: '医疗 | 制药 | 环保'
}
]
// 鼠标移开
const mouseover = (row?: any) => {
const jobMenuJob: any = document.querySelector('.job-menu-sub')
jobMenuJob.style.display = 'block'
}
// 鼠标离开
const mouseout = (row?: any) => {
const jobMenuJob: any = document.querySelector('.job-menu-sub')
jobMenuJob.style.display = 'none'
}
</script>
<style lang="scss" scoped>
.main-container {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
// overflow: hidden;
.banner-group {
// width: 1316px;
height: 424px;
display: flex;
.job-menu {
width: 238px;
height: 410px;
position: relative;
padding: 16px 0;
background-color: #ffffff;
border-top-left-radius: 6px;
border-bottom-left-radius: 6px;
box-sizing: border-box;
// background: rgba(79, 90, 102, 0.6);
.el-menu {
border-right: 0;
// background: transparent;
.menu-item-title {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.el-menu-item {
// color: #ffffff !important;
height: 42px;
}
}
.job-menu-sub {
display: none;
position: absolute;
top: 0;
left: 238px;
z-index: 10;
width: 700px;
height: 410px;
background: #fff;
.el-scrollbar {
padding: 16px 23px 0 24px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
:deep(.el-descriptions__label) {
margin-right: 0;
}
}
}
.banner-main {
width: 700px;
height: 410px;
}
.home-login {
width: 262px;
height: 410px;
display: flex;
flex-direction: column;
.login {
width: 100%;
height: 184px;
display: flex;
flex-direction: column;
align-items: center;
background-color: #ffffff;
padding: 20px;
box-sizing: border-box;
margin-bottom: 5px;
border-top-right-radius: 6px;
text {
margin-top: 15px;
font-weight: 500;
}
.login-btn {
margin-top: 15px;
}
}
.headlines {
flex: 1;
display: flex;
flex-direction: column;
padding: 20px;
background-color: #ffffff;
border-bottom-right-radius: 6px;
// overflow-y: scroll;
.news-group {
display: flex;
justify-content: space-between;
margin-bottom: 12px;
h2 {
margin: 0;
font-weight: 500;
font-size: 18px;
line-height: 18px;
font-family: Source Han Sans CN;
color: #333;
}
text {
font-size: 13px;
color: #1787fb;
cursor: pointer;
}
}
.el-link {
height: 22px;
margin-bottom: 5px;
}
:deep(.el-link__inner) {
font-family: Source Han Sans CN;
display: inline-block;
width: 200px; /* 设置宽度 */
overflow: hidden; /* 隐藏超出部分 */
text-overflow: ellipsis; /* 显示省略号 */
white-space: nowrap; /* 阻止文本换行 */
}
}
}
}
}
</style>
<template>
<div>招聘管理</div>
</template>
<script setup lang="ts"></script>
<style scoped></style>
.skill-container {
width: 100%;
.container {
width: 1316px;
text-align: center;
img {
width: 100%;
margin-top: 24px;
border-radius: 12px;
}
.train-list {
display: flex;
margin: 24px 0;
border: 1px solid #177cfa;
border-radius: 8px;
.train-item {
flex: 0 0 20%;
height: 58px;
line-height: 58px;
border-right: 1px solid #177cfa;
font-size: 24px;
font-weight: 500;
color: #177cfa;
&:nth-child(5) {
border-right: 0;
}
}
}
}
}
<template>
<div class="skill-container flx-center">
<div class="container">
<img :src="imgUrl1" height="560" />
<div class="train-list">
<div v-for="(item, index) in trainList" :key="index" class="train-item">
{{ item.name }}
</div>
</div>
<div style="margin-bottom: 360px">
<contentBlock :list="trainDetailList" />
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { imgUrl1 } from '@/assets/imgUrl'
import Frame690 from '@/assets/img/Frame690(2).png'
import contentBlock from '@/components/contentBlock.vue'
const trainList = [
{ name: '基础安全培训' },
{ name: '专业技能培训' },
{ name: '专业知识培训' },
{ name: '职业发展培训' },
{ name: '团队管理培训' }
]
const trainDetailList = [
{ url: Frame690, name: '技能培训' },
{ url: Frame690, name: '技能培训' },
{ url: Frame690, name: '技能培训' },
{ url: Frame690, name: '技能培训' },
{ url: Frame690, name: '技能培训' }
]
</script>
<style lang="scss" scoped>
@import './index.scss';
</style>
<template>
<div>专题招聘</div>
</template>
<script setup lang="ts"></script>
<style scoped></style>
.street-container {
width: 100%;
.container {
width: 1316px;
text-align: center;
.street-card {
height: 540px;
background: #ffffff;
border-radius: 20px;
margin: 24px 0 84px;
display: flex;
img {
height: 100%;
border-radius: 20px 0 0 20px;
}
.street-card-triangle {
position: absolute;
right: -24px;
top: 50%;
width: 0;
height: 0;
border-left: 12px solid transparent;
border-right: 12px solid transparent;
border-bottom: 24px solid #6793ca;
transform: rotate(90deg) translateX(-12px);
}
.street-card-content {
flex: 1;
padding: 0 24px 0 44px;
flex-direction: column;
.content-top {
width: 216px;
height: 58px;
line-height: 58px;
text-align: center;
background: linear-gradient(90deg, #177cfa 0%, #177cfa 100%);
font-size: 28px;
font-weight: 400;
color: #ffffff;
margin-bottom: 38px;
}
p {
width: 388px;
height: 240px;
font-size: 14px;
font-weight: 400;
color: #333333;
line-height: 25px;
text-align: left;
}
.content-footer {
width: 100%;
margin-top: 16px;
display: flex;
align-items: center;
justify-content: flex-end;
font-size: 14px;
font-weight: 400;
color: #05a8ff;
cursor: pointer;
}
}
}
.hot-position {
margin-bottom: 64px;
text-align: center;
.hot-position-list {
display: flex;
flex-wrap: wrap;
margin: -5px;
margin: 24px 0;
.hot-position-item {
flex: 0 0 calc(33.333% - 10px);
margin: 5px;
box-sizing: border-box;
background: #ffffff;
border-radius: 12px;
padding: 26px 20px;
cursor: pointer;
.item-lf {
width: 183px;
height: 14px;
font-size: 16px;
font-weight: 400;
color: #222222;
line-height: 14px;
}
.item-rg {
font-size: 18px;
font-weight: 400;
color: #ff3333;
}
.hot-position-item-ft {
margin-top: 16px;
display: flex;
span {
padding: 6px 12px;
background: #f8f8f8;
border-radius: 4px;
line-height: 24px;
font-size: 14px;
font-weight: 400;
color: #666666;
margin-right: 8px;
}
}
}
.enterprise {
padding: 0;
padding-top: 26px;
.enterprise-tp {
padding: 0 20px;
margin-bottom: 16px;
}
.enterprise-bt {
padding: 12px 20px;
background: linear-gradient(90deg, #e3f0ff 0%, rgba(227, 240, 255, 0.15) 100%);
border-radius: 0 0 12px 12px;
span {
font-size: 13px;
font-weight: 400;
color: #666666;
}
.line {
display: inline-block;
width: 1px;
height: 10px;
background: #cccccc;
}
}
}
}
.more {
display: inline-block;
width: 200px;
height: 52px;
line-height: 52px;
background: linear-gradient(90deg, #177cfa 0%, #177cfa 100%);
border-radius: 8px;
font-size: 20px;
font-weight: 500;
color: #ffffff;
cursor: pointer;
}
}
}
}
<template>
<div class="street-container flx-center">
<div class="container">
<div class="street-card">
<div style="position: relative">
<img src="@/assets/img/Frame690(1).png" width="850" />
<div class="street-card-triangle"></div>
</div>
<div class="street-card-content flx-center">
<div class="content-top">粤海街道概况</div>
<p>
南山区位于广东省深圳市中西部,地域由陆地与内伶仃岛、大铲岛、孖洲岛、大矾石岛、小矾石岛组成,地理坐标北纬22°24′~22°39′、东经113°47′~114°01′。行政区域东起车公庙与福田区毗邻,西至南头安乐村、赤尾村与宝安区相连,北靠羊台山与宝安区、龙华区接壤,南临蛇口港、大铲岛和内伶仃岛,东南隔深圳湾与香港元朗比邻,西南隔珠江口与澳门、珠海相望。地形为南北长、东西窄。辖区土地面积185.30平方千米,海岸线长43.7千米。东南距香港元朗5.5千米(直线距离,下同),东北距惠州61.6千米,西北距东莞61.3千米,西距广州102.4千米,西南距澳门59.1千米。
</p>
<div class="content-footer">
查看更多<el-icon><DArrowRight /></el-icon>
</div>
</div>
</div>
<div class="hot-position">
<div class="title">热招职位</div>
<div class="hot-position-list">
<div v-for="item in 6" :key="item" class="hot-position-item">
<div class="flx-justify-between">
<div class="item-lf nowrap-ellipsis" title="软件测试 (学信网可查,深圳 福田区 新洲)">
软件测试 (学信网可查,深圳 福田区 新洲)
</div>
<div class="item-rg">11-15K</div>
</div>
<div class="hot-position-item-ft">
<span>深圳 福田区 新洲</span>
<span>经验不限 </span>
<span>学历不限</span>
</div>
</div>
</div>
<span class="more">查看更多</span>
</div>
<div class="hot-position">
<div class="title">辖区企业</div>
<div class="hot-position-list">
<div v-for="item in 6" :key="item" class="hot-position-item enterprise">
<div class="enterprise-tp">
<div class="flx-justify-between">
<div
class="item-lf nowrap-ellipsis"
title="软件测试 (学信网可查,深圳 福田区 新洲)"
>
软件测试 (学信网可查,深圳 福田区 新洲)
</div>
<div class="item-rg">11-15K</div>
</div>
<div class="hot-position-item-ft">
<span>深圳 福田区 新洲</span>
<span>经验不限 </span>
<span>学历不限</span>
</div>
</div>
<div class="enterprise-bt flx-justify-between">
<div class="flx-align-center">
<img src="@/assets/img/icon-gonggao.png" width="24px" height="24px" />
<span style="margin-left: 8px">好乐租</span>
</div>
<div><span>软件开发</span> <span class="line" /> <span>未融资</span></div>
</div>
</div>
</div>
<span class="more">查看更多</span>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { DArrowRight } from '@element-plus/icons-vue'
</script>
<style lang="scss" scoped>
@import './index.scss';
</style>
<template>
<div>人力实训基地</div>
</template>
<script setup lang="ts"></script>
<style scoped></style>
<template>
<div>退役军人</div>
</template>
<script setup lang="ts"></script>
<style scoped></style>
......@@ -24,7 +24,8 @@
"src/**/*.vue",
"tests/**/*.ts",
"tests/**/*.tsx",
"types/auto-imports.d.ts"
"types/auto-imports.d.ts",
"images.d.ts"
],
"exclude": ["node_modules"]
}
......@@ -7,16 +7,22 @@ export {}
declare module 'vue' {
export interface GlobalComponents {
ContentBlock: typeof import('./../src/components/contentBlock.vue')['default']
ElAvatar: typeof import('element-plus/es')['ElAvatar']
ElButton: typeof import('element-plus/es')['ElButton']
ElCard: typeof import('element-plus/es')['ElCard']
ElCarousel: typeof import('element-plus/es')['ElCarousel']
ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem']
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElCol: typeof import('element-plus/es')['ElCol']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElContainer: typeof import('element-plus/es')['ElContainer']
ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
ElDialog: typeof import('element-plus/es')['ElDialog']
ElDivider: typeof import('element-plus/es')['ElDivider']
ElForm: typeof import('element-plus/es')['ElForm']
ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElHeader: typeof import('element-plus/es')['ElHeader']
ElIcon: typeof import('element-plus/es')['ElIcon']
ElImage: typeof import('element-plus/es')['ElImage']
......@@ -26,11 +32,15 @@ declare module 'vue' {
ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElOption: typeof import('element-plus/es')['ElOption']
ElRadio: typeof import('element-plus/es')['ElRadio']
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElTag: typeof import('element-plus/es')['ElTag']
IEpArrowRight: typeof import('~icons/ep/arrow-right')['default']
IEpSearch: typeof import('~icons/ep/search')['default']
Policy: typeof import('./../src/components/policy.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
Search: typeof import('./../src/components/search.vue')['default']
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论